@siliconst/metaui 1.4.21 → 1.4.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js +22 -20
  4. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js.map +1 -1
  5. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts +3 -3
  6. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts.map +1 -1
  7. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js +1 -1
  8. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js.map +1 -1
  9. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.ts +24 -16
  10. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js.map +1 -1
  11. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js.map +1 -1
  12. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.ts +2 -2
  13. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js +111 -0
  14. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js.map +1 -0
  15. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts +95 -0
  16. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts.map +1 -0
  17. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js +2 -0
  18. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js.map +1 -0
  19. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.ts +101 -0
  20. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -1
  21. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -1
  22. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +1 -1
  23. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -1
  24. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts.map +1 -1
  25. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -1
  26. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +2 -1
  27. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +2 -2
  28. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -1
  29. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +1 -1
  30. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -1
  31. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +3 -3
  32. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +47 -47
  33. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  34. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +6 -2
  35. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  37. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  38. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +62 -66
  39. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +0 -9
  40. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +0 -9
  42. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +1 -1
  44. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -1
  45. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +3 -9
  46. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +0 -11
  47. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -1
  48. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +0 -11
  49. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +1 -1
  51. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -1
  52. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +2 -9
  53. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +2 -7
  54. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -1
  55. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +0 -5
  56. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -1
  57. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +1 -1
  58. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +3 -7
  60. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +1 -6
  61. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +0 -5
  63. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -1
  64. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +1 -1
  65. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -1
  66. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +9 -12
  67. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +170 -74
  68. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +29 -4
  70. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  71. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +179 -79
  74. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +41 -38
  75. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +5 -3
  77. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  78. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  80. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +46 -38
  81. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +41 -2
  82. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  83. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +6 -2
  84. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  85. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  87. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +47 -2
  88. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js.map +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +1 -1
  90. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -1
  91. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +8 -7
  93. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +7 -2
  94. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  95. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +5 -2
  96. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
  97. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  99. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +10 -5
  100. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +215 -38
  101. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  102. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +21 -3
  103. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +218 -40
  107. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js +86 -0
  108. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js.map +1 -0
  109. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts +16 -0
  110. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts.map +1 -0
  111. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js +2 -0
  112. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js.map +1 -0
  113. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.ts +82 -0
  114. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js +142 -0
  115. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js.map +1 -0
  116. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts +24 -0
  117. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts.map +1 -0
  118. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js +2 -0
  119. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js.map +1 -0
  120. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.ts +147 -0
  121. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +8 -0
  122. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -1
  123. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -1
  124. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -1
  126. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +7 -0
  127. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +153 -50
  128. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  129. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +15 -0
  130. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  131. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  132. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  133. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +164 -53
  134. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js +310 -0
  135. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js.map +1 -0
  136. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.d.ts +73 -0
  137. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.d.ts.map +1 -0
  138. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.js +2 -0
  139. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.js.map +1 -0
  140. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.ts +307 -0
  141. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +35 -14
  142. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  143. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  144. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  145. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +40 -15
  147. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +15 -3
  148. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -1
  150. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +1 -1
  151. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
  152. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +15 -1
  153. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +82 -16
  154. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  155. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +16 -0
  156. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  157. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js +1 -1
  158. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  159. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +89 -17
  160. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
  161. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +12 -1
  162. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
  163. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +13 -1
  164. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin-dbg.js +2 -0
  165. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin-dbg.js.map +1 -0
  166. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.d.ts +50 -0
  167. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.d.ts.map +1 -0
  168. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.js +2 -0
  169. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.js.map +1 -0
  170. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.ts +49 -0
  171. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  172. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +23 -1
  173. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  174. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +27 -1
  175. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +31 -36
  176. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  177. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  178. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
  179. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  180. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +26 -29
  181. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +47 -11
  182. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  183. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
  184. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  185. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  186. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +48 -12
  187. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +74 -58
  188. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  189. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js +3 -2
  190. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js.map +1 -1
  191. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts.map +1 -1
  192. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js +1 -1
  193. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js.map +1 -1
  194. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts +3 -2
  195. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.map +1 -1
  196. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js.map +1 -1
  197. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.ts +3 -3
  198. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js +2 -1
  199. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js.map +1 -1
  200. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts +1 -1
  201. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts.map +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js +1 -1
  203. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js.map +1 -1
  204. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.ts +4 -3
  205. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js +2 -2
  206. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js.map +1 -1
  207. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js.map +1 -1
  208. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.ts +2 -2
  209. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js +12 -8
  210. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js.map +1 -1
  211. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts.map +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js +1 -1
  213. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js.map +1 -1
  214. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts +15 -11
  215. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js +20 -12
  216. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js.map +1 -1
  217. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts +4 -4
  218. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts.map +1 -1
  219. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js +1 -1
  220. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js.map +1 -1
  221. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.ts +24 -16
  222. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js +18 -11
  223. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js.map +1 -1
  224. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts +4 -4
  225. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts.map +1 -1
  226. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js.map +1 -1
  228. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.ts +22 -15
  229. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js +24 -100
  230. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js.map +1 -1
  231. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts +8 -72
  232. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts.map +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js +1 -1
  234. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js.map +1 -1
  235. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts +45 -108
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -1
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -1
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +2 -1
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +24 -18
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +1 -1
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +23 -21
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +5 -5
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +1 -1
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -1
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +7 -7
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +129 -9
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +46 -10
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +145 -15
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +35 -14
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +1 -1
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +38 -14
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +4 -4
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +1 -1
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -1
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +5 -5
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +69 -20
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +2 -1
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -1
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +77 -21
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +3 -3
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +1 -1
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +5 -5
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +3 -3
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +1 -1
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +5 -5
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js +1 -0
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js.map +1 -1
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts.map +1 -1
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js +1 -1
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js.map +1 -1
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.ts +6 -5
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +8 -3
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +1 -1
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +10 -5
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js +3 -3
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js.map +1 -1
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts +1 -1
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts.map +1 -1
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js +1 -1
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js.map +1 -1
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.ts +4 -4
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +3 -3
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +1 -1
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +5 -5
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +4 -4
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +1 -1
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +5 -5
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js +3 -3
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js.map +1 -1
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts +1 -1
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts.map +1 -1
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js +1 -1
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js.map +1 -1
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.ts +4 -4
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +1 -1
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -1
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +7 -6
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts +1 -1
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +9 -8
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +2 -2
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +1 -1
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +3 -3
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +36 -21
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +1 -1
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +40 -23
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +9 -6
  364. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
  365. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +1 -1
  366. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
  367. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +1 -1
  368. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
  369. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +10 -8
  370. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js +3 -3
  371. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js.map +1 -1
  372. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts +1 -1
  373. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts.map +1 -1
  374. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js +1 -1
  375. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js.map +1 -1
  376. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.ts +4 -4
  377. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +3 -3
  378. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  379. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +1 -1
  380. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  381. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  382. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  383. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +5 -5
  384. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +29 -12
  385. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js.map +1 -1
  386. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts +5 -1
  387. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts.map +1 -1
  388. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js +1 -1
  389. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js.map +1 -1
  390. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts +30 -10
  391. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +4 -4
  392. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  393. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +1 -1
  394. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -1
  395. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  396. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  397. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +5 -5
  398. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +4 -4
  399. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  400. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +1 -1
  401. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -1
  402. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  403. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  404. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +5 -5
  405. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +3 -3
  406. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  407. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +1 -1
  408. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  409. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  410. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  411. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +4 -4
  412. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +3 -3
  413. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -1
  414. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts +1 -1
  415. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts.map +1 -1
  416. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +1 -1
  417. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -1
  418. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +5 -5
  419. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +3 -3
  420. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  421. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +1 -1
  422. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -1
  423. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  424. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  425. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +4 -4
  426. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +2 -2
  427. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  428. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +1 -1
  429. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  430. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  431. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  432. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +3 -3
  433. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +58 -56
  434. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  435. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +2 -5
  436. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -1
  437. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  438. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  439. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +66 -55
  440. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +3 -3
  441. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  442. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +1 -1
  443. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  444. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  445. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  446. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +4 -4
  447. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +4 -4
  448. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  449. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +1 -1
  450. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  451. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  452. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  453. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +5 -5
  454. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
  455. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts.map +1 -1
  456. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
  457. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +5 -3
  458. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +2 -1
  459. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -1
  460. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -1
  461. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js +1 -1
  462. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -1
  463. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +6 -3
  464. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +30 -9
  465. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -1
  466. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +2 -2
  467. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -1
  468. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js +1 -1
  469. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -1
  470. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +41 -13
  471. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
  472. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts.map +1 -1
  473. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
  474. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +5 -3
  475. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin-dbg.js +41 -0
  476. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin-dbg.js.map +1 -0
  477. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.d.ts +24 -0
  478. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.d.ts.map +1 -0
  479. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.js +2 -0
  480. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.js.map +1 -0
  481. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.ts +34 -0
  482. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin-dbg.js +41 -0
  483. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin-dbg.js.map +1 -0
  484. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.d.ts +24 -0
  485. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.d.ts.map +1 -0
  486. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.js +2 -0
  487. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.js.map +1 -0
  488. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.ts +34 -0
  489. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin-dbg.js +52 -0
  490. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin-dbg.js.map +1 -0
  491. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.d.ts +30 -0
  492. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.d.ts.map +1 -0
  493. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.js +2 -0
  494. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.js.map +1 -0
  495. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.ts +45 -0
  496. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin-dbg.js +52 -0
  497. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin-dbg.js.map +1 -0
  498. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.d.ts +30 -0
  499. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.d.ts.map +1 -0
  500. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.js +2 -0
  501. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.js.map +1 -0
  502. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.ts +45 -0
  503. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin-dbg.js +41 -0
  504. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin-dbg.js.map +1 -0
  505. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.d.ts +24 -0
  506. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.d.ts.map +1 -0
  507. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.js +2 -0
  508. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.js.map +1 -0
  509. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.ts +34 -0
  510. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin-dbg.js +40 -0
  511. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin-dbg.js.map +1 -0
  512. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.d.ts +28 -0
  513. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.d.ts.map +1 -0
  514. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.js +2 -0
  515. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.js.map +1 -0
  516. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.ts +34 -0
  517. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin-dbg.js +40 -0
  518. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin-dbg.js.map +1 -0
  519. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.d.ts +28 -0
  520. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.d.ts.map +1 -0
  521. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.js +2 -0
  522. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.js.map +1 -0
  523. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.ts +34 -0
  524. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin-dbg.js +40 -0
  525. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin-dbg.js.map +1 -0
  526. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.d.ts +28 -0
  527. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.d.ts.map +1 -0
  528. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.js +2 -0
  529. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.js.map +1 -0
  530. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.ts +34 -0
  531. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin-dbg.js +40 -0
  532. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin-dbg.js.map +1 -0
  533. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.d.ts +28 -0
  534. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.d.ts.map +1 -0
  535. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.js +2 -0
  536. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.js.map +1 -0
  537. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.ts +34 -0
  538. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider-dbg.js +33 -0
  539. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider-dbg.js.map +1 -0
  540. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.d.ts +14 -0
  541. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.d.ts.map +1 -0
  542. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.js +2 -0
  543. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.js.map +1 -0
  544. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.ts +24 -0
  545. package/src/nz/co/siliconst/ui5/metaui/utils/Logger-dbg.js.map +1 -1
  546. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts.map +1 -1
  547. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js.map +1 -1
  548. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.ts +1 -1
  549. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +0 -75
  550. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +0 -1
  551. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +0 -47
  552. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +0 -1
  553. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +0 -2
  554. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +0 -1
  555. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +0 -72
