@siliconst/metaui 1.4.7 → 1.4.9

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 (401) hide show
  1. package/package.json +1 -1
  2. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -1
  3. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts +2 -2
  4. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts.map +1 -1
  5. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -1
  6. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +2 -2
  7. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -1
  8. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -1
  9. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +2 -2
  10. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +3 -2
  11. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -1
  12. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts +1 -1
  13. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts.map +1 -1
  14. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +1 -1
  15. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -1
  16. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +4 -3
  17. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +8 -5
  18. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  19. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +6 -6
  20. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  21. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  22. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  23. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +14 -10
  24. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +1 -1
  25. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -1
  26. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +2 -2
  27. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -1
  28. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -1
  29. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +2 -2
  30. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +30 -8
  31. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -1
  32. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +10 -1
  33. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -1
  34. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +1 -1
  35. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +39 -8
  37. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +9 -6
  38. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -1
  39. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +31 -0
  40. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +1 -1
  42. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +47 -12
  44. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +6 -14
  45. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  46. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +1 -2
  47. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  48. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  49. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +12 -19
  51. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  52. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +3 -3
  53. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  54. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  55. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +4 -4
  56. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  57. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +1 -1
  58. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  60. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js.map +1 -1
  63. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +4 -3
  64. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -1
  65. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -1
  66. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +10 -9
  67. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +3 -3
  68. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +1 -1
  70. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
  71. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +7 -6
  74. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +1 -1
  75. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +1 -1
  77. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +1 -1
  78. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -1
  80. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -1
  81. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +1 -1
  82. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  83. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  84. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +2 -2
  85. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts +1 -1
  87. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -1
  88. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +1 -1
  90. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +5 -1
  91. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  93. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  94. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  95. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +9 -5
  96. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  97. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  99. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  100. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +7 -7
  101. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
  102. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts +1 -1
  103. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  107. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +2 -2
  108. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  109. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  110. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +6 -6
  111. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline-dbg.js.map +1 -1
  112. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts +1 -1
  113. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts.map +1 -1
  114. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.ts +1 -1
  115. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  116. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  117. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +1 -1
  118. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js.map +1 -1
  119. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js.map +1 -1
  120. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.ts +1 -1
  121. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +3 -3
  122. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
  123. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +33 -32
  124. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/library.d.ts +27 -1
  126. package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
  127. package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
  128. package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
  129. package/src/nz/co/siliconst/ui5/metaui/library.ts +34 -2
  130. package/src/nz/co/siliconst/ui5/metaui/manifest.json +2 -1
  131. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -1
  132. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts +1 -1
  133. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -1
  134. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -1
  135. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +1 -1
  136. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js +0 -2
  137. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js.map +1 -1
  138. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts +1 -1
  139. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts.map +1 -1
  140. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js.map +1 -1
  141. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.ts +2 -4
  142. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin-dbg.js.map +1 -1
  143. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts +1 -1
  144. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts.map +1 -1
  145. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.js.map +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.ts +1 -1
  147. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +5 -3
  148. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +1 -1
  150. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  151. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
  152. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  153. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +7 -6
  154. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +3 -9
  155. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  156. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +2 -2
  157. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -1
  158. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  159. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  160. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +9 -14
  161. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +14 -3
  162. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  163. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +2 -2
  164. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  165. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
  166. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  167. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +19 -8
  168. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +1 -3
  169. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  170. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +1 -1
  171. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  172. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  173. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  174. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +3 -3
  175. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +2 -4
  176. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  177. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +2 -2
  178. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -1
  179. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  180. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  181. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +7 -7
  182. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +2 -4
  183. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  184. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +2 -2
  185. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -1
  186. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  187. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  188. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +15 -15
  189. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +2 -4
  190. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  191. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +2 -2
  192. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  193. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  194. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  195. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +4 -4
  196. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +2 -4
  197. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  198. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +2 -2
  199. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  200. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  201. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +4 -4
  203. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +2 -4
  204. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  205. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +2 -2
  206. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  207. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  208. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  209. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +4 -4
  210. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +2 -4
  211. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +2 -2
  213. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  214. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  215. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  216. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +4 -4
  217. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +2 -4
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +2 -2
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +7 -7
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +1 -1
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -1
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +2 -4
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +2 -2
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +5 -5
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +2 -4
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +2 -2
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +4 -4
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +5 -3
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +1 -1
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +1 -1
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +11 -9
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +2 -4
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +2 -2
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +4 -4
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +1 -3
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -1
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +5 -5
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +2 -4
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +2 -2
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -1
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +9 -9
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +2 -4
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +2 -2
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +6 -6
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +2 -4
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +2 -2
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -1
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +6 -6
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +2 -4
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +2 -2
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +6 -6
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +2 -4
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +2 -2
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -1
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +6 -6
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +2 -4
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +2 -2
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +6 -6
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +2 -4
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +2 -2
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +8 -8
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js +9 -0
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts +8 -1
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts.map +1 -1
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +13 -6
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +9 -0
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -1
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts +8 -1
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -1
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -1
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +10 -3
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +19 -0
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -1
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +18 -1
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -1
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -1
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +19 -2
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js +23 -0
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts +20 -1
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts.map +1 -1
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +25 -6
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin-dbg.js.map +1 -1
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts +1 -1
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts.map +1 -1
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.js.map +1 -1
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.ts +2 -2
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js +6 -0
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js.map +1 -1
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts +6 -1
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts.map +1 -1
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.js.map +1 -1
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.ts +7 -2
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js +5 -0
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js.map +1 -1
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts +6 -1
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts.map +1 -1
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.js.map +1 -1
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.ts +6 -1
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js +5 -0
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js.map +1 -1
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts +6 -1
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts.map +1 -1
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.js.map +1 -1
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.ts +6 -1
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin-dbg.js.map +1 -1
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts +1 -1
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts.map +1 -1
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.js.map +1 -1
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.ts +1 -1
  364. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js +6 -0
  365. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js.map +1 -1
  366. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts +7 -1
  367. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts.map +1 -1
  368. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.js.map +1 -1
  369. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.ts +7 -1
  370. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js +6 -0
  371. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js.map +1 -1
  372. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts +7 -1
  373. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts.map +1 -1
  374. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.js.map +1 -1
  375. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.ts +7 -1
  376. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js +6 -0
  377. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js.map +1 -1
  378. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts +7 -1
  379. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts.map +1 -1
  380. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.js.map +1 -1
  381. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.ts +7 -1
  382. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js +6 -0
  383. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js.map +1 -1
  384. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts +7 -1
  385. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts.map +1 -1
  386. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.js.map +1 -1
  387. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.ts +7 -1
  388. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js +6 -0
  389. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js.map +1 -1
  390. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts +7 -1
  391. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts.map +1 -1
  392. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.js.map +1 -1
  393. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.ts +7 -1
  394. package/src/nz/co/siliconst/ui5/metaui/typings/ui5-custom.d.ts +20 -0
  395. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder-dbg.js +50 -0
  396. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder-dbg.js.map +1 -0
  397. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder.d.ts +19 -0
  398. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder.d.ts.map +1 -0
  399. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder.js +2 -0
  400. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder.js.map +1 -0
  401. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder.ts +43 -0
