@siliconst/metaui 1.2.0 → 1.4.4

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 (600) hide show
  1. package/README.md +102 -33
  2. package/package.json +1 -1
  3. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js +70 -0
  4. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -0
  5. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts +67 -0
  6. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts.map +1 -0
  7. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js +2 -0
  8. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -0
  9. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +58 -0
  10. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js +28 -0
  11. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -0
  12. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts +16 -0
  13. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts.map +1 -0
  14. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js +2 -0
  15. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -0
  16. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +28 -0
  17. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +142 -0
  18. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -0
  19. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts +33 -0
  20. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts.map +1 -0
  21. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +2 -0
  22. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -0
  23. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +164 -0
  24. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +266 -0
  25. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -0
  26. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +162 -0
  27. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -0
  28. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +2 -0
  29. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -0
  30. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +203 -0
  31. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +73 -0
  32. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -0
  33. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +32 -0
  34. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -0
  35. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +2 -0
  36. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -0
  37. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +86 -0
  38. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +60 -0
  39. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -0
  40. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +32 -0
  41. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -0
  42. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +2 -0
  43. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -0
  44. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +61 -0
  45. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +157 -0
  46. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -0
  47. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +33 -0
  48. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -0
  49. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +2 -0
  50. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -0
  51. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +169 -0
  52. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +160 -0
  53. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -0
  54. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +28 -0
  55. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -0
  56. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +2 -0
  57. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -0
  58. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +185 -0
  59. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +443 -0
  60. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -0
  61. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +227 -0
  62. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -0
  63. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +2 -0
  64. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -0
  65. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +421 -0
  66. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +103 -0
  67. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -0
  68. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +32 -0
  69. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -0
  70. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +2 -0
  71. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -0
  72. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +119 -0
  73. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +64 -0
  74. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -0
  75. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +21 -0
  76. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -0
  77. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js +2 -0
  78. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -0
  79. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +64 -0
  80. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +120 -0
  81. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -0
  82. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +45 -0
  83. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -0
  84. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +2 -0
  85. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -0
  86. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +131 -0
  87. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +40 -15
  88. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +27 -7
  90. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +1 -1
  91. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +1 -1
  93. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +41 -15
  94. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js +62 -0
  95. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -0
  96. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts +26 -0
  97. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts.map +1 -0
  98. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js +2 -0
  99. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -0
  100. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +62 -0
  101. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +159 -43
  102. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  103. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +64 -3
  104. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  107. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +166 -43
  108. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js +32 -0
  109. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js.map +1 -0
  110. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts +16 -0
  111. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts.map +1 -0
  112. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js +2 -0
  113. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js.map +1 -0
  114. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.ts +26 -0
  115. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +123 -0
  116. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -0
  117. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts +49 -0
  118. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -0
  119. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +2 -0
  120. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -0
  121. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +106 -0
  122. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +104 -25
  123. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  124. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +21 -13
  125. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  126. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  127. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  128. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +110 -21
  129. package/src/nz/co/siliconst/ui5/metaui/core/Registry-dbg.js +79 -0
  130. package/src/nz/co/siliconst/ui5/metaui/core/Registry-dbg.js.map +1 -0
  131. package/src/nz/co/siliconst/ui5/metaui/core/Registry.d.ts +43 -0
  132. package/src/nz/co/siliconst/ui5/metaui/core/Registry.d.ts.map +1 -0
  133. package/src/nz/co/siliconst/ui5/metaui/core/Registry.js +2 -0
  134. package/src/nz/co/siliconst/ui5/metaui/core/Registry.js.map +1 -0
  135. package/src/nz/co/siliconst/ui5/metaui/core/Registry.ts +70 -0
  136. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +71 -20
  137. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  138. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +1 -0
  139. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  140. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  141. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  142. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +71 -20
  143. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +54 -0
  144. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -0
  145. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts +11 -0
  146. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -0
  147. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +2 -0
  148. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -0
  149. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +53 -0
  150. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +88 -2
  151. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  152. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +15 -1
  153. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  154. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js +1 -1
  155. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  156. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +103 -1
  157. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager-dbg.js.map +1 -1
  158. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts +7 -8
  159. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts.map +1 -1
  160. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.ts +7 -7
  161. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline-dbg.js +2 -0
  162. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline-dbg.js.map +1 -0
  163. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts +38 -0
  164. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts.map +1 -0
  165. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.js +2 -0
  166. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.js.map +1 -0
  167. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.ts +39 -0
  168. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
  169. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +38 -2
  170. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
  171. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +43 -2
  172. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  173. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +32 -3
  174. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  175. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +35 -3
  176. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js +144 -0
  177. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js.map +1 -0
  178. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts +27 -0
  179. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts.map +1 -0
  180. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.js +2 -0
  181. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.js.map +1 -0
  182. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.ts +139 -0
  183. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +132 -61
  184. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  185. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts +19 -12
  186. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  187. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
  188. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  189. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +135 -71
  190. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +118 -51
  191. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  192. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts +21 -8
  193. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
  194. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  195. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  196. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +134 -65
  197. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js +125 -0
  198. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js.map +1 -0
  199. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts +28 -0
  200. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts.map +1 -0
  201. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js +2 -0
  202. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js.map +1 -0
  203. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.ts +127 -0
  204. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +17 -12
  205. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
  206. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +72 -25
  207. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  208. package/src/nz/co/siliconst/ui5/metaui/library.d.ts +1 -0
  209. package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
  210. package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
  211. package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/library.ts +25 -12
  213. package/src/nz/co/siliconst/ui5/metaui/manifest.json +8 -1
  214. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js +58 -0
  215. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -0
  216. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts +22 -0
  217. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -0
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js +2 -0
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -0
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +57 -0
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js +55 -0
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js.map +1 -0
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts +21 -0
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts.map +1 -0
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js +2 -0
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js.map +1 -0
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.ts +54 -0
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin-dbg.js +46 -0
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin-dbg.js.map +1 -0
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts +23 -0
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts.map +1 -0
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.js +2 -0
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.js.map +1 -0
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.ts +45 -0
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +74 -0
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -0
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +15 -0
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -0
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +2 -0
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -0
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +80 -0
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +75 -0
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -0
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +12 -0
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -0
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +2 -0
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -0
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +83 -0
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +174 -0
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -0
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +78 -0
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -0
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +2 -0
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -0
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +165 -0
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +79 -0
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -0
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +36 -0
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -0
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +2 -0
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -0
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +77 -0
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +60 -0
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -0
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +11 -0
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -0
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +2 -0
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -0
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +56 -0
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +122 -0
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -0
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +24 -0
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -0
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +2 -0
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -0
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +125 -0
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/{DatePlugin-dbg.js → controls/DatePlugin-dbg.js} +29 -20
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -0
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/{DatePlugin.d.ts → controls/DatePlugin.d.ts} +4 -4
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -0
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +2 -0
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -0
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +74 -0
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/{DateTimePlugin-dbg.js → controls/DateTimePlugin-dbg.js} +30 -20
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -0
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/{DateTimePlugin.d.ts → controls/DateTimePlugin.d.ts} +4 -4
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -0
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +2 -0
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -0
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +75 -0
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +109 -0
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -0
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +37 -0
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -0
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +2 -0
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -0
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +105 -0
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +65 -0
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -0
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +21 -0
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -0
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +2 -0
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -0
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +64 -0
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +59 -0
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -0
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +11 -0
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -0
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +2 -0
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -0
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +56 -0
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +45 -0
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -0
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +22 -0
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -0
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js +2 -0
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -0
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +42 -0
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +74 -0
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -0
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +22 -0
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -0
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +2 -0
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -0
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +73 -0
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/{NumberPlugin-dbg.js → controls/NumberPlugin-dbg.js} +21 -16
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -0
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/{NumberPlugin.d.ts → controls/NumberPlugin.d.ts} +4 -4
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -0
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +2 -0
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -0
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +62 -0
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +74 -0
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -0
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +17 -0
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -0
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +2 -0
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -0
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +81 -0
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +61 -0
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -0
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +21 -0
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -0
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +2 -0
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -0
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +62 -0
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +64 -0
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -0
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +16 -0
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -0
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +2 -0
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -0
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +67 -0
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +58 -0
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -0
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +11 -0
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -0
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +2 -0
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -0
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +55 -0
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +64 -0
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -0
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +21 -0
  364. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -0
  365. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +2 -0
  366. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -0
  367. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +65 -0
  368. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +87 -0
  369. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -0
  370. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +37 -0
  371. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -0
  372. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +2 -0
  373. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -0
  374. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +85 -0
  375. package/src/nz/co/siliconst/ui5/metaui/plugins/{SwitchPlugin-dbg.js → controls/SwitchPlugin-dbg.js} +24 -6
  376. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -0
  377. package/src/nz/co/siliconst/ui5/metaui/plugins/{SwitchPlugin.d.ts → controls/SwitchPlugin.d.ts} +4 -4
  378. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -0
  379. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +2 -0
  380. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -0
  381. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +62 -0
  382. package/src/nz/co/siliconst/ui5/metaui/plugins/{TextAreaPlugin-dbg.js → controls/TextAreaPlugin-dbg.js} +20 -14
  383. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -0
  384. package/src/nz/co/siliconst/ui5/metaui/plugins/{TextAreaPlugin.d.ts → controls/TextAreaPlugin.d.ts} +4 -4
  385. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -0
  386. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +2 -0
  387. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -0
  388. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +63 -0
  389. package/src/nz/co/siliconst/ui5/metaui/plugins/{TimePlugin-dbg.js → controls/TimePlugin-dbg.js} +30 -25
  390. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -0
  391. package/src/nz/co/siliconst/ui5/metaui/plugins/{TimePlugin.d.ts → controls/TimePlugin.d.ts} +4 -4
  392. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -0
  393. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +2 -0
  394. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -0
  395. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +76 -0
  396. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +62 -0
  397. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -0
  398. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +11 -0
  399. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -0
  400. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +2 -0
  401. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -0
  402. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +59 -0
  403. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js +94 -0
  404. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -0
  405. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts +29 -0
  406. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts.map +1 -0
  407. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js +2 -0
  408. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -0
  409. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +102 -0
  410. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +60 -0
  411. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -0
  412. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts +22 -0
  413. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -0
  414. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js +2 -0
  415. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -0
  416. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +57 -0
  417. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +106 -0
  418. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -0
  419. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +22 -0
  420. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -0
  421. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js +2 -0
  422. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -0
  423. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +101 -0
  424. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js +77 -0
  425. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -0
  426. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts +25 -0
  427. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts.map +1 -0
  428. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js +2 -0
  429. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -0
  430. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +86 -0
  431. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin-dbg.js +36 -0
  432. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin-dbg.js.map +1 -0
  433. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts +25 -0
  434. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts.map +1 -0
  435. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.js +2 -0
  436. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.js.map +1 -0
  437. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.ts +36 -0
  438. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js +32 -0
  439. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js.map +1 -0
  440. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts +19 -0
  441. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts.map +1 -0
  442. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.js +2 -0
  443. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.js.map +1 -0
  444. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.ts +31 -0
  445. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js +32 -0
  446. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js.map +1 -0
  447. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts +17 -0
  448. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts.map +1 -0
  449. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.js +2 -0
  450. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.js.map +1 -0
  451. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.ts +27 -0
  452. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js +31 -0
  453. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js.map +1 -0
  454. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts +18 -0
  455. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts.map +1 -0
  456. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.js +2 -0
  457. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.js.map +1 -0
  458. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.ts +23 -0
  459. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin-dbg.js +45 -0
  460. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin-dbg.js.map +1 -0
  461. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts +24 -0
  462. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts.map +1 -0
  463. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.js +2 -0
  464. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.js.map +1 -0
  465. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.ts +30 -0
  466. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js +42 -0
  467. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js.map +1 -0
  468. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts +18 -0
  469. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts.map +1 -0
  470. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.js +2 -0
  471. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.js.map +1 -0
  472. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.ts +29 -0
  473. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js +41 -0
  474. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js.map +1 -0
  475. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts +17 -0
  476. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts.map +1 -0
  477. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.js +2 -0
  478. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.js.map +1 -0
  479. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.ts +25 -0
  480. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js +51 -0
  481. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js.map +1 -0
  482. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts +17 -0
  483. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts.map +1 -0
  484. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.js +2 -0
  485. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.js.map +1 -0
  486. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.ts +33 -0
  487. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js +48 -0
  488. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js.map +1 -0
  489. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts +17 -0
  490. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts.map +1 -0
  491. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.js +2 -0
  492. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.js.map +1 -0
  493. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.ts +32 -0
  494. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js +46 -0
  495. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js.map +1 -0
  496. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts +17 -0
  497. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts.map +1 -0
  498. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.js +2 -0
  499. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.js.map +1 -0
  500. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.ts +29 -0
  501. package/src/nz/co/siliconst/ui5/metaui/utils/Logger-dbg.js +83 -0
  502. package/src/nz/co/siliconst/ui5/metaui/utils/Logger-dbg.js.map +1 -0
  503. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts +29 -0
  504. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts.map +1 -0
  505. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js +2 -0
  506. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js.map +1 -0
  507. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.ts +75 -0
  508. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js +0 -300
  509. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js.map +0 -1
  510. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts +0 -130
  511. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts.map +0 -1
  512. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js +0 -2
  513. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js.map +0 -1
  514. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.ts +0 -292
  515. package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js +0 -66
  516. package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js.map +0 -1
  517. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts +0 -40
  518. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts.map +0 -1
  519. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js +0 -2
  520. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js.map +0 -1
  521. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.ts +0 -60
  522. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js +0 -2
  523. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js.map +0 -1
  524. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.d.ts +0 -29
  525. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.d.ts.map +0 -1
  526. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.js +0 -2
  527. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.js.map +0 -1
  528. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.ts +0 -29
  529. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js +0 -24
  530. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js.map +0 -1
  531. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts +0 -15
  532. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts.map +0 -1
  533. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js +0 -2
  534. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js.map +0 -1
  535. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.ts +0 -22
  536. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin-dbg.js +0 -68
  537. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin-dbg.js.map +0 -1
  538. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.d.ts +0 -15
  539. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.d.ts.map +0 -1
  540. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.js +0 -2
  541. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.js.map +0 -1
  542. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.ts +0 -71
  543. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js +0 -55
  544. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js.map +0 -1
  545. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts +0 -24
  546. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts.map +0 -1
  547. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js +0 -2
  548. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js.map +0 -1
  549. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.ts +0 -56
  550. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js +0 -42
  551. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js.map +0 -1
  552. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts +0 -18
  553. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts.map +0 -1
  554. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js +0 -2
  555. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js.map +0 -1
  556. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.ts +0 -41
  557. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin-dbg.js.map +0 -1
  558. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.d.ts.map +0 -1
  559. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.js +0 -2
  560. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.js.map +0 -1
  561. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.ts +0 -69
  562. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin-dbg.js.map +0 -1
  563. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.d.ts.map +0 -1
  564. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.js +0 -2
  565. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.js.map +0 -1
  566. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.ts +0 -68
  567. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js +0 -67
  568. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js.map +0 -1
  569. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts +0 -18
  570. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts.map +0 -1
  571. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js +0 -2
  572. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js.map +0 -1
  573. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.ts +0 -65
  574. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin-dbg.js.map +0 -1
  575. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.d.ts.map +0 -1
  576. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js +0 -2
  577. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js.map +0 -1
  578. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.ts +0 -56
  579. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js +0 -57
  580. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js.map +0 -1
  581. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts +0 -18
  582. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts.map +0 -1
  583. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js +0 -2
  584. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js.map +0 -1
  585. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.ts +0 -58
  586. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin-dbg.js.map +0 -1
  587. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.d.ts.map +0 -1
  588. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.js +0 -2
  589. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.js.map +0 -1
  590. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.ts +0 -42
  591. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin-dbg.js.map +0 -1
  592. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.d.ts.map +0 -1
  593. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.js +0 -2
  594. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.js.map +0 -1
  595. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.ts +0 -58
  596. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin-dbg.js.map +0 -1
  597. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.d.ts.map +0 -1
  598. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.js +0 -2
  599. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.js.map +0 -1
  600. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.ts +0 -71
