@siliconst/metaui 1.0.2 → 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 (588) hide show
  1. package/README.md +203 -123
  2. package/package.json +3 -2
  3. package/src/nz/co/siliconst/ui5/metaui/.library +7 -7
  4. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js +70 -0
  5. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -0
  6. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts +67 -0
  7. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts.map +1 -0
  8. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js +2 -0
  9. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -0
  10. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +58 -0
  11. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js +28 -0
  12. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -0
  13. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts +16 -0
  14. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts.map +1 -0
  15. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js +2 -0
  16. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -0
  17. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +28 -0
  18. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +142 -0
  19. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -0
  20. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts +33 -0
  21. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts.map +1 -0
  22. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +2 -0
  23. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -0
  24. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +164 -0
  25. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +266 -0
  26. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -0
  27. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +162 -0
  28. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -0
  29. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +2 -0
  30. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -0
  31. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +203 -0
  32. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +73 -0
  33. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -0
  34. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +32 -0
  35. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -0
  36. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +2 -0
  37. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -0
  38. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +86 -0
  39. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +60 -0
  40. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -0
  41. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +32 -0
  42. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -0
  43. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +2 -0
  44. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -0
  45. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +61 -0
  46. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +157 -0
  47. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -0
  48. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +33 -0
  49. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -0
  50. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +2 -0
  51. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -0
  52. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +169 -0
  53. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +160 -0
  54. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -0
  55. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +28 -0
  56. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -0
  57. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +2 -0
  58. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -0
  59. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +185 -0
  60. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +443 -0
  61. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -0
  62. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +227 -0
  63. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -0
  64. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +2 -0
  65. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -0
  66. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +421 -0
  67. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +103 -0
  68. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -0
  69. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +32 -0
  70. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -0
  71. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +2 -0
  72. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -0
  73. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +119 -0
  74. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +64 -0
  75. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -0
  76. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +21 -0
  77. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -0
  78. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js +2 -0
  79. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -0
  80. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +64 -0
  81. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +120 -0
  82. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -0
  83. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +45 -0
  84. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -0
  85. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +2 -0
  86. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -0
  87. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +131 -0
  88. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +76 -43
  89. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +1 -1
  90. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +31 -6
  91. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +1 -1
  93. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +1 -1
  94. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +75 -40
  95. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js +62 -0
  96. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -0
  97. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts +26 -0
  98. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts.map +1 -0
  99. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js +2 -0
  100. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -0
  101. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +62 -0
  102. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +197 -58
  103. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +63 -9
  105. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  107. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  108. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +205 -56
  109. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js +32 -0
  110. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js.map +1 -0
  111. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts +16 -0
  112. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts.map +1 -0
  113. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js +2 -0
  114. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js.map +1 -0
  115. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.ts +26 -0
  116. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +123 -0
  117. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -0
  118. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts +49 -0
  119. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -0
  120. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +2 -0
  121. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -0
  122. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +106 -0
  123. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +151 -59
  124. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +23 -13
  126. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  127. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  128. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  129. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +160 -56
  130. package/src/nz/co/siliconst/ui5/metaui/core/Registry-dbg.js +79 -0
  131. package/src/nz/co/siliconst/ui5/metaui/core/Registry-dbg.js.map +1 -0
  132. package/src/nz/co/siliconst/ui5/metaui/core/Registry.d.ts +43 -0
  133. package/src/nz/co/siliconst/ui5/metaui/core/Registry.d.ts.map +1 -0
  134. package/src/nz/co/siliconst/ui5/metaui/core/Registry.js +2 -0
  135. package/src/nz/co/siliconst/ui5/metaui/core/Registry.js.map +1 -0
  136. package/src/nz/co/siliconst/ui5/metaui/core/Registry.ts +70 -0
  137. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +196 -36
  138. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  139. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +14 -8
  140. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  141. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  142. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  143. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +208 -31
  144. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +54 -0
  145. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -0
  146. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts +11 -0
  147. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -0
  148. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +2 -0
  149. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -0
  150. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +53 -0
  151. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +141 -55
  152. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  153. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +15 -1
  154. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  155. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js +1 -1
  156. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  157. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +158 -56
  158. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager-dbg.js +1 -1
  159. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager-dbg.js.map +1 -1
  160. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts +7 -14
  161. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts.map +1 -1
  162. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.ts +21 -26
  163. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline-dbg.js +2 -0
  164. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline-dbg.js.map +1 -0
  165. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts +38 -0
  166. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts.map +1 -0
  167. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.js +2 -0
  168. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.js.map +1 -0
  169. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.ts +39 -0
  170. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js +1 -1
  171. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
  172. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +34 -15
  173. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
  174. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +55 -33
  175. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js +1 -1
  176. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  177. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +63 -44
  178. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  179. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +102 -70
  180. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js +144 -0
  181. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js.map +1 -0
  182. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts +27 -0
  183. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts.map +1 -0
  184. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.js +2 -0
  185. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.js.map +1 -0
  186. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.ts +139 -0
  187. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +169 -56
  188. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  189. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts +19 -12
  190. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  191. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
  192. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  193. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +161 -60
  194. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +169 -90
  195. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  196. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts +21 -12
  197. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
  198. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  199. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  200. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +188 -102
  201. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js +125 -0
  202. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js.map +1 -0
  203. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts +28 -0
  204. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts.map +1 -0
  205. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js +2 -0
  206. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js.map +1 -0
  207. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.ts +127 -0
  208. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +48 -32
  209. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
  210. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +72 -20
  211. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/library.d.ts +1 -0
  213. package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
  214. package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
  215. package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
  216. package/src/nz/co/siliconst/ui5/metaui/library.ts +68 -43
  217. package/src/nz/co/siliconst/ui5/metaui/manifest.json +9 -1
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js +58 -0
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -0
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts +22 -0
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -0
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js +2 -0
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -0
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +57 -0
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js +55 -0
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js.map +1 -0
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts +21 -0
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts.map +1 -0
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js +2 -0
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js.map +1 -0
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.ts +54 -0
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin-dbg.js +46 -0
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin-dbg.js.map +1 -0
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts +23 -0
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts.map +1 -0
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.js +2 -0
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.js.map +1 -0
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.ts +45 -0
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +74 -0
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -0
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +15 -0
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -0
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +2 -0
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -0
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +80 -0
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +75 -0
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -0
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +12 -0
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -0
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +2 -0
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -0
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +83 -0
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +174 -0
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -0
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +78 -0
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -0
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +2 -0
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -0
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +165 -0
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +79 -0
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -0
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +36 -0
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -0
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +2 -0
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -0
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +77 -0
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +60 -0
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -0
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +11 -0
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -0
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +2 -0
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -0
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +56 -0
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +122 -0
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -0
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +24 -0
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -0
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +2 -0
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -0
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +125 -0
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +78 -0
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -0
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +18 -0
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -0
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +2 -0
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -0
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +74 -0
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +78 -0
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -0
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +18 -0
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -0
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +2 -0
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -0
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +75 -0
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +109 -0
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -0
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +37 -0
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -0
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +2 -0
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -0
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +105 -0
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +65 -0
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -0
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +21 -0
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -0
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +2 -0
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -0
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +64 -0
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +59 -0
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -0
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +11 -0
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -0
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +2 -0
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -0
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +56 -0
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +45 -0
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -0
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +22 -0
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -0
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js +2 -0
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -0
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +42 -0
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +74 -0
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -0
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +22 -0
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -0
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +2 -0
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -0
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +73 -0
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +61 -0
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -0
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +18 -0
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -0
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +2 -0
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -0
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +62 -0
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +74 -0
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -0
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +17 -0
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -0
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +2 -0
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -0
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +81 -0
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +61 -0
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -0
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +21 -0
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -0
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +2 -0
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -0
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +62 -0
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +64 -0
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -0
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +16 -0
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -0
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +2 -0
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -0
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +67 -0
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +58 -0
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -0
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +11 -0
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -0
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +2 -0
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -0
  364. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +55 -0
  365. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +64 -0
  366. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -0
  367. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +21 -0
  368. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -0
  369. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +2 -0
  370. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -0
  371. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +65 -0
  372. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +87 -0
  373. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -0
  374. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +37 -0
  375. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -0
  376. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +2 -0
  377. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -0
  378. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +85 -0
  379. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +61 -0
  380. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -0
  381. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +18 -0
  382. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -0
  383. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +2 -0
  384. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -0
  385. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +62 -0
  386. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +64 -0
  387. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -0
  388. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +18 -0
  389. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -0
  390. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +2 -0
  391. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -0
  392. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +63 -0
  393. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +79 -0
  394. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -0
  395. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +18 -0
  396. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -0
  397. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +2 -0
  398. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -0
  399. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +76 -0
  400. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +62 -0
  401. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -0
  402. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +11 -0
  403. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -0
  404. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +2 -0
  405. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -0
  406. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +59 -0
  407. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js +94 -0
  408. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -0
  409. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts +29 -0
  410. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts.map +1 -0
  411. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js +2 -0
  412. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -0
  413. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +102 -0
  414. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +60 -0
  415. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -0
  416. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts +22 -0
  417. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -0
  418. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js +2 -0
  419. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -0
  420. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +57 -0
  421. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +106 -0
  422. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -0
  423. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +22 -0
  424. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -0
  425. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js +2 -0
  426. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -0
  427. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +101 -0
  428. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js +77 -0
  429. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -0
  430. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts +25 -0
  431. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts.map +1 -0
  432. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js +2 -0
  433. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -0
  434. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +86 -0
  435. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin-dbg.js +36 -0
  436. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin-dbg.js.map +1 -0
  437. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts +25 -0
  438. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts.map +1 -0
  439. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.js +2 -0
  440. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.js.map +1 -0
  441. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.ts +36 -0
  442. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js +32 -0
  443. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js.map +1 -0
  444. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts +19 -0
  445. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts.map +1 -0
  446. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.js +2 -0
  447. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.js.map +1 -0
  448. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.ts +31 -0
  449. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js +32 -0
  450. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js.map +1 -0
  451. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts +17 -0
  452. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts.map +1 -0
  453. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.js +2 -0
  454. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.js.map +1 -0
  455. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.ts +27 -0
  456. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js +31 -0
  457. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js.map +1 -0
  458. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts +18 -0
  459. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts.map +1 -0
  460. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.js +2 -0
  461. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.js.map +1 -0
  462. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.ts +23 -0
  463. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin-dbg.js +45 -0
  464. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin-dbg.js.map +1 -0
  465. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts +24 -0
  466. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts.map +1 -0
  467. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.js +2 -0
  468. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.js.map +1 -0
  469. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.ts +30 -0
  470. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js +42 -0
  471. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js.map +1 -0
  472. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts +18 -0
  473. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts.map +1 -0
  474. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.js +2 -0
  475. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.js.map +1 -0
  476. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.ts +29 -0
  477. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js +41 -0
  478. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js.map +1 -0
  479. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts +17 -0
  480. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts.map +1 -0
  481. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.js +2 -0
  482. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.js.map +1 -0
  483. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.ts +25 -0
  484. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js +51 -0
  485. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js.map +1 -0
  486. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts +17 -0
  487. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts.map +1 -0
  488. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.js +2 -0
  489. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.js.map +1 -0
  490. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.ts +33 -0
  491. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js +48 -0
  492. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js.map +1 -0
  493. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts +17 -0
  494. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts.map +1 -0
  495. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.js +2 -0
  496. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.js.map +1 -0
  497. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.ts +32 -0
  498. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js +46 -0
  499. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js.map +1 -0
  500. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts +17 -0
  501. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts.map +1 -0
  502. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.js +2 -0
  503. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.js.map +1 -0
  504. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.ts +29 -0
  505. package/src/nz/co/siliconst/ui5/metaui/utils/Logger-dbg.js +83 -0
  506. package/src/nz/co/siliconst/ui5/metaui/utils/Logger-dbg.js.map +1 -0
  507. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts +29 -0
  508. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts.map +1 -0
  509. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js +2 -0
  510. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js.map +1 -0
  511. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.ts +75 -0
  512. package/ui5.yaml +3 -3
  513. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js +0 -164
  514. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js.map +0 -1
  515. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts +0 -82
  516. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts.map +0 -1
  517. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js +0 -2
  518. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js.map +0 -1
  519. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.ts +0 -162
  520. package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js +0 -51
  521. package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js.map +0 -1
  522. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts +0 -31
  523. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts.map +0 -1
  524. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js +0 -2
  525. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js.map +0 -1
  526. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.ts +0 -45
  527. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js +0 -2
  528. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js.map +0 -1
  529. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.d.ts +0 -29
  530. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.d.ts.map +0 -1
  531. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.js +0 -2
  532. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.js.map +0 -1
  533. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.ts +0 -29
  534. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js +0 -39
  535. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js.map +0 -1
  536. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts +0 -28
  537. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts.map +0 -1
  538. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js +0 -2
  539. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js.map +0 -1
  540. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.ts +0 -34
  541. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js +0 -60
  542. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js.map +0 -1
  543. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts +0 -43
  544. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts.map +0 -1
  545. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js +0 -2
  546. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js.map +0 -1
  547. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.ts +0 -58
  548. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js +0 -43
  549. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js.map +0 -1
  550. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts +0 -18
  551. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts.map +0 -1
  552. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js +0 -2
  553. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js.map +0 -1
  554. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.ts +0 -42
  555. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin-dbg.js +0 -61
  556. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin-dbg.js.map +0 -1
  557. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.d.ts +0 -18
  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 -63
  562. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js +0 -67
  563. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js.map +0 -1
  564. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts +0 -18
  565. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts.map +0 -1
  566. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js +0 -2
  567. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js.map +0 -1
  568. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.ts +0 -65
  569. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin-dbg.js +0 -54
  570. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin-dbg.js.map +0 -1
  571. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.d.ts +0 -18
  572. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.d.ts.map +0 -1
  573. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js +0 -2
  574. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js.map +0 -1
  575. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.ts +0 -55
  576. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js +0 -54
  577. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js.map +0 -1
  578. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts +0 -18
  579. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts.map +0 -1
  580. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js +0 -2
  581. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js.map +0 -1
  582. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.ts +0 -55
  583. package/test-resources/App.js +0 -11
  584. package/test-resources/Main.controller.js +0 -73
  585. package/test-resources/Main.view.xml +0 -42
  586. package/test-resources/index.html +0 -21
  587. package/test-resources/mockData.json +0 -27
  588. package/test-resources/mockSchema.json +0 -98
