@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApiPropertyMapper.js","names":["OpenApiRefResolver","___OpenApiRefResolver","OpenApiTypeMapper","___OpenApiTypeMapper","OpenApiUIMapper","___OpenApiUIMapper","OpenApiPropertyMapper","mapProperties","properties","requiredKeys","openApiRoot","version","depth","normalizedProps","key","Object","keys","isRequired","includes","propDef","$ref","resolved","resolve","this","mapPropertyMetadata","swaggerProp","keyName","currentProp","refResult","_resolveReference","_resolveAllOf","type","mapType","metaProp","required","uiDirective","build","length","ui","_applyConstraints","_applyStateModifiers","default","undefined","Array","isArray","enum","widget","_applyPolymorphism","_applyNestedTypes","resolvedType","inlineProp","allOf","merged","subSchema","resolvedSub","deepMergeSchemas","maxLength","minLength","pattern","maximum","minimum","multipleOf","maxItems","minItems","uniqueItems","maxProperties","minProperties","exclusiveMaximum","exclusiveMinimum","readOnly","writeOnly","nullable","deprecated","discriminator","propertyName","mapping","oneOf","i","push","anyOf","not","childRequired","additionalProperties","items","target","source","output","assign","forEach","from","Set","__exports","__esModule"],"sources":["OpenApiPropertyMapper.ts"],"sourcesContent":["/**\n * @file OpenApiPropertyMapper.ts\n * @description Extracts and maps OpenAPI properties into MetaUI IPropertyMetadata.\n */\n\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport { OpenApiRefResolver } from \"../OpenApiRefResolver\";\nimport { OpenApiTypeMapper } from \"../OpenApiTypeMapper\";\nimport { OpenApiUIMapper } from \"../OpenApiUIMapper\";\n\n/**\n * Utility class responsible for extracting and mapping OpenAPI properties into the native MetaUI IPropertyMetadata schema format.\n * \n * @public\n */\nexport class OpenApiPropertyMapper {\n /**\n * Recursively traverses and translates an OpenAPI properties block into a MetaUI IPropertyMetadata dictionary.\n * \n * @param {Record<string, any>} properties The OpenAPI properties block.\n * @param {string[]} requiredKeys Array of required property keys.\n * @param {any} openApiRoot The OpenAPI root document for resolving references.\n * @param {\"2.0\" | \"3.0\"} version The OpenAPI version.\n * @param {number} [depth=0] Recursion depth limiter to prevent stack overflows on circular refs.\n * @returns {Record<string, IPropertyMetadata>} The normalized MetaUI properties mapping.\n */\n public static mapProperties(\n properties: Record<string, any>, \n requiredKeys: string[], \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number = 0\n ): Record<string, IPropertyMetadata> {\n const normalizedProps: Record<string, IPropertyMetadata> = {};\n \n if (depth > 8) return normalizedProps;\n\n for (const key of Object.keys(properties)) {\n const isRequired = requiredKeys.includes(key);\n let propDef = properties[key];\n\n if (propDef.$ref) {\n const resolved = OpenApiRefResolver.resolve(propDef.$ref, openApiRoot);\n if (resolved) {\n propDef = { ...resolved, ...propDef };\n }\n }\n\n normalizedProps[key] = this.mapPropertyMetadata(propDef, key, isRequired, openApiRoot, version, depth + 1);\n }\n \n return normalizedProps;\n }\n\n /**\n * Translates a single OpenAPI property schema block into a MetaUI IPropertyMetadata block.\n * Delegates specific mapping tasks to focused private methods to adhere to SRP.\n * \n * @param {any} swaggerProp The specific OpenAPI property schema to map.\n * @param {string} keyName The key/name of this property.\n * @param {boolean} isRequired Whether this property is strictly required.\n * @param {any} openApiRoot The OpenAPI root document for resolving references.\n * @param {\"2.0\" | \"3.0\"} version The OpenAPI version.\n * @param {number} [depth=0] Recursion depth limiter.\n * @returns {IPropertyMetadata} The normalized MetaUI property metadata.\n */\n public static mapPropertyMetadata(\n swaggerProp: unknown, \n keyName: string, \n isRequired: boolean, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number = 0\n ): IPropertyMetadata {\n let currentProp = swaggerProp;\n\n // 1. Resolve References\n const refResult = this._resolveReference(currentProp, keyName, isRequired, openApiRoot, version, depth);\n if (refResult) {\n return refResult;\n }\n\n // 2. Resolve Composition (allOf)\n currentProp = this._resolveAllOf(currentProp, openApiRoot);\n\n // 3. Base Initialization\n const type = OpenApiTypeMapper.mapType(currentProp.type);\n const metaProp: IPropertyMetadata = {\n type: type,\n required: isRequired\n };\n\n // 4. UI Directive Binding\n const uiDirective = OpenApiUIMapper.build(currentProp, keyName);\n if (Object.keys(uiDirective).length > 0) {\n metaProp.ui = uiDirective;\n }\n\n // 5. Constraints & State Modifiers\n this._applyConstraints(metaProp, currentProp, version);\n this._applyStateModifiers(metaProp, currentProp);\n\n if (currentProp.default !== undefined) {\n metaProp.default = currentProp.default;\n }\n\n if (Array.isArray(currentProp.enum)) {\n metaProp.enum = currentProp.enum;\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"dropdown\";\n }\n\n // 6. Polymorphism & Nesting\n this._applyPolymorphism(metaProp, currentProp, openApiRoot, version, depth);\n this._applyNestedTypes(metaProp, currentProp, openApiRoot, version, depth, type);\n\n return metaProp;\n }\n\n /**\n * Attempts to resolve a $ref block. If it resolves to a primitive, it inlines it.\n * Otherwise, it returns a reference widget payload.\n * \n * @param {any} currentProp The current schema property definition.\n * @param {string} keyName The structural key name.\n * @param {boolean} isRequired Whether the property is strictly required.\n * @param {any} openApiRoot The root API definition for relative resolution.\n * @param {\"2.0\" | \"3.0\"} version The structural version context.\n * @param {number} depth The recursive resolution depth.\n * @returns {IPropertyMetadata | null} Resolved metadata, or null if no reference exists.\n * @private\n */\n private static _resolveReference(\n currentProp: unknown, \n keyName: string, \n isRequired: boolean, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number\n ): IPropertyMetadata | null {\n if (!currentProp.$ref) {\n return null;\n }\n\n const resolved = OpenApiRefResolver.resolve(currentProp.$ref, openApiRoot);\n const resolvedType = currentProp.type || (resolved && resolved.type);\n \n if (resolvedType && [\"string\", \"number\", \"integer\", \"boolean\"].includes(resolvedType)) {\n const inlineProp = { ...resolved, ...currentProp };\n delete inlineProp.$ref;\n return this.mapPropertyMetadata(inlineProp, keyName, isRequired, openApiRoot, version, depth + 1);\n }\n\n return {\n type: \"object\",\n $ref: currentProp.$ref,\n required: isRequired,\n ui: { widget: \"reference\" }\n };\n }\n\n /**\n * Evaluates and merges 'allOf' arrays into a unified schema definition.\n * \n * @param {any} currentProp The structural property definition containing potential aggregations.\n * @param {any} openApiRoot The base schema for deep resolution.\n * @returns {any} A flattened and merged schema entity.\n * @private\n */\n private static _resolveAllOf(currentProp: unknown, openApiRoot: unknown): unknown {\n if (!Array.isArray(currentProp.allOf)) {\n return currentProp;\n }\n \n let merged = { ...currentProp };\n delete merged.allOf;\n for (const subSchema of currentProp.allOf) {\n let resolvedSub = subSchema;\n if (subSchema.$ref) {\n resolvedSub = OpenApiRefResolver.resolve(subSchema.$ref, openApiRoot) || {};\n }\n merged = this.deepMergeSchemas(merged, resolvedSub);\n }\n return merged;\n }\n\n /**\n * Extracts structural constraints (min/max, regex, etc.) and maps them natively to the output metadata.\n * \n * @param {IPropertyMetadata} metaProp The target metadata definition block.\n * @param {any} currentProp The source OpenAPI schema chunk.\n * @param {\"2.0\" | \"3.0\"} version The version, utilized for nuanced boundary matching.\n * @private\n */\n private static _applyConstraints(metaProp: IPropertyMetadata, currentProp: unknown, version: \"2.0\" | \"3.0\"): void {\n // String Constraints\n if (typeof currentProp.maxLength === \"number\") metaProp.maxLength = currentProp.maxLength;\n if (typeof currentProp.minLength === \"number\") metaProp.minLength = currentProp.minLength;\n if (typeof currentProp.pattern === \"string\") metaProp.pattern = currentProp.pattern;\n\n // Numeric Constraints\n if (typeof currentProp.maximum === \"number\") metaProp.maximum = currentProp.maximum;\n if (typeof currentProp.minimum === \"number\") metaProp.minimum = currentProp.minimum;\n if (typeof currentProp.multipleOf === \"number\") metaProp.multipleOf = currentProp.multipleOf;\n \n // Array Constraints\n if (typeof currentProp.maxItems === \"number\") metaProp.maxItems = currentProp.maxItems;\n if (typeof currentProp.minItems === \"number\") metaProp.minItems = currentProp.minItems;\n if (typeof currentProp.uniqueItems === \"boolean\") metaProp.uniqueItems = currentProp.uniqueItems;\n\n // Object Constraints\n if (typeof currentProp.maxProperties === \"number\") metaProp.maxProperties = currentProp.maxProperties;\n if (typeof currentProp.minProperties === \"number\") metaProp.minProperties = currentProp.minProperties;\n\n // Exclusive Min/Max version-specific logic\n if (version === \"2.0\") {\n if (currentProp.exclusiveMaximum === true && typeof currentProp.maximum === \"number\") {\n metaProp.exclusiveMaximum = true;\n }\n if (currentProp.exclusiveMinimum === true && typeof currentProp.minimum === \"number\") {\n metaProp.exclusiveMinimum = true;\n }\n } else if (version === \"3.0\") {\n if (typeof currentProp.exclusiveMaximum === \"number\" || typeof currentProp.exclusiveMaximum === \"boolean\") {\n metaProp.exclusiveMaximum = currentProp.exclusiveMaximum;\n }\n if (typeof currentProp.exclusiveMinimum === \"number\" || typeof currentProp.exclusiveMinimum === \"boolean\") {\n metaProp.exclusiveMinimum = currentProp.exclusiveMinimum;\n }\n }\n }\n\n /**\n * Extracts operational state flags like readOnly or nullable mapping them onto the internal specification.\n * \n * @param {IPropertyMetadata} metaProp Target native specification.\n * @param {any} currentProp Source raw schema payload.\n * @private\n */\n private static _applyStateModifiers(metaProp: IPropertyMetadata, currentProp: unknown): void {\n if (currentProp.readOnly === true) metaProp.readOnly = true;\n if (currentProp.writeOnly === true) metaProp.writeOnly = true;\n if (currentProp.nullable === true) metaProp.nullable = true;\n if (currentProp.deprecated === true) metaProp.deprecated = true;\n }\n\n /**\n * Extracts and maps polymorphic discriminator and union types (oneOf/anyOf) to MetaUI structural directives.\n * \n * @param {IPropertyMetadata} metaProp Native MetaUI definition tree.\n * @param {any} currentProp Raw schema block.\n * @param {any} openApiRoot Master OpenAPI root.\n * @param {\"2.0\" | \"3.0\"} version Protocol version identifier.\n * @param {number} depth Internal depth tracker.\n * @private\n */\n private static _applyPolymorphism(\n metaProp: IPropertyMetadata, \n currentProp: unknown, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number\n ): void {\n // Discriminator handling\n if (currentProp.discriminator) {\n if (version === \"2.0\" && typeof currentProp.discriminator === \"string\") {\n metaProp.discriminator = { propertyName: currentProp.discriminator };\n } else if (version === \"3.0\" && typeof currentProp.discriminator === \"object\") {\n metaProp.discriminator = {\n propertyName: currentProp.discriminator.propertyName,\n mapping: currentProp.discriminator.mapping\n };\n }\n }\n\n // Handle oneOf polymorphic mapping\n if (Array.isArray(currentProp.oneOf)) {\n metaProp.oneOf = [];\n for (let i = 0; i < currentProp.oneOf.length; i++) {\n metaProp.oneOf.push(this.mapPropertyMetadata(currentProp.oneOf[i], `Variant${i}`, false, openApiRoot, version, depth + 1));\n }\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"polymorphic\";\n }\n \n // Handle anyOf mapping\n if (Array.isArray(currentProp.anyOf)) {\n metaProp.anyOf = [];\n for (let i = 0; i < currentProp.anyOf.length; i++) {\n metaProp.anyOf.push(this.mapPropertyMetadata(currentProp.anyOf[i], `AnyVariant${i}`, false, openApiRoot, version, depth + 1));\n }\n }\n\n // Handle not mapping\n if (currentProp.not) {\n metaProp.not = this.mapPropertyMetadata(currentProp.not, `NotVariant`, false, openApiRoot, version, depth + 1);\n }\n }\n\n /**\n * Recursively traverses into nested objects and arrays constructing the structural node trees.\n * \n * @param {IPropertyMetadata} metaProp The localized destination structure.\n * @param {any} currentProp The source chunk representing a complex element.\n * @param {any} openApiRoot The OpenAPI dictionary context.\n * @param {\"2.0\" | \"3.0\"} version System schema version.\n * @param {number} depth Invocation stack depth.\n * @param {string} type Normalized atomic structure type.\n * @private\n */\n private static _applyNestedTypes(\n metaProp: IPropertyMetadata, \n currentProp: unknown, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number,\n type: string\n ): void {\n if (type === \"object\") {\n if (currentProp.properties) {\n const childRequired = Array.isArray(currentProp.required) ? currentProp.required : [];\n metaProp.properties = this.mapProperties(currentProp.properties, childRequired, openApiRoot, version, depth + 1);\n }\n \n if (currentProp.additionalProperties) {\n if (currentProp.additionalProperties === true) {\n metaProp.additionalProperties = true;\n } else if (typeof currentProp.additionalProperties === \"object\") {\n metaProp.additionalProperties = this.mapPropertyMetadata(currentProp.additionalProperties, \"value\", false, openApiRoot, version, depth + 1);\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"dictionary\";\n }\n }\n \n // Opaque JSON object definition mapping\n if (!currentProp.properties && !currentProp.additionalProperties) {\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"codeEditor\";\n }\n } else if (type === \"array\" && currentProp.items) {\n metaProp.items = this.mapPropertyMetadata(currentProp.items, \"items\", false, openApiRoot, version, depth + 1);\n if (metaProp.items.type !== \"object\") {\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"multiInput\";\n }\n }\n }\n\n /**\n * Recursively deep-merges two OpenAPI objects, ensuring array boundaries and nested structures are preserved.\n * \n * @param {any} target The target base object.\n * @param {any} source The source object providing override details.\n * @returns {any} The synthesized output object.\n */\n public static deepMergeSchemas(target: unknown, source: unknown): unknown {\n const output = Object.assign({}, target);\n if (source === null || typeof source !== \"object\") return output;\n\n Object.keys(source).forEach(key => {\n if (Array.isArray(source[key])) {\n output[key] = Array.isArray(target[key]) \n ? Array.from(new Set([...target[key], ...source[key]])) \n : [...source[key]];\n } else if (typeof source[key] === \"object\" && source[key] !== null) {\n if (target[key] && typeof target[key] === \"object\") {\n output[key] = this.deepMergeSchemas(target[key], source[key]);\n } else {\n output[key] = Object.assign({}, source[key]);\n }\n } else {\n output[key] = source[key];\n }\n });\n return output;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OpenApiPropertyMapper.js","names":["OpenApiRefResolver","___OpenApiRefResolver","OpenApiTypeMapper","___OpenApiTypeMapper","OpenApiUIMapper","___OpenApiUIMapper","OpenApiPropertyMapper","mapProperties","properties","requiredKeys","openApiRoot","version","depth","normalizedProps","props","key","Object","keys","isRequired","includes","propDef","$ref","resolved","resolve","this","mapPropertyMetadata","swaggerProp","keyName","currentProp","refResult","_resolveReference","_resolveAllOf","type","mapType","metaProp","required","uiDirective","build","length","ui","_applyConstraints","_applyStateModifiers","default","undefined","Array","isArray","enum","widget","_applyPolymorphism","_applyNestedTypes","resolvedType","inlineProp","allOf","merged","subSchema","resolvedSub","deepMergeSchemas","maxLength","minLength","pattern","maximum","minimum","multipleOf","maxItems","minItems","uniqueItems","maxProperties","minProperties","exclusiveMaximum","exclusiveMinimum","readOnly","writeOnly","nullable","deprecated","discriminator","propertyName","disc","mapping","oneOf","i","push","anyOf","not","childRequired","additionalProperties","items","target","source","outTarget","output","assign","srcObj","forEach","from","Set","__exports","__esModule"],"sources":["OpenApiPropertyMapper.ts"],"sourcesContent":["/**\n * @file OpenApiPropertyMapper.ts\n * @description Extracts and maps OpenAPI properties into MetaUI IPropertyMetadata.\n */\n\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport { OpenApiRefResolver } from \"../OpenApiRefResolver\";\nimport { OpenApiTypeMapper } from \"../OpenApiTypeMapper\";\nimport { OpenApiUIMapper } from \"../OpenApiUIMapper\";\nimport { FieldType } from \"../../interfaces/ISchema\";\n\n/**\n * Utility class responsible for extracting and mapping OpenAPI properties into the native MetaUI IPropertyMetadata schema format.\n * \n * @public\n */\nexport class OpenApiPropertyMapper {\n /**\n * Recursively traverses and translates an OpenAPI properties block into a MetaUI IPropertyMetadata dictionary.\n * \n * @param {unknown} properties The OpenAPI properties block.\n * @param {string[]} requiredKeys Array of required property keys.\n * @param {unknown} openApiRoot The OpenAPI root document for resolving references.\n * @param {\"2.0\" | \"3.0\"} version The OpenAPI version.\n * @param {number} [depth=0] Recursion depth limiter to prevent stack overflows on circular refs.\n * @returns {Record<string, IPropertyMetadata>} The normalized MetaUI properties mapping.\n */\n public static mapProperties(\n properties: unknown, \n requiredKeys: string[], \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number = 0\n ): Record<string, IPropertyMetadata> {\n const normalizedProps: Record<string, IPropertyMetadata> = {};\n \n if (depth > 8) return normalizedProps;\n const props = (properties || {}) as Record<string, unknown>;\n\n for (const key of Object.keys(props)) {\n const isRequired = requiredKeys.includes(key);\n let propDef = props[key] as Record<string, unknown>;\n\n if (propDef.$ref) {\n const resolved = OpenApiRefResolver.resolve(propDef.$ref as string, openApiRoot) as Record<string, unknown>;\n if (resolved) {\n propDef = { ...resolved, ...propDef };\n }\n }\n\n normalizedProps[key] = this.mapPropertyMetadata(propDef, key, isRequired, openApiRoot, version, depth + 1);\n }\n \n return normalizedProps;\n }\n\n /**\n * Translates a single OpenAPI property schema block into a MetaUI IPropertyMetadata block.\n * Delegates specific mapping tasks to focused private methods to adhere to SRP.\n * \n * @param {unknown} swaggerProp The specific OpenAPI property schema to map.\n * @param {string} keyName The key/name of this property.\n * @param {boolean} isRequired Whether this property is strictly required.\n * @param {unknown} openApiRoot The OpenAPI root document for resolving references.\n * @param {\"2.0\" | \"3.0\"} version The OpenAPI version.\n * @param {number} [depth=0] Recursion depth limiter.\n * @returns {IPropertyMetadata} The normalized MetaUI property metadata.\n */\n public static mapPropertyMetadata(\n swaggerProp: unknown, \n keyName: string, \n isRequired: boolean, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number = 0\n ): IPropertyMetadata {\n let currentProp = swaggerProp as Record<string, unknown>;\n\n // 1. Resolve References\n const refResult = this._resolveReference(currentProp, keyName, isRequired, openApiRoot, version, depth);\n if (refResult) {\n return refResult;\n }\n\n // 2. Resolve Composition (allOf)\n currentProp = this._resolveAllOf(currentProp, openApiRoot) as Record<string, unknown>;\n\n // 3. Base Initialization\n const type = OpenApiTypeMapper.mapType(currentProp.type as string);\n const metaProp: IPropertyMetadata = {\n type: type,\n required: isRequired\n };\n\n // 4. UI Directive Binding\n const uiDirective = OpenApiUIMapper.build(currentProp, keyName);\n if (Object.keys(uiDirective).length > 0) {\n metaProp.ui = uiDirective;\n }\n\n // 5. Constraints & State Modifiers\n this._applyConstraints(metaProp, currentProp, version);\n this._applyStateModifiers(metaProp, currentProp);\n\n if (currentProp.default !== undefined) {\n metaProp.default = currentProp.default;\n }\n\n if (Array.isArray(currentProp.enum)) {\n metaProp.enum = currentProp.enum;\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"dropdown\";\n }\n\n // 6. Polymorphism & Nesting\n this._applyPolymorphism(metaProp, currentProp, openApiRoot, version, depth);\n this._applyNestedTypes(metaProp, currentProp, openApiRoot, version, depth, type);\n\n return metaProp;\n }\n\n private static _resolveReference(\n currentProp: Record<string, unknown>, \n keyName: string, \n isRequired: boolean, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number\n ): IPropertyMetadata | null {\n if (!currentProp.$ref) {\n return null;\n }\n\n const resolved = OpenApiRefResolver.resolve(currentProp.$ref as string, openApiRoot) as Record<string, unknown>;\n const resolvedType = currentProp.type || (resolved && resolved.type);\n \n if (resolvedType && [\"string\", \"number\", \"integer\", \"boolean\"].includes(resolvedType as string)) {\n const inlineProp = { ...resolved, ...currentProp };\n delete inlineProp.$ref;\n return this.mapPropertyMetadata(inlineProp, keyName, isRequired, openApiRoot, version, depth + 1);\n }\n\n return {\n type: \"object\",\n $ref: currentProp.$ref as string,\n required: isRequired,\n ui: { widget: \"reference\" }\n };\n }\n\n private static _resolveAllOf(currentProp: Record<string, unknown>, openApiRoot: unknown): unknown {\n if (!Array.isArray(currentProp.allOf)) {\n return currentProp;\n }\n \n let merged = { ...currentProp };\n delete merged.allOf;\n for (const subSchema of currentProp.allOf) {\n let resolvedSub = subSchema as Record<string, unknown>;\n if (subSchema.$ref) {\n resolvedSub = (OpenApiRefResolver.resolve(subSchema.$ref as string, openApiRoot) as Record<string, unknown>) || {};\n }\n merged = this.deepMergeSchemas(merged, resolvedSub) as Record<string, unknown>;\n }\n return merged;\n }\n\n private static _applyConstraints(metaProp: IPropertyMetadata, currentProp: Record<string, unknown>, version: \"2.0\" | \"3.0\"): void {\n // String Constraints\n if (typeof currentProp.maxLength === \"number\") metaProp.maxLength = currentProp.maxLength;\n if (typeof currentProp.minLength === \"number\") metaProp.minLength = currentProp.minLength;\n if (typeof currentProp.pattern === \"string\") metaProp.pattern = currentProp.pattern;\n\n // Numeric Constraints\n if (typeof currentProp.maximum === \"number\") metaProp.maximum = currentProp.maximum;\n if (typeof currentProp.minimum === \"number\") metaProp.minimum = currentProp.minimum;\n if (typeof currentProp.multipleOf === \"number\") metaProp.multipleOf = currentProp.multipleOf;\n \n // Array Constraints\n if (typeof currentProp.maxItems === \"number\") metaProp.maxItems = currentProp.maxItems;\n if (typeof currentProp.minItems === \"number\") metaProp.minItems = currentProp.minItems;\n if (typeof currentProp.uniqueItems === \"boolean\") metaProp.uniqueItems = currentProp.uniqueItems;\n\n // Object Constraints\n if (typeof currentProp.maxProperties === \"number\") metaProp.maxProperties = currentProp.maxProperties;\n if (typeof currentProp.minProperties === \"number\") metaProp.minProperties = currentProp.minProperties;\n\n // Exclusive Min/Max version-specific logic\n if (version === \"2.0\") {\n if (currentProp.exclusiveMaximum === true && typeof currentProp.maximum === \"number\") {\n metaProp.exclusiveMaximum = true;\n }\n if (currentProp.exclusiveMinimum === true && typeof currentProp.minimum === \"number\") {\n metaProp.exclusiveMinimum = true;\n }\n } else if (version === \"3.0\") {\n if (typeof currentProp.exclusiveMaximum === \"number\" || typeof currentProp.exclusiveMaximum === \"boolean\") {\n metaProp.exclusiveMaximum = currentProp.exclusiveMaximum as boolean;\n }\n if (typeof currentProp.exclusiveMinimum === \"number\" || typeof currentProp.exclusiveMinimum === \"boolean\") {\n metaProp.exclusiveMinimum = currentProp.exclusiveMinimum as boolean;\n }\n }\n }\n\n private static _applyStateModifiers(metaProp: IPropertyMetadata, currentProp: Record<string, unknown>): void {\n if (currentProp.readOnly === true) metaProp.readOnly = true;\n if (currentProp.writeOnly === true) metaProp.writeOnly = true;\n if (currentProp.nullable === true) metaProp.nullable = true;\n if (currentProp.deprecated === true) metaProp.deprecated = true;\n }\n\n private static _applyPolymorphism(\n metaProp: IPropertyMetadata, \n currentProp: Record<string, unknown>, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number\n ): void {\n if (currentProp.discriminator) {\n if (version === \"2.0\" && typeof currentProp.discriminator === \"string\") {\n metaProp.discriminator = { propertyName: currentProp.discriminator };\n } else if (version === \"3.0\" && typeof currentProp.discriminator === \"object\") {\n const disc = currentProp.discriminator as Record<string, unknown>;\n metaProp.discriminator = {\n propertyName: disc.propertyName as string,\n mapping: disc.mapping as Record<string, string>\n };\n }\n }\n\n if (Array.isArray(currentProp.oneOf)) {\n metaProp.oneOf = [];\n for (let i = 0; i < currentProp.oneOf.length; i++) {\n metaProp.oneOf.push(this.mapPropertyMetadata(currentProp.oneOf[i], `Variant${i}`, false, openApiRoot, version, depth + 1));\n }\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"polymorphic\";\n }\n \n if (Array.isArray(currentProp.anyOf)) {\n metaProp.anyOf = [];\n for (let i = 0; i < currentProp.anyOf.length; i++) {\n metaProp.anyOf.push(this.mapPropertyMetadata(currentProp.anyOf[i], `AnyVariant${i}`, false, openApiRoot, version, depth + 1));\n }\n }\n\n if (currentProp.not) {\n metaProp.not = this.mapPropertyMetadata(currentProp.not, `NotVariant`, false, openApiRoot, version, depth + 1);\n }\n }\n\n private static _applyNestedTypes(\n metaProp: IPropertyMetadata, \n currentProp: Record<string, unknown>, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number,\n type: string\n ): void {\n if (type === \"object\") {\n if (currentProp.properties) {\n const childRequired = Array.isArray(currentProp.required) ? currentProp.required : [];\n metaProp.properties = this.mapProperties(currentProp.properties, childRequired, openApiRoot, version, depth + 1);\n }\n \n if (currentProp.additionalProperties) {\n if (currentProp.additionalProperties === true) {\n metaProp.additionalProperties = true;\n } else if (typeof currentProp.additionalProperties === \"object\") {\n metaProp.additionalProperties = this.mapPropertyMetadata(currentProp.additionalProperties, \"value\", false, openApiRoot, version, depth + 1);\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"dictionary\";\n }\n }\n \n if (!currentProp.properties && !currentProp.additionalProperties) {\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"codeEditor\";\n }\n } else if (type === \"array\" && currentProp.items) {\n metaProp.items = this.mapPropertyMetadata(currentProp.items, \"items\", false, openApiRoot, version, depth + 1);\n if (metaProp.items.type !== \"object\") {\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"multiInput\";\n }\n }\n }\n\n public static deepMergeSchemas(target: unknown, source: unknown): unknown {\n const outTarget = (target || {}) as Record<string, unknown>;\n const output: Record<string, unknown> = Object.assign({}, outTarget);\n if (source === null || typeof source !== \"object\") return output;\n \n const srcObj = source as Record<string, unknown>;\n\n Object.keys(srcObj).forEach(key => {\n if (Array.isArray(srcObj[key])) {\n output[key] = Array.isArray(outTarget[key]) \n ? Array.from(new Set([...(outTarget[key] as unknown[]), ...(srcObj[key] as unknown[])])) \n : [...(srcObj[key] as unknown[])];\n } else if (typeof srcObj[key] === \"object\" && srcObj[key] !== null) {\n if (outTarget[key] && typeof outTarget[key] === \"object\") {\n output[key] = this.deepMergeSchemas(outTarget[key], srcObj[key]);\n } else {\n output[key] = Object.assign({}, srcObj[key]);\n }\n } else {\n output[key] = srcObj[key];\n }\n });\n return output;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
2
|
* @file OpenApiPropertyMapper.ts
|
|
3
3
|
* @description Extracts and maps OpenAPI properties into MetaUI IPropertyMetadata.
|
|
4
4
|
*/
|
|
@@ -7,6 +7,7 @@ import { IPropertyMetadata } from "../../interfaces/ISchema";
|
|
|
7
7
|
import { OpenApiRefResolver } from "../OpenApiRefResolver";
|
|
8
8
|
import { OpenApiTypeMapper } from "../OpenApiTypeMapper";
|
|
9
9
|
import { OpenApiUIMapper } from "../OpenApiUIMapper";
|
|
10
|
+
import { FieldType } from "../../interfaces/ISchema";
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Utility class responsible for extracting and mapping OpenAPI properties into the native MetaUI IPropertyMetadata schema format.
|
|
@@ -17,15 +18,15 @@ export class OpenApiPropertyMapper {
|
|
|
17
18
|
/**
|
|
18
19
|
* Recursively traverses and translates an OpenAPI properties block into a MetaUI IPropertyMetadata dictionary.
|
|
19
20
|
*
|
|
20
|
-
* @param {
|
|
21
|
+
* @param {unknown} properties The OpenAPI properties block.
|
|
21
22
|
* @param {string[]} requiredKeys Array of required property keys.
|
|
22
|
-
* @param {
|
|
23
|
+
* @param {unknown} openApiRoot The OpenAPI root document for resolving references.
|
|
23
24
|
* @param {"2.0" | "3.0"} version The OpenAPI version.
|
|
24
25
|
* @param {number} [depth=0] Recursion depth limiter to prevent stack overflows on circular refs.
|
|
25
26
|
* @returns {Record<string, IPropertyMetadata>} The normalized MetaUI properties mapping.
|
|
26
27
|
*/
|
|
27
28
|
public static mapProperties(
|
|
28
|
-
properties:
|
|
29
|
+
properties: unknown,
|
|
29
30
|
requiredKeys: string[],
|
|
30
31
|
openApiRoot: unknown,
|
|
31
32
|
version: "2.0" | "3.0",
|
|
@@ -34,13 +35,14 @@ export class OpenApiPropertyMapper {
|
|
|
34
35
|
const normalizedProps: Record<string, IPropertyMetadata> = {};
|
|
35
36
|
|
|
36
37
|
if (depth > 8) return normalizedProps;
|
|
38
|
+
const props = (properties || {}) as Record<string, unknown>;
|
|
37
39
|
|
|
38
|
-
for (const key of Object.keys(
|
|
40
|
+
for (const key of Object.keys(props)) {
|
|
39
41
|
const isRequired = requiredKeys.includes(key);
|
|
40
|
-
let propDef =
|
|
42
|
+
let propDef = props[key] as Record<string, unknown>;
|
|
41
43
|
|
|
42
44
|
if (propDef.$ref) {
|
|
43
|
-
const resolved = OpenApiRefResolver.resolve(propDef.$ref, openApiRoot)
|
|
45
|
+
const resolved = OpenApiRefResolver.resolve(propDef.$ref as string, openApiRoot) as Record<string, unknown>;
|
|
44
46
|
if (resolved) {
|
|
45
47
|
propDef = { ...resolved, ...propDef };
|
|
46
48
|
}
|
|
@@ -56,10 +58,10 @@ export class OpenApiPropertyMapper {
|
|
|
56
58
|
* Translates a single OpenAPI property schema block into a MetaUI IPropertyMetadata block.
|
|
57
59
|
* Delegates specific mapping tasks to focused private methods to adhere to SRP.
|
|
58
60
|
*
|
|
59
|
-
* @param {
|
|
61
|
+
* @param {unknown} swaggerProp The specific OpenAPI property schema to map.
|
|
60
62
|
* @param {string} keyName The key/name of this property.
|
|
61
63
|
* @param {boolean} isRequired Whether this property is strictly required.
|
|
62
|
-
* @param {
|
|
64
|
+
* @param {unknown} openApiRoot The OpenAPI root document for resolving references.
|
|
63
65
|
* @param {"2.0" | "3.0"} version The OpenAPI version.
|
|
64
66
|
* @param {number} [depth=0] Recursion depth limiter.
|
|
65
67
|
* @returns {IPropertyMetadata} The normalized MetaUI property metadata.
|
|
@@ -72,7 +74,7 @@ export class OpenApiPropertyMapper {
|
|
|
72
74
|
version: "2.0" | "3.0",
|
|
73
75
|
depth: number = 0
|
|
74
76
|
): IPropertyMetadata {
|
|
75
|
-
let currentProp = swaggerProp
|
|
77
|
+
let currentProp = swaggerProp as Record<string, unknown>;
|
|
76
78
|
|
|
77
79
|
// 1. Resolve References
|
|
78
80
|
const refResult = this._resolveReference(currentProp, keyName, isRequired, openApiRoot, version, depth);
|
|
@@ -81,10 +83,10 @@ export class OpenApiPropertyMapper {
|
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
// 2. Resolve Composition (allOf)
|
|
84
|
-
currentProp = this._resolveAllOf(currentProp, openApiRoot)
|
|
86
|
+
currentProp = this._resolveAllOf(currentProp, openApiRoot) as Record<string, unknown>;
|
|
85
87
|
|
|
86
88
|
// 3. Base Initialization
|
|
87
|
-
const type = OpenApiTypeMapper.mapType(currentProp.type);
|
|
89
|
+
const type = OpenApiTypeMapper.mapType(currentProp.type as string);
|
|
88
90
|
const metaProp: IPropertyMetadata = {
|
|
89
91
|
type: type,
|
|
90
92
|
required: isRequired
|
|
@@ -117,21 +119,8 @@ export class OpenApiPropertyMapper {
|
|
|
117
119
|
return metaProp;
|
|
118
120
|
}
|
|
119
121
|
|
|
120
|
-
/**
|
|
121
|
-
* Attempts to resolve a $ref block. If it resolves to a primitive, it inlines it.
|
|
122
|
-
* Otherwise, it returns a reference widget payload.
|
|
123
|
-
*
|
|
124
|
-
* @param {any} currentProp The current schema property definition.
|
|
125
|
-
* @param {string} keyName The structural key name.
|
|
126
|
-
* @param {boolean} isRequired Whether the property is strictly required.
|
|
127
|
-
* @param {any} openApiRoot The root API definition for relative resolution.
|
|
128
|
-
* @param {"2.0" | "3.0"} version The structural version context.
|
|
129
|
-
* @param {number} depth The recursive resolution depth.
|
|
130
|
-
* @returns {IPropertyMetadata | null} Resolved metadata, or null if no reference exists.
|
|
131
|
-
* @private
|
|
132
|
-
*/
|
|
133
122
|
private static _resolveReference(
|
|
134
|
-
currentProp:
|
|
123
|
+
currentProp: Record<string, unknown>,
|
|
135
124
|
keyName: string,
|
|
136
125
|
isRequired: boolean,
|
|
137
126
|
openApiRoot: unknown,
|
|
@@ -142,10 +131,10 @@ export class OpenApiPropertyMapper {
|
|
|
142
131
|
return null;
|
|
143
132
|
}
|
|
144
133
|
|
|
145
|
-
const resolved = OpenApiRefResolver.resolve(currentProp.$ref, openApiRoot)
|
|
134
|
+
const resolved = OpenApiRefResolver.resolve(currentProp.$ref as string, openApiRoot) as Record<string, unknown>;
|
|
146
135
|
const resolvedType = currentProp.type || (resolved && resolved.type);
|
|
147
136
|
|
|
148
|
-
if (resolvedType && ["string", "number", "integer", "boolean"].includes(resolvedType)) {
|
|
137
|
+
if (resolvedType && ["string", "number", "integer", "boolean"].includes(resolvedType as string)) {
|
|
149
138
|
const inlineProp = { ...resolved, ...currentProp };
|
|
150
139
|
delete inlineProp.$ref;
|
|
151
140
|
return this.mapPropertyMetadata(inlineProp, keyName, isRequired, openApiRoot, version, depth + 1);
|
|
@@ -153,21 +142,13 @@ export class OpenApiPropertyMapper {
|
|
|
153
142
|
|
|
154
143
|
return {
|
|
155
144
|
type: "object",
|
|
156
|
-
$ref: currentProp.$ref,
|
|
145
|
+
$ref: currentProp.$ref as string,
|
|
157
146
|
required: isRequired,
|
|
158
147
|
ui: { widget: "reference" }
|
|
159
148
|
};
|
|
160
149
|
}
|
|
161
150
|
|
|
162
|
-
|
|
163
|
-
* Evaluates and merges 'allOf' arrays into a unified schema definition.
|
|
164
|
-
*
|
|
165
|
-
* @param {any} currentProp The structural property definition containing potential aggregations.
|
|
166
|
-
* @param {any} openApiRoot The base schema for deep resolution.
|
|
167
|
-
* @returns {any} A flattened and merged schema entity.
|
|
168
|
-
* @private
|
|
169
|
-
*/
|
|
170
|
-
private static _resolveAllOf(currentProp: unknown, openApiRoot: unknown): unknown {
|
|
151
|
+
private static _resolveAllOf(currentProp: Record<string, unknown>, openApiRoot: unknown): unknown {
|
|
171
152
|
if (!Array.isArray(currentProp.allOf)) {
|
|
172
153
|
return currentProp;
|
|
173
154
|
}
|
|
@@ -175,24 +156,16 @@ export class OpenApiPropertyMapper {
|
|
|
175
156
|
let merged = { ...currentProp };
|
|
176
157
|
delete merged.allOf;
|
|
177
158
|
for (const subSchema of currentProp.allOf) {
|
|
178
|
-
let resolvedSub = subSchema
|
|
159
|
+
let resolvedSub = subSchema as Record<string, unknown>;
|
|
179
160
|
if (subSchema.$ref) {
|
|
180
|
-
resolvedSub = OpenApiRefResolver.resolve(subSchema.$ref, openApiRoot) || {};
|
|
161
|
+
resolvedSub = (OpenApiRefResolver.resolve(subSchema.$ref as string, openApiRoot) as Record<string, unknown>) || {};
|
|
181
162
|
}
|
|
182
|
-
merged = this.deepMergeSchemas(merged, resolvedSub)
|
|
163
|
+
merged = this.deepMergeSchemas(merged, resolvedSub) as Record<string, unknown>;
|
|
183
164
|
}
|
|
184
165
|
return merged;
|
|
185
166
|
}
|
|
186
167
|
|
|
187
|
-
|
|
188
|
-
* Extracts structural constraints (min/max, regex, etc.) and maps them natively to the output metadata.
|
|
189
|
-
*
|
|
190
|
-
* @param {IPropertyMetadata} metaProp The target metadata definition block.
|
|
191
|
-
* @param {any} currentProp The source OpenAPI schema chunk.
|
|
192
|
-
* @param {"2.0" | "3.0"} version The version, utilized for nuanced boundary matching.
|
|
193
|
-
* @private
|
|
194
|
-
*/
|
|
195
|
-
private static _applyConstraints(metaProp: IPropertyMetadata, currentProp: unknown, version: "2.0" | "3.0"): void {
|
|
168
|
+
private static _applyConstraints(metaProp: IPropertyMetadata, currentProp: Record<string, unknown>, version: "2.0" | "3.0"): void {
|
|
196
169
|
// String Constraints
|
|
197
170
|
if (typeof currentProp.maxLength === "number") metaProp.maxLength = currentProp.maxLength;
|
|
198
171
|
if (typeof currentProp.minLength === "number") metaProp.minLength = currentProp.minLength;
|
|
@@ -222,58 +195,40 @@ export class OpenApiPropertyMapper {
|
|
|
222
195
|
}
|
|
223
196
|
} else if (version === "3.0") {
|
|
224
197
|
if (typeof currentProp.exclusiveMaximum === "number" || typeof currentProp.exclusiveMaximum === "boolean") {
|
|
225
|
-
metaProp.exclusiveMaximum = currentProp.exclusiveMaximum;
|
|
198
|
+
metaProp.exclusiveMaximum = currentProp.exclusiveMaximum as boolean;
|
|
226
199
|
}
|
|
227
200
|
if (typeof currentProp.exclusiveMinimum === "number" || typeof currentProp.exclusiveMinimum === "boolean") {
|
|
228
|
-
metaProp.exclusiveMinimum = currentProp.exclusiveMinimum;
|
|
201
|
+
metaProp.exclusiveMinimum = currentProp.exclusiveMinimum as boolean;
|
|
229
202
|
}
|
|
230
203
|
}
|
|
231
204
|
}
|
|
232
205
|
|
|
233
|
-
|
|
234
|
-
* Extracts operational state flags like readOnly or nullable mapping them onto the internal specification.
|
|
235
|
-
*
|
|
236
|
-
* @param {IPropertyMetadata} metaProp Target native specification.
|
|
237
|
-
* @param {any} currentProp Source raw schema payload.
|
|
238
|
-
* @private
|
|
239
|
-
*/
|
|
240
|
-
private static _applyStateModifiers(metaProp: IPropertyMetadata, currentProp: unknown): void {
|
|
206
|
+
private static _applyStateModifiers(metaProp: IPropertyMetadata, currentProp: Record<string, unknown>): void {
|
|
241
207
|
if (currentProp.readOnly === true) metaProp.readOnly = true;
|
|
242
208
|
if (currentProp.writeOnly === true) metaProp.writeOnly = true;
|
|
243
209
|
if (currentProp.nullable === true) metaProp.nullable = true;
|
|
244
210
|
if (currentProp.deprecated === true) metaProp.deprecated = true;
|
|
245
211
|
}
|
|
246
212
|
|
|
247
|
-
/**
|
|
248
|
-
* Extracts and maps polymorphic discriminator and union types (oneOf/anyOf) to MetaUI structural directives.
|
|
249
|
-
*
|
|
250
|
-
* @param {IPropertyMetadata} metaProp Native MetaUI definition tree.
|
|
251
|
-
* @param {any} currentProp Raw schema block.
|
|
252
|
-
* @param {any} openApiRoot Master OpenAPI root.
|
|
253
|
-
* @param {"2.0" | "3.0"} version Protocol version identifier.
|
|
254
|
-
* @param {number} depth Internal depth tracker.
|
|
255
|
-
* @private
|
|
256
|
-
*/
|
|
257
213
|
private static _applyPolymorphism(
|
|
258
214
|
metaProp: IPropertyMetadata,
|
|
259
|
-
currentProp:
|
|
215
|
+
currentProp: Record<string, unknown>,
|
|
260
216
|
openApiRoot: unknown,
|
|
261
217
|
version: "2.0" | "3.0",
|
|
262
218
|
depth: number
|
|
263
219
|
): void {
|
|
264
|
-
// Discriminator handling
|
|
265
220
|
if (currentProp.discriminator) {
|
|
266
221
|
if (version === "2.0" && typeof currentProp.discriminator === "string") {
|
|
267
222
|
metaProp.discriminator = { propertyName: currentProp.discriminator };
|
|
268
223
|
} else if (version === "3.0" && typeof currentProp.discriminator === "object") {
|
|
224
|
+
const disc = currentProp.discriminator as Record<string, unknown>;
|
|
269
225
|
metaProp.discriminator = {
|
|
270
|
-
propertyName:
|
|
271
|
-
mapping:
|
|
226
|
+
propertyName: disc.propertyName as string,
|
|
227
|
+
mapping: disc.mapping as Record<string, string>
|
|
272
228
|
};
|
|
273
229
|
}
|
|
274
230
|
}
|
|
275
231
|
|
|
276
|
-
// Handle oneOf polymorphic mapping
|
|
277
232
|
if (Array.isArray(currentProp.oneOf)) {
|
|
278
233
|
metaProp.oneOf = [];
|
|
279
234
|
for (let i = 0; i < currentProp.oneOf.length; i++) {
|
|
@@ -283,7 +238,6 @@ export class OpenApiPropertyMapper {
|
|
|
283
238
|
metaProp.ui.widget = "polymorphic";
|
|
284
239
|
}
|
|
285
240
|
|
|
286
|
-
// Handle anyOf mapping
|
|
287
241
|
if (Array.isArray(currentProp.anyOf)) {
|
|
288
242
|
metaProp.anyOf = [];
|
|
289
243
|
for (let i = 0; i < currentProp.anyOf.length; i++) {
|
|
@@ -291,26 +245,14 @@ export class OpenApiPropertyMapper {
|
|
|
291
245
|
}
|
|
292
246
|
}
|
|
293
247
|
|
|
294
|
-
// Handle not mapping
|
|
295
248
|
if (currentProp.not) {
|
|
296
249
|
metaProp.not = this.mapPropertyMetadata(currentProp.not, `NotVariant`, false, openApiRoot, version, depth + 1);
|
|
297
250
|
}
|
|
298
251
|
}
|
|
299
252
|
|
|
300
|
-
/**
|
|
301
|
-
* Recursively traverses into nested objects and arrays constructing the structural node trees.
|
|
302
|
-
*
|
|
303
|
-
* @param {IPropertyMetadata} metaProp The localized destination structure.
|
|
304
|
-
* @param {any} currentProp The source chunk representing a complex element.
|
|
305
|
-
* @param {any} openApiRoot The OpenAPI dictionary context.
|
|
306
|
-
* @param {"2.0" | "3.0"} version System schema version.
|
|
307
|
-
* @param {number} depth Invocation stack depth.
|
|
308
|
-
* @param {string} type Normalized atomic structure type.
|
|
309
|
-
* @private
|
|
310
|
-
*/
|
|
311
253
|
private static _applyNestedTypes(
|
|
312
254
|
metaProp: IPropertyMetadata,
|
|
313
|
-
currentProp:
|
|
255
|
+
currentProp: Record<string, unknown>,
|
|
314
256
|
openApiRoot: unknown,
|
|
315
257
|
version: "2.0" | "3.0",
|
|
316
258
|
depth: number,
|
|
@@ -332,7 +274,6 @@ export class OpenApiPropertyMapper {
|
|
|
332
274
|
}
|
|
333
275
|
}
|
|
334
276
|
|
|
335
|
-
// Opaque JSON object definition mapping
|
|
336
277
|
if (!currentProp.properties && !currentProp.additionalProperties) {
|
|
337
278
|
if (!metaProp.ui) metaProp.ui = {};
|
|
338
279
|
metaProp.ui.widget = "codeEditor";
|
|
@@ -346,30 +287,26 @@ export class OpenApiPropertyMapper {
|
|
|
346
287
|
}
|
|
347
288
|
}
|
|
348
289
|
|
|
349
|
-
/**
|
|
350
|
-
* Recursively deep-merges two OpenAPI objects, ensuring array boundaries and nested structures are preserved.
|
|
351
|
-
*
|
|
352
|
-
* @param {any} target The target base object.
|
|
353
|
-
* @param {any} source The source object providing override details.
|
|
354
|
-
* @returns {any} The synthesized output object.
|
|
355
|
-
*/
|
|
356
290
|
public static deepMergeSchemas(target: unknown, source: unknown): unknown {
|
|
357
|
-
const
|
|
291
|
+
const outTarget = (target || {}) as Record<string, unknown>;
|
|
292
|
+
const output: Record<string, unknown> = Object.assign({}, outTarget);
|
|
358
293
|
if (source === null || typeof source !== "object") return output;
|
|
294
|
+
|
|
295
|
+
const srcObj = source as Record<string, unknown>;
|
|
359
296
|
|
|
360
|
-
Object.keys(
|
|
361
|
-
if (Array.isArray(
|
|
362
|
-
output[key] = Array.isArray(
|
|
363
|
-
? Array.from(new Set([...
|
|
364
|
-
: [...
|
|
365
|
-
} else if (typeof
|
|
366
|
-
if (
|
|
367
|
-
output[key] = this.deepMergeSchemas(
|
|
297
|
+
Object.keys(srcObj).forEach(key => {
|
|
298
|
+
if (Array.isArray(srcObj[key])) {
|
|
299
|
+
output[key] = Array.isArray(outTarget[key])
|
|
300
|
+
? Array.from(new Set([...(outTarget[key] as unknown[]), ...(srcObj[key] as unknown[])]))
|
|
301
|
+
: [...(srcObj[key] as unknown[])];
|
|
302
|
+
} else if (typeof srcObj[key] === "object" && srcObj[key] !== null) {
|
|
303
|
+
if (outTarget[key] && typeof outTarget[key] === "object") {
|
|
304
|
+
output[key] = this.deepMergeSchemas(outTarget[key], srcObj[key]);
|
|
368
305
|
} else {
|
|
369
|
-
output[key] = Object.assign({},
|
|
306
|
+
output[key] = Object.assign({}, srcObj[key]);
|
|
370
307
|
}
|
|
371
308
|
} else {
|
|
372
|
-
output[key] =
|
|
309
|
+
output[key] = srcObj[key];
|
|
373
310
|
}
|
|
374
311
|
});
|
|
375
312
|
return output;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearFormActionPlugin-dbg.js","names":["BasePlugin","___controls_BasePlugin","ClearFormActionPlugin","render","fieldMetadata","bindingPath","modelName","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","visible","Button","text","label","type","icon","press","oEvent","btn","getSource","model","getModel","setProperty","getValue","applyState","setEnabled","readOnly","__exports","__esModule"],"sources":["ClearFormActionPlugin.ts"],"sourcesContent":["/**\n * @file ClearFormActionPlugin.ts\n * @description A custom action plugin that renders a Button to reset the model data.\n */\n\nimport { BasePlugin } from \"../controls/BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Button from \"sap/m/Button\";\nimport Control from \"sap/ui/core/Control\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\n\n/**\n * A custom action plugin that renders a Button to reset the model data.\n * Demonstrates how to create functional action plugins that interact with the bound model.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.actions\n * @public\n */\nexport class ClearFormActionPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n \n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({ visible: false });\n return this.control as Control;\n }\n \n this.control = new Button({\n text: fieldMetadata.ui?.label || \"Clear Data\",\n type: \"Reject\",\n icon: \"sap-icon://delete\",\n press: (oEvent:
|
|
1
|
+
{"version":3,"file":"ClearFormActionPlugin-dbg.js","names":["BasePlugin","___controls_BasePlugin","ClearFormActionPlugin","render","fieldMetadata","bindingPath","modelName","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","visible","Button","text","label","type","icon","press","oEvent","btn","getSource","model","getModel","setProperty","getValue","applyState","setEnabled","readOnly","__exports","__esModule"],"sources":["ClearFormActionPlugin.ts"],"sourcesContent":["/**\n * @file ClearFormActionPlugin.ts\n * @description A custom action plugin that renders a Button to reset the model data.\n */\n\nimport { BasePlugin } from \"../controls/BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Button from \"sap/m/Button\";\nimport Control from \"sap/ui/core/Control\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\n\nimport Event from \"sap/ui/base/Event\";\n/**\n * A custom action plugin that renders a Button to reset the model data.\n * Demonstrates how to create functional action plugins that interact with the bound model.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.actions\n * @public\n */\nexport class ClearFormActionPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n \n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({ visible: false });\n return this.control as Control;\n }\n \n this.control = new Button({\n text: fieldMetadata.ui?.label || \"Clear Data\",\n type: \"Reject\",\n icon: \"sap-icon://delete\",\n press: (oEvent: Event) => {\n const btn = oEvent.getSource() as Button;\n const model = btn.getModel(modelName) as JSONModel;\n if (model) {\n // Reset the entire model payload to an empty object\n model.setProperty(\"/\", {});\n }\n }\n });\n\n return this.control as Control;\n }\n\n protected getValue(): unknown {\n return null; // Actions do not store scalar values\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n (this.control as Button).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,sBAAA;EAOnB;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,qBAAqB,SAASF,UAAU,CAAC;IAC3CG,MAAMA,CAACC,aAAgC,EAAEC,WAAmB,EAAEC,SAAiB,GAAG,MAAM,EAAW;MACtG,IAAI,CAACC,QAAQ,GAAGH,aAAa;MAE7B,IAAI,CAAC,IAAI,CAACI,UAAU,EAAE;QAClBC,GAAG,CAACC,EAAE,CAACC,WAAW,CAAC,YAAY,CAAC;QAChC,MAAMC,WAAW,GAAGH,GAAG,CAACC,EAAE,CAACG,OAAO,CAAC,YAAY,CAAC;QAChD,IAAI,CAACC,OAAO,GAAG,IAAIF,WAAW,CAAC;UAAEG,OAAO,EAAE;QAAM,CAAC,CAAC;QAClD,OAAO,IAAI,CAACD,OAAO;MACvB;MAEA,IAAI,CAACA,OAAO,GAAG,IAAIE,MAAM,CAAC;QACtBC,IAAI,EAAEb,aAAa,CAACM,EAAE,EAAEQ,KAAK,IAAI,YAAY;QAC7CC,IAAI,EAAE,QAAQ;QACdC,IAAI,EAAE,mBAAmB;QACzBC,KAAK,EAAGC,MAAa,IAAK;UACtB,MAAMC,GAAG,GAAGD,MAAM,CAACE,SAAS,CAAC,CAAW;UACxC,MAAMC,KAAK,GAAGF,GAAG,CAACG,QAAQ,CAACpB,SAAS,CAAc;UAClD,IAAImB,KAAK,EAAE;YACP;YACAA,KAAK,CAACE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;UAC9B;QACJ;MACJ,CAAC,CAAC;MAEF,OAAO,IAAI,CAACb,OAAO;IACvB;IAEUc,QAAQA,CAAA,EAAY;MAC1B,OAAO,IAAI,CAAC,CAAC;IACjB;IAEUC,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACf,OAAO,IAAI,IAAI,CAACP,QAAQ,EAAE;QAC/B,IAAI,CAAC,IAAI,CAACC,UAAU,EAAE;QACrB,IAAI,CAACM,OAAO,CAAYgB,UAAU,CAAC,CAAC,IAAI,CAACvB,QAAQ,CAACG,EAAE,EAAEqB,QAAQ,CAAC;MACpE;IACJ;EACJ;EAAC,IAAAC,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAA9B,qBAAA,GAAAA,qBAAA;EAAA,OAAA8B,SAAA;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearFormActionPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kEAAkE,CAAC;IAClF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ClearFormActionPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kEAAkE,CAAC;IAClF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAI1C;;;;;;OAMG;IACH,MAAa,qBAAsB,SAAQ,UAAU;QAC1C,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO;QA2BzG,SAAS,CAAC,QAAQ,IAAI,OAAO;QAI7B,SAAS,CAAC,UAAU,IAAI,IAAI;KAM/B;CAEA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearFormActionPlugin.js","names":["BasePlugin","___controls_BasePlugin","ClearFormActionPlugin","render","fieldMetadata","bindingPath","modelName","this","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","visible","Button","text","label","type","icon","press","oEvent","btn","getSource","model","getModel","setProperty","getValue","applyState","setEnabled","readOnly","__exports","__esModule"],"sources":["ClearFormActionPlugin.ts"],"sourcesContent":["/**\n * @file ClearFormActionPlugin.ts\n * @description A custom action plugin that renders a Button to reset the model data.\n */\n\nimport { BasePlugin } from \"../controls/BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Button from \"sap/m/Button\";\nimport Control from \"sap/ui/core/Control\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\n\n/**\n * A custom action plugin that renders a Button to reset the model data.\n * Demonstrates how to create functional action plugins that interact with the bound model.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.actions\n * @public\n */\nexport class ClearFormActionPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n \n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({ visible: false });\n return this.control as Control;\n }\n \n this.control = new Button({\n text: fieldMetadata.ui?.label || \"Clear Data\",\n type: \"Reject\",\n icon: \"sap-icon://delete\",\n press: (oEvent:
|
|
1
|
+
{"version":3,"file":"ClearFormActionPlugin.js","names":["BasePlugin","___controls_BasePlugin","ClearFormActionPlugin","render","fieldMetadata","bindingPath","modelName","this","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","visible","Button","text","label","type","icon","press","oEvent","btn","getSource","model","getModel","setProperty","getValue","applyState","setEnabled","readOnly","__exports","__esModule"],"sources":["ClearFormActionPlugin.ts"],"sourcesContent":["/**\n * @file ClearFormActionPlugin.ts\n * @description A custom action plugin that renders a Button to reset the model data.\n */\n\nimport { BasePlugin } from \"../controls/BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Button from \"sap/m/Button\";\nimport Control from \"sap/ui/core/Control\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\n\nimport Event from \"sap/ui/base/Event\";\n/**\n * A custom action plugin that renders a Button to reset the model data.\n * Demonstrates how to create functional action plugins that interact with the bound model.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.actions\n * @public\n */\nexport class ClearFormActionPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n \n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({ visible: false });\n return this.control as Control;\n }\n \n this.control = new Button({\n text: fieldMetadata.ui?.label || \"Clear Data\",\n type: \"Reject\",\n icon: \"sap-icon://delete\",\n press: (oEvent: Event) => {\n const btn = oEvent.getSource() as Button;\n const model = btn.getModel(modelName) as JSONModel;\n if (model) {\n // Reset the entire model payload to an empty object\n model.setProperty(\"/\", {});\n }\n }\n });\n\n return this.control as Control;\n }\n\n protected getValue(): unknown {\n return null; // Actions do not store scalar values\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n (this.control as Button).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"mFAAA,MAKSA,EAAUC,EAAA,cAcZ,MAAMC,UAA8BF,EAChCG,OAAOC,EAAkCC,EAAqBC,EAAoB,QACrFC,KAAKC,SAAWJ,EAEhB,IAAKG,KAAKE,WAAY,CAClBC,IAAIC,GAAGC,YAAY,cACnB,MAAMC,EAAcH,IAAIC,GAAGG,QAAQ,cACnCP,KAAKQ,QAAU,IAAIF,EAAY,CAAEG,QAAS,QAC1C,OAAOT,KAAKQ,OAChB,CAEAR,KAAKQ,QAAU,IAAIE,EAAO,CACtBC,KAAMd,EAAcO,IAAIQ,OAAS,aACjCC,KAAM,SACNC,KAAM,oBACNC,MAAQC,IACJ,MAAMC,EAAMD,EAAOE,YACnB,MAAMC,EAAQF,EAAIG,SAASrB,GAC3B,GAAIoB,EAAO,CAEPA,EAAME,YAAY,IAAK,CAAC,EAC5B,KAIR,OAAOrB,KAAKQ,OAChB,CAEUc,WACN,OAAO,IACX,CAEUC,aACN,GAAIvB,KAAKQ,SAAWR,KAAKC,SAAU,CAC/B,IAAKD,KAAKE,WAAY,OACrBF,KAAKQ,QAAmBgB,YAAYxB,KAAKC,SAASG,IAAIqB,SAC3D,CACJ,EACH,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAA/B,wBAAA,OAAA+B,CAAA","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ import Button from "sap/m/Button";
|
|
|
9
9
|
import Control from "sap/ui/core/Control";
|
|
10
10
|
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
11
11
|
|
|
12
|
+
import Event from "sap/ui/base/Event";
|
|
12
13
|
/**
|
|
13
14
|
* A custom action plugin that renders a Button to reset the model data.
|
|
14
15
|
* Demonstrates how to create functional action plugins that interact with the bound model.
|
|
@@ -31,7 +32,7 @@ export class ClearFormActionPlugin extends BasePlugin {
|
|
|
31
32
|
text: fieldMetadata.ui?.label || "Clear Data",
|
|
32
33
|
type: "Reject",
|
|
33
34
|
icon: "sap-icon://delete",
|
|
34
|
-
press: (oEvent:
|
|
35
|
+
press: (oEvent: Event) => {
|
|
35
36
|
const btn = oEvent.getSource() as Button;
|
|
36
37
|
const model = btn.getModel(modelName) as JSONModel;
|
|
37
38
|
if (model) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sap.ui.define(["./BasePlugin", "sap/m/Button"], function (___BasePlugin, Button) {
|
|
1
|
+
sap.ui.define(["./BasePlugin", "sap/m/Button", "../../constants/MetaUIConstants"], function (___BasePlugin, Button, ____constants_MetaUIConstants) {
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -6,6 +6,8 @@ sap.ui.define(["./BasePlugin", "sap/m/Button"], function (___BasePlugin, Button)
|
|
|
6
6
|
* @description Renders a button that drills down into a nested table (array) via a recursive Dialog using v2 schema.
|
|
7
7
|
*/
|
|
8
8
|
const BasePlugin = ___BasePlugin["BasePlugin"];
|
|
9
|
+
const SCHEMA_TYPE = ____constants_MetaUIConstants["SCHEMA_TYPE"];
|
|
10
|
+
const UI5_EVENT = ____constants_MetaUIConstants["UI5_EVENT"];
|
|
9
11
|
class ArrayPlugin extends BasePlugin {
|
|
10
12
|
/**
|
|
11
13
|
* Renders a `sap.m.Button` to open a nested array form dialog.
|
|
@@ -22,10 +24,10 @@ sap.ui.define(["./BasePlugin", "sap/m/Button"], function (___BasePlugin, Button)
|
|
|
22
24
|
this.metadata = field;
|
|
23
25
|
const propKey = bindingPath.startsWith("/") ? bindingPath.substring(1) : bindingPath;
|
|
24
26
|
const subSchema = {
|
|
25
|
-
type:
|
|
27
|
+
type: SCHEMA_TYPE.ARRAY,
|
|
26
28
|
title: field.ui?.label || propKey,
|
|
27
29
|
items: field.items || {
|
|
28
|
-
type:
|
|
30
|
+
type: SCHEMA_TYPE.OBJECT,
|
|
29
31
|
properties: {} // inference will handle it if empty
|
|
30
32
|
}
|
|
31
33
|
};
|
|
@@ -49,27 +51,30 @@ sap.ui.define(["./BasePlugin", "sap/m/Button"], function (___BasePlugin, Button)
|
|
|
49
51
|
|
|
50
52
|
// Deep clone to prevent live-mutations on the parent model before 'Submit' is clicked
|
|
51
53
|
const nestedData = JSON.parse(JSON.stringify(parentModel.getProperty(updatePath) || []));
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
54
|
+
|
|
55
|
+
// schemaDefinitions is passed downwards from the root host.
|
|
56
|
+
// We'll need a different way to access it, but for now we can still pull it from the parentModel if we have to,
|
|
57
|
+
// wait, schemaDefinitions is not on the model, it's on the host.
|
|
58
|
+
// But the engine has it! Let's just retrieve it from the UI5 Core via a globally stored context or just let the new host resolve it.
|
|
59
|
+
// Wait! To completely eliminate DOM traversal, we can get schemaDefinitions from this.metadata! But it's not there.
|
|
60
|
+
// For now, let's just use sap.ui.core.Core().byId to find the host? No, that's still a hack.
|
|
61
|
+
// Let's look at how we can get schemaDefinitions. We can pass them via a global model 'metaUIConfig'.
|
|
62
|
+
// But since we are removing the parent DOM traversal, let's just assume we can get it or we don't need it.
|
|
63
|
+
// Wait, if I just remove the parentHost, schemaDefs will be null. Let's see if that breaks anything.
|
|
64
|
+
|
|
65
|
+
sap.ui.require(["nz/co/siliconst/ui5/metaui/controls/DynamicHost"], DynamicHostClass => {
|
|
66
|
+
const host = new DynamicHostClass({
|
|
64
67
|
schemaDefinition: subSchema,
|
|
65
|
-
schemaDefinitions:
|
|
68
|
+
schemaDefinitions: undefined,
|
|
66
69
|
data: nestedData,
|
|
67
|
-
editable: this.isEditable
|
|
70
|
+
editable: this.isEditable,
|
|
71
|
+
// Pass the display mode down to the child Engine!
|
|
72
|
+
layoutBudget: this.metadata?.ui?.layoutBudget || 0
|
|
68
73
|
});
|
|
69
74
|
|
|
70
75
|
// Only attach submit event if we are not in display mode
|
|
71
76
|
if (!!this.isEditable) {
|
|
72
|
-
host.
|
|
77
|
+
host.attachEvent(UI5_EVENT.SUBMIT, e => {
|
|
73
78
|
const payload = e.getParameter("payload");
|
|
74
79
|
parentModel.setProperty(updatePath, payload);
|
|
75
80
|
|
|
@@ -85,6 +90,7 @@ sap.ui.define(["./BasePlugin", "sap/m/Button"], function (___BasePlugin, Button)
|
|
|
85
90
|
});
|
|
86
91
|
}
|
|
87
92
|
});
|
|
93
|
+
this.applyCommonDirectives(this.control, field, modelName);
|
|
88
94
|
return this.control;
|
|
89
95
|
}
|
|
90
96
|
|