@@ -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 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
+ {"version":3,"file":"PluginRegistry.js","names":["SCHEMA_TYPE","___constants_MetaUIConstants","WIDGET_TYPE","LAYOUT_STRATEGY","Logger","___utils_Logger","PluginRegistry","fieldIndex","actionIndex","layoutIndex","policyConditionIndex","policyEffectIndex","activePromises","constructor","this","registerPluginPath","STRING","undefined","NUMBER","INTEGER","DATE","BOOLEAN","ARRAY","OBJECT","DICTIONARY_MAP","REFERENCE","TIME","DATETIME","SWITCH","STEP","SELECT","TEXT_AREA","CODE_EDITOR","LINK","PASSWORD","EMAIL","FILE_UPLOADER","MULTI_SELECT","MULTI_INPUT","SLIDER","RATING","MESSAGE_STRIP","CAMERA","SIGNATURE","LOCATION","SCANNER","VOICE_INPUT","RICH_TEXT","URL_BUTTON","SUBMIT_BUTTON","ODATA_SELECT","REMOTE_DROPDOWN","LIVE_SEARCH","REMOTE_VALUE_HELP","registerLayoutPath","FORM","TABLE","WIZARD","COMPACT","registerPolicyConditionPath","registerPolicyEffectPath","getInstance","instance","type","widgetName","path","key","registerActionPath","actionName","strategy","conditionKey","effectName","getFieldPath","Error","getLayoutPath","getPathsToLoad","schema","pathsToLoad","Set","layoutStrategy","add","scanProperties","props","prop","ui","widget","e","msg","message","error","properties","items","uiPolicies","policy","condition","Object","keys","effect","preloadDependencies","promises","Array","from","map","Promise","resolve","reject","sap","require","Module","extractConstructor","err","all","mod","default","getPluginScore","Constructor","layoutScore","isPluginNativelyWide","isNativelyWide","getPlugin","PluginClass","getLayout","LayoutClass","getPolicyConditionPlugin","getPolicyEffectPlugin","__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 { SCHEMA_TYPE, WIDGET_TYPE, LAYOUT_STRATEGY } from \"../constants/MetaUIConstants\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { IPolicyConditionPlugin, IPolicyEffectPlugin } from \"../interfaces/IPolicyPlugin\";\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 policyConditionIndex: Record<string, string> = {};\n private policyEffectIndex: Record<string, string> = {};\n\n private activePromises: Record<string, Promise<unknown>> = {};\n\n private constructor() {\n // Core Mappings\n this.registerPluginPath(SCHEMA_TYPE.STRING, undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.NUMBER, undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.INTEGER, undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.DATE, undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin\");\n this.registerPluginPath(SCHEMA_TYPE.BOOLEAN, undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.ARRAY, undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.OBJECT, undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, \"default\", \"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.OBJECT, WIDGET_TYPE.DICTIONARY_MAP, \"nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.OBJECT, WIDGET_TYPE.REFERENCE, \"nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin\");\n\n // Widget Overrides\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.TIME, \"nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.DATETIME, \"nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin\");\n this.registerPluginPath(SCHEMA_TYPE.BOOLEAN, WIDGET_TYPE.SWITCH, \"nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.NUMBER, WIDGET_TYPE.STEP, \"nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.SELECT, \"nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.TEXT_AREA, \"nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.CODE_EDITOR, \"nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.LINK, \"nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.PASSWORD, \"nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.EMAIL, \"nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin\");\n \n // Phase 1 Mappings\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.FILE_UPLOADER, \"nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.ARRAY, WIDGET_TYPE.MULTI_SELECT, \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.ARRAY, WIDGET_TYPE.MULTI_INPUT, \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.NUMBER, WIDGET_TYPE.SLIDER, \"nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.NUMBER, WIDGET_TYPE.RATING, \"nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.MESSAGE_STRIP, \"nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin\");\n\n // Phase 5 Mappings (Hardware)\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.CAMERA, \"nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.SIGNATURE, \"nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin\");\n this.registerPluginPath(SCHEMA_TYPE.OBJECT, WIDGET_TYPE.LOCATION, \"nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.SCANNER, \"nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.VOICE_INPUT, \"nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.RICH_TEXT, \"nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin\");\n\n // Actions & Datasources\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.URL_BUTTON, \"nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.SUBMIT_BUTTON, \"nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.ODATA_SELECT, \"nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.REMOTE_DROPDOWN, \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.LIVE_SEARCH, \"nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin\");\n this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.REMOTE_VALUE_HELP, \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin\");\n\n // Layouts\n this.registerLayoutPath(LAYOUT_STRATEGY.FORM, \"nz/co/siliconst/ui5/metaui/layouts/FormLayout\");\n this.registerLayoutPath(LAYOUT_STRATEGY.TABLE, \"nz/co/siliconst/ui5/metaui/layouts/TableLayout\");\n this.registerLayoutPath(LAYOUT_STRATEGY.WIZARD, \"nz/co/siliconst/ui5/metaui/layouts/WizardLayout\");\n this.registerLayoutPath(LAYOUT_STRATEGY.COMPACT, \"nz/co/siliconst/ui5/metaui/layouts/CompactLayout\");\n\n // Policy Condition Plugins\n this.registerPolicyConditionPath(\"NumericGreaterThan\", \"nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin\");\n this.registerPolicyConditionPath(\"NumericLessThan\", \"nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin\");\n this.registerPolicyConditionPath(\"StringEquals\", \"nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin\");\n this.registerPolicyConditionPath(\"IsNull\", \"nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin\");\n this.registerPolicyConditionPath(\"IsNotNull\", \"nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin\");\n\n // Policy Effect Plugins\n this.registerPolicyEffectPath(\"Show\", \"nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin\");\n this.registerPolicyEffectPath(\"Hide\", \"nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin\");\n this.registerPolicyEffectPath(\"Validate\", \"nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin\");\n this.registerPolicyEffectPath(\"Invalidate\", \"nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin\");\n this.registerPolicyEffectPath(\"Require\", \"nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin\");\n this.registerPolicyEffectPath(\"Optional\", \"nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin\");\n this.registerPolicyEffectPath(\"Enable\", \"nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin\");\n this.registerPolicyEffectPath(\"Disable\", \"nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin\");\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 public registerPolicyConditionPath(conditionKey: string, path: string): void {\n this.policyConditionIndex[conditionKey] = path;\n }\n\n public registerPolicyEffectPath(effectName: string, path: string): void {\n this.policyEffectIndex[effectName] = 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 === SCHEMA_TYPE.ARRAY ? LAYOUT_STRATEGY.TABLE : LAYOUT_STRATEGY.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 || SCHEMA_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 // 3. Gather Policy Plugins\n if (schema.uiPolicies) {\n for (const policy of schema.uiPolicies) {\n if (policy.condition) {\n for (const key of Object.keys(policy.condition)) {\n if (this.policyConditionIndex[key]) {\n pathsToLoad.add(this.policyConditionIndex[key]);\n }\n }\n }\n if (policy.effect && this.policyEffectIndex[policy.effect]) {\n pathsToLoad.add(this.policyEffectIndex[policy.effect]);\n }\n }\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) => {\n if (!this.extractConstructor(Module)) {\n Logger.error(`[MetaUI PluginRegistry] Module ${path} loaded successfully but exported no valid constructor.`);\n delete this.activePromises[path];\n reject(new Error(`Invalid module export: ${path}`));\n } else {\n resolve(Module);\n }\n }, \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): unknown {\n if (!Module) return null;\n if (typeof Module === \"function\") return Module;\n const mod = Module as Record<string, unknown>;\n if (mod.default && typeof mod.default === \"function\") return mod.default;\n \n // Handle namespace exports (e.g. { FormLayout: class... })\n const keys = Object.keys(mod);\n for (const key of keys) {\n if (typeof mod[key] === \"function\") {\n return mod[key];\n }\n }\n return null;\n }\n\n public getPluginScore(type: FieldType, widgetName?: string): number {\n try {\n const path = this.getFieldPath(type, widgetName);\n const Module = sap.ui.require(path);\n const Constructor = this.extractConstructor(Module) as Record<string, unknown>;\n if (Constructor && typeof Constructor.layoutScore === \"number\") {\n return Constructor.layoutScore as number;\n }\n } catch (e) {\n // Ignore if module not loaded or mapping missing, fallback to 1\n }\n return 1;\n }\n\n public isPluginNativelyWide(type: FieldType, widgetName?: string): boolean {\n try {\n const path = this.getFieldPath(type, widgetName);\n const Module = sap.ui.require(path);\n const Constructor = this.extractConstructor(Module) as Record<string, unknown>;\n if (Constructor && typeof Constructor.isNativelyWide === \"boolean\") {\n return Constructor.isNativelyWide as boolean;\n }\n } catch (e) {\n // Ignore errors, default false\n }\n return false;\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) as new () => IPlugin;\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) as new () => ILayoutManager;\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 /**\n * Gets a specific condition plugin.\n */\n public getPolicyConditionPlugin(conditionKey: string): IPolicyConditionPlugin | undefined {\n const path = this.policyConditionIndex[conditionKey];\n if (!path) return undefined;\n \n const Module = sap.ui.require(path);\n const PluginClass = this.extractConstructor(Module) as new () => IPolicyConditionPlugin;\n if (!PluginClass) return undefined;\n \n return new PluginClass();\n }\n\n /**\n * Gets a specific effect plugin.\n */\n public getPolicyEffectPlugin(effectName: string): IPolicyEffectPlugin | undefined {\n const path = this.policyEffectIndex[effectName];\n if (!path) return undefined;\n \n const Module = sap.ui.require(path);\n const PluginClass = this.extractConstructor(Module) as new () => IPolicyEffectPlugin;\n if (!PluginClass) return undefined;\n \n return new PluginClass();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,9 @@
7
7
 
8
8
  import { IPlugin } from "../interfaces/IPlugin";
9
9
  import { FieldType, ISchema, IPropertyMetadata } from "../interfaces/ISchema";
10
+ import { SCHEMA_TYPE, WIDGET_TYPE, LAYOUT_STRATEGY } from "../constants/MetaUIConstants";
10
11
  import { ILayoutManager } from "../interfaces/ILayoutManager";
12
+ import { IPolicyConditionPlugin, IPolicyEffectPlugin } from "../interfaces/IPolicyPlugin";
11
13
  import { Logger } from "../utils/Logger";
12
14
  import { DefaultLayoutGenerator } from "./DefaultLayoutGenerator";
13
15
 
@@ -18,62 +20,82 @@ export class PluginRegistry {
18
20
  private actionIndex: Record<string, string> = {};
19
21
  private layoutIndex: Record<string, string> = {};
20
22
 
23
+ private policyConditionIndex: Record<string, string> = {};
24
+ private policyEffectIndex: Record<string, string> = {};
25
+
21
26
  private activePromises: Record<string, Promise<unknown>> = {};
22
27
 
23
28
  private constructor() {
24
29
  // Core Mappings
25
- this.registerPluginPath("string", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin");
26
- this.registerPluginPath("number", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin");
27
- this.registerPluginPath("integer", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin");
28
- this.registerPluginPath("date", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin");
29
- this.registerPluginPath("boolean", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin");
30
- this.registerPluginPath("array", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin");
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");
30
+ this.registerPluginPath(SCHEMA_TYPE.STRING, undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin");
31
+ this.registerPluginPath(SCHEMA_TYPE.NUMBER, undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin");
32
+ this.registerPluginPath(SCHEMA_TYPE.INTEGER, undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin");
33
+ this.registerPluginPath(SCHEMA_TYPE.DATE, undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin");
34
+ this.registerPluginPath(SCHEMA_TYPE.BOOLEAN, undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin");
35
+ this.registerPluginPath(SCHEMA_TYPE.ARRAY, undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin");
36
+ this.registerPluginPath(SCHEMA_TYPE.OBJECT, undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin");
37
+ this.registerPluginPath(SCHEMA_TYPE.STRING, "default", "nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin");
38
+ this.registerPluginPath(SCHEMA_TYPE.OBJECT, WIDGET_TYPE.DICTIONARY_MAP, "nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin");
39
+ this.registerPluginPath(SCHEMA_TYPE.OBJECT, WIDGET_TYPE.REFERENCE, "nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin");
35
40
 
36
41
  // Widget Overrides
37
- this.registerPluginPath("string", "time", "nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin");
38
- this.registerPluginPath("string", "datetime", "nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin");
39
- this.registerPluginPath("boolean", "switch", "nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin");
40
- this.registerPluginPath("number", "step", "nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin");
41
- this.registerPluginPath("string", "select", "nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin");
42
- this.registerPluginPath("string", "textArea", "nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin");
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");
42
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.TIME, "nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin");
43
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.DATETIME, "nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin");
44
+ this.registerPluginPath(SCHEMA_TYPE.BOOLEAN, WIDGET_TYPE.SWITCH, "nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin");
45
+ this.registerPluginPath(SCHEMA_TYPE.NUMBER, WIDGET_TYPE.STEP, "nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin");
46
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.SELECT, "nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin");
47
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.TEXT_AREA, "nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin");
48
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.CODE_EDITOR, "nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin");
49
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.LINK, "nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin");
50
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.PASSWORD, "nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin");
51
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.EMAIL, "nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin");
47
52
 
48
53
  // Phase 1 Mappings
49
- this.registerPluginPath("string", "fileUploader", "nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin");
50
- this.registerPluginPath("array", "multiSelect", "nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin");
51
- this.registerPluginPath("array", "multiInput", "nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin");
52
- this.registerPluginPath("number", "slider", "nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin");
53
- this.registerPluginPath("number", "rating", "nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin");
54
- this.registerPluginPath("string", "messageStrip", "nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin");
54
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.FILE_UPLOADER, "nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin");
55
+ this.registerPluginPath(SCHEMA_TYPE.ARRAY, WIDGET_TYPE.MULTI_SELECT, "nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin");
56
+ this.registerPluginPath(SCHEMA_TYPE.ARRAY, WIDGET_TYPE.MULTI_INPUT, "nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin");
57
+ this.registerPluginPath(SCHEMA_TYPE.NUMBER, WIDGET_TYPE.SLIDER, "nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin");
58
+ this.registerPluginPath(SCHEMA_TYPE.NUMBER, WIDGET_TYPE.RATING, "nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin");
59
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.MESSAGE_STRIP, "nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin");
55
60
 
56
61
  // Phase 5 Mappings (Hardware)
57
- this.registerPluginPath("string", "camera", "nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin");
58
- this.registerPluginPath("string", "signature", "nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin");
59
- this.registerPluginPath("object", "location", "nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin");
60
- this.registerPluginPath("string", "scanner", "nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin");
61
- this.registerPluginPath("string", "voiceInput", "nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin");
62
- this.registerPluginPath("string", "richText", "nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin");
62
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.CAMERA, "nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin");
63
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.SIGNATURE, "nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin");
64
+ this.registerPluginPath(SCHEMA_TYPE.OBJECT, WIDGET_TYPE.LOCATION, "nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin");
65
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.SCANNER, "nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin");
66
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.VOICE_INPUT, "nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin");
67
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.RICH_TEXT, "nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin");
63
68
 
64
69
  // Actions & Datasources
65
- this.registerPluginPath("string", "urlButton", "nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin");
66
- this.registerPluginPath("string", "submitButton", "nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin");
67
- this.registerPluginPath("string", "odataSelect", "nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin");
68
- this.registerPluginPath("string", "remoteDropdown", "nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin");
69
- this.registerPluginPath("string", "liveSearch", "nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin");
70
- this.registerPluginPath("string", "remoteValueHelp", "nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin");
70
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.URL_BUTTON, "nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin");
71
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.SUBMIT_BUTTON, "nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin");
72
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.ODATA_SELECT, "nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin");
73
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.REMOTE_DROPDOWN, "nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin");
74
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.LIVE_SEARCH, "nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin");
75
+ this.registerPluginPath(SCHEMA_TYPE.STRING, WIDGET_TYPE.REMOTE_VALUE_HELP, "nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin");
71
76
 
