@siliconst/metaui 1.4.17 → 1.4.21
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/package.json +1 -1
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig-dbg.js +47 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.d.ts +28 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.ts +39 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js +83 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts +30 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.ts +74 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy-dbg.js +61 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.d.ts +13 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.ts +59 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js +50 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.d.ts +12 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.ts +44 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +87 -16
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +20 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +79 -18
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +44 -4
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +23 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +35 -5
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +35 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +8 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +37 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js +13 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +4 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +13 -0
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js +11 -32
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +9 -13
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +14 -6
- 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 +7 -1
- 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 +21 -11
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +6 -0
- 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.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 +6 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js +3 -3
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +4 -4
- 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 +2 -2
- 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 +10 -10
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +1 -1
- 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 +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +1 -1
- 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 +19 -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 +22 -3
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts +3 -2
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.ts +3 -2
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +18 -2
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +19 -2
- package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js +66 -44
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.d.ts +4 -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 +6 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder-dbg.js +93 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.d.ts +52 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.ts +88 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js +47 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts +43 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js +68 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts +21 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.ts +61 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper-dbg.js +45 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.d.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerTypeMapper.js → openapi/OpenApiTypeMapper.js} +2 -2
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.ts +36 -0
- package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerUIMapper-dbg.js → openapi/OpenApiUIMapper-dbg.js} +29 -17
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts +34 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerUIMapper.ts → openapi/OpenApiUIMapper.ts} +28 -16
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js +50 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.d.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.ts +43 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin-dbg.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.d.ts +23 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.ts +21 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js +117 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts +47 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts +113 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin-dbg.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.d.ts +26 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js +106 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts +27 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.ts +104 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js +107 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts +27 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.ts +105 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js +347 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts +110 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts +377 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +13 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +31 -7
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +17 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +33 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js +217 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts +26 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.ts +249 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js +48 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.ts +48 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +4 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js +58 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.ts +57 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +115 -49
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts +17 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +114 -54
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +3 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +3 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js +49 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.ts +49 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +194 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts +192 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor-dbg.js +146 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.d.ts +27 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.ts +160 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js +0 -226
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts +0 -63
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.ts +0 -233
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js +0 -43
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts +0 -15
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.ts +0 -37
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js +0 -37
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts +0 -18
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.ts +0 -28
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts +0 -27
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginRegistry-dbg.js","names":["Logger","___utils_Logger","PluginRegistry","fieldIndex","actionIndex","layoutIndex","activePromises","constructor","registerPluginPath","undefined","registerLayoutPath","getInstance","instance","type","widgetName","path","key","registerActionPath","actionName","strategy","getFieldPath","Error","getLayoutPath","getPathsToLoad","schema","pathsToLoad","Set","layoutStrategy","add","scanProperties","props","prop","ui","widget","e","msg","message","error","properties","items","preloadDependencies","promises","Array","from","map","Promise","resolve","reject","sap","require","Module","err","all","extractConstructor","default","keys","Object","getPlugin","PluginClass","getLayout","LayoutClass","__exports","__esModule"],"sources":["PluginRegistry.ts"],"sourcesContent":["/**\n * @file PluginRegistry.ts\n * @description Centralized hub for mapping UI5 controls to SAP schema data types.\n * Enforces the Registry Pattern to decouple the core engine from specific UI5 control implementations.\n * NOW WITH UNIVERSAL LAZY LOADING.\n */\n\nimport { IPlugin } from \"../interfaces/IPlugin\";\nimport { FieldType, ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Logger } from \"../utils/Logger\";\nimport { DefaultLayoutGenerator } from \"./DefaultLayoutGenerator\";\n\nexport class PluginRegistry {\n private static instance: PluginRegistry;\n \n private fieldIndex: Record<string, string> = {};\n private actionIndex: Record<string, string> = {};\n private layoutIndex: Record<string, string> = {};\n \n private activePromises: Record<string, Promise<unknown>> = {};\n\n private constructor() {\n // Core Mappings\n this.registerPluginPath(\"string\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin\");\n this.registerPluginPath(\"number\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(\"integer\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(\"date\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin\");\n this.registerPluginPath(\"boolean\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin\");\n this.registerPluginPath(\"array\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin\");\n this.registerPluginPath(\"object\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin\");\n\n // Widget Overrides\n this.registerPluginPath(\"string\", \"time\", \"nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin\");\n this.registerPluginPath(\"string\", \"datetime\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin\");\n this.registerPluginPath(\"boolean\", \"switch\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin\");\n this.registerPluginPath(\"number\", \"step\", \"nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin\");\n this.registerPluginPath(\"string\", \"select\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin\");\n this.registerPluginPath(\"string\", \"textArea\", \"nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin\");\n this.registerPluginPath(\"string\", \"codeEditor\", \"nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin\");\n \n // Phase 1 Mappings\n this.registerPluginPath(\"string\", \"fileUploader\", \"nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin\");\n this.registerPluginPath(\"array\", \"multiSelect\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin\");\n this.registerPluginPath(\"array\", \"multiInput\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin\");\n this.registerPluginPath(\"number\", \"slider\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin\");\n this.registerPluginPath(\"number\", \"rating\", \"nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin\");\n this.registerPluginPath(\"string\", \"messageStrip\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin\");\n\n // Phase 5 Mappings (Hardware)\n this.registerPluginPath(\"string\", \"camera\", \"nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin\");\n this.registerPluginPath(\"string\", \"signature\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin\");\n this.registerPluginPath(\"object\", \"location\", \"nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin\");\n this.registerPluginPath(\"string\", \"scanner\", \"nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin\");\n this.registerPluginPath(\"string\", \"voiceInput\", \"nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin\");\n this.registerPluginPath(\"string\", \"richText\", \"nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin\");\n\n // Actions & Datasources\n this.registerPluginPath(\"string\", \"urlButton\", \"nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin\");\n this.registerPluginPath(\"string\", \"submitButton\", \"nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin\");\n this.registerPluginPath(\"string\", \"odataSelect\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin\");\n this.registerPluginPath(\"string\", \"remoteDropdown\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin\");\n this.registerPluginPath(\"string\", \"liveSearch\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin\");\n this.registerPluginPath(\"string\", \"remoteValueHelp\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin\");\n\n // Layouts\n this.registerLayoutPath(\"form\", \"nz/co/siliconst/ui5/metaui/layouts/FormLayout\");\n this.registerLayoutPath(\"table\", \"nz/co/siliconst/ui5/metaui/layouts/TableLayout\");\n this.registerLayoutPath(\"wizard\", \"nz/co/siliconst/ui5/metaui/layouts/WizardLayout\");\n this.registerLayoutPath(\"compact\", \"nz/co/siliconst/ui5/metaui/layouts/CompactLayout\");\n }\n\n public static getInstance(): PluginRegistry {\n if (!PluginRegistry.instance) {\n PluginRegistry.instance = new PluginRegistry();\n }\n return PluginRegistry.instance;\n }\n\n public registerPluginPath(type: FieldType, widgetName: string | undefined, path: string): void {\n const key = widgetName ? `${type}:${widgetName}` : type;\n this.fieldIndex[key] = path;\n }\n\n public registerActionPath(actionName: string, path: string): void {\n this.actionIndex[actionName] = path;\n }\n\n public registerLayoutPath(strategy: string, path: string): void {\n this.layoutIndex[strategy] = path;\n }\n\n private getFieldPath(type: FieldType, widgetName?: string): string {\n let path;\n if (widgetName) {\n path = this.fieldIndex[`${type}:${widgetName}`];\n }\n if (!path) {\n path = this.fieldIndex[type];\n }\n if (!path) {\n throw new Error(`No plugin path mapped for FieldType: ${type} (widget: ${widgetName})`);\n }\n return path;\n }\n\n private getLayoutPath(strategy: string): string {\n const path = this.layoutIndex[strategy];\n if (!path) {\n throw new Error(`No layout path mapped for strategy: ${strategy}`);\n }\n return path;\n }\n\n /**\n * Statically traverses the schema structure to identify all required plugins\n * and layouts without actually instantiating them.\n * \n * @param {ISchema} schema The root JSON schema payload to traverse\n * @returns {Set<string>} A distinct set of UI5 module paths required to render the schema\n */\n public getPathsToLoad(schema: ISchema): Set<string> {\n const pathsToLoad = new Set<string>();\n \n // 1. Gather layout strategy\n const strategy = schema.layoutStrategy || (schema.type === \"array\" ? \"table\" : \"form\");\n pathsToLoad.add(this.getLayoutPath(strategy));\n\n // 2. Recursively gather field plugins\n const scanProperties = (props: Record<string, IPropertyMetadata>) => {\n for (const key in props) {\n const prop = props[key];\n try {\n pathsToLoad.add(this.getFieldPath(prop.type || \"string\", prop.ui?.widget));\n } catch (e) {\n const msg = `[MetaUI LazyLoad] Could not find mapped plugin for field ${key}: ${(e as Error).message}`;\n Logger.error(msg);\n throw new Error(msg);\n }\n if (prop.properties) scanProperties(prop.properties);\n if (prop.items && prop.items.properties) scanProperties(prop.items.properties);\n if (prop.items && prop.items.type) {\n try {\n pathsToLoad.add(this.getFieldPath(prop.items.type, prop.items.ui?.widget));\n } catch (e) {\n const msg = `[MetaUI LazyLoad] Could not find mapped plugin for array item type ${prop.items.type}: ${(e as Error).message}`;\n Logger.error(msg);\n throw new Error(msg);\n }\n }\n }\n };\n\n if (schema.properties) {\n scanProperties(schema.properties);\n } else if (schema.items && schema.items.properties) {\n scanProperties(schema.items.properties);\n }\n\n return pathsToLoad;\n }\n\n /**\n * Defers the generation of the UI until all required UI5 modules have been\n * downloaded asynchronously. Maintains a cache of active promises to prevent\n * redundant network requests for the same module.\n * \n * @param {ISchema} schema The root JSON schema payload to parse\n * @returns {Promise<void>} Resolves when all dependencies are securely in the UI5 require cache\n */\n public async preloadDependencies(schema: ISchema): Promise<void> {\n const pathsToLoad = this.getPathsToLoad(schema);\n\n // 3. Batch execute sap.ui.require via Promises\n const promises = Array.from(pathsToLoad).map(path => {\n if (!this.activePromises[path]) {\n this.activePromises[path] = new Promise((resolve, reject) => {\n sap.ui.require([path], \n (Module: unknown) => resolve(Module), \n (err: unknown) => {\n Logger.error(`Failed to lazy load module: ${path}`);\n // CRITICAL: Delete from cache so future attempts can retry the network request\n delete this.activePromises[path];\n reject(err);\n }\n );\n });\n }\n return this.activePromises[path];\n });\n\n await Promise.all(promises);\n }\n\n /**\n * Extracts a valid constructor from a dynamically required module.\n */\n private extractConstructor(Module: unknown): new () => IPlugin | ILayoutManager | null {\n if (!Module) return null;\n if (typeof Module === \"function\") return Module as any;\n if ((Module as any).default && typeof (Module as any).default === \"function\") return (Module as any).default;\n \n // Handle namespace exports (e.g. { FormLayout: class... })\n const keys = Object.keys(Module as object);\n for (const key of keys) {\n if (typeof (Module as any)[key] === \"function\") {\n return (Module as any)[key];\n }\n }\n return null;\n }\n\n /**\n * Instantiates the requested plugin for the given field type.\n */\n public getPlugin(type: FieldType, widgetName?: string): IPlugin {\n const path = this.getFieldPath(type, widgetName);\n const Module = sap.ui.require(path);\n const PluginClass = this.extractConstructor(Module);\n \n if (!PluginClass) {\n throw new Error(`[MetaUI Plugin Instantiation] Plugin ${path} was not preloaded or has no constructor!`);\n }\n \n return new PluginClass();\n }\n\n /**\n * Instantiates the requested layout manager for the given strategy.\n */\n public getLayout(strategy: string): ILayoutManager {\n const path = this.getLayoutPath(strategy);\n const Module = sap.ui.require(path);\n const LayoutClass = this.extractConstructor(Module);\n \n if (!LayoutClass) {\n throw new Error(`[MetaUI Layout Instantiation] Layout ${path} was not preloaded or has no constructor!`);\n }\n \n return new LayoutClass();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PluginRegistry-dbg.js","names":["Logger","___utils_Logger","PluginRegistry","fieldIndex","actionIndex","layoutIndex","activePromises","constructor","registerPluginPath","undefined","registerLayoutPath","getInstance","instance","type","widgetName","path","key","registerActionPath","actionName","strategy","getFieldPath","Error","getLayoutPath","getPathsToLoad","schema","pathsToLoad","Set","layoutStrategy","add","scanProperties","props","prop","ui","widget","e","msg","message","error","properties","items","preloadDependencies","promises","Array","from","map","Promise","resolve","reject","sap","require","Module","err","all","extractConstructor","default","keys","Object","getPlugin","PluginClass","getLayout","LayoutClass","__exports","__esModule"],"sources":["PluginRegistry.ts"],"sourcesContent":["/**\n * @file PluginRegistry.ts\n * @description Centralized hub for mapping UI5 controls to SAP schema data types.\n * Enforces the Registry Pattern to decouple the core engine from specific UI5 control implementations.\n * NOW WITH UNIVERSAL LAZY LOADING.\n */\n\nimport { IPlugin } from \"../interfaces/IPlugin\";\nimport { FieldType, ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Logger } from \"../utils/Logger\";\nimport { DefaultLayoutGenerator } from \"./DefaultLayoutGenerator\";\n\nexport class PluginRegistry {\n private static instance: PluginRegistry;\n \n private fieldIndex: Record<string, string> = {};\n private actionIndex: Record<string, string> = {};\n private layoutIndex: Record<string, string> = {};\n \n private activePromises: Record<string, Promise<unknown>> = {};\n\n private constructor() {\n // Core Mappings\n this.registerPluginPath(\"string\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin\");\n this.registerPluginPath(\"number\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(\"integer\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(\"date\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin\");\n this.registerPluginPath(\"boolean\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin\");\n this.registerPluginPath(\"array\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin\");\n this.registerPluginPath(\"object\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin\");\n this.registerPluginPath(\"string\", \"default\", \"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin\");\n this.registerPluginPath(\"object\", \"dictionary\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin\");\n this.registerPluginPath(\"object\", \"reference\", \"nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin\");\n\n // Widget Overrides\n this.registerPluginPath(\"string\", \"time\", \"nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin\");\n this.registerPluginPath(\"string\", \"datetime\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin\");\n this.registerPluginPath(\"boolean\", \"switch\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin\");\n this.registerPluginPath(\"number\", \"step\", \"nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin\");\n this.registerPluginPath(\"string\", \"select\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin\");\n this.registerPluginPath(\"string\", \"textArea\", \"nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin\");\n this.registerPluginPath(\"string\", \"codeEditor\", \"nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin\");\n this.registerPluginPath(\"string\", \"link\", \"nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin\");\n this.registerPluginPath(\"string\", \"password\", \"nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin\");\n this.registerPluginPath(\"string\", \"email\", \"nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin\");\n \n // Phase 1 Mappings\n this.registerPluginPath(\"string\", \"fileUploader\", \"nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin\");\n this.registerPluginPath(\"array\", \"multiSelect\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin\");\n this.registerPluginPath(\"array\", \"multiInput\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin\");\n this.registerPluginPath(\"number\", \"slider\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin\");\n this.registerPluginPath(\"number\", \"rating\", \"nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin\");\n this.registerPluginPath(\"string\", \"messageStrip\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin\");\n\n // Phase 5 Mappings (Hardware)\n this.registerPluginPath(\"string\", \"camera\", \"nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin\");\n this.registerPluginPath(\"string\", \"signature\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin\");\n this.registerPluginPath(\"object\", \"location\", \"nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin\");\n this.registerPluginPath(\"string\", \"scanner\", \"nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin\");\n this.registerPluginPath(\"string\", \"voiceInput\", \"nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin\");\n this.registerPluginPath(\"string\", \"richText\", \"nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin\");\n\n // Actions & Datasources\n this.registerPluginPath(\"string\", \"urlButton\", \"nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin\");\n this.registerPluginPath(\"string\", \"submitButton\", \"nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin\");\n this.registerPluginPath(\"string\", \"odataSelect\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin\");\n this.registerPluginPath(\"string\", \"remoteDropdown\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin\");\n this.registerPluginPath(\"string\", \"liveSearch\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin\");\n this.registerPluginPath(\"string\", \"remoteValueHelp\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin\");\n\n // Layouts\n this.registerLayoutPath(\"form\", \"nz/co/siliconst/ui5/metaui/layouts/FormLayout\");\n this.registerLayoutPath(\"table\", \"nz/co/siliconst/ui5/metaui/layouts/TableLayout\");\n this.registerLayoutPath(\"wizard\", \"nz/co/siliconst/ui5/metaui/layouts/WizardLayout\");\n this.registerLayoutPath(\"compact\", \"nz/co/siliconst/ui5/metaui/layouts/CompactLayout\");\n }\n\n public static getInstance(): PluginRegistry {\n if (!PluginRegistry.instance) {\n PluginRegistry.instance = new PluginRegistry();\n }\n return PluginRegistry.instance;\n }\n\n public registerPluginPath(type: FieldType, widgetName: string | undefined, path: string): void {\n const key = widgetName ? `${type}:${widgetName}` : type;\n this.fieldIndex[key] = path;\n }\n\n public registerActionPath(actionName: string, path: string): void {\n this.actionIndex[actionName] = path;\n }\n\n public registerLayoutPath(strategy: string, path: string): void {\n this.layoutIndex[strategy] = path;\n }\n\n private getFieldPath(type: FieldType, widgetName?: string): string {\n let path;\n if (widgetName) {\n path = this.fieldIndex[`${type}:${widgetName}`];\n }\n if (!path) {\n path = this.fieldIndex[type];\n }\n if (!path) {\n throw new Error(`No plugin path mapped for FieldType: ${type} (widget: ${widgetName})`);\n }\n return path;\n }\n\n private getLayoutPath(strategy: string): string {\n const path = this.layoutIndex[strategy];\n if (!path) {\n throw new Error(`No layout path mapped for strategy: ${strategy}`);\n }\n return path;\n }\n\n /**\n * Statically traverses the schema structure to identify all required plugins\n * and layouts without actually instantiating them.\n * \n * @param {ISchema} schema The root JSON schema payload to traverse\n * @returns {Set<string>} A distinct set of UI5 module paths required to render the schema\n */\n public getPathsToLoad(schema: ISchema): Set<string> {\n const pathsToLoad = new Set<string>();\n \n // 1. Gather layout strategy\n const strategy = schema.layoutStrategy || (schema.type === \"array\" ? \"table\" : \"form\");\n pathsToLoad.add(this.getLayoutPath(strategy));\n\n // 2. Recursively gather field plugins\n const scanProperties = (props: Record<string, IPropertyMetadata>) => {\n for (const key in props) {\n const prop = props[key];\n try {\n pathsToLoad.add(this.getFieldPath(prop.type || \"string\", prop.ui?.widget));\n } catch (e) {\n const msg = `[MetaUI LazyLoad] Could not find mapped plugin for field ${key}: ${(e as Error).message}`;\n Logger.error(msg);\n throw new Error(msg);\n }\n if (prop.properties) scanProperties(prop.properties);\n if (prop.items && prop.items.properties) scanProperties(prop.items.properties);\n if (prop.items && prop.items.type) {\n try {\n pathsToLoad.add(this.getFieldPath(prop.items.type, prop.items.ui?.widget));\n } catch (e) {\n const msg = `[MetaUI LazyLoad] Could not find mapped plugin for array item type ${prop.items.type}: ${(e as Error).message}`;\n Logger.error(msg);\n throw new Error(msg);\n }\n }\n }\n };\n\n if (schema.properties) {\n scanProperties(schema.properties);\n } else if (schema.items && schema.items.properties) {\n scanProperties(schema.items.properties);\n }\n\n return pathsToLoad;\n }\n\n /**\n * Defers the generation of the UI until all required UI5 modules have been\n * downloaded asynchronously. Maintains a cache of active promises to prevent\n * redundant network requests for the same module.\n * \n * @param {ISchema} schema The root JSON schema payload to parse\n * @returns {Promise<void>} Resolves when all dependencies are securely in the UI5 require cache\n */\n public async preloadDependencies(schema: ISchema): Promise<void> {\n const pathsToLoad = this.getPathsToLoad(schema);\n\n // 3. Batch execute sap.ui.require via Promises\n const promises = Array.from(pathsToLoad).map(path => {\n if (!this.activePromises[path]) {\n this.activePromises[path] = new Promise((resolve, reject) => {\n sap.ui.require([path], \n (Module: unknown) => resolve(Module), \n (err: unknown) => {\n Logger.error(`Failed to lazy load module: ${path}`);\n // CRITICAL: Delete from cache so future attempts can retry the network request\n delete this.activePromises[path];\n reject(err);\n }\n );\n });\n }\n return this.activePromises[path];\n });\n\n await Promise.all(promises);\n }\n\n /**\n * Extracts a valid constructor from a dynamically required module.\n */\n private extractConstructor(Module: unknown): new () => IPlugin | ILayoutManager | null {\n if (!Module) return null;\n if (typeof Module === \"function\") return Module as any;\n if ((Module as any).default && typeof (Module as any).default === \"function\") return (Module as any).default;\n \n // Handle namespace exports (e.g. { FormLayout: class... })\n const keys = Object.keys(Module as object);\n for (const key of keys) {\n if (typeof (Module as any)[key] === \"function\") {\n return (Module as any)[key];\n }\n }\n return null;\n }\n\n /**\n * Instantiates the requested plugin for the given field type.\n */\n public getPlugin(type: FieldType, widgetName?: string): IPlugin {\n const path = this.getFieldPath(type, widgetName);\n const Module = sap.ui.require(path);\n const PluginClass = this.extractConstructor(Module);\n \n if (!PluginClass) {\n throw new Error(`[MetaUI Plugin Instantiation] Plugin ${path} was not preloaded or has no constructor!`);\n }\n \n return new PluginClass();\n }\n\n /**\n * Instantiates the requested layout manager for the given strategy.\n */\n public getLayout(strategy: string): ILayoutManager {\n const path = this.getLayoutPath(strategy);\n const Module = sap.ui.require(path);\n const LayoutClass = this.extractConstructor(Module);\n \n if (!LayoutClass) {\n throw new Error(`[MetaUI Layout Instantiation] Layout ${path} was not preloaded or has no constructor!`);\n }\n \n return new LayoutClass();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginRegistry.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gDAAgD,CAAC;IAChE;;;;;OAKG;IAEH,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;IACxE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAqB,MAAM,+CAA+C,CAAC;IACtG,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;IAItF,MAAa,cAAc;QACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;QAExC,OAAO,CAAC,UAAU,CAA8B;QAChD,OAAO,CAAC,WAAW,CAA8B;QACjD,OAAO,CAAC,WAAW,CAA8B;QAEjD,OAAO,CAAC,cAAc,CAAwC;QAE9D,OAAO;
|
|
1
|
+
{"version":3,"file":"PluginRegistry.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gDAAgD,CAAC;IAChE;;;;;OAKG;IAEH,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;IACxE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAqB,MAAM,+CAA+C,CAAC;IACtG,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;IAItF,MAAa,cAAc;QACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;QAExC,OAAO,CAAC,UAAU,CAA8B;QAChD,OAAO,CAAC,WAAW,CAA8B;QACjD,OAAO,CAAC,WAAW,CAA8B;QAEjD,OAAO,CAAC,cAAc,CAAwC;QAE9D,OAAO;eAwDO,WAAW,IAAI,cAAc;QAOpC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;QAKvF,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;QAI1D,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;QAI/D,OAAO,CAAC,YAAY;QAcpB,OAAO,CAAC,aAAa;QAQrB;;;;;;WAMG;QACI,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;QAyCnD;;;;;;;WAOG;QACU,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAwBhE;;WAEG;QACH,OAAO,CAAC,kBAAkB;QAe1B;;WAEG;QACI,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;QAY/D;;WAEG;QACI,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;KAWrD;CAEA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
sap.ui.define(["../utils/Logger"],function(i){"use strict";const t=i["Logger"];class
|
|
1
|
+
sap.ui.define(["../utils/Logger"],function(i){"use strict";const t=i["Logger"];class n{fieldIndex={};actionIndex={};layoutIndex={};activePromises={};constructor(){this.registerPluginPath("string",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin");this.registerPluginPath("number",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin");this.registerPluginPath("integer",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin");this.registerPluginPath("date",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin");this.registerPluginPath("boolean",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin");this.registerPluginPath("array",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin");this.registerPluginPath("object",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin");this.registerPluginPath("string","default","nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin");this.registerPluginPath("object","dictionary","nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin");this.registerPluginPath("object","reference","nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin");this.registerPluginPath("string","time","nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin");this.registerPluginPath("string","datetime","nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin");this.registerPluginPath("boolean","switch","nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin");this.registerPluginPath("number","step","nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin");this.registerPluginPath("string","select","nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin");this.registerPluginPath("string","textArea","nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin");this.registerPluginPath("string","codeEditor","nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin");this.registerPluginPath("string","link","nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin");this.registerPluginPath("string","password","nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin");this.registerPluginPath("string","email","nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin");this.registerPluginPath("string","fileUploader","nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin");this.registerPluginPath("array","multiSelect","nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin");this.registerPluginPath("array","multiInput","nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin");this.registerPluginPath("number","slider","nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin");this.registerPluginPath("number","rating","nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin");this.registerPluginPath("string","messageStrip","nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin");this.registerPluginPath("string","camera","nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin");this.registerPluginPath("string","signature","nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin");this.registerPluginPath("object","location","nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin");this.registerPluginPath("string","scanner","nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin");this.registerPluginPath("string","voiceInput","nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin");this.registerPluginPath("string","richText","nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin");this.registerPluginPath("string","urlButton","nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin");this.registerPluginPath("string","submitButton","nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin");this.registerPluginPath("string","odataSelect","nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin");this.registerPluginPath("string","remoteDropdown","nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin");this.registerPluginPath("string","liveSearch","nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin");this.registerPluginPath("string","remoteValueHelp","nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin");this.registerLayoutPath("form","nz/co/siliconst/ui5/metaui/layouts/FormLayout");this.registerLayoutPath("table","nz/co/siliconst/ui5/metaui/layouts/TableLayout");this.registerLayoutPath("wizard","nz/co/siliconst/ui5/metaui/layouts/WizardLayout");this.registerLayoutPath("compact","nz/co/siliconst/ui5/metaui/layouts/CompactLayout")}static getInstance(){if(!n.instance){n.instance=new n}return n.instance}registerPluginPath(i,t,n){const e=t?`${i}:${t}`:i;this.fieldIndex[e]=n}registerActionPath(i,t){this.actionIndex[i]=t}registerLayoutPath(i,t){this.layoutIndex[i]=t}getFieldPath(i,t){let n;if(t){n=this.fieldIndex[`${i}:${t}`]}if(!n){n=this.fieldIndex[i]}if(!n){throw new Error(`No plugin path mapped for FieldType: ${i} (widget: ${t})`)}return n}getLayoutPath(i){const t=this.layoutIndex[i];if(!t){throw new Error(`No layout path mapped for strategy: ${i}`)}return t}getPathsToLoad(i){const n=new Set;const e=i.layoutStrategy||(i.type==="array"?"table":"form");n.add(this.getLayoutPath(e));const s=i=>{for(const e in i){const r=i[e];try{n.add(this.getFieldPath(r.type||"string",r.ui?.widget))}catch(i){const n=`[MetaUI LazyLoad] Could not find mapped plugin for field ${e}: ${i.message}`;t.error(n);throw new Error(n)}if(r.properties)s(r.properties);if(r.items&&r.items.properties)s(r.items.properties);if(r.items&&r.items.type){try{n.add(this.getFieldPath(r.items.type,r.items.ui?.widget))}catch(i){const n=`[MetaUI LazyLoad] Could not find mapped plugin for array item type ${r.items.type}: ${i.message}`;t.error(n);throw new Error(n)}}}};if(i.properties){s(i.properties)}else if(i.items&&i.items.properties){s(i.items.properties)}return n}async preloadDependencies(i){const n=this.getPathsToLoad(i);const e=Array.from(n).map(i=>{if(!this.activePromises[i]){this.activePromises[i]=new Promise((n,e)=>{sap.ui.require([i],i=>n(i),n=>{t.error(`Failed to lazy load module: ${i}`);delete this.activePromises[i];e(n)})})}return this.activePromises[i]});await Promise.all(e)}extractConstructor(i){if(!i)return null;if(typeof i==="function")return i;if(i.default&&typeof i.default==="function")return i.default;const t=Object.keys(i);for(const n of t){if(typeof i[n]==="function"){return i[n]}}return null}getPlugin(i,t){const n=this.getFieldPath(i,t);const e=sap.ui.require(n);const s=this.extractConstructor(e);if(!s){throw new Error(`[MetaUI Plugin Instantiation] Plugin ${n} was not preloaded or has no constructor!`)}return new s}getLayout(i){const t=this.getLayoutPath(i);const n=sap.ui.require(t);const e=this.extractConstructor(n);if(!e){throw new Error(`[MetaUI Layout Instantiation] Layout ${t} was not preloaded or has no constructor!`)}return new e}}var e={__esModule:true};e.PluginRegistry=n;return e});
|
|
2
2
|
//# sourceMappingURL=PluginRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginRegistry.js","names":["Logger","___utils_Logger","PluginRegistry","fieldIndex","actionIndex","layoutIndex","activePromises","constructor","this","registerPluginPath","undefined","registerLayoutPath","getInstance","instance","type","widgetName","path","key","registerActionPath","actionName","strategy","getFieldPath","Error","getLayoutPath","getPathsToLoad","schema","pathsToLoad","Set","layoutStrategy","add","scanProperties","props","prop","ui","widget","e","msg","message","error","properties","items","preloadDependencies","promises","Array","from","map","Promise","resolve","reject","sap","require","Module","err","all","extractConstructor","default","keys","Object","getPlugin","PluginClass","getLayout","LayoutClass","__exports","__esModule"],"sources":["PluginRegistry.ts"],"sourcesContent":["/**\n * @file PluginRegistry.ts\n * @description Centralized hub for mapping UI5 controls to SAP schema data types.\n * Enforces the Registry Pattern to decouple the core engine from specific UI5 control implementations.\n * NOW WITH UNIVERSAL LAZY LOADING.\n */\n\nimport { IPlugin } from \"../interfaces/IPlugin\";\nimport { FieldType, ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Logger } from \"../utils/Logger\";\nimport { DefaultLayoutGenerator } from \"./DefaultLayoutGenerator\";\n\nexport class PluginRegistry {\n private static instance: PluginRegistry;\n \n private fieldIndex: Record<string, string> = {};\n private actionIndex: Record<string, string> = {};\n private layoutIndex: Record<string, string> = {};\n \n private activePromises: Record<string, Promise<unknown>> = {};\n\n private constructor() {\n // Core Mappings\n this.registerPluginPath(\"string\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin\");\n this.registerPluginPath(\"number\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(\"integer\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(\"date\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin\");\n this.registerPluginPath(\"boolean\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin\");\n this.registerPluginPath(\"array\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin\");\n this.registerPluginPath(\"object\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin\");\n\n // Widget Overrides\n this.registerPluginPath(\"string\", \"time\", \"nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin\");\n this.registerPluginPath(\"string\", \"datetime\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin\");\n this.registerPluginPath(\"boolean\", \"switch\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin\");\n this.registerPluginPath(\"number\", \"step\", \"nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin\");\n this.registerPluginPath(\"string\", \"select\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin\");\n this.registerPluginPath(\"string\", \"textArea\", \"nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin\");\n this.registerPluginPath(\"string\", \"codeEditor\", \"nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin\");\n \n // Phase 1 Mappings\n this.registerPluginPath(\"string\", \"fileUploader\", \"nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin\");\n this.registerPluginPath(\"array\", \"multiSelect\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin\");\n this.registerPluginPath(\"array\", \"multiInput\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin\");\n this.registerPluginPath(\"number\", \"slider\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin\");\n this.registerPluginPath(\"number\", \"rating\", \"nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin\");\n this.registerPluginPath(\"string\", \"messageStrip\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin\");\n\n // Phase 5 Mappings (Hardware)\n this.registerPluginPath(\"string\", \"camera\", \"nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin\");\n this.registerPluginPath(\"string\", \"signature\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin\");\n this.registerPluginPath(\"object\", \"location\", \"nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin\");\n this.registerPluginPath(\"string\", \"scanner\", \"nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin\");\n this.registerPluginPath(\"string\", \"voiceInput\", \"nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin\");\n this.registerPluginPath(\"string\", \"richText\", \"nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin\");\n\n // Actions & Datasources\n this.registerPluginPath(\"string\", \"urlButton\", \"nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin\");\n this.registerPluginPath(\"string\", \"submitButton\", \"nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin\");\n this.registerPluginPath(\"string\", \"odataSelect\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin\");\n this.registerPluginPath(\"string\", \"remoteDropdown\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin\");\n this.registerPluginPath(\"string\", \"liveSearch\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin\");\n this.registerPluginPath(\"string\", \"remoteValueHelp\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin\");\n\n // Layouts\n this.registerLayoutPath(\"form\", \"nz/co/siliconst/ui5/metaui/layouts/FormLayout\");\n this.registerLayoutPath(\"table\", \"nz/co/siliconst/ui5/metaui/layouts/TableLayout\");\n this.registerLayoutPath(\"wizard\", \"nz/co/siliconst/ui5/metaui/layouts/WizardLayout\");\n this.registerLayoutPath(\"compact\", \"nz/co/siliconst/ui5/metaui/layouts/CompactLayout\");\n }\n\n public static getInstance(): PluginRegistry {\n if (!PluginRegistry.instance) {\n PluginRegistry.instance = new PluginRegistry();\n }\n return PluginRegistry.instance;\n }\n\n public registerPluginPath(type: FieldType, widgetName: string | undefined, path: string): void {\n const key = widgetName ? `${type}:${widgetName}` : type;\n this.fieldIndex[key] = path;\n }\n\n public registerActionPath(actionName: string, path: string): void {\n this.actionIndex[actionName] = path;\n }\n\n public registerLayoutPath(strategy: string, path: string): void {\n this.layoutIndex[strategy] = path;\n }\n\n private getFieldPath(type: FieldType, widgetName?: string): string {\n let path;\n if (widgetName) {\n path = this.fieldIndex[`${type}:${widgetName}`];\n }\n if (!path) {\n path = this.fieldIndex[type];\n }\n if (!path) {\n throw new Error(`No plugin path mapped for FieldType: ${type} (widget: ${widgetName})`);\n }\n return path;\n }\n\n private getLayoutPath(strategy: string): string {\n const path = this.layoutIndex[strategy];\n if (!path) {\n throw new Error(`No layout path mapped for strategy: ${strategy}`);\n }\n return path;\n }\n\n /**\n * Statically traverses the schema structure to identify all required plugins\n * and layouts without actually instantiating them.\n * \n * @param {ISchema} schema The root JSON schema payload to traverse\n * @returns {Set<string>} A distinct set of UI5 module paths required to render the schema\n */\n public getPathsToLoad(schema: ISchema): Set<string> {\n const pathsToLoad = new Set<string>();\n \n // 1. Gather layout strategy\n const strategy = schema.layoutStrategy || (schema.type === \"array\" ? \"table\" : \"form\");\n pathsToLoad.add(this.getLayoutPath(strategy));\n\n // 2. Recursively gather field plugins\n const scanProperties = (props: Record<string, IPropertyMetadata>) => {\n for (const key in props) {\n const prop = props[key];\n try {\n pathsToLoad.add(this.getFieldPath(prop.type || \"string\", prop.ui?.widget));\n } catch (e) {\n const msg = `[MetaUI LazyLoad] Could not find mapped plugin for field ${key}: ${(e as Error).message}`;\n Logger.error(msg);\n throw new Error(msg);\n }\n if (prop.properties) scanProperties(prop.properties);\n if (prop.items && prop.items.properties) scanProperties(prop.items.properties);\n if (prop.items && prop.items.type) {\n try {\n pathsToLoad.add(this.getFieldPath(prop.items.type, prop.items.ui?.widget));\n } catch (e) {\n const msg = `[MetaUI LazyLoad] Could not find mapped plugin for array item type ${prop.items.type}: ${(e as Error).message}`;\n Logger.error(msg);\n throw new Error(msg);\n }\n }\n }\n };\n\n if (schema.properties) {\n scanProperties(schema.properties);\n } else if (schema.items && schema.items.properties) {\n scanProperties(schema.items.properties);\n }\n\n return pathsToLoad;\n }\n\n /**\n * Defers the generation of the UI until all required UI5 modules have been\n * downloaded asynchronously. Maintains a cache of active promises to prevent\n * redundant network requests for the same module.\n * \n * @param {ISchema} schema The root JSON schema payload to parse\n * @returns {Promise<void>} Resolves when all dependencies are securely in the UI5 require cache\n */\n public async preloadDependencies(schema: ISchema): Promise<void> {\n const pathsToLoad = this.getPathsToLoad(schema);\n\n // 3. Batch execute sap.ui.require via Promises\n const promises = Array.from(pathsToLoad).map(path => {\n if (!this.activePromises[path]) {\n this.activePromises[path] = new Promise((resolve, reject) => {\n sap.ui.require([path], \n (Module: unknown) => resolve(Module), \n (err: unknown) => {\n Logger.error(`Failed to lazy load module: ${path}`);\n // CRITICAL: Delete from cache so future attempts can retry the network request\n delete this.activePromises[path];\n reject(err);\n }\n );\n });\n }\n return this.activePromises[path];\n });\n\n await Promise.all(promises);\n }\n\n /**\n * Extracts a valid constructor from a dynamically required module.\n */\n private extractConstructor(Module: unknown): new () => IPlugin | ILayoutManager | null {\n if (!Module) return null;\n if (typeof Module === \"function\") return Module as any;\n if ((Module as any).default && typeof (Module as any).default === \"function\") return (Module as any).default;\n \n // Handle namespace exports (e.g. { FormLayout: class... })\n const keys = Object.keys(Module as object);\n for (const key of keys) {\n if (typeof (Module as any)[key] === \"function\") {\n return (Module as any)[key];\n }\n }\n return null;\n }\n\n /**\n * Instantiates the requested plugin for the given field type.\n */\n public getPlugin(type: FieldType, widgetName?: string): IPlugin {\n const path = this.getFieldPath(type, widgetName);\n const Module = sap.ui.require(path);\n const PluginClass = this.extractConstructor(Module);\n \n if (!PluginClass) {\n throw new Error(`[MetaUI Plugin Instantiation] Plugin ${path} was not preloaded or has no constructor!`);\n }\n \n return new PluginClass();\n }\n\n /**\n * Instantiates the requested layout manager for the given strategy.\n */\n public getLayout(strategy: string): ILayoutManager {\n const path = this.getLayoutPath(strategy);\n const Module = sap.ui.require(path);\n const LayoutClass = this.extractConstructor(Module);\n \n if (!LayoutClass) {\n throw new Error(`[MetaUI Layout Instantiation] Layout ${path} was not preloaded or has no constructor!`);\n }\n \n return new LayoutClass();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PluginRegistry.js","names":["Logger","___utils_Logger","PluginRegistry","fieldIndex","actionIndex","layoutIndex","activePromises","constructor","this","registerPluginPath","undefined","registerLayoutPath","getInstance","instance","type","widgetName","path","key","registerActionPath","actionName","strategy","getFieldPath","Error","getLayoutPath","getPathsToLoad","schema","pathsToLoad","Set","layoutStrategy","add","scanProperties","props","prop","ui","widget","e","msg","message","error","properties","items","preloadDependencies","promises","Array","from","map","Promise","resolve","reject","sap","require","Module","err","all","extractConstructor","default","keys","Object","getPlugin","PluginClass","getLayout","LayoutClass","__exports","__esModule"],"sources":["PluginRegistry.ts"],"sourcesContent":["/**\n * @file PluginRegistry.ts\n * @description Centralized hub for mapping UI5 controls to SAP schema data types.\n * Enforces the Registry Pattern to decouple the core engine from specific UI5 control implementations.\n * NOW WITH UNIVERSAL LAZY LOADING.\n */\n\nimport { IPlugin } from \"../interfaces/IPlugin\";\nimport { FieldType, ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Logger } from \"../utils/Logger\";\nimport { DefaultLayoutGenerator } from \"./DefaultLayoutGenerator\";\n\nexport class PluginRegistry {\n private static instance: PluginRegistry;\n \n private fieldIndex: Record<string, string> = {};\n private actionIndex: Record<string, string> = {};\n private layoutIndex: Record<string, string> = {};\n \n private activePromises: Record<string, Promise<unknown>> = {};\n\n private constructor() {\n // Core Mappings\n this.registerPluginPath(\"string\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin\");\n this.registerPluginPath(\"number\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(\"integer\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(\"date\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin\");\n this.registerPluginPath(\"boolean\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin\");\n this.registerPluginPath(\"array\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin\");\n this.registerPluginPath(\"object\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin\");\n this.registerPluginPath(\"string\", \"default\", \"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin\");\n this.registerPluginPath(\"object\", \"dictionary\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin\");\n this.registerPluginPath(\"object\", \"reference\", \"nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin\");\n\n // Widget Overrides\n this.registerPluginPath(\"string\", \"time\", \"nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin\");\n this.registerPluginPath(\"string\", \"datetime\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin\");\n this.registerPluginPath(\"boolean\", \"switch\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin\");\n this.registerPluginPath(\"number\", \"step\", \"nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin\");\n this.registerPluginPath(\"string\", \"select\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin\");\n this.registerPluginPath(\"string\", \"textArea\", \"nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin\");\n this.registerPluginPath(\"string\", \"codeEditor\", \"nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin\");\n this.registerPluginPath(\"string\", \"link\", \"nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin\");\n this.registerPluginPath(\"string\", \"password\", \"nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin\");\n this.registerPluginPath(\"string\", \"email\", \"nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin\");\n \n // Phase 1 Mappings\n this.registerPluginPath(\"string\", \"fileUploader\", \"nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin\");\n this.registerPluginPath(\"array\", \"multiSelect\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin\");\n this.registerPluginPath(\"array\", \"multiInput\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin\");\n this.registerPluginPath(\"number\", \"slider\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin\");\n this.registerPluginPath(\"number\", \"rating\", \"nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin\");\n this.registerPluginPath(\"string\", \"messageStrip\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin\");\n\n // Phase 5 Mappings (Hardware)\n this.registerPluginPath(\"string\", \"camera\", \"nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin\");\n this.registerPluginPath(\"string\", \"signature\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin\");\n this.registerPluginPath(\"object\", \"location\", \"nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin\");\n this.registerPluginPath(\"string\", \"scanner\", \"nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin\");\n this.registerPluginPath(\"string\", \"voiceInput\", \"nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin\");\n this.registerPluginPath(\"string\", \"richText\", \"nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin\");\n\n // Actions & Datasources\n this.registerPluginPath(\"string\", \"urlButton\", \"nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin\");\n this.registerPluginPath(\"string\", \"submitButton\", \"nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin\");\n this.registerPluginPath(\"string\", \"odataSelect\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin\");\n this.registerPluginPath(\"string\", \"remoteDropdown\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin\");\n this.registerPluginPath(\"string\", \"liveSearch\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin\");\n this.registerPluginPath(\"string\", \"remoteValueHelp\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin\");\n\n // Layouts\n this.registerLayoutPath(\"form\", \"nz/co/siliconst/ui5/metaui/layouts/FormLayout\");\n this.registerLayoutPath(\"table\", \"nz/co/siliconst/ui5/metaui/layouts/TableLayout\");\n this.registerLayoutPath(\"wizard\", \"nz/co/siliconst/ui5/metaui/layouts/WizardLayout\");\n this.registerLayoutPath(\"compact\", \"nz/co/siliconst/ui5/metaui/layouts/CompactLayout\");\n }\n\n public static getInstance(): PluginRegistry {\n if (!PluginRegistry.instance) {\n PluginRegistry.instance = new PluginRegistry();\n }\n return PluginRegistry.instance;\n }\n\n public registerPluginPath(type: FieldType, widgetName: string | undefined, path: string): void {\n const key = widgetName ? `${type}:${widgetName}` : type;\n this.fieldIndex[key] = path;\n }\n\n public registerActionPath(actionName: string, path: string): void {\n this.actionIndex[actionName] = path;\n }\n\n public registerLayoutPath(strategy: string, path: string): void {\n this.layoutIndex[strategy] = path;\n }\n\n private getFieldPath(type: FieldType, widgetName?: string): string {\n let path;\n if (widgetName) {\n path = this.fieldIndex[`${type}:${widgetName}`];\n }\n if (!path) {\n path = this.fieldIndex[type];\n }\n if (!path) {\n throw new Error(`No plugin path mapped for FieldType: ${type} (widget: ${widgetName})`);\n }\n return path;\n }\n\n private getLayoutPath(strategy: string): string {\n const path = this.layoutIndex[strategy];\n if (!path) {\n throw new Error(`No layout path mapped for strategy: ${strategy}`);\n }\n return path;\n }\n\n /**\n * Statically traverses the schema structure to identify all required plugins\n * and layouts without actually instantiating them.\n * \n * @param {ISchema} schema The root JSON schema payload to traverse\n * @returns {Set<string>} A distinct set of UI5 module paths required to render the schema\n */\n public getPathsToLoad(schema: ISchema): Set<string> {\n const pathsToLoad = new Set<string>();\n \n // 1. Gather layout strategy\n const strategy = schema.layoutStrategy || (schema.type === \"array\" ? \"table\" : \"form\");\n pathsToLoad.add(this.getLayoutPath(strategy));\n\n // 2. Recursively gather field plugins\n const scanProperties = (props: Record<string, IPropertyMetadata>) => {\n for (const key in props) {\n const prop = props[key];\n try {\n pathsToLoad.add(this.getFieldPath(prop.type || \"string\", prop.ui?.widget));\n } catch (e) {\n const msg = `[MetaUI LazyLoad] Could not find mapped plugin for field ${key}: ${(e as Error).message}`;\n Logger.error(msg);\n throw new Error(msg);\n }\n if (prop.properties) scanProperties(prop.properties);\n if (prop.items && prop.items.properties) scanProperties(prop.items.properties);\n if (prop.items && prop.items.type) {\n try {\n pathsToLoad.add(this.getFieldPath(prop.items.type, prop.items.ui?.widget));\n } catch (e) {\n const msg = `[MetaUI LazyLoad] Could not find mapped plugin for array item type ${prop.items.type}: ${(e as Error).message}`;\n Logger.error(msg);\n throw new Error(msg);\n }\n }\n }\n };\n\n if (schema.properties) {\n scanProperties(schema.properties);\n } else if (schema.items && schema.items.properties) {\n scanProperties(schema.items.properties);\n }\n\n return pathsToLoad;\n }\n\n /**\n * Defers the generation of the UI until all required UI5 modules have been\n * downloaded asynchronously. Maintains a cache of active promises to prevent\n * redundant network requests for the same module.\n * \n * @param {ISchema} schema The root JSON schema payload to parse\n * @returns {Promise<void>} Resolves when all dependencies are securely in the UI5 require cache\n */\n public async preloadDependencies(schema: ISchema): Promise<void> {\n const pathsToLoad = this.getPathsToLoad(schema);\n\n // 3. Batch execute sap.ui.require via Promises\n const promises = Array.from(pathsToLoad).map(path => {\n if (!this.activePromises[path]) {\n this.activePromises[path] = new Promise((resolve, reject) => {\n sap.ui.require([path], \n (Module: unknown) => resolve(Module), \n (err: unknown) => {\n Logger.error(`Failed to lazy load module: ${path}`);\n // CRITICAL: Delete from cache so future attempts can retry the network request\n delete this.activePromises[path];\n reject(err);\n }\n );\n });\n }\n return this.activePromises[path];\n });\n\n await Promise.all(promises);\n }\n\n /**\n * Extracts a valid constructor from a dynamically required module.\n */\n private extractConstructor(Module: unknown): new () => IPlugin | ILayoutManager | null {\n if (!Module) return null;\n if (typeof Module === \"function\") return Module as any;\n if ((Module as any).default && typeof (Module as any).default === \"function\") return (Module as any).default;\n \n // Handle namespace exports (e.g. { FormLayout: class... })\n const keys = Object.keys(Module as object);\n for (const key of keys) {\n if (typeof (Module as any)[key] === \"function\") {\n return (Module as any)[key];\n }\n }\n return null;\n }\n\n /**\n * Instantiates the requested plugin for the given field type.\n */\n public getPlugin(type: FieldType, widgetName?: string): IPlugin {\n const path = this.getFieldPath(type, widgetName);\n const Module = sap.ui.require(path);\n const PluginClass = this.extractConstructor(Module);\n \n if (!PluginClass) {\n throw new Error(`[MetaUI Plugin Instantiation] Plugin ${path} was not preloaded or has no constructor!`);\n }\n \n return new PluginClass();\n }\n\n /**\n * Instantiates the requested layout manager for the given strategy.\n */\n public getLayout(strategy: string): ILayoutManager {\n const path = this.getLayoutPath(strategy);\n const Module = sap.ui.require(path);\n const LayoutClass = this.extractConstructor(Module);\n \n if (!LayoutClass) {\n throw new Error(`[MetaUI Layout Instantiation] Layout ${path} was not preloaded or has no constructor!`);\n }\n \n return new LayoutClass();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,6 +29,9 @@ export class PluginRegistry {
|
|
|
29
29
|
this.registerPluginPath("boolean", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin");
|
|
30
30
|
this.registerPluginPath("array", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin");
|
|
31
31
|
this.registerPluginPath("object", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin");
|
|
32
|
+
this.registerPluginPath("string", "default", "nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin");
|
|
33
|
+
this.registerPluginPath("object", "dictionary", "nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin");
|
|
34
|
+
this.registerPluginPath("object", "reference", "nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin");
|
|
32
35
|
|
|
33
36
|
// Widget Overrides
|
|
34
37
|
this.registerPluginPath("string", "time", "nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin");
|
|
@@ -38,6 +41,9 @@ export class PluginRegistry {
|
|
|
38
41
|
this.registerPluginPath("string", "select", "nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin");
|
|
39
42
|
this.registerPluginPath("string", "textArea", "nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin");
|
|
40
43
|
this.registerPluginPath("string", "codeEditor", "nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin");
|
|
44
|
+
this.registerPluginPath("string", "link", "nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin");
|
|
45
|
+
this.registerPluginPath("string", "password", "nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin");
|
|
46
|
+
this.registerPluginPath("string", "email", "nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin");
|
|
41
47
|
|
|
42
48
|
// Phase 1 Mappings
|
|
43
49
|
this.registerPluginPath("string", "fileUploader", "nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sap.ui.define(["./SchemaNormalizer", "../
|
|
1
|
+
sap.ui.define(["./SchemaNormalizer", "../openapi/OpenApiBuilder", "../utils/Logger"], function (___SchemaNormalizer, ___openapi_OpenApiBuilder, ___utils_Logger) {
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -7,10 +7,10 @@ sap.ui.define(["./SchemaNormalizer", "../swagger/SwaggerBuilder", "../utils/Logg
|
|
|
7
7
|
* Routes unknown JSON payloads to the appropriate parser plugin.
|
|
8
8
|
*/
|
|
9
9
|
const SchemaNormalizer = ___SchemaNormalizer["SchemaNormalizer"];
|
|
10
|
-
const
|
|
10
|
+
const OpenApiBuilder = ___openapi_OpenApiBuilder["OpenApiBuilder"];
|
|
11
11
|
const Logger = ___utils_Logger["Logger"];
|
|
12
12
|
class SchemaBuilderRegistry {
|
|
13
|
-
static _plugins = [new
|
|
13
|
+
static _plugins = [new OpenApiBuilder(), new SchemaNormalizer()];
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Registers a new schema builder plugin into the engine.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaBuilderRegistry-dbg.js","names":["SchemaNormalizer","___SchemaNormalizer","
|
|
1
|
+
{"version":3,"file":"SchemaBuilderRegistry-dbg.js","names":["SchemaNormalizer","___SchemaNormalizer","OpenApiBuilder","___openapi_OpenApiBuilder","Logger","___utils_Logger","SchemaBuilderRegistry","_plugins","register","plugin","push","getBuilderFor","rawSchema","canHandle","warn","__exports","__esModule"],"sources":["SchemaBuilderRegistry.ts"],"sourcesContent":["/**\n * @file SchemaBuilderRegistry.ts\n * @description Singleton registry for Schema Builder plugins.\n * Routes unknown JSON payloads to the appropriate parser plugin.\n */\n\nimport { ISchemaBuilderPlugin } from \"../interfaces/ISchemaBuilderPlugin\";\nimport { SchemaNormalizer } from \"./SchemaNormalizer\";\nimport { OpenApiBuilder } from \"../openapi/OpenApiBuilder\";\nimport { Logger } from \"../utils/Logger\";\n\nexport class SchemaBuilderRegistry {\n private static _plugins: ISchemaBuilderPlugin[] = [\n new OpenApiBuilder(),\n new SchemaNormalizer()\n ];\n\n /**\n * Registers a new schema builder plugin into the engine.\n * @param plugin An instance of ISchemaBuilderPlugin\n */\n public static register(plugin: ISchemaBuilderPlugin): void {\n this._plugins.push(plugin);\n }\n\n /**\n * Finds the first registered plugin that claims it can handle the payload.\n * @param rawSchema The raw JSON schema object to inspect.\n * @returns The matching plugin instance, or null if none match.\n */\n public static getBuilderFor(rawSchema: unknown): ISchemaBuilderPlugin | null {\n if (!rawSchema || typeof rawSchema !== \"object\") {\n return null;\n }\n\n for (const plugin of this._plugins) {\n if (plugin.canHandle(rawSchema)) {\n return plugin;\n }\n }\n \n Logger.warn(\"[SchemaBuilderRegistry]\", \"No suitable Schema Builder plugin found for the provided payload.\");\n return null;\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;AACA;EAJA,MAOSA,gBAAgB,GAAAC,mBAAA;EAAA,MAChBC,cAAc,GAAAC,yBAAA;EAAA,MACdC,MAAM,GAAAC,eAAA;EAER,MAAMC,qBAAqB,CAAC;IAC/B,OAAeC,QAAQ,GAA2B,CAC9C,IAAIL,cAAc,CAAC,CAAC,EACpB,IAAIF,gBAAgB,CAAC,CAAC,CACzB;;IAED;AACJ;AACA;AACA;IACI,OAAcQ,QAAQA,CAACC,MAA4B,EAAQ;MACvD,IAAI,CAACF,QAAQ,CAACG,IAAI,CAACD,MAAM,CAAC;IAC9B;;IAEA;AACJ;AACA;AACA;AACA;IACI,OAAcE,aAAaA,CAACC,SAAkB,EAA+B;MACzE,IAAI,CAACA,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;QAC7C,OAAO,IAAI;MACf;MAEA,KAAK,MAAMH,MAAM,IAAI,IAAI,CAACF,QAAQ,EAAE;QAChC,IAAIE,MAAM,CAACI,SAAS,CAACD,SAAS,CAAC,EAAE;UAC7B,OAAOH,MAAM;QACjB;MACJ;MAEAL,MAAM,CAACU,IAAI,CAAC,yBAAyB,EAAE,mEAAmE,CAAC;MAC3G,OAAO,IAAI;IACf;EACJ;EAAC,IAAAC,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAT,qBAAA,GAAAA,qBAAA;EAAA,OAAAS,SAAA;AAAA","ignoreList":[]}
|
|
@@ -17,7 +17,7 @@ declare module "nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry" {
|
|
|
17
17
|
* @param rawSchema The raw JSON schema object to inspect.
|
|
18
18
|
* @returns The matching plugin instance, or null if none match.
|
|
19
19
|
*/
|
|
20
|
-
static getBuilderFor(rawSchema:
|
|
20
|
+
static getBuilderFor(rawSchema: unknown): ISchemaBuilderPlugin | null;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=SchemaBuilderRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaBuilderRegistry.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,uDAAuD,CAAC;IACvE;;;;OAIG;IAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;IAKlG,MAAa,qBAAqB;QAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAGrB;QAEF;;;WAGG;eACW,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;QAI1D;;;;WAIG;eACW,aAAa,CAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"SchemaBuilderRegistry.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,uDAAuD,CAAC;IACvE;;;;OAIG;IAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;IAKlG,MAAa,qBAAqB;QAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAGrB;QAEF;;;WAGG;eACW,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;QAI1D;;;;WAIG;eACW,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI;KAc/E;CAEA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
sap.ui.define(["./SchemaNormalizer","../
|
|
1
|
+
sap.ui.define(["./SchemaNormalizer","../openapi/OpenApiBuilder","../utils/Logger"],function(e,i,r){"use strict";const t=e["SchemaNormalizer"];const n=i["OpenApiBuilder"];const u=r["Logger"];class s{static _plugins=[new n,new t];static register(e){this._plugins.push(e)}static getBuilderFor(e){if(!e||typeof e!=="object"){return null}for(const i of this._plugins){if(i.canHandle(e)){return i}}u.warn("[SchemaBuilderRegistry]","No suitable Schema Builder plugin found for the provided payload.");return null}}var l={__esModule:true};l.SchemaBuilderRegistry=s;return l});
|
|
2
2
|
//# sourceMappingURL=SchemaBuilderRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaBuilderRegistry.js","names":["SchemaNormalizer","___SchemaNormalizer","
|
|
1
|
+
{"version":3,"file":"SchemaBuilderRegistry.js","names":["SchemaNormalizer","___SchemaNormalizer","OpenApiBuilder","___openapi_OpenApiBuilder","Logger","___utils_Logger","SchemaBuilderRegistry","static","register","plugin","this","_plugins","push","getBuilderFor","rawSchema","canHandle","warn","__exports","__esModule"],"sources":["SchemaBuilderRegistry.ts"],"sourcesContent":["/**\n * @file SchemaBuilderRegistry.ts\n * @description Singleton registry for Schema Builder plugins.\n * Routes unknown JSON payloads to the appropriate parser plugin.\n */\n\nimport { ISchemaBuilderPlugin } from \"../interfaces/ISchemaBuilderPlugin\";\nimport { SchemaNormalizer } from \"./SchemaNormalizer\";\nimport { OpenApiBuilder } from \"../openapi/OpenApiBuilder\";\nimport { Logger } from \"../utils/Logger\";\n\nexport class SchemaBuilderRegistry {\n private static _plugins: ISchemaBuilderPlugin[] = [\n new OpenApiBuilder(),\n new SchemaNormalizer()\n ];\n\n /**\n * Registers a new schema builder plugin into the engine.\n * @param plugin An instance of ISchemaBuilderPlugin\n */\n public static register(plugin: ISchemaBuilderPlugin): void {\n this._plugins.push(plugin);\n }\n\n /**\n * Finds the first registered plugin that claims it can handle the payload.\n * @param rawSchema The raw JSON schema object to inspect.\n * @returns The matching plugin instance, or null if none match.\n */\n public static getBuilderFor(rawSchema: unknown): ISchemaBuilderPlugin | null {\n if (!rawSchema || typeof rawSchema !== \"object\") {\n return null;\n }\n\n for (const plugin of this._plugins) {\n if (plugin.canHandle(rawSchema)) {\n return plugin;\n }\n }\n \n Logger.warn(\"[SchemaBuilderRegistry]\", \"No suitable Schema Builder plugin found for the provided payload.\");\n return null;\n }\n}\n"],"mappings":"gHAAA,MAOSA,EAAgBC,EAAA,0BAChBC,EAAcC,EAAA,wBACdC,EAAMC,EAAA,UAER,MAAMC,EACTC,gBAAkD,CAC9C,IAAIL,EACJ,IAAIF,GAOR,eAAcQ,CAASC,GACnBC,KAAKC,SAASC,KAAKH,EACvB,CAOA,oBAAcI,CAAcC,GACxB,IAAKA,UAAoBA,IAAc,SAAU,CAC7C,OAAO,IACX,CAEA,IAAK,MAAML,KAAUC,KAAKC,SAAU,CAChC,GAAIF,EAAOM,UAAUD,GAAY,CAC7B,OAAOL,CACX,CACJ,CAEAL,EAAOY,KAAK,0BAA2B,qEACvC,OAAO,IACX,EACH,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAAX,wBAAA,OAAAW,CAAA","ignoreList":[]}
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
|
|
7
7
|
import { ISchemaBuilderPlugin } from "../interfaces/ISchemaBuilderPlugin";
|
|
8
8
|
import { SchemaNormalizer } from "./SchemaNormalizer";
|
|
9
|
-
import {
|
|
9
|
+
import { OpenApiBuilder } from "../openapi/OpenApiBuilder";
|
|
10
10
|
import { Logger } from "../utils/Logger";
|
|
11
11
|
|
|
12
12
|
export class SchemaBuilderRegistry {
|
|
13
13
|
private static _plugins: ISchemaBuilderPlugin[] = [
|
|
14
|
-
new
|
|
14
|
+
new OpenApiBuilder(),
|
|
15
15
|
new SchemaNormalizer()
|
|
16
16
|
];
|
|
17
17
|
|
|
@@ -28,7 +28,7 @@ export class SchemaBuilderRegistry {
|
|
|
28
28
|
* @param rawSchema The raw JSON schema object to inspect.
|
|
29
29
|
* @returns The matching plugin instance, or null if none match.
|
|
30
30
|
*/
|
|
31
|
-
public static getBuilderFor(rawSchema:
|
|
31
|
+
public static getBuilderFor(rawSchema: unknown): ISchemaBuilderPlugin | null {
|
|
32
32
|
if (!rawSchema || typeof rawSchema !== "object") {
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
@@ -11,16 +11,15 @@ sap.ui.define(["../utils/Logger"], function (___utils_Logger) {
|
|
|
11
11
|
* ISchemaBuilderPlugin Contract
|
|
12
12
|
*/
|
|
13
13
|
canHandle(rawSchema) {
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
if (rawSchema.openapi || rawSchema.swagger) return false;
|
|
14
|
+
// Fallback for native ISchemas or data inference.
|
|
15
|
+
// It always returns true because it is the final fallback builder in the registry.
|
|
17
16
|
return true;
|
|
18
17
|
}
|
|
19
18
|
|
|
20
19
|
/**
|
|
21
20
|
* ISchemaBuilderPlugin Contract
|
|
22
21
|
*/
|
|
23
|
-
build(rawSchema) {
|
|
22
|
+
build(rawSchema, targetDefinition) {
|
|
24
23
|
return SchemaNormalizer.normalize(rawSchema);
|
|
25
24
|
}
|
|
26
25
|
|
|
@@ -128,6 +127,7 @@ sap.ui.define(["../utils/Logger"], function (___utils_Logger) {
|
|
|
128
127
|
static normalizePropertyMetadata(prop, keyName, isRequired = false) {
|
|
129
128
|
const normalized = {
|
|
130
129
|
type: prop.type || "string",
|
|
130
|
+
$ref: prop.$ref,
|
|
131
131
|
ui: {
|
|
132
132
|
label: prop.ui?.label || this.generateLabel(keyName),
|
|
133
133
|
isKey: !!prop.ui?.isKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaNormalizer-dbg.js","names":["Logger","___utils_Logger","SchemaNormalizer","canHandle","rawSchema","openapi","swagger","build","normalize","data","schemaObj","trim","JSON","parse","e","msg","message","error","Error","Array","isArray","inferSchemaFromData","normalized","title","type","items","layoutStrategy","uiLayout","additionalProperties","targetProperties","properties","inferred","deepMergeProperties","requiredKeys","required","normalizeProperties","normalizePropertyMetadata","base","override","merged","key","Object","keys","overrideVal","baseVal","normalizedProps","isRequired","includes","prop","keyName","ui","label","generateLabel","isKey","readOnly","widget","valueHelp","enum","undefined","visibleOn","enabledOn","format","validators","formatter","args","rows","fullWidth","dialogButtonText","maxLength","minLength","minimum","maximum","pattern","precision","scale","multipleOf","name","spaced","replace","split","filter","w","length","map","word","charAt","toUpperCase","slice","toLowerCase","join","schema","inferPropertiesFromObject","obj","val","nestedProps","resolveScope","scope","startsWith","meta","bindingPath","propKey","pathSegments","current","debug","stringify","i","segment","__exports","__esModule"],"sources":["SchemaNormalizer.ts"],"sourcesContent":["/**\n * @file SchemaNormalizer.ts\n * @description Transforms and validates incoming JSON payloads into the strict v2 ISchema dictionary matrix.\n */\n\nimport { ISchema, IPropertyMetadata, FieldType } from \"../interfaces/ISchema\";\nimport { ISchemaBuilderPlugin } from \"../interfaces/ISchemaBuilderPlugin\";\nimport { Logger } from \"../utils/Logger\";\n\nexport class SchemaNormalizer implements ISchemaBuilderPlugin {\n\n /**\n * ISchemaBuilderPlugin Contract\n */\n public canHandle(rawSchema: any): boolean {\n // MetaUI native schemas almost always have properties, items, or a layoutStrategy\n // This acts as a fallback for native schemas.\n if (rawSchema.openapi || rawSchema.swagger) return false; \n return true;\n }\n\n /**\n * ISchemaBuilderPlugin Contract\n */\n public build(rawSchema: any): ISchema {\n return SchemaNormalizer.normalize(rawSchema);\n }\n\n /**\n * Validates that the provided raw payload conforms to the required ISchema structures.\n */\n public static normalize(rawSchema?: unknown, data?: unknown): ISchema {\n let schemaObj = rawSchema;\n\n if (typeof schemaObj === \"string\") {\n if (!schemaObj.trim()) {\n schemaObj = null;\n } else {\n try {\n schemaObj = JSON.parse(schemaObj);\n } catch (e) {\n const msg = \"Failed to parse schema string: \" + (e as Error).message;\n Logger.error(\"[MetaUI SchemaNormalizer]\", msg);\n throw new Error(msg);\n }\n }\n }\n\n if (!schemaObj || typeof schemaObj !== 'object' || Array.isArray(schemaObj)) {\n return this.inferSchemaFromData(data);\n }\n\n try {\n // It is an object. Ensure it conforms to v2 structure.\n const normalized: ISchema = {\n title: schemaObj.title,\n type: schemaObj.type || (schemaObj.items ? \"array\" : \"object\"),\n layoutStrategy: schemaObj.layoutStrategy,\n uiLayout: schemaObj.uiLayout,\n additionalProperties: schemaObj.additionalProperties\n };\n\n let targetProperties = schemaObj.properties || {};\n\n if (schemaObj.additionalProperties === true && data) {\n const inferred = this.inferSchemaFromData(data);\n if (inferred.type === \"object\" && inferred.properties) {\n targetProperties = this.deepMergeProperties(inferred.properties, targetProperties);\n } else if (inferred.type === \"array\" && inferred.items && inferred.items.properties) {\n // Array schema merging could be added here if we want full support.\n }\n }\n\n if (normalized.type === \"object\") {\n const requiredKeys = Array.isArray(schemaObj.required) ? schemaObj.required : [];\n normalized.properties = this.normalizeProperties(targetProperties, requiredKeys);\n } else if (normalized.type === \"array\") {\n // Future expansion: array deep merge\n normalized.items = this.normalizePropertyMetadata(schemaObj.items || { type: \"object\", properties: {} }, \"items\", false);\n }\n\n return normalized;\n } catch (error) {\n const msg = \"Critical error normalizing schema object: \" + (error as Error).message;\n Logger.error(\"[MetaUI SchemaNormalizer]\", msg);\n throw new Error(msg);\n }\n }\n\n /**\n * Recursively deep merges an inferred schema over a base schema.\n * @param base The base property dictionary.\n * @param override The overriding inferred dictionary.\n * @returns A new deeply merged property dictionary.\n */\n private static deepMergeProperties(base: Record<string, unknown>, override: Record<string, unknown>): Record<string, unknown> {\n const merged = { ...base };\n for (const key of Object.keys(override)) {\n const overrideVal = override[key];\n const baseVal = merged[key];\n\n if (baseVal && typeof baseVal === \"object\" && !Array.isArray(baseVal) &&\n overrideVal && typeof overrideVal === \"object\" && !Array.isArray(overrideVal)) {\n merged[key] = this.deepMergeProperties(baseVal, overrideVal);\n } else {\n merged[key] = overrideVal;\n }\n }\n return merged;\n }\n\n /**\n * Normalizes a collection of properties.\n * @param properties The raw properties map.\n * @param requiredKeys An optional array of keys that are required by the parent object.\n * @returns A map of strict IPropertyMetadata objects.\n */\n private static normalizeProperties(properties: Record<string, unknown>, requiredKeys: string[] = []): Record<string, IPropertyMetadata> {\n const normalizedProps: Record<string, IPropertyMetadata> = {};\n for (const key of Object.keys(properties)) {\n const isRequired = requiredKeys.includes(key);\n normalizedProps[key] = this.normalizePropertyMetadata(properties[key], key, isRequired);\n }\n return normalizedProps;\n }\n\n /**\n * Normalizes a single property against the ISchema specification.\n * @param prop The raw property definition.\n * @param keyName The string key name for generating default labels.\n * @param isRequired Indicates if the parent object mandated this property as required.\n * @returns A strict IPropertyMetadata instance.\n */\n private static normalizePropertyMetadata(prop: Record<string, unknown>, keyName: string, isRequired: boolean = false): IPropertyMetadata {\n const normalized: IPropertyMetadata = {\n type: prop.type || \"string\",\n ui: {\n label: prop.ui?.label || this.generateLabel(keyName),\n isKey: !!prop.ui?.isKey,\n readOnly: !!prop.ui?.readOnly,\n widget: prop.ui?.widget || (prop.valueHelp || prop.enum ? \"select\" : undefined),\n visibleOn: prop.ui?.visibleOn,\n enabledOn: prop.ui?.enabledOn,\n format: prop.ui?.format,\n validators: prop.ui?.validators,\n formatter: prop.ui?.formatter,\n args: prop.ui?.args,\n rows: prop.ui?.rows,\n fullWidth: prop.ui?.fullWidth,\n dialogButtonText: prop.ui?.dialogButtonText\n },\n required: isRequired || !!prop.required,\n maxLength: prop.maxLength as number,\n minLength: prop.minLength as number,\n minimum: prop.minimum,\n maximum: prop.maximum,\n pattern: prop.pattern,\n precision: prop.precision,\n scale: prop.scale,\n multipleOf: prop.multipleOf as number,\n valueHelp: prop.valueHelp,\n enum: prop.enum\n };\n\n if (normalized.type === \"object\" && prop.properties) {\n const requiredKeys = Array.isArray(prop.required) ? prop.required : [];\n normalized.properties = this.normalizeProperties(prop.properties as Record<string, unknown>, requiredKeys);\n normalized.uiLayout = prop.uiLayout;\n } else if (normalized.type === \"array\" && prop.items) {\n normalized.items = this.normalizePropertyMetadata(prop.items as Record<string, unknown>, \"items\", false);\n normalized.uiLayout = prop.uiLayout;\n }\n\n return normalized;\n }\n\n /**\n * Generates a Title Case label from camelCase or snake_case technical names.\n */\n private static generateLabel(name: string): string {\n if (!name) return \"\";\n let spaced = name.replace(/([A-Z])/g, \" $1\").replace(/_/g, \" \");\n return spaced.split(' ')\n .filter(w => w.length > 0)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ')\n .trim();\n }\n\n /**\n * Infers a v2 ISchema structure dynamically from a plain data payload.\n */\n public static inferSchemaFromData(data: unknown): ISchema {\n const schema: ISchema = { type: \"object\", properties: {}, layoutStrategy: \"compact\", title: \"\" };\n\n if (!data || typeof data !== \"object\") {\n return schema;\n }\n\n if (Array.isArray(data)) {\n schema.type = \"array\";\n if (data.length > 0 && typeof data[0] !== \"object\") {\n schema.layoutStrategy = \"compact\";\n schema.items = { type: typeof data[0] as FieldType };\n } else {\n schema.layoutStrategy = \"table\";\n schema.items = {\n type: \"object\",\n layoutStrategy: \"compact\",\n properties: data.length > 0 ? this.inferPropertiesFromObject(data[0] as Record<string, unknown>) : {}\n };\n }\n } else {\n schema.type = \"object\";\n schema.properties = this.inferPropertiesFromObject(data);\n }\n\n return schema;\n }\n\n /**\n * Infers field metadata recursively from a raw data object.\n * @param obj The raw JavaScript object.\n * @returns A dictionary of inferred IPropertyMetadata.\n */\n private static inferPropertiesFromObject(obj: Record<string, unknown>): Record<string, IPropertyMetadata> {\n const properties: Record<string, IPropertyMetadata> = {};\n if (!obj || typeof obj !== \"object\") return properties;\n\n for (const key of Object.keys(obj)) {\n const val = obj[key];\n if (val === null || val === undefined) continue;\n\n let type: FieldType = \"string\";\n let items: IPropertyMetadata | undefined;\n let nestedProps: Record<string, IPropertyMetadata> | undefined;\n\n if (typeof val === \"number\") type = \"number\";\n else if (typeof val === \"boolean\") type = \"boolean\";\n else if (Array.isArray(val)) {\n type = \"array\";\n if (val.length > 0 && typeof val[0] !== \"object\") {\n items = {\n type: typeof val[0] as FieldType\n };\n } else {\n items = {\n type: \"object\",\n properties: val.length > 0 ? this.inferPropertiesFromObject(val[0] as Record<string, unknown>) : {}\n };\n }\n } else if (typeof val === \"object\") {\n type = \"object\";\n nestedProps = this.inferPropertiesFromObject(val);\n }\n\n properties[key] = {\n type,\n items,\n properties: nestedProps,\n ui: {\n label: this.generateLabel(key),\n isKey: false,\n readOnly: false,\n widget: type === \"array\" && items?.type !== \"object\" ? \"multiInput\" : undefined\n }\n };\n }\n\n return properties;\n }\n\n /**\n * Resolves a JSON Schema scope (e.g. '#/properties/header/properties/id')\n * against the ISchema, returning the PropertyMetadata and the UI5 binding path.\n */\n public static resolveScope(schema: ISchema, scope: string): { meta: IPropertyMetadata | undefined, bindingPath: string, propKey: string } {\n if (!scope || !scope.startsWith(\"#/properties/\")) {\n return { meta: undefined, bindingPath: scope || \"\", propKey: scope || \"\" };\n }\n \n const pathSegments = scope.replace(\"#/properties/\", \"\").split(\"/properties/\");\n let current: Record<string, IPropertyMetadata> | undefined = schema.properties;\n let meta: IPropertyMetadata | undefined;\n \n Logger.debug(\"[MetaUI SchemaNormalizer]\", `Resolving scope '${scope}' with segments: ${JSON.stringify(pathSegments)}`, \"SchemaNormalizer\");\n Logger.debug(\"[MetaUI SchemaNormalizer]\", `Root schema keys: ${Object.keys(schema.properties || {})}`, \"SchemaNormalizer\");\n\n for (let i = 0; i < pathSegments.length; i++) {\n const segment = pathSegments[i];\n if (!current) {\n Logger.debug(\"[MetaUI SchemaNormalizer]\", `current is undefined at segment '${segment}'`, \"SchemaNormalizer\");\n meta = undefined;\n break;\n }\n meta = current[segment];\n Logger.debug(\"[MetaUI SchemaNormalizer]\", `Segment '${segment}' resolved to meta: ${!!meta}. Available keys in current: ${Object.keys(current)}`, \"SchemaNormalizer\");\n if (i < pathSegments.length - 1) {\n current = meta?.properties;\n }\n }\n \n const bindingPath = pathSegments.join(\"/\");\n const propKey = scope.replace(\"#/properties/\", \"\"); // The original raw string for logging\n \n return {\n meta,\n bindingPath,\n propKey\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SchemaNormalizer-dbg.js","names":["Logger","___utils_Logger","SchemaNormalizer","canHandle","rawSchema","build","targetDefinition","normalize","data","schemaObj","trim","JSON","parse","e","msg","message","error","Error","Array","isArray","inferSchemaFromData","normalized","title","type","items","layoutStrategy","uiLayout","additionalProperties","targetProperties","properties","inferred","deepMergeProperties","requiredKeys","required","normalizeProperties","normalizePropertyMetadata","base","override","merged","key","Object","keys","overrideVal","baseVal","normalizedProps","isRequired","includes","prop","keyName","$ref","ui","label","generateLabel","isKey","readOnly","widget","valueHelp","enum","undefined","visibleOn","enabledOn","format","validators","formatter","args","rows","fullWidth","dialogButtonText","maxLength","minLength","minimum","maximum","pattern","precision","scale","multipleOf","name","spaced","replace","split","filter","w","length","map","word","charAt","toUpperCase","slice","toLowerCase","join","schema","inferPropertiesFromObject","obj","val","nestedProps","resolveScope","scope","startsWith","meta","bindingPath","propKey","pathSegments","current","debug","stringify","i","segment","__exports","__esModule"],"sources":["SchemaNormalizer.ts"],"sourcesContent":["/**\n * @file SchemaNormalizer.ts\n * @description Transforms and validates incoming JSON payloads into the strict v2 ISchema dictionary matrix.\n */\n\nimport { ISchema, IPropertyMetadata, FieldType } from \"../interfaces/ISchema\";\nimport { ISchemaBuilderPlugin } from \"../interfaces/ISchemaBuilderPlugin\";\nimport { Logger } from \"../utils/Logger\";\n\nexport class SchemaNormalizer implements ISchemaBuilderPlugin {\n\n /**\n * ISchemaBuilderPlugin Contract\n */\n public canHandle(rawSchema: unknown): boolean {\n // Fallback for native ISchemas or data inference.\n // It always returns true because it is the final fallback builder in the registry.\n return true;\n }\n\n /**\n * ISchemaBuilderPlugin Contract\n */\n public build(rawSchema: unknown, targetDefinition?: string): ISchema {\n return SchemaNormalizer.normalize(rawSchema);\n }\n\n /**\n * Validates that the provided raw payload conforms to the required ISchema structures.\n */\n public static normalize(rawSchema?: unknown, data?: unknown): ISchema {\n let schemaObj = rawSchema;\n\n if (typeof schemaObj === \"string\") {\n if (!schemaObj.trim()) {\n schemaObj = null;\n } else {\n try {\n schemaObj = JSON.parse(schemaObj);\n } catch (e) {\n const msg = \"Failed to parse schema string: \" + (e as Error).message;\n Logger.error(\"[MetaUI SchemaNormalizer]\", msg);\n throw new Error(msg);\n }\n }\n }\n\n if (!schemaObj || typeof schemaObj !== 'object' || Array.isArray(schemaObj)) {\n return this.inferSchemaFromData(data);\n }\n\n try {\n // It is an object. Ensure it conforms to v2 structure.\n const normalized: ISchema = {\n title: schemaObj.title,\n type: schemaObj.type || (schemaObj.items ? \"array\" : \"object\"),\n layoutStrategy: schemaObj.layoutStrategy,\n uiLayout: schemaObj.uiLayout,\n additionalProperties: schemaObj.additionalProperties\n };\n\n let targetProperties = schemaObj.properties || {};\n\n if (schemaObj.additionalProperties === true && data) {\n const inferred = this.inferSchemaFromData(data);\n if (inferred.type === \"object\" && inferred.properties) {\n targetProperties = this.deepMergeProperties(inferred.properties, targetProperties);\n } else if (inferred.type === \"array\" && inferred.items && inferred.items.properties) {\n // Array schema merging could be added here if we want full support.\n }\n }\n\n if (normalized.type === \"object\") {\n const requiredKeys = Array.isArray(schemaObj.required) ? schemaObj.required : [];\n normalized.properties = this.normalizeProperties(targetProperties, requiredKeys);\n } else if (normalized.type === \"array\") {\n // Future expansion: array deep merge\n normalized.items = this.normalizePropertyMetadata(schemaObj.items || { type: \"object\", properties: {} }, \"items\", false);\n }\n\n return normalized;\n } catch (error) {\n const msg = \"Critical error normalizing schema object: \" + (error as Error).message;\n Logger.error(\"[MetaUI SchemaNormalizer]\", msg);\n throw new Error(msg);\n }\n }\n\n /**\n * Recursively deep merges an inferred schema over a base schema.\n * @param base The base property dictionary.\n * @param override The overriding inferred dictionary.\n * @returns A new deeply merged property dictionary.\n */\n private static deepMergeProperties(base: Record<string, unknown>, override: Record<string, unknown>): Record<string, unknown> {\n const merged = { ...base };\n for (const key of Object.keys(override)) {\n const overrideVal = override[key];\n const baseVal = merged[key];\n\n if (baseVal && typeof baseVal === \"object\" && !Array.isArray(baseVal) &&\n overrideVal && typeof overrideVal === \"object\" && !Array.isArray(overrideVal)) {\n merged[key] = this.deepMergeProperties(baseVal, overrideVal);\n } else {\n merged[key] = overrideVal;\n }\n }\n return merged;\n }\n\n /**\n * Normalizes a collection of properties.\n * @param properties The raw properties map.\n * @param requiredKeys An optional array of keys that are required by the parent object.\n * @returns A map of strict IPropertyMetadata objects.\n */\n private static normalizeProperties(properties: Record<string, unknown>, requiredKeys: string[] = []): Record<string, IPropertyMetadata> {\n const normalizedProps: Record<string, IPropertyMetadata> = {};\n for (const key of Object.keys(properties)) {\n const isRequired = requiredKeys.includes(key);\n normalizedProps[key] = this.normalizePropertyMetadata(properties[key], key, isRequired);\n }\n return normalizedProps;\n }\n\n /**\n * Normalizes a single property against the ISchema specification.\n * @param prop The raw property definition.\n * @param keyName The string key name for generating default labels.\n * @param isRequired Indicates if the parent object mandated this property as required.\n * @returns A strict IPropertyMetadata instance.\n */\n private static normalizePropertyMetadata(prop: Record<string, unknown>, keyName: string, isRequired: boolean = false): IPropertyMetadata {\n const normalized: IPropertyMetadata = {\n type: (prop.type as FieldType) || \"string\",\n $ref: prop.$ref as string | undefined,\n ui: {\n label: (prop.ui as any)?.label || this.generateLabel(keyName),\n isKey: !!(prop.ui as any)?.isKey,\n readOnly: !!(prop.ui as any)?.readOnly,\n widget: (prop.ui as any)?.widget || (prop.valueHelp || prop.enum ? \"select\" : undefined),\n visibleOn: prop.ui?.visibleOn,\n enabledOn: prop.ui?.enabledOn,\n format: prop.ui?.format,\n validators: prop.ui?.validators,\n formatter: prop.ui?.formatter,\n args: prop.ui?.args,\n rows: prop.ui?.rows,\n fullWidth: prop.ui?.fullWidth,\n dialogButtonText: prop.ui?.dialogButtonText\n },\n required: isRequired || !!prop.required,\n maxLength: prop.maxLength as number,\n minLength: prop.minLength as number,\n minimum: prop.minimum,\n maximum: prop.maximum,\n pattern: prop.pattern,\n precision: prop.precision,\n scale: prop.scale,\n multipleOf: prop.multipleOf as number,\n valueHelp: prop.valueHelp,\n enum: prop.enum\n };\n\n if (normalized.type === \"object\" && prop.properties) {\n const requiredKeys = Array.isArray(prop.required) ? prop.required : [];\n normalized.properties = this.normalizeProperties(prop.properties as Record<string, unknown>, requiredKeys);\n normalized.uiLayout = prop.uiLayout;\n } else if (normalized.type === \"array\" && prop.items) {\n normalized.items = this.normalizePropertyMetadata(prop.items as Record<string, unknown>, \"items\", false);\n normalized.uiLayout = prop.uiLayout;\n }\n\n return normalized;\n }\n\n /**\n * Generates a Title Case label from camelCase or snake_case technical names.\n */\n private static generateLabel(name: string): string {\n if (!name) return \"\";\n let spaced = name.replace(/([A-Z])/g, \" $1\").replace(/_/g, \" \");\n return spaced.split(' ')\n .filter(w => w.length > 0)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ')\n .trim();\n }\n\n /**\n * Infers a v2 ISchema structure dynamically from a plain data payload.\n */\n public static inferSchemaFromData(data: unknown): ISchema {\n const schema: ISchema = { type: \"object\", properties: {}, layoutStrategy: \"compact\", title: \"\" };\n\n if (!data || typeof data !== \"object\") {\n return schema;\n }\n\n if (Array.isArray(data)) {\n schema.type = \"array\";\n if (data.length > 0 && typeof data[0] !== \"object\") {\n schema.layoutStrategy = \"compact\";\n schema.items = { type: typeof data[0] as FieldType };\n } else {\n schema.layoutStrategy = \"table\";\n schema.items = {\n type: \"object\",\n layoutStrategy: \"compact\",\n properties: data.length > 0 ? this.inferPropertiesFromObject(data[0] as Record<string, unknown>) : {}\n };\n }\n } else {\n schema.type = \"object\";\n schema.properties = this.inferPropertiesFromObject(data);\n }\n\n return schema;\n }\n\n /**\n * Infers field metadata recursively from a raw data object.\n * @param obj The raw JavaScript object.\n * @returns A dictionary of inferred IPropertyMetadata.\n */\n private static inferPropertiesFromObject(obj: Record<string, unknown>): Record<string, IPropertyMetadata> {\n const properties: Record<string, IPropertyMetadata> = {};\n if (!obj || typeof obj !== \"object\") return properties;\n\n for (const key of Object.keys(obj)) {\n const val = obj[key];\n if (val === null || val === undefined) continue;\n\n let type: FieldType = \"string\";\n let items: IPropertyMetadata | undefined;\n let nestedProps: Record<string, IPropertyMetadata> | undefined;\n\n if (typeof val === \"number\") type = \"number\";\n else if (typeof val === \"boolean\") type = \"boolean\";\n else if (Array.isArray(val)) {\n type = \"array\";\n if (val.length > 0 && typeof val[0] !== \"object\") {\n items = {\n type: typeof val[0] as FieldType\n };\n } else {\n items = {\n type: \"object\",\n properties: val.length > 0 ? this.inferPropertiesFromObject(val[0] as Record<string, unknown>) : {}\n };\n }\n } else if (typeof val === \"object\") {\n type = \"object\";\n nestedProps = this.inferPropertiesFromObject(val);\n }\n\n properties[key] = {\n type,\n items,\n properties: nestedProps,\n ui: {\n label: this.generateLabel(key),\n isKey: false,\n readOnly: false,\n widget: type === \"array\" && items?.type !== \"object\" ? \"multiInput\" : undefined\n }\n };\n }\n\n return properties;\n }\n\n /**\n * Resolves a JSON Schema scope (e.g. '#/properties/header/properties/id')\n * against the ISchema, returning the PropertyMetadata and the UI5 binding path.\n */\n public static resolveScope(schema: ISchema, scope: string): { meta: IPropertyMetadata | undefined, bindingPath: string, propKey: string } {\n if (!scope || !scope.startsWith(\"#/properties/\")) {\n return { meta: undefined, bindingPath: scope || \"\", propKey: scope || \"\" };\n }\n \n const pathSegments = scope.replace(\"#/properties/\", \"\").split(\"/properties/\");\n let current: Record<string, IPropertyMetadata> | undefined = schema.properties;\n let meta: IPropertyMetadata | undefined;\n \n Logger.debug(\"[MetaUI SchemaNormalizer]\", `Resolving scope '${scope}' with segments: ${JSON.stringify(pathSegments)}`, \"SchemaNormalizer\");\n Logger.debug(\"[MetaUI SchemaNormalizer]\", `Root schema keys: ${Object.keys(schema.properties || {})}`, \"SchemaNormalizer\");\n\n for (let i = 0; i < pathSegments.length; i++) {\n const segment = pathSegments[i];\n if (!current) {\n Logger.debug(\"[MetaUI SchemaNormalizer]\", `current is undefined at segment '${segment}'`, \"SchemaNormalizer\");\n meta = undefined;\n break;\n }\n meta = current[segment];\n Logger.debug(\"[MetaUI SchemaNormalizer]\", `Segment '${segment}' resolved to meta: ${!!meta}. Available keys in current: ${Object.keys(current)}`, \"SchemaNormalizer\");\n if (i < pathSegments.length - 1) {\n current = meta?.properties;\n }\n }\n \n const bindingPath = pathSegments.join(\"/\");\n const propKey = scope.replace(\"#/properties/\", \"\"); // The original raw string for logging\n \n return {\n meta,\n bindingPath,\n propKey\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,11 +9,11 @@ declare module "nz/co/siliconst/ui5/metaui/core/SchemaNormalizer" {
|
|
|
9
9
|
/**
|
|
10
10
|
* ISchemaBuilderPlugin Contract
|
|
11
11
|
*/
|
|
12
|
-
canHandle(rawSchema:
|
|
12
|
+
canHandle(rawSchema: unknown): boolean;
|
|
13
13
|
/**
|
|
14
14
|
* ISchemaBuilderPlugin Contract
|
|
15
15
|
*/
|
|
16
|
-
build(rawSchema:
|
|
16
|
+
build(rawSchema: unknown, targetDefinition?: string): ISchema;
|
|
17
17
|
/**
|
|
18
18
|
* Validates that the provided raw payload conforms to the required ISchema structures.
|
|
19
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaNormalizer.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kDAAkD,CAAC;IAClE;;;OAGG;IAEH,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAa,MAAM,+CAA+C,CAAC;IACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;IAGlG,MAAa,gBAAiB,YAAW,oBAAoB;QAEzD;;WAEG;QACI,SAAS,CAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"SchemaNormalizer.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kDAAkD,CAAC;IAClE;;;OAGG;IAEH,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAa,MAAM,+CAA+C,CAAC;IACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;IAGlG,MAAa,gBAAiB,YAAW,oBAAoB;QAEzD;;WAEG;QACI,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO;QAM7C;;WAEG;QACI,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO;QAIpE;;WAEG;eACW,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO;QA0DrE;;;;;WAKG;QACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;QAgBlC;;;;;WAKG;QACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;QASlC;;;;;;WAMG;QACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;QA4CxC;;WAEG;QACH,OAAO,CAAC,MAAM,CAAC,aAAa;QAU5B;;WAEG;eACW,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;QA4BzD;;;;WAIG;QACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;QA+CxC;;;WAGG;eACW,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE;KAmC5I;CAEA"}
|