@siliconst/metaui 1.4.34 → 1.4.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +1 -1
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js +22 -20
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.ts +24 -16
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js +62 -2
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts +54 -0
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.ts +59 -2
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +43 -47
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +61 -66
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +120 -63
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +16 -4
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +126 -65
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +41 -38
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +6 -4
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +47 -39
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +41 -2
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +6 -2
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +47 -2
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +7 -2
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +4 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +7 -2
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +212 -34
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +21 -3
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +214 -35
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js +3 -1
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.ts +3 -1
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js +5 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.ts +6 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +8 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +7 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +127 -50
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +13 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +140 -57
- package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js +229 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.d.ts +68 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.ts +227 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +34 -13
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +4 -4
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +45 -20
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +15 -3
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +15 -1
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +82 -16
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +16 -0
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +89 -17
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +12 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +13 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin-dbg.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.d.ts +50 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.ts +49 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +21 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +24 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +26 -31
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +22 -25
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +40 -6
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +37 -5
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js +69 -56
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js +3 -2
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts +4 -3
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.ts +4 -4
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js +2 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.ts +4 -3
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js +12 -8
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts +16 -12
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js +20 -12
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts +5 -5
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.ts +25 -17
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js +18 -11
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts +5 -5
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.ts +23 -16
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js +24 -100
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts +10 -74
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts +54 -117
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +7 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +6 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +5 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +129 -9
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +45 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +143 -13
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +35 -14
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +38 -14
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +69 -20
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +2 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +77 -21
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.ts +6 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +8 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +9 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +6 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +9 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +35 -20
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +39 -22
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +5 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +4 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +28 -12
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts +5 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts +29 -10
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +13 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +14 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +58 -56
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +2 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +66 -55
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +110 -109
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +2 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +66 -64
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +29 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +145 -118
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +106 -105
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin-dbg.js +41 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.d.ts +24 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.ts +34 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin-dbg.js +41 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.d.ts +24 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.ts +34 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin-dbg.js +52 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.d.ts +30 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.ts +45 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin-dbg.js +52 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.d.ts +30 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.ts +45 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin-dbg.js +41 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.d.ts +24 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.ts +34 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin-dbg.js +40 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.d.ts +28 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.ts +34 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin-dbg.js +40 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.d.ts +28 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.ts +34 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin-dbg.js +40 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.d.ts +28 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.ts +34 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin-dbg.js +40 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.d.ts +28 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.ts +34 -0
- package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider-dbg.js +33 -0
- package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.d.ts +14 -0
- package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.ts +24 -0
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +0 -75
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +0 -47
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +0 -72
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
sap.ui.define(["./BasePlugin","sap/m/Button"],function(t,e){"use strict";const
|
|
1
|
+
sap.ui.define(["./BasePlugin","sap/m/Button","../../constants/MetaUIConstants"],function(t,e,i){"use strict";const s=t["BasePlugin"];const a=i["SCHEMA_TYPE"];const n=i["UI5_EVENT"];class o extends s{render(t,i,s="meta",o,r){this.onChange=r;this.metadata=t;const l=i.startsWith("/")?i.substring(1):i;const u={type:a.OBJECT,title:t.ui?.label||l,properties:t.properties||{}};if(t.uiLayout){u.uiLayout=t.uiLayout}this.control=new e({id:this.generateStableId(o,i),text:!this.isEditable?"View Details":"Edit Details",icon:!this.isEditable?"sap-icon://display":"sap-icon://form",press:e=>{const a=e.getSource();const o=a.getModel(s);if(!o)return;const r=a.getBindingContext(s);let c=i;if(r&&!i.startsWith("/")){const t=r.getPath();c=t.endsWith("/")?t+i:t==="/"?"/"+i:t+"/"+i}const d=JSON.parse(JSON.stringify(o.getProperty(c)||{}));sap.ui.require(["nz/co/siliconst/ui5/metaui/controls/DynamicHost"],e=>{const i=new e({schemaDefinition:u,data:d,editable:this.isEditable,layoutBudget:this.metadata?.ui?.layoutBudget||0});if(!!this.isEditable){i.attachEvent(n.SUBMIT,t=>{const e=t.getParameter("payload");o.setProperty(c,e);if(this.onChange){this.onChange(true,l)}})}const s=t.ui?.dialogButtonText||(!this.isEditable?"Close":"OK");i.openInDialog(`Nested Details: ${t.ui?.label||l}`,s)})}});return this.control}validate(){return{isValid:true}}getValue(){return null}applyState(){}}var r={__esModule:true};r.ObjectPlugin=o;return r});
|
|
2
2
|
//# sourceMappingURL=ObjectPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectPlugin.js","names":["BasePlugin","___BasePlugin","ObjectPlugin","render","field","bindingPath","modelName","engineScopeId","onChange","this","metadata","propKey","startsWith","substring","subSchema","type","title","ui","label","properties","uiLayout","control","Button","id","generateStableId","text","isEditable","icon","press","oEvent","btn","getSource","parentModel","getModel","bindingContext","getBindingContext","updatePath","ctxPath","getPath","endsWith","nestedData","JSON","parse","stringify","getProperty","sap","require","DynamicHostClass","host","schemaDefinition","data","editable","layoutBudget","attachEvent","e","payload","getParameter","setProperty","buttonText","dialogButtonText","openInDialog","validate","isValid","getValue","applyState","__exports","__esModule"],"sources":["ObjectPlugin.ts"],"sourcesContent":["/**\n * @file ObjectPlugin.ts\n * @description Renders a button that opens a dialog to edit a nested object structure.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPluginValidationResult } from \"../../interfaces/IPlugin\";\nimport { ISchema, IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Control from \"sap/ui/core/Control\";\nimport Event from \"sap/ui/base/Event\";\nimport Button from \"sap/m/Button\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\n\nexport class ObjectPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.Button` to open a nested Object form dialog.\n * \n * @param field The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured Button control.\n */\n public render(field: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = field;\n const propKey = bindingPath.startsWith(\"/\") ? bindingPath.substring(1) : bindingPath;\n \n const subSchema: ISchema = {\n type:
|
|
1
|
+
{"version":3,"file":"ObjectPlugin.js","names":["BasePlugin","___BasePlugin","SCHEMA_TYPE","____constants_MetaUIConstants","UI5_EVENT","ObjectPlugin","render","field","bindingPath","modelName","engineScopeId","onChange","this","metadata","propKey","startsWith","substring","subSchema","type","OBJECT","title","ui","label","properties","uiLayout","control","Button","id","generateStableId","text","isEditable","icon","press","oEvent","btn","getSource","parentModel","getModel","bindingContext","getBindingContext","updatePath","ctxPath","getPath","endsWith","nestedData","JSON","parse","stringify","getProperty","sap","require","DynamicHostClass","host","schemaDefinition","data","editable","layoutBudget","attachEvent","SUBMIT","e","payload","getParameter","setProperty","buttonText","dialogButtonText","openInDialog","validate","isValid","getValue","applyState","__exports","__esModule"],"sources":["ObjectPlugin.ts"],"sourcesContent":["/**\n * @file ObjectPlugin.ts\n * @description Renders a button that opens a dialog to edit a nested object structure.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPluginValidationResult } from \"../../interfaces/IPlugin\";\nimport { ISchema, IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Control from \"sap/ui/core/Control\";\nimport Event from \"sap/ui/base/Event\";\nimport Button from \"sap/m/Button\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\nimport { SCHEMA_TYPE, UI5_EVENT } from \"../../constants/MetaUIConstants\";\n\nexport class ObjectPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.Button` to open a nested Object form dialog.\n * \n * @param field The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured Button control.\n */\n public render(field: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = field;\n const propKey = bindingPath.startsWith(\"/\") ? bindingPath.substring(1) : bindingPath;\n \n const subSchema: ISchema = {\n type: SCHEMA_TYPE.OBJECT,\n title: field.ui?.label || propKey,\n properties: field.properties || {}\n };\n \n if (field.uiLayout) {\n subSchema.uiLayout = field.uiLayout;\n }\n\n this.control = new Button({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: !this.isEditable ? \"View Details\" : \"Edit Details\",\n icon: !this.isEditable ? \"sap-icon://display\" : \"sap-icon://form\",\n press: (oEvent: Event) => {\n const btn = oEvent.getSource() as Button;\n const parentModel = btn.getModel(modelName) as JSONModel;\n if (!parentModel) return;\n \n const bindingContext = btn.getBindingContext(modelName);\n let updatePath = bindingPath;\n if (bindingContext && !bindingPath.startsWith(\"/\")) {\n const ctxPath = bindingContext.getPath();\n updatePath = ctxPath.endsWith(\"/\") ? ctxPath + bindingPath : (ctxPath === \"/\" ? \"/\" + bindingPath : ctxPath + \"/\" + bindingPath);\n }\n \n // Deep clone to prevent live-mutations on the parent model before 'Submit' is clicked\n const nestedData = JSON.parse(JSON.stringify(parentModel.getProperty(updatePath) || {}));\n\n sap.ui.require([\"nz/co/siliconst/ui5/metaui/controls/DynamicHost\"], (DynamicHostClass: typeof import(\"../../controls/DynamicHost\").default) => {\n const host = new DynamicHostClass({\n schemaDefinition: subSchema,\n data: nestedData,\n editable: this.isEditable,\n layoutBudget: this.metadata?.ui?.layoutBudget || 0\n } as object);\n\n if (!!this.isEditable) {\n host.attachEvent(UI5_EVENT.SUBMIT, (e: Event) => {\n const payload = e.getParameter(\"payload\");\n parentModel.setProperty(updatePath, payload);\n \n // CRITICAL: Notify the parent Engine that this field mutated\n // so it can trigger LiveUpdate syncs and validate!\n if (this.onChange) {\n this.onChange(true, propKey);\n }\n });\n }\n\n const buttonText = field.ui?.dialogButtonText || (!this.isEditable ? \"Close\" : \"OK\");\n host.openInDialog(`Nested Details: ${field.ui?.label || propKey}`, buttonText);\n });\n }\n });\n\n return this.control as Control;\n }\n\n /**\n * Validates the object plugin (always true as validation is deferred to the dialog host).\n * @returns {IPluginValidationResult} The validation result.\n */\n public validate(): IPluginValidationResult {\n return { isValid: true };\n }\n\n /**\n * Read-only component for the engine, returns null.\n */\n protected getValue(): null {\n return null;\n }\n\n /**\n * Read-only component, no dynamic state handling needed for the button itself.\n */\n protected applyState(): void {\n // No dynamic state handling needed for the button\n }\n}\n"],"mappings":"6GAAA,MAKSA,EAAUC,EAAA,oBAOVC,EAAWC,EAAA,qBAAEC,EAASD,EAAA,aAExB,MAAME,UAAqBL,EAWvBM,OAAOC,EAA2BC,EAAsBC,EAAoB,OAAQC,EAAwBC,GAC/GC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAChB,MAAMO,EAAUN,EAAYO,WAAW,KAAOP,EAAYQ,UAAU,GAAKR,EAEzE,MAAMS,EAAqB,CACvBC,KAAMhB,EAAYiB,OAClBC,MAAOb,EAAMc,IAAIC,OAASR,EAC1BS,WAAYhB,EAAMgB,YAAc,CAAC,GAGrC,GAAIhB,EAAMiB,SAAU,CAChBP,EAAUO,SAAWjB,EAAMiB,QAC/B,CAEAZ,KAAKa,QAAU,IAAIC,EAAO,CACtBC,GAAIf,KAAKgB,iBAAiBlB,EAAeF,GACzCqB,MAAOjB,KAAKkB,WAAa,eAAiB,eAC1CC,MAAOnB,KAAKkB,WAAa,qBAAuB,kBAChDE,MAAQC,IACJ,MAAMC,EAAMD,EAAOE,YACnB,MAAMC,EAAcF,EAAIG,SAAS5B,GACjC,IAAK2B,EAAa,OAElB,MAAME,EAAiBJ,EAAIK,kBAAkB9B,GAC7C,IAAI+B,EAAahC,EACjB,GAAI8B,IAAmB9B,EAAYO,WAAW,KAAM,CAChD,MAAM0B,EAAUH,EAAeI,UAC/BF,EAAaC,EAAQE,SAAS,KAAOF,EAAUjC,EAAeiC,IAAY,IAAM,IAAMjC,EAAciC,EAAU,IAAMjC,CACxH,CAGA,MAAMoC,EAAaC,KAAKC,MAAMD,KAAKE,UAAUX,EAAYY,YAAYR,IAAe,CAAC,IAErFS,IAAI5B,GAAG6B,QAAQ,CAAC,mDAAqDC,IACjE,MAAMC,EAAO,IAAID,EAAiB,CAC9BE,iBAAkBpC,EAClBqC,KAAMV,EACNW,SAAU3C,KAAKkB,WACf0B,aAAc5C,KAAKC,UAAUQ,IAAImC,cAAgB,IAGrD,KAAM5C,KAAKkB,WAAY,CACnBsB,EAAKK,YAAYrD,EAAUsD,OAASC,IAChC,MAAMC,EAAUD,EAAEE,aAAa,WAC/BzB,EAAY0B,YAAYtB,EAAYoB,GAIpC,GAAIhD,KAAKD,SAAU,CACfC,KAAKD,SAAS,KAAMG,EACxB,GAER,CAEA,MAAMiD,EAAaxD,EAAMc,IAAI2C,oBAAsBpD,KAAKkB,WAAa,QAAU,MAC/EsB,EAAKa,aAAa,mBAAmB1D,EAAMc,IAAIC,OAASR,IAAWiD,QAK/E,OAAOnD,KAAKa,OAChB,CAMOyC,WACH,MAAO,CAAEC,QAAS,KACtB,CAKUC,WACN,OAAO,IACX,CAKUC,aACN,EAEP,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAAjE,eAAA,OAAAiE,CAAA","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ import Control from "sap/ui/core/Control";
|
|
|
10
10
|
import Event from "sap/ui/base/Event";
|
|
11
11
|
import Button from "sap/m/Button";
|
|
12
12
|
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
13
|
+
import { SCHEMA_TYPE, UI5_EVENT } from "../../constants/MetaUIConstants";
|
|
13
14
|
|
|
14
15
|
export class ObjectPlugin extends BasePlugin {
|
|
15
16
|
/**
|
|
@@ -22,13 +23,13 @@ export class ObjectPlugin extends BasePlugin {
|
|
|
22
23
|
* @param onChange The callback fired on value change.
|
|
23
24
|
* @returns {Control} The configured Button control.
|
|
24
25
|
*/
|
|
25
|
-
public render(field: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {
|
|
26
|
+
public render(field: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {
|
|
26
27
|
this.onChange = onChange;
|
|
27
28
|
this.metadata = field;
|
|
28
29
|
const propKey = bindingPath.startsWith("/") ? bindingPath.substring(1) : bindingPath;
|
|
29
30
|
|
|
30
31
|
const subSchema: ISchema = {
|
|
31
|
-
type:
|
|
32
|
+
type: SCHEMA_TYPE.OBJECT,
|
|
32
33
|
title: field.ui?.label || propKey,
|
|
33
34
|
properties: field.properties || {}
|
|
34
35
|
};
|
|
@@ -65,7 +66,7 @@ export class ObjectPlugin extends BasePlugin {
|
|
|
65
66
|
} as object);
|
|
66
67
|
|
|
67
68
|
if (!!this.isEditable) {
|
|
68
|
-
host.attachEvent(
|
|
69
|
+
host.attachEvent(UI5_EVENT.SUBMIT, (e: Event) => {
|
|
69
70
|
const payload = e.getParameter("payload");
|
|
70
71
|
parentModel.setProperty(updatePath, payload);
|
|
71
72
|
|
|
@@ -23,8 +23,8 @@ sap.ui.define(["./BasePlugin", "sap/m/Input", "sap/m/Text"], function (___BasePl
|
|
|
23
23
|
maxLength: fieldMetadata.maxLength || 0,
|
|
24
24
|
required: !!fieldMetadata.required,
|
|
25
25
|
change: oEvent => {
|
|
26
|
-
const result = this.
|
|
27
|
-
if (this.onChange) this.onChange(result.isValid, this.fieldKey);
|
|
26
|
+
const result = this.validate();
|
|
27
|
+
if (this.onChange) this.onChange(result.isValid, this.fieldKey, result.errorMessage);
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
this.applyCommonDirectives(this.control, fieldMetadata, modelName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordPlugin-dbg.js","names":["BasePlugin","___BasePlugin","PasswordPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","fieldKey","replace","isEditable","control","TextControl","id","generateStableId","text","applyCommonDirectives","Input","value","generateBindingInfo","type","maxLength","required","change","oEvent","result","
|
|
1
|
+
{"version":3,"file":"PasswordPlugin-dbg.js","names":["BasePlugin","___BasePlugin","PasswordPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","fieldKey","replace","isEditable","control","TextControl","id","generateStableId","text","applyCommonDirectives","Input","value","generateBindingInfo","type","maxLength","required","change","oEvent","result","validate","isValid","errorMessage","getValue","getMetadata","getName","getProperty","applyState","input","setEditable","ui","readOnly","setRequired","__exports","__esModule"],"sources":["PasswordPlugin.ts"],"sourcesContent":["import { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Input from \"sap/m/Input\";\nimport Control from \"sap/ui/core/Control\";\nimport TextControl from \"sap/m/Text\";\n\nexport class PasswordPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n this.fieldKey = bindingPath.replace(\"/\", \"\");\n \n if (!this.isEditable) {\n // Password in read-only should be masked natively\n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: \"********\" \n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n this.control = new Input({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: this.generateBindingInfo(bindingPath, modelName),\n type: \"Password\",\n maxLength: fieldMetadata.maxLength || 0,\n required: !!fieldMetadata.required,\n change: (oEvent: sap.ui.base.Event) => {\n const result = this.validate();\n if (this.onChange) this.onChange(result.isValid, this.fieldKey, result.errorMessage);\n }\n });\n\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n protected getValue(): unknown {\n return this.control && this.control.getMetadata().getName() === \"sap.m.Input\" ? (this.control as Input).getProperty('value') : null;\n }\n\n protected applyState(): void {\n if (!this.control || !this.metadata || this.control.getMetadata().getName() !== \"sap.m.Input\") return;\n const input = this.control as Input;\n input.setEditable(!this.metadata.ui?.readOnly);\n input.setRequired(!!this.metadata.required);\n }\n}\n"],"mappings":";;;QAASA,UAAU,GAAAC,aAAA;EAMZ,MAAMC,cAAc,SAASF,UAAU,CAAC;IACpCG,MAAMA,CAACC,aAAgC,EAAEC,WAAmB,EAAEC,SAAiB,GAAG,MAAM,EAAEC,aAAsB,EAAEC,QAAmG,EAAW;MACnO,IAAI,CAACA,QAAQ,GAAGA,QAAQ;MACxB,IAAI,CAACC,QAAQ,GAAGL,aAAa;MAC7B,IAAI,CAACM,QAAQ,GAAGL,WAAW,CAACM,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;MAE5C,IAAI,CAAC,IAAI,CAACC,UAAU,EAAE;QAClB;QACA,IAAI,CAACC,OAAO,GAAG,IAAIC,WAAW,CAAC;UAC3BC,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACT,aAAa,EAAEF,WAAW,CAAC;UACrDY,IAAI,EAAE;QACV,CAAC,CAAC;QACF,IAAI,CAACC,qBAAqB,CAAC,IAAI,CAACL,OAAO,EAAET,aAAa,EAAEE,SAAS,CAAC;QAClE,OAAO,IAAI,CAACO,OAAO;MACvB;MAEA,IAAI,CAACA,OAAO,GAAG,IAAIM,KAAK,CAAC;QACrBJ,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACT,aAAa,EAAEF,WAAW,CAAC;QACrDe,KAAK,EAAE,IAAI,CAACC,mBAAmB,CAAChB,WAAW,EAAEC,SAAS,CAAC;QACvDgB,IAAI,EAAE,UAAU;QAChBC,SAAS,EAAEnB,aAAa,CAACmB,SAAS,IAAI,CAAC;QACvCC,QAAQ,EAAE,CAAC,CAACpB,aAAa,CAACoB,QAAQ;QAClCC,MAAM,EAAGC,MAAyB,IAAK;UACnC,MAAMC,MAAM,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;UAC9B,IAAI,IAAI,CAACpB,QAAQ,EAAE,IAAI,CAACA,QAAQ,CAACmB,MAAM,CAACE,OAAO,EAAE,IAAI,CAACnB,QAAQ,EAAEiB,MAAM,CAACG,YAAY,CAAC;QACxF;MACJ,CAAC,CAAC;MAEF,IAAI,CAACZ,qBAAqB,CAAC,IAAI,CAACL,OAAO,EAAET,aAAa,EAAEE,SAAS,CAAC;MAClE,OAAO,IAAI,CAACO,OAAO;IACvB;IAEUkB,QAAQA,CAAA,EAAY;MAC1B,OAAO,IAAI,CAAClB,OAAO,IAAI,IAAI,CAACA,OAAO,CAACmB,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,KAAK,aAAa,GAAI,IAAI,CAACpB,OAAO,CAAWqB,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IACvI;IAEUC,UAAUA,CAAA,EAAS;MACzB,IAAI,CAAC,IAAI,CAACtB,OAAO,IAAI,CAAC,IAAI,CAACJ,QAAQ,IAAI,IAAI,CAACI,OAAO,CAACmB,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,KAAK,aAAa,EAAE;MAC/F,MAAMG,KAAK,GAAG,IAAI,CAACvB,OAAgB;MACnCuB,KAAK,CAACC,WAAW,CAAC,CAAC,IAAI,CAAC5B,QAAQ,CAAC6B,EAAE,EAAEC,QAAQ,CAAC;MAC9CH,KAAK,CAACI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC/B,QAAQ,CAACe,QAAQ,CAAC;IAC/C;EACJ;EAAC,IAAAiB,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAvC,cAAA,GAAAA,cAAA;EAAA,OAAAuC,SAAA;AAAA","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin" {
|
|
|
3
3
|
import { IPropertyMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
|
|
4
4
|
import Control from "sap/ui/core/Control";
|
|
5
5
|
export class PasswordPlugin extends BasePlugin {
|
|
6
|
-
render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control;
|
|
6
|
+
render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control;
|
|
7
7
|
protected getValue(): unknown;
|
|
8
8
|
protected applyState(): void;
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,4DAA4D,CAAC;IAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAG1C,MAAa,cAAe,SAAQ,UAAU;QACnC,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QA+
|
|
1
|
+
{"version":3,"file":"PasswordPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,4DAA4D,CAAC;IAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAG1C,MAAa,cAAe,SAAQ,UAAU;QACnC,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QA+BtO,SAAS,CAAC,QAAQ,IAAI,OAAO;QAI7B,SAAS,CAAC,UAAU,IAAI,IAAI;KAM/B;CAEA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
sap.ui.define(["./BasePlugin","sap/m/Input","sap/m/Text"],function(t,e,i){"use strict";const a=t["BasePlugin"];class s extends a{render(t,a,s="meta",n,r){this.onChange=r;this.metadata=t;this.fieldKey=a.replace("/","");if(!this.isEditable){this.control=new i({id:this.generateStableId(n,a),text:"********"});this.applyCommonDirectives(this.control,t,s);return this.control}this.control=new e({id:this.generateStableId(n,a),value:this.generateBindingInfo(a,s),type:"Password",maxLength:t.maxLength||0,required:!!t.required,change:t=>{const e=this.
|
|
1
|
+
sap.ui.define(["./BasePlugin","sap/m/Input","sap/m/Text"],function(t,e,i){"use strict";const a=t["BasePlugin"];class s extends a{render(t,a,s="meta",n,r){this.onChange=r;this.metadata=t;this.fieldKey=a.replace("/","");if(!this.isEditable){this.control=new i({id:this.generateStableId(n,a),text:"********"});this.applyCommonDirectives(this.control,t,s);return this.control}this.control=new e({id:this.generateStableId(n,a),value:this.generateBindingInfo(a,s),type:"Password",maxLength:t.maxLength||0,required:!!t.required,change:t=>{const e=this.validate();if(this.onChange)this.onChange(e.isValid,this.fieldKey,e.errorMessage)}});this.applyCommonDirectives(this.control,t,s);return this.control}getValue(){return this.control&&this.control.getMetadata().getName()==="sap.m.Input"?this.control.getProperty("value"):null}applyState(){if(!this.control||!this.metadata||this.control.getMetadata().getName()!=="sap.m.Input")return;const t=this.control;t.setEditable(!this.metadata.ui?.readOnly);t.setRequired(!!this.metadata.required)}}var n={__esModule:true};n.PasswordPlugin=s;return n});
|
|
2
2
|
//# sourceMappingURL=PasswordPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordPlugin.js","names":["BasePlugin","___BasePlugin","PasswordPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","fieldKey","replace","isEditable","control","TextControl","id","generateStableId","text","applyCommonDirectives","Input","value","generateBindingInfo","type","maxLength","required","change","oEvent","result","
|
|
1
|
+
{"version":3,"file":"PasswordPlugin.js","names":["BasePlugin","___BasePlugin","PasswordPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","fieldKey","replace","isEditable","control","TextControl","id","generateStableId","text","applyCommonDirectives","Input","value","generateBindingInfo","type","maxLength","required","change","oEvent","result","validate","isValid","errorMessage","getValue","getMetadata","getName","getProperty","applyState","input","setEditable","ui","readOnly","setRequired","__exports","__esModule"],"sources":["PasswordPlugin.ts"],"sourcesContent":["import { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Input from \"sap/m/Input\";\nimport Control from \"sap/ui/core/Control\";\nimport TextControl from \"sap/m/Text\";\n\nexport class PasswordPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n this.fieldKey = bindingPath.replace(\"/\", \"\");\n \n if (!this.isEditable) {\n // Password in read-only should be masked natively\n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: \"********\" \n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n this.control = new Input({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: this.generateBindingInfo(bindingPath, modelName),\n type: \"Password\",\n maxLength: fieldMetadata.maxLength || 0,\n required: !!fieldMetadata.required,\n change: (oEvent: sap.ui.base.Event) => {\n const result = this.validate();\n if (this.onChange) this.onChange(result.isValid, this.fieldKey, result.errorMessage);\n }\n });\n\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n protected getValue(): unknown {\n return this.control && this.control.getMetadata().getName() === \"sap.m.Input\" ? (this.control as Input).getProperty('value') : null;\n }\n\n protected applyState(): void {\n if (!this.control || !this.metadata || this.control.getMetadata().getName() !== \"sap.m.Input\") return;\n const input = this.control as Input;\n input.setEditable(!this.metadata.ui?.readOnly);\n input.setRequired(!!this.metadata.required);\n }\n}\n"],"mappings":"6FAASA,EAAUC,EAAA,cAMZ,MAAMC,UAAuBF,EACzBG,OAAOC,EAAkCC,EAAqBC,EAAoB,OAAQC,EAAwBC,GACrHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAChBK,KAAKE,SAAWN,EAAYO,QAAQ,IAAK,IAEzC,IAAKH,KAAKI,WAAY,CAElBJ,KAAKK,QAAU,IAAIC,EAAY,CAC3BC,GAAIP,KAAKQ,iBAAiBV,EAAeF,GACzCa,KAAM,aAEVT,KAAKU,sBAAsBV,KAAKK,QAASV,EAAeE,GACxD,OAAOG,KAAKK,OAChB,CAEAL,KAAKK,QAAU,IAAIM,EAAM,CACrBJ,GAAIP,KAAKQ,iBAAiBV,EAAeF,GACzCgB,MAAOZ,KAAKa,oBAAoBjB,EAAaC,GAC7CiB,KAAM,WACNC,UAAWpB,EAAcoB,WAAa,EACtCC,WAAYrB,EAAcqB,SAC1BC,OAASC,IACL,MAAMC,EAASnB,KAAKoB,WACpB,GAAIpB,KAAKD,SAAUC,KAAKD,SAASoB,EAAOE,QAASrB,KAAKE,SAAUiB,EAAOG,iBAI/EtB,KAAKU,sBAAsBV,KAAKK,QAASV,EAAeE,GACxD,OAAOG,KAAKK,OAChB,CAEUkB,WACN,OAAOvB,KAAKK,SAAWL,KAAKK,QAAQmB,cAAcC,YAAc,cAAiBzB,KAAKK,QAAkBqB,YAAY,SAAW,IACnI,CAEUC,aACN,IAAK3B,KAAKK,UAAYL,KAAKC,UAAYD,KAAKK,QAAQmB,cAAcC,YAAc,cAAe,OAC/F,MAAMG,EAAQ5B,KAAKK,QACnBuB,EAAMC,aAAa7B,KAAKC,SAAS6B,IAAIC,UACrCH,EAAMI,cAAchC,KAAKC,SAASe,SACtC,EACH,IAAAiB,EAAA,CAAAC,WAAA,MAAAD,EAAAxC,iBAAA,OAAAwC,CAAA","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import Control from "sap/ui/core/Control";
|
|
|
5
5
|
import TextControl from "sap/m/Text";
|
|
6
6
|
|
|
7
7
|
export class PasswordPlugin extends BasePlugin {
|
|
8
|
-
public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {
|
|
8
|
+
public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {
|
|
9
9
|
this.onChange = onChange;
|
|
10
10
|
this.metadata = fieldMetadata;
|
|
11
11
|
this.fieldKey = bindingPath.replace("/", "");
|
|
@@ -27,8 +27,8 @@ export class PasswordPlugin extends BasePlugin {
|
|
|
27
27
|
maxLength: fieldMetadata.maxLength || 0,
|
|
28
28
|
required: !!fieldMetadata.required,
|
|
29
29
|
change: (oEvent: sap.ui.base.Event) => {
|
|
30
|
-
const result = this.
|
|
31
|
-
if (this.onChange) this.onChange(result.isValid, this.fieldKey);
|
|
30
|
+
const result = this.validate();
|
|
31
|
+
if (this.onChange) this.onChange(result.isValid, this.fieldKey, result.errorMessage);
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
|
|
@@ -42,9 +42,9 @@ sap.ui.define(["./BasePlugin", "sap/m/RatingIndicator", "sap/m/Text"], function
|
|
|
42
42
|
maxValue: fieldMetadata.maximum !== undefined ? fieldMetadata.maximum : 5,
|
|
43
43
|
change: oEvent => {
|
|
44
44
|
const val = oEvent.getParameter("value");
|
|
45
|
-
const result = this.
|
|
45
|
+
const result = this.validate();
|
|
46
46
|
if (this.onChange) {
|
|
47
|
-
this.onChange(result.isValid, this.fieldKey);
|
|
47
|
+
this.onChange(result.isValid, this.fieldKey, result.errorMessage);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatingIndicatorPlugin-dbg.js","names":["BasePlugin","___BasePlugin","RatingIndicatorPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","fieldKey","startsWith","substring","isEditable","control","TextControl","id","generateStableId","text","generateBindingInfo","applyCommonDirectives","RatingIndicator","value","enabled","ui","readOnly","maxValue","maximum","undefined","change","oEvent","val","getParameter","result","
|
|
1
|
+
{"version":3,"file":"RatingIndicatorPlugin-dbg.js","names":["BasePlugin","___BasePlugin","RatingIndicatorPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","fieldKey","startsWith","substring","isEditable","control","TextControl","id","generateStableId","text","generateBindingInfo","applyCommonDirectives","RatingIndicator","value","enabled","ui","readOnly","maxValue","maximum","undefined","change","oEvent","val","getParameter","result","validate","isValid","errorMessage","getValue","getProperty","applyState","setEnabled","__exports","__esModule"],"sources":["RatingIndicatorPlugin.ts"],"sourcesContent":["/**\n * @file RatingIndicatorPlugin.ts\n * @description Renders a sap.m.RatingIndicator for 1-5 numeric feedback.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport RatingIndicator from \"sap/m/RatingIndicator\";\nimport Control from \"sap/ui/core/Control\";\nimport TextControl from \"sap/m/Text\";\n\n/**\n * Handles rendering logic for rating feedback.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class RatingIndicatorPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.RatingIndicator` component.\n * \n * @param fieldMetadata The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured RatingIndicator control.\n */\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n this.fieldKey = bindingPath.startsWith('/') ? bindingPath.substring(1) : bindingPath;\n\n if (!this.isEditable) {\n \n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: this.generateBindingInfo(bindingPath, modelName)\n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n \n this.control = new RatingIndicator({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: this.generateBindingInfo(bindingPath, modelName),\n enabled: !fieldMetadata.ui?.readOnly,\n maxValue: fieldMetadata.maximum !== undefined ? fieldMetadata.maximum : 5,\n change: (oEvent: sap.ui.base.Event) => {\n const val = (oEvent as any).getParameter(\"value\");\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey, result.errorMessage);\n }\n }\n });\n\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n\n return this.control as Control;\n }\n\n /**\n * Retrieves the current rating value.\n * @returns {unknown} The rating value.\n */\n protected getValue(): unknown {\n return this.control ? (this.control as RatingIndicator).getProperty('value') : 0;\n }\n\n /**\n * Applies dynamic read-only state.\n */\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n (this.control as RatingIndicator).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,aAAA;EAMnB;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,qBAAqB,SAASF,UAAU,CAAC;IAClD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACWG,MAAMA,CAACC,aAAgC,EAAGC,WAAmB,EAAGC,SAAiB,GAAG,MAAM,EAAEC,aAAsB,EAAEC,QAAmG,EAAW;MACrO,IAAI,CAACA,QAAQ,GAAGA,QAAQ;MACxB,IAAI,CAACC,QAAQ,GAAGL,aAAa;MAC7B,IAAI,CAACM,QAAQ,GAAGL,WAAW,CAACM,UAAU,CAAC,GAAG,CAAC,GAAGN,WAAW,CAACO,SAAS,CAAC,CAAC,CAAC,GAAGP,WAAW;MAEpF,IAAI,CAAC,IAAI,CAACQ,UAAU,EAAE;QAElB,IAAI,CAACC,OAAO,GAAG,IAAIC,WAAW,CAAC;UAC3BC,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACV,aAAa,EAAEF,WAAW,CAAC;UACrDa,IAAI,EAAE,IAAI,CAACC,mBAAmB,CAACd,WAAW,EAAEC,SAAS;QACzD,CAAC,CAAC;QACF,IAAI,CAACc,qBAAqB,CAAC,IAAI,CAACN,OAAO,EAAEV,aAAa,EAAEE,SAAS,CAAC;QAClE,OAAO,IAAI,CAACQ,OAAO;MACvB;MAEA,IAAI,CAACA,OAAO,GAAG,IAAIO,eAAe,CAAC;QAC/BL,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACV,aAAa,EAAEF,WAAW,CAAC;QACrDiB,KAAK,EAAE,IAAI,CAACH,mBAAmB,CAACd,WAAW,EAAEC,SAAS,CAAC;QACvDiB,OAAO,EAAE,CAACnB,aAAa,CAACoB,EAAE,EAAEC,QAAQ;QACpCC,QAAQ,EAAEtB,aAAa,CAACuB,OAAO,KAAKC,SAAS,GAAGxB,aAAa,CAACuB,OAAO,GAAG,CAAC;QACzEE,MAAM,EAAGC,MAAyB,IAAK;UACnC,MAAMC,GAAG,GAAID,MAAM,CAASE,YAAY,CAAC,OAAO,CAAC;UACjD,MAAMC,MAAM,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;UAC9B,IAAI,IAAI,CAAC1B,QAAQ,EAAE;YACf,IAAI,CAACA,QAAQ,CAACyB,MAAM,CAACE,OAAO,EAAE,IAAI,CAACzB,QAAQ,EAAEuB,MAAM,CAACG,YAAY,CAAC;UACrE;QACJ;MACJ,CAAC,CAAC;MAEF,IAAI,CAAChB,qBAAqB,CAAC,IAAI,CAACN,OAAO,EAAEV,aAAa,EAAEE,SAAS,CAAC;MAElE,OAAO,IAAI,CAACQ,OAAO;IACvB;;IAEA;AACJ;AACA;AACA;IACcuB,QAAQA,CAAA,EAAY;MAC1B,OAAO,IAAI,CAACvB,OAAO,GAAI,IAAI,CAACA,OAAO,CAAqBwB,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;IACpF;;IAEA;AACJ;AACA;IACcC,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACzB,OAAO,IAAI,IAAI,CAACL,QAAQ,EAAE;QAC/B,IAAI,CAAC,IAAI,CAACI,UAAU,EAAE;QACrB,IAAI,CAACC,OAAO,CAAqB0B,UAAU,CAAC,CAAC,IAAI,CAAC/B,QAAQ,CAACe,EAAE,EAAEC,QAAQ,CAAC;MAC7E;IACJ;EACJ;EAAC,IAAAgB,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAvC,qBAAA,GAAAA,qBAAA;EAAA,OAAAuC,SAAA;AAAA","ignoreList":[]}
|
|
@@ -23,7 +23,7 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugi
|
|
|
23
23
|
* @param onChange The callback fired on value change.
|
|
24
24
|
* @returns {Control} The configured RatingIndicator control.
|
|
25
25
|
*/
|
|
26
|
-
render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control;
|
|
26
|
+
render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control;
|
|
27
27
|
/**
|
|
28
28
|
* Retrieves the current rating value.
|
|
29
29
|
* @returns {unknown} The rating value.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatingIndicatorPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,mEAAmE,CAAC;IACnF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAG1C;;;;;OAKG;IACH,MAAa,qBAAsB,SAAQ,UAAU;QACjD;;;;;;;;;WASG;QACI,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAG,WAAW,EAAE,MAAM,EAAG,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"RatingIndicatorPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,mEAAmE,CAAC;IACnF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAG1C;;;;;OAKG;IACH,MAAa,qBAAsB,SAAQ,UAAU;QACjD;;;;;;;;;WASG;QACI,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAG,WAAW,EAAE,MAAM,EAAG,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QAkCxO;;;WAGG;QACH,SAAS,CAAC,QAAQ,IAAI,OAAO;QAI7B;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAM/B;CAEA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
sap.ui.define(["./BasePlugin","sap/m/RatingIndicator","sap/m/Text"],function(t,e,i){"use strict";const n=t["BasePlugin"];class a extends n{render(t,n,a="meta",s,r){this.onChange=r;this.metadata=t;this.fieldKey=n.startsWith("/")?n.substring(1):n;if(!this.isEditable){this.control=new i({id:this.generateStableId(s,n),text:this.generateBindingInfo(n,a)});this.applyCommonDirectives(this.control,t,a);return this.control}this.control=new e({id:this.generateStableId(s,n),value:this.generateBindingInfo(n,a),enabled:!t.ui?.readOnly,maxValue:t.maximum!==undefined?t.maximum:5,change:t=>{const e=t.getParameter("value");const i=this.
|
|
1
|
+
sap.ui.define(["./BasePlugin","sap/m/RatingIndicator","sap/m/Text"],function(t,e,i){"use strict";const n=t["BasePlugin"];class a extends n{render(t,n,a="meta",s,r){this.onChange=r;this.metadata=t;this.fieldKey=n.startsWith("/")?n.substring(1):n;if(!this.isEditable){this.control=new i({id:this.generateStableId(s,n),text:this.generateBindingInfo(n,a)});this.applyCommonDirectives(this.control,t,a);return this.control}this.control=new e({id:this.generateStableId(s,n),value:this.generateBindingInfo(n,a),enabled:!t.ui?.readOnly,maxValue:t.maximum!==undefined?t.maximum:5,change:t=>{const e=t.getParameter("value");const i=this.validate();if(this.onChange){this.onChange(i.isValid,this.fieldKey,i.errorMessage)}}});this.applyCommonDirectives(this.control,t,a);return this.control}getValue(){return this.control?this.control.getProperty("value"):0}applyState(){if(this.control&&this.metadata){if(!this.isEditable)return;this.control.setEnabled(!this.metadata.ui?.readOnly)}}}var s={__esModule:true};s.RatingIndicatorPlugin=a;return s});
|
|
2
2
|
//# sourceMappingURL=RatingIndicatorPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatingIndicatorPlugin.js","names":["BasePlugin","___BasePlugin","RatingIndicatorPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","fieldKey","startsWith","substring","isEditable","control","TextControl","id","generateStableId","text","generateBindingInfo","applyCommonDirectives","RatingIndicator","value","enabled","ui","readOnly","maxValue","maximum","undefined","change","oEvent","val","getParameter","result","
|
|
1
|
+
{"version":3,"file":"RatingIndicatorPlugin.js","names":["BasePlugin","___BasePlugin","RatingIndicatorPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","fieldKey","startsWith","substring","isEditable","control","TextControl","id","generateStableId","text","generateBindingInfo","applyCommonDirectives","RatingIndicator","value","enabled","ui","readOnly","maxValue","maximum","undefined","change","oEvent","val","getParameter","result","validate","isValid","errorMessage","getValue","getProperty","applyState","setEnabled","__exports","__esModule"],"sources":["RatingIndicatorPlugin.ts"],"sourcesContent":["/**\n * @file RatingIndicatorPlugin.ts\n * @description Renders a sap.m.RatingIndicator for 1-5 numeric feedback.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport RatingIndicator from \"sap/m/RatingIndicator\";\nimport Control from \"sap/ui/core/Control\";\nimport TextControl from \"sap/m/Text\";\n\n/**\n * Handles rendering logic for rating feedback.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class RatingIndicatorPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.RatingIndicator` component.\n * \n * @param fieldMetadata The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured RatingIndicator control.\n */\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n this.fieldKey = bindingPath.startsWith('/') ? bindingPath.substring(1) : bindingPath;\n\n if (!this.isEditable) {\n \n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: this.generateBindingInfo(bindingPath, modelName)\n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n \n this.control = new RatingIndicator({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: this.generateBindingInfo(bindingPath, modelName),\n enabled: !fieldMetadata.ui?.readOnly,\n maxValue: fieldMetadata.maximum !== undefined ? fieldMetadata.maximum : 5,\n change: (oEvent: sap.ui.base.Event) => {\n const val = (oEvent as any).getParameter(\"value\");\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey, result.errorMessage);\n }\n }\n });\n\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n\n return this.control as Control;\n }\n\n /**\n * Retrieves the current rating value.\n * @returns {unknown} The rating value.\n */\n protected getValue(): unknown {\n return this.control ? (this.control as RatingIndicator).getProperty('value') : 0;\n }\n\n /**\n * Applies dynamic read-only state.\n */\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n (this.control as RatingIndicator).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"iGAAA,MAKSA,EAAUC,EAAA,cAYZ,MAAMC,UAA8BF,EAWhCG,OAAOC,EAAmCC,EAAsBC,EAAoB,OAAQC,EAAwBC,GACvHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAChBK,KAAKE,SAAWN,EAAYO,WAAW,KAAOP,EAAYQ,UAAU,GAAKR,EAEzE,IAAKI,KAAKK,WAAY,CAElBL,KAAKM,QAAU,IAAIC,EAAY,CAC3BC,GAAIR,KAAKS,iBAAiBX,EAAeF,GACzCc,KAAMV,KAAKW,oBAAoBf,EAAaC,KAEhDG,KAAKY,sBAAsBZ,KAAKM,QAASX,EAAeE,GACxD,OAAOG,KAAKM,OAChB,CAEAN,KAAKM,QAAU,IAAIO,EAAgB,CAC/BL,GAAIR,KAAKS,iBAAiBX,EAAeF,GACzCkB,MAAOd,KAAKW,oBAAoBf,EAAaC,GAC7CkB,SAAUpB,EAAcqB,IAAIC,SAC5BC,SAAUvB,EAAcwB,UAAYC,UAAYzB,EAAcwB,QAAU,EACxEE,OAASC,IACL,MAAMC,EAAOD,EAAeE,aAAa,SACzC,MAAMC,EAASzB,KAAK0B,WACpB,GAAI1B,KAAKD,SAAU,CACfC,KAAKD,SAAS0B,EAAOE,QAAS3B,KAAKE,SAAUuB,EAAOG,aACxD,KAIR5B,KAAKY,sBAAsBZ,KAAKM,QAASX,EAAeE,GAExD,OAAOG,KAAKM,OAChB,CAMUuB,WACN,OAAO7B,KAAKM,QAAWN,KAAKM,QAA4BwB,YAAY,SAAW,CACnF,CAKUC,aACN,GAAI/B,KAAKM,SAAWN,KAAKC,SAAU,CAC/B,IAAKD,KAAKK,WAAY,OACrBL,KAAKM,QAA4B0B,YAAYhC,KAAKC,SAASe,IAAIC,SACpE,CACJ,EACH,IAAAgB,EAAA,CAAAC,WAAA,MAAAD,EAAAxC,wBAAA,OAAAwC,CAAA","ignoreList":[]}
|
|
@@ -26,7 +26,7 @@ export class RatingIndicatorPlugin extends BasePlugin {
|
|
|
26
26
|
* @param onChange The callback fired on value change.
|
|
27
27
|
* @returns {Control} The configured RatingIndicator control.
|
|
28
28
|
*/
|
|
29
|
-
public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {
|
|
29
|
+
public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {
|
|
30
30
|
this.onChange = onChange;
|
|
31
31
|
this.metadata = fieldMetadata;
|
|
32
32
|
this.fieldKey = bindingPath.startsWith('/') ? bindingPath.substring(1) : bindingPath;
|
|
@@ -48,9 +48,9 @@ export class RatingIndicatorPlugin extends BasePlugin {
|
|
|
48
48
|
maxValue: fieldMetadata.maximum !== undefined ? fieldMetadata.maximum : 5,
|
|
49
49
|
change: (oEvent: sap.ui.base.Event) => {
|
|
50
50
|
const val = (oEvent as any).getParameter("value");
|
|
51
|
-
const result = this.
|
|
51
|
+
const result = this.validate();
|
|
52
52
|
if (this.onChange) {
|
|
53
|
-
this.onChange(result.isValid, this.fieldKey);
|
|
53
|
+
this.onChange(result.isValid, this.fieldKey, result.errorMessage);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sap.ui.define(["./BasePlugin", "sap/m/Button", "../../core/PipelineManager", "../../utils/Logger"], function (___BasePlugin, Button, ____core_PipelineManager, ____utils_Logger) {
|
|
1
|
+
sap.ui.define(["./BasePlugin", "../../constants/MetaUIConstants", "sap/m/Button", "../../core/PipelineManager", "../../utils/Logger"], function (___BasePlugin, ____constants_MetaUIConstants, Button, ____core_PipelineManager, ____utils_Logger) {
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -7,16 +7,28 @@ sap.ui.define(["./BasePlugin", "sap/m/Button", "../../core/PipelineManager", "..
|
|
|
7
7
|
* and opens it in a nested dialog. Implements headless validation for the deferred schema.
|
|
8
8
|
*/
|
|
9
9
|
const BasePlugin = ___BasePlugin["BasePlugin"];
|
|
10
|
+
const UI5_EVENT = ____constants_MetaUIConstants["UI5_EVENT"];
|
|
10
11
|
const GlobalPipeline = ____core_PipelineManager["GlobalPipeline"];
|
|
11
12
|
const Logger = ____utils_Logger["Logger"];
|
|
12
13
|
class ReferencePlugin extends BasePlugin {
|
|
14
|
+
/**
|
|
15
|
+
* Interface for the duck-typed parent GeneratorHost.
|
|
16
|
+
*/
|
|
17
|
+
_asHost(control) {
|
|
18
|
+
const host = control;
|
|
19
|
+
if (typeof host.getSchemaDefinition === "function") {
|
|
20
|
+
return host;
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
|
|
13
25
|
/**
|
|
14
26
|
* Finds the closest GeneratorHost in the control hierarchy.
|
|
15
27
|
*/
|
|
16
28
|
findParentHost(control) {
|
|
17
29
|
let parent = control.getParent();
|
|
18
30
|
while (parent) {
|
|
19
|
-
if (
|
|
31
|
+
if (this._asHost(parent)) {
|
|
20
32
|
return parent;
|
|
21
33
|
}
|
|
22
34
|
parent = parent.getParent();
|
|
@@ -38,14 +50,16 @@ sap.ui.define(["./BasePlugin", "sap/m/Button", "../../core/PipelineManager", "..
|
|
|
38
50
|
Logger.error(`[ReferencePlugin] FATAL: this.metadata.$ref is MISSING or UNDEFINED! Cannot resolve child schema.`);
|
|
39
51
|
return;
|
|
40
52
|
}
|
|
41
|
-
const
|
|
53
|
+
const rawParentHost = this.findParentHost(btn);
|
|
54
|
+
const parentHost = rawParentHost ? this._asHost(rawParentHost) : null;
|
|
42
55
|
if (!parentHost) {
|
|
43
56
|
Logger.error("[ReferencePlugin] FATAL: Could not locate parent GeneratorHost via duck typing `getSchemaDefinition`.");
|
|
44
57
|
return;
|
|
45
58
|
}
|
|
46
59
|
const subSchema = parentHost.getSchemaDefinition(this.metadata.$ref);
|
|
47
60
|
if (!subSchema) {
|
|
48
|
-
|
|
61
|
+
const keys = Object.keys(parentHost.getProperty("schemaDefinitions") || {});
|
|
62
|
+
Logger.error(`[ReferencePlugin] FATAL: Schema definition not found for reference: ${this.metadata.$ref}. Dumping parent schemaDefinitions keys: ${keys.join(", ")}`);
|
|
49
63
|
return;
|
|
50
64
|
}
|
|
51
65
|
const parentModel = btn.getModel(modelName);
|
|
@@ -80,7 +94,7 @@ sap.ui.define(["./BasePlugin", "sap/m/Button", "../../core/PipelineManager", "..
|
|
|
80
94
|
parentHost.fireEvent("validationSuccess", e.getParameters());
|
|
81
95
|
});
|
|
82
96
|
if (!!this.isEditable) {
|
|
83
|
-
host.attachEvent(
|
|
97
|
+
host.attachEvent(UI5_EVENT.SUBMIT, e => {
|
|
84
98
|
const payload = e.getParameter("payload");
|
|
85
99
|
parentModel.setProperty(updatePath, payload);
|
|
86
100
|
if (this.onChange) {
|
|
@@ -107,7 +121,8 @@ sap.ui.define(["./BasePlugin", "sap/m/Button", "../../core/PipelineManager", "..
|
|
|
107
121
|
if (!this.metadata?.$ref || !this.control) return {
|
|
108
122
|
isValid: true
|
|
109
123
|
};
|
|
110
|
-
const
|
|
124
|
+
const rawParentHost = this.findParentHost(this.control);
|
|
125
|
+
const parentHost = rawParentHost ? this._asHost(rawParentHost) : null;
|
|
111
126
|
if (!parentHost) return {
|
|
112
127
|
isValid: true
|
|
113
128
|
};
|
|
@@ -136,12 +151,13 @@ sap.ui.define(["./BasePlugin", "sap/m/Button", "../../core/PipelineManager", "..
|
|
|
136
151
|
}
|
|
137
152
|
const validatorsToRun = [];
|
|
138
153
|
const argsMap = {};
|
|
139
|
-
if (propMeta.
|
|
140
|
-
validatorsToRun.push("
|
|
141
|
-
argsMap["
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
154
|
+
if (propMeta.maxLength !== undefined) {
|
|
155
|
+
validatorsToRun.push("maxLength");
|
|
156
|
+
argsMap["maxLength"] = propMeta.maxLength;
|
|
157
|
+
}
|
|
158
|
+
if (propMeta.minLength !== undefined) {
|
|
159
|
+
validatorsToRun.push("minLength");
|
|
160
|
+
argsMap["minLength"] = propMeta.minLength;
|
|
145
161
|
}
|
|
146
162
|
if (propMeta.pattern !== undefined) {
|
|
147
163
|
validatorsToRun.push("pattern");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferencePlugin-dbg.js","names":["BasePlugin","___BasePlugin","GlobalPipeline","____core_PipelineManager","Logger","____utils_Logger","ReferencePlugin","findParentHost","control","parent","getParent","getSchemaDefinition","render","field","bindingPath","modelName","engineScopeId","onChange","metadata","propKey","startsWith","substring","label","ui","Button","id","generateStableId","text","isEditable","icon","press","oEvent","btn","getSource","$ref","error","parentHost","subSchema","getProperty","parentModel","getModel","bindingContext","getBindingContext","updatePath","ctxPath","getPath","endsWith","rawData","nestedData","JSON","parse","stringify","sap","require","DynamicHostModule","DynamicHostClass","default","host","schemaDefinition","schemaDefinitions","data","editable","useMessageManager","attachEvent","e","fireEvent","getParameters","payload","getParameter","setProperty","buttonText","dialogButtonText","openInDialog","undefined","message","validate","isValid","properties","getAbsoluteBindingPath","key","Object","keys","propMeta","val","required","errMsg","setVisualValidationState","errorMessage","validatorsToRun","argsMap","minLength","maxLength","push","min","max","pattern","regex","minimum","maximum","format","length","res","executeValidation","getValue","applyState","setEnabled","readOnly","__exports","__esModule"],"sources":["ReferencePlugin.ts"],"sourcesContent":["/**\n * @file ReferencePlugin.ts\n * @description Renders a button that lazily loads a referenced schema definition from the global dictionary\n * and opens it in a nested dialog. Implements headless validation for the deferred schema.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPluginValidationResult } from \"../../interfaces/IPlugin\";\nimport { ISchema, IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Control from \"sap/ui/core/Control\";\nimport Event from \"sap/ui/base/Event\";\nimport Button from \"sap/m/Button\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\nimport { GlobalPipeline } from \"../../core/PipelineManager\";\nimport { Logger } from \"../../utils/Logger\";\n\nexport class ReferencePlugin extends BasePlugin {\n /**\n * Finds the closest GeneratorHost in the control hierarchy.\n */\n private findParentHost(control: Control): unknown {\n let parent = control.getParent();\n while (parent) {\n if (typeof (parent as any).getSchemaDefinition === \"function\") {\n return parent;\n }\n parent = parent.getParent();\n }\n return null;\n }\n\n public render(field: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = field;\n const propKey = bindingPath.startsWith(\"/\") ? bindingPath.substring(1) : bindingPath;\n const label = field.ui?.label || propKey;\n\n this.control = new Button({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: !this.isEditable ? `View Link: ${label}` : `Edit Link: ${label}`,\n icon: \"sap-icon://chain-link\",\n press: (oEvent: Event) => {\n const btn = oEvent.getSource() as Button;\n if (!this.metadata?.$ref) {\n Logger.error(`[ReferencePlugin] FATAL: this.metadata.$ref is MISSING or UNDEFINED! Cannot resolve child schema.`);\n return;\n }\n \n const parentHost = this.findParentHost(btn) as any;\n if (!parentHost) {\n Logger.error(\"[ReferencePlugin] FATAL: Could not locate parent GeneratorHost via duck typing `getSchemaDefinition`.\");\n return;\n }\n\n const subSchema = parentHost.getSchemaDefinition(this.metadata.$ref);\n if (!subSchema) {\n Logger.error(`[ReferencePlugin] FATAL: Schema definition not found for reference: ${this.metadata.$ref}. Dumping parent schemaDefinitions:`, parentHost.getProperty(\"schemaDefinitions\"));\n return;\n }\n\n const parentModel = btn.getModel(modelName) as JSONModel;\n if (!parentModel) {\n Logger.error(`[ReferencePlugin] FATAL: Could not get JSONModel named '${modelName}' from the button.`);\n return;\n }\n \n const bindingContext = btn.getBindingContext(modelName);\n let updatePath = bindingPath;\n if (bindingContext && !bindingPath.startsWith(\"/\")) {\n const ctxPath = bindingContext.getPath();\n updatePath = ctxPath.endsWith(\"/\") ? ctxPath + bindingPath : (ctxPath === \"/\" ? \"/\" + bindingPath : ctxPath + \"/\" + bindingPath);\n }\n \n const rawData = parentModel.getProperty(updatePath);\n const nestedData = rawData ? JSON.parse(JSON.stringify(rawData)) : {};\n\n sap.ui.require([\"nz/co/siliconst/ui5/metaui/controls/DynamicHost\"], (DynamicHostModule: unknown) => {\n const DynamicHostClass = DynamicHostModule.default || DynamicHostModule;\n const host = new DynamicHostClass({\n schemaDefinition: subSchema,\n schemaDefinitions: parentHost.getProperty(\"schemaDefinitions\"), // Pass the dictionary down\n data: nestedData,\n editable: this.isEditable,\n useMessageManager: this.useMessageManager\n });\n\n // Event Piping: Bubble validation events up to the parent host\n host.attachEvent(\"validationError\", (e: Event) => {\n parentHost.fireEvent(\"validationError\", e.getParameters());\n });\n host.attachEvent(\"validationSuccess\", (e: Event) => {\n parentHost.fireEvent(\"validationSuccess\", e.getParameters());\n });\n\n if (!!this.isEditable) {\n host.attachEvent(\"submit\", (e: any) => {\n const payload = (e.getParameter(\"payload\") as unknown);\n parentModel.setProperty(updatePath, payload);\n \n if (this.onChange) {\n this.onChange(true, propKey);\n }\n });\n }\n\n const buttonText = field.ui?.dialogButtonText || (!this.isEditable ? \"Close\" : \"OK\");\n try {\n host.openInDialog(`Nested Link: ${label}`, buttonText, undefined, undefined, btn);\n } catch (e) {\n Logger.error(`[ReferencePlugin] FATAL ERROR CALLING openInDialog:`, (e as Error).message);\n }\n });\n }\n });\n\n return this.control as Control;\n }\n\n /**\n * Headless validation: since child controls are not rendered, we manually validate the nested payload against the lazily resolved schema.\n */\n public validate(): IPluginValidationResult {\n if (!this.metadata?.$ref || !this.control) return { isValid: true };\n \n const parentHost = this.findParentHost(this.control);\n if (!parentHost) return { isValid: true };\n \n const subSchema = parentHost.getSchemaDefinition(this.metadata.$ref);\n if (!subSchema || !subSchema.properties) return { isValid: true };\n \n const parentModel = this.control.getModel(this.modelName) as JSONModel;\n if (!parentModel) return { isValid: true };\n \n let updatePath = this.getAbsoluteBindingPath();\n \n const nestedData = parentModel.getProperty(updatePath) || {};\n \n // Basic headless validation over the subSchema properties\n for (const key of Object.keys(subSchema.properties)) {\n const propMeta = subSchema.properties[key] as IPropertyMetadata;\n const val = nestedData[key];\n \n if (propMeta.required && (val === undefined || val === null || val === \"\")) {\n const errMsg = `Field '${key}' is required in referenced object.`;\n this.setVisualValidationState(false, errMsg);\n return { isValid: false, errorMessage: errMsg };\n }\n \n const validatorsToRun: string[] = [];\n const argsMap: Record<string, unknown> = {};\n\n if (propMeta.minLength !== undefined || propMeta.maxLength !== undefined) {\n validatorsToRun.push(\"length\");\n argsMap[\"length\"] = { min: propMeta.minLength, max: propMeta.maxLength };\n }\n if (propMeta.pattern !== undefined) {\n validatorsToRun.push(\"pattern\");\n argsMap[\"pattern\"] = { regex: propMeta.pattern };\n }\n if (propMeta.minimum !== undefined || propMeta.maximum !== undefined) {\n validatorsToRun.push(\"range\");\n argsMap[\"range\"] = { min: propMeta.minimum, max: propMeta.maximum };\n }\n \n const format = propMeta.ui?.format;\n if (format === \"email\" || format === \"url\" || format === \"iban\") {\n validatorsToRun.push(format);\n }\n \n if (validatorsToRun.length > 0) {\n const res = GlobalPipeline.executeValidation(val, validatorsToRun, argsMap);\n if (!res.isValid) {\n const errMsg = `Field '${key}' in reference: ${res.errorMessage}`;\n this.setVisualValidationState(false, errMsg);\n return { isValid: false, errorMessage: errMsg };\n }\n }\n }\n \n this.setVisualValidationState(true);\n return { isValid: true };\n }\n\n protected getValue(): null {\n return null;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n (this.control as Button).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ReferencePlugin-dbg.js","names":["BasePlugin","___BasePlugin","UI5_EVENT","____constants_MetaUIConstants","GlobalPipeline","____core_PipelineManager","Logger","____utils_Logger","ReferencePlugin","_asHost","control","host","getSchemaDefinition","findParentHost","parent","getParent","render","field","bindingPath","modelName","engineScopeId","onChange","metadata","propKey","startsWith","substring","label","ui","Button","id","generateStableId","text","isEditable","icon","press","oEvent","btn","getSource","$ref","error","rawParentHost","parentHost","subSchema","keys","Object","getProperty","join","parentModel","getModel","bindingContext","getBindingContext","updatePath","ctxPath","getPath","endsWith","rawData","nestedData","JSON","parse","stringify","sap","require","DynamicHostModule","DynamicHostClass","default","schemaDefinition","schemaDefinitions","data","editable","useMessageManager","attachEvent","e","fireEvent","getParameters","SUBMIT","payload","getParameter","setProperty","buttonText","dialogButtonText","openInDialog","undefined","message","validate","isValid","properties","getAbsoluteBindingPath","key","propMeta","val","required","errMsg","setVisualValidationState","errorMessage","validatorsToRun","argsMap","maxLength","push","minLength","pattern","regex","minimum","maximum","min","max","format","length","res","executeValidation","getValue","applyState","setEnabled","readOnly","__exports","__esModule"],"sources":["ReferencePlugin.ts"],"sourcesContent":["/**\n * @file ReferencePlugin.ts\n * @description Renders a button that lazily loads a referenced schema definition from the global dictionary\n * and opens it in a nested dialog. Implements headless validation for the deferred schema.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPluginValidationResult } from \"../../interfaces/IPlugin\";\nimport { UI5_EVENT, UI5_AGGREGATION } from \"../../constants/MetaUIConstants\";\nimport { ISchema, IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Control from \"sap/ui/core/Control\";\nimport Event from \"sap/ui/base/Event\";\nimport Button from \"sap/m/Button\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\nimport { GlobalPipeline } from \"../../core/PipelineManager\";\nimport { Logger } from \"../../utils/Logger\";\n\nexport class ReferencePlugin extends BasePlugin {\n /**\n * Interface for the duck-typed parent GeneratorHost.\n */\n private _asHost(control: Control): { getSchemaDefinition(ref: string): ISchema; getProperty(name: string): unknown; fireEvent(name: string, params?: unknown): void; } | null {\n const host = control as unknown as { getSchemaDefinition?: Function; getProperty?: Function; fireEvent?: Function; };\n if (typeof host.getSchemaDefinition === \"function\") {\n return host as { getSchemaDefinition(ref: string): ISchema; getProperty(name: string): unknown; fireEvent(name: string, params?: unknown): void; };\n }\n return null;\n }\n\n /**\n * Finds the closest GeneratorHost in the control hierarchy.\n */\n private findParentHost(control: Control): unknown {\n let parent = control.getParent();\n while (parent) {\n if (this._asHost(parent)) {\n return parent;\n }\n parent = parent.getParent();\n }\n return null;\n }\n\n public render(field: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = field;\n const propKey = bindingPath.startsWith(\"/\") ? bindingPath.substring(1) : bindingPath;\n const label = field.ui?.label || propKey;\n\n this.control = new Button({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: !this.isEditable ? `View Link: ${label}` : `Edit Link: ${label}`,\n icon: \"sap-icon://chain-link\",\n press: (oEvent: Event) => {\n const btn = oEvent.getSource() as Button;\n if (!this.metadata?.$ref) {\n Logger.error(`[ReferencePlugin] FATAL: this.metadata.$ref is MISSING or UNDEFINED! Cannot resolve child schema.`);\n return;\n }\n \n const rawParentHost = this.findParentHost(btn) as Control;\n const parentHost = rawParentHost ? this._asHost(rawParentHost) : null;\n if (!parentHost) {\n Logger.error(\"[ReferencePlugin] FATAL: Could not locate parent GeneratorHost via duck typing `getSchemaDefinition`.\");\n return;\n }\n\n const subSchema = parentHost.getSchemaDefinition(this.metadata.$ref);\n if (!subSchema) {\n const keys = Object.keys(parentHost.getProperty(\"schemaDefinitions\") || {});\n Logger.error(`[ReferencePlugin] FATAL: Schema definition not found for reference: ${this.metadata.$ref}. Dumping parent schemaDefinitions keys: ${keys.join(\", \")}`);\n return;\n }\n\n const parentModel = btn.getModel(modelName) as JSONModel;\n if (!parentModel) {\n Logger.error(`[ReferencePlugin] FATAL: Could not get JSONModel named '${modelName}' from the button.`);\n return;\n }\n \n const bindingContext = btn.getBindingContext(modelName);\n let updatePath = bindingPath;\n if (bindingContext && !bindingPath.startsWith(\"/\")) {\n const ctxPath = bindingContext.getPath();\n updatePath = ctxPath.endsWith(\"/\") ? ctxPath + bindingPath : (ctxPath === \"/\" ? \"/\" + bindingPath : ctxPath + \"/\" + bindingPath);\n }\n \n const rawData = parentModel.getProperty(updatePath);\n const nestedData = rawData ? JSON.parse(JSON.stringify(rawData)) : {};\n\n sap.ui.require([\"nz/co/siliconst/ui5/metaui/controls/DynamicHost\"], (DynamicHostModule: unknown) => {\n const DynamicHostClass = (DynamicHostModule as any).default || DynamicHostModule;\n const host = new DynamicHostClass({\n schemaDefinition: subSchema,\n schemaDefinitions: parentHost.getProperty(\"schemaDefinitions\"), // Pass the dictionary down\n data: nestedData,\n editable: this.isEditable,\n useMessageManager: this.useMessageManager\n });\n\n // Event Piping: Bubble validation events up to the parent host\n host.attachEvent(\"validationError\", (e: Event) => {\n parentHost.fireEvent(\"validationError\", e.getParameters());\n });\n host.attachEvent(\"validationSuccess\", (e: Event) => {\n parentHost.fireEvent(\"validationSuccess\", e.getParameters());\n });\n\n if (!!this.isEditable) {\n host.attachEvent(UI5_EVENT.SUBMIT, (e: Event) => {\n const payload = (e.getParameter(\"payload\") as unknown);\n parentModel.setProperty(updatePath, payload);\n \n if (this.onChange) {\n this.onChange(true, propKey);\n }\n });\n }\n\n const buttonText = field.ui?.dialogButtonText || (!this.isEditable ? \"Close\" : \"OK\");\n try {\n host.openInDialog(`Nested Link: ${label}`, buttonText, undefined, undefined, btn);\n } catch (e) {\n Logger.error(`[ReferencePlugin] FATAL ERROR CALLING openInDialog:`, (e as Error).message);\n }\n });\n }\n });\n\n return this.control as Control;\n }\n\n /**\n * Headless validation: since child controls are not rendered, we manually validate the nested payload against the lazily resolved schema.\n */\n public validate(): IPluginValidationResult {\n if (!this.metadata?.$ref || !this.control) return { isValid: true };\n \n const rawParentHost = this.findParentHost(this.control) as Control;\n const parentHost = rawParentHost ? this._asHost(rawParentHost) : null;\n if (!parentHost) return { isValid: true };\n \n const subSchema = parentHost.getSchemaDefinition(this.metadata.$ref);\n if (!subSchema || !subSchema.properties) return { isValid: true };\n \n const parentModel = this.control.getModel(this.modelName) as JSONModel;\n if (!parentModel) return { isValid: true };\n \n let updatePath = this.getAbsoluteBindingPath();\n \n const nestedData = parentModel.getProperty(updatePath) || {};\n \n // Basic headless validation over the subSchema properties\n for (const key of Object.keys(subSchema.properties)) {\n const propMeta = subSchema.properties[key] as IPropertyMetadata;\n const val = nestedData[key];\n \n if (propMeta.required && (val === undefined || val === null || val === \"\")) {\n const errMsg = `Field '${key}' is required in referenced object.`;\n this.setVisualValidationState(false, errMsg);\n return { isValid: false, errorMessage: errMsg };\n }\n \n const validatorsToRun: string[] = [];\n const argsMap: Record<string, unknown> = {};\n\n if (propMeta.maxLength !== undefined) {\n validatorsToRun.push(\"maxLength\");\n argsMap[\"maxLength\"] = propMeta.maxLength;\n }\n if (propMeta.minLength !== undefined) {\n validatorsToRun.push(\"minLength\");\n argsMap[\"minLength\"] = propMeta.minLength;\n }\n if (propMeta.pattern !== undefined) {\n validatorsToRun.push(\"pattern\");\n argsMap[\"pattern\"] = { regex: propMeta.pattern };\n }\n if (propMeta.minimum !== undefined || propMeta.maximum !== undefined) {\n validatorsToRun.push(\"range\");\n argsMap[\"range\"] = { min: propMeta.minimum, max: propMeta.maximum };\n }\n \n const format = propMeta.ui?.format;\n if (format === \"email\" || format === \"url\" || format === \"iban\") {\n validatorsToRun.push(format);\n }\n \n if (validatorsToRun.length > 0) {\n const res = GlobalPipeline.executeValidation(val, validatorsToRun, argsMap);\n if (!res.isValid) {\n const errMsg = `Field '${key}' in reference: ${res.errorMessage}`;\n this.setVisualValidationState(false, errMsg);\n return { isValid: false, errorMessage: errMsg };\n }\n }\n }\n \n this.setVisualValidationState(true);\n return { isValid: true };\n }\n\n protected getValue(): null {\n return null;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n (this.control as Button).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,11 +9,15 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin" {
|
|
|
9
9
|
import { IPropertyMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
|
|
10
10
|
import Control from "sap/ui/core/Control";
|
|
11
11
|
export class ReferencePlugin extends BasePlugin {
|
|
12
|
+
/**
|
|
13
|
+
* Interface for the duck-typed parent GeneratorHost.
|
|
14
|
+
*/
|
|
15
|
+
private _asHost;
|
|
12
16
|
/**
|
|
13
17
|
* Finds the closest GeneratorHost in the control hierarchy.
|
|
14
18
|
*/
|
|
15
19
|
private findParentHost;
|
|
16
|
-
render(field: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control;
|
|
20
|
+
render(field: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control;
|
|
17
21
|
/**
|
|
18
22
|
* Headless validation: since child controls are not rendered, we manually validate the nested payload against the lazily resolved schema.
|
|
19
23
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferencePlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,6DAA6D,CAAC;IAC7E;;;;OAIG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"ReferencePlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,6DAA6D,CAAC;IAC7E;;;;OAIG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;IAExF,OAAO,EAAW,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAC3F,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAO1C,MAAa,eAAgB,SAAQ,UAAU;QAC3C;;WAEG;QACH,OAAO,CAAC,OAAO;QAQf;;WAEG;QACH,OAAO,CAAC,cAAc;QAWf,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QAyF9N;;WAEG;QACI,QAAQ,IAAI,uBAAuB;QAmE1C,SAAS,CAAC,QAAQ,IAAI,IAAI;QAI1B,SAAS,CAAC,UAAU,IAAI,IAAI;KAK/B;CAEA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
sap.ui.define(["./BasePlugin","sap/m/Button","../../core/PipelineManager","../../utils/Logger"],function(e,t,i,
|
|
1
|
+
sap.ui.define(["./BasePlugin","../../constants/MetaUIConstants","sap/m/Button","../../core/PipelineManager","../../utils/Logger"],function(e,t,n,i,s){"use strict";const a=e["BasePlugin"];const r=t["UI5_EVENT"];const o=i["GlobalPipeline"];const l=s["Logger"];class u extends a{_asHost(e){const t=e;if(typeof t.getSchemaDefinition==="function"){return t}return null}findParentHost(e){let t=e.getParent();while(t){if(this._asHost(t)){return t}t=t.getParent()}return null}render(e,t,i="meta",s,a){this.onChange=a;this.metadata=e;const o=t.startsWith("/")?t.substring(1):t;const u=e.ui?.label||o;this.control=new n({id:this.generateStableId(s,t),text:!this.isEditable?`View Link: ${u}`:`Edit Link: ${u}`,icon:"sap-icon://chain-link",press:n=>{const s=n.getSource();if(!this.metadata?.$ref){l.error(`[ReferencePlugin] FATAL: this.metadata.$ref is MISSING or UNDEFINED! Cannot resolve child schema.`);return}const a=this.findParentHost(s);const c=a?this._asHost(a):null;if(!c){l.error("[ReferencePlugin] FATAL: Could not locate parent GeneratorHost via duck typing `getSchemaDefinition`.");return}const d=c.getSchemaDefinition(this.metadata.$ref);if(!d){const e=Object.keys(c.getProperty("schemaDefinitions")||{});l.error(`[ReferencePlugin] FATAL: Schema definition not found for reference: ${this.metadata.$ref}. Dumping parent schemaDefinitions keys: ${e.join(", ")}`);return}const f=s.getModel(i);if(!f){l.error(`[ReferencePlugin] FATAL: Could not get JSONModel named '${i}' from the button.`);return}const h=s.getBindingContext(i);let g=t;if(h&&!t.startsWith("/")){const e=h.getPath();g=e.endsWith("/")?e+t:e==="/"?"/"+t:e+"/"+t}const m=f.getProperty(g);const p=m?JSON.parse(JSON.stringify(m)):{};sap.ui.require(["nz/co/siliconst/ui5/metaui/controls/DynamicHost"],t=>{const n=t.default||t;const i=new n({schemaDefinition:d,schemaDefinitions:c.getProperty("schemaDefinitions"),data:p,editable:this.isEditable,useMessageManager:this.useMessageManager});i.attachEvent("validationError",e=>{c.fireEvent("validationError",e.getParameters())});i.attachEvent("validationSuccess",e=>{c.fireEvent("validationSuccess",e.getParameters())});if(!!this.isEditable){i.attachEvent(r.SUBMIT,e=>{const t=e.getParameter("payload");f.setProperty(g,t);if(this.onChange){this.onChange(true,o)}})}const a=e.ui?.dialogButtonText||(!this.isEditable?"Close":"OK");try{i.openInDialog(`Nested Link: ${u}`,a,undefined,undefined,s)}catch(e){l.error(`[ReferencePlugin] FATAL ERROR CALLING openInDialog:`,e.message)}})}});return this.control}validate(){if(!this.metadata?.$ref||!this.control)return{isValid:true};const e=this.findParentHost(this.control);const t=e?this._asHost(e):null;if(!t)return{isValid:true};const n=t.getSchemaDefinition(this.metadata.$ref);if(!n||!n.properties)return{isValid:true};const i=this.control.getModel(this.modelName);if(!i)return{isValid:true};let s=this.getAbsoluteBindingPath();const a=i.getProperty(s)||{};for(const e of Object.keys(n.properties)){const t=n.properties[e];const i=a[e];if(t.required&&(i===undefined||i===null||i==="")){const t=`Field '${e}' is required in referenced object.`;this.setVisualValidationState(false,t);return{isValid:false,errorMessage:t}}const s=[];const r={};if(t.maxLength!==undefined){s.push("maxLength");r["maxLength"]=t.maxLength}if(t.minLength!==undefined){s.push("minLength");r["minLength"]=t.minLength}if(t.pattern!==undefined){s.push("pattern");r["pattern"]={regex:t.pattern}}if(t.minimum!==undefined||t.maximum!==undefined){s.push("range");r["range"]={min:t.minimum,max:t.maximum}}const l=t.ui?.format;if(l==="email"||l==="url"||l==="iban"){s.push(l)}if(s.length>0){const t=o.executeValidation(i,s,r);if(!t.isValid){const n=`Field '${e}' in reference: ${t.errorMessage}`;this.setVisualValidationState(false,n);return{isValid:false,errorMessage:n}}}}this.setVisualValidationState(true);return{isValid:true}}getValue(){return null}applyState(){if(this.control&&this.metadata){this.control.setEnabled(!this.metadata.ui?.readOnly)}}}var c={__esModule:true};c.ReferencePlugin=u;return c});
|
|
2
2
|
//# sourceMappingURL=ReferencePlugin.js.map
|