@@ -1,60 +1,161 @@
1
- /**
2
- * @file FormLayout.ts
3
- * @description Generates a fully responsive SAP Fiori Form layout (SimpleForm).
4
- */
5
-
6
- import SimpleForm from "sap/ui/layout/form/SimpleForm";
7
- import Label from "sap/m/Label";
8
- import { IFieldMetadata } from "../interfaces/ISchema";
9
- import { PluginRegistry } from "../core/PluginRegistry";
10
-
11
- /**
12
- * Utility class strictly for constructing Form layouts without custom CSS.
13
- */
14
- export class FormLayout {
15
- /**
16
- * Builds a SimpleForm with ResponsiveGridLayout, injecting the requested plugins.
17
- * @param fields The array of root fields to render as FormElements.
18
- * @returns A fully populated sap.ui.layout.form.SimpleForm.
19
- */
20
- public static build(fields: IFieldMetadata[]): SimpleForm {
21
- const form = new SimpleForm({
22
- editable: true,
23
- layout: "ResponsiveGridLayout",
24
- labelSpanXL: 4,
25
- labelSpanL: 4,
26
- labelSpanM: 4,
27
- labelSpanS: 12,
28
- adjustLabelSpan: false,
29
- emptySpanXL: 0,
30
- emptySpanL: 0,
31
- emptySpanM: 0,
32
- emptySpanS: 0,
33
- columnsXL: 1,
34
- columnsL: 1,
35
- columnsM: 1,
36
- singleContainerFullSize: false
37
- });
38
-
39
- const registry = PluginRegistry.getInstance();
40
-
41
- fields.forEach((field) => {
42
- // Respect Fiori accessibility standards by enforcing the required flag on labels
43
- const label = new Label({
44
- text: field.label,
45
- required: field.isRequired
46
- });
47
-
48
- // Instantiate the correct plugin for the data type
49
- const plugin = registry.getPlugin(field.type);
50
-
51
- // In the isolated state manager architecture, the binding path maps exactly to the fieldName.
52
- const control = plugin.render(field, `/${field.fieldName}`);
53
-
54
- form.addContent(label);
55
- form.addContent(control);
56
- });
57
-
58
- return form;
59
- }
60
- }
1
+ /**
2
+ * @file FormLayout.ts
3
+ * @description Generates a fully responsive SAP Fiori Form layout (SimpleForm).
4
+ */
5
+
6
+ import SimpleForm from "sap/ui/layout/form/SimpleForm";
7
+ import Label from "sap/m/Label";
8
+ import Title from "sap/ui/core/Title";
9
+ import VBox from "sap/m/VBox";
10
+ import { IPropertyMetadata, ISchema, ILayoutElement } from "../interfaces/ISchema";
11
+ import { ILayoutManager } from "../interfaces/ILayoutManager";
12
+ import { Engine } from "../core/Engine";
13
+ import { Logger } from "../utils/Logger";
14
+ import Control from "sap/ui/core/Control";
15
+
16
+ /**
17
+ * Layout Manager responsible for generating a fully responsive SAP Fiori SimpleForm.
18
+ * It traverses the `uiLayout` tree defined in the schema to build the form groups and fields,
19
+ * completely separating visual orchestration from data modeling.
20
+ * @namespace nz.co.siliconst.ui5.metaui.layouts
21
+ * @public
22
+ */
23
+ export class FormLayout implements ILayoutManager {
24
+ /**
25
+ * Renders the JSON Schema properties into a UI5 SimpleForm using the uiLayout definitions.
26
+ *
27
+ * @param schema The active JSON schema subset.
28
+ * @param modelName The bound UI5 model name.
29
+ * @param engine The central orchestrator for delegating plugin generation.
30
+ * @param onSubmit Optional submit hook.
31
+ * @returns {Control} The VBox wrapper containing the generated form.
32
+ */
33
+ public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void): Control {
34
+ const container = new VBox({ renderType: "Bare" });
35
+ const form = new SimpleForm({
36
+ editable: true,
37
+ title: schema.title,
38
+ layout: "ResponsiveGridLayout",
39
+ labelSpanXL: 4, labelSpanL: 4, labelSpanM: 4, labelSpanS: 12,
40
+ adjustLabelSpan: false,
41
+ emptySpanXL: 0, emptySpanL: 0, emptySpanM: 0, emptySpanS: 0,
42
+ columnsXL: 1, columnsL: 1, columnsM: 1,
43
+ singleContainerFullSize: false
44
+ });
45
+
46
+ if (!schema.uiLayout || !Array.isArray(schema.uiLayout)) {
47
+ Logger.warn("[MetaUI] Missing 'uiLayout' array in schema. Form will not render any fields.");
48
+ container.addItem(form);
49
+ return container;
50
+ }
51
+
52
+ const tableElements: { scope: string, meta: IPropertyMetadata, label?: string }[] = [];
53
+ let hasFormFields = false;
54
+
55
+ // Recursively render layout elements
56
+ const renderElement = (element: ILayoutElement) => {
57
+ if (element.type === "Group") {
58
+ if (element.label) {
59
+ form.addContent(new Title({ text: element.label }));
60
+ }
61
+
62
+ if (element.elements && Array.isArray(element.elements)) {
63
+ element.elements.forEach(renderElement);
64
+ }
65
+ } else if (element.type === "Control") {
66
+ if (!element.scope || !element.scope.startsWith("#/properties/")) {
67
+ Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control.`, "", "FormLayout");
68
+ return;
69
+ }
70
+
71
+ const propKey = element.scope.replace("#/properties/", "");
72
+ const meta = schema.properties?.[propKey];
73
+
74
+ if (!meta) {
75
+ Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions.`, "", "FormLayout");
76
+ return;
77
+ }
78
+
79
+ // Architectural Boundary: Separate Field Controls (Plugins) from Sub-Layouts (LayoutManagers)
80
+ // A property is delegated to a Sub-Layout Manager (Table) ONLY if it represents a collection of complex objects.
81
+ // Collections of primitives, or explicitly assigned widgets (like multiSelect), remain in the Form as Field Plugins.
82
+ const isCollectionOfRecords = meta.items?.type === "object" || meta.items?.properties;
83
+ const hasExplicitWidget = !!meta.ui?.widget;
84
+ const isSubLayout = meta.type === "array" && isCollectionOfRecords && !hasExplicitWidget;
85
+
86
+ if (isSubLayout) {
87
+ Logger.debug("[MetaUI FormLayout]", `Routing property '${propKey}' to Table Sub-Layout.`, "FormLayout");
88
+ tableElements.push({ scope: propKey, meta, label: element.label });
89
+ } else {
90
+ hasFormFields = true;
91
+ Logger.debug("[MetaUI FormLayout]", `Rendering scalar field '${propKey}'.`, "FormLayout");
92
+ this._renderScalarField(form, element, propKey, meta, modelName, engine);
93
+ }
94
+ } else {
95
+ Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}'.`, "", "FormLayout");
96
+ }
97
+ };
98
+
99
+ // Render everything defined in the layout
100
+ schema.uiLayout.forEach(renderElement);
101
+
102
+ if (hasFormFields) {
103
+ container.addItem(form);
104
+ }
105
+
106
+ // Render array/table sub-layouts full width below the form
107
+ tableElements.forEach(field => {
108
+ try {
109
+ const subSchema = {
110
+ type: "array",
111
+ title: field.label || field.meta.ui?.label || field.scope,
112
+ items: field.meta.items || { type: "object", properties: {} },
113
+ uiLayout: field.meta.items?.uiLayout // Pass down sub-layout if available
114
+ };
115
+
116
+ const control = engine.generateLayout(subSchema as ISchema, modelName, `/${field.scope}`);
117
+ if (control) {
118
+ control.addStyleClass("sapUiSmallMarginTop");
119
+ container.addItem(control);
120
+ }
121
+ } catch (error) {
122
+ const msg = (error as 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
+
128
+ return container;
129
+ }
130
+
131
+ private _renderScalarField(form: SimpleForm, element: ILayoutElement, propKey: string, meta: IPropertyMetadata, modelName: string, engine: Engine): void {
132
+ try {
133
+ const labelText = element.label || meta.ui?.label || propKey;
134
+ const label = new Label({
135
+ text: labelText,
136
+ required: meta.required
137
+ });
138
+
139
+ // Override widget if specified in the layout element
140
+ const effectiveMeta = { ...meta };
141
+ if (element.widget) {
142
+ effectiveMeta.ui = { ...meta.ui, widget: element.widget };
143
+ }
144
+
145
+ const control = engine.generateField(effectiveMeta, `/${propKey}`, modelName);
146
+
147
+ if (effectiveMeta.ui?.fullWidth) {
148
+ sap.ui.require(["sap/ui/layout/GridData"], (GridData: any) => {
149
+ control.setLayoutData(new GridData({ span: "XL12 L12 M12 S12" }));
150
+ });
151
+ }
152
+
153
+ form.addContent(label);
154
+ form.addContent(control);
155
+ } catch (error) {
156
+ const msg = (error as Error).message;
157
+ Logger.error(`[MetaUI] Failed to render field ${propKey}`, msg, "FormLayout");
158
+ Logger.showErrorPopup(`Failed to render field '${propKey}'.\n\nDetails: ${msg}`);
159
+ }
160
+ }
161
+ }
@@ -1,91 +1,170 @@
1
- sap.ui.define(["sap/m/Table", "sap/m/Column", "sap/m/Text", "sap/m/ColumnListItem", "sap/m/Toolbar", "sap/m/Title", "sap/m/ToolbarSpacer", "sap/m/Button", "../core/PluginRegistry"], function (Table, Column, Text, ColumnListItem, Toolbar, Title, ToolbarSpacer, Button, ___core_PluginRegistry) {
2
- "use strict";
3
-
4
- const PluginRegistry = ___core_PluginRegistry["PluginRegistry"];
5
- /**
6
- * Utility class strictly for constructing sap.m.Table structures with dynamic pop-in vectors.
7
- */
8
- class TableLayout {
9
- /**
10
- * Builds a responsive Table, dynamically calculating column priorities.
11
- * @param tableMeta The metadata defining the table's columns and nested fields.
12
- * @returns A fully constructed sap.m.Table ready to be bound to a list array.
13
- */
14
- static build(tableMeta) {
15
- const table = new Table({
16
- headerToolbar: new Toolbar({
17
- content: [new Title({
18
- text: tableMeta.label || tableMeta.tableName
19
- }), new ToolbarSpacer(), new Button({
20
- text: "Add Row",
21
- icon: "sap-icon://add",
22
- press: oEvent => {
23
- const btn = oEvent.getSource();
24
- const tbl = btn.getParent().getParent();
25
- const model = tbl.getModel("meta");
26
- const path = `/${tableMeta.tableName}`;
27
- const data = model.getProperty(path) || [];
28
- data.push({}); // append empty row
29
- model.setProperty(path, data);
30
- }
31
- })]
32
- }),
33
- fixedLayout: false,
34
- // Allows native UI5 column width calculations
35
- mode: "Delete",
36
- delete: oEvent => {
37
- const item = oEvent.getParameter("listItem");
38
- const path = item.getBindingContext("meta").getPath(); // e.g. "/Contacts/0"
39
- const model = item.getModel("meta");
40
- const parts = path.split("/");
41
- const index = parseInt(parts.pop() || "0", 10);
42
- const arrayPath = parts.join("/");
43
- const data = model.getProperty(arrayPath);
44
- data.splice(index, 1);
45
- model.setProperty(arrayPath, data);
46
- }
47
- });
48
- const templateCells = [];
49
- const registry = PluginRegistry.getInstance();
50
- tableMeta.fields.forEach(field => {
51
- // Build the column header
52
- const column = new Column({
53
- header: new Text({
54
- text: field.label
55
- }),
56
- // Fiori UX: High priority for primary keys so they don't pop-in too early
57
- demandPopin: !field.isKey,
58
- minScreenWidth: field.isKey ? "" : "Tablet",
59
- popinDisplay: "Inline"
60
- });
61
- table.addColumn(column);
62
-
63
- // Instantiate the cell template (plugin)
64
- const plugin = registry.getPlugin(field.type);
65
-
66
- // In table lists, the binding path is relative to the row's context context (e.g. "{fieldName}")
67
- const control = plugin.render(field, field.fieldName);
68
- templateCells.push(control);
69
- });
70
-
71
- // Create the row template and bind it to the table via the tableName array path
72
- const rowTemplate = new ColumnListItem({
73
- cells: templateCells
74
- });
75
-
76
- // The absolute binding path from the StateManager for this table (using the named model 'meta')
77
- table.bindItems({
78
- path: `meta>/${tableMeta.tableName}`,
79
- template: rowTemplate,
80
- templateShareable: false
81
- });
82
- return table;
83
- }
84
- }
85
- var __exports = {
86
- __esModule: true
87
- };
88
- __exports.TableLayout = TableLayout;
89
- return __exports;
90
- });
1
+ sap.ui.define(["sap/m/Table", "sap/m/Column", "sap/m/Text", "sap/m/ColumnListItem", "sap/m/Toolbar", "sap/m/Title", "sap/m/ToolbarSpacer", "sap/m/Button", "../utils/Logger"], function (Table, Column, Text, ColumnListItem, Toolbar, Title, ToolbarSpacer, Button, ___utils_Logger) {
2
+ "use strict";
3
+
4
+ const Logger = ___utils_Logger["Logger"];
5
+ /**
6
+ * Layout Manager responsible for generating a responsive SAP Fiori Table.
7
+ * It is automatically utilized by the Engine when the schema root or property is of type 'array'.
8
+ * Includes built-in support for adding and deleting rows via dynamic data binding manipulation.
9
+ *
10
+ * @namespace nz.co.siliconst.ui5.metaui.layouts
11
+ * @public
12
+ */
13
+ class TableLayout {
14
+ /**
15
+ * Renders the JSON Schema array properties into a UI5 Table.
16
+ *
17
+ * @param schema The active JSON schema array definition.
18
+ * @param modelName The UI5 JSONModel name used for data binding.
19
+ * @param engine The central orchestrator for delegating column plugin generation.
20
+ * @param onSubmit Optional submit hook.
21
+ * @param bindingPath The JSON path representing the array within the payload.
22
+ * @returns {Control} The generated sap.m.Table control.
23
+ * @throws {Error} If the provided schema is not of type 'array'.
24
+ */
25
+ render(schema, modelName, engine, onSubmit, bindingPath = "/") {
26
+ if (schema.type !== "array" || !schema.items || !schema.items.properties) {
27
+ throw new Error("[MetaUI] TableLayout requires an array schema with items.properties.");
28
+ }
29
+ const tableTitle = schema.title || "Table";
30
+ const actualModelName = modelName;
31
+ const actualPath = bindingPath;
32
+ const table = new Table({
33
+ headerToolbar: new Toolbar({
34
+ content: [new Title({
35
+ text: tableTitle
36
+ }), new ToolbarSpacer(), ...(engine.isDisplayMode ? [] : [new Button({
37
+ text: "Add Row",
38
+ icon: "sap-icon://add",
39
+ press: oEvent => {
40
+ const btn = oEvent.getSource();
41
+ const tbl = btn.getParent().getParent();
42
+ const model = tbl.getModel(actualModelName);
43
+ const info = tbl.getBindingInfo("items");
44
+ if (!info || !info.path) return;
45
+ const rawData = model.getProperty(info.path);
46
+ const data = Array.isArray(rawData) ? rawData : [];
47
+ const newData = [...data, {}];
48
+ model.setProperty(info.path, newData);
49
+ }
50
+ })])]
51
+ }),
52
+ fixedLayout: false,
53
+ mode: engine.isDisplayMode ? "None" : "Delete",
54
+ delete: oEvent => {
55
+ const item = oEvent.getParameter("listItem");
56
+ const path = item.getBindingContext(actualModelName).getPath();
57
+ const model = item.getModel(actualModelName);
58
+ const splitPaths = path.split("/");
59
+ const index = parseInt(splitPaths.pop() || "0", 10);
60
+ let arrayPath = splitPaths.join("/");
61
+ if (arrayPath === "") arrayPath = "/";
62
+ const rawData = model.getProperty(arrayPath);
63
+ const data = Array.isArray(rawData) ? rawData : [];
64
+ const newData = [...data];
65
+ newData.splice(index, 1);
66
+ model.setProperty(arrayPath, newData);
67
+ }
68
+ });
69
+ const templateCells = [];
70
+ const props = schema.items.properties;
71
+ const layoutElements = schema.uiLayout;
72
+ if (layoutElements && Array.isArray(layoutElements)) {
73
+ // Only render columns defined in uiLayout
74
+ layoutElements.forEach(element => {
75
+ if (element.type === "Control") {
76
+ if (!element.scope || !element.scope.startsWith("#/properties/")) {
77
+ Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control for Table.`, "", "TableLayout");
78
+ return;
79
+ }
80
+ const propKey = element.scope.replace("#/properties/", "");
81
+ const fieldMeta = props[propKey];
82
+ if (!fieldMeta) {
83
+ Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions for Table.`, "", "TableLayout");
84
+ return;
85
+ }
86
+ try {
87
+ const isKey = !!fieldMeta.ui?.isKey;
88
+ const column = new Column({
89
+ header: new Text({
90
+ text: element.label || fieldMeta.ui?.label || propKey
91
+ }),
92
+ demandPopin: !isKey,
93
+ minScreenWidth: isKey ? "" : "Tablet",
94
+ popinDisplay: "Inline"
95
+ });
96
+ table.addColumn(column);
97
+
98
+ // Override widget if specified in the layout element
99
+ const effectiveMeta = {
100
+ ...fieldMeta
101
+ };
102
+ if (element.widget) {
103
+ effectiveMeta.ui = {
104
+ ...fieldMeta.ui,
105
+ widget: element.widget
106
+ };
107
+ }
108
+
109
+ // Use engine to generate fields natively and track validation
110
+ const control = engine.generateField(effectiveMeta, propKey, actualModelName || "meta", true);
111
+ templateCells.push(control);
112
+ } catch (error) {
113
+ const msg = error.message;
114
+ Logger.error(`[MetaUI] Failed to render column ${propKey}`, msg, "TableLayout");
115
+ Logger.showErrorPopup(`Failed to render table column '${propKey}'.\n\nDetails: ${msg}`);
116
+ templateCells.push(new Text({
117
+ text: "Error"
118
+ }));
119
+ }
120
+ } else {
121
+ Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}' inside TableLayout. Only 'Control' is supported for columns.`, "", "TableLayout");
122
+ }
123
+ });
124
+ } else {
125
+ Logger.debug("[MetaUI TableLayout]", "No uiLayout provided. Falling back to rendering all properties as columns.", "TableLayout");
126
+ // Fallback: If no uiLayout is provided, render all properties as columns
127
+ Object.keys(props).forEach(key => {
128
+ try {
129
+ const fieldMeta = props[key];
130
+ const isKey = !!fieldMeta.ui?.isKey;
131
+ const column = new Column({
132
+ header: new Text({
133
+ text: fieldMeta.ui?.label || key
134
+ }),
135
+ demandPopin: !isKey,
136
+ minScreenWidth: isKey ? "" : "Tablet",
137
+ popinDisplay: "Inline"
138
+ });
139
+ table.addColumn(column);
140
+ const control = engine.generateField(fieldMeta, key, actualModelName || "meta", true);
141
+ templateCells.push(control);
142
+ } catch (error) {
143
+ const msg = error.message;
144
+ Logger.error(`[MetaUI] Failed to render fallback column ${key}`, msg, "TableLayout");
145
+ Logger.showErrorPopup(`Failed to render fallback table column '${key}'.\n\nDetails: ${msg}`);
146
+ templateCells.push(new Text({
147
+ text: "Error"
148
+ }));
149
+ }
150
+ });
151
+ }
152
+ const rowTemplate = new ColumnListItem({
153
+ cells: templateCells
154
+ });
155
+ table.bindItems({
156
+ path: actualPath,
157
+ model: actualModelName,
158
+ template: rowTemplate,
159
+ templateShareable: false
160
+ });
161
+ return table;
162
+ }
163
+ }
164
+ var __exports = {
165
+ __esModule: true
166
+ };
167
+ __exports.TableLayout = TableLayout;
168
+ return __exports;
169
+ });
91
170
  //# sourceMappingURL=TableLayout-dbg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableLayout-dbg.js","names":["PluginRegistry","___core_PluginRegistry","TableLayout","build","tableMeta","table","Table","headerToolbar","Toolbar","content","Title","text","label","tableName","ToolbarSpacer","Button","icon","press","oEvent","btn","getSource","tbl","getParent","model","getModel","path","data","getProperty","push","setProperty","fixedLayout","mode","delete","item","getParameter","getBindingContext","getPath","parts","split","index","parseInt","pop","arrayPath","join","splice","templateCells","registry","getInstance","fields","forEach","field","column","Column","header","Text","demandPopin","isKey","minScreenWidth","popinDisplay","addColumn","plugin","getPlugin","type","control","render","fieldName","rowTemplate","ColumnListItem","cells","bindItems","template","templateShareable","__exports","__esModule"],"sources":["TableLayout.ts"],"sourcesContent":["/**\r\n * @file TableLayout.ts\r\n * @description Generates a responsive SAP Fiori Table layout.\r\n */\r\n\r\nimport Table from \"sap/m/Table\";\r\nimport Column from \"sap/m/Column\";\r\nimport Text from \"sap/m/Text\";\r\nimport ColumnListItem from \"sap/m/ColumnListItem\";\r\nimport Toolbar from \"sap/m/Toolbar\";\r\nimport Title from \"sap/m/Title\";\r\nimport ToolbarSpacer from \"sap/m/ToolbarSpacer\";\r\nimport Button from \"sap/m/Button\";\r\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\r\nimport { ITableMetadata, IFieldMetadata } from \"../interfaces/ISchema\";\r\nimport { PluginRegistry } from \"../core/PluginRegistry\";\r\nimport Control from \"sap/ui/core/Control\";\r\n\r\n/**\r\n * Utility class strictly for constructing sap.m.Table structures with dynamic pop-in vectors.\r\n */\r\nexport class TableLayout {\r\n /**\r\n * Builds a responsive Table, dynamically calculating column priorities.\r\n * @param tableMeta The metadata defining the table's columns and nested fields.\r\n * @returns A fully constructed sap.m.Table ready to be bound to a list array.\r\n */\r\n public static build(tableMeta: ITableMetadata): Table {\r\n const table = new Table({\r\n headerToolbar: new Toolbar({\r\n content: [\r\n new Title({ text: tableMeta.label || tableMeta.tableName }),\r\n new ToolbarSpacer(),\r\n new Button({\r\n text: \"Add Row\",\r\n icon: \"sap-icon://add\",\r\n press: (oEvent: any) => {\r\n const btn = oEvent.getSource();\r\n const tbl = btn.getParent().getParent() as Table;\r\n const model = tbl.getModel(\"meta\") as JSONModel;\r\n const path = `/${tableMeta.tableName}`;\r\n const data = model.getProperty(path) || [];\r\n data.push({}); // append empty row\r\n model.setProperty(path, data);\r\n }\r\n })\r\n ]\r\n }),\r\n fixedLayout: false, // Allows native UI5 column width calculations\r\n mode: \"Delete\",\r\n delete: (oEvent: any) => {\r\n const item = oEvent.getParameter(\"listItem\");\r\n const path = item.getBindingContext(\"meta\").getPath(); // e.g. \"/Contacts/0\"\r\n const model = item.getModel(\"meta\") as JSONModel;\r\n \r\n const parts = path.split(\"/\");\r\n const index = parseInt(parts.pop() || \"0\", 10);\r\n const arrayPath = parts.join(\"/\");\r\n \r\n const data = model.getProperty(arrayPath);\r\n data.splice(index, 1);\r\n model.setProperty(arrayPath, data);\r\n }\r\n });\r\n\r\n const templateCells: Control[] = [];\r\n const registry = PluginRegistry.getInstance();\r\n\r\n tableMeta.fields.forEach((field: IFieldMetadata) => {\r\n // Build the column header\r\n const column = new Column({\r\n header: new Text({ text: field.label }),\r\n // Fiori UX: High priority for primary keys so they don't pop-in too early\r\n demandPopin: !field.isKey, \r\n minScreenWidth: field.isKey ? \"\" : \"Tablet\",\r\n popinDisplay: \"Inline\"\r\n });\r\n table.addColumn(column);\r\n\r\n // Instantiate the cell template (plugin)\r\n const plugin = registry.getPlugin(field.type);\r\n \r\n // In table lists, the binding path is relative to the row's context context (e.g. \"{fieldName}\")\r\n const control = plugin.render(field, field.fieldName);\r\n templateCells.push(control);\r\n });\r\n\r\n // Create the row template and bind it to the table via the tableName array path\r\n const rowTemplate = new ColumnListItem({\r\n cells: templateCells\r\n });\r\n\r\n // The absolute binding path from the StateManager for this table (using the named model 'meta')\r\n table.bindItems({\r\n path: `meta>/${tableMeta.tableName}`,\r\n template: rowTemplate,\r\n templateShareable: false\r\n });\r\n\r\n return table;\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TableLayout-dbg.js","names":["Logger","___utils_Logger","TableLayout","render","schema","modelName","engine","onSubmit","bindingPath","type","items","properties","Error","tableTitle","title","actualModelName","actualPath","table","Table","headerToolbar","Toolbar","content","Title","text","ToolbarSpacer","isDisplayMode","Button","icon","press","oEvent","btn","getSource","tbl","getParent","model","getModel","info","getBindingInfo","path","rawData","getProperty","data","Array","isArray","newData","setProperty","fixedLayout","mode","delete","item","getParameter","getBindingContext","getPath","splitPaths","split","index","parseInt","pop","arrayPath","join","splice","templateCells","props","layoutElements","uiLayout","forEach","element","scope","startsWith","error","propKey","replace","fieldMeta","isKey","ui","column","Column","header","Text","label","demandPopin","minScreenWidth","popinDisplay","addColumn","effectiveMeta","widget","control","generateField","push","msg","message","showErrorPopup","warn","debug","Object","keys","key","rowTemplate","ColumnListItem","cells","bindItems","template","templateShareable","__exports","__esModule"],"sources":["TableLayout.ts"],"sourcesContent":["/**\n * @file TableLayout.ts\n * @description Generates a responsive SAP Fiori Table layout for v2 schema.\n */\n\nimport Table from \"sap/m/Table\";\nimport Column from \"sap/m/Column\";\nimport Text from \"sap/m/Text\";\nimport ColumnListItem from \"sap/m/ColumnListItem\";\nimport Toolbar from \"sap/m/Toolbar\";\nimport Title from \"sap/m/Title\";\nimport ToolbarSpacer from \"sap/m/ToolbarSpacer\";\nimport Button from \"sap/m/Button\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\nimport Control from \"sap/ui/core/Control\";\nimport { IPropertyMetadata, ISchema, ILayoutElement } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Engine } from \"../core/Engine\";\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * Layout Manager responsible for generating a responsive SAP Fiori Table.\n * It is automatically utilized by the Engine when the schema root or property is of type 'array'.\n * Includes built-in support for adding and deleting rows via dynamic data binding manipulation.\n * \n * @namespace nz.co.siliconst.ui5.metaui.layouts\n * @public\n */\nexport class TableLayout implements ILayoutManager {\n /**\n * Renders the JSON Schema array properties into a UI5 Table.\n * \n * @param schema The active JSON schema array definition.\n * @param modelName The UI5 JSONModel name used for data binding.\n * @param engine The central orchestrator for delegating column plugin generation.\n * @param onSubmit Optional submit hook.\n * @param bindingPath The JSON path representing the array within the payload.\n * @returns {Control} The generated sap.m.Table control.\n * @throws {Error} If the provided schema is not of type 'array'.\n */\n public render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void, bindingPath: string = \"/\"): Control {\n if (schema.type !== \"array\" || !schema.items || !schema.items.properties) {\n throw new Error(\"[MetaUI] TableLayout requires an array schema with items.properties.\");\n }\n\n const tableTitle = schema.title || \"Table\";\n const actualModelName = modelName;\n const actualPath = bindingPath;\n\n const table = new Table({\n headerToolbar: new Toolbar({\n content: [\n new Title({ text: tableTitle }),\n new ToolbarSpacer(),\n ...(engine.isDisplayMode ? [] : [\n new Button({\n text: \"Add Row\",\n icon: \"sap-icon://add\",\n press: (oEvent: sap.ui.base.Event) => {\n const btn = oEvent.getSource();\n const tbl = btn.getParent().getParent() as Table;\n const model = tbl.getModel(actualModelName) as JSONModel;\n const info = tbl.getBindingInfo(\"items\");\n if (!info || !info.path) return;\n\n const rawData = model.getProperty(info.path);\n const data = Array.isArray(rawData) ? rawData : [];\n const newData = [...data, {}];\n model.setProperty(info.path, newData);\n }\n })\n ])\n ]\n }),\n fixedLayout: false,\n mode: engine.isDisplayMode ? \"None\" : \"Delete\",\n delete: (oEvent: sap.ui.base.Event) => {\n const item = oEvent.getParameter(\"listItem\");\n const path = item.getBindingContext(actualModelName).getPath();\n const model = item.getModel(actualModelName) as JSONModel;\n\n const splitPaths = path.split(\"/\");\n const index = parseInt(splitPaths.pop() || \"0\", 10);\n let arrayPath = splitPaths.join(\"/\");\n if (arrayPath === \"\") arrayPath = \"/\";\n\n const rawData = model.getProperty(arrayPath);\n const data = Array.isArray(rawData) ? rawData : [];\n const newData = [...data];\n newData.splice(index, 1);\n model.setProperty(arrayPath, newData);\n }\n });\n\n const templateCells: Control[] = [];\n const props = schema.items.properties;\n const layoutElements = schema.uiLayout;\n\n if (layoutElements && Array.isArray(layoutElements)) {\n // Only render columns defined in uiLayout\n layoutElements.forEach((element: ILayoutElement) => {\n if (element.type === \"Control\") {\n if (!element.scope || !element.scope.startsWith(\"#/properties/\")) {\n Logger.error(`[MetaUI] Invalid scope '${element.scope}' in uiLayout Control for Table.`, \"\", \"TableLayout\");\n return;\n }\n\n const propKey = element.scope.replace(\"#/properties/\", \"\");\n const fieldMeta = props[propKey];\n\n if (!fieldMeta) {\n Logger.error(`[MetaUI] Property '${propKey}' not found in schema definitions for Table.`, \"\", \"TableLayout\");\n return;\n }\n\n try {\n const isKey = !!fieldMeta.ui?.isKey;\n\n const column = new Column({\n header: new Text({ text: element.label || fieldMeta.ui?.label || propKey }),\n demandPopin: !isKey,\n minScreenWidth: isKey ? \"\" : \"Tablet\",\n popinDisplay: \"Inline\"\n });\n table.addColumn(column);\n\n // Override widget if specified in the layout element\n const effectiveMeta = { ...fieldMeta };\n if (element.widget) {\n effectiveMeta.ui = { ...fieldMeta.ui, widget: element.widget };\n }\n\n // Use engine to generate fields natively and track validation\n const control = engine.generateField(effectiveMeta, propKey, actualModelName || \"meta\", true);\n templateCells.push(control);\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render column ${propKey}`, msg, \"TableLayout\");\n Logger.showErrorPopup(`Failed to render table column '${propKey}'.\\n\\nDetails: ${msg}`);\n templateCells.push(new Text({ text: \"Error\" }));\n }\n } else {\n Logger.warn(`[MetaUI] Unsupported layout element type '${element.type}' inside TableLayout. Only 'Control' is supported for columns.`, \"\", \"TableLayout\");\n }\n });\n } else {\n Logger.debug(\"[MetaUI TableLayout]\", \"No uiLayout provided. Falling back to rendering all properties as columns.\", \"TableLayout\");\n // Fallback: If no uiLayout is provided, render all properties as columns\n Object.keys(props).forEach((key) => {\n try {\n const fieldMeta = props[key];\n const isKey = !!fieldMeta.ui?.isKey;\n\n const column = new Column({\n header: new Text({ text: fieldMeta.ui?.label || key }),\n demandPopin: !isKey,\n minScreenWidth: isKey ? \"\" : \"Tablet\",\n popinDisplay: \"Inline\"\n });\n table.addColumn(column);\n\n const control = engine.generateField(fieldMeta, key, actualModelName || \"meta\", true);\n templateCells.push(control);\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI] Failed to render fallback column ${key}`, msg, \"TableLayout\");\n Logger.showErrorPopup(`Failed to render fallback table column '${key}'.\\n\\nDetails: ${msg}`);\n templateCells.push(new Text({ text: \"Error\" }));\n }\n });\n }\n\n\n\n const rowTemplate = new ColumnListItem({\n cells: templateCells\n });\n\n table.bindItems({\n path: actualPath,\n model: actualModelName,\n template: rowTemplate,\n templateShareable: false\n });\n\n return table;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,20 +1,29 @@