@@ -0,0 +1,144 @@
1
+ sap.ui.define(["sap/m/VBox", "sap/m/Label", "../utils/Logger"], function (VBox, Label, ___utils_Logger) {
2
+ "use strict";
3
+
4
+ const Logger = ___utils_Logger["Logger"];
5
+ /**
6
+ * Layout Manager responsible for generating a dense, lightweight layout (no SimpleForm padding).
7
+ * Ideal for rendering objects dynamically inside table cells or side-panels.
8
+ *
9
+ * @namespace nz.co.siliconst.ui5.metaui.layouts
10
+ * @public
11
+ */
12
+ class CompactLayout {
13
+ /**
14
+ * Renders the JSON Schema properties into a dense VBox layout.
15
+ *
16
+ * @param schema The active JSON schema subset.
17
+ * @param modelName The bound UI5 model name.
18
+ * @param engine The central orchestrator for delegating plugin generation.
19
+ * @param onSubmit Optional submit hook.
20
+ * @returns {Control} The VBox wrapper containing the generated compact form.
21
+ */
22
+ render(schema, modelName, engine, onSubmit) {
23
+ const container = new VBox({
24
+ renderType: "Bare"
25
+ });
26
+ container.addStyleClass("sapUiTinyMargin");
27
+ if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {
28
+ Logger.warn("[MetaUI] Missing 'uiLayout' array in schema. CompactLayout will not render any fields.");
29
+ return container;
30
+ }
31
+ const tableElements = [];
32
+
33
+ // Recursively render layout elements
34
+ const renderElement = element => {
35
+ if (element.type === "Group") {
36
+ if (element.label) {
37
+ const title = new sap.m.Title({
38
+ text: element.label,
39
+ level: "H5"
40
+ });
41
+ title.addStyleClass("sapUiTinyMarginTop sapUiTinyMarginBottom");
42
+ container.addItem(title);
43
+ }
44
+ if (element.elements && Array.isArray(element.elements)) {
45
+ element.elements.forEach(renderElement);
46
+ }
47
+ } else if (element.type === "Control") {
48
+ if (!element.scope || !element.scope.startsWith("#/properties/")) {
49
+ Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, "", "CompactLayout");
50
+ return;
51
+ }
52
+ const propKey = element.scope.replace("#/properties/", "");
53
+ const meta = schema.properties?.[propKey];
54
+ if (!meta) {
55
+ Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, "", "CompactLayout");
56
+ return;
57
+ }
58
+ const isCollectionOfRecords = meta.items?.type === "object" || meta.items?.properties;
59
+ const hasExplicitWidget = !!meta.ui?.widget;
60
+ const isSubLayout = meta.type === "array" && isCollectionOfRecords && !hasExplicitWidget;
61
+ if (isSubLayout) {
62
+ Logger.debug("[MetaUI CompactLayout]", `Routing property '${propKey}' to Table Sub-Layout.`, "CompactLayout");
63
+ tableElements.push({
64
+ scope: propKey,
65
+ meta,
66
+ label: element.label
67
+ });
68
+ } else {
69
+ Logger.debug("[MetaUI CompactLayout]", `Rendering scalar field '${propKey}'.`, "CompactLayout");
70
+ this._renderScalarField(container, element, propKey, meta, modelName, engine);
71
+ }
72
+ } else {
73
+ Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}'.`, "", "CompactLayout");
74
+ }
75
+ };
76
+
77
+ // Render everything defined in the layout
78
+ schema.uiLayout.forEach(renderElement);
79
+
80
+ // Render array/table sub-layouts full width below the fields
81
+ tableElements.forEach(field => {
82
+ try {
83
+ const subSchema = {
84
+ type: "array",
85
+ title: field.label || field.meta.ui?.label || field.scope,
86
+ items: field.meta.items || {
87
+ type: "object",
88
+ properties: {}
89
+ },
90
+ uiLayout: field.meta.items?.uiLayout
91
+ };
92
+ const control = engine.generateLayout(subSchema, modelName, `/${field.scope}`);
93
+ if (control) {
94
+ control.addStyleClass("sapUiTinyMarginTop");
95
+ container.addItem(control);
96
+ }
97
+ } catch (error) {
98
+ const msg = error.message;
99
+ Logger.error(`[MetaUI] Failed to render array field ${field.scope}`, msg, "CompactLayout");
100
+ Logger.showErrorPopup(`Failed to render array field '${field.scope}'.\n\nDetails: ${msg}`);
101
+ }
102
+ });
103
+ return container;
104
+ }
105
+ _renderScalarField(container, element, propKey, meta, modelName, engine) {
106
+ try {
107
+ const labelText = element.label || meta.ui?.label || propKey;
108
+ const label = new Label({
109
+ text: labelText,
110
+ required: meta.required
111
+ });
112
+ label.addStyleClass("sapUiTinyMarginTop");
113
+ const effectiveMeta = {
114
+ ...meta
115
+ };
116
+ if (element.widget) {
117
+ effectiveMeta.ui = {
118
+ ...meta.ui,
119
+ widget: element.widget
120
+ };
121
+ }
122
+ const control = engine.generateField(effectiveMeta, `/${propKey}`, modelName);
123
+ control.addStyleClass("sapUiTinyMarginBottom");
124
+
125
+ // Wrap label and field tightly
126
+ const fieldBox = new VBox({
127
+ renderType: "Bare",
128
+ items: [label, control]
129
+ });
130
+ container.addItem(fieldBox);
131
+ } catch (error) {
132
+ const msg = error.message;
133
+ Logger.error(`[MetaUI] Failed to render field ${propKey}`, msg, "CompactLayout");
134
+ Logger.showErrorPopup(`Failed to render field '${propKey}'.\n\nDetails: ${msg}`);
135
+ }
136
+ }
137
+ }
138
+ var __exports = {
139
+ __esModule: true
140
+ };
141
+ __exports.CompactLayout = CompactLayout;
142
+ return __exports;
143
+ });
144
+ //# sourceMappingURL=CompactLayout-dbg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompactLayout-dbg.js","names":["Logger","___utils_Logger","CompactLayout","render","schema","modelName","engine","onSubmit","container","VBox","renderType","addStyleClass","uiLayout","Array","isArray","warn","tableElements","renderElement","element","type","label","title","sap","m","Title","text","level","addItem","elements","forEach","scope","startsWith","error","propKey","replace","meta","properties","isCollectionOfRecords","items","hasExplicitWidget","ui","widget","isSubLayout","debug","push","_renderScalarField","field","subSchema","control","generateLayout","msg","message","showErrorPopup","labelText","Label","required","effectiveMeta","generateField","fieldBox","__exports","__esModule"],"sources":["CompactLayout.ts"],"sourcesContent":["/**\n * @file CompactLayout.ts\n * @description Generates a lightweight, dense VBox layout for use inside tight spaces like table cells.\n */\n\nimport VBox from \"sap/m/VBox\";\nimport Label from \"sap/m/Label\";\nimport Title from \"sap/ui/core/Title\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { Logger } from \"../utils/Logger\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Layout Manager responsible for generating a dense, lightweight layout (no SimpleForm padding).\n * Ideal for rendering objects dynamically inside table cells or side-panels.\n * \n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class CompactLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema properties into a dense VBox layout.\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 compact form.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {\n const container = new VBox({ renderType: \"Bare\" });\n container.addStyleClass(\"sapUiTinyMargin\");\n\n if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n Logger.warn(\"[MetaUI] Missing 'uiLayout' array in schema. CompactLayout will not render any fields.\");\n return container;\n }\n\n const tableElements: { scope: string, meta: IPropertyMetadata, label?: string }[] = [];\n\n // Recursively render layout elements\n const renderElement = (element: ILayoutElement) => {\n if (element.type === \"Group\") {\n if (element.label) {\n const title = new sap.m.Title({ text: element.label, level: \"H5\" });\n title.addStyleClass(\"sapUiTinyMarginTop sapUiTinyMarginBottom\");\n container.addItem(title);\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.`, \"\", \"CompactLayout\");\n return;\n }\n \n const propKey = element.scope.replace(\"#/properties/\", \"\");\n const meta = schema.properties?.[propKey];\n \n if (!meta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, \"\", \"CompactLayout\");\n return;\n }\n\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 CompactLayout]\", `Routing property '${propKey}' to Table Sub-Layout.`, \"CompactLayout\");\n tableElements.push({ scope: propKey, meta, label: element.label });\n } else {\n Logger.debug(\"[MetaUI CompactLayout]\", `Rendering scalar field '${propKey}'.`, \"CompactLayout\");\n this._renderScalarField(container, element, propKey, meta, modelName, engine);\n }\n } else {\n Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}'.`, \"\", \"CompactLayout\");\n }\n };\n\n // Render everything defined in the layout\n schema.uiLayout.forEach(renderElement);\n\n // Render array/table sub-layouts full width below the fields\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\n };\n \n const control = engine.generateLayout(subSchema as ISchema, modelName, `/${field.scope}`);\n if (control) {\n control.addStyleClass(\"sapUiTinyMarginTop\");\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, \"CompactLayout\");\n Logger.showErrorPopup(`Failed to render array field '${field.scope}'.\\n\\nDetails: ${msg}`);\n }\n });\n\n return container;\n }\n\n private _renderScalarField(container: VBox, 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 label.addStyleClass(\"sapUiTinyMarginTop\");\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, `/${propKey}`, modelName);\n control.addStyleClass(\"sapUiTinyMarginBottom\");\n\n // Wrap label and field tightly\n const fieldBox = new VBox({ renderType: \"Bare\", items: [label, control] });\n container.addItem(fieldBox);\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render field ${propKey}`, msg, \"CompactLayout\");\n Logger.showErrorPopup(`Failed to render field '${propKey}'.\\n\\nDetails: ${msg}`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ declare module "nz/co/siliconst/ui5/metaui/layouts/CompactLayout" {
2
+ import { ISchema } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
3
+ import { ILayoutManager } from "nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager";
4
+ import { Engine } from "nz/co/siliconst/ui5/metaui/core/Engine";
5
+ import Control from "sap/ui/core/Control";
6
+ /**
7
+ * Layout Manager responsible for generating a dense, lightweight layout (no SimpleForm padding).
8
+ * Ideal for rendering objects dynamically inside table cells or side-panels.
9
+ *
10
+ * @namespace nz.co.siliconst.ui5.metaui.layouts
11
+ * @public
12
+ */
13
+ export class CompactLayout implements ILayoutManager {
14
+ /**
15
+ * Renders the JSON Schema properties into a dense VBox layout.
16
+ *
17
+ * @param schema The active JSON schema subset.
18
+ * @param modelName The bound UI5 model name.
19
+ * @param engine The central orchestrator for delegating plugin generation.
20
+ * @param onSubmit Optional submit hook.
21
+ * @returns {Control} The VBox wrapper containing the generated compact form.
22
+ */
23
+ render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control;
24
+ private _renderScalarField;
25
+ }
26
+ }
27
+ //# sourceMappingURL=CompactLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompactLayout.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kDAAkD,CAAC;IASlE,OAAO,EAAqB,OAAO,EAAkB,MAAM,+CAA+C,CAAC;IAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;IACtF,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;IAEhE,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;;;;;OAMG;IACH,MAAa,aAAc,YAAW,cAAc;QAChD;;;;;;;;WAQG;QACI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO;QAiFjG,OAAO,CAAC,kBAAkB;KA0B7B;CAEA"}
@@ -0,0 +1,2 @@
1
+ sap.ui.define(["sap/m/VBox","sap/m/Label","../utils/Logger"],function(e,t,a){"use strict";const r=a["Logger"];class o{render(t,a,o,i){const s=new e({renderType:"Bare"});s.addStyleClass("sapUiTinyMargin");if(!t.uiLayout||!Array.isArray(t.uiLayout)){r.warn("[MetaUI] Missing 'uiLayout' array in schema. CompactLayout will not render any fields.");return s}const n=[];const l=e=>{if(e.type==="Group"){if(e.label){const t=new sap.m.Title({text:e.label,level:"H5"});t.addStyleClass("sapUiTinyMarginTop sapUiTinyMarginBottom");s.addItem(t)}if(e.elements&&Array.isArray(e.elements)){e.elements.forEach(l)}}else if(e.type==="Control"){if(!e.scope||!e.scope.startsWith("#/properties/")){r.error(`[MetaUI] Invalid scope '${e.scope}' in uiLayout Control.`,"","CompactLayout");return}const i=e.scope.replace("#/properties/","");const l=t.properties?.[i];if(!l){r.error(`[MetaUI] Property '${i}' not found in schema definitions.`,"","CompactLayout");return}const p=l.items?.type==="object"||l.items?.properties;const c=!!l.ui?.widget;const u=l.type==="array"&&p&&!c;if(u){r.debug("[MetaUI CompactLayout]",`Routing property '${i}' to Table Sub-Layout.`,"CompactLayout");n.push({scope:i,meta:l,label:e.label})}else{r.debug("[MetaUI CompactLayout]",`Rendering scalar field '${i}'.`,"CompactLayout");this._renderScalarField(s,e,i,l,a,o)}}else{r.warn(`[MetaUI] Unsupported layout element type '${e.type}'.`,"","CompactLayout")}};t.uiLayout.forEach(l);n.forEach(e=>{try{const t={type:"array",title:e.label||e.meta.ui?.label||e.scope,items:e.meta.items||{type:"object",properties:{}},uiLayout:e.meta.items?.uiLayout};const r=o.generateLayout(t,a,`/${e.scope}`);if(r){r.addStyleClass("sapUiTinyMarginTop");s.addItem(r)}}catch(t){const a=t.message;r.error(`[MetaUI] Failed to render array field ${e.scope}`,a,"CompactLayout");r.showErrorPopup(`Failed to render array field '${e.scope}'.\n\nDetails: ${a}`)}});return s}_renderScalarField(a,o,i,s,n,l){try{const r=o.label||s.ui?.label||i;const p=new t({text:r,required:s.required});p.addStyleClass("sapUiTinyMarginTop");const c={...s};if(o.widget){c.ui={...s.ui,widget:o.widget}}const u=l.generateField(c,`/${i}`,n);u.addStyleClass("sapUiTinyMarginBottom");const y=new e({renderType:"Bare",items:[p,u]});a.addItem(y)}catch(e){const t=e.message;r.error(`[MetaUI] Failed to render field ${i}`,t,"CompactLayout");r.showErrorPopup(`Failed to render field '${i}'.\n\nDetails: ${t}`)}}}var i={__esModule:true};i.CompactLayout=o;return i});
2
+ //# sourceMappingURL=CompactLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompactLayout.js","names":["Logger","___utils_Logger","CompactLayout","render","schema","modelName","engine","onSubmit","container","VBox","renderType","addStyleClass","uiLayout","Array","isArray","warn","tableElements","renderElement","element","type","label","title","sap","m","Title","text","level","addItem","elements","forEach","scope","startsWith","error","propKey","replace","meta","properties","isCollectionOfRecords","items","hasExplicitWidget","ui","widget","isSubLayout","debug","push","this","_renderScalarField","field","subSchema","control","generateLayout","msg","message","showErrorPopup","labelText","Label","required","effectiveMeta","generateField","fieldBox","__exports","__esModule"],"sources":["CompactLayout.ts"],"sourcesContent":["/**\n * @file CompactLayout.ts\n * @description Generates a lightweight, dense VBox layout for use inside tight spaces like table cells.\n */\n\nimport VBox from \"sap/m/VBox\";\nimport Label from \"sap/m/Label\";\nimport Title from \"sap/ui/core/Title\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { Logger } from \"../utils/Logger\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Layout Manager responsible for generating a dense, lightweight layout (no SimpleForm padding).\n * Ideal for rendering objects dynamically inside table cells or side-panels.\n * \n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class CompactLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema properties into a dense VBox layout.\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 compact form.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {\n const container = new VBox({ renderType: \"Bare\" });\n container.addStyleClass(\"sapUiTinyMargin\");\n\n if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {\n Logger.warn(\"[MetaUI] Missing 'uiLayout' array in schema. CompactLayout will not render any fields.\");\n return container;\n }\n\n const tableElements: { scope: string, meta: IPropertyMetadata, label?: string }[] = [];\n\n // Recursively render layout elements\n const renderElement = (element: ILayoutElement) => {\n if (element.type === \"Group\") {\n if (element.label) {\n const title = new sap.m.Title({ text: element.label, level: \"H5\" });\n title.addStyleClass(\"sapUiTinyMarginTop sapUiTinyMarginBottom\");\n container.addItem(title);\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.`, \"\", \"CompactLayout\");\n return;\n }\n \n const propKey = element.scope.replace(\"#/properties/\", \"\");\n const meta = schema.properties?.[propKey];\n \n if (!meta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, \"\", \"CompactLayout\");\n return;\n }\n\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 CompactLayout]\", `Routing property '${propKey}' to Table Sub-Layout.`, \"CompactLayout\");\n tableElements.push({ scope: propKey, meta, label: element.label });\n } else {\n Logger.debug(\"[MetaUI CompactLayout]\", `Rendering scalar field '${propKey}'.`, \"CompactLayout\");\n this._renderScalarField(container, element, propKey, meta, modelName, engine);\n }\n } else {\n Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}'.`, \"\", \"CompactLayout\");\n }\n };\n\n // Render everything defined in the layout\n schema.uiLayout.forEach(renderElement);\n\n // Render array/table sub-layouts full width below the fields\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\n };\n \n const control = engine.generateLayout(subSchema as ISchema, modelName, `/${field.scope}`);\n if (control) {\n control.addStyleClass(\"sapUiTinyMarginTop\");\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, \"CompactLayout\");\n Logger.showErrorPopup(`Failed to render array field '${field.scope}'.\\n\\nDetails: ${msg}`);\n }\n });\n\n return container;\n }\n\n private _renderScalarField(container: VBox, 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 label.addStyleClass(\"sapUiTinyMarginTop\");\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, `/${propKey}`, modelName);\n control.addStyleClass(\"sapUiTinyMarginBottom\");\n\n // Wrap label and field tightly\n const fieldBox = new VBox({ renderType: \"Bare\", items: [label, control] });\n container.addItem(fieldBox);\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render field ${propKey}`, msg, \"CompactLayout\");\n Logger.showErrorPopup(`Failed to render field '${propKey}'.\\n\\nDetails: ${msg}`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @file CompactLayout.ts
3
+ * @description Generates a lightweight, dense VBox layout for use inside tight spaces like table cells.
4
+ */
5
+
6
+ import VBox from "sap/m/VBox";
7
+ import Label from "sap/m/Label";
8
+ import Title from "sap/ui/core/Title";
9
+ import { IPropertyMetadata, ISchema, ILayoutElement } from "../interfaces/ISchema";
10
+ import { ILayoutManager } from "../interfaces/ILayoutManager";
11
+ import { Engine } from "../core/Engine";
12
+ import { Logger } from "../utils/Logger";
13
+ import Control from "sap/ui/core/Control";
14
+
15
+ /**
16
+ * Layout Manager responsible for generating a dense, lightweight layout (no SimpleForm padding).
17
+ * Ideal for rendering objects dynamically inside table cells or side-panels.
18
+ *
19
+ * @namespace nz.co.siliconst.ui5.metaui.layouts
20
+ * @public
21
+ */
22
+ export class CompactLayout implements ILayoutManager {
23
+ /**
24
+ * Renders the JSON Schema properties into a dense VBox layout.
25
+ *
26
+ * @param schema The active JSON schema subset.
27
+ * @param modelName The bound UI5 model name.
28
+ * @param engine The central orchestrator for delegating plugin generation.
29
+ * @param onSubmit Optional submit hook.
30
+ * @returns {Control} The VBox wrapper containing the generated compact form.
31
+ */
32
+ public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {
33
+ const container = new VBox({ renderType: "Bare" });
34
+ container.addStyleClass("sapUiTinyMargin");
35
+
36
+ if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {
37
+ Logger.warn("[MetaUI] Missing 'uiLayout' array in schema. CompactLayout will not render any fields.");
38
+ return container;
39
+ }
40
+
41
+ const tableElements: { scope: string, meta: IPropertyMetadata, label?: string }[] = [];
42
+
43
+ // Recursively render layout elements
44
+ const renderElement = (element: ILayoutElement) => {
45
+ if (element.type === "Group") {
46
+ if (element.label) {
47
+ const title = new sap.m.Title({ text: element.label, level: "H5" });
48
+ title.addStyleClass("sapUiTinyMarginTop sapUiTinyMarginBottom");
49
+ container.addItem(title);
50
+ }
51
+
52
+ if (element.elements && Array.isArray(element.elements)) {
53
+ element.elements.forEach(renderElement);
54
+ }
55
+ } else if (element.type === "Control") {
56
+ if (!element.scope || !element.scope.startsWith("#/properties/")) {
57
+ Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, "", "CompactLayout");
58
+ return;
59
+ }
60
+
61
+ const propKey = element.scope.replace("#/properties/", "");
62
+ const meta = schema.properties?.[propKey];
63
+
64
+ if (!meta) {
65
+ Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, "", "CompactLayout");
66
+ return;
67
+ }
68
+
69
+ const isCollectionOfRecords = meta.items?.type === "object" || meta.items?.properties;
70
+ const hasExplicitWidget = !!meta.ui?.widget;
71
+ const isSubLayout = meta.type === "array" && isCollectionOfRecords && !hasExplicitWidget;
72
+
73
+ if (isSubLayout) {
74
+ Logger.debug("[MetaUI CompactLayout]", `Routing property '${propKey}' to Table Sub-Layout.`, "CompactLayout");
75
+ tableElements.push({ scope: propKey, meta, label: element.label });
76
+ } else {
77
+ Logger.debug("[MetaUI CompactLayout]", `Rendering scalar field '${propKey}'.`, "CompactLayout");
78
+ this._renderScalarField(container, element, propKey, meta, modelName, engine);
79
+ }
80
+ } else {
81
+ Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}'.`, "", "CompactLayout");
82
+ }
83
+ };
84
+
85
+ // Render everything defined in the layout
86
+ schema.uiLayout.forEach(renderElement);
87
+
88
+ // Render array/table sub-layouts full width below the fields
89
+ tableElements.forEach(field => {
90
+ try {
91
+ const subSchema = {
92
+ type: "array",
93
+ title: field.label || field.meta.ui?.label || field.scope,
94
+ items: field.meta.items || { type: "object", properties: {} },
95
+ uiLayout: field.meta.items?.uiLayout
96
+ };
97
+
98
+ const control = engine.generateLayout(subSchema as ISchema, modelName, `/${field.scope}`);
99
+ if (control) {
100
+ control.addStyleClass("sapUiTinyMarginTop");
101
+ container.addItem(control);
102
+ }
103
+ } catch (error) {
104
+ const msg = (error as Error).message;
105
+ Logger.error(`[MetaUI] Failed to render array field ${field.scope}`, msg, "CompactLayout");
106
+ Logger.showErrorPopup(`Failed to render array field '${field.scope}'.\n\nDetails: ${msg}`);
107
+ }
108
+ });
109
+
110
+ return container;
111
+ }
112
+
113
+ private _renderScalarField(container: VBox, element: ILayoutElement, propKey: string, meta: IPropertyMetadata, modelName: string, engine: Engine): void {
114
+ try {
115
+ const labelText = element.label || meta.ui?.label || propKey;
116
+ const label = new Label({
117
+ text: labelText,
118
+ required: meta.required
119
+ });
120
+ label.addStyleClass("sapUiTinyMarginTop");
121
+
122
+ const effectiveMeta = { ...meta };
123
+ if (element.widget) {
124
+ effectiveMeta.ui = { ...meta.ui, widget: element.widget };
125
+ }
126
+
127
+ const control = engine.generateField(effectiveMeta, `/${propKey}`, modelName);
128
+ control.addStyleClass("sapUiTinyMarginBottom");
129
+
130
+ // Wrap label and field tightly
131
+ const fieldBox = new VBox({ renderType: "Bare", items: [label, control] });
132
+ container.addItem(fieldBox);
133
+ } catch (error) {
134
+ const msg = (error as Error).message;
135
+ Logger.error(`[MetaUI] Failed to render field ${propKey}`, msg, "CompactLayout");
136
+ Logger.showErrorPopup(`Failed to render field '${propKey}'.\n\nDetails: ${msg}`);
137
+ }
138
+ }
139
+ }
@@ -1,19 +1,31 @@
1
- sap.ui.define(["sap/ui/layout/form/SimpleForm", "sap/m/Label", "sap/ui/core/Title", "../core/PluginRegistry"], function (SimpleForm, Label, Title, ___core_PluginRegistry) {
1
+ sap.ui.define(["sap/ui/layout/form/SimpleForm", "sap/m/Label", "sap/ui/core/Title", "sap/m/VBox", "../utils/Logger"], function (SimpleForm, Label, Title, VBox, ___utils_Logger) {
2
2
  "use strict";
3
3
 
4
- const PluginRegistry = ___core_PluginRegistry["PluginRegistry"];
4
+ const Logger = ___utils_Logger["Logger"];
5
+ /**
6
+ * Layout Manager responsible for generating a fully responsive SAP Fiori SimpleForm.
7
+ * It traverses the `uiLayout` tree defined in the schema to build the form groups and fields,
8
+ * completely separating visual orchestration from data modeling.
9
+ * @namespace nz.co.siliconst.ui5.metaui.layouts
10
+ * @public
11
+ */
5
12
  class FormLayout {
6
13
  /**
7
- * Builds a SimpleForm with ResponsiveGridLayout, injecting the requested plugins.
8
- * @param properties The dictionary of fields to render.
9
- * @param modelName The dynamic model name.
10
- * @param formTitle Optional title for the form block.
11
- * @param trackPlugin Optional callback to track instantiated plugins.
14
+ * Renders the JSON Schema properties into a UI5 SimpleForm using the uiLayout definitions.
15
+ *
16
+ * @param schema The active JSON schema subset.
17
+ * @param modelName The bound UI5 model name.
18
+ * @param engine The central orchestrator for delegating plugin generation.
19
+ * @param onSubmit Optional submit hook.
20
+ * @returns {Control} The VBox wrapper containing the generated form.
12
21
  */
13
- static build(properties, modelName = "meta", formTitle, trackPlugin) {
22
+ render(schema, modelName, engine, onSubmit) {
23
+ const container = new VBox({
24
+ renderType: "Bare"
25
+ });
14
26
  const form = new SimpleForm({
15
27
  editable: true,
16
- title: formTitle,
28
+ title: schema.title,
17
29
  layout: "ResponsiveGridLayout",
18
30
  labelSpanXL: 4,
19
31
  labelSpanL: 4,
@@ -29,65 +41,124 @@ sap.ui.define(["sap/ui/layout/form/SimpleForm", "sap/m/Label", "sap/ui/core/Titl
29
41
  columnsM: 1,
30
42
  singleContainerFullSize: false
31
43
  });
32
- const registry = PluginRegistry.getInstance();
33
-
34
- // Group fields by their ui.group directive
35
- const groups = {};
36
- const DEFAULT_GROUP = "__DEFAULT__";
37
- for (const key of Object.keys(properties)) {
38
- const meta = properties[key];
39
- const groupName = meta.ui?.group || DEFAULT_GROUP;
40
- if (!groups[groupName]) groups[groupName] = [];
41
- groups[groupName].push({
42
- key,
43
- meta
44
- });
44
+ if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {
45
+ Logger.warn("[MetaUI] Missing 'uiLayout' array in schema. Form will not render any fields.");
46
+ container.addItem(form);
47
+ return container;
45
48
  }
49
+ const tableElements = [];
50
+ let hasFormFields = false;
46
51
 
47
- // Render groups
48
- for (const groupName of Object.keys(groups)) {
49
- if (groupName !== DEFAULT_GROUP) {
50
- form.addContent(new Title({
51
- text: groupName
52
- }));
53
- }
54
- groups[groupName].forEach(field => {
55
- try {
56
- const label = new Label({
57
- text: field.meta.ui?.label || field.key,
58
- required: field.meta.required
59
- });
52
+ // Recursively render layout elements
53
+ const renderElement = element => {
54
+ if (element.type === "Group") {
55
+ if (element.label) {
56
+ form.addContent(new Title({
57
+ text: element.label
58
+ }));
59
+ }
60
+ if (element.elements && Array.isArray(element.elements)) {
61
+ element.elements.forEach(renderElement);
62
+ }
63
+ } else if (element.type === "Control") {
64
+ if (!element.scope || !element.scope.startsWith("#/properties/")) {
65
+ Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, "", "FormLayout");
66
+ return;
67
+ }
68
+ const propKey = element.scope.replace("#/properties/", "");
69
+ const meta = schema.properties?.[propKey];
70
+ if (!meta) {
71
+ Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, "", "FormLayout");
72
+ return;
73
+ }
60
74
 
61
- // Attach visibility condition to label and control container logic
62
- if (field.meta.ui?.visibleOn) {
63
- const expr = `{= ${field.meta.ui.visibleOn.replace(/\$root\./g, `${modelName}>/`).replace(/\./g, '/')} }`;
64
- label.bindProperty("visible", {
65
- parts: [{
66
- path: "meta>/"
67
- }],
68
- formatter: () => false
69
- }); // temporary, condition engine does this usually
70
- }
71
- const plugin = registry.getPlugin(field.meta.type, field.meta.ui?.widget);
72
- if (trackPlugin) trackPlugin(plugin);
73
- const control = plugin.render(field.meta, `/${field.key}`, modelName);
74
- if (field.meta.ui?.fullWidth) {
75
- sap.ui.require(["sap/ui/layout/GridData"], GridData => {
76
- control.setLayoutData(new GridData({
77
- span: "XL12 L12 M12 S12"
78
- }));
79
- });
80
- }
81
- form.addContent(label);
82
- form.addContent(control);
83
- } catch (error) {
84
- sap.ui.require(["sap/base/Log"], Log => {
85
- if (Log) Log.error(`[MetaUI] Failed to render field ${field.key}`, error.message, "FormLayout");
75
+ // Architectural Boundary: Separate Field Controls (Plugins) from Sub-Layouts (LayoutManagers)
76
+ // A property is delegated to a Sub-Layout Manager (Table) ONLY if it represents a collection of complex objects.
77
+ // Collections of primitives, or explicitly assigned widgets (like multiSelect), remain in the Form as Field Plugins.
78
+ const isCollectionOfRecords = meta.items?.type === "object" || meta.items?.properties;
79
+ const hasExplicitWidget = !!meta.ui?.widget;
80
+ const isSubLayout = meta.type === "array" && isCollectionOfRecords && !hasExplicitWidget;
81
+ if (isSubLayout) {
82
+ Logger.debug("[MetaUI FormLayout]", `Routing property '${propKey}' to Table Sub-Layout.`, "FormLayout");
83
+ tableElements.push({
84
+ scope: propKey,
85
+ meta,
86
+ label: element.label
86
87
  });
88
+ } else {
89
+ hasFormFields = true;
90
+ Logger.debug("[MetaUI FormLayout]", `Rendering scalar field '${propKey}'.`, "FormLayout");
91
+ this._renderScalarField(form, element, propKey, meta, modelName, engine);
92
+ }
93
+ } else {
94
+ Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}'.`, "", "FormLayout");
95
+ }
96
+ };
97
+
98
+ // Render everything defined in the layout
99
+ schema.uiLayout.forEach(renderElement);
100
+ if (hasFormFields) {
101
+ container.addItem(form);
102
+ }
103
+
104
+ // Render array/table sub-layouts full width below the form
105
+ tableElements.forEach(field => {
106
+ try {
107
+ const subSchema = {
108
+ type: "array",
109
+ title: field.label || field.meta.ui?.label || field.scope,
110
+ items: field.meta.items || {
111
+ type: "object",
112
+ properties: {}
113
+ },
114
+ uiLayout: field.meta.items?.uiLayout // Pass down sub-layout if available
115
+ };
116
+ const control = engine.generateLayout(subSchema, modelName, `/${field.scope}`);
117
+ if (control) {
118
+ control.addStyleClass("sapUiSmallMarginTop");
119
+ container.addItem(control);
87
120
  }
121
+ } catch (error) {
122
+ const msg = error.message;
123
+ Logger.error(`[MetaUI] Failed to render array field ${field.scope}`, msg, "FormLayout");
124
+ Logger.showErrorPopup(`Failed to render array field '${field.scope}'.\n\nDetails: ${msg}`);
125
+ }
126
+ });
127
+ return container;
128
+ }
129
+ _renderScalarField(form, element, propKey, meta, modelName, engine) {
130
+ try {
131
+ const labelText = element.label || meta.ui?.label || propKey;
132
+ const label = new Label({
133
+ text: labelText,
134
+ required: meta.required
88
135
  });
136
+
137
+ // Override widget if specified in the layout element
138
+ const effectiveMeta = {
139
+ ...meta
140
+ };
141
+ if (element.widget) {
142
+ effectiveMeta.ui = {
143
+ ...meta.ui,
144
+ widget: element.widget
145
+ };
146
+ }
147
+ const control = engine.generateField(effectiveMeta, `/${propKey}`, modelName);
148
+ if (effectiveMeta.ui?.fullWidth) {
149
+ sap.ui.require(["sap/ui/layout/GridData"], GridData => {
150
+ control.setLayoutData(new GridData({
151
+ span: "XL12 L12 M12 S12"
152
+ }));
153
+ });
154
+ }
155
+ form.addContent(label);
156
+ form.addContent(control);
157
+ } catch (error) {
158
+ const msg = error.message;
159
+ Logger.error(`[MetaUI] Failed to render field ${propKey}`, msg, "FormLayout");
160
+ Logger.showErrorPopup(`Failed to render field '${propKey}'.\n\nDetails: ${msg}`);
89
161
  }
90
- return form;
91
162
  }
92
163
  }
93
164
  var __exports = {