@@ -1 +1 @@
1
- {"version":3,"file":"StateManager.js","names":["GlobalPipeline","___PipelineManager","StateManager","constructor","initialData","schema","modelName","this","activeModelName","safeData","JSON","parse","stringify","model","JSONModel","setDefaultBindingMode","originalSetProperty","setProperty","bind","sPath","oValue","oContext","bAsyncUpdate","result","validatePath","value","fieldKey","replace","metadata","findMetadataForPath","messageManager","Messaging","targetPath","startsWith","existingMessages","getMessageModel","getData","messagesToRemove","filter","msg","isMatch","getTarget","getMessageProcessor","getId","length","removeMessages","validatorsToRun","argsMap","required","push","type","maxLength","max","ui","validators","v","name","args","undefined","validationResult","executeValidation","isValid","newMsg","Message","message","errorMessage","coreLibrary","MessageType","Error","target","processor","addMessages","path","properties","getModel","bindControl","control","property","bindingPath","bindProperty","extractPayload","data","destroy","__exports","__esModule"],"sources":["StateManager.ts"],"sourcesContent":["/**\n * @file StateManager.ts\n * @description Isolated internal state management. Decouples the MetaUI engine from external host models.\n */\n\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\nimport ManagedObject from \"sap/ui/base/ManagedObject\";\nimport { ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { GlobalPipeline } from \"./PipelineManager\";\nimport Message from \"sap/ui/core/message/Message\";\nimport coreLibrary from \"sap/ui/core/library\";\nimport Core from \"sap/ui/core/Core\";\nimport Messaging from \"sap/ui/core/Messaging\";\n\n\n/**\n * Manages the isolated internal data payload for the MetaUI engine.\n */\nexport class StateManager {\n private model: JSONModel;\n private activeModelName: string;\n private schema: ISchema;\n\n /**\n * Initializes the state manager with an optional initial payload.\n * @param initialData The initial JSON payload to populate the fields.\n * @param schema The normalized schema for live validation.\n * @param modelName The UI5 model alias used for isolation.\n */\n constructor(initialData: Record<string, any> = {}, schema: ISchema, modelName: string = \"meta\") {\n this.activeModelName = modelName;\n this.schema = schema;\n \n // Deep copy to ensure no reference leakage from the host application\n const safeData = JSON.parse(JSON.stringify(initialData));\n this.model = new JSONModel(safeData);\n this.model.setDefaultBindingMode(\"TwoWay\");\n\n // Centralized Model-Level Validation Interceptor\n const originalSetProperty = this.model.setProperty.bind(this.model);\n this.model.setProperty = (sPath: string, oValue: any, oContext?: any, bAsyncUpdate?: boolean) => {\n const result = originalSetProperty(sPath, oValue, oContext, bAsyncUpdate);\n this.validatePath(sPath, oValue);\n return result;\n };\n }\n\n /**\n * Validates a specific path against the schema and updates the MessageManager.\n */\n private validatePath(sPath: string, value: any): void {\n const fieldKey = sPath.replace(/^\\//, \"\");\n const metadata = this.findMetadataForPath(fieldKey);\n \n const messageManager = Messaging;\n const targetPath = sPath.startsWith(\"/\") ? sPath : `/${sPath}`; // Pure UI5: target MUST be absolute path\n \n // 1. Remove existing messages (strictly for THIS model instance)\n const existingMessages = messageManager.getMessageModel().getData();\n const messagesToRemove = existingMessages.filter((msg: any) => {\n const isMatch = msg.getTarget() === targetPath && msg.getMessageProcessor() && msg.getMessageProcessor().getId() === this.model.getId();\n return isMatch;\n });\n \n \n if (messagesToRemove.length > 0) {\n messageManager.removeMessages(messagesToRemove);\n }\n\n if (!metadata) return;\n\n // 2. Run GlobalPipeline\n const validatorsToRun: string[] = [];\n const argsMap: Record<string, any> = {};\n\n if (metadata.required) {\n validatorsToRun.push(\"required\");\n }\n if (metadata.type === \"string\" && metadata.maxLength) {\n validatorsToRun.push(\"maxLength\");\n argsMap[\"maxLength\"] = { max: metadata.maxLength };\n }\n if (metadata.ui?.validators) {\n for (const v of metadata.ui.validators) {\n if (typeof v === \"string\") {\n validatorsToRun.push(v);\n } else if (v && v.name) {\n validatorsToRun.push(v.name);\n if (v.args !== undefined) {\n argsMap[v.name] = v.args;\n }\n }\n }\n }\n\n if (validatorsToRun.length > 0) {\n const validationResult = GlobalPipeline.executeValidation(value, validatorsToRun, argsMap);\n if (!validationResult.isValid) {\n const newMsg = new Message({\n message: validationResult.errorMessage || \"Invalid value.\",\n type: coreLibrary.MessageType.Error,\n target: targetPath,\n processor: this.model\n });\n messageManager.addMessages(newMsg);\n }\n }\n }\n\n /**\n * Resolves the schema metadata for a given internal binding path.\n * @param path The flat binding path representing the field.\n * @returns The associated IPropertyMetadata, or undefined if not mapped.\n */\n private findMetadataForPath(path: string): IPropertyMetadata | undefined {\n if (!this.schema || !this.schema.properties) return undefined;\n // Basic single-level support for now. Nested object resolution would split by '.' or '/'\n return this.schema.properties[path];\n }\n\n\n\n /**\n * Retrieves the isolated JSONModel instance to attach to the root GeneratorHost control.\n * @returns The internal JSONModel.\n */\n public getModel(): JSONModel {\n return this.model;\n }\n\n /**\n * Binds a generated UI control property to a path in the internal model.\n * @param control The target UI5 Control.\n * @param property The UI5 property name (e.g., 'value').\n * @param bindingPath The exact path in the JSON payload.\n */\n public bindControl(control: ManagedObject, property: string, bindingPath: string): void {\n control.bindProperty(property, {\n path: bindingPath,\n model: \"meta\" // Assumes the model is bound to the root container with the name 'meta'\n });\n }\n\n /**\n * Extracts the flat JavaScript object representing the current state of the UI.\n * @returns A serialized record of the data payload, free of UI5 wrappers.\n */\n public extractPayload(): Record<string, any> {\n // Create a deep copy to prevent accidental mutations by the host\n const data = this.model.getData();\n return JSON.parse(JSON.stringify(data));\n }\n\n /**\n * Cleans up internal state and natively destroys the UI5 JSONModel to prevent memory leaks.\n */\n public destroy(): void {\n \n if (this.model) {\n this.model.destroy();\n }\n }\n}\n"],"mappings":"qLAQSA,EAAcC,EAAA,kBAUhB,MAAMC,EAWTC,YAAYC,EAAmC,CAAC,EAAGC,EAAiBC,EAAoB,QACpFC,KAAKC,gBAAkBF,EACvBC,KAAKF,OAASA,EAGd,MAAMI,EAAWC,KAAKC,MAAMD,KAAKE,UAAUR,IAC3CG,KAAKM,MAAQ,IAAIC,EAAUL,GAC3BF,KAAKM,MAAME,sBAAsB,UAGjC,MAAMC,EAAsBT,KAAKM,MAAMI,YAAYC,KAAKX,KAAKM,OAC7DN,KAAKM,MAAMI,YAAc,CAACE,EAAeC,EAAaC,EAAgBC,KAClE,MAAMC,EAASP,EAAoBG,EAAOC,EAAQC,EAAUC,GAC5Df,KAAKiB,aAAaL,EAAOC,GACzB,OAAOG,EAEf,CAKQC,aAAaL,EAAeM,GAChC,MAAMC,EAAWP,EAAMQ,QAAQ,MAAO,IACtC,MAAMC,EAAWrB,KAAKsB,oBAAoBH,GAE1C,MAAMI,EAAiBC,EACvB,MAAMC,EAAab,EAAMc,WAAW,KAAOd,EAAQ,IAAIA,IAGvD,MAAMe,EAAmBJ,EAAeK,kBAAkBC,UAC1D,MAAMC,EAAmBH,EAAiBI,OAAQC,IAC9C,MAAMC,EAAUD,EAAIE,cAAgBT,GAAcO,EAAIG,uBAAyBH,EAAIG,sBAAsBC,UAAYpC,KAAKM,MAAM8B,QAChI,OAAOH,IAIX,GAAIH,EAAiBO,OAAS,EAAG,CAC7Bd,EAAee,eAAeR,EAClC,CAEA,IAAKT,EAAU,OAGf,MAAMkB,EAA4B,GAClC,MAAMC,EAA+B,CAAC,EAEtC,GAAInB,EAASoB,SAAU,CACnBF,EAAgBG,KAAK,WACzB,CACA,GAAIrB,EAASsB,OAAS,UAAYtB,EAASuB,UAAW,CAClDL,EAAgBG,KAAK,aACrBF,EAAQ,aAAe,CAAEK,IAAKxB,EAASuB,UAC3C,CACA,GAAIvB,EAASyB,IAAIC,WAAY,CACzB,IAAK,MAAMC,KAAK3B,EAASyB,GAAGC,WAAY,CACpC,UAAWC,IAAM,SAAU,CACvBT,EAAgBG,KAAKM,EACzB,MAAO,GAAIA,GAAKA,EAAEC,KAAM,CACpBV,EAAgBG,KAAKM,EAAEC,MACvB,GAAID,EAAEE,OAASC,UAAW,CACtBX,EAAQQ,EAAEC,MAAQD,EAAEE,IACxB,CACJ,CACJ,CACJ,CAEA,GAAIX,EAAgBF,OAAS,EAAG,CAC5B,MAAMe,EAAmB3D,EAAe4D,kBAAkBnC,EAAOqB,EAAiBC,GAClF,IAAKY,EAAiBE,QAAS,CAC3B,MAAMC,EAAS,IAAIC,EAAQ,CACvBC,QAASL,EAAiBM,cAAgB,iBAC1Cf,KAAMgB,EAAYC,YAAYC,MAC9BC,OAAQrC,EACRsC,UAAW/D,KAAKM,QAEpBiB,EAAeyC,YAAYT,EAC/B,CACJ,CACJ,CAOQjC,oBAAoB2C,GACxB,IAAKjE,KAAKF,SAAWE,KAAKF,OAAOoE,WAAY,OAAOf,UAEpD,OAAOnD,KAAKF,OAAOoE,WAAWD,EAClC,CAQOE,WACH,OAAOnE,KAAKM,KAChB,CAQO8D,YAAYC,EAAwBC,EAAkBC,GACzDF,EAAQG,aAAaF,EAAU,CAC3BL,KAAMM,EACNjE,MAAO,QAEf,CAMOmE,iBAEH,MAAMC,EAAO1E,KAAKM,MAAMuB,UACxB,OAAO1B,KAAKC,MAAMD,KAAKE,UAAUqE,GACrC,CAKOC,UAEH,GAAI3E,KAAKM,MAAO,CACZN,KAAKM,MAAMqE,SACf,CACJ,EACH,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAAjF,eAAA,OAAAiF,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"StateManager.js","names":["GlobalPipeline","___PipelineManager","StateManager","constructor","initialData","schema","modelName","this","activeModelName","safeData","JSON","parse","stringify","model","JSONModel","setDefaultBindingMode","originalSetProperty","setProperty","bind","sPath","oValue","oContext","bAsyncUpdate","result","validatePath","value","fieldKey","replace","metadata","findMetadataForPath","messageManager","Messaging","targetPath","startsWith","existingMessages","getMessageModel","getData","messagesToRemove","filter","msg","isMatch","getTarget","getMessageProcessor","getId","length","removeMessages","validatorsToRun","argsMap","required","push","type","maxLength","max","ui","validators","v","name","args","undefined","validationResult","executeValidation","isValid","newMsg","Message","message","errorMessage","coreLibrary","MessageType","Error","target","processor","addMessages","path","properties","getModel","bindControl","control","property","bindingPath","bindProperty","extractPayload","data","destroy","__exports","__esModule"],"sources":["StateManager.ts"],"sourcesContent":["/**\n * @file StateManager.ts\n * @description Isolated internal state management. Decouples the MetaUI engine from external host models.\n */\n\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\nimport ManagedObject from \"sap/ui/base/ManagedObject\";\nimport { ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { GlobalPipeline } from \"./PipelineManager\";\nimport Message from \"sap/ui/core/message/Message\";\nimport coreLibrary from \"sap/ui/core/library\";\nimport Core from \"sap/ui/core/Core\";\nimport Messaging from \"sap/ui/core/Messaging\";\n\n\n/**\n * Manages the isolated internal data payload for the MetaUI engine.\n */\nexport class StateManager {\n private model: JSONModel;\n private activeModelName: string;\n private schema: ISchema;\n\n /**\n * Initializes the state manager with an optional initial payload.\n * @param initialData The initial JSON payload to populate the fields.\n * @param schema The normalized schema for live validation.\n * @param modelName The UI5 model alias used for isolation.\n */\n constructor(initialData: Record<string, unknown> = {}, schema: ISchema, modelName: string = \"meta\") {\n this.activeModelName = modelName;\n this.schema = schema;\n \n // Deep copy to ensure no reference leakage from the host application\n const safeData = JSON.parse(JSON.stringify(initialData));\n this.model = new JSONModel(safeData);\n this.model.setDefaultBindingMode(\"TwoWay\");\n\n // Centralized Model-Level Validation Interceptor\n const originalSetProperty = this.model.setProperty.bind(this.model);\n this.model.setProperty = (sPath: string, oValue: unknown, oContext?: unknown, bAsyncUpdate?: boolean) => {\n const result = originalSetProperty(sPath, oValue, oContext, bAsyncUpdate);\n this.validatePath(sPath, oValue);\n return result;\n };\n }\n\n /**\n * Validates a specific path against the schema and updates the MessageManager.\n */\n private validatePath(sPath: string, value: unknown): void {\n const fieldKey = sPath.replace(/^\\//, \"\");\n const metadata = this.findMetadataForPath(fieldKey);\n \n const messageManager = Messaging;\n const targetPath = sPath.startsWith(\"/\") ? sPath : `/${sPath}`; // Pure UI5: target MUST be absolute path\n \n // 1. Remove existing messages (strictly for THIS model instance)\n const existingMessages = messageManager.getMessageModel().getData();\n const messagesToRemove = existingMessages.filter((msg: sap.ui.core.message.Message) => {\n const isMatch = msg.getTarget() === targetPath && msg.getMessageProcessor() && msg.getMessageProcessor().getId() === this.model.getId();\n return isMatch;\n });\n \n \n if (messagesToRemove.length > 0) {\n messageManager.removeMessages(messagesToRemove);\n }\n\n if (!metadata) return;\n\n // 2. Run GlobalPipeline\n const validatorsToRun: string[] = [];\n const argsMap: Record<string, unknown> = {};\n\n if (metadata.required) {\n validatorsToRun.push(\"required\");\n }\n if (metadata.type === \"string\" && metadata.maxLength) {\n validatorsToRun.push(\"maxLength\");\n argsMap[\"maxLength\"] = { max: metadata.maxLength };\n }\n if (metadata.ui?.validators) {\n for (const v of metadata.ui.validators) {\n if (typeof v === \"string\") {\n validatorsToRun.push(v);\n } else if (v && v.name) {\n validatorsToRun.push(v.name);\n if (v.args !== undefined) {\n argsMap[v.name] = v.args;\n }\n }\n }\n }\n\n if (validatorsToRun.length > 0) {\n const validationResult = GlobalPipeline.executeValidation(value, validatorsToRun, argsMap);\n if (!validationResult.isValid) {\n const newMsg = new Message({\n message: validationResult.errorMessage || \"Invalid value.\",\n type: coreLibrary.MessageType.Error,\n target: targetPath,\n processor: this.model\n });\n messageManager.addMessages(newMsg);\n }\n }\n }\n\n /**\n * Resolves the schema metadata for a given internal binding path.\n * @param path The flat binding path representing the field.\n * @returns The associated IPropertyMetadata, or undefined if not mapped.\n */\n private findMetadataForPath(path: string): IPropertyMetadata | undefined {\n if (!this.schema || !this.schema.properties) return undefined;\n // Basic single-level support for now. Nested object resolution would split by '.' or '/'\n return this.schema.properties[path];\n }\n\n\n\n /**\n * Retrieves the isolated JSONModel instance to attach to the root GeneratorHost control.\n * @returns The internal JSONModel.\n */\n public getModel(): JSONModel {\n return this.model;\n }\n\n /**\n * Binds a generated UI control property to a path in the internal model.\n * @param control The target UI5 Control.\n * @param property The UI5 property name (e.g., 'value').\n * @param bindingPath The exact path in the JSON payload.\n */\n public bindControl(control: ManagedObject, property: string, bindingPath: string): void {\n control.bindProperty(property, {\n path: bindingPath,\n model: \"meta\" // Assumes the model is bound to the root container with the name 'meta'\n });\n }\n\n /**\n * Extracts the flat JavaScript object representing the current state of the UI.\n * @returns A serialized record of the data payload, free of UI5 wrappers.\n */\n public extractPayload(): Record<string, unknown> {\n // Create a deep copy to prevent accidental mutations by the host\n const data = this.model.getData();\n return JSON.parse(JSON.stringify(data));\n }\n\n /**\n * Cleans up internal state and natively destroys the UI5 JSONModel to prevent memory leaks.\n */\n public destroy(): void {\n \n if (this.model) {\n this.model.destroy();\n }\n }\n}\n"],"mappings":"qLAQSA,EAAcC,EAAA,kBAUhB,MAAMC,EAWTC,YAAYC,EAAuC,CAAC,EAAGC,EAAiBC,EAAoB,QACxFC,KAAKC,gBAAkBF,EACvBC,KAAKF,OAASA,EAGd,MAAMI,EAAWC,KAAKC,MAAMD,KAAKE,UAAUR,IAC3CG,KAAKM,MAAQ,IAAIC,EAAUL,GAC3BF,KAAKM,MAAME,sBAAsB,UAGjC,MAAMC,EAAsBT,KAAKM,MAAMI,YAAYC,KAAKX,KAAKM,OAC7DN,KAAKM,MAAMI,YAAc,CAACE,EAAeC,EAAiBC,EAAoBC,KAC1E,MAAMC,EAASP,EAAoBG,EAAOC,EAAQC,EAAUC,GAC5Df,KAAKiB,aAAaL,EAAOC,GACzB,OAAOG,EAEf,CAKQC,aAAaL,EAAeM,GAChC,MAAMC,EAAWP,EAAMQ,QAAQ,MAAO,IACtC,MAAMC,EAAWrB,KAAKsB,oBAAoBH,GAE1C,MAAMI,EAAiBC,EACvB,MAAMC,EAAab,EAAMc,WAAW,KAAOd,EAAQ,IAAIA,IAGvD,MAAMe,EAAmBJ,EAAeK,kBAAkBC,UAC1D,MAAMC,EAAmBH,EAAiBI,OAAQC,IAC9C,MAAMC,EAAUD,EAAIE,cAAgBT,GAAcO,EAAIG,uBAAyBH,EAAIG,sBAAsBC,UAAYpC,KAAKM,MAAM8B,QAChI,OAAOH,IAIX,GAAIH,EAAiBO,OAAS,EAAG,CAC7Bd,EAAee,eAAeR,EAClC,CAEA,IAAKT,EAAU,OAGf,MAAMkB,EAA4B,GAClC,MAAMC,EAAmC,CAAC,EAE1C,GAAInB,EAASoB,SAAU,CACnBF,EAAgBG,KAAK,WACzB,CACA,GAAIrB,EAASsB,OAAS,UAAYtB,EAASuB,UAAW,CAClDL,EAAgBG,KAAK,aACrBF,EAAQ,aAAe,CAAEK,IAAKxB,EAASuB,UAC3C,CACA,GAAIvB,EAASyB,IAAIC,WAAY,CACzB,IAAK,MAAMC,KAAK3B,EAASyB,GAAGC,WAAY,CACpC,UAAWC,IAAM,SAAU,CACvBT,EAAgBG,KAAKM,EACzB,MAAO,GAAIA,GAAKA,EAAEC,KAAM,CACpBV,EAAgBG,KAAKM,EAAEC,MACvB,GAAID,EAAEE,OAASC,UAAW,CACtBX,EAAQQ,EAAEC,MAAQD,EAAEE,IACxB,CACJ,CACJ,CACJ,CAEA,GAAIX,EAAgBF,OAAS,EAAG,CAC5B,MAAMe,EAAmB3D,EAAe4D,kBAAkBnC,EAAOqB,EAAiBC,GAClF,IAAKY,EAAiBE,QAAS,CAC3B,MAAMC,EAAS,IAAIC,EAAQ,CACvBC,QAASL,EAAiBM,cAAgB,iBAC1Cf,KAAMgB,EAAYC,YAAYC,MAC9BC,OAAQrC,EACRsC,UAAW/D,KAAKM,QAEpBiB,EAAeyC,YAAYT,EAC/B,CACJ,CACJ,CAOQjC,oBAAoB2C,GACxB,IAAKjE,KAAKF,SAAWE,KAAKF,OAAOoE,WAAY,OAAOf,UAEpD,OAAOnD,KAAKF,OAAOoE,WAAWD,EAClC,CAQOE,WACH,OAAOnE,KAAKM,KAChB,CAQO8D,YAAYC,EAAwBC,EAAkBC,GACzDF,EAAQG,aAAaF,EAAU,CAC3BL,KAAMM,EACNjE,MAAO,QAEf,CAMOmE,iBAEH,MAAMC,EAAO1E,KAAKM,MAAMuB,UACxB,OAAO1B,KAAKC,MAAMD,KAAKE,UAAUqE,GACrC,CAKOC,UAEH,GAAI3E,KAAKM,MAAO,CACZN,KAAKM,MAAMqE,SACf,CACJ,EACH,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAAjF,eAAA,OAAAiF,CAAA","ignoreList":[]}
@@ -27,7 +27,7 @@ export class StateManager {
27
27
  * @param schema The normalized schema for live validation.
28
28
  * @param modelName The UI5 model alias used for isolation.
29
29
  */
30
- constructor(initialData: Record<string, any> = {}, schema: ISchema, modelName: string = "meta") {
30
+ constructor(initialData: Record<string, unknown> = {}, schema: ISchema, modelName: string = "meta") {
31
31
  this.activeModelName = modelName;
32
32
  this.schema = schema;
33
33
 
@@ -38,7 +38,7 @@ export class StateManager {
38
38
 
39
39
  // Centralized Model-Level Validation Interceptor
40
40
  const originalSetProperty = this.model.setProperty.bind(this.model);
41
- this.model.setProperty = (sPath: string, oValue: any, oContext?: any, bAsyncUpdate?: boolean) => {
41
+ this.model.setProperty = (sPath: string, oValue: unknown, oContext?: unknown, bAsyncUpdate?: boolean) => {
42
42
  const result = originalSetProperty(sPath, oValue, oContext, bAsyncUpdate);
43
43
  this.validatePath(sPath, oValue);
44
44
  return result;
@@ -48,7 +48,7 @@ export class StateManager {
48
48
  /**
49
49
  * Validates a specific path against the schema and updates the MessageManager.
50
50
  */
51
- private validatePath(sPath: string, value: any): void {
51
+ private validatePath(sPath: string, value: unknown): void {
52
52
  const fieldKey = sPath.replace(/^\//, "");
53
53
  const metadata = this.findMetadataForPath(fieldKey);
54
54
 
@@ -57,7 +57,7 @@ export class StateManager {
57
57
 
58
58
  // 1. Remove existing messages (strictly for THIS model instance)
59
59
  const existingMessages = messageManager.getMessageModel().getData();
60
- const messagesToRemove = existingMessages.filter((msg: any) => {
60
+ const messagesToRemove = existingMessages.filter((msg: sap.ui.core.message.Message) => {
61
61
  const isMatch = msg.getTarget() === targetPath && msg.getMessageProcessor() && msg.getMessageProcessor().getId() === this.model.getId();
62
62
  return isMatch;
63
63
  });
@@ -71,7 +71,7 @@ export class StateManager {
71
71
 
72
72
  // 2. Run GlobalPipeline
73
73
  const validatorsToRun: string[] = [];
74
- const argsMap: Record<string, any> = {};
74
+ const argsMap: Record<string, unknown> = {};
75
75
 
76
76
  if (metadata.required) {
77
77
  validatorsToRun.push("required");
@@ -145,7 +145,7 @@ export class StateManager {
145
145
  * Extracts the flat JavaScript object representing the current state of the UI.
146
146
  * @returns A serialized record of the data payload, free of UI5 wrappers.
147
147
  */
148
- public extractPayload(): Record<string, any> {
148
+ public extractPayload(): Record<string, unknown> {
149
149
  // Create a deep copy to prevent accidental mutations by the host
150
150
  const data = this.model.getData();
151
151
  return JSON.parse(JSON.stringify(data));
@@ -1 +1 @@
1
- {"version":3,"file":"IPipeline-dbg.js","names":[],"sources":["IPipeline.ts"],"sourcesContent":["/**\n * @file IPipeline.ts\n * @description Interfaces for the generic data manipulation pipeline (Formatters, Parsers, Validators).\n */\n\nexport interface IFormatter {\n /**\n * Formats raw JSON model data into a UI-friendly string.\n * @param rawValue The raw value from the JSON payload.\n * @param args Optional arguments provided in the schema.\n * @returns The formatted string for the UI control.\n */\n format(rawValue: unknown, args?: unknown): string;\n}\n\nexport interface IParser {\n /**\n * Parses UI-formatted strings back into raw data types.\n * @param uiValue The value extracted from the UI control.\n * @param args Optional arguments provided in the schema.\n * @returns The raw typed value for the JSON payload.\n */\n parse(uiValue: any, args?: unknown): any;\n}\n\nexport interface IValidationResult {\n isValid: boolean;\n errorMessage?: string;\n}\n\nexport interface IValidator {\n /**\n * Validates parsed data before it enters the JSON model.\n * @param parsedValue The cleaned data to validate.\n * @param args Optional arguments provided in the schema (e.g. max length number)\n * @returns IValidationResult containing status and optional error message.\n */\n validate(parsedValue: unknown, args?: unknown): IValidationResult;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"IPipeline-dbg.js","names":[],"sources":["IPipeline.ts"],"sourcesContent":["/**\n * @file IPipeline.ts\n * @description Interfaces for the generic data manipulation pipeline (Formatters, Parsers, Validators).\n */\n\nexport interface IFormatter {\n /**\n * Formats raw JSON model data into a UI-friendly string.\n * @param rawValue The raw value from the JSON payload.\n * @param args Optional arguments provided in the schema.\n * @returns The formatted string for the UI control.\n */\n format(rawValue: unknown, args?: unknown): string;\n}\n\nexport interface IParser {\n /**\n * Parses UI-formatted strings back into raw data types.\n * @param uiValue The value extracted from the UI control.\n * @param args Optional arguments provided in the schema.\n * @returns The raw typed value for the JSON payload.\n */\n parse(uiValue: unknown, args?: unknown): unknown;\n}\n\nexport interface IValidationResult {\n isValid: boolean;\n errorMessage?: string;\n}\n\nexport interface IValidator {\n /**\n * Validates parsed data before it enters the JSON model.\n * @param parsedValue The cleaned data to validate.\n * @param args Optional arguments provided in the schema (e.g. max length number)\n * @returns IValidationResult containing status and optional error message.\n */\n validate(parsedValue: unknown, args?: unknown): IValidationResult;\n}\n"],"mappings":"","ignoreList":[]}
@@ -19,7 +19,7 @@ declare module "nz/co/siliconst/ui5/metaui/interfaces/IPipeline" {
19
19
  * @param args Optional arguments provided in the schema.
20
20
  * @returns The raw typed value for the JSON payload.
21
21
  */
22
- parse(uiValue: any, args?: unknown): any;
22
+ parse(uiValue: unknown, args?: unknown): unknown;
23
23
  }
24
24
  export interface IValidationResult {
25
25
  isValid: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"IPipeline.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iDAAiD,CAAC;IACjE;;;OAGG;IAEH,UAAiB,UAAU;QACvB;;;;;WAKG;QACH,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;KACrD;IAED,UAAiB,OAAO;QACpB;;;;;WAKG;QACH,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC;KAC5C;IAED,UAAiB,iBAAiB;QAC9B,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB;IAED,UAAiB,UAAU;QACvB;;;;;WAKG;QACH,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;KACrE;CAEA"}
1
+ {"version":3,"file":"IPipeline.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iDAAiD,CAAC;IACjE;;;OAGG;IAEH,UAAiB,UAAU;QACvB;;;;;WAKG;QACH,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;KACrD;IAED,UAAiB,OAAO;QACpB;;;;;WAKG;QACH,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;KACpD;IAED,UAAiB,iBAAiB;QAC9B,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB;IAED,UAAiB,UAAU;QACvB;;;;;WAKG;QACH,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;KACrE;CAEA"}
@@ -20,7 +20,7 @@ export interface IParser {
20
20
  * @param args Optional arguments provided in the schema.
21
21
  * @returns The raw typed value for the JSON payload.
22
22
  */
23
- parse(uiValue: any, args?: unknown): any;
23
+ parse(uiValue: unknown, args?: unknown): unknown;
24
24
  }
25
25
 
26
26
  export interface IValidationResult {
@@ -1 +1 @@
1
- {"version":3,"file":"FormLayout-dbg.js","names":["SchemaNormalizer","___core_SchemaNormalizer","Logger","___utils_Logger","FormLayout","render","schema","modelName","engine","onSubmit","container","VBox","renderType","form","SimpleForm","editable","title","layout","labelSpanXL","labelSpanL","labelSpanM","labelSpanS","adjustLabelSpan","emptySpanXL","emptySpanL","emptySpanM","emptySpanS","columnsXL","columnsL","columnsM","singleContainerFullSize","uiLayout","Array","isArray","warn","addItem","tableElements","hasFormFields","renderElement","element","type","label","addContent","Title","text","elements","forEach","scope","startsWith","error","meta","bindingPath","propKey","resolveScope","isCollectionOfRecords","items","properties","hasExplicitWidget","ui","widget","isSubLayout","debug","push","_renderScalarField","field","subSchema","control","generateLayout","addStyleClass","msg","message","showErrorPopup","labelText","Label","required","effectiveMeta","generateField","fullWidth","sap","require","GridData","setLayoutData","span","__exports","__esModule"],"sources":["FormLayout.ts"],"sourcesContent":["/**\n * @file FormLayout.ts\n * @description Generates a fully responsive SAP Fiori Form layout (SimpleForm).\n */\n\nimport SimpleForm from \"sap/ui/layout/form/SimpleForm\";\nimport Label from \"sap/m/Label\";\nimport Title from \"sap/ui/core/Title\";\nimport VBox from \"sap/m/VBox\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { SchemaNormalizer } from \"../core/SchemaNormalizer\";\nimport { Logger } from \"../utils/Logger\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Layout Manager responsible for generating a fully responsive SAP Fiori SimpleForm.\n * It traverses the `uiLayout` tree defined in the schema to build the form groups and fields,\n * completely separating visual orchestration from data modeling.\n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class FormLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema properties into a UI5 SimpleForm using the uiLayout definitions.\n * \n * @param schema The active JSON schema subset.\n * @param modelName The bound UI5 model name.\n * @param engine The central orchestrator for delegating plugin generation.\n * @param onSubmit Optional submit hook.\n * @returns {Control} The VBox wrapper containing the generated form.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {\n const container = new VBox({ renderType: \"Bare\" });\n const form = new SimpleForm({\n editable: true,\n title: schema.title,\n layout: \"ResponsiveGridLayout\",\n labelSpanXL: 4, labelSpanL: 4, labelSpanM: 4, labelSpanS: 12,\n adjustLabelSpan: false,\n emptySpanXL: 0, emptySpanL: 0, emptySpanM: 0, emptySpanS: 0,\n columnsXL: 1, columnsL: 1, columnsM: 1,\n singleContainerFullSize: false\n });\n\n if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n Logger.warn(\"[MetaUI] Missing 'uiLayout' array in schema. Form will not render any fields.\");\n container.addItem(form);\n return container;\n }\n\n const tableElements: { scope: string, meta: IPropertyMetadata, label?: string }[] = [];\n let hasFormFields = false;\n\n // Recursively render layout elements\n const renderElement = (element: ILayoutElement) => {\n if (element.type === \"Group\") {\n if (element.label) {\n form.addContent(new Title({ text: element.label }));\n }\n \n if (element.elements && Array.isArray(element.elements)) {\n element.elements.forEach(renderElement);\n }\n } else if (element.type === \"Control\") {\n if (!element.scope || !element.scope.startsWith(\"#/properties/\")) {\n Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, \"\", \"FormLayout\");\n return;\n }\n \n const { meta, bindingPath, propKey } = SchemaNormalizer.resolveScope(schema, element.scope);\n \n if (!meta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, \"\", \"FormLayout\");\n return;\n }\n\n // Architectural Boundary: Separate Field Controls (Plugins) from Sub-Layouts (LayoutManagers)\n // A property is delegated to a Sub-Layout Manager (Table) ONLY if it represents a collection of complex objects.\n // Collections of primitives, or explicitly assigned widgets (like multiSelect), remain in the Form as Field Plugins.\n const isCollectionOfRecords = meta.items?.type === \"object\" || meta.items?.properties;\n const hasExplicitWidget = !!meta.ui?.widget;\n const isSubLayout = meta.type === \"array\" && isCollectionOfRecords && !hasExplicitWidget;\n\n if (isSubLayout) {\n Logger.debug(\"[MetaUI FormLayout]\", `Routing property '${propKey}' to Table Sub-Layout.`, \"FormLayout\");\n tableElements.push({ scope: bindingPath, meta, label: element.label });\n } else {\n hasFormFields = true;\n Logger.debug(\"[MetaUI FormLayout]\", `Rendering scalar field '${bindingPath}'.`, \"FormLayout\");\n this._renderScalarField(form, element, bindingPath, meta, modelName, engine);\n }\n } else {\n Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}'.`, \"\", \"FormLayout\");\n }\n };\n\n // Render everything defined in the layout\n schema.uiLayout.forEach(renderElement);\n\n if (hasFormFields) {\n container.addItem(form);\n }\n\n // Render array/table sub-layouts full width below the form\n tableElements.forEach(field => {\n try {\n const subSchema = {\n type: \"array\",\n title: field.label || field.meta.ui?.label || field.scope,\n items: field.meta.items || { type: \"object\", properties: {} },\n uiLayout: field.meta.items?.uiLayout // Pass down sub-layout if available\n };\n \n const control = engine.generateLayout(subSchema as ISchema, modelName, `/${field.scope}`);\n if (control) {\n control.addStyleClass(\"sapUiSmallMarginTop\");\n container.addItem(control);\n }\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render array field ${field.scope}`, msg, \"FormLayout\");\n Logger.showErrorPopup(`Failed to render array field '${field.scope}'.\\n\\nDetails: ${msg}`);\n }\n });\n\n return container;\n }\n\n /**\n * Synthesizes a primitive field into the Form.\n * @param form The SimpleForm instance.\n * @param element The layout element definition.\n * @param propKey The bound property key.\n * @param meta The inferred metadata schema.\n * @param modelName The UI5 data model name.\n * @param engine The core Engine instance.\n */\n private _renderScalarField(form: SimpleForm, element: ILayoutElement, propKey: string, meta: IPropertyMetadata, modelName: string, engine: Engine): void {\n try {\n const labelText = element.label || meta.ui?.label || propKey;\n const label = new Label({\n text: labelText,\n required: meta.required\n });\n\n // Override widget if specified in the layout element\n const effectiveMeta = { ...meta };\n if (element.widget) {\n effectiveMeta.ui = { ...meta.ui, widget: element.widget };\n }\n\n const control = engine.generateField(effectiveMeta, `/${propKey}`, modelName);\n\n if (effectiveMeta.ui?.fullWidth) {\n sap.ui.require([\"sap/ui/layout/GridData\"], (GridData: any) => {\n control.setLayoutData(new GridData({ span: \"XL12 L12 M12 S12\" }));\n });\n }\n\n form.addContent(label);\n form.addContent(control);\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render field ${propKey}`, msg, \"FormLayout\");\n Logger.showErrorPopup(`Failed to render field '${propKey}'.\\n\\nDetails: ${msg}`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormLayout-dbg.js","names":["SchemaNormalizer","___core_SchemaNormalizer","Logger","___utils_Logger","FormLayout","render","schema","modelName","engine","onSubmit","container","VBox","renderType","form","SimpleForm","editable","title","layout","labelSpanXL","labelSpanL","labelSpanM","labelSpanS","adjustLabelSpan","emptySpanXL","emptySpanL","emptySpanM","emptySpanS","columnsXL","columnsL","columnsM","singleContainerFullSize","uiLayout","Array","isArray","warn","addItem","tableElements","hasFormFields","renderElement","element","type","label","addContent","Title","text","elements","forEach","scope","startsWith","error","meta","bindingPath","propKey","resolveScope","isCollectionOfRecords","items","properties","hasExplicitWidget","ui","widget","isSubLayout","debug","push","_renderScalarField","field","subSchema","control","generateLayout","addStyleClass","msg","message","showErrorPopup","labelText","Label","required","effectiveMeta","generateField","fullWidth","sap","require","GridData","setLayoutData","span","__exports","__esModule"],"sources":["FormLayout.ts"],"sourcesContent":["/**\n * @file FormLayout.ts\n * @description Generates a fully responsive SAP Fiori Form layout (SimpleForm).\n */\n\nimport SimpleForm from \"sap/ui/layout/form/SimpleForm\";\nimport Label from \"sap/m/Label\";\nimport Title from \"sap/ui/core/Title\";\nimport VBox from \"sap/m/VBox\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { SchemaNormalizer } from \"../core/SchemaNormalizer\";\nimport { Logger } from \"../utils/Logger\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Layout Manager responsible for generating a fully responsive SAP Fiori SimpleForm.\n * It traverses the `uiLayout` tree defined in the schema to build the form groups and fields,\n * completely separating visual orchestration from data modeling.\n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class FormLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema properties into a UI5 SimpleForm using the uiLayout definitions.\n * \n * @param schema The active JSON schema subset.\n * @param modelName The bound UI5 model name.\n * @param engine The central orchestrator for delegating plugin generation.\n * @param onSubmit Optional submit hook.\n * @returns {Control} The VBox wrapper containing the generated form.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {\n const container = new VBox({ renderType: \"Bare\" });\n const form = new SimpleForm({\n editable: true,\n title: schema.title,\n layout: \"ResponsiveGridLayout\",\n labelSpanXL: 4, labelSpanL: 4, labelSpanM: 4, labelSpanS: 12,\n adjustLabelSpan: false,\n emptySpanXL: 0, emptySpanL: 0, emptySpanM: 0, emptySpanS: 0,\n columnsXL: 1, columnsL: 1, columnsM: 1,\n singleContainerFullSize: false\n });\n\n if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n Logger.warn(\"[MetaUI] Missing 'uiLayout' array in schema. Form will not render any fields.\");\n container.addItem(form);\n return container;\n }\n\n const tableElements: { scope: string, meta: IPropertyMetadata, label?: string }[] = [];\n let hasFormFields = false;\n\n // Recursively render layout elements\n const renderElement = (element: ILayoutElement) => {\n if (element.type === \"Group\") {\n if (element.label) {\n form.addContent(new Title({ text: element.label }));\n }\n \n if (element.elements && Array.isArray(element.elements)) {\n element.elements.forEach(renderElement);\n }\n } else if (element.type === \"Control\") {\n if (!element.scope || !element.scope.startsWith(\"#/properties/\")) {\n Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, \"\", \"FormLayout\");\n return;\n }\n \n const { meta, bindingPath, propKey } = SchemaNormalizer.resolveScope(schema, element.scope);\n \n if (!meta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, \"\", \"FormLayout\");\n return;\n }\n\n // Architectural Boundary: Separate Field Controls (Plugins) from Sub-Layouts (LayoutManagers)\n // A property is delegated to a Sub-Layout Manager (Table) ONLY if it represents a collection of complex objects.\n // Collections of primitives, or explicitly assigned widgets (like multiSelect), remain in the Form as Field Plugins.\n const isCollectionOfRecords = meta.items?.type === \"object\" || meta.items?.properties;\n const hasExplicitWidget = !!meta.ui?.widget;\n const isSubLayout = meta.type === \"array\" && isCollectionOfRecords && !hasExplicitWidget;\n\n if (isSubLayout) {\n Logger.debug(\"[MetaUI FormLayout]\", `Routing property '${propKey}' to Table Sub-Layout.`, \"FormLayout\");\n tableElements.push({ scope: bindingPath, meta, label: element.label });\n } else {\n hasFormFields = true;\n Logger.debug(\"[MetaUI FormLayout]\", `Rendering scalar field '${bindingPath}'.`, \"FormLayout\");\n this._renderScalarField(form, element, bindingPath, meta, modelName, engine);\n }\n } else {\n Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}'.`, \"\", \"FormLayout\");\n }\n };\n\n // Render everything defined in the layout\n schema.uiLayout.forEach(renderElement);\n\n if (hasFormFields) {\n container.addItem(form);\n }\n\n // Render array/table sub-layouts full width below the form\n tableElements.forEach(field => {\n try {\n const subSchema = {\n type: \"array\",\n title: field.label || field.meta.ui?.label || field.scope,\n items: field.meta.items || { type: \"object\", properties: {} },\n uiLayout: field.meta.items?.uiLayout // Pass down sub-layout if available\n };\n \n const control = engine.generateLayout(subSchema as ISchema, modelName, `/${field.scope}`);\n if (control) {\n control.addStyleClass(\"sapUiSmallMarginTop\");\n container.addItem(control);\n }\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render array field ${field.scope}`, msg, \"FormLayout\");\n Logger.showErrorPopup(`Failed to render array field '${field.scope}'.\\n\\nDetails: ${msg}`);\n }\n });\n\n return container;\n }\n\n /**\n * Synthesizes a primitive field into the Form.\n * @param form The SimpleForm instance.\n * @param element The layout element definition.\n * @param propKey The bound property key.\n * @param meta The inferred metadata schema.\n * @param modelName The UI5 data model name.\n * @param engine The core Engine instance.\n */\n private _renderScalarField(form: SimpleForm, element: ILayoutElement, propKey: string, meta: IPropertyMetadata, modelName: string, engine: Engine): void {\n try {\n const labelText = element.label || meta.ui?.label || propKey;\n const label = new Label({\n text: labelText,\n required: meta.required\n });\n\n // Override widget if specified in the layout element\n const effectiveMeta = { ...meta };\n if (element.widget) {\n effectiveMeta.ui = { ...meta.ui, widget: element.widget };\n }\n\n const control = engine.generateField(effectiveMeta, `/${propKey}`, modelName);\n\n if (effectiveMeta.ui?.fullWidth) {\n sap.ui.require([\"sap/ui/layout/GridData\"], (GridData: typeof import(\"sap/ui/layout/GridData\").default) => {\n control.setLayoutData(new GridData({ span: \"XL12 L12 M12 S12\" }));\n });\n }\n\n form.addContent(label);\n form.addContent(control);\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render field ${propKey}`, msg, \"FormLayout\");\n Logger.showErrorPopup(`Failed to render field '${propKey}'.\\n\\nDetails: ${msg}`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FormLayout.js","names":["SchemaNormalizer","___core_SchemaNormalizer","Logger","___utils_Logger","FormLayout","render","schema","modelName","engine","onSubmit","container","VBox","renderType","form","SimpleForm","editable","title","layout","labelSpanXL","labelSpanL","labelSpanM","labelSpanS","adjustLabelSpan","emptySpanXL","emptySpanL","emptySpanM","emptySpanS","columnsXL","columnsL","columnsM","singleContainerFullSize","uiLayout","Array","isArray","warn","addItem","tableElements","hasFormFields","renderElement","element","type","label","addContent","Title","text","elements","forEach","scope","startsWith","error","meta","bindingPath","propKey","resolveScope","isCollectionOfRecords","items","properties","hasExplicitWidget","ui","widget","isSubLayout","debug","push","this","_renderScalarField","field","subSchema","control","generateLayout","addStyleClass","msg","message","showErrorPopup","labelText","Label","required","effectiveMeta","generateField","fullWidth","sap","require","GridData","setLayoutData","span","__exports","__esModule"],"sources":["FormLayout.ts"],"sourcesContent":["/**\n * @file FormLayout.ts\n * @description Generates a fully responsive SAP Fiori Form layout (SimpleForm).\n */\n\nimport SimpleForm from \"sap/ui/layout/form/SimpleForm\";\nimport Label from \"sap/m/Label\";\nimport Title from \"sap/ui/core/Title\";\nimport VBox from \"sap/m/VBox\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { SchemaNormalizer } from \"../core/SchemaNormalizer\";\nimport { Logger } from \"../utils/Logger\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Layout Manager responsible for generating a fully responsive SAP Fiori SimpleForm.\n * It traverses the `uiLayout` tree defined in the schema to build the form groups and fields,\n * completely separating visual orchestration from data modeling.\n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class FormLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema properties into a UI5 SimpleForm using the uiLayout definitions.\n * \n * @param schema The active JSON schema subset.\n * @param modelName The bound UI5 model name.\n * @param engine The central orchestrator for delegating plugin generation.\n * @param onSubmit Optional submit hook.\n * @returns {Control} The VBox wrapper containing the generated form.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {\n const container = new VBox({ renderType: \"Bare\" });\n const form = new SimpleForm({\n editable: true,\n title: schema.title,\n layout: \"ResponsiveGridLayout\",\n labelSpanXL: 4, labelSpanL: 4, labelSpanM: 4, labelSpanS: 12,\n adjustLabelSpan: false,\n emptySpanXL: 0, emptySpanL: 0, emptySpanM: 0, emptySpanS: 0,\n columnsXL: 1, columnsL: 1, columnsM: 1,\n singleContainerFullSize: false\n });\n\n if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n Logger.warn(\"[MetaUI] Missing 'uiLayout' array in schema. Form will not render any fields.\");\n container.addItem(form);\n return container;\n }\n\n const tableElements: { scope: string, meta: IPropertyMetadata, label?: string }[] = [];\n let hasFormFields = false;\n\n // Recursively render layout elements\n const renderElement = (element: ILayoutElement) => {\n if (element.type === \"Group\") {\n if (element.label) {\n form.addContent(new Title({ text: element.label }));\n }\n \n if (element.elements && Array.isArray(element.elements)) {\n element.elements.forEach(renderElement);\n }\n } else if (element.type === \"Control\") {\n if (!element.scope || !element.scope.startsWith(\"#/properties/\")) {\n Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, \"\", \"FormLayout\");\n return;\n }\n \n const { meta, bindingPath, propKey } = SchemaNormalizer.resolveScope(schema, element.scope);\n \n if (!meta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, \"\", \"FormLayout\");\n return;\n }\n\n // Architectural Boundary: Separate Field Controls (Plugins) from Sub-Layouts (LayoutManagers)\n // A property is delegated to a Sub-Layout Manager (Table) ONLY if it represents a collection of complex objects.\n // Collections of primitives, or explicitly assigned widgets (like multiSelect), remain in the Form as Field Plugins.\n const isCollectionOfRecords = meta.items?.type === \"object\" || meta.items?.properties;\n const hasExplicitWidget = !!meta.ui?.widget;\n const isSubLayout = meta.type === \"array\" && isCollectionOfRecords && !hasExplicitWidget;\n\n if (isSubLayout) {\n Logger.debug(\"[MetaUI FormLayout]\", `Routing property '${propKey}' to Table Sub-Layout.`, \"FormLayout\");\n tableElements.push({ scope: bindingPath, meta, label: element.label });\n } else {\n hasFormFields = true;\n Logger.debug(\"[MetaUI FormLayout]\", `Rendering scalar field '${bindingPath}'.`, \"FormLayout\");\n this._renderScalarField(form, element, bindingPath, meta, modelName, engine);\n }\n } else {\n Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}'.`, \"\", \"FormLayout\");\n }\n };\n\n // Render everything defined in the layout\n schema.uiLayout.forEach(renderElement);\n\n if (hasFormFields) {\n container.addItem(form);\n }\n\n // Render array/table sub-layouts full width below the form\n tableElements.forEach(field => {\n try {\n const subSchema = {\n type: \"array\",\n title: field.label || field.meta.ui?.label || field.scope,\n items: field.meta.items || { type: \"object\", properties: {} },\n uiLayout: field.meta.items?.uiLayout // Pass down sub-layout if available\n };\n \n const control = engine.generateLayout(subSchema as ISchema, modelName, `/${field.scope}`);\n if (control) {\n control.addStyleClass(\"sapUiSmallMarginTop\");\n container.addItem(control);\n }\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render array field ${field.scope}`, msg, \"FormLayout\");\n Logger.showErrorPopup(`Failed to render array field '${field.scope}'.\\n\\nDetails: ${msg}`);\n }\n });\n\n return container;\n }\n\n /**\n * Synthesizes a primitive field into the Form.\n * @param form The SimpleForm instance.\n * @param element The layout element definition.\n * @param propKey The bound property key.\n * @param meta The inferred metadata schema.\n * @param modelName The UI5 data model name.\n * @param engine The core Engine instance.\n */\n private _renderScalarField(form: SimpleForm, element: ILayoutElement, propKey: string, meta: IPropertyMetadata, modelName: string, engine: Engine): void {\n try {\n const labelText = element.label || meta.ui?.label || propKey;\n const label = new Label({\n text: labelText,\n required: meta.required\n });\n\n // Override widget if specified in the layout element\n const effectiveMeta = { ...meta };\n if (element.widget) {\n effectiveMeta.ui = { ...meta.ui, widget: element.widget };\n }\n\n const control = engine.generateField(effectiveMeta, `/${propKey}`, modelName);\n\n if (effectiveMeta.ui?.fullWidth) {\n sap.ui.require([\"sap/ui/layout/GridData\"], (GridData: any) => {\n control.setLayoutData(new GridData({ span: \"XL12 L12 M12 S12\" }));\n });\n }\n\n form.addContent(label);\n form.addContent(control);\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render field ${propKey}`, msg, \"FormLayout\");\n Logger.showErrorPopup(`Failed to render field '${propKey}'.\\n\\nDetails: ${msg}`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormLayout.js","names":["SchemaNormalizer","___core_SchemaNormalizer","Logger","___utils_Logger","FormLayout","render","schema","modelName","engine","onSubmit","container","VBox","renderType","form","SimpleForm","editable","title","layout","labelSpanXL","labelSpanL","labelSpanM","labelSpanS","adjustLabelSpan","emptySpanXL","emptySpanL","emptySpanM","emptySpanS","columnsXL","columnsL","columnsM","singleContainerFullSize","uiLayout","Array","isArray","warn","addItem","tableElements","hasFormFields","renderElement","element","type","label","addContent","Title","text","elements","forEach","scope","startsWith","error","meta","bindingPath","propKey","resolveScope","isCollectionOfRecords","items","properties","hasExplicitWidget","ui","widget","isSubLayout","debug","push","this","_renderScalarField","field","subSchema","control","generateLayout","addStyleClass","msg","message","showErrorPopup","labelText","Label","required","effectiveMeta","generateField","fullWidth","sap","require","GridData","setLayoutData","span","__exports","__esModule"],"sources":["FormLayout.ts"],"sourcesContent":["/**\n * @file FormLayout.ts\n * @description Generates a fully responsive SAP Fiori Form layout (SimpleForm).\n */\n\nimport SimpleForm from \"sap/ui/layout/form/SimpleForm\";\nimport Label from \"sap/m/Label\";\nimport Title from \"sap/ui/core/Title\";\nimport VBox from \"sap/m/VBox\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { SchemaNormalizer } from \"../core/SchemaNormalizer\";\nimport { Logger } from \"../utils/Logger\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Layout Manager responsible for generating a fully responsive SAP Fiori SimpleForm.\n * It traverses the `uiLayout` tree defined in the schema to build the form groups and fields,\n * completely separating visual orchestration from data modeling.\n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class FormLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema properties into a UI5 SimpleForm using the uiLayout definitions.\n * \n * @param schema The active JSON schema subset.\n * @param modelName The bound UI5 model name.\n * @param engine The central orchestrator for delegating plugin generation.\n * @param onSubmit Optional submit hook.\n * @returns {Control} The VBox wrapper containing the generated form.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {\n const container = new VBox({ renderType: \"Bare\" });\n const form = new SimpleForm({\n editable: true,\n title: schema.title,\n layout: \"ResponsiveGridLayout\",\n labelSpanXL: 4, labelSpanL: 4, labelSpanM: 4, labelSpanS: 12,\n adjustLabelSpan: false,\n emptySpanXL: 0, emptySpanL: 0, emptySpanM: 0, emptySpanS: 0,\n columnsXL: 1, columnsL: 1, columnsM: 1,\n singleContainerFullSize: false\n });\n\n if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n Logger.warn(\"[MetaUI] Missing 'uiLayout' array in schema. Form will not render any fields.\");\n container.addItem(form);\n return container;\n }\n\n const tableElements: { scope: string, meta: IPropertyMetadata, label?: string }[] = [];\n let hasFormFields = false;\n\n // Recursively render layout elements\n const renderElement = (element: ILayoutElement) => {\n if (element.type === \"Group\") {\n if (element.label) {\n form.addContent(new Title({ text: element.label }));\n }\n \n if (element.elements && Array.isArray(element.elements)) {\n element.elements.forEach(renderElement);\n }\n } else if (element.type === \"Control\") {\n if (!element.scope || !element.scope.startsWith(\"#/properties/\")) {\n Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, \"\", \"FormLayout\");\n return;\n }\n \n const { meta, bindingPath, propKey } = SchemaNormalizer.resolveScope(schema, element.scope);\n \n if (!meta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, \"\", \"FormLayout\");\n return;\n }\n\n // Architectural Boundary: Separate Field Controls (Plugins) from Sub-Layouts (LayoutManagers)\n // A property is delegated to a Sub-Layout Manager (Table) ONLY if it represents a collection of complex objects.\n // Collections of primitives, or explicitly assigned widgets (like multiSelect), remain in the Form as Field Plugins.\n const isCollectionOfRecords = meta.items?.type === \"object\" || meta.items?.properties;\n const hasExplicitWidget = !!meta.ui?.widget;\n const isSubLayout = meta.type === \"array\" && isCollectionOfRecords && !hasExplicitWidget;\n\n if (isSubLayout) {\n Logger.debug(\"[MetaUI FormLayout]\", `Routing property '${propKey}' to Table Sub-Layout.`, \"FormLayout\");\n tableElements.push({ scope: bindingPath, meta, label: element.label });\n } else {\n hasFormFields = true;\n Logger.debug(\"[MetaUI FormLayout]\", `Rendering scalar field '${bindingPath}'.`, \"FormLayout\");\n this._renderScalarField(form, element, bindingPath, meta, modelName, engine);\n }\n } else {\n Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}'.`, \"\", \"FormLayout\");\n }\n };\n\n // Render everything defined in the layout\n schema.uiLayout.forEach(renderElement);\n\n if (hasFormFields) {\n container.addItem(form);\n }\n\n // Render array/table sub-layouts full width below the form\n tableElements.forEach(field => {\n try {\n const subSchema = {\n type: \"array\",\n title: field.label || field.meta.ui?.label || field.scope,\n items: field.meta.items || { type: \"object\", properties: {} },\n uiLayout: field.meta.items?.uiLayout // Pass down sub-layout if available\n };\n \n const control = engine.generateLayout(subSchema as ISchema, modelName, `/${field.scope}`);\n if (control) {\n control.addStyleClass(\"sapUiSmallMarginTop\");\n container.addItem(control);\n }\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render array field ${field.scope}`, msg, \"FormLayout\");\n Logger.showErrorPopup(`Failed to render array field '${field.scope}'.\\n\\nDetails: ${msg}`);\n }\n });\n\n return container;\n }\n\n /**\n * Synthesizes a primitive field into the Form.\n * @param form The SimpleForm instance.\n * @param element The layout element definition.\n * @param propKey The bound property key.\n * @param meta The inferred metadata schema.\n * @param modelName The UI5 data model name.\n * @param engine The core Engine instance.\n */\n private _renderScalarField(form: SimpleForm, element: ILayoutElement, propKey: string, meta: IPropertyMetadata, modelName: string, engine: Engine): void {\n try {\n const labelText = element.label || meta.ui?.label || propKey;\n const label = new Label({\n text: labelText,\n required: meta.required\n });\n\n // Override widget if specified in the layout element\n const effectiveMeta = { ...meta };\n if (element.widget) {\n effectiveMeta.ui = { ...meta.ui, widget: element.widget };\n }\n\n const control = engine.generateField(effectiveMeta, `/${propKey}`, modelName);\n\n if (effectiveMeta.ui?.fullWidth) {\n sap.ui.require([\"sap/ui/layout/GridData\"], (GridData: typeof import(\"sap/ui/layout/GridData\").default) => {\n control.setLayoutData(new GridData({ span: \"XL12 L12 M12 S12\" }));\n });\n }\n\n form.addContent(label);\n form.addContent(control);\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render field ${propKey}`, msg, \"FormLayout\");\n Logger.showErrorPopup(`Failed to render field '${propKey}'.\\n\\nDetails: ${msg}`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -154,7 +154,7 @@ export class FormLayout implements ILayoutManager {
154
154
  const control = engine.generateField(effectiveMeta, `/${propKey}`, modelName);
155
155
 
156
156
  if (effectiveMeta.ui?.fullWidth) {
157
- sap.ui.require(["sap/ui/layout/GridData"], (GridData: any) => {
157
+ sap.ui.require(["sap/ui/layout/GridData"], (GridData: typeof import("sap/ui/layout/GridData").default) => {
158
158
  control.setLayoutData(new GridData({ span: "XL12 L12 M12 S12" }));
159
159
  });
160
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WizardLayout-dbg.js","names":["SchemaNormalizer","___core_SchemaNormalizer","Logger","___utils_Logger","WizardLayout","render","schema","modelName","engine","onSubmit","wizard","Wizard","renderMode","showNextButton","complete","uiLayout","Array","isArray","warn","forEach","element","type","step","WizardStep","title","label","validated","form","SimpleForm","editable","layout","labelSpanXL","labelSpanL","labelSpanM","labelSpanS","adjustLabelSpan","emptySpanXL","emptySpanL","emptySpanM","emptySpanS","columnsXL","columnsL","columnsM","singleContainerFullSize","elements","childElement","_renderElementInForm","addContent","addStep","scope","startsWith","error","meta","bindingPath","propKey","resolveScope","labelText","ui","Label","text","required","effectiveMeta","widget","control","generateField","fullWidth","sap","require","GridData","setLayoutData","span","message","__exports","__esModule"],"sources":["WizardLayout.ts"],"sourcesContent":["/**\n * @file WizardLayout.ts\n * @description Generates a fully responsive SAP Fiori Wizard layout.\n */\n\nimport Wizard from \"sap/m/Wizard\";\nimport WizardStep from \"sap/m/WizardStep\";\nimport SimpleForm from \"sap/ui/layout/form/SimpleForm\";\nimport Label from \"sap/m/Label\";\nimport VBox from \"sap/m/VBox\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { SchemaNormalizer } from \"../core/SchemaNormalizer\";\nimport { Logger } from \"../utils/Logger\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Layout Manager responsible for generating a responsive SAP Fiori Wizard.\n * It segments the schema fields into discrete Wizard Steps based on `uiLayout` elements \n * of type `Group` or `WizardStep`.\n * \n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class WizardLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema properties into a paginated UI5 Wizard using uiLayout.\n * \n * @param schema The active JSON schema object.\n * @param modelName The bound UI5 model name.\n * @param engine The central orchestrator for delegating plugin generation.\n * @param onSubmit Hook executed when the Wizard's native 'complete' event is fired.\n * @returns {Control} The generated sap.m.Wizard control.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {\n const wizard = new Wizard({\n renderMode: \"Page\",\n showNextButton: true,\n complete: function() {\n if (onSubmit) onSubmit();\n }\n });\n\n if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n Logger.warn(\"[MetaUI] Missing 'uiLayout' array in wizard schema. Wizard will not render any steps.\");\n return wizard;\n }\n\n schema.uiLayout.forEach((element: ILayoutElement) => {\n if (element.type === \"Group\" || element.type === \"WizardStep\") {\n const step = new WizardStep({\n title: element.label || \"Step\",\n validated: true // The PipelineManager handles global validation, wizard step validation can be local later\n });\n\n const form = new SimpleForm({\n editable: true,\n layout: \"ResponsiveGridLayout\",\n labelSpanXL: 4, labelSpanL: 4, labelSpanM: 4, labelSpanS: 12,\n adjustLabelSpan: false,\n emptySpanXL: 0, emptySpanL: 0, emptySpanM: 0, emptySpanS: 0,\n columnsXL: 1, columnsL: 1, columnsM: 1,\n singleContainerFullSize: false\n });\n \n if (element.elements && Array.isArray(element.elements)) {\n element.elements.forEach(childElement => {\n this._renderElementInForm(form, childElement, schema, modelName, engine);\n });\n }\n\n step.addContent(form);\n wizard.addStep(step);\n } else {\n Logger.warn(`[MetaUI] Top-level element '${element.type}' inside WizardLayout must be 'Group' or 'WizardStep'.`, \"\", \"WizardLayout\");\n }\n });\n\n return wizard;\n }\n\n /**\n * Synthesizes a field into the wizard step form.\n * @param form The SimpleForm belonging to the step.\n * @param element The layout element definition.\n * @param schema The schema reference.\n * @param modelName The UI5 data model name.\n * @param engine The core Engine instance.\n */\n private _renderElementInForm(form: SimpleForm, element: ILayoutElement, schema: ISchema, modelName: string, engine: Engine): void {\n if (element.type === \"Control\") {\n if (!element.scope || !element.scope.startsWith(\"#/properties/\")) {\n Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, \"\", \"WizardLayout\");\n return;\n }\n \n const { meta, bindingPath, propKey } = SchemaNormalizer.resolveScope(schema, element.scope);\n \n if (!meta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, \"\", \"WizardLayout\");\n return;\n }\n\n try {\n const labelText = element.label || meta.ui?.label || propKey;\n const label = new Label({\n text: labelText,\n required: meta.required\n });\n\n const effectiveMeta = { ...meta };\n if (element.widget) {\n effectiveMeta.ui = { ...meta.ui, widget: element.widget };\n }\n\n const control = engine.generateField(effectiveMeta, `/${bindingPath}`, modelName);\n\n if (effectiveMeta.ui?.fullWidth) {\n sap.ui.require([\"sap/ui/layout/GridData\"], (GridData: any) => {\n control.setLayoutData(new GridData({ span: \"XL12 L12 M12 S12\" }));\n });\n }\n\n form.addContent(label);\n form.addContent(control);\n } catch (error) {\n Logger.error(`[MetaUI] Failed to render Wizard field ${propKey}`, (error as Error).message, \"WizardLayout\");\n form.addContent(new Label({ text: propKey }));\n }\n } else {\n Logger.warn(`[MetaUI] Nested groups within Wizard steps are not fully supported in SimpleForm yet.`, \"\", \"WizardLayout\");\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WizardLayout-dbg.js","names":["SchemaNormalizer","___core_SchemaNormalizer","Logger","___utils_Logger","WizardLayout","render","schema","modelName","engine","onSubmit","wizard","Wizard","renderMode","showNextButton","complete","uiLayout","Array","isArray","warn","forEach","element","type","step","WizardStep","title","label","validated","form","SimpleForm","editable","layout","labelSpanXL","labelSpanL","labelSpanM","labelSpanS","adjustLabelSpan","emptySpanXL","emptySpanL","emptySpanM","emptySpanS","columnsXL","columnsL","columnsM","singleContainerFullSize","elements","childElement","_renderElementInForm","addContent","addStep","scope","startsWith","error","meta","bindingPath","propKey","resolveScope","labelText","ui","Label","text","required","effectiveMeta","widget","control","generateField","fullWidth","sap","require","GridData","setLayoutData","span","message","__exports","__esModule"],"sources":["WizardLayout.ts"],"sourcesContent":["/**\n * @file WizardLayout.ts\n * @description Generates a fully responsive SAP Fiori Wizard layout.\n */\n\nimport Wizard from \"sap/m/Wizard\";\nimport WizardStep from \"sap/m/WizardStep\";\nimport SimpleForm from \"sap/ui/layout/form/SimpleForm\";\nimport Label from \"sap/m/Label\";\nimport VBox from \"sap/m/VBox\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { SchemaNormalizer } from \"../core/SchemaNormalizer\";\nimport { Logger } from \"../utils/Logger\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Layout Manager responsible for generating a responsive SAP Fiori Wizard.\n * It segments the schema fields into discrete Wizard Steps based on `uiLayout` elements \n * of type `Group` or `WizardStep`.\n * \n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class WizardLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema properties into a paginated UI5 Wizard using uiLayout.\n * \n * @param schema The active JSON schema object.\n * @param modelName The bound UI5 model name.\n * @param engine The central orchestrator for delegating plugin generation.\n * @param onSubmit Hook executed when the Wizard's native 'complete' event is fired.\n * @returns {Control} The generated sap.m.Wizard control.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {\n const wizard = new Wizard({\n renderMode: \"Page\",\n showNextButton: true,\n complete: function() {\n if (onSubmit) onSubmit();\n }\n });\n\n if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n Logger.warn(\"[MetaUI] Missing 'uiLayout' array in wizard schema. Wizard will not render any steps.\");\n return wizard;\n }\n\n schema.uiLayout.forEach((element: ILayoutElement) => {\n if (element.type === \"Group\" || element.type === \"WizardStep\") {\n const step = new WizardStep({\n title: element.label || \"Step\",\n validated: true // The PipelineManager handles global validation, wizard step validation can be local later\n });\n\n const form = new SimpleForm({\n editable: true,\n layout: \"ResponsiveGridLayout\",\n labelSpanXL: 4, labelSpanL: 4, labelSpanM: 4, labelSpanS: 12,\n adjustLabelSpan: false,\n emptySpanXL: 0, emptySpanL: 0, emptySpanM: 0, emptySpanS: 0,\n columnsXL: 1, columnsL: 1, columnsM: 1,\n singleContainerFullSize: false\n });\n \n if (element.elements && Array.isArray(element.elements)) {\n element.elements.forEach(childElement => {\n this._renderElementInForm(form, childElement, schema, modelName, engine);\n });\n }\n\n step.addContent(form);\n wizard.addStep(step);\n } else {\n Logger.warn(`[MetaUI] Top-level element '${element.type}' inside WizardLayout must be 'Group' or 'WizardStep'.`, \"\", \"WizardLayout\");\n }\n });\n\n return wizard;\n }\n\n /**\n * Synthesizes a field into the wizard step form.\n * @param form The SimpleForm belonging to the step.\n * @param element The layout element definition.\n * @param schema The schema reference.\n * @param modelName The UI5 data model name.\n * @param engine The core Engine instance.\n */\n private _renderElementInForm(form: SimpleForm, element: ILayoutElement, schema: ISchema, modelName: string, engine: Engine): void {\n if (element.type === \"Control\") {\n if (!element.scope || !element.scope.startsWith(\"#/properties/\")) {\n Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, \"\", \"WizardLayout\");\n return;\n }\n \n const { meta, bindingPath, propKey } = SchemaNormalizer.resolveScope(schema, element.scope);\n \n if (!meta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, \"\", \"WizardLayout\");\n return;\n }\n\n try {\n const labelText = element.label || meta.ui?.label || propKey;\n const label = new Label({\n text: labelText,\n required: meta.required\n });\n\n const effectiveMeta = { ...meta };\n if (element.widget) {\n effectiveMeta.ui = { ...meta.ui, widget: element.widget };\n }\n\n const control = engine.generateField(effectiveMeta, `/${bindingPath}`, modelName);\n\n if (effectiveMeta.ui?.fullWidth) {\n sap.ui.require([\"sap/ui/layout/GridData\"], (GridData: typeof import(\"sap/ui/layout/GridData\").default) => {\n control.setLayoutData(new GridData({ span: \"XL12 L12 M12 S12\" }));\n });\n }\n\n form.addContent(label);\n form.addContent(control);\n } catch (error) {\n Logger.error(`[MetaUI] Failed to render Wizard field ${propKey}`, (error as Error).message, \"WizardLayout\");\n form.addContent(new Label({ text: propKey }));\n }\n } else {\n Logger.warn(`[MetaUI] Nested groups within Wizard steps are not fully supported in SimpleForm yet.`, \"\", \"WizardLayout\");\n }\n }\n}\n"],"mappings":";;;QAaSA,gBAAgB,GAAAC,wBAAA;EAAA,MAChBC,MAAM,GAAAC,eAAA;EAGf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,YAAY,CAA2B;IAChD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACWC,MAAMA,CAACC,MAAe,EAAEC,SAAiB,EAAEC,MAAc,EAAEC,QAAqB,EAAW;MAC9F,MAAMC,MAAM,GAAG,IAAIC,MAAM,CAAC;QACtBC,UAAU,EAAE,MAAM;QAClBC,cAAc,EAAE,IAAI;QACpBC,QAAQ,EAAE,SAAAA,CAAA,EAAW;UACjB,IAAIL,QAAQ,EAAEA,QAAQ,CAAC,CAAC;QAC5B;MACJ,CAAC,CAAC;MAEF,IAAI,CAACH,MAAM,CAACS,QAAQ,IAAI,CAACC,KAAK,CAACC,OAAO,CAACX,MAAM,CAACS,QAAQ,CAAC,EAAE;QACrDb,MAAM,CAACgB,IAAI,CAAC,uFAAuF,CAAC;QACpG,OAAOR,MAAM;MACjB;MAEAJ,MAAM,CAACS,QAAQ,CAACI,OAAO,CAAEC,OAAuB,IAAK;QACjD,IAAIA,OAAO,CAACC,IAAI,KAAK,OAAO,IAAID,OAAO,CAACC,IAAI,KAAK,YAAY,EAAE;UAC3D,MAAMC,IAAI,GAAG,IAAIC,UAAU,CAAC;YACxBC,KAAK,EAAEJ,OAAO,CAACK,KAAK,IAAI,MAAM;YAC9BC,SAAS,EAAE,IAAI,CAAC;UACpB,CAAC,CAAC;UAEF,MAAMC,IAAI,GAAG,IAAIC,UAAU,CAAC;YACxBC,QAAQ,EAAE,IAAI;YACdC,MAAM,EAAE,sBAAsB;YAC9BC,WAAW,EAAE,CAAC;YAAEC,UAAU,EAAE,CAAC;YAAEC,UAAU,EAAE,CAAC;YAAEC,UAAU,EAAE,EAAE;YAC5DC,eAAe,EAAE,KAAK;YACtBC,WAAW,EAAE,CAAC;YAAEC,UAAU,EAAE,CAAC;YAAEC,UAAU,EAAE,CAAC;YAAEC,UAAU,EAAE,CAAC;YAC3DC,SAAS,EAAE,CAAC;YAAEC,QAAQ,EAAE,CAAC;YAAEC,QAAQ,EAAE,CAAC;YACtCC,uBAAuB,EAAE;UAC7B,CAAC,CAAC;UAEF,IAAIvB,OAAO,CAACwB,QAAQ,IAAI5B,KAAK,CAACC,OAAO,CAACG,OAAO,CAACwB,QAAQ,CAAC,EAAE;YACrDxB,OAAO,CAACwB,QAAQ,CAACzB,OAAO,CAAC0B,YAAY,IAAI;cACrC,IAAI,CAACC,oBAAoB,CAACnB,IAAI,EAAEkB,YAAY,EAAEvC,MAAM,EAAEC,SAAS,EAAEC,MAAM,CAAC;YAC5E,CAAC,CAAC;UACN;UAEAc,IAAI,CAACyB,UAAU,CAACpB,IAAI,CAAC;UACrBjB,MAAM,CAACsC,OAAO,CAAC1B,IAAI,CAAC;QACxB,CAAC,MAAM;UACHpB,MAAM,CAACgB,IAAI,CAAC,+BAA+BE,OAAO,CAACC,IAAI,wDAAwD,EAAE,EAAE,EAAE,cAAc,CAAC;QACxI;MACJ,CAAC,CAAC;MAEF,OAAOX,MAAM;IACjB;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACYoC,oBAAoBA,CAACnB,IAAgB,EAAEP,OAAuB,EAAEd,MAAe,EAAEC,SAAiB,EAAEC,MAAc,EAAQ;MAC9H,IAAIY,OAAO,CAACC,IAAI,KAAK,SAAS,EAAE;QAC5B,IAAI,CAACD,OAAO,CAAC6B,KAAK,IAAI,CAAC7B,OAAO,CAAC6B,KAAK,CAACC,UAAU,CAAC,eAAe,CAAC,EAAE;UAC9DhD,MAAM,CAACiD,KAAK,CAAC,2BAA2B/B,OAAO,CAAC6B,KAAK,wBAAwB,EAAE,EAAE,EAAE,cAAc,CAAC;UAClG;QACJ;QAEA,MAAM;UAAEG,IAAI;UAAEC,WAAW;UAAEC;QAAQ,CAAC,GAAGtD,gBAAgB,CAACuD,YAAY,CAACjD,MAAM,EAAEc,OAAO,CAAC6B,KAAK,CAAC;QAE3F,IAAI,CAACG,IAAI,EAAE;UACPlD,MAAM,CAACiD,KAAK,CAAC,sBAAsBG,OAAO,oCAAoC,EAAE,EAAE,EAAE,cAAc,CAAC;UACnG;QACJ;QAEA,IAAI;UACA,MAAME,SAAS,GAAGpC,OAAO,CAACK,KAAK,IAAI2B,IAAI,CAACK,EAAE,EAAEhC,KAAK,IAAI6B,OAAO;UAC5D,MAAM7B,KAAK,GAAG,IAAIiC,KAAK,CAAC;YACpBC,IAAI,EAAEH,SAAS;YACfI,QAAQ,EAAER,IAAI,CAACQ;UACnB,CAAC,CAAC;UAEF,MAAMC,aAAa,GAAG;YAAE,GAAGT;UAAK,CAAC;UACjC,IAAIhC,OAAO,CAAC0C,MAAM,EAAE;YAChBD,aAAa,CAACJ,EAAE,GAAG;cAAE,GAAGL,IAAI,CAACK,EAAE;cAAEK,MAAM,EAAE1C,OAAO,CAAC0C;YAAO,CAAC;UAC7D;UAEA,MAAMC,OAAO,GAAGvD,MAAM,CAACwD,aAAa,CAACH,aAAa,EAAE,IAAIR,WAAW,EAAE,EAAE9C,SAAS,CAAC;UAEjF,IAAIsD,aAAa,CAACJ,EAAE,EAAEQ,SAAS,EAAE;YAC7BC,GAAG,CAACT,EAAE,CAACU,OAAO,CAAC,CAAC,wBAAwB,CAAC,EAAGC,QAAyD,IAAK;cACtGL,OAAO,CAACM,aAAa,CAAC,IAAID,QAAQ,CAAC;gBAAEE,IAAI,EAAE;cAAmB,CAAC,CAAC,CAAC;YACrE,CAAC,CAAC;UACN;UAEA3C,IAAI,CAACoB,UAAU,CAACtB,KAAK,CAAC;UACtBE,IAAI,CAACoB,UAAU,CAACgB,OAAO,CAAC;QAC5B,CAAC,CAAC,OAAOZ,KAAK,EAAE;UACZjD,MAAM,CAACiD,KAAK,CAAC,0CAA0CG,OAAO,EAAE,EAAGH,KAAK,CAAWoB,OAAO,EAAE,cAAc,CAAC;UAC3G5C,IAAI,CAACoB,UAAU,CAAC,IAAIW,KAAK,CAAC;YAAEC,IAAI,EAAEL;UAAQ,CAAC,CAAC,CAAC;QACjD;MACJ,CAAC,MAAM;QACHpD,MAAM,CAACgB,IAAI,CAAC,uFAAuF,EAAE,EAAE,EAAE,cAAc,CAAC;MAC5H;IACJ;EACJ;EAAC,IAAAsD,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAApE,YAAA,GAAAA,YAAA;EAAA,OAAAoE,SAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"WizardLayout.js","names":["SchemaNormalizer","___core_SchemaNormalizer","Logger","___utils_Logger","WizardLayout","render","schema","modelName","engine","onSubmit","wizard","Wizard","renderMode","showNextButton","complete","uiLayout","Array","isArray","warn","forEach","element","type","step","WizardStep","title","label","validated","form","SimpleForm","editable","layout","labelSpanXL","labelSpanL","labelSpanM","labelSpanS","adjustLabelSpan","emptySpanXL","emptySpanL","emptySpanM","emptySpanS","columnsXL","columnsL","columnsM","singleContainerFullSize","elements","childElement","this","_renderElementInForm","addContent","addStep","scope","startsWith","error","meta","bindingPath","propKey","resolveScope","labelText","ui","Label","text","required","effectiveMeta","widget","control","generateField","fullWidth","sap","require","GridData","setLayoutData","span","message","__exports","__esModule"],"sources":["WizardLayout.ts"],"sourcesContent":["/**\n * @file WizardLayout.ts\n * @description Generates a fully responsive SAP Fiori Wizard layout.\n */\n\nimport Wizard from \"sap/m/Wizard\";\nimport WizardStep from \"sap/m/WizardStep\";\nimport SimpleForm from \"sap/ui/layout/form/SimpleForm\";\nimport Label from \"sap/m/Label\";\nimport VBox from \"sap/m/VBox\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { SchemaNormalizer } from \"../core/SchemaNormalizer\";\nimport { Logger } from \"../utils/Logger\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Layout Manager responsible for generating a responsive SAP Fiori Wizard.\n * It segments the schema fields into discrete Wizard Steps based on `uiLayout` elements \n * of type `Group` or `WizardStep`.\n * \n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class WizardLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema properties into a paginated UI5 Wizard using uiLayout.\n * \n * @param schema The active JSON schema object.\n * @param modelName The bound UI5 model name.\n * @param engine The central orchestrator for delegating plugin generation.\n * @param onSubmit Hook executed when the Wizard's native 'complete' event is fired.\n * @returns {Control} The generated sap.m.Wizard control.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {\n const wizard = new Wizard({\n renderMode: \"Page\",\n showNextButton: true,\n complete: function() {\n if (onSubmit) onSubmit();\n }\n });\n\n if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n Logger.warn(\"[MetaUI] Missing 'uiLayout' array in wizard schema. Wizard will not render any steps.\");\n return wizard;\n }\n\n schema.uiLayout.forEach((element: ILayoutElement) => {\n if (element.type === \"Group\" || element.type === \"WizardStep\") {\n const step = new WizardStep({\n title: element.label || \"Step\",\n validated: true // The PipelineManager handles global validation, wizard step validation can be local later\n });\n\n const form = new SimpleForm({\n editable: true,\n layout: \"ResponsiveGridLayout\",\n labelSpanXL: 4, labelSpanL: 4, labelSpanM: 4, labelSpanS: 12,\n adjustLabelSpan: false,\n emptySpanXL: 0, emptySpanL: 0, emptySpanM: 0, emptySpanS: 0,\n columnsXL: 1, columnsL: 1, columnsM: 1,\n singleContainerFullSize: false\n });\n \n if (element.elements && Array.isArray(element.elements)) {\n element.elements.forEach(childElement => {\n this._renderElementInForm(form, childElement, schema, modelName, engine);\n });\n }\n\n step.addContent(form);\n wizard.addStep(step);\n } else {\n Logger.warn(`[MetaUI] Top-level element '${element.type}' inside WizardLayout must be 'Group' or 'WizardStep'.`, \"\", \"WizardLayout\");\n }\n });\n\n return wizard;\n }\n\n /**\n * Synthesizes a field into the wizard step form.\n * @param form The SimpleForm belonging to the step.\n * @param element The layout element definition.\n * @param schema The schema reference.\n * @param modelName The UI5 data model name.\n * @param engine The core Engine instance.\n */\n private _renderElementInForm(form: SimpleForm, element: ILayoutElement, schema: ISchema, modelName: string, engine: Engine): void {\n if (element.type === \"Control\") {\n if (!element.scope || !element.scope.startsWith(\"#/properties/\")) {\n Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, \"\", \"WizardLayout\");\n return;\n }\n \n const { meta, bindingPath, propKey } = SchemaNormalizer.resolveScope(schema, element.scope);\n \n if (!meta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, \"\", \"WizardLayout\");\n return;\n }\n\n try {\n const labelText = element.label || meta.ui?.label || propKey;\n const label = new Label({\n text: labelText,\n required: meta.required\n });\n\n const effectiveMeta = { ...meta };\n if (element.widget) {\n effectiveMeta.ui = { ...meta.ui, widget: element.widget };\n }\n\n const control = engine.generateField(effectiveMeta, `/${bindingPath}`, modelName);\n\n if (effectiveMeta.ui?.fullWidth) {\n sap.ui.require([\"sap/ui/layout/GridData\"], (GridData: any) => {\n control.setLayoutData(new GridData({ span: \"XL12 L12 M12 S12\" }));\n });\n }\n\n form.addContent(label);\n form.addContent(control);\n } catch (error) {\n Logger.error(`[MetaUI] Failed to render Wizard field ${propKey}`, (error as Error).message, \"WizardLayout\");\n form.addContent(new Label({ text: propKey }));\n }\n } else {\n Logger.warn(`[MetaUI] Nested groups within Wizard steps are not fully supported in SimpleForm yet.`, \"\", \"WizardLayout\");\n }\n }\n}\n"],"mappings":"sLAaSA,EAAgBC,EAAA,0BAChBC,EAAMC,EAAA,UAWR,MAAMC,EAUFC,OAAOC,EAAiBC,EAAmBC,EAAgBC,GAC9D,MAAMC,EAAS,IAAIC,EAAO,CACtBC,WAAY,OACZC,eAAgB,KAChBC,SAAU,WACN,GAAIL,EAAUA,GAClB,IAGJ,IAAKH,EAAOS,WAAaC,MAAMC,QAAQX,EAAOS,UAAW,CACrDb,EAAOgB,KAAK,yFACZ,OAAOR,CACX,CAEAJ,EAAOS,SAASI,QAASC,IACrB,GAAIA,EAAQC,OAAS,SAAWD,EAAQC,OAAS,aAAc,CAC3D,MAAMC,EAAO,IAAIC,EAAW,CACxBC,MAAOJ,EAAQK,OAAS,OACxBC,UAAW,OAGf,MAAMC,EAAO,IAAIC,EAAW,CACxBC,SAAU,KACVC,OAAQ,uBACRC,YAAa,EAAGC,WAAY,EAAGC,WAAY,EAAGC,WAAY,GAC1DC,gBAAiB,MACjBC,YAAa,EAAGC,WAAY,EAAGC,WAAY,EAAGC,WAAY,EAC1DC,UAAW,EAAGC,SAAU,EAAGC,SAAU,EACrCC,wBAAyB,QAG7B,GAAIvB,EAAQwB,UAAY5B,MAAMC,QAAQG,EAAQwB,UAAW,CACrDxB,EAAQwB,SAASzB,QAAQ0B,IACrBC,KAAKC,qBAAqBpB,EAAMkB,EAAcvC,EAAQC,EAAWC,IAEzE,CAEAc,EAAK0B,WAAWrB,GAChBjB,EAAOuC,QAAQ3B,EACnB,KAAO,CACHpB,EAAOgB,KAAK,+BAA+BE,EAAQC,6DAA8D,GAAI,eACzH,IAGJ,OAAOX,CACX,CAUQqC,qBAAqBpB,EAAkBP,EAAyBd,EAAiBC,EAAmBC,GACxG,GAAIY,EAAQC,OAAS,UAAW,CAC5B,IAAKD,EAAQ8B,QAAU9B,EAAQ8B,MAAMC,WAAW,iBAAkB,CAC9DjD,EAAOkD,MAAM,2BAA2BhC,EAAQ8B,8BAA+B,GAAI,gBACnF,MACJ,CAEA,MAAMG,KAAEA,EAAIC,YAAEA,EAAWC,QAAEA,GAAYvD,EAAiBwD,aAAalD,EAAQc,EAAQ8B,OAErF,IAAKG,EAAM,CACPnD,EAAOkD,MAAM,sBAAsBG,sCAA6C,GAAI,gBACpF,MACJ,CAEA,IACI,MAAME,EAAYrC,EAAQK,OAAS4B,EAAKK,IAAIjC,OAAS8B,EACrD,MAAM9B,EAAQ,IAAIkC,EAAM,CACpBC,KAAMH,EACNI,SAAUR,EAAKQ,WAGnB,MAAMC,EAAgB,IAAKT,GAC3B,GAAIjC,EAAQ2C,OAAQ,CAChBD,EAAcJ,GAAK,IAAKL,EAAKK,GAAIK,OAAQ3C,EAAQ2C,OACrD,CAEA,MAAMC,EAAUxD,EAAOyD,cAAcH,EAAe,IAAIR,IAAe/C,GAEvE,GAAIuD,EAAcJ,IAAIQ,UAAW,CAC7BC,IAAIT,GAAGU,QAAQ,CAAC,0BAA4BC,IACxCL,EAAQM,cAAc,IAAID,EAAS,CAAEE,KAAM,uBAEnD,CAEA5C,EAAKqB,WAAWvB,GAChBE,EAAKqB,WAAWgB,EACpB,CAAE,MAAOZ,GACLlD,EAAOkD,MAAM,0CAA0CG,IAAYH,EAAgBoB,QAAS,gBAC5F7C,EAAKqB,WAAW,IAAIW,EAAM,CAAEC,KAAML,IACtC,CACJ,KAAO,CACHrD,EAAOgB,KAAK,wFAAyF,GAAI,eAC7G,CACJ,EACH,IAAAuD,EAAA,CAAAC,WAAA,MAAAD,EAAArE,eAAA,OAAAqE,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"WizardLayout.js","names":["SchemaNormalizer","___core_SchemaNormalizer","Logger","___utils_Logger","WizardLayout","render","schema","modelName","engine","onSubmit","wizard","Wizard","renderMode","showNextButton","complete","uiLayout","Array","isArray","warn","forEach","element","type","step","WizardStep","title","label","validated","form","SimpleForm","editable","layout","labelSpanXL","labelSpanL","labelSpanM","labelSpanS","adjustLabelSpan","emptySpanXL","emptySpanL","emptySpanM","emptySpanS","columnsXL","columnsL","columnsM","singleContainerFullSize","elements","childElement","this","_renderElementInForm","addContent","addStep","scope","startsWith","error","meta","bindingPath","propKey","resolveScope","labelText","ui","Label","text","required","effectiveMeta","widget","control","generateField","fullWidth","sap","require","GridData","setLayoutData","span","message","__exports","__esModule"],"sources":["WizardLayout.ts"],"sourcesContent":["/**\n * @file WizardLayout.ts\n * @description Generates a fully responsive SAP Fiori Wizard layout.\n */\n\nimport Wizard from \"sap/m/Wizard\";\nimport WizardStep from \"sap/m/WizardStep\";\nimport SimpleForm from \"sap/ui/layout/form/SimpleForm\";\nimport Label from \"sap/m/Label\";\nimport VBox from \"sap/m/VBox\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { SchemaNormalizer } from \"../core/SchemaNormalizer\";\nimport { Logger } from \"../utils/Logger\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Layout Manager responsible for generating a responsive SAP Fiori Wizard.\n * It segments the schema fields into discrete Wizard Steps based on `uiLayout` elements \n * of type `Group` or `WizardStep`.\n * \n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class WizardLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema properties into a paginated UI5 Wizard using uiLayout.\n * \n * @param schema The active JSON schema object.\n * @param modelName The bound UI5 model name.\n * @param engine The central orchestrator for delegating plugin generation.\n * @param onSubmit Hook executed when the Wizard's native 'complete' event is fired.\n * @returns {Control} The generated sap.m.Wizard control.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {\n const wizard = new Wizard({\n renderMode: \"Page\",\n showNextButton: true,\n complete: function() {\n if (onSubmit) onSubmit();\n }\n });\n\n if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n Logger.warn(\"[MetaUI] Missing 'uiLayout' array in wizard schema. Wizard will not render any steps.\");\n return wizard;\n }\n\n schema.uiLayout.forEach((element: ILayoutElement) => {\n if (element.type === \"Group\" || element.type === \"WizardStep\") {\n const step = new WizardStep({\n title: element.label || \"Step\",\n validated: true // The PipelineManager handles global validation, wizard step validation can be local later\n });\n\n const form = new SimpleForm({\n editable: true,\n layout: \"ResponsiveGridLayout\",\n labelSpanXL: 4, labelSpanL: 4, labelSpanM: 4, labelSpanS: 12,\n adjustLabelSpan: false,\n emptySpanXL: 0, emptySpanL: 0, emptySpanM: 0, emptySpanS: 0,\n columnsXL: 1, columnsL: 1, columnsM: 1,\n singleContainerFullSize: false\n });\n \n if (element.elements && Array.isArray(element.elements)) {\n element.elements.forEach(childElement => {\n this._renderElementInForm(form, childElement, schema, modelName, engine);\n });\n }\n\n step.addContent(form);\n wizard.addStep(step);\n } else {\n Logger.warn(`[MetaUI] Top-level element '${element.type}' inside WizardLayout must be 'Group' or 'WizardStep'.`, \"\", \"WizardLayout\");\n }\n });\n\n return wizard;\n }\n\n /**\n * Synthesizes a field into the wizard step form.\n * @param form The SimpleForm belonging to the step.\n * @param element The layout element definition.\n * @param schema The schema reference.\n * @param modelName The UI5 data model name.\n * @param engine The core Engine instance.\n */\n private _renderElementInForm(form: SimpleForm, element: ILayoutElement, schema: ISchema, modelName: string, engine: Engine): void {\n if (element.type === \"Control\") {\n if (!element.scope || !element.scope.startsWith(\"#/properties/\")) {\n Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, \"\", \"WizardLayout\");\n return;\n }\n \n const { meta, bindingPath, propKey } = SchemaNormalizer.resolveScope(schema, element.scope);\n \n if (!meta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, \"\", \"WizardLayout\");\n return;\n }\n\n try {\n const labelText = element.label || meta.ui?.label || propKey;\n const label = new Label({\n text: labelText,\n required: meta.required\n });\n\n const effectiveMeta = { ...meta };\n if (element.widget) {\n effectiveMeta.ui = { ...meta.ui, widget: element.widget };\n }\n\n const control = engine.generateField(effectiveMeta, `/${bindingPath}`, modelName);\n\n if (effectiveMeta.ui?.fullWidth) {\n sap.ui.require([\"sap/ui/layout/GridData\"], (GridData: typeof import(\"sap/ui/layout/GridData\").default) => {\n control.setLayoutData(new GridData({ span: \"XL12 L12 M12 S12\" }));\n });\n }\n\n form.addContent(label);\n form.addContent(control);\n } catch (error) {\n Logger.error(`[MetaUI] Failed to render Wizard field ${propKey}`, (error as Error).message, \"WizardLayout\");\n form.addContent(new Label({ text: propKey }));\n }\n } else {\n Logger.warn(`[MetaUI] Nested groups within Wizard steps are not fully supported in SimpleForm yet.`, \"\", \"WizardLayout\");\n }\n }\n}\n"],"mappings":"sLAaSA,EAAgBC,EAAA,0BAChBC,EAAMC,EAAA,UAWR,MAAMC,EAUFC,OAAOC,EAAiBC,EAAmBC,EAAgBC,GAC9D,MAAMC,EAAS,IAAIC,EAAO,CACtBC,WAAY,OACZC,eAAgB,KAChBC,SAAU,WACN,GAAIL,EAAUA,GAClB,IAGJ,IAAKH,EAAOS,WAAaC,MAAMC,QAAQX,EAAOS,UAAW,CACrDb,EAAOgB,KAAK,yFACZ,OAAOR,CACX,CAEAJ,EAAOS,SAASI,QAASC,IACrB,GAAIA,EAAQC,OAAS,SAAWD,EAAQC,OAAS,aAAc,CAC3D,MAAMC,EAAO,IAAIC,EAAW,CACxBC,MAAOJ,EAAQK,OAAS,OACxBC,UAAW,OAGf,MAAMC,EAAO,IAAIC,EAAW,CACxBC,SAAU,KACVC,OAAQ,uBACRC,YAAa,EAAGC,WAAY,EAAGC,WAAY,EAAGC,WAAY,GAC1DC,gBAAiB,MACjBC,YAAa,EAAGC,WAAY,EAAGC,WAAY,EAAGC,WAAY,EAC1DC,UAAW,EAAGC,SAAU,EAAGC,SAAU,EACrCC,wBAAyB,QAG7B,GAAIvB,EAAQwB,UAAY5B,MAAMC,QAAQG,EAAQwB,UAAW,CACrDxB,EAAQwB,SAASzB,QAAQ0B,IACrBC,KAAKC,qBAAqBpB,EAAMkB,EAAcvC,EAAQC,EAAWC,IAEzE,CAEAc,EAAK0B,WAAWrB,GAChBjB,EAAOuC,QAAQ3B,EACnB,KAAO,CACHpB,EAAOgB,KAAK,+BAA+BE,EAAQC,6DAA8D,GAAI,eACzH,IAGJ,OAAOX,CACX,CAUQqC,qBAAqBpB,EAAkBP,EAAyBd,EAAiBC,EAAmBC,GACxG,GAAIY,EAAQC,OAAS,UAAW,CAC5B,IAAKD,EAAQ8B,QAAU9B,EAAQ8B,MAAMC,WAAW,iBAAkB,CAC9DjD,EAAOkD,MAAM,2BAA2BhC,EAAQ8B,8BAA+B,GAAI,gBACnF,MACJ,CAEA,MAAMG,KAAEA,EAAIC,YAAEA,EAAWC,QAAEA,GAAYvD,EAAiBwD,aAAalD,EAAQc,EAAQ8B,OAErF,IAAKG,EAAM,CACPnD,EAAOkD,MAAM,sBAAsBG,sCAA6C,GAAI,gBACpF,MACJ,CAEA,IACI,MAAME,EAAYrC,EAAQK,OAAS4B,EAAKK,IAAIjC,OAAS8B,EACrD,MAAM9B,EAAQ,IAAIkC,EAAM,CACpBC,KAAMH,EACNI,SAAUR,EAAKQ,WAGnB,MAAMC,EAAgB,IAAKT,GAC3B,GAAIjC,EAAQ2C,OAAQ,CAChBD,EAAcJ,GAAK,IAAKL,EAAKK,GAAIK,OAAQ3C,EAAQ2C,OACrD,CAEA,MAAMC,EAAUxD,EAAOyD,cAAcH,EAAe,IAAIR,IAAe/C,GAEvE,GAAIuD,EAAcJ,IAAIQ,UAAW,CAC7BC,IAAIT,GAAGU,QAAQ,CAAC,0BAA4BC,IACxCL,EAAQM,cAAc,IAAID,EAAS,CAAEE,KAAM,uBAEnD,CAEA5C,EAAKqB,WAAWvB,GAChBE,EAAKqB,WAAWgB,EACpB,CAAE,MAAOZ,GACLlD,EAAOkD,MAAM,0CAA0CG,IAAYH,EAAgBoB,QAAS,gBAC5F7C,EAAKqB,WAAW,IAAIW,EAAM,CAAEC,KAAML,IACtC,CACJ,KAAO,CACHrD,EAAOgB,KAAK,wFAAyF,GAAI,eAC7G,CACJ,EACH,IAAAuD,EAAA,CAAAC,WAAA,MAAAD,EAAArE,eAAA,OAAAqE,CAAA","ignoreList":[]}
@@ -117,7 +117,7 @@ export class WizardLayout implements ILayoutManager {
117
117
  const control = engine.generateField(effectiveMeta, `/${bindingPath}`, modelName);
118
118
 
119
119
  if (effectiveMeta.ui?.fullWidth) {
120
- sap.ui.require(["sap/ui/layout/GridData"], (GridData: any) => {
120
+ sap.ui.require(["sap/ui/layout/GridData"], (GridData: typeof import("sap/ui/layout/GridData").default) => {
121
121
  control.setLayoutData(new GridData({ span: "XL12 L12 M12 S12" }));
122
122
  });
123
123
  }
@@ -1,4 +1,4 @@
1
- sap.ui.define(["sap/ui/core/Core"], function (Core) {
1
+ sap.ui.define(["sap/ui/core/Core", "nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin", "nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin", "nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin", "nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin", "nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin", "nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin", "nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin", "nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator", "nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder", "nz/co/siliconst/ui5/metaui/layouts/FormLayout", "nz/co/siliconst/ui5/metaui/layouts/TableLayout", "nz/co/siliconst/ui5/metaui/layouts/WizardLayout", "nz/co/siliconst/ui5/metaui/layouts/CompactLayout"], function (Core, __nz_co_siliconst_ui5_metaui_plugins_controls_StringPlugin, __nz_co_siliconst_ui5_metaui_plugins_controls_NumberPlugin, __nz_co_siliconst_ui5_metaui_plugins_controls_BooleanPlugin, __nz_co_siliconst_ui5_metaui_plugins_controls_ObjectPlugin, __nz_co_siliconst_ui5_metaui_plugins_controls_ArrayPlugin, __nz_co_siliconst_ui5_metaui_plugins_controls_DropdownPlugin, __nz_co_siliconst_ui5_metaui_plugins_controls_DatePlugin, __nz_co_siliconst_ui5_metaui_core_DefaultLayoutGenerator, __nz_co_siliconst_ui5_metaui_utils_ExpressionBuilder, __nz_co_siliconst_ui5_metaui_layouts_FormLayout, __nz_co_siliconst_ui5_metaui_layouts_TableLayout, __nz_co_siliconst_ui5_metaui_layouts_WizardLayout, __nz_co_siliconst_ui5_metaui_layouts_CompactLayout) {
2
2
  "use strict";
3
3
 
4
4
  // Delegate to standard library registration
@@ -6,14 +6,14 @@ sap.ui.define(["sap/ui/core/Core"], function (Core) {
6
6
  name: "nz.co.siliconst.ui5.metaui",
7
7
  version: "1.0.0",
8
8
  dependencies: ["sap.ui.core", "sap.m", "sap.ui.layout", "sap.ui.table"],
9
- controls: ["nz.co.siliconst.ui5.metaui.controls.GeneratorHost", "nz.co.siliconst.ui5.metaui.controls.BaseHardwareControl", "nz.co.siliconst.ui5.metaui.controls.CameraControl", "nz.co.siliconst.ui5.metaui.controls.BarcodeScannerControl", "nz.co.siliconst.ui5.metaui.controls.SignatureControl", "nz.co.siliconst.ui5.metaui.controls.VoiceInputControl", "nz.co.siliconst.ui5.metaui.controls.GeolocationControl", "nz.co.siliconst.ui5.metaui.controls.RichTextControl"],
9
+ controls: ["nz.co.siliconst.ui5.metaui.controls.DynamicHost", "nz.co.siliconst.ui5.metaui.controls.host.GeneratorHost", "nz.co.siliconst.ui5.metaui.controls.BaseHardwareControl", "nz.co.siliconst.ui5.metaui.controls.CameraControl", "nz.co.siliconst.ui5.metaui.controls.BarcodeScannerControl", "nz.co.siliconst.ui5.metaui.controls.SignatureControl", "nz.co.siliconst.ui5.metaui.controls.VoiceInputControl", "nz.co.siliconst.ui5.metaui.controls.GeolocationControl", "nz.co.siliconst.ui5.metaui.controls.RichTextControl"],
10
10
  elements: [],
11
11
  interfaces: [],
12
12
  noLibraryCSS: true
13
13
  });
14
14
 
15
15
  // Exporting window object safely for UI5 compatibility if needed
16
- var __exports = window["nz"]["co"]["siliconst"]["ui5"]["metaui"];
16
+ var __exports = window.nz.co.siliconst.ui5.metaui;
17
17
  return __exports;
18
18
  });
19
19
  //# sourceMappingURL=library-dbg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"library-dbg.js","names":["Core","initLibrary","name","version","dependencies","controls","elements","interfaces","noLibraryCSS","__exports","window"],"sources":["library.ts"],"sourcesContent":["/**\n * @file library.ts\n * @description Standard SAP UI5 library registration file. Exposes the MetaUI namespace \n * and automatically bootstraps the internal PluginRegistry.\n */\n\nimport Core from \"sap/ui/core/Core\";\n\n// Delegate to standard library registration\nCore.initLibrary({\n name: \"nz.co.siliconst.ui5.metaui\",\n version: \"1.0.0\",\n dependencies: [\n \"sap.ui.core\",\n \"sap.m\",\n \"sap.ui.layout\",\n \"sap.ui.table\"\n ],\n controls: [\n \"nz.co.siliconst.ui5.metaui.controls.GeneratorHost\",\n \"nz.co.siliconst.ui5.metaui.controls.BaseHardwareControl\",\n \"nz.co.siliconst.ui5.metaui.controls.CameraControl\",\n \"nz.co.siliconst.ui5.metaui.controls.BarcodeScannerControl\",\n \"nz.co.siliconst.ui5.metaui.controls.SignatureControl\",\n \"nz.co.siliconst.ui5.metaui.controls.VoiceInputControl\",\n \"nz.co.siliconst.ui5.metaui.controls.GeolocationControl\",\n \"nz.co.siliconst.ui5.metaui.controls.RichTextControl\"\n ],\n elements: [],\n interfaces: [],\n noLibraryCSS: true\n});\n\n// Exporting window object safely for UI5 compatibility if needed\nexport default (window as unknown)[\"nz\"][\"co\"][\"siliconst\"][\"ui5\"][\"metaui\"];\n"],"mappings":";;;EAQA;EACAA,IAAI,CAACC,WAAW,CAAC;IACbC,IAAI,EAAE,4BAA4B;IAClCC,OAAO,EAAE,OAAO;IAChBC,YAAY,EAAE,CACV,aAAa,EACb,OAAO,EACP,eAAe,EACf,cAAc,CACjB;IACDC,QAAQ,EAAE,CACN,mDAAmD,EACnD,yDAAyD,EACzD,mDAAmD,EACnD,2DAA2D,EAC3D,sDAAsD,EACtD,uDAAuD,EACvD,wDAAwD,EACxD,qDAAqD,CACxD;IACDC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,EAAE;IACdC,YAAY,EAAE;EAClB,CAAC,CAAC;;EAEF;EAAA,IAAAC,SAAA,GACgBC,MAAM,CAAa,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;EAAA,OAAAD,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"library-dbg.js","names":["Core","initLibrary","name","version","dependencies","controls","elements","interfaces","noLibraryCSS","__exports","window","nz","co","siliconst","ui5","metaui"],"sources":["library.ts"],"sourcesContent":["/**\n * @file library.ts\n * @description Standard SAP UI5 library registration file. Exposes the MetaUI namespace \n * and automatically bootstraps the internal PluginRegistry.\n */\n\nimport Core from \"sap/ui/core/Core\";\n\n// Explicitly import core plugins to bundle them into library-preload.js\nimport \"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin\";\nimport \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\";\nimport \"nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin\";\nimport \"nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin\";\nimport \"nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin\";\nimport \"nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin\";\nimport \"nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin\";\nimport \"nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator\";\nimport \"nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder\";\n\n// Explicitly import core Layouts\nimport \"nz/co/siliconst/ui5/metaui/layouts/FormLayout\";\nimport \"nz/co/siliconst/ui5/metaui/layouts/TableLayout\";\nimport \"nz/co/siliconst/ui5/metaui/layouts/WizardLayout\";\nimport \"nz/co/siliconst/ui5/metaui/layouts/CompactLayout\";\n\n// Delegate to standard library registration\nCore.initLibrary({\n name: \"nz.co.siliconst.ui5.metaui\",\n version: \"1.0.0\",\n dependencies: [\n \"sap.ui.core\",\n \"sap.m\",\n \"sap.ui.layout\",\n \"sap.ui.table\"\n ],\n controls: [\n \"nz.co.siliconst.ui5.metaui.controls.DynamicHost\",\n \"nz.co.siliconst.ui5.metaui.controls.host.GeneratorHost\",\n \"nz.co.siliconst.ui5.metaui.controls.BaseHardwareControl\",\n \"nz.co.siliconst.ui5.metaui.controls.CameraControl\",\n \"nz.co.siliconst.ui5.metaui.controls.BarcodeScannerControl\",\n \"nz.co.siliconst.ui5.metaui.controls.SignatureControl\",\n \"nz.co.siliconst.ui5.metaui.controls.VoiceInputControl\",\n \"nz.co.siliconst.ui5.metaui.controls.GeolocationControl\",\n \"nz.co.siliconst.ui5.metaui.controls.RichTextControl\"\n ],\n elements: [],\n interfaces: [],\n noLibraryCSS: true\n});\n\n// Exporting window object safely for UI5 compatibility if needed\ndeclare global {\n interface Window {\n nz: {\n co: {\n siliconst: {\n ui5: {\n metaui: Record<string, unknown>;\n };\n };\n };\n };\n }\n}\n\nexport default window.nz.co.siliconst.ui5.metaui;\n"],"mappings":";;;EAyBA;EACAA,IAAI,CAACC,WAAW,CAAC;IACbC,IAAI,EAAE,4BAA4B;IAClCC,OAAO,EAAE,OAAO;IAChBC,YAAY,EAAE,CACV,aAAa,EACb,OAAO,EACP,eAAe,EACf,cAAc,CACjB;IACDC,QAAQ,EAAE,CACN,iDAAiD,EACjD,wDAAwD,EACxD,yDAAyD,EACzD,mDAAmD,EACnD,2DAA2D,EAC3D,sDAAsD,EACtD,uDAAuD,EACvD,wDAAwD,EACxD,qDAAqD,CACxD;IACDC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,EAAE;IACdC,YAAY,EAAE;EAClB,CAAC,CAAC;;EAEF;EAAA,IAAAC,SAAA,GAeeC,MAAM,CAACC,EAAE,CAACC,EAAE,CAACC,SAAS,CAACC,GAAG,CAACC,MAAM;EAAA,OAAAN,SAAA;AAAA","ignoreList":[]}