1
1
  declare module "nz/co/siliconst/ui5/metaui/layouts/TableLayout" {
2
+ import Control from "sap/ui/core/Control";
3
+ import { ISchema } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
4
+ import { ILayoutManager } from "nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager";
5
+ import { Engine } from "nz/co/siliconst/ui5/metaui/core/Engine";
2
6
  /**
3
- * @file TableLayout.ts
4
- * @description Generates a responsive SAP Fiori Table layout.
7
+ * Layout Manager responsible for generating a responsive SAP Fiori Table.
8
+ * It is automatically utilized by the Engine when the schema root or property is of type 'array'.
9
+ * Includes built-in support for adding and deleting rows via dynamic data binding manipulation.
10
+ *
11
+ * @namespace nz.co.siliconst.ui5.metaui.layouts
12
+ * @public
5
13
  */
6
- import Table from "sap/m/Table";
7
- import { ITableMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
8
- /**
9
- * Utility class strictly for constructing sap.m.Table structures with dynamic pop-in vectors.
10
- */
11
- export class TableLayout {
14
+ export class TableLayout implements ILayoutManager {
12
15
  /**
13
- * Builds a responsive Table, dynamically calculating column priorities.
14
- * @param tableMeta The metadata defining the table's columns and nested fields.
15
- * @returns A fully constructed sap.m.Table ready to be bound to a list array.
16
+ * Renders the JSON Schema array properties into a UI5 Table.
17
+ *
18
+ * @param schema The active JSON schema array definition.
19
+ * @param modelName The UI5 JSONModel name used for data binding.
20
+ * @param engine The central orchestrator for delegating column plugin generation.
21
+ * @param onSubmit Optional submit hook.
22
+ * @param bindingPath The JSON path representing the array within the payload.
23
+ * @returns {Control} The generated sap.m.Table control.
24
+ * @throws {Error} If the provided schema is not of type 'array'.
16
25
  */
17
- static build(tableMeta: ITableMetadata): Table;
26
+ render(schema: ISchema, modelName: string, engine: Engine, onSubmit?: () => void, bindingPath?: string): Control;
18
27
  }
19
28
  }
20
29
  //# sourceMappingURL=TableLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableLayout.d.ts","sourceRoot":"..\\..\\..\\..\\..\\..\\..\\..","sources":["src\\nz\\co\\siliconst\\ui5\\metaui\\layouts\\TableLayout.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gDAAgD,CAAC;IAChE;;;OAGG;IAEH,OAAO,KAAK,MAAM,aAAa,CAAC;IAShC,OAAO,EAAE,cAAc,EAAkB,MAAM,+CAA+C,CAAC;IAI/F;;OAEG;IACH,MAAa,WAAW;QACpB;;;;WAIG;eACW,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,KAAK;KA0ExD;CAEA"}
1
+ {"version":3,"file":"TableLayout.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gDAAgD,CAAC;IAehE,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAC1C,OAAO,EAAqB,OAAO,EAAkB,MAAM,+CAA+C,CAAC;IAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;IACtF,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;IAGhE;;;;;;;OAOG;IACH,MAAa,WAAY,YAAW,cAAc;QAC9C;;;;;;;;;;WAUG;QACI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,EAAE,WAAW,GAAE,MAAY,GAAG,OAAO;KAmJ/H;CAEA"}
@@ -1,2 +1,2 @@
1
- sap.ui.define(["sap/m/Table","sap/m/Column","sap/m/Text","sap/m/ColumnListItem","sap/m/Toolbar","sap/m/Title","sap/m/ToolbarSpacer","sap/m/Button","../core/PluginRegistry"],function(e,t,n,s,a,o,l,r,c){"use strict";const i=c["PluginRegistry"];class p{static build(c){const p=new e({headerToolbar:new a({content:[new o({text:c.label||c.tableName}),new l,new r({text:"Add Row",icon:"sap-icon://add",press:e=>{const t=e.getSource();const n=t.getParent().getParent();const s=n.getModel("meta");const a=`/${c.tableName}`;const o=s.getProperty(a)||[];o.push({});s.setProperty(a,o)}})]}),fixedLayout:false,mode:"Delete",delete:e=>{const t=e.getParameter("listItem");const n=t.getBindingContext("meta").getPath();const s=t.getModel("meta");const a=n.split("/");const o=parseInt(a.pop()||"0",10);const l=a.join("/");const r=s.getProperty(l);r.splice(o,1);s.setProperty(l,r)}});const m=[];const d=i.getInstance();c.fields.forEach(e=>{const s=new t({header:new n({text:e.label}),demandPopin:!e.isKey,minScreenWidth:e.isKey?"":"Tablet",popinDisplay:"Inline"});p.addColumn(s);const a=d.getPlugin(e.type);const o=a.render(e,e.fieldName);m.push(o)});const u=new s({cells:m});p.bindItems({path:`meta>/${c.tableName}`,template:u,templateShareable:false});return p}}var m={__esModule:true};m.TableLayout=p;return m});
1
+ sap.ui.define(["sap/m/Table","sap/m/Column","sap/m/Text","sap/m/ColumnListItem","sap/m/Toolbar","sap/m/Title","sap/m/ToolbarSpacer","sap/m/Button","../utils/Logger"],function(e,t,o,r,a,n,s,i,l){"use strict";const p=l["Logger"];class c{render(l,c,u,d,m="/"){if(l.type!=="array"||!l.items||!l.items.properties){throw new Error("[MetaUI] TableLayout requires an array schema with items.properties.")}const y=l.title||"Table";const b=c;const g=m;const h=new e({headerToolbar:new a({content:[new n({text:y}),new s,...u.isDisplayMode?[]:[new i({text:"Add Row",icon:"sap-icon://add",press:e=>{const t=e.getSource();const o=t.getParent().getParent();const r=o.getModel(b);const a=o.getBindingInfo("items");if(!a||!a.path)return;const n=r.getProperty(a.path);const s=Array.isArray(n)?n:[];const i=[...s,{}];r.setProperty(a.path,i)}})]]}),fixedLayout:false,mode:u.isDisplayMode?"None":"Delete",delete:e=>{const t=e.getParameter("listItem");const o=t.getBindingContext(b).getPath();const r=t.getModel(b);const a=o.split("/");const n=parseInt(a.pop()||"0",10);let s=a.join("/");if(s==="")s="/";const i=r.getProperty(s);const l=Array.isArray(i)?i:[];const p=[...l];p.splice(n,1);r.setProperty(s,p)}});const f=[];const w=l.items.properties;const T=l.uiLayout;if(T&&Array.isArray(T)){T.forEach(e=>{if(e.type==="Control"){if(!e.scope||!e.scope.startsWith("#/properties/")){p.error(`[MetaUI] Invalid scope '${e.scope}' in uiLayout Control for Table.`,"","TableLayout");return}const r=e.scope.replace("#/properties/","");const a=w[r];if(!a){p.error(`[MetaUI] Property '${r}' not found in schema definitions for Table.`,"","TableLayout");return}try{const n=!!a.ui?.isKey;const s=new t({header:new o({text:e.label||a.ui?.label||r}),demandPopin:!n,minScreenWidth:n?"":"Tablet",popinDisplay:"Inline"});h.addColumn(s);const i={...a};if(e.widget){i.ui={...a.ui,widget:e.widget}}const l=u.generateField(i,r,b||"meta",true);f.push(l)}catch(e){const t=e.message;p.error(`[MetaUI] Failed to render column ${r}`,t,"TableLayout");p.showErrorPopup(`Failed to render table column '${r}'.\n\nDetails: ${t}`);f.push(new o({text:"Error"}))}}else{p.warn(`[MetaUI] Unsupported layout element type '${e.type}' inside TableLayout. Only 'Control' is supported for columns.`,"","TableLayout")}})}else{p.debug("[MetaUI TableLayout]","No uiLayout provided. Falling back to rendering all properties as columns.","TableLayout");Object.keys(w).forEach(e=>{try{const r=w[e];const a=!!r.ui?.isKey;const n=new t({header:new o({text:r.ui?.label||e}),demandPopin:!a,minScreenWidth:a?"":"Tablet",popinDisplay:"Inline"});h.addColumn(n);const s=u.generateField(r,e,b||"meta",true);f.push(s)}catch(t){const r=t.message;p.error(`[MetaUI] Failed to render fallback column ${e}`,r,"TableLayout");p.showErrorPopup(`Failed to render fallback table column '${e}'.\n\nDetails: ${r}`);f.push(new o({text:"Error"}))}})}const L=new r({cells:f});h.bindItems({path:g,model:b,template:L,templateShareable:false});return h}}var u={__esModule:true};u.TableLayout=c;return u});
2
2
  //# sourceMappingURL=TableLayout.js.map