@siliconst/metaui 1.4.21 → 1.4.37
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 +111 -0
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts +95 -0
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.ts +101 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +2 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +47 -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 +6 -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 +62 -66
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +0 -9
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +0 -9
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +3 -9
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +0 -11
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +0 -11
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +2 -9
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +2 -7
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +0 -5
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +3 -7
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +1 -6
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +0 -5
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +9 -12
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +170 -74
- 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 +29 -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 +179 -79
- 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 +5 -3
- 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 +46 -38
- 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/ODataDelegate-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +8 -7
- 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 +5 -2
- 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 +10 -5
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +215 -38
- 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 +218 -40
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js +86 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts +16 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.ts +82 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js +142 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts +24 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.ts +147 -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 +153 -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 +15 -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 +164 -53
- package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js +310 -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 +73 -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 +307 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +35 -14
- 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.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 +40 -15
- 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 +23 -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 +27 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +31 -36
- 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 +26 -29
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +47 -11
- 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 +48 -12
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js +74 -58
- 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.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 +3 -2
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.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 +3 -3
- 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/OpenApiHeuristicEngine-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.ts +2 -2
- 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.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 +15 -11
- 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 +4 -4
- 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 +24 -16
- 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 +4 -4
- 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 +22 -15
- 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 +8 -72
- 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 +45 -108
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +2 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +24 -18
- 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 +23 -21
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +5 -5
- 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 +7 -7
- 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 +46 -10
- 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 +145 -15
- 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 +4 -4
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +3 -3
- 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 +5 -5
- 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 +10 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js +3 -3
- 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 +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +3 -3
- 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 +5 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +4 -4
- 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 +5 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js +3 -3
- 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 +4 -4
- 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 +7 -6
- 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 +36 -21
- 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 +40 -23
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +9 -6
- 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 +10 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js +3 -3
- 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 +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +3 -3
- 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 +5 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +29 -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 +30 -10
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +4 -4
- 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 +5 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +4 -4
- 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 +5 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +3 -3
- 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 +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +3 -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 +5 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +3 -3
- 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 +4 -4
- 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 +3 -3
- 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 +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +4 -4
- 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 +5 -5
- 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.d.ts.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 +5 -3
- 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 +6 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +30 -9
- 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 +2 -2
- 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 +41 -13
- 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.d.ts.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 +5 -3
- 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/utils/Logger-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/utils/Logger.ts +1 -1
- 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
|
@@ -5,6 +5,7 @@ import { SchemaNormalizer } from "../../core/SchemaNormalizer";
|
|
|
5
5
|
import { SchemaValidator } from "../../core/SchemaValidator";
|
|
6
6
|
import { Engine } from "../../core/Engine";
|
|
7
7
|
import { StateManager } from "../../core/StateManager";
|
|
8
|
+
import { PolicyEngine } from "../../core/PolicyEngine";
|
|
8
9
|
import { DataSyncDelegate } from "./delegates/DataSyncDelegate";
|
|
9
10
|
import { ValidationDelegate } from "./delegates/ValidationDelegate";
|
|
10
11
|
import { DialogDelegate } from "./delegates/DialogDelegate";
|
|
@@ -12,6 +13,9 @@ import MessageBox from "sap/m/MessageBox";
|
|
|
12
13
|
import MessageStrip from "sap/m/MessageStrip";
|
|
13
14
|
import VBox from "sap/m/VBox";
|
|
14
15
|
import { PluginRegistry } from "../../core/PluginRegistry";
|
|
16
|
+
import { LayoutScorer } from "../../core/LayoutScorer";
|
|
17
|
+
import { LayoutMutator } from "../../core/LayoutMutator";
|
|
18
|
+
import { DefaultLayoutGenerator } from "../../core/DefaultLayoutGenerator";
|
|
15
19
|
import type { ISchema } from "../../interfaces/ISchema";
|
|
16
20
|
|
|
17
21
|
/**
|
|
@@ -27,7 +31,16 @@ export default class GeneratorHost extends Control {
|
|
|
27
31
|
|
|
28
32
|
protected stateManager: StateManager | null = null;
|
|
29
33
|
protected generatedContent: Control | null = null;
|
|
34
|
+
/** The embedded engine responsible for rendering the UI controls */
|
|
30
35
|
protected engine: Engine | null = null;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The Policy-Based Rules Engine.
|
|
39
|
+
* Continuously evaluates declarative cross-field rules and pushes visual/structural mutations down into the plugins.
|
|
40
|
+
*/
|
|
41
|
+
protected policyEngine: PolicyEngine | null = null;
|
|
42
|
+
|
|
43
|
+
private policyDebounceTimer: any = null;
|
|
31
44
|
protected activeModelName: string = "";
|
|
32
45
|
|
|
33
46
|
protected dataSyncDelegate!: DataSyncDelegate;
|
|
@@ -48,7 +61,9 @@ export default class GeneratorHost extends Control {
|
|
|
48
61
|
useMessageManager: { type: "boolean", defaultValue: false },
|
|
49
62
|
modelName: { type: "string", defaultValue: "meta" },
|
|
50
63
|
debugMode: { type: "boolean", defaultValue: false },
|
|
51
|
-
editable: { type: "boolean", defaultValue: true }
|
|
64
|
+
editable: { type: "boolean", defaultValue: true },
|
|
65
|
+
layoutBudget: { type: "int", defaultValue: 0 },
|
|
66
|
+
engineScopeId: { type: "string", defaultValue: null }
|
|
52
67
|
},
|
|
53
68
|
aggregations: {
|
|
54
69
|
_content: { type: "sap.ui.core.Control", multiple: false, visibility: "hidden" }
|
|
@@ -104,7 +119,7 @@ export default class GeneratorHost extends Control {
|
|
|
104
119
|
* Standard UI5 Constructor.
|
|
105
120
|
*/
|
|
106
121
|
constructor(idOrSettings?: string | object, settings?: object) {
|
|
107
|
-
super(idOrSettings, settings);
|
|
122
|
+
super(idOrSettings as string, settings);
|
|
108
123
|
}
|
|
109
124
|
|
|
110
125
|
/**
|
|
@@ -118,7 +133,7 @@ export default class GeneratorHost extends Control {
|
|
|
118
133
|
// Initialize Composition Delegates
|
|
119
134
|
this.dataSyncDelegate = new DataSyncDelegate(this);
|
|
120
135
|
this.validationDelegate = new ValidationDelegate(this);
|
|
121
|
-
this.dialogDelegate = new DialogDelegate(this);
|
|
136
|
+
this.dialogDelegate = new DialogDelegate(this as any);
|
|
122
137
|
|
|
123
138
|
this.onInternalFieldChange = this.onInternalFieldChange.bind(this);
|
|
124
139
|
}
|
|
@@ -132,16 +147,6 @@ export default class GeneratorHost extends Control {
|
|
|
132
147
|
return this;
|
|
133
148
|
}
|
|
134
149
|
|
|
135
|
-
/**
|
|
136
|
-
* Intercepts property updates to dynamically forward them to active delegates/managers.
|
|
137
|
-
*/
|
|
138
|
-
public setProperty(propertyName: string, value: unknown, suppressInvalidate?: boolean): this {
|
|
139
|
-
super.setProperty(propertyName, value, suppressInvalidate);
|
|
140
|
-
if (propertyName === "useMessageManager" && this.stateManager) {
|
|
141
|
-
this.stateManager.setUseMessageManager(value === true);
|
|
142
|
-
}
|
|
143
|
-
return this;
|
|
144
|
-
}
|
|
145
150
|
|
|
146
151
|
/**
|
|
147
152
|
* Returns the active state manager instance managing the JSON payload.
|
|
@@ -208,6 +213,55 @@ export default class GeneratorHost extends Control {
|
|
|
208
213
|
payload: payload,
|
|
209
214
|
isValid: isValid
|
|
210
215
|
});
|
|
216
|
+
|
|
217
|
+
// Trigger PBRE Live Evaluation
|
|
218
|
+
if (this.policyEngine && fieldKey) {
|
|
219
|
+
if (this.policyDebounceTimer) clearTimeout(this.policyDebounceTimer);
|
|
220
|
+
this.policyDebounceTimer = setTimeout(() => {
|
|
221
|
+
this.evaluatePolicies();
|
|
222
|
+
}, 200);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Executes the PBRE policy evaluations and orchestrates the delta updates to the UI plugins.
|
|
228
|
+
* Acts as the bridge between the headless PolicyEngine calculations and the physical UI5 plugins.
|
|
229
|
+
*
|
|
230
|
+
* @param changedPath The specific JSON path that triggered the evaluation (used for incremental sweeps).
|
|
231
|
+
* If undefined, a full engine sweep is performed (e.g. during initial render or manual submit).
|
|
232
|
+
*/
|
|
233
|
+
private evaluatePolicies(): void {
|
|
234
|
+
if (!this.policyEngine || !this.stateManager || !this.engine) return;
|
|
235
|
+
const payload = this.stateManager.extractPayload();
|
|
236
|
+
const deltas = this.policyEngine.evaluate(payload);
|
|
237
|
+
for (const delta of deltas) {
|
|
238
|
+
const plugin = this.engine.getPluginByPath(delta.target);
|
|
239
|
+
if (plugin) {
|
|
240
|
+
// Systemic Failsafe: State Pruning on Hide/Disable
|
|
241
|
+
if ((delta.property === "visibility" || delta.property === "editable") && delta.value === false) {
|
|
242
|
+
this.stateManager.setProperty(delta.target, undefined);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
switch (delta.property) {
|
|
246
|
+
case "visibility":
|
|
247
|
+
if (plugin.applyVisibility) plugin.applyVisibility(delta.value);
|
|
248
|
+
break;
|
|
249
|
+
case "validity":
|
|
250
|
+
if (delta.value) {
|
|
251
|
+
this.engine.reportPolicyError(delta.target, null);
|
|
252
|
+
} else {
|
|
253
|
+
this.engine.reportPolicyError(delta.target, delta.errorMessage || "Validation failed by policy");
|
|
254
|
+
}
|
|
255
|
+
break;
|
|
256
|
+
case "required":
|
|
257
|
+
if (plugin.applyRequired) plugin.applyRequired(delta.value);
|
|
258
|
+
break;
|
|
259
|
+
case "editable":
|
|
260
|
+
if (plugin.applyEditable) plugin.applyEditable(delta.value);
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
211
265
|
}
|
|
212
266
|
|
|
213
267
|
/**
|
|
@@ -275,14 +329,22 @@ export default class GeneratorHost extends Control {
|
|
|
275
329
|
|
|
276
330
|
this.validationDelegate.removeAllMessages();
|
|
277
331
|
|
|
278
|
-
//
|
|
279
|
-
|
|
280
|
-
|
|
332
|
+
// Run PBRE Full Sweep before validation to ensure visibility states are perfect
|
|
333
|
+
if (this.policyEngine) {
|
|
334
|
+
this.evaluatePolicies();
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// PBRE Architecture Rule 12: Controls are deliberately isolated from UI5's native
|
|
338
|
+
// MessageManager auto-sync. We must explicitly instruct plugins to paint their
|
|
339
|
+
// visual red borders (ValueState) manually during a full form submission sweep.
|
|
340
|
+
const errors = this.engine.validateAll(true);
|
|
281
341
|
if (errors.length > 0) {
|
|
282
|
-
this.
|
|
342
|
+
if (this.getProperty("useMessageManager") === true) {
|
|
343
|
+
this.validationDelegate.pushMessage("", "One or more fields failed schema validation. Please review the highlighted fields.");
|
|
344
|
+
}
|
|
283
345
|
for (const err of errors) {
|
|
284
346
|
if (err.fieldKey && err.errorMessage) {
|
|
285
|
-
this.validationDelegate.pushMessage(err.fieldKey, err.errorMessage);
|
|
347
|
+
this.validationDelegate.pushMessage(err.fieldKey, err.errorMessage, err.fieldLabel);
|
|
286
348
|
}
|
|
287
349
|
}
|
|
288
350
|
return false;
|
|
@@ -296,8 +358,10 @@ export default class GeneratorHost extends Control {
|
|
|
296
358
|
preventDefault: () => { isPrevented = true; },
|
|
297
359
|
addError: (propertyPath: string, errorMessage: string) => {
|
|
298
360
|
isPrevented = true;
|
|
299
|
-
this.
|
|
300
|
-
|
|
361
|
+
if (this.getProperty("useMessageManager") === true) {
|
|
362
|
+
this.validationDelegate.pushMessage(propertyPath, errorMessage);
|
|
363
|
+
}
|
|
364
|
+
if (this.engine) {
|
|
301
365
|
const plugin = this.engine.getPluginByPath(propertyPath);
|
|
302
366
|
if (plugin && typeof plugin.setVisualValidationState === "function") {
|
|
303
367
|
plugin.setVisualValidationState(false, errorMessage);
|
|
@@ -357,6 +421,10 @@ export default class GeneratorHost extends Control {
|
|
|
357
421
|
* or forces a full UI teardown if it's a structural property change (like schemaDefinition).
|
|
358
422
|
*/
|
|
359
423
|
public setProperty(propertyName: string, value: unknown, suppressInvalidate?: boolean): this {
|
|
424
|
+
if (propertyName === "useMessageManager" && this.stateManager) {
|
|
425
|
+
this.stateManager.setUseMessageManager(value === true);
|
|
426
|
+
}
|
|
427
|
+
|
|
360
428
|
if (propertyName === "dataJson" || propertyName === "data") {
|
|
361
429
|
this.dataSyncDelegate.handleInputDataHotSwap(propertyName, value, suppressInvalidate);
|
|
362
430
|
return this;
|
|
@@ -434,34 +502,39 @@ export default class GeneratorHost extends Control {
|
|
|
434
502
|
this.stateManager = null;
|
|
435
503
|
}
|
|
436
504
|
|
|
437
|
-
|
|
505
|
+
let rawSchema = this.getProperty("schemaDefinition");
|
|
506
|
+
if (rawSchema && typeof rawSchema === "object") {
|
|
507
|
+
rawSchema = JSON.parse(JSON.stringify(rawSchema));
|
|
508
|
+
}
|
|
438
509
|
const isSchemaEmpty = !rawSchema || (typeof rawSchema === "object" && Object.keys(rawSchema).length === 0);
|
|
439
510
|
|
|
440
511
|
let inputData = this.getProperty("data");
|
|
441
512
|
const inputDataJson = this.getProperty("dataJson");
|
|
442
513
|
|
|
514
|
+
let dataParseError = "";
|
|
515
|
+
|
|
443
516
|
if (inputDataJson) {
|
|
444
517
|
try {
|
|
445
518
|
inputData = JSON.parse(inputDataJson as string);
|
|
446
519
|
} catch (e) {
|
|
447
|
-
|
|
448
|
-
Logger.error("[MetaUI]",
|
|
449
|
-
this.fireEvent("error", { message:
|
|
450
|
-
|
|
520
|
+
dataParseError = "Failed to parse inputDataJson string: " + (e as Error).message;
|
|
521
|
+
Logger.error("[MetaUI]", dataParseError, "GeneratorHost");
|
|
522
|
+
this.fireEvent("error", { message: dataParseError, exception: e });
|
|
523
|
+
inputData = {}; // Fallback to empty object to allow schema to render
|
|
451
524
|
}
|
|
452
525
|
} else if (typeof inputData === "string") {
|
|
453
526
|
try {
|
|
454
527
|
inputData = JSON.parse(inputData);
|
|
455
528
|
} catch (e) {
|
|
456
|
-
|
|
457
|
-
Logger.error("[MetaUI]",
|
|
458
|
-
this.fireEvent("error", { message:
|
|
459
|
-
|
|
529
|
+
dataParseError = "Failed to parse inputData string: " + (e as Error).message;
|
|
530
|
+
Logger.error("[MetaUI]", dataParseError, "GeneratorHost");
|
|
531
|
+
this.fireEvent("error", { message: dataParseError, exception: e });
|
|
532
|
+
inputData = {}; // Fallback to empty object to allow schema to render
|
|
460
533
|
}
|
|
461
534
|
}
|
|
462
535
|
|
|
463
|
-
// The internal payload represents the user's latest un-extracted edits. It must take priority.
|
|
464
|
-
const finalData = internalPayload || inputData;
|
|
536
|
+
// The internal payload represents the user's latest un-extracted edits. It must take priority, unless an external data-swap failed.
|
|
537
|
+
const finalData = dataParseError ? inputData : (internalPayload || inputData);
|
|
465
538
|
|
|
466
539
|
if (!finalData || Object.keys(finalData).length === 0) {
|
|
467
540
|
if (isSchemaEmpty) {
|
|
@@ -479,6 +552,12 @@ export default class GeneratorHost extends Control {
|
|
|
479
552
|
this.parsedSchema = normalizedSchema as Record<string, unknown>;
|
|
480
553
|
|
|
481
554
|
if (normalizedSchema) {
|
|
555
|
+
if (normalizedSchema.uiPolicies && normalizedSchema.uiPolicies.length > 0) {
|
|
556
|
+
this.policyEngine = new PolicyEngine(normalizedSchema.uiPolicies);
|
|
557
|
+
} else {
|
|
558
|
+
this.policyEngine = null;
|
|
559
|
+
}
|
|
560
|
+
|
|
482
561
|
const schemaErrors = SchemaValidator.validateSchemaStructure(normalizedSchema);
|
|
483
562
|
if (schemaErrors.length > 0) {
|
|
484
563
|
const errorMsg = "Schema Structural Errors Found:\n- " + schemaErrors.join("\n- ");
|
|
@@ -491,10 +570,50 @@ export default class GeneratorHost extends Control {
|
|
|
491
570
|
}
|
|
492
571
|
}
|
|
493
572
|
|
|
573
|
+
const rawDefinitions = this.getProperty("schemaDefinitions") as Record<string, any> || {};
|
|
574
|
+
|
|
575
|
+
// Extract any definitions embedded inside the root schema definition
|
|
576
|
+
let parsedRawSchema = rawSchema;
|
|
577
|
+
if (typeof rawSchema === "string" && rawSchema.trim() !== "") {
|
|
578
|
+
try {
|
|
579
|
+
parsedRawSchema = JSON.parse(rawSchema);
|
|
580
|
+
} catch (e) {
|
|
581
|
+
// Ignore parse errors here; SchemaNormalizer will throw loudly later if invalid.
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
if (parsedRawSchema && typeof parsedRawSchema === "object" && (parsedRawSchema as any).definitions) {
|
|
586
|
+
Object.assign(rawDefinitions, (parsedRawSchema as any).definitions);
|
|
587
|
+
this.setProperty("schemaDefinitions", rawDefinitions, true);
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
let normalizedDefinitions: Record<string, ISchema> | undefined;
|
|
591
|
+
if (Object.keys(rawDefinitions).length > 0) {
|
|
592
|
+
normalizedDefinitions = {};
|
|
593
|
+
for (const key in rawDefinitions) {
|
|
594
|
+
try {
|
|
595
|
+
normalizedDefinitions[key] = SchemaNormalizer.normalize(rawDefinitions[key]) as ISchema;
|
|
596
|
+
} catch (e) {
|
|
597
|
+
Logger.warn(`[MetaUI] Failed to normalize schema definition '${key}'`, "", "GeneratorHost");
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
const budget = this.getProperty("layoutBudget") as number;
|
|
603
|
+
|
|
604
|
+
// Ensure we have a uiLayout synthesized before applying scoring and mutation
|
|
605
|
+
// (crucial for inferred/swagger schemas)
|
|
606
|
+
if (DefaultLayoutGenerator.ensureLayout(normalizedSchema as ISchema)) {
|
|
607
|
+
Logger.warn("[MetaUI GeneratorHost] Missing 'uiLayout' array in schema. Synthesized a default layout mapping to prevent a blank render.");
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
LayoutScorer.apply(normalizedSchema as ISchema, budget, normalizedDefinitions);
|
|
611
|
+
LayoutMutator.apply(normalizedSchema as ISchema);
|
|
612
|
+
|
|
494
613
|
const activePluginRegistry = this.getProperty("pluginRegistry") || PluginRegistry.getInstance();
|
|
495
614
|
|
|
496
615
|
const pathsToLoad = activePluginRegistry.getPathsToLoad(normalizedSchema as ISchema);
|
|
497
|
-
const needsNetworkLoad = Array.from(pathsToLoad).some((path:
|
|
616
|
+
const needsNetworkLoad = Array.from(pathsToLoad).some((path: any) => !sap.ui.require(path));
|
|
498
617
|
|
|
499
618
|
if (needsNetworkLoad) {
|
|
500
619
|
this.setBusy(true);
|
|
@@ -529,6 +648,11 @@ export default class GeneratorHost extends Control {
|
|
|
529
648
|
this.onInternalFieldChange.bind(this)
|
|
530
649
|
);
|
|
531
650
|
|
|
651
|
+
// Defect #15: PBRE Initialization Blackout - Force headless evaluation of initial visibility state
|
|
652
|
+
if (this.policyEngine) {
|
|
653
|
+
this.evaluatePolicies();
|
|
654
|
+
}
|
|
655
|
+
|
|
532
656
|
let contentContainer = this.generatedContent;
|
|
533
657
|
|
|
534
658
|
const hasProperties = normalizedSchema && Object.keys(normalizedSchema).length > 0;
|
|
@@ -538,12 +662,30 @@ export default class GeneratorHost extends Control {
|
|
|
538
662
|
text: "Warning: The generated UI is blank. Reason: The schema (or inferred schema) contains no valid properties to render.",
|
|
539
663
|
type: "Warning",
|
|
540
664
|
showIcon: true,
|
|
541
|
-
showCloseButton:
|
|
665
|
+
showCloseButton: true
|
|
542
666
|
});
|
|
543
|
-
strip.addStyleClass("
|
|
667
|
+
strip.addStyleClass("sapUiSmallMargin");
|
|
544
668
|
contentContainer = new VBox({
|
|
545
|
-
items: [strip
|
|
669
|
+
items: [strip]
|
|
546
670
|
});
|
|
671
|
+
} else if (dataParseError) {
|
|
672
|
+
const strip = new MessageStrip({
|
|
673
|
+
text: "Data Error: " + dataParseError + ". The form has been rendered with a blank dataset.",
|
|
674
|
+
type: "Error",
|
|
675
|
+
showIcon: true,
|
|
676
|
+
showCloseButton: true
|
|
677
|
+
});
|
|
678
|
+
strip.addStyleClass("sapUiSmallMargin");
|
|
679
|
+
|
|
680
|
+
if (typeof (contentContainer as any).insertItem === "function") {
|
|
681
|
+
(contentContainer as any).insertItem(strip, 0);
|
|
682
|
+
} else if (typeof (contentContainer as any).insertContent === "function") {
|
|
683
|
+
(contentContainer as any).insertContent(strip, 0);
|
|
684
|
+
} else {
|
|
685
|
+
contentContainer = new VBox({
|
|
686
|
+
items: [strip, this.generatedContent!]
|
|
687
|
+
});
|
|
688
|
+
}
|
|
547
689
|
} else if (this.engine.hasPartialRenderingErrors) {
|
|
548
690
|
const strip = new MessageStrip({
|
|
549
691
|
text: "Layout partially rendered. Some fields failed to generate due to configuration errors.",
|
|
@@ -564,8 +706,7 @@ export default class GeneratorHost extends Control {
|
|
|
564
706
|
this.dataSyncDelegate.pushToBindings(payload);
|
|
565
707
|
|
|
566
708
|
// Retroactively expand the dialog if the heuristic determines it needs more space
|
|
567
|
-
|
|
568
|
-
this.dialogDelegate.updateDialogWidthDynamically(optimalWidth);
|
|
709
|
+
this.dialogDelegate.calculateAndApplyOptimalWidth(this.parsedSchema);
|
|
569
710
|
|
|
570
711
|
} catch (error) {
|
|
571
712
|
this.setBusy(false);
|
|
@@ -577,54 +718,13 @@ export default class GeneratorHost extends Control {
|
|
|
577
718
|
}
|
|
578
719
|
}
|
|
579
720
|
|
|
580
|
-
/**
|
|
581
|
-
* Helper to heuristically calculate optimal dialog width based on schema content.
|
|
582
|
-
*/
|
|
583
|
-
private calculateOptimalDialogWidth(schema: Record<string, any> | null): string {
|
|
584
|
-
if (!schema) return "auto";
|
|
585
|
-
let requiresWideDialog = false;
|
|
586
|
-
|
|
587
|
-
const scanProperties = (props: Record<string, any>) => {
|
|
588
|
-
if (requiresWideDialog) return;
|
|
589
|
-
for (const key in props) {
|
|
590
|
-
const prop = props[key];
|
|
591
|
-
if (prop.type === "array") {
|
|
592
|
-
requiresWideDialog = true;
|
|
593
|
-
return;
|
|
594
|
-
}
|
|
595
|
-
if (prop.ui?.fullWidth === true) {
|
|
596
|
-
requiresWideDialog = true;
|
|
597
|
-
return;
|
|
598
|
-
}
|
|
599
|
-
if (prop.ui?.widget === "codeEditor" || prop.ui?.widget === "textArea" || prop.ui?.widget === "richText") {
|
|
600
|
-
requiresWideDialog = true;
|
|
601
|
-
return;
|
|
602
|
-
}
|
|
603
|
-
if (prop.properties) scanProperties(prop.properties);
|
|
604
|
-
if (prop.items && prop.items.properties) scanProperties(prop.items.properties);
|
|
605
|
-
}
|
|
606
|
-
};
|
|
607
721
|
|
|
608
|
-
if (schema.type === "array") return "80vw";
|
|
609
|
-
if (schema.properties) {
|
|
610
|
-
scanProperties(schema.properties);
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
return requiresWideDialog ? "80vw" : "auto";
|
|
614
|
-
}
|
|
615
722
|
|
|
616
723
|
/**
|
|
617
724
|
* Programmatic API. Re-parents the generated content into a dialog and opens it.
|
|
618
725
|
*/
|
|
619
726
|
public openInDialog(title: string = "Form", submitButtonText: string = "OK", cancelButtonText: string = "Cancel", dialogWidth: string = "auto", parentView?: Control): void {
|
|
620
727
|
const isGenerated = !!this.generatedContent;
|
|
621
|
-
|
|
622
|
-
// If we already have the schema parsed, we can calculate it instantly to prevent flicker
|
|
623
|
-
let finalWidth = dialogWidth;
|
|
624
|
-
if (finalWidth === "auto" && this.parsedSchema) {
|
|
625
|
-
finalWidth = this.calculateOptimalDialogWidth(this.parsedSchema);
|
|
626
|
-
}
|
|
627
|
-
|
|
628
|
-
this.dialogDelegate.openInDialog(title, submitButtonText, isGenerated, cancelButtonText, finalWidth, parentView);
|
|
728
|
+
this.dialogDelegate.openInDialog(title, submitButtonText, isGenerated, cancelButtonText, dialogWidth, parentView);
|
|
629
729
|
}
|
|
630
730
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sap.ui.define(["
|
|
1
|
+
sap.ui.define(["../../../utils/Logger", "../../../core/SchemaNormalizer"], function (_____utils_Logger, _____core_SchemaNormalizer) {
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
4
|
const Logger = _____utils_Logger["Logger"];
|
|
@@ -7,9 +7,7 @@ sap.ui.define(["sap/base/util/deepEqual", "sap/base/util/extend", "../../../util
|
|
|
7
7
|
* Handles two-way data sync, JSON parsing, loop-breaking, and inference structural diffs.
|
|
8
8
|
*/
|
|
9
9
|
class DataSyncDelegate {
|
|
10
|
-
|
|
11
|
-
_lastPushedPayloadObj = null;
|
|
12
|
-
_lastReceivedInputObj = null;
|
|
10
|
+
_isSyncing = false;
|
|
13
11
|
|
|
14
12
|
/**
|
|
15
13
|
* Initializes a new DataSyncDelegate to handle data payload binding extraction.
|
|
@@ -23,14 +21,11 @@ sap.ui.define(["sap/base/util/deepEqual", "sap/base/util/extend", "../../../util
|
|
|
23
21
|
* Natively forces the UI5 framework to push updated properties back up to any bound ViewModels.
|
|
24
22
|
*/
|
|
25
23
|
pushToBindings(payload) {
|
|
24
|
+
this._isSyncing = true;
|
|
26
25
|
const payloadStr = JSON.stringify(payload, null, 2);
|
|
27
|
-
|
|
28
|
-
// Cache exact payload output to catch echoes on the inbound side
|
|
29
|
-
this._lastPushedPayloadJson = payloadStr;
|
|
30
|
-
this._lastPushedPayloadObj = deepEqual({}, payload) ? null : JSON.parse(JSON.stringify(payload)); // Safe clone
|
|
31
|
-
|
|
32
26
|
this.host.setProperty("data", payload, true);
|
|
33
27
|
this.host.setProperty("dataJson", payloadStr, true);
|
|
28
|
+
this._isSyncing = false;
|
|
34
29
|
}
|
|
35
30
|
|
|
36
31
|
/**
|
|
@@ -42,7 +37,7 @@ sap.ui.define(["sap/base/util/deepEqual", "sap/base/util/extend", "../../../util
|
|
|
42
37
|
try {
|
|
43
38
|
incomingObj = JSON.parse(value);
|
|
44
39
|
} catch (e) {
|
|
45
|
-
this.host.setBaseProperty(propertyName, value,
|
|
40
|
+
this.host.setBaseProperty(propertyName, value, false); // Invalidate to force rendering engine to display the error strip
|
|
46
41
|
return;
|
|
47
42
|
}
|
|
48
43
|
} else {
|
|
@@ -52,25 +47,13 @@ sap.ui.define(["sap/base/util/deepEqual", "sap/base/util/extend", "../../../util
|
|
|
52
47
|
this.host.setBaseProperty(propertyName, value, true);
|
|
53
48
|
return;
|
|
54
49
|
}
|
|
55
|
-
|
|
56
|
-
// Loop Breaker 1: Stale Data Injection
|
|
57
|
-
if (this._lastReceivedInputObj && deepEqual(incomingObj, this._lastReceivedInputObj)) {
|
|
58
|
-
if (this.host.getProperty("debugMode")) {
|
|
59
|
-
Logger.debug("[MetaUI]", `Dropped stale data injection for ${propertyName}`, "DataSyncDelegate");
|
|
60
|
-
}
|
|
61
|
-
this.host.setBaseProperty(propertyName, value, suppressInvalidate);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// Loop Breaker 2: Two-Way Data Echoes
|
|
66
|
-
if (this._lastPushedPayloadObj && deepEqual(incomingObj, this._lastPushedPayloadObj)) {
|
|
50
|
+
if (this._isSyncing) {
|
|
67
51
|
if (this.host.getProperty("debugMode")) {
|
|
68
|
-
Logger.debug("[MetaUI]", `Dropped echo for ${propertyName}`, "DataSyncDelegate");
|
|
52
|
+
Logger.debug("[MetaUI]", `Dropped echo for ${propertyName} due to active sync lock`, "DataSyncDelegate");
|
|
69
53
|
}
|
|
70
54
|
this.host.setBaseProperty(propertyName, value, suppressInvalidate);
|
|
71
55
|
return;
|
|
72
56
|
}
|
|
73
|
-
this._lastReceivedInputObj = extend(true, {}, incomingObj);
|
|
74
57
|
if (this.host.getProperty("debugMode")) {
|
|
75
58
|
Logger.debug("[MetaUI]", `Accepted external injection for ${propertyName}`, "DataSyncDelegate");
|
|
76
59
|
}
|
|
@@ -83,9 +66,9 @@ sap.ui.define(["sap/base/util/deepEqual", "sap/base/util/extend", "../../../util
|
|
|
83
66
|
try {
|
|
84
67
|
stateManager.getModel().setData(incomingObj, false);
|
|
85
68
|
if (!this.host.getProperty("schemaDefinition") && typeof this.host.getParsedSchema === "function") {
|
|
86
|
-
const newInferredSchema = SchemaNormalizer.inferSchemaFromData(incomingObj);
|
|
87
69
|
const parsedSchema = this.host.getParsedSchema();
|
|
88
|
-
|
|
70
|
+
const newInferredSchema = SchemaNormalizer.inferSchemaFromData(incomingObj);
|
|
71
|
+
if (!this.deepEquals(newInferredSchema, parsedSchema)) {
|
|
89
72
|
this.host.tearDownGeneratedLayout();
|
|
90
73
|
this.host.invalidate();
|
|
91
74
|
}
|
|
@@ -97,6 +80,23 @@ sap.ui.define(["sap/base/util/deepEqual", "sap/base/util/extend", "../../../util
|
|
|
97
80
|
}
|
|
98
81
|
}
|
|
99
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Recursively compares two objects for equality, ignoring key order.
|
|
85
|
+
*/
|
|
86
|
+
deepEquals(a, b) {
|
|
87
|
+
if (a === b) return true;
|
|
88
|
+
if (typeof a !== "object" || typeof b !== "object" || a === null || b === null) return false;
|
|
89
|
+
if (Array.isArray(a) !== Array.isArray(b)) return false;
|
|
90
|
+
const keysA = Object.keys(a);
|
|
91
|
+
const keysB = Object.keys(b);
|
|
92
|
+
if (keysA.length !== keysB.length) return false;
|
|
93
|
+
for (const key of keysA) {
|
|
94
|
+
if (!keysB.includes(key)) return false;
|
|
95
|
+
if (!this.deepEquals(a[key], b[key])) return false;
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
100
|
/**
|
|
101
101
|
* Recursively scans an ISchema for `default` properties and injects them into the rootData
|
|
102
102
|
* object if those properties are currently undefined.
|
|
@@ -106,27 +106,30 @@ sap.ui.define(["sap/base/util/deepEqual", "sap/base/util/extend", "../../../util
|
|
|
106
106
|
*/
|
|
107
107
|
injectSchemaDefaults(schema, rootData, depth = 0) {
|
|
108
108
|
if (!schema || !rootData || typeof rootData !== "object" || depth > 8) return;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
109
|
+
const typedSchema = schema;
|
|
110
|
+
const typedRootData = rootData;
|
|
111
|
+
if (typedSchema.type === "object" && typedSchema.properties) {
|
|
112
|
+
const properties = typedSchema.properties;
|
|
113
|
+
for (const key of Object.keys(properties)) {
|
|
114
|
+
const propSchema = properties[key];
|
|
115
|
+
if (typedRootData[key] === undefined) {
|
|
113
116
|
if (propSchema.default !== undefined) {
|
|
114
|
-
|
|
117
|
+
typedRootData[key] = propSchema.default;
|
|
115
118
|
} else if (propSchema.type === "object") {
|
|
116
119
|
const tempObj = {};
|
|
117
120
|
this.injectSchemaDefaults(propSchema, tempObj, depth + 1);
|
|
118
121
|
if (Object.keys(tempObj).length > 0) {
|
|
119
|
-
|
|
122
|
+
typedRootData[key] = tempObj;
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
|
-
} else if (typeof
|
|
123
|
-
this.injectSchemaDefaults(propSchema,
|
|
125
|
+
} else if (typeof typedRootData[key] === "object" && typedRootData[key] !== null) {
|
|
126
|
+
this.injectSchemaDefaults(propSchema, typedRootData[key], depth + 1);
|
|
124
127
|
}
|
|
125
128
|
}
|
|
126
|
-
} else if (
|
|
127
|
-
for (let i = 0; i <
|
|
128
|
-
if (typeof
|
|
129
|
-
this.injectSchemaDefaults(
|
|
129
|
+
} else if (typedSchema.type === "array" && typedSchema.items && Array.isArray(typedRootData)) {
|
|
130
|
+
for (let i = 0; i < typedRootData.length; i++) {
|
|
131
|
+
if (typeof typedRootData[i] === "object" && typedRootData[i] !== null) {
|
|
132
|
+
this.injectSchemaDefaults(typedSchema.items, typedRootData[i], depth + 1);
|
|
130
133
|
}
|
|
131
134
|
}
|
|
132
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSyncDelegate-dbg.js","names":["Logger","_____utils_Logger","SchemaNormalizer","_____core_SchemaNormalizer","DataSyncDelegate","_lastPushedPayloadJson","_lastPushedPayloadObj","_lastReceivedInputObj","constructor","host","pushToBindings","payload","payloadStr","JSON","stringify","deepEqual","parse","setProperty","handleInputDataHotSwap","propertyName","value","suppressInvalidate","incomingObj","e","setBaseProperty","getProperty","debug","extend","stateManager","getStateManager","invalidate","getModel","setData","getParsedSchema","newInferredSchema","inferSchemaFromData","parsedSchema","tearDownGeneratedLayout","msg","message","error","Error","injectSchemaDefaults","schema","rootData","depth","type","properties","key","Object","keys","propSchema","undefined","default","tempObj","length","items","Array","isArray","i","__exports","__esModule"],"sources":["DataSyncDelegate.ts"],"sourcesContent":["import deepEqual from \"sap/base/util/deepEqual\";\nimport extend from \"sap/base/util/extend\";\nimport { Logger } from \"../../../utils/Logger\";\nimport { SchemaNormalizer } from \"../../../core/SchemaNormalizer\";\nimport PropertyBinding from \"sap/ui/model/PropertyBinding\";\nimport { StateManager } from \"../../../core/StateManager\";\n\nexport interface IHostDataSync {\n getProperty(name: string): unknown;\n setProperty(name: string, value: unknown, suppressInvalidate?: boolean): this;\n setBaseProperty(name: string, value: unknown, suppressInvalidate?: boolean): this;\n getBinding(name: string): unknown;\n invalidate(): void;\n getStateManager(): StateManager | null;\n getParsedSchema?(): Record<string, unknown> | null;\n tearDownGeneratedLayout(): void;\n}\n\n/**\n * Handles two-way data sync, JSON parsing, loop-breaking, and inference structural diffs.\n */\nexport class DataSyncDelegate {\n private host: IHostDataSync;\n private _lastPushedPayloadJson: string | null = null;\n private _lastPushedPayloadObj: Record<string, unknown> | null = null;\n private _lastReceivedInputObj: Record<string, unknown> | null = null;\n\n /**\n * Initializes a new DataSyncDelegate to handle data payload binding extraction.\n * @param host The parent host interface containing properties.\n */\n constructor(host: IHostDataSync) {\n this.host = host;\n }\n\n /**\n * Natively forces the UI5 framework to push updated properties back up to any bound ViewModels.\n */\n public pushToBindings(payload: Record<string, unknown>): void {\n const payloadStr = JSON.stringify(payload, null, 2);\n\n // Cache exact payload output to catch echoes on the inbound side\n this._lastPushedPayloadJson = payloadStr;\n this._lastPushedPayloadObj = deepEqual({}, payload) ? null : JSON.parse(JSON.stringify(payload)); // Safe clone\n\n this.host.setProperty(\"data\", payload, true);\n this.host.setProperty(\"dataJson\", payloadStr, true);\n }\n\n /**\n * Intercepts and parses live updates to the data payload from two-way Fiori bindings.\n */\n public handleInputDataHotSwap(propertyName: string, value: unknown, suppressInvalidate?: boolean): void {\n let incomingObj: Record<string, unknown> | null = null;\n\n if (typeof value === \"string\") {\n try {\n incomingObj = JSON.parse(value) as Record<string, unknown>;\n } catch (e) {\n this.host.setBaseProperty(propertyName, value, true);\n return;\n }\n } else {\n incomingObj = value as Record<string, unknown>;\n }\n\n if (incomingObj === null) {\n this.host.setBaseProperty(propertyName, value, true);\n return;\n }\n\n // Loop Breaker 1: Stale Data Injection\n if (this._lastReceivedInputObj && deepEqual(incomingObj, this._lastReceivedInputObj)) {\n if (this.host.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI]\", `Dropped stale data injection for ${propertyName}`, \"DataSyncDelegate\");\n }\n this.host.setBaseProperty(propertyName, value, suppressInvalidate);\n return;\n }\n\n // Loop Breaker 2: Two-Way Data Echoes\n if (this._lastPushedPayloadObj && deepEqual(incomingObj, this._lastPushedPayloadObj)) {\n if (this.host.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI]\", `Dropped echo for ${propertyName}`, \"DataSyncDelegate\");\n }\n this.host.setBaseProperty(propertyName, value, suppressInvalidate);\n return;\n }\n\n this._lastReceivedInputObj = extend(true, {}, incomingObj) as Record<string, unknown>;\n\n if (this.host.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI]\", `Accepted external injection for ${propertyName}`, \"DataSyncDelegate\");\n }\n\n this.host.setBaseProperty(propertyName, value, true);\n\n const stateManager = this.host.getStateManager();\n if (!stateManager) {\n this.host.invalidate();\n return;\n }\n\n try {\n stateManager.getModel().setData(incomingObj, false);\n\n if (!this.host.getProperty(\"schemaDefinition\") && typeof this.host.getParsedSchema === \"function\") {\n const newInferredSchema = SchemaNormalizer.inferSchemaFromData(incomingObj);\n const parsedSchema = this.host.getParsedSchema();\n if (!deepEqual(newInferredSchema, parsedSchema)) {\n this.host.tearDownGeneratedLayout();\n this.host.invalidate();\n }\n }\n } catch (e) {\n const msg = `Failed to hot-swap ${propertyName}: ` + (e as Error).message;\n Logger.error(\"[MetaUI]\", msg, \"DataSyncDelegate\");\n throw new Error(msg);\n }\n }\n\n /**\n * Recursively scans an ISchema for `default` properties and injects them into the rootData \n * object if those properties are currently undefined.\n * \n * @param schema The MetaUI ISchema tree.\n * @param rootData The data payload to mutate.\n */\n public injectSchemaDefaults(schema: unknown, rootData: unknown, depth: number = 0): void {\n if (!schema || !rootData || typeof rootData !== \"object\" || depth > 8) return;\n\n if (schema.type === \"object\" && schema.properties) {\n for (const key of Object.keys(schema.properties)) {\n const propSchema = schema.properties[key];\n \n if (rootData[key] === undefined) {\n if (propSchema.default !== undefined) {\n rootData[key] = propSchema.default;\n } else if (propSchema.type === \"object\") {\n const tempObj = {};\n this.injectSchemaDefaults(propSchema, tempObj, depth + 1);\n if (Object.keys(tempObj).length > 0) {\n rootData[key] = tempObj;\n }\n }\n } else if (typeof rootData[key] === \"object\" && rootData[key] !== null) {\n this.injectSchemaDefaults(propSchema, rootData[key], depth + 1);\n }\n }\n } else if (schema.type === \"array\" && schema.items && Array.isArray(rootData)) {\n for (let i = 0; i < rootData.length; i++) {\n if (typeof rootData[i] === \"object\" && rootData[i] !== null) {\n this.injectSchemaDefaults(schema.items, rootData[i], depth + 1);\n }\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DataSyncDelegate-dbg.js","names":["Logger","_____utils_Logger","SchemaNormalizer","_____core_SchemaNormalizer","DataSyncDelegate","_isSyncing","constructor","host","pushToBindings","payload","payloadStr","JSON","stringify","setProperty","handleInputDataHotSwap","propertyName","value","suppressInvalidate","incomingObj","parse","e","setBaseProperty","getProperty","debug","stateManager","getStateManager","invalidate","getModel","setData","getParsedSchema","parsedSchema","newInferredSchema","inferSchemaFromData","deepEquals","tearDownGeneratedLayout","msg","message","error","Error","a","b","Array","isArray","keysA","Object","keys","keysB","length","key","includes","injectSchemaDefaults","schema","rootData","depth","typedSchema","typedRootData","type","properties","propSchema","undefined","default","tempObj","items","i","__exports","__esModule"],"sources":["DataSyncDelegate.ts"],"sourcesContent":["\nimport { Logger } from \"../../../utils/Logger\";\nimport { SchemaNormalizer } from \"../../../core/SchemaNormalizer\";\nimport PropertyBinding from \"sap/ui/model/PropertyBinding\";\nimport { StateManager } from \"../../../core/StateManager\";\n\nexport interface IHostDataSync {\n getProperty(name: string): unknown;\n setProperty(name: string, value: unknown, suppressInvalidate?: boolean): this;\n setBaseProperty(name: string, value: unknown, suppressInvalidate?: boolean): this;\n getBinding(name: string): unknown;\n invalidate(): void;\n getStateManager(): StateManager | null;\n getParsedSchema?(): Record<string, unknown> | null;\n tearDownGeneratedLayout(): void;\n}\n\n/**\n * Handles two-way data sync, JSON parsing, loop-breaking, and inference structural diffs.\n */\nexport class DataSyncDelegate {\n private host: IHostDataSync;\n private _isSyncing: boolean = false;\n\n /**\n * Initializes a new DataSyncDelegate to handle data payload binding extraction.\n * @param host The parent host interface containing properties.\n */\n constructor(host: IHostDataSync) {\n this.host = host;\n }\n\n /**\n * Natively forces the UI5 framework to push updated properties back up to any bound ViewModels.\n */\n public pushToBindings(payload: Record<string, unknown>): void {\n this._isSyncing = true;\n const payloadStr = JSON.stringify(payload, null, 2);\n\n this.host.setProperty(\"data\", payload, true);\n this.host.setProperty(\"dataJson\", payloadStr, true);\n \n this._isSyncing = false;\n }\n\n /**\n * Intercepts and parses live updates to the data payload from two-way Fiori bindings.\n */\n public handleInputDataHotSwap(propertyName: string, value: unknown, suppressInvalidate?: boolean): void {\n let incomingObj: Record<string, unknown> | null = null;\n\n if (typeof value === \"string\") {\n try {\n incomingObj = JSON.parse(value) as Record<string, unknown>;\n } catch (e) {\n this.host.setBaseProperty(propertyName, value, false); // Invalidate to force rendering engine to display the error strip\n return;\n }\n } else {\n incomingObj = value as Record<string, unknown>;\n }\n\n if (incomingObj === null) {\n this.host.setBaseProperty(propertyName, value, true);\n return;\n }\n\n if (this._isSyncing) {\n if (this.host.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI]\", `Dropped echo for ${propertyName} due to active sync lock`, \"DataSyncDelegate\");\n }\n this.host.setBaseProperty(propertyName, value, suppressInvalidate);\n return;\n }\n\n if (this.host.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI]\", `Accepted external injection for ${propertyName}`, \"DataSyncDelegate\");\n }\n\n this.host.setBaseProperty(propertyName, value, true);\n\n const stateManager = this.host.getStateManager();\n if (!stateManager) {\n this.host.invalidate();\n return;\n }\n\n try {\n stateManager.getModel().setData(incomingObj, false);\n\n if (!this.host.getProperty(\"schemaDefinition\") && typeof this.host.getParsedSchema === \"function\") {\n const parsedSchema = this.host.getParsedSchema();\n const newInferredSchema = SchemaNormalizer.inferSchemaFromData(incomingObj);\n if (!this.deepEquals(newInferredSchema, parsedSchema)) {\n this.host.tearDownGeneratedLayout();\n this.host.invalidate();\n }\n }\n } catch (e) {\n const msg = `Failed to hot-swap ${propertyName}: ` + (e as Error).message;\n Logger.error(\"[MetaUI]\", msg, \"DataSyncDelegate\");\n throw new Error(msg);\n }\n }\n\n /**\n * Recursively compares two objects for equality, ignoring key order.\n */\n private deepEquals(a: any, b: any): boolean {\n if (a === b) return true;\n if (typeof a !== \"object\" || typeof b !== \"object\" || a === null || b === null) return false;\n if (Array.isArray(a) !== Array.isArray(b)) return false;\n\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n if (!keysB.includes(key)) return false;\n if (!this.deepEquals(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n /**\n * Recursively scans an ISchema for `default` properties and injects them into the rootData \n * object if those properties are currently undefined.\n * \n * @param schema The MetaUI ISchema tree.\n * @param rootData The data payload to mutate.\n */\n public injectSchemaDefaults(schema: unknown, rootData: unknown, depth: number = 0): void {\n if (!schema || !rootData || typeof rootData !== \"object\" || depth > 8) return;\n\n const typedSchema = schema as Record<string, unknown>;\n const typedRootData = rootData as Record<string, unknown>;\n\n if (typedSchema.type === \"object\" && typedSchema.properties) {\n const properties = typedSchema.properties as Record<string, unknown>;\n for (const key of Object.keys(properties)) {\n const propSchema = properties[key] as Record<string, unknown>;\n \n if (typedRootData[key] === undefined) {\n if (propSchema.default !== undefined) {\n typedRootData[key] = propSchema.default;\n } else if (propSchema.type === \"object\") {\n const tempObj = {};\n this.injectSchemaDefaults(propSchema, tempObj, depth + 1);\n if (Object.keys(tempObj).length > 0) {\n typedRootData[key] = tempObj;\n }\n }\n } else if (typeof typedRootData[key] === \"object\" && typedRootData[key] !== null) {\n this.injectSchemaDefaults(propSchema, typedRootData[key], depth + 1);\n }\n }\n } else if (typedSchema.type === \"array\" && typedSchema.items && Array.isArray(typedRootData)) {\n for (let i = 0; i < typedRootData.length; i++) {\n if (typeof typedRootData[i] === \"object\" && typedRootData[i] !== null) {\n this.injectSchemaDefaults(typedSchema.items, typedRootData[i], depth + 1);\n }\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,9 +15,7 @@ declare module "nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDeleg
|
|
|
15
15
|
*/
|
|
16
16
|
export class DataSyncDelegate {
|
|
17
17
|
private host;
|
|
18
|
-
private
|
|
19
|
-
private _lastPushedPayloadObj;
|
|
20
|
-
private _lastReceivedInputObj;
|
|
18
|
+
private _isSyncing;
|
|
21
19
|
/**
|
|
22
20
|
* Initializes a new DataSyncDelegate to handle data payload binding extraction.
|
|
23
21
|
* @param host The parent host interface containing properties.
|
|
@@ -31,6 +29,10 @@ declare module "nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDeleg
|
|
|
31
29
|
* Intercepts and parses live updates to the data payload from two-way Fiori bindings.
|
|
32
30
|
*/
|
|
33
31
|
handleInputDataHotSwap(propertyName: string, value: unknown, suppressInvalidate?: boolean): void;
|
|
32
|
+
/**
|
|
33
|
+
* Recursively compares two objects for equality, ignoring key order.
|
|
34
|
+
*/
|
|
35
|
+
private deepEquals;
|
|
34
36
|
/**
|
|
35
37
|
* Recursively scans an ISchema for `default` properties and injects them into the rootData
|
|
36
38
|
* object if those properties are currently undefined.
|