72
77
  // Layouts
73
- this.registerLayoutPath("form", "nz/co/siliconst/ui5/metaui/layouts/FormLayout");
74
- this.registerLayoutPath("table", "nz/co/siliconst/ui5/metaui/layouts/TableLayout");
75
- this.registerLayoutPath("wizard", "nz/co/siliconst/ui5/metaui/layouts/WizardLayout");
76
- this.registerLayoutPath("compact", "nz/co/siliconst/ui5/metaui/layouts/CompactLayout");
78
+ this.registerLayoutPath(LAYOUT_STRATEGY.FORM, "nz/co/siliconst/ui5/metaui/layouts/FormLayout");
79
+ this.registerLayoutPath(LAYOUT_STRATEGY.TABLE, "nz/co/siliconst/ui5/metaui/layouts/TableLayout");
80
+ this.registerLayoutPath(LAYOUT_STRATEGY.WIZARD, "nz/co/siliconst/ui5/metaui/layouts/WizardLayout");
81
+ this.registerLayoutPath(LAYOUT_STRATEGY.COMPACT, "nz/co/siliconst/ui5/metaui/layouts/CompactLayout");
82
+
83
+ // Policy Condition Plugins
84
+ this.registerPolicyConditionPath("NumericGreaterThan", "nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin");
85
+ this.registerPolicyConditionPath("NumericLessThan", "nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin");
86
+ this.registerPolicyConditionPath("StringEquals", "nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin");
87
+ this.registerPolicyConditionPath("IsNull", "nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin");
88
+ this.registerPolicyConditionPath("IsNotNull", "nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin");
89
+
90
+ // Policy Effect Plugins
91
+ this.registerPolicyEffectPath("Show", "nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin");
92
+ this.registerPolicyEffectPath("Hide", "nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin");
93
+ this.registerPolicyEffectPath("Validate", "nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin");
94
+ this.registerPolicyEffectPath("Invalidate", "nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin");
95
+ this.registerPolicyEffectPath("Require", "nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin");
96
+ this.registerPolicyEffectPath("Optional", "nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin");
97
+ this.registerPolicyEffectPath("Enable", "nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin");
98
+ this.registerPolicyEffectPath("Disable", "nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin");
77
99
  }
