@siliconst/metaui 1.2.0 → 1.4.5
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 +102 -33
- package/package.json +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js +70 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts +67 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +58 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js +28 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts +16 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +28 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +142 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts +33 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +164 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +305 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +168 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +247 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +73 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +32 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +86 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +60 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +32 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +61 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +157 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +33 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +169 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +160 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +28 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +185 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +443 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +227 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +421 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +103 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +32 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +119 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +64 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +21 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +64 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js +122 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +49 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +118 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +120 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +45 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +131 -0
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +40 -15
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +27 -7
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +41 -15
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js +78 -0
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts +27 -0
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +79 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +159 -43
- 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 +64 -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 +166 -43
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js +32 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts +16 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.ts +26 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +123 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts +49 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +106 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +104 -25
- 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 +21 -13
- 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 +110 -21
- package/src/nz/co/siliconst/ui5/metaui/core/Registry-dbg.js +79 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Registry-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Registry.d.ts +43 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Registry.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Registry.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Registry.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Registry.ts +70 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +116 -21
- 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 +11 -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 +115 -21
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +54 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +53 -0
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +88 -2
- 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 +15 -1
- 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 +103 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts +7 -8
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.ts +7 -7
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline-dbg.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts +38 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.ts +39 -0
- 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 +38 -2
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +43 -2
- 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 +32 -3
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +35 -3
- package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js +148 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts +27 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.ts +139 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +136 -61
- 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 +19 -12
- 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 +135 -71
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +111 -51
- 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 +21 -8
- 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 +123 -65
- package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js +129 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts +28 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.ts +127 -0
- package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +17 -12
- package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js +73 -25
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.d.ts +1 -0
- package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.ts +25 -12
- package/src/nz/co/siliconst/ui5/metaui/manifest.json +8 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js +58 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts +22 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +57 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js +55 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts +21 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.ts +54 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin-dbg.js +46 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts +23 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.ts +45 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +74 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +15 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +80 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +75 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +12 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +83 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +174 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +78 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +165 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +79 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +36 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +77 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +60 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +56 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +122 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +24 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +125 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{DatePlugin-dbg.js → controls/DatePlugin-dbg.js} +29 -20
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{DatePlugin.d.ts → controls/DatePlugin.d.ts} +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +74 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{DateTimePlugin-dbg.js → controls/DateTimePlugin-dbg.js} +30 -20
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{DateTimePlugin.d.ts → controls/DateTimePlugin.d.ts} +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +75 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +109 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +37 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +105 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +65 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +21 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +64 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +59 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +56 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +45 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +22 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +42 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +74 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +22 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +73 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{NumberPlugin-dbg.js → controls/NumberPlugin-dbg.js} +21 -16
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{NumberPlugin.d.ts → controls/NumberPlugin.d.ts} +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +62 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +74 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +17 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +81 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +61 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +21 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +62 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +64 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +16 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +67 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +58 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +55 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +64 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +21 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +65 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +87 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +37 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +85 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{SwitchPlugin-dbg.js → controls/SwitchPlugin-dbg.js} +24 -6
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{SwitchPlugin.d.ts → controls/SwitchPlugin.d.ts} +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +62 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{TextAreaPlugin-dbg.js → controls/TextAreaPlugin-dbg.js} +20 -14
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{TextAreaPlugin.d.ts → controls/TextAreaPlugin.d.ts} +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +63 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{TimePlugin-dbg.js → controls/TimePlugin-dbg.js} +30 -25
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/{TimePlugin.d.ts → controls/TimePlugin.d.ts} +4 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +76 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +62 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +59 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js +94 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts +29 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +102 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +60 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts +22 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +57 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +106 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +22 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +101 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js +77 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +86 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin-dbg.js +36 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.ts +36 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js +32 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts +19 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.ts +31 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js +32 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts +17 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.ts +27 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js +31 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.ts +23 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin-dbg.js +45 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts +24 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.ts +30 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js +42 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.ts +29 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js +41 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts +17 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js +51 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts +17 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.ts +33 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js +48 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts +17 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.ts +32 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js +46 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts +17 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.ts +29 -0
- package/src/nz/co/siliconst/ui5/metaui/utils/Logger-dbg.js +83 -0
- package/src/nz/co/siliconst/ui5/metaui/utils/Logger-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts +29 -0
- package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/utils/Logger.ts +75 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js +0 -300
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts +0 -130
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.ts +0 -292
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js +0 -66
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts +0 -40
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.ts +0 -60
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.d.ts +0 -29
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.ts +0 -29
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js +0 -24
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts +0 -15
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.ts +0 -22
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin-dbg.js +0 -68
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.d.ts +0 -15
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.ts +0 -71
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js +0 -55
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts +0 -24
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.ts +0 -56
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js +0 -42
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts +0 -18
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.ts +0 -41
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.ts +0 -69
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.ts +0 -68
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js +0 -67
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts +0 -18
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.ts +0 -65
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.ts +0 -56
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js +0 -57
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts +0 -18
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.ts +0 -58
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.ts +0 -42
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.ts +0 -58
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.ts +0 -71
|
@@ -3,15 +3,35 @@
|
|
|
3
3
|
* @description Evaluates dynamic rules to alter the schema in real-time.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { IPlugin } from "../interfaces/IPlugin";
|
|
7
7
|
import { ISchema } from "../interfaces/ISchema";
|
|
8
|
-
import {
|
|
8
|
+
import { Registry } from "./Registry";
|
|
9
|
+
|
|
10
|
+
export type ConditionOperator = (a: any, b: any) => boolean;
|
|
11
|
+
|
|
12
|
+
export const OperatorRegistry = new Registry<ConditionOperator>("Operators");
|
|
13
|
+
|
|
14
|
+
// Register basic default operators
|
|
15
|
+
OperatorRegistry.register("==", (a, b) => a == b);
|
|
16
|
+
OperatorRegistry.register("===", (a, b) => a === b);
|
|
17
|
+
OperatorRegistry.register("!=", (a, b) => a != b);
|
|
18
|
+
OperatorRegistry.register("!==", (a, b) => a !== b);
|
|
19
|
+
OperatorRegistry.register(">", (a, b) => a > b);
|
|
20
|
+
OperatorRegistry.register("<", (a, b) => a < b);
|
|
21
|
+
OperatorRegistry.register(">=", (a, b) => a >= b);
|
|
22
|
+
OperatorRegistry.register("<=", (a, b) => a <= b);
|
|
9
23
|
|
|
10
24
|
/**
|
|
11
|
-
* Engine that listens to the EventBus and evaluates cross-field dependencies.
|
|
25
|
+
* Engine that listens to the EventBus and evaluates cross-field dependencies (e.g. visibleOn, enabledOn).
|
|
26
|
+
* It delegates actual evaluations to the configurable `OperatorRegistry`.
|
|
27
|
+
*
|
|
28
|
+
* @namespace nz.co.siliconst.ui5.metaui.core
|
|
29
|
+
* @public
|
|
12
30
|
*/
|
|
13
31
|
export class ConditionEngine {
|
|
32
|
+
/** The active form schema being evaluated. */
|
|
14
33
|
private schema: ISchema;
|
|
34
|
+
/** The cached bound event handler reference for strict garbage collection. */
|
|
15
35
|
private boundHandler: (event: IFieldChangeEvent) => void;
|
|
16
36
|
|
|
17
37
|
/**
|
|
@@ -20,30 +40,36 @@ export class ConditionEngine {
|
|
|
20
40
|
*/
|
|
21
41
|
constructor(schema: ISchema) {
|
|
22
42
|
this.schema = schema;
|
|
23
|
-
this.boundHandler = this.handleEvent.bind(this);
|
|
24
|
-
this.initializeListeners();
|
|
25
43
|
}
|
|
26
44
|
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
/** Internal map tracking active plugins against their binding paths for real-time state updates. */
|
|
48
|
+
private plugins: Map<string, IPlugin> = new Map();
|
|
49
|
+
|
|
27
50
|
/**
|
|
28
|
-
*
|
|
51
|
+
* Internal handler to evaluate business rules when a field is updated.
|
|
52
|
+
* @param fieldKey The key of the field that was changed
|
|
53
|
+
* @param isValid Whether the field is currently valid
|
|
29
54
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
55
|
+
public handleEvent(fieldKey: string, isValid: boolean): void {
|
|
56
|
+
// Evaluate conditions via registered operators if a rule system is added later
|
|
32
57
|
}
|
|
33
58
|
|
|
34
59
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
60
|
+
* Registers a rendered plugin so the condition engine can push dynamic state updates to it.
|
|
61
|
+
*
|
|
62
|
+
* @param bindingPath The JSON path representing the field within the payload.
|
|
63
|
+
* @param plugin The instantiated plugin handling the field.
|
|
37
64
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
// and update plugin properties will be injected here in later phases.
|
|
65
|
+
public registerPlugin(bindingPath: string, plugin: IPlugin): void {
|
|
66
|
+
this.plugins.set(bindingPath, plugin);
|
|
41
67
|
}
|
|
42
68
|
|
|
43
69
|
/**
|
|
44
|
-
* Cleans up
|
|
70
|
+
* Cleans up listeners to prevent memory leaks on destruction.
|
|
45
71
|
*/
|
|
46
72
|
public destroy(): void {
|
|
47
|
-
|
|
73
|
+
this.plugins.clear();
|
|
48
74
|
}
|
|
49
75
|
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
sap.ui.define([], function () {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @file DefaultLayoutGenerator.ts
|
|
6
|
+
* @description Automatically synthesizes a default UI layout for schemas that lack an explicit mapping.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Encapsulates the logic to dynamically build a safe, default layout orchestration
|
|
11
|
+
* when the developer or backend fails to provide an explicit `uiLayout`.
|
|
12
|
+
*
|
|
13
|
+
* By elevating this into a dedicated utility, we avoid polluting layout engines
|
|
14
|
+
* (like FormLayout or TableLayout) with structural inference responsibilities.
|
|
15
|
+
*
|
|
16
|
+
* @namespace nz.co.siliconst.ui5.metaui.core
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
class DefaultLayoutGenerator {
|
|
20
|
+
/**
|
|
21
|
+
* Inspects a schema. If it has properties but no `uiLayout`, it synthesizes a default.
|
|
22
|
+
* @param schema The ISchema dictionary.
|
|
23
|
+
* @returns boolean True if a layout was synthesized, false if it already existed or was empty.
|
|
24
|
+
*/
|
|
25
|
+
static ensureLayout(schema) {
|
|
26
|
+
// If it already has a valid array, do nothing
|
|
27
|
+
if (schema.uiLayout && Array.isArray(schema.uiLayout) && schema.uiLayout.length > 0) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
const isArray = schema.type === "array";
|
|
31
|
+
const props = isArray ? schema.items?.properties : schema.properties;
|
|
32
|
+
if (!props || Object.keys(props).length === 0) {
|
|
33
|
+
return false; // Nothing to map
|
|
34
|
+
}
|
|
35
|
+
const elements = this.generateElementsFromProperties(props, "#/properties");
|
|
36
|
+
if (isArray) {
|
|
37
|
+
// Table layouts expect an array of flat Controls at the root uiLayout
|
|
38
|
+
// For tables, we flatten the deep elements or just render the root level
|
|
39
|
+
// To keep it safe, we'll just use the flat elements for tables
|
|
40
|
+
schema.uiLayout = elements.filter(e => e.type === "Control");
|
|
41
|
+
} else {
|
|
42
|
+
// Form layouts expect a grouped structure
|
|
43
|
+
schema.uiLayout = [{
|
|
44
|
+
type: "Group",
|
|
45
|
+
label: schema.title,
|
|
46
|
+
elements: elements
|
|
47
|
+
}];
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
static generateElementsFromProperties(props, basePath) {
|
|
52
|
+
const elements = [];
|
|
53
|
+
for (const key of Object.keys(props)) {
|
|
54
|
+
const prop = props[key];
|
|
55
|
+
const currentPath = `${basePath}/${key}`;
|
|
56
|
+
if (prop.type === "object" && prop.properties) {
|
|
57
|
+
elements.push({
|
|
58
|
+
type: "Group",
|
|
59
|
+
label: prop.ui?.label || key,
|
|
60
|
+
elements: this.generateElementsFromProperties(prop.properties, `${currentPath}/properties`)
|
|
61
|
+
});
|
|
62
|
+
} else {
|
|
63
|
+
elements.push({
|
|
64
|
+
type: "Control",
|
|
65
|
+
scope: currentPath
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return elements;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
var __exports = {
|
|
73
|
+
__esModule: true
|
|
74
|
+
};
|
|
75
|
+
__exports.DefaultLayoutGenerator = DefaultLayoutGenerator;
|
|
76
|
+
return __exports;
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=DefaultLayoutGenerator-dbg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultLayoutGenerator-dbg.js","names":["DefaultLayoutGenerator","ensureLayout","schema","uiLayout","Array","isArray","length","type","props","items","properties","Object","keys","elements","generateElementsFromProperties","filter","e","label","title","basePath","key","prop","currentPath","push","ui","scope","__exports","__esModule"],"sources":["DefaultLayoutGenerator.ts"],"sourcesContent":["/**\n * @file DefaultLayoutGenerator.ts\n * @description Automatically synthesizes a default UI layout for schemas that lack an explicit mapping.\n */\n\nimport { ISchema, ILayoutElement } from \"../interfaces/ISchema\";\n\n/**\n * Encapsulates the logic to dynamically build a safe, default layout orchestration\n * when the developer or backend fails to provide an explicit `uiLayout`.\n * \n * By elevating this into a dedicated utility, we avoid polluting layout engines\n * (like FormLayout or TableLayout) with structural inference responsibilities.\n * \n * @namespace nz.co.siliconst.ui5.metaui.core\n * @public\n */\nexport class DefaultLayoutGenerator {\n /**\n * Inspects a schema. If it has properties but no `uiLayout`, it synthesizes a default.\n * @param schema The ISchema dictionary.\n * @returns boolean True if a layout was synthesized, false if it already existed or was empty.\n */\n public static ensureLayout(schema: ISchema): boolean {\n // If it already has a valid array, do nothing\n if (schema.uiLayout && Array.isArray(schema.uiLayout) && schema.uiLayout.length > 0) {\n return false;\n }\n\n const isArray = schema.type === \"array\";\n const props = isArray ? schema.items?.properties : schema.properties;\n\n if (!props || Object.keys(props).length === 0) {\n return false; // Nothing to map\n }\n\n const elements = this.generateElementsFromProperties(props, \"#/properties\");\n\n if (isArray) {\n // Table layouts expect an array of flat Controls at the root uiLayout\n // For tables, we flatten the deep elements or just render the root level\n // To keep it safe, we'll just use the flat elements for tables\n schema.uiLayout = elements.filter(e => e.type === \"Control\");\n } else {\n // Form layouts expect a grouped structure\n schema.uiLayout = [\n {\n type: \"Group\",\n label: schema.title,\n elements: elements\n }\n ];\n }\n\n return true;\n }\n\n private static generateElementsFromProperties(props: any, basePath: string): ILayoutElement[] {\n const elements: ILayoutElement[] = [];\n for (const key of Object.keys(props)) {\n const prop = props[key];\n const currentPath = `${basePath}/${key}`;\n\n if (prop.type === \"object\" && prop.properties) {\n elements.push({\n type: \"Group\",\n label: prop.ui?.label || key,\n elements: this.generateElementsFromProperties(prop.properties, `${currentPath}/properties`)\n });\n } else {\n elements.push({\n type: \"Control\",\n scope: currentPath\n });\n }\n }\n return elements;\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;;EAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMA,sBAAsB,CAAC;IAChC;AACJ;AACA;AACA;AACA;IACI,OAAcC,YAAYA,CAACC,MAAe,EAAW;MACjD;MACA,IAAIA,MAAM,CAACC,QAAQ,IAAIC,KAAK,CAACC,OAAO,CAACH,MAAM,CAACC,QAAQ,CAAC,IAAID,MAAM,CAACC,QAAQ,CAACG,MAAM,GAAG,CAAC,EAAE;QACjF,OAAO,KAAK;MAChB;MAEA,MAAMD,OAAO,GAAGH,MAAM,CAACK,IAAI,KAAK,OAAO;MACvC,MAAMC,KAAK,GAAGH,OAAO,GAAGH,MAAM,CAACO,KAAK,EAAEC,UAAU,GAAGR,MAAM,CAACQ,UAAU;MAEpE,IAAI,CAACF,KAAK,IAAIG,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,CAACF,MAAM,KAAK,CAAC,EAAE;QAC3C,OAAO,KAAK,CAAC,CAAC;MAClB;MAEA,MAAMO,QAAQ,GAAG,IAAI,CAACC,8BAA8B,CAACN,KAAK,EAAE,cAAc,CAAC;MAE3E,IAAIH,OAAO,EAAE;QACT;QACA;QACA;QACAH,MAAM,CAACC,QAAQ,GAAGU,QAAQ,CAACE,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACT,IAAI,KAAK,SAAS,CAAC;MAChE,CAAC,MAAM;QACH;QACAL,MAAM,CAACC,QAAQ,GAAG,CACd;UACII,IAAI,EAAE,OAAO;UACbU,KAAK,EAAEf,MAAM,CAACgB,KAAK;UACnBL,QAAQ,EAAEA;QACd,CAAC,CACJ;MACL;MAEA,OAAO,IAAI;IACf;IAEA,OAAeC,8BAA8BA,CAACN,KAAU,EAAEW,QAAgB,EAAoB;MAC1F,MAAMN,QAA0B,GAAG,EAAE;MACrC,KAAK,MAAMO,GAAG,IAAIT,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,EAAE;QAClC,MAAMa,IAAI,GAAGb,KAAK,CAACY,GAAG,CAAC;QACvB,MAAME,WAAW,GAAG,GAAGH,QAAQ,IAAIC,GAAG,EAAE;QAExC,IAAIC,IAAI,CAACd,IAAI,KAAK,QAAQ,IAAIc,IAAI,CAACX,UAAU,EAAE;UAC3CG,QAAQ,CAACU,IAAI,CAAC;YACVhB,IAAI,EAAE,OAAO;YACbU,KAAK,EAAEI,IAAI,CAACG,EAAE,EAAEP,KAAK,IAAIG,GAAG;YAC5BP,QAAQ,EAAE,IAAI,CAACC,8BAA8B,CAACO,IAAI,CAACX,UAAU,EAAE,GAAGY,WAAW,aAAa;UAC9F,CAAC,CAAC;QACN,CAAC,MAAM;UACHT,QAAQ,CAACU,IAAI,CAAC;YACVhB,IAAI,EAAE,SAAS;YACfkB,KAAK,EAAEH;UACX,CAAC,CAAC;QACN;MACJ;MACA,OAAOT,QAAQ;IACnB;EACJ;EAAC,IAAAa,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAA1B,sBAAA,GAAAA,sBAAA;EAAA,OAAA0B,SAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare module "nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator" {
|
|
2
|
+
/**
|
|
3
|
+
* @file DefaultLayoutGenerator.ts
|
|
4
|
+
* @description Automatically synthesizes a default UI layout for schemas that lack an explicit mapping.
|
|
5
|
+
*/
|
|
6
|
+
import { ISchema } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
|
|
7
|
+
/**
|
|
8
|
+
* Encapsulates the logic to dynamically build a safe, default layout orchestration
|
|
9
|
+
* when the developer or backend fails to provide an explicit `uiLayout`.
|
|
10
|
+
*
|
|
11
|
+
* By elevating this into a dedicated utility, we avoid polluting layout engines
|
|
12
|
+
* (like FormLayout or TableLayout) with structural inference responsibilities.
|
|
13
|
+
*
|
|
14
|
+
* @namespace nz.co.siliconst.ui5.metaui.core
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export class DefaultLayoutGenerator {
|
|
18
|
+
/**
|
|
19
|
+
* Inspects a schema. If it has properties but no `uiLayout`, it synthesizes a default.
|
|
20
|
+
* @param schema The ISchema dictionary.
|
|
21
|
+
* @returns boolean True if a layout was synthesized, false if it already existed or was empty.
|
|
22
|
+
*/
|
|
23
|
+
static ensureLayout(schema: ISchema): boolean;
|
|
24
|
+
private static generateElementsFromProperties;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=DefaultLayoutGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultLayoutGenerator.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,wDAAwD,CAAC;IACxE;;;OAGG;IAEH,OAAO,EAAE,OAAO,EAAkB,MAAM,+CAA+C,CAAC;IAExF;;;;;;;;;OASG;IACH,MAAa,sBAAsB;QAC/B;;;;WAIG;eACW,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;QAkCpD,OAAO,CAAC,MAAM,CAAC,8BAA8B;KAqBhD;CAEA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
sap.ui.define([],function(){"use strict";class e{static ensureLayout(e){if(e.uiLayout&&Array.isArray(e.uiLayout)&&e.uiLayout.length>0){return false}const t=e.type==="array";const r=t?e.items?.properties:e.properties;if(!r||Object.keys(r).length===0){return false}const s=this.generateElementsFromProperties(r,"#/properties");if(t){e.uiLayout=s.filter(e=>e.type==="Control")}else{e.uiLayout=[{type:"Group",label:e.title,elements:s}]}return true}static generateElementsFromProperties(e,t){const r=[];for(const s of Object.keys(e)){const o=e[s];const i=`${t}/${s}`;if(o.type==="object"&&o.properties){r.push({type:"Group",label:o.ui?.label||s,elements:this.generateElementsFromProperties(o.properties,`${i}/properties`)})}else{r.push({type:"Control",scope:i})}}return r}}var t={__esModule:true};t.DefaultLayoutGenerator=e;return t});
|
|
2
|
+
//# sourceMappingURL=DefaultLayoutGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultLayoutGenerator.js","names":["DefaultLayoutGenerator","ensureLayout","schema","uiLayout","Array","isArray","length","type","props","items","properties","Object","keys","elements","this","generateElementsFromProperties","filter","e","label","title","basePath","key","prop","currentPath","push","ui","scope","__exports","__esModule"],"sources":["DefaultLayoutGenerator.ts"],"sourcesContent":["/**\n * @file DefaultLayoutGenerator.ts\n * @description Automatically synthesizes a default UI layout for schemas that lack an explicit mapping.\n */\n\nimport { ISchema, ILayoutElement } from \"../interfaces/ISchema\";\n\n/**\n * Encapsulates the logic to dynamically build a safe, default layout orchestration\n * when the developer or backend fails to provide an explicit `uiLayout`.\n * \n * By elevating this into a dedicated utility, we avoid polluting layout engines\n * (like FormLayout or TableLayout) with structural inference responsibilities.\n * \n * @namespace nz.co.siliconst.ui5.metaui.core\n * @public\n */\nexport class DefaultLayoutGenerator {\n /**\n * Inspects a schema. If it has properties but no `uiLayout`, it synthesizes a default.\n * @param schema The ISchema dictionary.\n * @returns boolean True if a layout was synthesized, false if it already existed or was empty.\n */\n public static ensureLayout(schema: ISchema): boolean {\n // If it already has a valid array, do nothing\n if (schema.uiLayout && Array.isArray(schema.uiLayout) && schema.uiLayout.length > 0) {\n return false;\n }\n\n const isArray = schema.type === \"array\";\n const props = isArray ? schema.items?.properties : schema.properties;\n\n if (!props || Object.keys(props).length === 0) {\n return false; // Nothing to map\n }\n\n const elements = this.generateElementsFromProperties(props, \"#/properties\");\n\n if (isArray) {\n // Table layouts expect an array of flat Controls at the root uiLayout\n // For tables, we flatten the deep elements or just render the root level\n // To keep it safe, we'll just use the flat elements for tables\n schema.uiLayout = elements.filter(e => e.type === \"Control\");\n } else {\n // Form layouts expect a grouped structure\n schema.uiLayout = [\n {\n type: \"Group\",\n label: schema.title,\n elements: elements\n }\n ];\n }\n\n return true;\n }\n\n private static generateElementsFromProperties(props: any, basePath: string): ILayoutElement[] {\n const elements: ILayoutElement[] = [];\n for (const key of Object.keys(props)) {\n const prop = props[key];\n const currentPath = `${basePath}/${key}`;\n\n if (prop.type === \"object\" && prop.properties) {\n elements.push({\n type: \"Group\",\n label: prop.ui?.label || key,\n elements: this.generateElementsFromProperties(prop.properties, `${currentPath}/properties`)\n });\n } else {\n elements.push({\n type: \"Control\",\n scope: currentPath\n });\n }\n }\n return elements;\n }\n}\n"],"mappings":"yCAiBO,MAAMA,EAMT,mBAAcC,CAAaC,GAEvB,GAAIA,EAAOC,UAAYC,MAAMC,QAAQH,EAAOC,WAAaD,EAAOC,SAASG,OAAS,EAAG,CACjF,OAAO,KACX,CAEA,MAAMD,EAAUH,EAAOK,OAAS,QAChC,MAAMC,EAAQH,EAAUH,EAAOO,OAAOC,WAAaR,EAAOQ,WAE1D,IAAKF,GAASG,OAAOC,KAAKJ,GAAOF,SAAW,EAAG,CAC3C,OAAO,KACX,CAEA,MAAMO,EAAWC,KAAKC,+BAA+BP,EAAO,gBAE5D,GAAIH,EAAS,CAITH,EAAOC,SAAWU,EAASG,OAAOC,GAAKA,EAAEV,OAAS,UACtD,KAAO,CAEHL,EAAOC,SAAW,CACd,CACII,KAAM,QACNW,MAAOhB,EAAOiB,MACdN,SAAUA,GAGtB,CAEA,OAAO,IACX,CAEA,qCAAeE,CAA+BP,EAAYY,GACtD,MAAMP,EAA6B,GACnC,IAAK,MAAMQ,KAAOV,OAAOC,KAAKJ,GAAQ,CAClC,MAAMc,EAAOd,EAAMa,GACnB,MAAME,EAAc,GAAGH,KAAYC,IAEnC,GAAIC,EAAKf,OAAS,UAAYe,EAAKZ,WAAY,CAC3CG,EAASW,KAAK,CACVjB,KAAM,QACNW,MAAOI,EAAKG,IAAIP,OAASG,EACzBR,SAAUC,KAAKC,+BAA+BO,EAAKZ,WAAY,GAAGa,iBAE1E,KAAO,CACHV,EAASW,KAAK,CACVjB,KAAM,UACNmB,MAAOH,GAEf,CACJ,CACA,OAAOV,CACX,EACH,IAAAc,EAAA,CAAAC,WAAA,MAAAD,EAAA3B,yBAAA,OAAA2B,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file DefaultLayoutGenerator.ts
|
|
3
|
+
* @description Automatically synthesizes a default UI layout for schemas that lack an explicit mapping.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { ISchema, ILayoutElement } from "../interfaces/ISchema";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Encapsulates the logic to dynamically build a safe, default layout orchestration
|
|
10
|
+
* when the developer or backend fails to provide an explicit `uiLayout`.
|
|
11
|
+
*
|
|
12
|
+
* By elevating this into a dedicated utility, we avoid polluting layout engines
|
|
13
|
+
* (like FormLayout or TableLayout) with structural inference responsibilities.
|
|
14
|
+
*
|
|
15
|
+
* @namespace nz.co.siliconst.ui5.metaui.core
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export class DefaultLayoutGenerator {
|
|
19
|
+
/**
|
|
20
|
+
* Inspects a schema. If it has properties but no `uiLayout`, it synthesizes a default.
|
|
21
|
+
* @param schema The ISchema dictionary.
|
|
22
|
+
* @returns boolean True if a layout was synthesized, false if it already existed or was empty.
|
|
23
|
+
*/
|
|
24
|
+
public static ensureLayout(schema: ISchema): boolean {
|
|
25
|
+
// If it already has a valid array, do nothing
|
|
26
|
+
if (schema.uiLayout && Array.isArray(schema.uiLayout) && schema.uiLayout.length > 0) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const isArray = schema.type === "array";
|
|
31
|
+
const props = isArray ? schema.items?.properties : schema.properties;
|
|
32
|
+
|
|
33
|
+
if (!props || Object.keys(props).length === 0) {
|
|
34
|
+
return false; // Nothing to map
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const elements = this.generateElementsFromProperties(props, "#/properties");
|
|
38
|
+
|
|
39
|
+
if (isArray) {
|
|
40
|
+
// Table layouts expect an array of flat Controls at the root uiLayout
|
|
41
|
+
// For tables, we flatten the deep elements or just render the root level
|
|
42
|
+
// To keep it safe, we'll just use the flat elements for tables
|
|
43
|
+
schema.uiLayout = elements.filter(e => e.type === "Control");
|
|
44
|
+
} else {
|
|
45
|
+
// Form layouts expect a grouped structure
|
|
46
|
+
schema.uiLayout = [
|
|
47
|
+
{
|
|
48
|
+
type: "Group",
|
|
49
|
+
label: schema.title,
|
|
50
|
+
elements: elements
|
|
51
|
+
}
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
private static generateElementsFromProperties(props: any, basePath: string): ILayoutElement[] {
|
|
59
|
+
const elements: ILayoutElement[] = [];
|
|
60
|
+
for (const key of Object.keys(props)) {
|
|
61
|
+
const prop = props[key];
|
|
62
|
+
const currentPath = `${basePath}/${key}`;
|
|
63
|
+
|
|
64
|
+
if (prop.type === "object" && prop.properties) {
|
|
65
|
+
elements.push({
|
|
66
|
+
type: "Group",
|
|
67
|
+
label: prop.ui?.label || key,
|
|
68
|
+
elements: this.generateElementsFromProperties(prop.properties, `${currentPath}/properties`)
|
|
69
|
+
});
|
|
70
|
+
} else {
|
|
71
|
+
elements.push({
|
|
72
|
+
type: "Control",
|
|
73
|
+
scope: currentPath
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return elements;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sap.ui.define(["./ConditionEngine", "sap/m/
|
|
1
|
+
sap.ui.define(["./ConditionEngine", "./PluginRegistry", "sap/m/Text", "../utils/Logger", "./DefaultLayoutGenerator", "sap/ui/core/Messaging"], function (___ConditionEngine, ___PluginRegistry, Text, ___utils_Logger, ___DefaultLayoutGenerator, Messaging) {
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -6,70 +6,186 @@ sap.ui.define(["./ConditionEngine", "sap/m/VBox"], function (___ConditionEngine,
|
|
|
6
6
|
* @description The central orchestrator that routes data between the Layout Factory and Plugin Registry (v2).
|
|
7
7
|
*/
|
|
8
8
|
const ConditionEngine = ___ConditionEngine["ConditionEngine"];
|
|
9
|
+
const PluginRegistry = ___PluginRegistry["PluginRegistry"];
|
|
10
|
+
const Logger = ___utils_Logger["Logger"];
|
|
11
|
+
const DefaultLayoutGenerator = ___DefaultLayoutGenerator["DefaultLayoutGenerator"];
|
|
12
|
+
/**
|
|
13
|
+
* The Engine is responsible for translating a normalized schema into a physical UI5 layout.
|
|
14
|
+
* It delegates layout generation to the configured `LayoutManager` and field generation to the `PluginRegistry`.
|
|
15
|
+
* It is NOT a God Class; it strictly routes execution flow and tracks active plugins for validation.
|
|
16
|
+
* It embodies the "Plugin-First Philosophy" by routing all complex field and layout rendering
|
|
17
|
+
* through discrete, decoupled plugins rather than handling native overrides.
|
|
18
|
+
*
|
|
19
|
+
* @namespace nz.co.siliconst.ui5.metaui.core
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
9
22
|
class Engine {
|
|
23
|
+
/** Global registry of all available layout strategies (e.g. Form, Table, Wizard). */
|
|
24
|
+
|
|
25
|
+
/** Handles dynamic conditional logic across the active form. */
|
|
10
26
|
conditionEngine = null;
|
|
27
|
+
|
|
28
|
+
/** Array of all instantiated plugins generated during the current build. */
|
|
11
29
|
activePlugins = [];
|
|
12
|
-
|
|
30
|
+
|
|
31
|
+
/** Deterministic scope ID injected by the host control to prevent clone collisions. */
|
|
32
|
+
|
|
33
|
+
/** Tracks whether the entire engine is running in Read-Only Display mode. */
|
|
34
|
+
isDisplayMode = false;
|
|
35
|
+
constructor(displayMode = false) {
|
|
36
|
+
this.isDisplayMode = displayMode;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Bootstraps the layout generation process by resolving the correct layout strategy.
|
|
41
|
+
*
|
|
42
|
+
* @param schema The normalized JSON schema representing the view.
|
|
43
|
+
* @param model The active StateManager JSONModel instance.
|
|
44
|
+
* @param modelName The UI5 model alias used for isolation.
|
|
45
|
+
* @param onSubmit Callback fired when form is submitted.
|
|
46
|
+
* @param engineScopeId Deterministic scope ID for this engine instance.
|
|
47
|
+
* @param onChange Callback fired when field values change.
|
|
48
|
+
* @returns The generated root UI5 Control container.
|
|
49
|
+
*/
|
|
50
|
+
build(schema, model, modelName = "meta", onSubmit, engineScopeId, onChange) {
|
|
13
51
|
this.conditionEngine = new ConditionEngine(schema);
|
|
14
52
|
this.activePlugins = [];
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
throw new Error("[MetaUI] Array schema must define 'items'.");
|
|
53
|
+
this.activeModel = model;
|
|
54
|
+
this.engineScopeId = engineScopeId;
|
|
55
|
+
this.onChange = (isValid, fieldKey, errorMessage, controlId) => {
|
|
56
|
+
if (this.conditionEngine && fieldKey) {
|
|
57
|
+
this.conditionEngine.handleEvent(fieldKey, isValid);
|
|
21
58
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
59
|
+
if (onChange) {
|
|
60
|
+
onChange(isValid, fieldKey, errorMessage, controlId);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
try {
|
|
64
|
+
// Intercept and synthesize a default layout if the developer/backend failed to provide one
|
|
65
|
+
if (DefaultLayoutGenerator.ensureLayout(schema)) {
|
|
66
|
+
Logger.warn("[MetaUI Engine] Missing 'uiLayout' array in schema. Synthesized a default layout mapping to prevent a blank render.");
|
|
67
|
+
}
|
|
68
|
+
const layoutStrategy = schema.layoutStrategy || (schema.type === "array" ? "table" : "form");
|
|
69
|
+
const layoutManager = Engine.layoutRegistry.getStrict(layoutStrategy);
|
|
70
|
+
return layoutManager.render(schema, modelName, this, onSubmit);
|
|
71
|
+
} catch (error) {
|
|
72
|
+
const msg = error.message;
|
|
73
|
+
Logger.error("[MetaUI Engine] Critical error during layout generation", msg);
|
|
74
|
+
Logger.showErrorPopup(`Engine failed to generate the layout.\n\nDetails: ${msg}`);
|
|
75
|
+
return new Text({
|
|
76
|
+
text: "Critical Layout Error"
|
|
27
77
|
});
|
|
28
|
-
|
|
78
|
+
}
|
|
79
|
+
}
|
|
29
80
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Instantiates the correct plugin for a specific field based on type and widget hints,
|
|
83
|
+
* and tracks the plugin for global validation.
|
|
84
|
+
*
|
|
85
|
+
* @param fieldMeta The metadata schema specific to the field.
|
|
86
|
+
* @param bindingPath The JSON path representing the field within the payload.
|
|
87
|
+
* @param modelName The UI5 JSONModel name used for data binding.
|
|
88
|
+
* @returns The generated UI5 Control for the field.
|
|
89
|
+
*/
|
|
90
|
+
generateField(fieldMeta, bindingPath, modelName, isTemplate = false) {
|
|
91
|
+
try {
|
|
92
|
+
const plugin = PluginRegistry.getInstance().getPlugin(fieldMeta.type || "string", fieldMeta.ui?.widget);
|
|
93
|
+
plugin.setDisplayMode(this.isDisplayMode);
|
|
94
|
+
if (!isTemplate) {
|
|
95
|
+
this.activePlugins.push({
|
|
96
|
+
plugin,
|
|
97
|
+
path: bindingPath
|
|
98
|
+
});
|
|
42
99
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (
|
|
46
|
-
|
|
100
|
+
const scopeId = isTemplate ? undefined : this.engineScopeId;
|
|
101
|
+
const control = plugin.render(fieldMeta, bindingPath, modelName, scopeId, this.onChange);
|
|
102
|
+
if (this.conditionEngine) {
|
|
103
|
+
this.conditionEngine.registerPlugin(bindingPath, plugin);
|
|
47
104
|
}
|
|
105
|
+
return control;
|
|
106
|
+
} catch (error) {
|
|
107
|
+
const msg = error.message;
|
|
108
|
+
Logger.error(`[MetaUI Engine] Failed to generate field at ${bindingPath}`, msg);
|
|
109
|
+
Logger.showErrorPopup(`Failed to generate field '${bindingPath}'.\n\nDetails: ${msg}`);
|
|
110
|
+
return new Text({
|
|
111
|
+
text: `[Error generating field ${bindingPath}]`
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
48
115
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Generates a sub-layout (like an embedded table or nested form) without
|
|
118
|
+
* destroying the current Engine state or Condition tracking.
|
|
119
|
+
*
|
|
120
|
+
* @param schema The normalized JSON schema representing the view.
|
|
121
|
+
* @param modelName The UI5 JSONModel name used for data binding (defaults to "meta").
|
|
122
|
+
* @param bindingPath Optional path to bind the sub-layout to a specific array/object property.
|
|
123
|
+
* @returns The generated root UI5 Control container.
|
|
124
|
+
*/
|
|
125
|
+
generateLayout(schema, modelName, bindingPath) {
|
|
126
|
+
try {
|
|
127
|
+
const layoutStrategy = schema.layoutStrategy || (schema.type === "array" ? "table" : "form");
|
|
128
|
+
const layoutManager = Engine.layoutRegistry.getStrict(layoutStrategy);
|
|
129
|
+
return layoutManager.render(schema, modelName, this, undefined, bindingPath);
|
|
130
|
+
} catch (error) {
|
|
131
|
+
const msg = error.message;
|
|
132
|
+
Logger.error(`[MetaUI Engine] Critical error generating sub-layout for ${bindingPath}`, msg);
|
|
133
|
+
Logger.showErrorPopup(`Engine failed to generate a sub-layout.\n\nDetails: ${msg}`);
|
|
134
|
+
return new Text({
|
|
135
|
+
text: "Critical Sub-Layout Error"
|
|
136
|
+
});
|
|
56
137
|
}
|
|
57
|
-
throw new Error(`[MetaUI] Unsupported schema type: ${schema.type}`);
|
|
58
138
|
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Iterates through all active plugins and triggers their internal validation pipelines.
|
|
142
|
+
*
|
|
143
|
+
* @returns {IPluginValidationResult[]} Array of validation error objects. Empty array if valid.
|
|
144
|
+
*/
|
|
59
145
|
validateAll() {
|
|
60
|
-
|
|
61
|
-
for (const
|
|
62
|
-
|
|
63
|
-
|
|
146
|
+
const errors = [];
|
|
147
|
+
for (const item of this.activePlugins) {
|
|
148
|
+
const result = item.plugin.validate();
|
|
149
|
+
if (!result.isValid) {
|
|
150
|
+
// Ensure the path is bound to the error so GeneratorHost knows where to target it
|
|
151
|
+
result.fieldKey = result.fieldKey || item.path.replace(/^\//, "");
|
|
152
|
+
errors.push(result);
|
|
153
|
+
// Add console log to find which plugin fails silently
|
|
154
|
+
Logger.error("[MetaUI Validation] Plugin failed validation silently:", item.path || item.plugin.constructor.name);
|
|
64
155
|
}
|
|
65
156
|
}
|
|
66
|
-
return
|
|
157
|
+
return errors;
|
|
67
158
|
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Cleans up internal state and destroys the condition engine to prevent memory leaks.
|
|
162
|
+
*/
|
|
68
163
|
destroy() {
|
|
69
164
|
if (this.conditionEngine) {
|
|
70
165
|
this.conditionEngine.destroy();
|
|
71
166
|
this.conditionEngine = null;
|
|
72
167
|
}
|
|
168
|
+
|
|
169
|
+
// ------------------------------------------------------------------------
|
|
170
|
+
// Ghost Error Prevention
|
|
171
|
+
// Flush MessageManager for active plugins before destroying their controls
|
|
172
|
+
// ------------------------------------------------------------------------
|
|
173
|
+
const messageManager = Messaging;
|
|
174
|
+
const existingMessages = messageManager.getMessageModel().getData();
|
|
175
|
+
const messagesToRemove = [];
|
|
176
|
+
for (const item of this.activePlugins) {
|
|
177
|
+
if (this.activeModel) {
|
|
178
|
+
const targetPath = `/${item.path.replace(/^\//, "")}`;
|
|
179
|
+
const matched = existingMessages.filter(msg => msg.getTarget() === targetPath && msg.getMessageProcessor() && msg.getMessageProcessor().getId() === this.activeModel.getId());
|
|
180
|
+
messagesToRemove.push(...matched);
|
|
181
|
+
}
|
|
182
|
+
if (typeof item.plugin.destroy === "function") {
|
|
183
|
+
item.plugin.destroy();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (messagesToRemove.length > 0) {
|
|
187
|
+
messageManager.removeMessages(messagesToRemove);
|
|
188
|
+
}
|
|
73
189
|
this.activePlugins = [];
|
|
74
190
|
}
|
|
75
191
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Engine-dbg.js","names":["ConditionEngine","___ConditionEngine","Engine","conditionEngine","activePlugins","build","schema","layoutManager","modelName","trackPlugin","plugin","push","type","items","Error","renderTable","title","container","VBox","renderType","props","properties","formProps","tableProps","key","Object","keys","meta","length","addItem","renderForm","tableProp","ui","label","validateAll","isValid","validate","destroy","__exports","__esModule"],"sources":["Engine.ts"],"sourcesContent":["/**\n * @file Engine.ts\n * @description The central orchestrator that routes data between the Layout Factory and Plugin Registry (v2).\n */\n\nimport { ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { IPlugin } from \"../interfaces/IPlugin\";\nimport { ConditionEngine } from \"./ConditionEngine\";\nimport Control from \"sap/ui/core/Control\";\nimport VBox from \"sap/m/VBox\";\n\nexport class Engine {\n private conditionEngine: ConditionEngine | null = null;\n private activePlugins: IPlugin[] = [];\n \n public build(schema: ISchema, layoutManager: ILayoutManager, modelName: string = \"meta\"): Control {\n this.conditionEngine = new ConditionEngine(schema);\n this.activePlugins = [];\n\n const trackPlugin = (plugin: IPlugin) => this.activePlugins.push(plugin);\n \n // Implicit layout routing based on root type\n if (schema.type === \"array\") {\n if (!schema.items) {\n throw new Error(\"[MetaUI] Array schema must define 'items'.\");\n }\n return layoutManager.renderTable(schema.items, `${modelName}>/`, schema.title);\n }\n \n if (schema.type === \"object\") {\n const container = new VBox({ renderType: \"Bare\" });\n const props = schema.properties || {};\n \n // Separate scalar properties (form fields) from root array properties (inline tables)\n const formProps: Record<string, IPropertyMetadata> = {};\n const tableProps: { key: string; meta: IPropertyMetadata }[] = [];\n \n for (const key of Object.keys(props)) {\n if (props[key].type === \"array\") {\n tableProps.push({ key, meta: props[key] });\n } else {\n formProps[key] = props[key];\n }\n }\n \n // Render the top-level form if there are scalar fields\n if (Object.keys(formProps).length > 0) {\n container.addItem(layoutManager.renderForm(formProps, modelName, schema.title, trackPlugin));\n }\n \n // Render root-level arrays as massive native tables below the form\n for (const tableProp of tableProps) {\n if (tableProp.meta.items) {\n container.addItem(layoutManager.renderTable(tableProp.meta.items, `${modelName}>/${tableProp.key}`, tableProp.meta.ui?.label || tableProp.key));\n }\n }\n \n return container;\n }\n \n throw new Error(`[MetaUI] Unsupported schema type: ${schema.type}`);\n }\n\n public validateAll(): boolean {\n let isValid = true;\n for (const plugin of this.activePlugins) {\n if (!plugin.validate()) {\n isValid = false;\n }\n }\n return isValid;\n }\n\n public destroy(): void {\n if (this.conditionEngine) {\n this.conditionEngine.destroy();\n this.conditionEngine = null;\n }\n this.activePlugins = [];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Engine-dbg.js","names":["ConditionEngine","___ConditionEngine","PluginRegistry","___PluginRegistry","Logger","___utils_Logger","DefaultLayoutGenerator","___DefaultLayoutGenerator","Engine","conditionEngine","activePlugins","isDisplayMode","constructor","displayMode","build","schema","model","modelName","onSubmit","engineScopeId","onChange","activeModel","isValid","fieldKey","errorMessage","controlId","handleEvent","ensureLayout","warn","layoutStrategy","type","layoutManager","layoutRegistry","getStrict","render","error","msg","message","showErrorPopup","Text","text","generateField","fieldMeta","bindingPath","isTemplate","plugin","getInstance","getPlugin","ui","widget","setDisplayMode","push","path","scopeId","undefined","control","registerPlugin","generateLayout","validateAll","errors","item","result","validate","replace","name","destroy","messageManager","Messaging","existingMessages","getMessageModel","getData","messagesToRemove","targetPath","matched","filter","getTarget","getMessageProcessor","getId","length","removeMessages","__exports","__esModule"],"sources":["Engine.ts"],"sourcesContent":["/**\n * @file Engine.ts\n * @description The central orchestrator that routes data between the Layout Factory and Plugin Registry (v2).\n */\n\nimport { ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { IPlugin, IPluginValidationResult } from \"../interfaces/IPlugin\";\nimport { ConditionEngine } from \"./ConditionEngine\";\nimport { PluginRegistry } from \"./PluginRegistry\";\nimport Control from \"sap/ui/core/Control\";\nimport VBox from \"sap/m/VBox\";\nimport Text from \"sap/m/Text\";\nimport { Registry } from \"./Registry\";\nimport { Logger } from \"../utils/Logger\";\nimport { DefaultLayoutGenerator } from \"./DefaultLayoutGenerator\";\nimport Core from \"sap/ui/core/Core\";\nimport Messaging from \"sap/ui/core/Messaging\";\n\n/**\n * The Engine is responsible for translating a normalized schema into a physical UI5 layout.\n * It delegates layout generation to the configured `LayoutManager` and field generation to the `PluginRegistry`.\n * It is NOT a God Class; it strictly routes execution flow and tracks active plugins for validation.\n * It embodies the \"Plugin-First Philosophy\" by routing all complex field and layout rendering\n * through discrete, decoupled plugins rather than handling native overrides.\n * \n * @namespace nz.co.siliconst.ui5.metaui.core\n * @public\n */\nexport class Engine {\n /** Global registry of all available layout strategies (e.g. Form, Table, Wizard). */\n public static layoutRegistry: Registry<ILayoutManager>;\n /** Handles dynamic conditional logic across the active form. */\n private conditionEngine: ConditionEngine | null = null;\n \n /** Array of all instantiated plugins generated during the current build. */\n private activePlugins: { plugin: IPlugin, path: string }[] = [];\n\n /** Deterministic scope ID injected by the host control to prevent clone collisions. */\n public engineScopeId?: string;\n \n private activeModel?: sap.ui.model.Model;\n \n /** Tracks whether the entire engine is running in Read-Only Display mode. */\n public readonly isDisplayMode: boolean = false;\n\n constructor(displayMode: boolean = false) {\n this.isDisplayMode = displayMode;\n }\n \n /**\n * Bootstraps the layout generation process by resolving the correct layout strategy.\n * \n * @param schema The normalized JSON schema representing the view.\n * @param model The active StateManager JSONModel instance.\n * @param modelName The UI5 model alias used for isolation.\n * @param onSubmit Callback fired when form is submitted.\n * @param engineScopeId Deterministic scope ID for this engine instance.\n * @param onChange Callback fired when field values change.\n * @returns The generated root UI5 Control container.\n */\n public build(schema: ISchema, model: sap.ui.model.Model, modelName: string = \"meta\", onSubmit?: () => void, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {\n this.conditionEngine = new ConditionEngine(schema);\n this.activePlugins = [];\n this.activeModel = model;\n this.engineScopeId = engineScopeId;\n this.onChange = (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => {\n if (this.conditionEngine && fieldKey) {\n this.conditionEngine.handleEvent(fieldKey, isValid);\n }\n if (onChange) {\n onChange(isValid, fieldKey, errorMessage, controlId);\n }\n };\n \n try {\n // Intercept and synthesize a default layout if the developer/backend failed to provide one\n if (DefaultLayoutGenerator.ensureLayout(schema)) {\n Logger.warn(\"[MetaUI Engine] Missing 'uiLayout' array in schema. Synthesized a default layout mapping to prevent a blank render.\");\n }\n\n const layoutStrategy = schema.layoutStrategy || (schema.type === \"array\" ? \"table\" : \"form\");\n const layoutManager = Engine.layoutRegistry.getStrict(layoutStrategy);\n \n return layoutManager.render(schema, modelName, this, onSubmit);\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(\"[MetaUI Engine] Critical error during layout generation\", msg);\n Logger.showErrorPopup(`Engine failed to generate the layout.\\n\\nDetails: ${msg}`);\n return new Text({ text: \"Critical Layout Error\" });\n }\n }\n\n /**\n * Instantiates the correct plugin for a specific field based on type and widget hints,\n * and tracks the plugin for global validation.\n * \n * @param fieldMeta The metadata schema specific to the field.\n * @param bindingPath The JSON path representing the field within the payload.\n * @param modelName The UI5 JSONModel name used for data binding.\n * @returns The generated UI5 Control for the field.\n */\n public generateField(fieldMeta: IPropertyMetadata, bindingPath: string, modelName: string, isTemplate: boolean = false): Control {\n try {\n const plugin = PluginRegistry.getInstance().getPlugin(fieldMeta.type || \"string\", fieldMeta.ui?.widget);\n plugin.setDisplayMode(this.isDisplayMode);\n \n if (!isTemplate) {\n this.activePlugins.push({ plugin, path: bindingPath });\n }\n const scopeId = isTemplate ? undefined : this.engineScopeId;\n const control = plugin.render(fieldMeta, bindingPath, modelName, scopeId, this.onChange);\n \n if (this.conditionEngine) {\n this.conditionEngine.registerPlugin(bindingPath, plugin);\n }\n \n return control;\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI Engine] Failed to generate field at ${bindingPath}`, msg);\n Logger.showErrorPopup(`Failed to generate field '${bindingPath}'.\\n\\nDetails: ${msg}`);\n return new Text({ text: `[Error generating field ${bindingPath}]` });\n }\n }\n\n /**\n * Generates a sub-layout (like an embedded table or nested form) without \n * destroying the current Engine state or Condition tracking.\n * \n * @param schema The normalized JSON schema representing the view.\n * @param modelName The UI5 JSONModel name used for data binding (defaults to \"meta\").\n * @param bindingPath Optional path to bind the sub-layout to a specific array/object property.\n * @returns The generated root UI5 Control container.\n */\n public generateLayout(schema: ISchema, modelName: string, bindingPath?: string): Control {\n try {\n const layoutStrategy = schema.layoutStrategy || (schema.type === \"array\" ? \"table\" : \"form\");\n const layoutManager = Engine.layoutRegistry.getStrict(layoutStrategy);\n return layoutManager.render(schema, modelName, this, undefined, bindingPath);\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI Engine] Critical error generating sub-layout for ${bindingPath}`, msg);\n Logger.showErrorPopup(`Engine failed to generate a sub-layout.\\n\\nDetails: ${msg}`);\n return new Text({ text: \"Critical Sub-Layout Error\" });\n }\n }\n\n /**\n * Iterates through all active plugins and triggers their internal validation pipelines.\n * \n * @returns {IPluginValidationResult[]} Array of validation error objects. Empty array if valid.\n */\n public validateAll(): IPluginValidationResult[] {\n const errors: IPluginValidationResult[] = [];\n for (const item of this.activePlugins) {\n const result = item.plugin.validate();\n if (!result.isValid) {\n // Ensure the path is bound to the error so GeneratorHost knows where to target it\n result.fieldKey = result.fieldKey || item.path.replace(/^\\//, \"\");\n errors.push(result);\n // Add console log to find which plugin fails silently\n Logger.error(\"[MetaUI Validation] Plugin failed validation silently:\", item.path || item.plugin.constructor.name);\n }\n }\n return errors;\n }\n\n /**\n * Cleans up internal state and destroys the condition engine to prevent memory leaks.\n */\n public destroy(): void {\n if (this.conditionEngine) {\n this.conditionEngine.destroy();\n this.conditionEngine = null;\n }\n \n // ------------------------------------------------------------------------\n // Ghost Error Prevention\n // Flush MessageManager for active plugins before destroying their controls\n // ------------------------------------------------------------------------\n const messageManager = Messaging;\n const existingMessages = messageManager.getMessageModel().getData();\n const messagesToRemove: any[] = [];\n \n for (const item of this.activePlugins) {\n if (this.activeModel) {\n const targetPath = `/${item.path.replace(/^\\//, \"\")}`;\n const matched = existingMessages.filter((msg: any) => \n msg.getTarget() === targetPath && msg.getMessageProcessor() && msg.getMessageProcessor().getId() === this.activeModel.getId()\n );\n messagesToRemove.push(...matched);\n }\n if (typeof item.plugin.destroy === \"function\") {\n item.plugin.destroy();\n }\n }\n \n if (messagesToRemove.length > 0) {\n messageManager.removeMessages(messagesToRemove);\n }\n \n this.activePlugins = [];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|