@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
@@ -6,7 +6,7 @@
6
6
  import { ISchema, IPropertyMetadata } from "../interfaces/ISchema";
7
7
  import { ILayoutManager } from "../interfaces/ILayoutManager";
8
8
  import { IPlugin, IPluginValidationResult } from "../interfaces/IPlugin";
9
- import { ConditionEngine } from "./ConditionEngine";
9
+
10
10
  import { PluginRegistry } from "./PluginRegistry";
11
11
  import Control from "sap/ui/core/Control";
12
12
  import VBox from "sap/m/VBox";
@@ -15,6 +15,7 @@ import { Logger } from "../utils/Logger";
15
15
  import { DefaultLayoutGenerator } from "./DefaultLayoutGenerator";
16
16
  import Core from "sap/ui/core/Core";
17
17
  import Messaging from "sap/ui/core/Messaging";
18
+ import { GlobalPipeline } from "./PipelineManager";
18
19
 
19
20
  /**
20
21
  * The Engine is responsible for translating a normalized schema into a physical UI5 layout.
@@ -27,16 +28,21 @@ import Messaging from "sap/ui/core/Messaging";
27
28
  * @public
28
29
  */
29
30
  export class Engine {
30
- /** Handles dynamic conditional logic across the active form. */
31
- private conditionEngine: ConditionEngine | null = null;
31
+
32
32
 
33
33
  /** Array of all instantiated plugins generated during the current build. */
34
34
  private activePlugins: { plugin: IPlugin, path: string }[] = [];
35
35
 
36
+ /** Array of template plugins generated for table rows to prevent memory leaks during destruction. */
37
+ private templatePlugins: { plugin: IPlugin, path: string }[] = [];
38
+
36
39
  /** Deterministic scope ID injected by the host control to prevent clone collisions. */
37
40
  public engineScopeId?: string;
38
41
 
39
- private activeModel?: sap.ui.model.Model;
42
+ private activeModel?: unknown;
43
+
44
+ /** Ledger tracking local vs cross-field errors to prevent visual race conditions. */
45
+ private validationLedger: Map<string, { schemaError: string | null, policyError: string | null }> = new Map();
40
46
 
41
47
  /** Reference to the GeneratorHost that instantiated this engine, for retrieving global definitions. */
42
48
  public host?: unknown;
@@ -79,26 +85,22 @@ export class Engine {
79
85
  * @param onChange Callback fired when field values change.
80
86
  * @returns The generated root UI5 Control container.
81
87
  */
82
- public build(schema: ISchema, model: sap.ui.model.Model, modelName: string = "meta", onSubmit?: () => void, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {
83
- this.conditionEngine = new ConditionEngine(schema);
88
+ public build(schema: ISchema, model: unknown, modelName: string = "meta", onSubmit?: () => void, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {
89
+
84
90
  this.activePlugins = [];
85
91
  this.activeModel = model;
86
92
  this.engineScopeId = engineScopeId;
87
93
  this.onChange = (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => {
88
- if (this.conditionEngine && fieldKey) {
89
- this.conditionEngine.handleEvent(fieldKey, isValid);
94
+ if (fieldKey) {
95
+ this.reportSchemaError(fieldKey, isValid ? null : errorMessage || "Invalid input");
90
96
  }
97
+
91
98
  if (onChange) {
92
99
  onChange(isValid, fieldKey, errorMessage, controlId);
93
100
  }
94
101
  };
95
102
 
96
103
  try {
97
- // Intercept and synthesize a default layout if the developer/backend failed to provide one
98
- if (DefaultLayoutGenerator.ensureLayout(schema)) {
99
- Logger.warn("[MetaUI Engine] Missing 'uiLayout' array in schema. Synthesized a default layout mapping to prevent a blank render.");
100
- }
101
-
102
104
  const layoutStrategy = schema.layoutStrategy || (schema.type === "array" ? "table" : "form");
103
105
  const layoutManager = this.pluginRegistry.getLayout(layoutStrategy);
104
106
 
@@ -134,13 +136,13 @@ export class Engine {
134
136
 
135
137
  if (!isTemplate) {
136
138
  this.activePlugins.push({ plugin, path: bindingPath });
139
+ } else {
140
+ this.templatePlugins.push({ plugin, path: bindingPath });
137
141
  }
138
142
  const scopeId = isTemplate ? undefined : this.engineScopeId;
139
143
  const control = plugin.render(fieldMeta, bindingPath, modelName, scopeId, this.onChange, this.activeModel);
140
144
 
141
- if (this.conditionEngine) {
142
- this.conditionEngine.registerPlugin(bindingPath, plugin);
143
- }
145
+
144
146
 
145
147
  return control;
146
148
  } catch (error) {
@@ -163,6 +165,10 @@ export class Engine {
163
165
  */
164
166
  public generateLayout(schema: ISchema, modelName: string, bindingPath?: string): Control {
165
167
  try {
168
+ if (DefaultLayoutGenerator.ensureLayout(schema)) {
169
+ Logger.warn(`[MetaUI Engine] Missing 'uiLayout' array in sub-schema for ${bindingPath}. Synthesized a default layout mapping.`);
170
+ }
171
+
166
172
  const layoutStrategy = schema.layoutStrategy || (schema.type === "array" ? "table" : "form");
167
173
  const layoutManager = this.pluginRegistry.getLayout(layoutStrategy);
168
174
  return layoutManager.render(schema, modelName, this, undefined, bindingPath);
@@ -186,8 +192,8 @@ export class Engine {
186
192
  for (const item of this.activePlugins) {
187
193
  try {
188
194
  const result = item.plugin.validate();
189
- if (applyVisualState && typeof item.plugin.setVisualValidationState === "function") {
190
- item.plugin.setVisualValidationState(result.isValid, result.errorMessage);
195
+ if (applyVisualState) {
196
+ this.reportSchemaError(item.path, result.isValid ? null : result.errorMessage || "Invalid input");
191
197
  }
192
198
 
193
199
  if (!result.isValid) {
@@ -201,6 +207,102 @@ export class Engine {
201
207
  Logger.error(`[MetaUI Engine] Error validating plugin at ${item.path}`, (error as Error).message);
202
208
  }
203
209
  }
210
+
211
+ // 2. Recursively validate arrays via StateManager payload traversing for Table layout rows
212
+ if (this.host && typeof (this.host as any).getStateManager === "function") {
213
+ const stateManager = (this.host as any).getStateManager();
214
+ if (stateManager) {
215
+ const payload = stateManager.extractPayload();
216
+ const schema = stateManager.getSchema ? stateManager.getSchema() : (this.host as any).getParsedSchema?.();
217
+ if (payload && schema) {
218
+ const arrayErrors = this.validatePayloadArrays(schema, payload, "");
219
+ if (applyVisualState) {
220
+ arrayErrors.forEach(err => {
221
+ if (err.fieldKey) {
222
+ this.reportSchemaError(err.fieldKey, err.isValid ? null : err.errorMessage || "Invalid input");
223
+ }
224
+ });
225
+ }
226
+ errors.push(...arrayErrors.filter(e => !e.isValid));
227
+ }
228
+ }
229
+ }
230
+
231
+ return errors;
232
+ }
233
+
234
+ public onArrayMutated(arrayPath: string): void {
235
+ if (this.host && typeof (this.host as any).getStateManager === "function") {
236
+ const stateManager = (this.host as any).getStateManager();
237
+ if (stateManager && typeof stateManager.clearArrayMessages === "function") {
238
+ stateManager.clearArrayMessages(arrayPath);
239
+ }
240
+ }
241
+ }
242
+
243
+ private validatePayloadArrays(schema: any, payload: any, currentPath: string): IPluginValidationResult[] {
244
+ const errors: IPluginValidationResult[] = [];
245
+ if (!schema || !payload || typeof payload !== "object") return errors;
246
+
247
+ if (schema.type === "object" && schema.properties) {
248
+ for (const key of Object.keys(schema.properties)) {
249
+ const propSchema = schema.properties[key];
250
+ if (payload[key] !== undefined) {
251
+ const childPath = currentPath ? `${currentPath}/${key}` : key;
252
+ errors.push(...this.validatePayloadArrays(propSchema, payload[key], childPath));
253
+ }
254
+ }
255
+ } else if (schema.type === "array" && schema.items && Array.isArray(payload)) {
256
+ payload.forEach((item, index) => {
257
+ const itemPath = currentPath ? `${currentPath}/${index}` : `${index}`;
258
+ if (schema.items.type === "object" && schema.items.properties) {
259
+ for (const key of Object.keys(schema.items.properties)) {
260
+ const propMeta = schema.items.properties[key];
261
+ const propPath = `${itemPath}/${key}`;
262
+ const val = item ? item[key] : undefined;
263
+
264
+ const validatorsToRun: string[] = [];
265
+ const argsMap: Record<string, unknown> = {};
266
+
267
+ if (propMeta.required) validatorsToRun.push("required");
268
+ if (propMeta.maxLength !== undefined) {
269
+ validatorsToRun.push("maxLength");
270
+ argsMap["maxLength"] = propMeta.maxLength;
271
+ }
272
+ if (propMeta.minLength !== undefined) {
273
+ validatorsToRun.push("minLength");
274
+ argsMap["minLength"] = propMeta.minLength;
275
+ }
276
+ if (propMeta.pattern !== undefined) {
277
+ validatorsToRun.push("pattern");
278
+ argsMap["pattern"] = { regex: propMeta.pattern };
279
+ }
280
+ if (propMeta.minimum !== undefined || propMeta.maximum !== undefined) {
281
+ validatorsToRun.push("range");
282
+ argsMap["range"] = { min: propMeta.minimum, max: propMeta.maximum };
283
+ }
284
+ const format = propMeta.ui?.format;
285
+ if (format === "email" || format === "url" || format === "iban") {
286
+ validatorsToRun.push(format);
287
+ }
288
+
289
+ if (validatorsToRun.length > 0) {
290
+ const res = GlobalPipeline.executeValidation(val, validatorsToRun, argsMap);
291
+ if (!res.isValid) {
292
+ errors.push({
293
+ isValid: false,
294
+ errorMessage: res.errorMessage,
295
+ fieldKey: propPath,
296
+ fieldLabel: propMeta.ui?.label || key
297
+ });
298
+ } else {
299
+ errors.push({ isValid: true, fieldKey: propPath }); // Push successful state to clear old errors
300
+ }
301
+ }
302
+ }
303
+ }
304
+ });
305
+ }
204
306
  return errors;
205
307
  }
206
308
 
@@ -212,45 +314,121 @@ export class Engine {
212
314
  * @returns {IPlugin | undefined} The plugin instance, or undefined if not found.
213
315
  */
214
316
  public getPluginByPath(path: string): import("../interfaces/IPlugin").IPlugin | undefined {
215
- const cleanPath = path.startsWith("/") ? path : `/${path}`;
216
- const match = this.activePlugins.find(p => p.path === cleanPath || p.path === `/${cleanPath}`);
317
+ const cleanPath = path.replace(/^\//, "");
318
+ const match = this.activePlugins.find(p => p.path.replace(/^\//, "") === cleanPath);
217
319
  return match ? match.plugin : undefined;
218
320
  }
219
321
 
322
+ /**
323
+ * Reports a localized schema validation error to the coordinator ledger.
324
+ */
325
+ public reportSchemaError(fieldPath: string, errorMessage: string | null): void {
326
+ const cleanPath = fieldPath.replace(/^\//, "");
327
+ if (!this.validationLedger.has(cleanPath)) {
328
+ this.validationLedger.set(cleanPath, { schemaError: null, policyError: null });
329
+ }
330
+ this.validationLedger.get(cleanPath)!.schemaError = errorMessage;
331
+ this.resolveVisualState(cleanPath);
332
+ }
333
+
334
+ /**
335
+ * Reports a cross-field policy error to the coordinator ledger.
336
+ */
337
+ public reportPolicyError(fieldPath: string, errorMessage: string | null): void {
338
+ const cleanPath = fieldPath.replace(/^\//, "");
339
+ if (!this.validationLedger.has(cleanPath)) {
340
+ this.validationLedger.set(cleanPath, { schemaError: null, policyError: null });
341
+ }
342
+ this.validationLedger.get(cleanPath)!.policyError = errorMessage;
343
+ this.resolveVisualState(cleanPath);
344
+ }
345
+
346
+ /**
347
+ * Computes the final visual state by checking both engines and applies it to the plugin.
348
+ */
349
+ private resolveVisualState(cleanPath: string): void {
350
+ const plugin = this.getPluginByPath(cleanPath);
351
+ const ledgerEntry = this.validationLedger.get(cleanPath);
352
+ if (!ledgerEntry) return;
353
+
354
+ const isError = ledgerEntry.policyError !== null || ledgerEntry.schemaError !== null;
355
+ const errorMessage = ledgerEntry.policyError || ledgerEntry.schemaError;
356
+
357
+ if (plugin && typeof plugin.setVisualValidationState === "function") {
358
+ plugin.setVisualValidationState(!isError, isError ? errorMessage || undefined : undefined);
359
+ } else {
360
+ // Un-tracked template clones (Table Layout rows)
361
+ this.setNativeControlError(cleanPath, isError ? errorMessage || undefined : undefined);
362
+ }
363
+ }
364
+
365
+ private setNativeControlError(targetPath: string, errorMessage?: string): void {
366
+ if (this.host && (this.host as any).generatedContent) {
367
+ const rootControl = (this.host as any).generatedContent;
368
+ this.traverseAndSetError(rootControl, targetPath, errorMessage);
369
+ }
370
+ }
371
+
372
+ private traverseAndSetError(control: any, targetPath: string, errorMessage?: string): void {
373
+ if (!control) return;
374
+
375
+ const bindingInfos = [control.getBindingInfo("value"), control.getBindingInfo("selectedKey"), control.getBindingInfo("dateValue"), control.getBindingInfo("selected")];
376
+ for (const info of bindingInfos) {
377
+ if (info && info.parts && info.parts.length > 0) {
378
+ const boundPath = info.parts[0].path;
379
+ // UI5 relative bindings drop the leading slash in the context, but retain it in the path
380
+ if (boundPath === targetPath || targetPath.endsWith(boundPath)) {
381
+ // Ensure we match the exact row context path
382
+ const context = control.getBindingContext((this.host as any).activeModelName);
383
+ if (context) {
384
+ const fullPath = context.getPath() + "/" + boundPath;
385
+ const cleanedFullPath = fullPath.replace(/^\//, "");
386
+ if (cleanedFullPath === targetPath) {
387
+ if (typeof control.setValueState === "function") {
388
+ control.setValueState(errorMessage ? "Error" : "None");
389
+ if (typeof control.setValueStateText === "function") {
390
+ control.setValueStateText(errorMessage || "");
391
+ }
392
+ }
393
+ }
394
+ }
395
+ }
396
+ }
397
+ }
398
+
399
+ if (typeof control.getAggregation === "function" && typeof control.getMetadata === "function") {
400
+ const aggs = control.getMetadata().getAggregations();
401
+ for (const aggName in aggs) {
402
+ const child = control.getAggregation(aggName);
403
+ if (Array.isArray(child)) {
404
+ child.forEach(c => this.traverseAndSetError(c, targetPath, errorMessage));
405
+ } else if (child) {
406
+ this.traverseAndSetError(child, targetPath, errorMessage);
407
+ }
408
+ }
409
+ }
410
+ }
411
+
220
412
  /**
221
413
  * Cleans up internal state and destroys the condition engine to prevent memory leaks.
222
414
  */
223
415
  public destroy(): void {
224
- if (this.conditionEngine) {
225
- this.conditionEngine.destroy();
226
- this.conditionEngine = null;
227
- }
228
416
 
229
- // ------------------------------------------------------------------------
230
- // Ghost Error Prevention
231
- // Flush MessageManager for active plugins before destroying their controls
232
- // ------------------------------------------------------------------------
233
- const messageManager = Messaging;
234
- const existingMessages = messageManager.getMessageModel().getData();
235
- const messagesToRemove: unknown[] = [];
236
417
 
237
418
  for (const item of this.activePlugins) {
238
- if (this.activeModel) {
239
- const targetPath = `/${item.path.replace(/^\//, "")}`;
240
- const matched = (existingMessages as { getTarget: () => string, getMessageProcessor: () => { getId: () => string } }[]).filter(msg =>
241
- msg.getTarget() === targetPath && msg.getMessageProcessor() && msg.getMessageProcessor().getId() === this.activeModel!.getId()
242
- );
243
- messagesToRemove.push(...matched);
244
- }
245
419
  if (typeof item.plugin.destroy === "function") {
246
420
  item.plugin.destroy();
247
421
  }
248
422
  }
249
423
 
250
- if (messagesToRemove.length > 0) {
251
- messageManager.removeMessages(messagesToRemove);
424
+ for (const item of this.templatePlugins) {
425
+ if (typeof item.plugin.destroy === "function") {
426
+ item.plugin.destroy();
427
+ }
252
428
  }
253
429
 
430
+ this.validationLedger.clear();
254
431
  this.activePlugins = [];
432
+ this.templatePlugins = [];
255
433
  }
256
434
  }
@@ -0,0 +1,86 @@
1
+ sap.ui.define(["./SchemaNormalizer", "../constants/MetaUIConstants"], function (___SchemaNormalizer, ___constants_MetaUIConstants) {
2
+ "use strict";
3
+
4
+ /**
5
+ * @file LayoutMutator.ts
6
+ * @description Intercepts the generated schema before rendering to dynamically mutate the UI layout based on inline rendering rules.
7
+ */
8
+ const SchemaNormalizer = ___SchemaNormalizer["SchemaNormalizer"];
9
+ const RENDER_MODE = ___constants_MetaUIConstants["RENDER_MODE"];
10
+ const SCHEMA_TYPE = ___constants_MetaUIConstants["SCHEMA_TYPE"];
11
+ class LayoutMutator {
12
+ /**
13
+ * Mutates the `uiLayout` array to expand nested inline objects into native Groups.
14
+ * @param schema The normalized root schema.
15
+ */
16
+ static apply(schema) {
17
+ if (!schema || !schema.uiLayout || !Array.isArray(schema.uiLayout)) {
18
+ return; // No layout to mutate
19
+ }
20
+ schema.uiLayout = this.expandElements(schema.uiLayout, schema);
21
+ }
22
+ static expandElements(elements, rootSchema) {
23
+ const expanded = [];
24
+ for (const element of elements) {
25
+ if (element.type === "Group") {
26
+ // Recursively expand group elements
27
+ if (element.elements) {
28
+ element.elements = this.expandElements(element.elements, rootSchema);
29
+ }
30
+ expanded.push(element);
31
+ } else if (element.type === "Control") {
32
+ if (!element.scope) {
33
+ expanded.push(element);
34
+ continue;
35
+ }
36
+ // Resolve the schema to see if this control points to an inline object
37
+ try {
38
+ const {
39
+ meta,
40
+ bindingPath
41
+ } = SchemaNormalizer.resolveScope(rootSchema, element.scope);
42
+ const hasExplicitWidget = !!meta?.ui?.widget;
43
+ const isInlineObject = meta?.type === SCHEMA_TYPE.OBJECT && meta.ui?.renderMode === RENDER_MODE.INLINE && !hasExplicitWidget;
44
+ if (isInlineObject && meta.properties) {
45
+ // Transform this Control into a Group containing its properties
46
+ const newGroup = {
47
+ ...element,
48
+ type: "Group",
49
+ label: element.label || meta.ui?.label || bindingPath.split("/").pop(),
50
+ elements: []
51
+ };
52
+ delete newGroup.scope;
53
+
54
+ // Add all child properties as controls
55
+ for (const childKey of Object.keys(meta.properties)) {
56
+ newGroup.elements.push({
57
+ type: "Control",
58
+ scope: `${element.scope}/properties/${childKey}`
59
+ });
60
+ }
61
+
62
+ // Recursively expand this new group in case it contains further inline objects
63
+ newGroup.elements = this.expandElements(newGroup.elements, rootSchema);
64
+ expanded.push(newGroup);
65
+ } else {
66
+ // Scalar control, keep as is
67
+ expanded.push(element);
68
+ }
69
+ } catch (e) {
70
+ // Scope not found, keep element to let normal error handling report it
71
+ expanded.push(element);
72
+ }
73
+ } else {
74
+ expanded.push(element);
75
+ }
76
+ }
77
+ return expanded;
78
+ }
79
+ }
80
+ var __exports = {
81
+ __esModule: true
82
+ };
83
+ __exports.LayoutMutator = LayoutMutator;
84
+ return __exports;
85
+ });
86
+ //# sourceMappingURL=LayoutMutator-dbg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutMutator-dbg.js","names":["SchemaNormalizer","___SchemaNormalizer","RENDER_MODE","___constants_MetaUIConstants","SCHEMA_TYPE","LayoutMutator","apply","schema","uiLayout","Array","isArray","expandElements","elements","rootSchema","expanded","element","type","push","scope","meta","bindingPath","resolveScope","hasExplicitWidget","ui","widget","isInlineObject","OBJECT","renderMode","INLINE","properties","newGroup","label","split","pop","childKey","Object","keys","e","__exports","__esModule"],"sources":["LayoutMutator.ts"],"sourcesContent":["/**\n * @file LayoutMutator.ts\n * @description Intercepts the generated schema before rendering to dynamically mutate the UI layout based on inline rendering rules.\n */\n\nimport { ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { SchemaNormalizer } from \"./SchemaNormalizer\";\nimport { RENDER_MODE, SCHEMA_TYPE } from \"../constants/MetaUIConstants\";\n\nexport class LayoutMutator {\n /**\n * Mutates the `uiLayout` array to expand nested inline objects into native Groups.\n * @param schema The normalized root schema.\n */\n public static apply(schema: ISchema): void {\n if (!schema || !schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n return; // No layout to mutate\n }\n\n schema.uiLayout = this.expandElements(schema.uiLayout, schema);\n }\n\n private static expandElements(elements: ILayoutElement[], rootSchema: ISchema): ILayoutElement[] {\n const expanded: ILayoutElement[] = [];\n\n for (const element of elements) {\n if (element.type === \"Group\") {\n // Recursively expand group elements\n if (element.elements) {\n element.elements = this.expandElements(element.elements, rootSchema);\n }\n expanded.push(element);\n } else if (element.type === \"Control\") {\n if (!element.scope) {\n expanded.push(element);\n continue;\n }\n // Resolve the schema to see if this control points to an inline object\n try {\n const { meta, bindingPath } = SchemaNormalizer.resolveScope(rootSchema, element.scope);\n \n const hasExplicitWidget = !!meta?.ui?.widget;\n const isInlineObject = meta?.type === SCHEMA_TYPE.OBJECT && meta.ui?.renderMode === RENDER_MODE.INLINE && !hasExplicitWidget;\n\n if (isInlineObject && meta.properties) {\n // Transform this Control into a Group containing its properties\n const newGroup: ILayoutElement = {\n ...element,\n type: \"Group\",\n label: element.label || meta.ui?.label || bindingPath.split(\"/\").pop(),\n elements: []\n };\n delete newGroup.scope;\n\n // Add all child properties as controls\n for (const childKey of Object.keys(meta.properties)) {\n newGroup.elements!.push({\n type: \"Control\",\n scope: `${element.scope}/properties/${childKey}`\n });\n }\n\n // Recursively expand this new group in case it contains further inline objects\n newGroup.elements = this.expandElements(newGroup.elements!, rootSchema);\n \n expanded.push(newGroup);\n } else {\n // Scalar control, keep as is\n expanded.push(element);\n }\n } catch (e) {\n // Scope not found, keep element to let normal error handling report it\n expanded.push(element);\n }\n } else {\n expanded.push(element);\n }\n }\n\n return expanded;\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAMSA,gBAAgB,GAAAC,mBAAA;EAAA,MAChBC,WAAW,GAAAC,4BAAA;EAAA,MAAEC,WAAW,GAAAD,4BAAA;EAE1B,MAAME,aAAa,CAAC;IACvB;AACJ;AACA;AACA;IACI,OAAcC,KAAKA,CAACC,MAAe,EAAQ;MACvC,IAAI,CAACA,MAAM,IAAI,CAACA,MAAM,CAACC,QAAQ,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,MAAM,CAACC,QAAQ,CAAC,EAAE;QAChE,OAAO,CAAC;MACZ;MAEAD,MAAM,CAACC,QAAQ,GAAG,IAAI,CAACG,cAAc,CAACJ,MAAM,CAACC,QAAQ,EAAED,MAAM,CAAC;IAClE;IAEA,OAAeI,cAAcA,CAACC,QAA0B,EAAEC,UAAmB,EAAoB;MAC7F,MAAMC,QAA0B,GAAG,EAAE;MAErC,KAAK,MAAMC,OAAO,IAAIH,QAAQ,EAAE;QAC5B,IAAIG,OAAO,CAACC,IAAI,KAAK,OAAO,EAAE;UAC1B;UACA,IAAID,OAAO,CAACH,QAAQ,EAAE;YAClBG,OAAO,CAACH,QAAQ,GAAG,IAAI,CAACD,cAAc,CAACI,OAAO,CAACH,QAAQ,EAAEC,UAAU,CAAC;UACxE;UACAC,QAAQ,CAACG,IAAI,CAACF,OAAO,CAAC;QAC1B,CAAC,MAAM,IAAIA,OAAO,CAACC,IAAI,KAAK,SAAS,EAAE;UACnC,IAAI,CAACD,OAAO,CAACG,KAAK,EAAE;YAChBJ,QAAQ,CAACG,IAAI,CAACF,OAAO,CAAC;YACtB;UACJ;UACA;UACA,IAAI;YACA,MAAM;cAAEI,IAAI;cAAEC;YAAY,CAAC,GAAGpB,gBAAgB,CAACqB,YAAY,CAACR,UAAU,EAAEE,OAAO,CAACG,KAAK,CAAC;YAEtF,MAAMI,iBAAiB,GAAG,CAAC,CAACH,IAAI,EAAEI,EAAE,EAAEC,MAAM;YAC5C,MAAMC,cAAc,GAAGN,IAAI,EAAEH,IAAI,KAAKZ,WAAW,CAACsB,MAAM,IAAIP,IAAI,CAACI,EAAE,EAAEI,UAAU,KAAKzB,WAAW,CAAC0B,MAAM,IAAI,CAACN,iBAAiB;YAE5H,IAAIG,cAAc,IAAIN,IAAI,CAACU,UAAU,EAAE;cACnC;cACA,MAAMC,QAAwB,GAAG;gBAC7B,GAAGf,OAAO;gBACVC,IAAI,EAAE,OAAO;gBACbe,KAAK,EAAEhB,OAAO,CAACgB,KAAK,IAAIZ,IAAI,CAACI,EAAE,EAAEQ,KAAK,IAAIX,WAAW,CAACY,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC;gBACtErB,QAAQ,EAAE;cACd,CAAC;cACD,OAAOkB,QAAQ,CAACZ,KAAK;;cAErB;cACA,KAAK,MAAMgB,QAAQ,IAAIC,MAAM,CAACC,IAAI,CAACjB,IAAI,CAACU,UAAU,CAAC,EAAE;gBACjDC,QAAQ,CAAClB,QAAQ,CAAEK,IAAI,CAAC;kBACpBD,IAAI,EAAE,SAAS;kBACfE,KAAK,EAAE,GAAGH,OAAO,CAACG,KAAK,eAAegB,QAAQ;gBAClD,CAAC,CAAC;cACN;;cAEA;cACAJ,QAAQ,CAAClB,QAAQ,GAAG,IAAI,CAACD,cAAc,CAACmB,QAAQ,CAAClB,QAAQ,EAAGC,UAAU,CAAC;cAEvEC,QAAQ,CAACG,IAAI,CAACa,QAAQ,CAAC;YAC3B,CAAC,MAAM;cACH;cACAhB,QAAQ,CAACG,IAAI,CAACF,OAAO,CAAC;YAC1B;UACJ,CAAC,CAAC,OAAOsB,CAAC,EAAE;YACR;YACAvB,QAAQ,CAACG,IAAI,CAACF,OAAO,CAAC;UAC1B;QACJ,CAAC,MAAM;UACHD,QAAQ,CAACG,IAAI,CAACF,OAAO,CAAC;QAC1B;MACJ;MAEA,OAAOD,QAAQ;IACnB;EACJ;EAAC,IAAAwB,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAjC,aAAA,GAAAA,aAAA;EAAA,OAAAiC,SAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ declare module "nz/co/siliconst/ui5/metaui/core/LayoutMutator" {
2
+ /**
3
+ * @file LayoutMutator.ts
4
+ * @description Intercepts the generated schema before rendering to dynamically mutate the UI layout based on inline rendering rules.
5
+ */
6
+ import { ISchema } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
7
+ export class LayoutMutator {
8
+ /**
9
+ * Mutates the `uiLayout` array to expand nested inline objects into native Groups.
10
+ * @param schema The normalized root schema.
11
+ */
12
+ static apply(schema: ISchema): void;
13
+ private static expandElements;
14
+ }
15
+ }
16
+ //# sourceMappingURL=LayoutMutator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutMutator.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+CAA+C,CAAC;IAC/D;;;OAGG;IAEH,OAAO,EAAE,OAAO,EAAkB,MAAM,+CAA+C,CAAC;IAIxF,MAAa,aAAa;QACtB;;;WAGG;eACW,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;QAQ1C,OAAO,CAAC,MAAM,CAAC,cAAc;KA2DhC;CAEA"}
@@ -0,0 +1,2 @@
1
+ sap.ui.define(["./SchemaNormalizer","../constants/MetaUIConstants"],function(e,t){"use strict";const s=e["SchemaNormalizer"];const o=t["RENDER_MODE"];const n=t["SCHEMA_TYPE"];class p{static apply(e){if(!e||!e.uiLayout||!Array.isArray(e.uiLayout)){return}e.uiLayout=this.expandElements(e.uiLayout,e)}static expandElements(e,t){const p=[];for(const r of e){if(r.type==="Group"){if(r.elements){r.elements=this.expandElements(r.elements,t)}p.push(r)}else if(r.type==="Control"){if(!r.scope){p.push(r);continue}try{const{meta:e,bindingPath:i}=s.resolveScope(t,r.scope);const a=!!e?.ui?.widget;const u=e?.type===n.OBJECT&&e.ui?.renderMode===o.INLINE&&!a;if(u&&e.properties){const s={...r,type:"Group",label:r.label||e.ui?.label||i.split("/").pop(),elements:[]};delete s.scope;for(const t of Object.keys(e.properties)){s.elements.push({type:"Control",scope:`${r.scope}/properties/${t}`})}s.elements=this.expandElements(s.elements,t);p.push(s)}else{p.push(r)}}catch(e){p.push(r)}}else{p.push(r)}}return p}}var r={__esModule:true};r.LayoutMutator=p;return r});
2
+ //# sourceMappingURL=LayoutMutator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutMutator.js","names":["SchemaNormalizer","___SchemaNormalizer","RENDER_MODE","___constants_MetaUIConstants","SCHEMA_TYPE","LayoutMutator","apply","schema","uiLayout","Array","isArray","this","expandElements","elements","rootSchema","expanded","element","type","push","scope","meta","bindingPath","resolveScope","hasExplicitWidget","ui","widget","isInlineObject","OBJECT","renderMode","INLINE","properties","newGroup","label","split","pop","childKey","Object","keys","e","__exports","__esModule"],"sources":["LayoutMutator.ts"],"sourcesContent":["/**\n * @file LayoutMutator.ts\n * @description Intercepts the generated schema before rendering to dynamically mutate the UI layout based on inline rendering rules.\n */\n\nimport { ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { SchemaNormalizer } from \"./SchemaNormalizer\";\nimport { RENDER_MODE, SCHEMA_TYPE } from \"../constants/MetaUIConstants\";\n\nexport class LayoutMutator {\n /**\n * Mutates the `uiLayout` array to expand nested inline objects into native Groups.\n * @param schema The normalized root schema.\n */\n public static apply(schema: ISchema): void {\n if (!schema || !schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n return; // No layout to mutate\n }\n\n schema.uiLayout = this.expandElements(schema.uiLayout, schema);\n }\n\n private static expandElements(elements: ILayoutElement[], rootSchema: ISchema): ILayoutElement[] {\n const expanded: ILayoutElement[] = [];\n\n for (const element of elements) {\n if (element.type === \"Group\") {\n // Recursively expand group elements\n if (element.elements) {\n element.elements = this.expandElements(element.elements, rootSchema);\n }\n expanded.push(element);\n } else if (element.type === \"Control\") {\n if (!element.scope) {\n expanded.push(element);\n continue;\n }\n // Resolve the schema to see if this control points to an inline object\n try {\n const { meta, bindingPath } = SchemaNormalizer.resolveScope(rootSchema, element.scope);\n \n const hasExplicitWidget = !!meta?.ui?.widget;\n const isInlineObject = meta?.type === SCHEMA_TYPE.OBJECT && meta.ui?.renderMode === RENDER_MODE.INLINE && !hasExplicitWidget;\n\n if (isInlineObject && meta.properties) {\n // Transform this Control into a Group containing its properties\n const newGroup: ILayoutElement = {\n ...element,\n type: \"Group\",\n label: element.label || meta.ui?.label || bindingPath.split(\"/\").pop(),\n elements: []\n };\n delete newGroup.scope;\n\n // Add all child properties as controls\n for (const childKey of Object.keys(meta.properties)) {\n newGroup.elements!.push({\n type: \"Control\",\n scope: `${element.scope}/properties/${childKey}`\n });\n }\n\n // Recursively expand this new group in case it contains further inline objects\n newGroup.elements = this.expandElements(newGroup.elements!, rootSchema);\n \n expanded.push(newGroup);\n } else {\n // Scalar control, keep as is\n expanded.push(element);\n }\n } catch (e) {\n // Scope not found, keep element to let normal error handling report it\n expanded.push(element);\n }\n } else {\n expanded.push(element);\n }\n }\n\n return expanded;\n }\n}\n"],"mappings":"+FAAA,MAMSA,EAAgBC,EAAA,0BAChBC,EAAWC,EAAA,qBAAEC,EAAWD,EAAA,eAE1B,MAAME,EAKT,YAAcC,CAAMC,GAChB,IAAKA,IAAWA,EAAOC,WAAaC,MAAMC,QAAQH,EAAOC,UAAW,CAChE,MACJ,CAEAD,EAAOC,SAAWG,KAAKC,eAAeL,EAAOC,SAAUD,EAC3D,CAEA,qBAAeK,CAAeC,EAA4BC,GACtD,MAAMC,EAA6B,GAEnC,IAAK,MAAMC,KAAWH,EAAU,CAC5B,GAAIG,EAAQC,OAAS,QAAS,CAE1B,GAAID,EAAQH,SAAU,CAClBG,EAAQH,SAAWF,KAAKC,eAAeI,EAAQH,SAAUC,EAC7D,CACAC,EAASG,KAAKF,EAClB,MAAO,GAAIA,EAAQC,OAAS,UAAW,CACnC,IAAKD,EAAQG,MAAO,CAChBJ,EAASG,KAAKF,GACd,QACJ,CAEA,IACI,MAAMI,KAAEA,EAAIC,YAAEA,GAAgBrB,EAAiBsB,aAAaR,EAAYE,EAAQG,OAEhF,MAAMI,IAAsBH,GAAMI,IAAIC,OACtC,MAAMC,EAAiBN,GAAMH,OAASb,EAAYuB,QAAUP,EAAKI,IAAII,aAAe1B,EAAY2B,SAAWN,EAE3G,GAAIG,GAAkBN,EAAKU,WAAY,CAEnC,MAAMC,EAA2B,IAC1Bf,EACHC,KAAM,QACNe,MAAOhB,EAAQgB,OAASZ,EAAKI,IAAIQ,OAASX,EAAYY,MAAM,KAAKC,MACjErB,SAAU,WAEPkB,EAASZ,MAGhB,IAAK,MAAMgB,KAAYC,OAAOC,KAAKjB,EAAKU,YAAa,CACjDC,EAASlB,SAAUK,KAAK,CACpBD,KAAM,UACNE,MAAO,GAAGH,EAAQG,oBAAoBgB,KAE9C,CAGAJ,EAASlB,SAAWF,KAAKC,eAAemB,EAASlB,SAAWC,GAE5DC,EAASG,KAAKa,EAClB,KAAO,CAEHhB,EAASG,KAAKF,EAClB,CACJ,CAAE,MAAOsB,GAELvB,EAASG,KAAKF,EAClB,CACJ,KAAO,CACHD,EAASG,KAAKF,EAClB,CACJ,CAEA,OAAOD,CACX,EACH,IAAAwB,EAAA,CAAAC,WAAA,MAAAD,EAAAlC,gBAAA,OAAAkC,CAAA","ignoreList":[]}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @file LayoutMutator.ts
3
+ * @description Intercepts the generated schema before rendering to dynamically mutate the UI layout based on inline rendering rules.
4
+ */
5
+
6
+ import { ISchema, ILayoutElement } from "../interfaces/ISchema";
7
+ import { SchemaNormalizer } from "./SchemaNormalizer";
8
+ import { RENDER_MODE, SCHEMA_TYPE } from "../constants/MetaUIConstants";
9
+
10
+ export class LayoutMutator {
11
+ /**
12
+ * Mutates the `uiLayout` array to expand nested inline objects into native Groups.
13
+ * @param schema The normalized root schema.
14
+ */
15
+ public static apply(schema: ISchema): void {
16
+ if (!schema || !schema.uiLayout || !Array.isArray(schema.uiLayout)) {
17
+ return; // No layout to mutate
18
+ }
19
+
20
+ schema.uiLayout = this.expandElements(schema.uiLayout, schema);
21
+ }
22
+
23
+ private static expandElements(elements: ILayoutElement[], rootSchema: ISchema): ILayoutElement[] {
24
+ const expanded: ILayoutElement[] = [];
25
+
26
+ for (const element of elements) {
27
+ if (element.type === "Group") {
28
+ // Recursively expand group elements
29
+ if (element.elements) {
30
+ element.elements = this.expandElements(element.elements, rootSchema);
31
+ }
32
+ expanded.push(element);
33
+ } else if (element.type === "Control") {
34
+ if (!element.scope) {
35
+ expanded.push(element);
36
+ continue;
37
+ }
38
+ // Resolve the schema to see if this control points to an inline object
39
+ try {
40
+ const { meta, bindingPath } = SchemaNormalizer.resolveScope(rootSchema, element.scope);
41
+
42
+ const hasExplicitWidget = !!meta?.ui?.widget;
43
+ const isInlineObject = meta?.type === SCHEMA_TYPE.OBJECT && meta.ui?.renderMode === RENDER_MODE.INLINE && !hasExplicitWidget;
44
+
45
+ if (isInlineObject && meta.properties) {
46
+ // Transform this Control into a Group containing its properties
47
+ const newGroup: ILayoutElement = {
48
+ ...element,
49
+ type: "Group",
50
+ label: element.label || meta.ui?.label || bindingPath.split("/").pop(),
51
+ elements: []
52
+ };
53
+ delete newGroup.scope;
54
+
55
+ // Add all child properties as controls
56
+ for (const childKey of Object.keys(meta.properties)) {
57
+ newGroup.elements!.push({
58
+ type: "Control",
59
+ scope: `${element.scope}/properties/${childKey}`
60
+ });
61
+ }
62
+
63
+ // Recursively expand this new group in case it contains further inline objects
64
+ newGroup.elements = this.expandElements(newGroup.elements!, rootSchema);
65
+
66
+ expanded.push(newGroup);
67
+ } else {
68
+ // Scalar control, keep as is
69
+ expanded.push(element);
70
+ }
71
+ } catch (e) {
72
+ // Scope not found, keep element to let normal error handling report it
73
+ expanded.push(element);
74
+ }
75
+ } else {
76
+ expanded.push(element);
77
+ }
78
+ }
79
+
80
+ return expanded;
81
+ }
82
+ }