78
100
 
79
101
  public static getInstance(): PluginRegistry {
@@ -96,6 +118,14 @@ export class PluginRegistry {
96
118
  this.layoutIndex[strategy] = path;
97
119
  }
98
120
 
121
+ public registerPolicyConditionPath(conditionKey: string, path: string): void {
122
+ this.policyConditionIndex[conditionKey] = path;
123
+ }
124
+
125
+ public registerPolicyEffectPath(effectName: string, path: string): void {
126
+ this.policyEffectIndex[effectName] = path;
127
+ }
128
+
99
129
  private getFieldPath(type: FieldType, widgetName?: string): string {
100
130
  let path;
101
131
  if (widgetName) {
@@ -129,7 +159,7 @@ export class PluginRegistry {
129
159
  const pathsToLoad = new Set<string>();
130
160
 
131
161
  // 1. Gather layout strategy
132
- const strategy = schema.layoutStrategy || (schema.type === "array" ? "table" : "form");
162
+ const strategy = schema.layoutStrategy || (schema.type === SCHEMA_TYPE.ARRAY ? LAYOUT_STRATEGY.TABLE : LAYOUT_STRATEGY.FORM);
133
163
  pathsToLoad.add(this.getLayoutPath(strategy));
134
164
 
135
165
  // 2. Recursively gather field plugins
@@ -137,7 +167,7 @@ export class PluginRegistry {
137
167
  for (const key in props) {
138
168
  const prop = props[key];
139
169
  try {
140
- pathsToLoad.add(this.getFieldPath(prop.type || "string", prop.ui?.widget));
170
+ pathsToLoad.add(this.getFieldPath(prop.type || SCHEMA_TYPE.STRING, prop.ui?.widget));
141
171
  } catch (e) {
142
172
  const msg = `[MetaUI LazyLoad] Could not find mapped plugin for field ${key}: ${(e as Error).message}`;
143
173
  Logger.error(msg);
@@ -163,6 +193,22 @@ export class PluginRegistry {
163
193
  scanProperties(schema.items.properties);
164
194
  }
165
195
 
196
+ // 3. Gather Policy Plugins
197
+ if (schema.uiPolicies) {
198
+ for (const policy of schema.uiPolicies) {
199
+ if (policy.condition) {
200
+ for (const key of Object.keys(policy.condition)) {
201
+ if (this.policyConditionIndex[key]) {
202
+ pathsToLoad.add(this.policyConditionIndex[key]);
203
+ }
204
+ }
205
+ }
206
+ if (policy.effect && this.policyEffectIndex[policy.effect]) {
207
+ pathsToLoad.add(this.policyEffectIndex[policy.effect]);
208
+ }
209
+ }
210
+ }
211
+
166
212
  return pathsToLoad;
167
213
  }
168
214
 
@@ -182,7 +228,15 @@ export class PluginRegistry {
182
228
  if (!this.activePromises[path]) {
183
229
  this.activePromises[path] = new Promise((resolve, reject) => {
184
230
  sap.ui.require([path],
185
- (Module: unknown) => resolve(Module),
231
+ (Module: unknown) => {
232
+ if (!this.extractConstructor(Module)) {
233
+ Logger.error(`[MetaUI PluginRegistry] Module ${path} loaded successfully but exported no valid constructor.`);
234
+ delete this.activePromises[path];
235
+ reject(new Error(`Invalid module export: ${path}`));
236
+ } else {
237
+ resolve(Module);
238
+ }
239
+ },
186
240
  (err: unknown) => {
187
241
  Logger.error(`Failed to lazy load module: ${path}`);
188
242
  // CRITICAL: Delete from cache so future attempts can retry the network request
@@ -201,28 +255,57 @@ export class PluginRegistry {
201
255
  /**
202
256
  * Extracts a valid constructor from a dynamically required module.
203
257
  */
204
- private extractConstructor(Module: unknown): new () => IPlugin | ILayoutManager | null {
258
+ private extractConstructor(Module: unknown): unknown {
205
259
  if (!Module) return null;
206
- if (typeof Module === "function") return Module as any;
207
- if ((Module as any).default && typeof (Module as any).default === "function") return (Module as any).default;
260
+ if (typeof Module === "function") return Module;
261
+ const mod = Module as Record<string, unknown>;
262
+ if (mod.default && typeof mod.default === "function") return mod.default;
208
263
 
209
264
  // Handle namespace exports (e.g. { FormLayout: class... })
210
- const keys = Object.keys(Module as object);
265
+ const keys = Object.keys(mod);
211
266
  for (const key of keys) {
212
- if (typeof (Module as any)[key] === "function") {
213
- return (Module as any)[key];
267
+ if (typeof mod[key] === "function") {
268
+ return mod[key];
214
269
  }
215
270
  }
216
271
  return null;
217
272
  }
218
273
 
274
+ public getPluginScore(type: FieldType, widgetName?: string): number {
275
+ try {
276
+ const path = this.getFieldPath(type, widgetName);
277
+ const Module = sap.ui.require(path);
278
+ const Constructor = this.extractConstructor(Module) as Record<string, unknown>;
279
+ if (Constructor && typeof Constructor.layoutScore === "number") {
280
+ return Constructor.layoutScore as number;
281
+ }
282
+ } catch (e) {
283
+ // Ignore if module not loaded or mapping missing, fallback to 1
284
+ }
285
+ return 1;
286
+ }
287
+
288
+ public isPluginNativelyWide(type: FieldType, widgetName?: string): boolean {
289
+ try {
290
+ const path = this.getFieldPath(type, widgetName);
291
+ const Module = sap.ui.require(path);
292
+ const Constructor = this.extractConstructor(Module) as Record<string, unknown>;
293
+ if (Constructor && typeof Constructor.isNativelyWide === "boolean") {
294
+ return Constructor.isNativelyWide as boolean;
295
+ }
296
+ } catch (e) {
297
+ // Ignore errors, default false
298
+ }
299
+ return false;
300
+ }
301
+
219
302
  /**
220
303
  * Instantiates the requested plugin for the given field type.
221
304
  */
222
305
  public getPlugin(type: FieldType, widgetName?: string): IPlugin {
223
306
  const path = this.getFieldPath(type, widgetName);
224
307
  const Module = sap.ui.require(path);
225
- const PluginClass = this.extractConstructor(Module);
308
+ const PluginClass = this.extractConstructor(Module) as new () => IPlugin;
226
309
 
227
310
  if (!PluginClass) {
228
311
  throw new Error(`[MetaUI Plugin Instantiation] Plugin ${path} was not preloaded or has no constructor!`);
@@ -237,7 +320,7 @@ export class PluginRegistry {
237
320
  public getLayout(strategy: string): ILayoutManager {
238
321
  const path = this.getLayoutPath(strategy);
239
322
  const Module = sap.ui.require(path);
240
- const LayoutClass = this.extractConstructor(Module);
323
+ const LayoutClass = this.extractConstructor(Module) as new () => ILayoutManager;
241
324
 
242
325
  if (!LayoutClass) {
243
326
  throw new Error(`[MetaUI Layout Instantiation] Layout ${path} was not preloaded or has no constructor!`);
@@ -245,4 +328,32 @@ export class PluginRegistry {
245
328
 
246
329
  return new LayoutClass();
247
330
  }
331
+
332
+ /**
333
+ * Gets a specific condition plugin.
334
+ */
335
+ public getPolicyConditionPlugin(conditionKey: string): IPolicyConditionPlugin | undefined {
336
+ const path = this.policyConditionIndex[conditionKey];
337
+ if (!path) return undefined;
338
+
339
+ const Module = sap.ui.require(path);
340
+ const PluginClass = this.extractConstructor(Module) as new () => IPolicyConditionPlugin;
341
+ if (!PluginClass) return undefined;
342
+
343
+ return new PluginClass();
344
+ }
345
+
346
+ /**
347
+ * Gets a specific effect plugin.
348
+ */
349
+ public getPolicyEffectPlugin(effectName: string): IPolicyEffectPlugin | undefined {
350
+ const path = this.policyEffectIndex[effectName];
351
+ if (!path) return undefined;
352
+
353
+ const Module = sap.ui.require(path);
354
+ const PluginClass = this.extractConstructor(Module) as new () => IPolicyEffectPlugin;
355
+ if (!PluginClass) return undefined;
356
+
357
+ return new PluginClass();
358
+ }
248
359
  }