@siliconst/metaui 1.4.6 → 1.4.8

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 (433) hide show
  1. package/package.json +1 -1
  2. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -1
  3. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts +2 -2
  4. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts.map +1 -1
  5. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -1
  6. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +2 -2
  7. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -1
  8. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -1
  9. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +2 -2
  10. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +16 -2
  11. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -1
  12. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts +11 -1
  13. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts.map +1 -1
  14. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +1 -1
  15. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -1
  16. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +14 -3
  17. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +48 -5
  18. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  19. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +48 -5
  20. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  21. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  22. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  23. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +55 -10
  24. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +32 -1
  25. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -1
  26. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +7 -0
  27. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -1
  28. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +1 -1
  29. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -1
  30. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +11 -1
  31. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +20 -0
  32. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -1
  33. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +12 -0
  34. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -1
  35. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -1
  37. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +21 -0
  38. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +38 -7
  39. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -1
  40. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +17 -1
  41. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -1
  42. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -1
  44. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +46 -8
  45. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +22 -6
  46. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -1
  47. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +41 -0
  48. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -1
  49. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -1
  51. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +57 -12
  52. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +33 -5
  53. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  54. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +15 -4
  55. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  56. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  57. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  58. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +40 -7
  59. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +5 -0
  60. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +7 -3
  62. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  63. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  64. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +8 -4
  65. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +4 -0
  66. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  67. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +5 -1
  68. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  70. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +5 -1
  71. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js.map +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +4 -3
  74. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -1
  75. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +9 -8
  77. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +7 -3
  78. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +5 -1
  80. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
  81. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +1 -1
  82. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  83. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +11 -6
  84. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +1 -1
  85. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +1 -1
  87. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +1 -1
  88. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js +45 -12
  90. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -1
  91. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts +6 -0
  92. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts.map +1 -1
  93. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js +1 -1
  94. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -1
  95. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +26 -13
  96. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +25 -12
  97. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +5 -5
  99. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  100. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  101. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  102. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +35 -28
  103. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +17 -3
  104. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts +5 -1
  106. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -1
  107. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +1 -1
  108. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -1
  109. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +14 -4
  110. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +162 -106
  111. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  112. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +25 -26
  113. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  114. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  115. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  116. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +180 -113
  117. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +26 -0
  118. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  119. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +23 -1
  120. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  121. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  122. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +29 -7
  123. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
  124. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -1
  126. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
  127. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +1 -1
  128. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +6 -0
  129. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  130. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +7 -2
  131. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  132. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  133. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +11 -6
  134. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline-dbg.js.map +1 -1
  135. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts +1 -1
  136. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts.map +1 -1
  137. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.ts +1 -1
  138. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js +10 -0
  139. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js.map +1 -1
  140. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts +9 -0
  141. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts.map +1 -1
  142. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.js.map +1 -1
  143. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.ts +9 -0
  144. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +10 -0
  145. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts +9 -0
  147. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  148. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +10 -1
  150. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js +9 -0
  151. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js.map +1 -1
  152. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts +8 -0
  153. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts.map +1 -1
  154. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js.map +1 -1
  155. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.ts +9 -1
  156. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +3 -33
  157. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
  158. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +33 -34
  159. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  160. package/src/nz/co/siliconst/ui5/metaui/library.d.ts +14 -7
  161. package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
  162. package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
  163. package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
  164. package/src/nz/co/siliconst/ui5/metaui/library.ts +15 -34
  165. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -1
  166. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts +1 -1
  167. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -1
  168. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -1
  169. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +1 -1
  170. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js +0 -2
  171. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js.map +1 -1
  172. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts +1 -1
  173. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts.map +1 -1
  174. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js.map +1 -1
  175. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.ts +2 -4
  176. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin-dbg.js.map +1 -1
  177. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts +1 -1
  178. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts.map +1 -1
  179. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.js.map +1 -1
  180. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.ts +1 -1
  181. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +18 -0
  182. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  183. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +17 -1
  184. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  185. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  186. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +20 -4
  187. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +21 -8
  188. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  189. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +18 -1
  190. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -1
  191. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  192. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  193. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +25 -13
  194. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  195. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +2 -2
  196. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  197. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  198. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +5 -5
  199. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +2 -3
  200. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  201. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  203. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  204. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  205. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +5 -3
  206. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +20 -3
  207. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  208. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +18 -1
  209. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -1
  210. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  211. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +23 -6
  213. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +30 -3
  214. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  215. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +26 -1
  216. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -1
  217. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +39 -14
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +20 -3
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +18 -1
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +20 -3
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +20 -3
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +18 -1
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +20 -3
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +4 -4
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +4 -2
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +6 -4
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +20 -3
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +18 -1
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +20 -3
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +20 -3
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +18 -1
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +23 -6
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +18 -0
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +17 -1
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +17 -1
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +20 -3
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +18 -1
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +21 -4
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +20 -3
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +18 -1
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +20 -3
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +23 -0
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +21 -1
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +28 -7
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +20 -3
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +18 -1
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +20 -3
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +20 -3
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +17 -0
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -1
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +22 -5
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +20 -3
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +18 -1
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -1
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +25 -8
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +20 -3
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +18 -1
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +22 -5
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +4 -4
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +4 -2
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -1
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +8 -6
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +20 -3
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +18 -1
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +22 -5
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +20 -3
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +18 -1
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -1
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +22 -5
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +20 -3
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +18 -1
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +22 -5
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +20 -3
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +18 -1
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +24 -7
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js +9 -0
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts +8 -1
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts.map +1 -1
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +13 -6
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +9 -0
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -1
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts +8 -1
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -1
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -1
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +10 -3
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +19 -0
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -1
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +18 -1
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -1
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -1
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +19 -2
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js +23 -0
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
  364. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts +20 -1
  365. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts.map +1 -1
  366. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
  367. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +25 -6
  368. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin-dbg.js.map +1 -1
  369. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts +1 -1
  370. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts.map +1 -1
  371. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.js.map +1 -1
  372. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.ts +2 -2
  373. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js +6 -0
  374. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js.map +1 -1
  375. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts +6 -1
  376. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts.map +1 -1
  377. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.js.map +1 -1
  378. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.ts +7 -2
  379. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js +5 -0
  380. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js.map +1 -1
  381. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts +6 -1
  382. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts.map +1 -1
  383. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.js.map +1 -1
  384. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.ts +6 -1
  385. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js +5 -0
  386. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js.map +1 -1
  387. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts +6 -1
  388. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts.map +1 -1
  389. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.js.map +1 -1
  390. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.ts +6 -1
  391. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin-dbg.js.map +1 -1
  392. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts +1 -1
  393. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts.map +1 -1
  394. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.js.map +1 -1
  395. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.ts +1 -1
  396. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js +6 -0
  397. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js.map +1 -1
  398. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts +7 -1
  399. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts.map +1 -1
  400. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.js.map +1 -1
  401. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.ts +7 -1
  402. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js +6 -0
  403. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js.map +1 -1
  404. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts +7 -1
  405. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts.map +1 -1
  406. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.js.map +1 -1
  407. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.ts +7 -1
  408. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js +6 -0
  409. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js.map +1 -1
  410. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts +7 -1
  411. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts.map +1 -1
  412. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.js.map +1 -1
  413. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.ts +7 -1
  414. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js +6 -0
  415. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js.map +1 -1
  416. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts +7 -1
  417. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts.map +1 -1
  418. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.js.map +1 -1
  419. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.ts +7 -1
  420. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js +6 -0
  421. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js.map +1 -1
  422. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts +7 -1
  423. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts.map +1 -1
  424. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.js.map +1 -1
  425. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.ts +7 -1
  426. package/src/nz/co/siliconst/ui5/metaui/typings/ui5-custom.d.ts +20 -0
  427. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js +0 -32
  428. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js.map +0 -1
  429. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts +0 -16
  430. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts.map +0 -1
  431. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js +0 -2
  432. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js.map +0 -1
  433. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.ts +0 -26
@@ -1,146 +1,202 @@
1
- sap.ui.define(["./Registry", "../utils/Logger", "../plugins/controls/StringPlugin", "../plugins/controls/NumberPlugin", "../plugins/controls/DatePlugin", "../plugins/controls/TimePlugin", "../plugins/controls/DateTimePlugin", "../plugins/controls/BooleanPlugin", "../plugins/controls/SwitchPlugin", "../plugins/controls/ArrayPlugin", "../plugins/controls/ObjectPlugin", "../plugins/controls/DropdownPlugin", "../plugins/controls/TextAreaPlugin", "../plugins/controls/CodeEditorPlugin", "../plugins/controls/FileUploaderPlugin", "../plugins/controls/MultiSelectPlugin", "../plugins/controls/SliderPlugin", "../plugins/controls/RatingIndicatorPlugin", "../plugins/controls/MessageStripPlugin", "../plugins/controls/CameraPlugin", "../plugins/controls/SignaturePlugin", "../plugins/controls/GeolocationPlugin", "../plugins/controls/BarcodeScannerPlugin", "../plugins/controls/VoiceInputPlugin", "../plugins/controls/RichTextPlugin", "../plugins/actions/UrlNavigationActionPlugin", "../plugins/actions/SubmitFormActionPlugin", "../plugins/datasources/ODataListBindingPlugin", "../plugins/datasources/RemoteDropdownPlugin"], function (___Registry, ___utils_Logger, ___plugins_controls_StringPlugin, ___plugins_controls_NumberPlugin, ___plugins_controls_DatePlugin, ___plugins_controls_TimePlugin, ___plugins_controls_DateTimePlugin, ___plugins_controls_BooleanPlugin, ___plugins_controls_SwitchPlugin, ___plugins_controls_ArrayPlugin, ___plugins_controls_ObjectPlugin, ___plugins_controls_DropdownPlugin, ___plugins_controls_TextAreaPlugin, ___plugins_controls_CodeEditorPlugin, ___plugins_controls_FileUploaderPlugin, ___plugins_controls_MultiSelectPlugin, ___plugins_controls_SliderPlugin, ___plugins_controls_RatingIndicatorPlugin, ___plugins_controls_MessageStripPlugin, ___plugins_controls_CameraPlugin, ___plugins_controls_SignaturePlugin, ___plugins_controls_GeolocationPlugin, ___plugins_controls_BarcodeScannerPlugin, ___plugins_controls_VoiceInputPlugin, ___plugins_controls_RichTextPlugin, ___plugins_actions_UrlNavigationActionPlugin, ___plugins_actions_SubmitFormActionPlugin, ___plugins_datasources_ODataListBindingPlugin, ___plugins_datasources_RemoteDropdownPlugin) {
1
+ sap.ui.define(["../utils/Logger"], function (___utils_Logger) {
2
2
  "use strict";
3
3
 
4
4
  /**
5
5
  * @file PluginRegistry.ts
6
6
  * @description Centralized hub for mapping UI5 controls to SAP schema data types.
7
7
  * Enforces the Registry Pattern to decouple the core engine from specific UI5 control implementations.
8
+ * NOW WITH UNIVERSAL LAZY LOADING.
8
9
  */
9
- const Registry = ___Registry["Registry"];
10
10
  const Logger = ___utils_Logger["Logger"];
11
- const StringPlugin = ___plugins_controls_StringPlugin["StringPlugin"];
12
- const NumberPlugin = ___plugins_controls_NumberPlugin["NumberPlugin"];
13
- const DatePlugin = ___plugins_controls_DatePlugin["DatePlugin"];
14
- const TimePlugin = ___plugins_controls_TimePlugin["TimePlugin"];
15
- const DateTimePlugin = ___plugins_controls_DateTimePlugin["DateTimePlugin"];
16
- const BooleanPlugin = ___plugins_controls_BooleanPlugin["BooleanPlugin"];
17
- const SwitchPlugin = ___plugins_controls_SwitchPlugin["SwitchPlugin"];
18
- const ArrayPlugin = ___plugins_controls_ArrayPlugin["ArrayPlugin"];
19
- const ObjectPlugin = ___plugins_controls_ObjectPlugin["ObjectPlugin"];
20
- const DropdownPlugin = ___plugins_controls_DropdownPlugin["DropdownPlugin"];
21
- const TextAreaPlugin = ___plugins_controls_TextAreaPlugin["TextAreaPlugin"];
22
- const CodeEditorPlugin = ___plugins_controls_CodeEditorPlugin["CodeEditorPlugin"]; // New Phase 1 Controls
23
- const FileUploaderPlugin = ___plugins_controls_FileUploaderPlugin["FileUploaderPlugin"];
24
- const MultiSelectPlugin = ___plugins_controls_MultiSelectPlugin["MultiSelectPlugin"];
25
- const SliderPlugin = ___plugins_controls_SliderPlugin["SliderPlugin"];
26
- const RatingIndicatorPlugin = ___plugins_controls_RatingIndicatorPlugin["RatingIndicatorPlugin"];
27
- const MessageStripPlugin = ___plugins_controls_MessageStripPlugin["MessageStripPlugin"]; // New Phase 5 Hardware / Base64 Plugins
28
- const CameraPlugin = ___plugins_controls_CameraPlugin["CameraPlugin"];
29
- const SignaturePlugin = ___plugins_controls_SignaturePlugin["SignaturePlugin"];
30
- const GeolocationPlugin = ___plugins_controls_GeolocationPlugin["GeolocationPlugin"];
31
- const BarcodeScannerPlugin = ___plugins_controls_BarcodeScannerPlugin["BarcodeScannerPlugin"];
32
- const VoiceInputPlugin = ___plugins_controls_VoiceInputPlugin["VoiceInputPlugin"];
33
- const RichTextPlugin = ___plugins_controls_RichTextPlugin["RichTextPlugin"]; // New Phase 4 Actions & Datasources
34
- const UrlNavigationActionPlugin = ___plugins_actions_UrlNavigationActionPlugin["UrlNavigationActionPlugin"];
35
- const SubmitFormActionPlugin = ___plugins_actions_SubmitFormActionPlugin["SubmitFormActionPlugin"];
36
- const ODataListBindingPlugin = ___plugins_datasources_ODataListBindingPlugin["ODataListBindingPlugin"];
37
- const RemoteDropdownPlugin = ___plugins_datasources_RemoteDropdownPlugin["RemoteDropdownPlugin"];
38
- /**
39
- * Singleton orchestrator responsible for maintaining the registry of all available UI control plugins.
40
- * Resolves standard JSON schema types to their respective UI5 native controls.
41
- *
42
- * @namespace nz.co.siliconst.ui5.metaui.core
43
- * @public
44
- */
45
11
  class PluginRegistry {
46
- /** The single instance of the PluginRegistry. */
47
-
48
- /** Internal strongly typed registry holding plugin constructors. */
49
- registry = new Registry("Controls");
12
+ fieldIndex = {};
13
+ actionIndex = {};
14
+ layoutIndex = {};
15
+ activePromises = {};
50
16
  constructor() {
51
- // Built-in Default Mappings
52
- this.register("string", StringPlugin);
53
- this.register("number", NumberPlugin);
54
- this.register("integer", NumberPlugin);
55
- this.register("date", DatePlugin);
56
- this.register("boolean", BooleanPlugin);
57
- this.register("array", ArrayPlugin);
58
- this.register("object", ObjectPlugin);
17
+ // Core Mappings
18
+ this.registerPluginPath("string", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin");
19
+ this.registerPluginPath("number", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin");
20
+ this.registerPluginPath("integer", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin");
21
+ this.registerPluginPath("date", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin");
22
+ this.registerPluginPath("boolean", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin");
23
+ this.registerPluginPath("array", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin");
24
+ this.registerPluginPath("object", undefined, "nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin");
59
25
 
60
26
  // Widget Overrides
61
- this.register("string", TimePlugin, "time");
62
- this.register("string", DateTimePlugin, "datetime");
63
- this.register("boolean", SwitchPlugin, "switch");
64
- this.register("string", DropdownPlugin, "select");
65
- this.register("string", TextAreaPlugin, "textArea");
66
- this.register("string", CodeEditorPlugin, "codeEditor");
27
+ this.registerPluginPath("string", "time", "nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin");
28
+ this.registerPluginPath("string", "datetime", "nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin");
29
+ this.registerPluginPath("boolean", "switch", "nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin");
30
+ this.registerPluginPath("string", "select", "nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin");
31
+ this.registerPluginPath("string", "textArea", "nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin");
32
+ this.registerPluginPath("string", "codeEditor", "nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin");
67
33
 
68
34
  // Phase 1 Mappings
69
- this.register("string", FileUploaderPlugin, "fileUploader");
70
- this.register("array", MultiSelectPlugin, "multiSelect");
71
- this.register("number", SliderPlugin, "slider");
72
- this.register("number", RatingIndicatorPlugin, "rating");
73
- this.register("string", MessageStripPlugin, "messageStrip");
35
+ this.registerPluginPath("string", "fileUploader", "nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin");
36
+ this.registerPluginPath("array", "multiSelect", "nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin");
37
+ this.registerPluginPath("number", "slider", "nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin");
38
+ this.registerPluginPath("number", "rating", "nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin");
39
+ this.registerPluginPath("string", "messageStrip", "nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin");
74
40
 
75
41
  // Phase 5 Mappings (Hardware)
76
- this.register("string", CameraPlugin, "camera");
77
- this.register("string", SignaturePlugin, "signature");
78
- this.register("object", GeolocationPlugin, "location");
79
- this.register("string", BarcodeScannerPlugin, "scanner");
80
- this.register("string", VoiceInputPlugin, "voiceInput");
81
- this.register("string", RichTextPlugin, "richText");
42
+ this.registerPluginPath("string", "camera", "nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin");
43
+ this.registerPluginPath("string", "signature", "nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin");
44
+ this.registerPluginPath("object", "location", "nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin");
45
+ this.registerPluginPath("string", "scanner", "nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin");
46
+ this.registerPluginPath("string", "voiceInput", "nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin");
47
+ this.registerPluginPath("string", "richText", "nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin");
82
48
 
83
- // Phase 4 Mappings
84
- this.register("string", UrlNavigationActionPlugin, "urlButton");
85
- this.register("string", SubmitFormActionPlugin, "submitButton");
86
- this.register("string", ODataListBindingPlugin, "odataSelect");
87
- this.register("string", RemoteDropdownPlugin, "remoteDropdown");
88
- }
49
+ // Actions & Datasources
50
+ this.registerPluginPath("string", "urlButton", "nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin");
51
+ this.registerPluginPath("string", "submitButton", "nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin");
52
+ this.registerPluginPath("string", "odataSelect", "nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin");
53
+ this.registerPluginPath("string", "remoteDropdown", "nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin");
54
+ this.registerPluginPath("string", "liveSearch", "nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin");
55
+ this.registerPluginPath("string", "remoteValueHelp", "nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin");
89
56
 
90
- /**
91
- * Retrieves the singular instance of the PluginRegistry.
92
- * @returns {PluginRegistry} The active instance.
93
- */
57
+ // Layouts
58
+ this.registerLayoutPath("form", "nz/co/siliconst/ui5/metaui/layouts/FormLayout");
59
+ this.registerLayoutPath("table", "nz/co/siliconst/ui5/metaui/layouts/TableLayout");
60
+ this.registerLayoutPath("wizard", "nz/co/siliconst/ui5/metaui/layouts/WizardLayout");
61
+ this.registerLayoutPath("compact", "nz/co/siliconst/ui5/metaui/layouts/CompactLayout");
62
+ }
94
63
  static getInstance() {
95
64
  if (!PluginRegistry.instance) {
96
65
  PluginRegistry.instance = new PluginRegistry();
97
66
  }
98
67
  return PluginRegistry.instance;
99
68
  }
69
+ registerPluginPath(type, widgetName, path) {
70
+ const key = widgetName ? `${type}:${widgetName}` : type;
71
+ this.fieldIndex[key] = path;
72
+ }
73
+ registerActionPath(actionName, path) {
74
+ this.actionIndex[actionName] = path;
75
+ }
76
+ registerLayoutPath(strategy, path) {
77
+ this.layoutIndex[strategy] = path;
78
+ }
79
+ getFieldPath(type, widgetName) {
80
+ let path;
81
+ if (widgetName) {
82
+ path = this.fieldIndex[`${type}:${widgetName}`];
83
+ }
84
+ if (!path) {
85
+ path = this.fieldIndex[type];
86
+ }
87
+ if (!path) {
88
+ throw new Error(`No plugin path mapped for FieldType: ${type} (widget: ${widgetName})`);
89
+ }
90
+ return path;
91
+ }
92
+ getLayoutPath(strategy) {
93
+ const path = this.layoutIndex[strategy];
94
+ if (!path) {
95
+ throw new Error(`No layout path mapped for strategy: ${strategy}`);
96
+ }
97
+ return path;
98
+ }
100
99
 
101
100
  /**
102
- * Registers a new control plugin to be utilized by the Layout Managers.
101
+ * Statically traverses the schema structure to identify all required plugins
102
+ * and layouts without actually instantiating them.
103
103
  *
104
- * @param type The JSON Schema primitive type (e.g., 'string', 'number').
105
- * @param pluginConstructor The class constructor for the plugin implementation.
106
- * @param widgetName Optional UI hint to override the default type handler (e.g., 'textArea' for a 'string').
104
+ * @param {ISchema} schema The root JSON schema payload to traverse
105
+ * @returns {Set<string>} A distinct set of UI5 module paths required to render the schema
107
106
  */
108
- register(type, pluginConstructor, widgetName) {
109
- const key = widgetName ? `${type}:${widgetName}` : type;
110
- this.registry.register(key, pluginConstructor);
107
+ getPathsToLoad(schema) {
108
+ const pathsToLoad = new Set();
109
+
110
+ // 1. Gather layout strategy
111
+ const strategy = schema.layoutStrategy || (schema.type === "array" ? "table" : "form");
112
+ pathsToLoad.add(this.getLayoutPath(strategy));
113
+
114
+ // 2. Recursively gather field plugins
115
+ const scanProperties = props => {
116
+ for (const key in props) {
117
+ const prop = props[key];
118
+ try {
119
+ pathsToLoad.add(this.getFieldPath(prop.type || "string", prop.ui?.widget));
120
+ } catch (e) {
121
+ Logger.warn(`[MetaUI LazyLoad] Could not find mapped plugin for field ${key}`);
122
+ }
123
+ if (prop.properties) scanProperties(prop.properties);
124
+ if (prop.items && prop.items.properties) scanProperties(prop.items.properties);
125
+ if (prop.items && prop.items.type) {
126
+ try {
127
+ pathsToLoad.add(this.getFieldPath(prop.items.type, prop.items.ui?.widget));
128
+ } catch (e) {
129
+ Logger.warn(`[MetaUI LazyLoad] Could not find mapped plugin for array item type ${prop.items.type}`);
130
+ }
131
+ }
132
+ }
133
+ };
134
+ if (schema.properties) {
135
+ scanProperties(schema.properties);
136
+ } else if (schema.items && schema.items.properties) {
137
+ scanProperties(schema.items.properties);
138
+ }
139
+ return pathsToLoad;
111
140
  }
112
141
 
113
142
  /**
114
- * Resolves and instantiates the correct control plugin based on the field type and widget hint.
115
- * Falls back to the primitive type handler if the specific widget is not registered.
143
+ * Defers the generation of the UI until all required UI5 modules have been
144
+ * downloaded asynchronously. Maintains a cache of active promises to prevent
145
+ * redundant network requests for the same module.
116
146
  *
117
- * @param type The JSON Schema primitive type.
118
- * @param widgetName The specific UI widget hint (if provided in schema.ui.widget).
119
- * @returns {IPlugin} A new instance of the resolved plugin.
120
- * @throws {Error} If no handler is registered for the specified type.
147
+ * @param {ISchema} schema The root JSON schema payload to parse
148
+ * @returns {Promise<void>} Resolves when all dependencies are securely in the UI5 require cache
121
149
  */
122
- getPlugin(type, widgetName) {
123
- let PluginClass;
124
- if (widgetName) {
125
- PluginClass = this.registry.get(`${type}:${widgetName}`);
126
- }
127
- if (!PluginClass) {
128
- PluginClass = this.registry.get(type);
150
+ async preloadDependencies(schema) {
151
+ const pathsToLoad = this.getPathsToLoad(schema);
152
+
153
+ // 3. Batch execute sap.ui.require via Promises
154
+ const promises = Array.from(pathsToLoad).map(path => {
155
+ if (!this.activePromises[path]) {
156
+ this.activePromises[path] = new Promise((resolve, reject) => {
157
+ sap.ui.require([path], Module => resolve(Module), err => {
158
+ Logger.error(`Failed to lazy load module: ${path}`);
159
+ // CRITICAL: Delete from cache so future attempts can retry the network request
160
+ delete this.activePromises[path];
161
+ reject(err);
162
+ });
163
+ });
164
+ }
165
+ return this.activePromises[path];
166
+ });
167
+ await Promise.all(promises);
168
+ }
169
+ extractConstructor(Module) {
170
+ if (!Module) return null;
171
+ if (typeof Module === "function") return Module;
172
+ if (Module.default && typeof Module.default === "function") return Module.default;
173
+
174
+ // Handle namespace exports (e.g. { FormLayout: class... })
175
+ const keys = Object.keys(Module);
176
+ for (const key of keys) {
177
+ if (typeof Module[key] === "function") {
178
+ return Module[key];
179
+ }
129
180
  }
181
+ return null;
182
+ }
183
+ getPlugin(type, widgetName) {
184
+ const path = this.getFieldPath(type, widgetName);
185
+ const Module = sap.ui.require(path);
186
+ const PluginClass = this.extractConstructor(Module);
130
187
  if (!PluginClass) {
131
- const msg = `No control plugin registered for FieldType: ${type}${widgetName ? ` (widget: ${widgetName})` : ''}`;
132
- Logger.error("[MetaUI PluginRegistry]", msg);
133
- Logger.showErrorPopup(`Plugin Registry Error.\n\nDetails: ${msg}`);
134
- throw new Error(`[MetaUI] ${msg}`);
188
+ throw new Error(`[MetaUI Plugin Instantiation] Plugin ${path} was not preloaded or has no constructor!`);
135
189
  }
136
- try {
137
- return new PluginClass();
138
- } catch (error) {
139
- const msg = error.message;
140
- Logger.error(`[MetaUI PluginRegistry] Failed to instantiate plugin for ${type}`, msg);
141
- Logger.showErrorPopup(`Failed to instantiate plugin for '${type}'.\n\nDetails: ${msg}`);
142
- throw new Error(`[MetaUI Plugin Instantiation] ${msg}`);
190
+ return new PluginClass();
191
+ }
192
+ getLayout(strategy) {
193
+ const path = this.getLayoutPath(strategy);
194
+ const Module = sap.ui.require(path);
195
+ const LayoutClass = this.extractConstructor(Module);
196
+ if (!LayoutClass) {
197
+ throw new Error(`[MetaUI Layout Instantiation] Layout ${path} was not preloaded or has no constructor!`);
143
198
  }
199
+ return new LayoutClass();
144
200
  }
145
201
  }
146
202
  var __exports = {
@@ -1 +1 @@
1
- {"version":3,"file":"PluginRegistry-dbg.js","names":["Registry","___Registry","Logger","___utils_Logger","StringPlugin","___plugins_controls_StringPlugin","NumberPlugin","___plugins_controls_NumberPlugin","DatePlugin","___plugins_controls_DatePlugin","TimePlugin","___plugins_controls_TimePlugin","DateTimePlugin","___plugins_controls_DateTimePlugin","BooleanPlugin","___plugins_controls_BooleanPlugin","SwitchPlugin","___plugins_controls_SwitchPlugin","ArrayPlugin","___plugins_controls_ArrayPlugin","ObjectPlugin","___plugins_controls_ObjectPlugin","DropdownPlugin","___plugins_controls_DropdownPlugin","TextAreaPlugin","___plugins_controls_TextAreaPlugin","CodeEditorPlugin","___plugins_controls_CodeEditorPlugin","FileUploaderPlugin","___plugins_controls_FileUploaderPlugin","MultiSelectPlugin","___plugins_controls_MultiSelectPlugin","SliderPlugin","___plugins_controls_SliderPlugin","RatingIndicatorPlugin","___plugins_controls_RatingIndicatorPlugin","MessageStripPlugin","___plugins_controls_MessageStripPlugin","CameraPlugin","___plugins_controls_CameraPlugin","SignaturePlugin","___plugins_controls_SignaturePlugin","GeolocationPlugin","___plugins_controls_GeolocationPlugin","BarcodeScannerPlugin","___plugins_controls_BarcodeScannerPlugin","VoiceInputPlugin","___plugins_controls_VoiceInputPlugin","RichTextPlugin","___plugins_controls_RichTextPlugin","UrlNavigationActionPlugin","___plugins_actions_UrlNavigationActionPlugin","SubmitFormActionPlugin","___plugins_actions_SubmitFormActionPlugin","ODataListBindingPlugin","___plugins_datasources_ODataListBindingPlugin","RemoteDropdownPlugin","___plugins_datasources_RemoteDropdownPlugin","PluginRegistry","registry","constructor","register","getInstance","instance","type","pluginConstructor","widgetName","key","getPlugin","PluginClass","get","msg","error","showErrorPopup","Error","message","__exports","__esModule"],"sources":["PluginRegistry.ts"],"sourcesContent":["/**\n * @file PluginRegistry.ts\n * @description Centralized hub for mapping UI5 controls to SAP schema data types.\n * Enforces the Registry Pattern to decouple the core engine from specific UI5 control implementations.\n */\n\nimport { IPlugin } from \"../interfaces/IPlugin\";\nimport { FieldType } from \"../interfaces/ISchema\";\n\nimport { Registry } from \"./Registry\";\nimport { Logger } from \"../utils/Logger\";\n\nimport { StringPlugin } from \"../plugins/controls/StringPlugin\";\nimport { NumberPlugin } from \"../plugins/controls/NumberPlugin\";\nimport { DatePlugin } from \"../plugins/controls/DatePlugin\";\nimport { TimePlugin } from \"../plugins/controls/TimePlugin\";\nimport { DateTimePlugin } from \"../plugins/controls/DateTimePlugin\";\nimport { BooleanPlugin } from \"../plugins/controls/BooleanPlugin\";\nimport { SwitchPlugin } from \"../plugins/controls/SwitchPlugin\";\nimport { ArrayPlugin } from \"../plugins/controls/ArrayPlugin\";\nimport { ObjectPlugin } from \"../plugins/controls/ObjectPlugin\";\nimport { DropdownPlugin } from \"../plugins/controls/DropdownPlugin\";\nimport { TextAreaPlugin } from \"../plugins/controls/TextAreaPlugin\";\nimport { CodeEditorPlugin } from \"../plugins/controls/CodeEditorPlugin\";\n\n// New Phase 1 Controls\nimport { FileUploaderPlugin } from \"../plugins/controls/FileUploaderPlugin\";\nimport { MultiSelectPlugin } from \"../plugins/controls/MultiSelectPlugin\";\nimport { SliderPlugin } from \"../plugins/controls/SliderPlugin\";\nimport { RatingIndicatorPlugin } from \"../plugins/controls/RatingIndicatorPlugin\";\nimport { MessageStripPlugin } from \"../plugins/controls/MessageStripPlugin\";\n\n// New Phase 5 Hardware / Base64 Plugins\nimport { CameraPlugin } from \"../plugins/controls/CameraPlugin\";\nimport { SignaturePlugin } from \"../plugins/controls/SignaturePlugin\";\nimport { GeolocationPlugin } from \"../plugins/controls/GeolocationPlugin\";\nimport { BarcodeScannerPlugin } from \"../plugins/controls/BarcodeScannerPlugin\";\nimport { VoiceInputPlugin } from \"../plugins/controls/VoiceInputPlugin\";\nimport { RichTextPlugin } from \"../plugins/controls/RichTextPlugin\";\n\n// New Phase 4 Actions & Datasources\nimport { UrlNavigationActionPlugin } from \"../plugins/actions/UrlNavigationActionPlugin\";\nimport { SubmitFormActionPlugin } from \"../plugins/actions/SubmitFormActionPlugin\";\nimport { ODataListBindingPlugin } from \"../plugins/datasources/ODataListBindingPlugin\";\nimport { RemoteDropdownPlugin } from \"../plugins/datasources/RemoteDropdownPlugin\";\n\n/**\n * Singleton orchestrator responsible for maintaining the registry of all available UI control plugins.\n * Resolves standard JSON schema types to their respective UI5 native controls.\n * \n * @namespace nz.co.siliconst.ui5.metaui.core\n * @public\n */\nexport class PluginRegistry {\n /** The single instance of the PluginRegistry. */\n private static instance: PluginRegistry;\n \n /** Internal strongly typed registry holding plugin constructors. */\n private readonly registry: Registry<new () => IPlugin> = new Registry<new () => IPlugin>(\"Controls\");\n\n private constructor() {\n // Built-in Default Mappings\n this.register(\"string\", StringPlugin);\n this.register(\"number\", NumberPlugin);\n this.register(\"integer\", NumberPlugin);\n this.register(\"date\", DatePlugin);\n this.register(\"boolean\", BooleanPlugin);\n this.register(\"array\", ArrayPlugin);\n this.register(\"object\", ObjectPlugin);\n\n // Widget Overrides\n this.register(\"string\", TimePlugin, \"time\");\n this.register(\"string\", DateTimePlugin, \"datetime\");\n this.register(\"boolean\", SwitchPlugin, \"switch\");\n this.register(\"string\", DropdownPlugin, \"select\");\n this.register(\"string\", TextAreaPlugin, \"textArea\");\n this.register(\"string\", CodeEditorPlugin, \"codeEditor\");\n \n // Phase 1 Mappings\n this.register(\"string\", FileUploaderPlugin, \"fileUploader\");\n this.register(\"array\", MultiSelectPlugin, \"multiSelect\");\n this.register(\"number\", SliderPlugin, \"slider\");\n this.register(\"number\", RatingIndicatorPlugin, \"rating\");\n this.register(\"string\", MessageStripPlugin, \"messageStrip\");\n\n // Phase 5 Mappings (Hardware)\n this.register(\"string\", CameraPlugin, \"camera\");\n this.register(\"string\", SignaturePlugin, \"signature\");\n this.register(\"object\", GeolocationPlugin, \"location\");\n this.register(\"string\", BarcodeScannerPlugin, \"scanner\");\n this.register(\"string\", VoiceInputPlugin, \"voiceInput\");\n this.register(\"string\", RichTextPlugin, \"richText\");\n\n // Phase 4 Mappings\n this.register(\"string\", UrlNavigationActionPlugin, \"urlButton\");\n this.register(\"string\", SubmitFormActionPlugin, \"submitButton\");\n this.register(\"string\", ODataListBindingPlugin, \"odataSelect\");\n this.register(\"string\", RemoteDropdownPlugin, \"remoteDropdown\");\n }\n\n /**\n * Retrieves the singular instance of the PluginRegistry.\n * @returns {PluginRegistry} The active instance.\n */\n public static getInstance(): PluginRegistry {\n if (!PluginRegistry.instance) {\n PluginRegistry.instance = new PluginRegistry();\n }\n return PluginRegistry.instance;\n }\n\n /**\n * Registers a new control plugin to be utilized by the Layout Managers.\n * \n * @param type The JSON Schema primitive type (e.g., 'string', 'number').\n * @param pluginConstructor The class constructor for the plugin implementation.\n * @param widgetName Optional UI hint to override the default type handler (e.g., 'textArea' for a 'string').\n */\n public register(type: FieldType, pluginConstructor: new () => IPlugin, widgetName?: string): void {\n const key = widgetName ? `${type}:${widgetName}` : type;\n this.registry.register(key, pluginConstructor);\n }\n\n /**\n * Resolves and instantiates the correct control plugin based on the field type and widget hint.\n * Falls back to the primitive type handler if the specific widget is not registered.\n * \n * @param type The JSON Schema primitive type.\n * @param widgetName The specific UI widget hint (if provided in schema.ui.widget).\n * @returns {IPlugin} A new instance of the resolved plugin.\n * @throws {Error} If no handler is registered for the specified type.\n */\n public getPlugin(type: FieldType, widgetName?: string): IPlugin {\n let PluginClass;\n \n if (widgetName) {\n PluginClass = this.registry.get(`${type}:${widgetName}`);\n }\n \n if (!PluginClass) {\n PluginClass = this.registry.get(type);\n }\n\n if (!PluginClass) {\n const msg = `No control plugin registered for FieldType: ${type}${widgetName ? ` (widget: ${widgetName})` : ''}`;\n Logger.error(\"[MetaUI PluginRegistry]\", msg);\n Logger.showErrorPopup(`Plugin Registry Error.\\n\\nDetails: ${msg}`);\n throw new Error(`[MetaUI] ${msg}`);\n }\n \n try {\n return new PluginClass();\n } catch (error) {\n const msg = (error as Error).message;\n Logger.error(`[MetaUI PluginRegistry] Failed to instantiate plugin for ${type}`, msg);\n Logger.showErrorPopup(`Failed to instantiate plugin for '${type}'.\\n\\nDetails: ${msg}`);\n throw new Error(`[MetaUI Plugin Instantiation] ${msg}`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PluginRegistry-dbg.js","names":["Logger","___utils_Logger","PluginRegistry","fieldIndex","actionIndex","layoutIndex","activePromises","constructor","registerPluginPath","undefined","registerLayoutPath","getInstance","instance","type","widgetName","path","key","registerActionPath","actionName","strategy","getFieldPath","Error","getLayoutPath","getPathsToLoad","schema","pathsToLoad","Set","layoutStrategy","add","scanProperties","props","prop","ui","widget","e","warn","properties","items","preloadDependencies","promises","Array","from","map","Promise","resolve","reject","sap","require","Module","err","error","all","extractConstructor","default","keys","Object","getPlugin","PluginClass","getLayout","LayoutClass","__exports","__esModule"],"sources":["PluginRegistry.ts"],"sourcesContent":["/**\n * @file PluginRegistry.ts\n * @description Centralized hub for mapping UI5 controls to SAP schema data types.\n * Enforces the Registry Pattern to decouple the core engine from specific UI5 control implementations.\n * NOW WITH UNIVERSAL LAZY LOADING.\n */\n\nimport { IPlugin } from \"../interfaces/IPlugin\";\nimport { FieldType, ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { ILayoutManager } from \"../interfaces/ILayoutManager\";\nimport { Logger } from \"../utils/Logger\";\nimport { DefaultLayoutGenerator } from \"./DefaultLayoutGenerator\";\n\nexport class PluginRegistry {\n private static instance: PluginRegistry;\n \n private fieldIndex: Record<string, string> = {};\n private actionIndex: Record<string, string> = {};\n private layoutIndex: Record<string, string> = {};\n \n private activePromises: Record<string, Promise<unknown>> = {};\n\n private constructor() {\n // Core Mappings\n this.registerPluginPath(\"string\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin\");\n this.registerPluginPath(\"number\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(\"integer\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin\");\n this.registerPluginPath(\"date\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin\");\n this.registerPluginPath(\"boolean\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin\");\n this.registerPluginPath(\"array\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin\");\n this.registerPluginPath(\"object\", undefined, \"nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin\");\n\n // Widget Overrides\n this.registerPluginPath(\"string\", \"time\", \"nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin\");\n this.registerPluginPath(\"string\", \"datetime\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin\");\n this.registerPluginPath(\"boolean\", \"switch\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin\");\n this.registerPluginPath(\"string\", \"select\", \"nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin\");\n this.registerPluginPath(\"string\", \"textArea\", \"nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin\");\n this.registerPluginPath(\"string\", \"codeEditor\", \"nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin\");\n \n // Phase 1 Mappings\n this.registerPluginPath(\"string\", \"fileUploader\", \"nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin\");\n this.registerPluginPath(\"array\", \"multiSelect\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin\");\n this.registerPluginPath(\"number\", \"slider\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin\");\n this.registerPluginPath(\"number\", \"rating\", \"nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin\");\n this.registerPluginPath(\"string\", \"messageStrip\", \"nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin\");\n\n // Phase 5 Mappings (Hardware)\n this.registerPluginPath(\"string\", \"camera\", \"nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin\");\n this.registerPluginPath(\"string\", \"signature\", \"nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin\");\n this.registerPluginPath(\"object\", \"location\", \"nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin\");\n this.registerPluginPath(\"string\", \"scanner\", \"nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin\");\n this.registerPluginPath(\"string\", \"voiceInput\", \"nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin\");\n this.registerPluginPath(\"string\", \"richText\", \"nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin\");\n\n // Actions & Datasources\n this.registerPluginPath(\"string\", \"urlButton\", \"nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin\");\n this.registerPluginPath(\"string\", \"submitButton\", \"nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin\");\n this.registerPluginPath(\"string\", \"odataSelect\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin\");\n this.registerPluginPath(\"string\", \"remoteDropdown\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin\");\n this.registerPluginPath(\"string\", \"liveSearch\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin\");\n this.registerPluginPath(\"string\", \"remoteValueHelp\", \"nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin\");\n\n // Layouts\n this.registerLayoutPath(\"form\", \"nz/co/siliconst/ui5/metaui/layouts/FormLayout\");\n this.registerLayoutPath(\"table\", \"nz/co/siliconst/ui5/metaui/layouts/TableLayout\");\n this.registerLayoutPath(\"wizard\", \"nz/co/siliconst/ui5/metaui/layouts/WizardLayout\");\n this.registerLayoutPath(\"compact\", \"nz/co/siliconst/ui5/metaui/layouts/CompactLayout\");\n }\n\n public static getInstance(): PluginRegistry {\n if (!PluginRegistry.instance) {\n PluginRegistry.instance = new PluginRegistry();\n }\n return PluginRegistry.instance;\n }\n\n public registerPluginPath(type: FieldType, widgetName: string | undefined, path: string): void {\n const key = widgetName ? `${type}:${widgetName}` : type;\n this.fieldIndex[key] = path;\n }\n\n public registerActionPath(actionName: string, path: string): void {\n this.actionIndex[actionName] = path;\n }\n\n public registerLayoutPath(strategy: string, path: string): void {\n this.layoutIndex[strategy] = path;\n }\n\n private getFieldPath(type: FieldType, widgetName?: string): string {\n let path;\n if (widgetName) {\n path = this.fieldIndex[`${type}:${widgetName}`];\n }\n if (!path) {\n path = this.fieldIndex[type];\n }\n if (!path) {\n throw new Error(`No plugin path mapped for FieldType: ${type} (widget: ${widgetName})`);\n }\n return path;\n }\n\n private getLayoutPath(strategy: string): string {\n const path = this.layoutIndex[strategy];\n if (!path) {\n throw new Error(`No layout path mapped for strategy: ${strategy}`);\n }\n return path;\n }\n\n /**\n * Statically traverses the schema structure to identify all required plugins\n * and layouts without actually instantiating them.\n * \n * @param {ISchema} schema The root JSON schema payload to traverse\n * @returns {Set<string>} A distinct set of UI5 module paths required to render the schema\n */\n public getPathsToLoad(schema: ISchema): Set<string> {\n const pathsToLoad = new Set<string>();\n \n // 1. Gather layout strategy\n const strategy = schema.layoutStrategy || (schema.type === \"array\" ? \"table\" : \"form\");\n pathsToLoad.add(this.getLayoutPath(strategy));\n\n // 2. Recursively gather field plugins\n const scanProperties = (props: Record<string, IPropertyMetadata>) => {\n for (const key in props) {\n const prop = props[key];\n try {\n pathsToLoad.add(this.getFieldPath(prop.type || \"string\", prop.ui?.widget));\n } catch (e) {\n Logger.warn(`[MetaUI LazyLoad] Could not find mapped plugin for field ${key}`);\n }\n if (prop.properties) scanProperties(prop.properties);\n if (prop.items && prop.items.properties) scanProperties(prop.items.properties);\n if (prop.items && prop.items.type) {\n try {\n pathsToLoad.add(this.getFieldPath(prop.items.type, prop.items.ui?.widget));\n } catch (e) {\n Logger.warn(`[MetaUI LazyLoad] Could not find mapped plugin for array item type ${prop.items.type}`);\n }\n }\n }\n };\n\n if (schema.properties) {\n scanProperties(schema.properties);\n } else if (schema.items && schema.items.properties) {\n scanProperties(schema.items.properties);\n }\n\n return pathsToLoad;\n }\n\n /**\n * Defers the generation of the UI until all required UI5 modules have been\n * downloaded asynchronously. Maintains a cache of active promises to prevent\n * redundant network requests for the same module.\n * \n * @param {ISchema} schema The root JSON schema payload to parse\n * @returns {Promise<void>} Resolves when all dependencies are securely in the UI5 require cache\n */\n public async preloadDependencies(schema: ISchema): Promise<void> {\n const pathsToLoad = this.getPathsToLoad(schema);\n\n // 3. Batch execute sap.ui.require via Promises\n const promises = Array.from(pathsToLoad).map(path => {\n if (!this.activePromises[path]) {\n this.activePromises[path] = new Promise((resolve, reject) => {\n sap.ui.require([path], \n (Module: unknown) => resolve(Module), \n (err: unknown) => {\n Logger.error(`Failed to lazy load module: ${path}`);\n // CRITICAL: Delete from cache so future attempts can retry the network request\n delete this.activePromises[path];\n reject(err);\n }\n );\n });\n }\n return this.activePromises[path];\n });\n\n await Promise.all(promises);\n }\n\n private extractConstructor(Module: unknown): new () => IPlugin | ILayoutManager | null {\n if (!Module) return null;\n if (typeof Module === \"function\") return Module;\n if (Module.default && typeof Module.default === \"function\") return Module.default;\n \n // Handle namespace exports (e.g. { FormLayout: class... })\n const keys = Object.keys(Module);\n for (const key of keys) {\n if (typeof Module[key] === \"function\") {\n return Module[key];\n }\n }\n return null;\n }\n\n public getPlugin(type: FieldType, widgetName?: string): IPlugin {\n const path = this.getFieldPath(type, widgetName);\n const Module = sap.ui.require(path);\n const PluginClass = this.extractConstructor(Module);\n \n if (!PluginClass) {\n throw new Error(`[MetaUI Plugin Instantiation] Plugin ${path} was not preloaded or has no constructor!`);\n }\n \n return new PluginClass();\n }\n\n public getLayout(strategy: string): ILayoutManager {\n const path = this.getLayoutPath(strategy);\n const Module = sap.ui.require(path);\n const LayoutClass = this.extractConstructor(Module);\n \n if (!LayoutClass) {\n throw new Error(`[MetaUI Layout Instantiation] Layout ${path} was not preloaded or has no constructor!`);\n }\n \n return new LayoutClass();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,45 +3,44 @@ declare module "nz/co/siliconst/ui5/metaui/core/PluginRegistry" {
3
3
  * @file PluginRegistry.ts
4
4
  * @description Centralized hub for mapping UI5 controls to SAP schema data types.
5
5
  * Enforces the Registry Pattern to decouple the core engine from specific UI5 control implementations.
6
+ * NOW WITH UNIVERSAL LAZY LOADING.
6
7
  */
7
8
  import { IPlugin } from "nz/co/siliconst/ui5/metaui/interfaces/IPlugin";
8
- import { FieldType } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
9
- /**
10
- * Singleton orchestrator responsible for maintaining the registry of all available UI control plugins.
11
- * Resolves standard JSON schema types to their respective UI5 native controls.
12
- *
13
- * @namespace nz.co.siliconst.ui5.metaui.core
14
- * @public
15
- */
9
+ import { FieldType, ISchema } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
10
+ import { ILayoutManager } from "nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager";
16
11
  export class PluginRegistry {
17
- /** The single instance of the PluginRegistry. */
18
12
  private static instance;
19
- /** Internal strongly typed registry holding plugin constructors. */
20
- private readonly registry;
13
+ private fieldIndex;
14
+ private actionIndex;
15
+ private layoutIndex;
16
+ private activePromises;
21
17
  private constructor();
22
- /**
23
- * Retrieves the singular instance of the PluginRegistry.
24
- * @returns {PluginRegistry} The active instance.
25
- */
26
18
  static getInstance(): PluginRegistry;
19
+ registerPluginPath(type: FieldType, widgetName: string | undefined, path: string): void;
20
+ registerActionPath(actionName: string, path: string): void;
21
+ registerLayoutPath(strategy: string, path: string): void;
22
+ private getFieldPath;
23
+ private getLayoutPath;
27
24
  /**
28
- * Registers a new control plugin to be utilized by the Layout Managers.
25
+ * Statically traverses the schema structure to identify all required plugins
26
+ * and layouts without actually instantiating them.
29
27
  *
30
- * @param type The JSON Schema primitive type (e.g., 'string', 'number').
31
- * @param pluginConstructor The class constructor for the plugin implementation.
32
- * @param widgetName Optional UI hint to override the default type handler (e.g., 'textArea' for a 'string').
28
+ * @param {ISchema} schema The root JSON schema payload to traverse
29
+ * @returns {Set<string>} A distinct set of UI5 module paths required to render the schema
33
30
  */
34
- register(type: FieldType, pluginConstructor: new () => IPlugin, widgetName?: string): void;
31
+ getPathsToLoad(schema: ISchema): Set<string>;
35
32
  /**
36
- * Resolves and instantiates the correct control plugin based on the field type and widget hint.
37
- * Falls back to the primitive type handler if the specific widget is not registered.
33
+ * Defers the generation of the UI until all required UI5 modules have been
34
+ * downloaded asynchronously. Maintains a cache of active promises to prevent
35
+ * redundant network requests for the same module.
38
36
  *
39
- * @param type The JSON Schema primitive type.
40
- * @param widgetName The specific UI widget hint (if provided in schema.ui.widget).
41
- * @returns {IPlugin} A new instance of the resolved plugin.
42
- * @throws {Error} If no handler is registered for the specified type.
37
+ * @param {ISchema} schema The root JSON schema payload to parse
38
+ * @returns {Promise<void>} Resolves when all dependencies are securely in the UI5 require cache
43
39
  */
40
+ preloadDependencies(schema: ISchema): Promise<void>;
41
+ private extractConstructor;
44
42
  getPlugin(type: FieldType, widgetName?: string): IPlugin;
43
+ getLayout(strategy: string): ILayoutManager;
45
44
  }
46
45
  }
47
46
  //# sourceMappingURL=PluginRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginRegistry.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gDAAgD,CAAC;IAChE;;;;OAIG;IAEH,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;IACxE,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;IAuC1E;;;;;;OAMG;IACH,MAAa,cAAc;QACvB,iDAAiD;QACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;QAExC,oEAAoE;QACpE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4E;QAErG,OAAO;QAwCP;;;WAGG;eACW,WAAW,IAAI,cAAc;QAO3C;;;;;;WAMG;QACI,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;QAKjG;;;;;;;;WAQG;QACI,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;KA2BlE;CAEA"}
1
+ {"version":3,"file":"PluginRegistry.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gDAAgD,CAAC;IAChE;;;;;OAKG;IAEH,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;IACxE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAqB,MAAM,+CAA+C,CAAC;IACtG,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;IAItF,MAAa,cAAc;QACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;QAExC,OAAO,CAAC,UAAU,CAA8B;QAChD,OAAO,CAAC,WAAW,CAA8B;QACjD,OAAO,CAAC,WAAW,CAA8B;QAEjD,OAAO,CAAC,cAAc,CAAwC;QAE9D,OAAO;eAgDO,WAAW,IAAI,cAAc;QAOpC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;QAKvF,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;QAI1D,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;QAI/D,OAAO,CAAC,YAAY;QAcpB,OAAO,CAAC,aAAa;QAQrB;;;;;;WAMG;QACI,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;QAqCnD;;;;;;;WAOG;QACU,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAwBhE,OAAO,CAAC,kBAAkB;QAenB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;QAYxD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;KAWrD;CAEA"}
@@ -1,2 +1,2 @@
1
- sap.ui.define(["./Registry","../utils/Logger","../plugins/controls/StringPlugin","../plugins/controls/NumberPlugin","../plugins/controls/DatePlugin","../plugins/controls/TimePlugin","../plugins/controls/DateTimePlugin","../plugins/controls/BooleanPlugin","../plugins/controls/SwitchPlugin","../plugins/controls/ArrayPlugin","../plugins/controls/ObjectPlugin","../plugins/controls/DropdownPlugin","../plugins/controls/TextAreaPlugin","../plugins/controls/CodeEditorPlugin","../plugins/controls/FileUploaderPlugin","../plugins/controls/MultiSelectPlugin","../plugins/controls/SliderPlugin","../plugins/controls/RatingIndicatorPlugin","../plugins/controls/MessageStripPlugin","../plugins/controls/CameraPlugin","../plugins/controls/SignaturePlugin","../plugins/controls/GeolocationPlugin","../plugins/controls/BarcodeScannerPlugin","../plugins/controls/VoiceInputPlugin","../plugins/controls/RichTextPlugin","../plugins/actions/UrlNavigationActionPlugin","../plugins/actions/SubmitFormActionPlugin","../plugins/datasources/ODataListBindingPlugin","../plugins/datasources/RemoteDropdownPlugin"],function(i,t,n,r,s,e,g,o,l,u,c,a,P,p,h,d,m,S,w,y,b,D,$,R,I,f,T,A,M){"use strict";const U=i["Registry"];const B=t["Logger"];const E=n["StringPlugin"];const F=r["NumberPlugin"];const x=s["DatePlugin"];const C=e["TimePlugin"];const N=g["DateTimePlugin"];const j=o["BooleanPlugin"];const v=l["SwitchPlugin"];const L=u["ArrayPlugin"];const O=c["ObjectPlugin"];const G=a["DropdownPlugin"];const V=P["TextAreaPlugin"];const _=p["CodeEditorPlugin"];const k=h["FileUploaderPlugin"];const q=d["MultiSelectPlugin"];const z=m["SliderPlugin"];const H=S["RatingIndicatorPlugin"];const J=w["MessageStripPlugin"];const K=y["CameraPlugin"];const Q=b["SignaturePlugin"];const W=D["GeolocationPlugin"];const X=$["BarcodeScannerPlugin"];const Y=R["VoiceInputPlugin"];const Z=I["RichTextPlugin"];const ii=f["UrlNavigationActionPlugin"];const ti=T["SubmitFormActionPlugin"];const ni=A["ODataListBindingPlugin"];const ri=M["RemoteDropdownPlugin"];class si{registry=new U("Controls");constructor(){this.register("string",E);this.register("number",F);this.register("integer",F);this.register("date",x);this.register("boolean",j);this.register("array",L);this.register("object",O);this.register("string",C,"time");this.register("string",N,"datetime");this.register("boolean",v,"switch");this.register("string",G,"select");this.register("string",V,"textArea");this.register("string",_,"codeEditor");this.register("string",k,"fileUploader");this.register("array",q,"multiSelect");this.register("number",z,"slider");this.register("number",H,"rating");this.register("string",J,"messageStrip");this.register("string",K,"camera");this.register("string",Q,"signature");this.register("object",W,"location");this.register("string",X,"scanner");this.register("string",Y,"voiceInput");this.register("string",Z,"richText");this.register("string",ii,"urlButton");this.register("string",ti,"submitButton");this.register("string",ni,"odataSelect");this.register("string",ri,"remoteDropdown")}static getInstance(){if(!si.instance){si.instance=new si}return si.instance}register(i,t,n){const r=n?`${i}:${n}`:i;this.registry.register(r,t)}getPlugin(i,t){let n;if(t){n=this.registry.get(`${i}:${t}`)}if(!n){n=this.registry.get(i)}if(!n){const n=`No control plugin registered for FieldType: ${i}${t?` (widget: ${t})`:""}`;B.error("[MetaUI PluginRegistry]",n);B.showErrorPopup(`Plugin Registry Error.\n\nDetails: ${n}`);throw new Error(`[MetaUI] ${n}`)}try{return new n}catch(t){const n=t.message;B.error(`[MetaUI PluginRegistry] Failed to instantiate plugin for ${i}`,n);B.showErrorPopup(`Failed to instantiate plugin for '${i}'.\n\nDetails: ${n}`);throw new Error(`[MetaUI Plugin Instantiation] ${n}`)}}}var ei={__esModule:true};ei.PluginRegistry=si;return ei});
1
+ sap.ui.define(["../utils/Logger"],function(i){"use strict";const t=i["Logger"];class e{fieldIndex={};actionIndex={};layoutIndex={};activePromises={};constructor(){this.registerPluginPath("string",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin");this.registerPluginPath("number",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin");this.registerPluginPath("integer",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin");this.registerPluginPath("date",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin");this.registerPluginPath("boolean",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin");this.registerPluginPath("array",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin");this.registerPluginPath("object",undefined,"nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin");this.registerPluginPath("string","time","nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin");this.registerPluginPath("string","datetime","nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin");this.registerPluginPath("boolean","switch","nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin");this.registerPluginPath("string","select","nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin");this.registerPluginPath("string","textArea","nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin");this.registerPluginPath("string","codeEditor","nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin");this.registerPluginPath("string","fileUploader","nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin");this.registerPluginPath("array","multiSelect","nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin");this.registerPluginPath("number","slider","nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin");this.registerPluginPath("number","rating","nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin");this.registerPluginPath("string","messageStrip","nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin");this.registerPluginPath("string","camera","nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin");this.registerPluginPath("string","signature","nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin");this.registerPluginPath("object","location","nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin");this.registerPluginPath("string","scanner","nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin");this.registerPluginPath("string","voiceInput","nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin");this.registerPluginPath("string","richText","nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin");this.registerPluginPath("string","urlButton","nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin");this.registerPluginPath("string","submitButton","nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin");this.registerPluginPath("string","odataSelect","nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin");this.registerPluginPath("string","remoteDropdown","nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin");this.registerPluginPath("string","liveSearch","nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin");this.registerPluginPath("string","remoteValueHelp","nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin");this.registerLayoutPath("form","nz/co/siliconst/ui5/metaui/layouts/FormLayout");this.registerLayoutPath("table","nz/co/siliconst/ui5/metaui/layouts/TableLayout");this.registerLayoutPath("wizard","nz/co/siliconst/ui5/metaui/layouts/WizardLayout");this.registerLayoutPath("compact","nz/co/siliconst/ui5/metaui/layouts/CompactLayout")}static getInstance(){if(!e.instance){e.instance=new e}return e.instance}registerPluginPath(i,t,e){const n=t?`${i}:${t}`:i;this.fieldIndex[n]=e}registerActionPath(i,t){this.actionIndex[i]=t}registerLayoutPath(i,t){this.layoutIndex[i]=t}getFieldPath(i,t){let e;if(t){e=this.fieldIndex[`${i}:${t}`]}if(!e){e=this.fieldIndex[i]}if(!e){throw new Error(`No plugin path mapped for FieldType: ${i} (widget: ${t})`)}return e}getLayoutPath(i){const t=this.layoutIndex[i];if(!t){throw new Error(`No layout path mapped for strategy: ${i}`)}return t}getPathsToLoad(i){const e=new Set;const n=i.layoutStrategy||(i.type==="array"?"table":"form");e.add(this.getLayoutPath(n));const s=i=>{for(const n in i){const o=i[n];try{e.add(this.getFieldPath(o.type||"string",o.ui?.widget))}catch(i){t.warn(`[MetaUI LazyLoad] Could not find mapped plugin for field ${n}`)}if(o.properties)s(o.properties);if(o.items&&o.items.properties)s(o.items.properties);if(o.items&&o.items.type){try{e.add(this.getFieldPath(o.items.type,o.items.ui?.widget))}catch(i){t.warn(`[MetaUI LazyLoad] Could not find mapped plugin for array item type ${o.items.type}`)}}}};if(i.properties){s(i.properties)}else if(i.items&&i.items.properties){s(i.items.properties)}return e}async preloadDependencies(i){const e=this.getPathsToLoad(i);const n=Array.from(e).map(i=>{if(!this.activePromises[i]){this.activePromises[i]=new Promise((e,n)=>{sap.ui.require([i],i=>e(i),e=>{t.error(`Failed to lazy load module: ${i}`);delete this.activePromises[i];n(e)})})}return this.activePromises[i]});await Promise.all(n)}extractConstructor(i){if(!i)return null;if(typeof i==="function")return i;if(i.default&&typeof i.default==="function")return i.default;const t=Object.keys(i);for(const e of t){if(typeof i[e]==="function"){return i[e]}}return null}getPlugin(i,t){const e=this.getFieldPath(i,t);const n=sap.ui.require(e);const s=this.extractConstructor(n);if(!s){throw new Error(`[MetaUI Plugin Instantiation] Plugin ${e} was not preloaded or has no constructor!`)}return new s}getLayout(i){const t=this.getLayoutPath(i);const e=sap.ui.require(t);const n=this.extractConstructor(e);if(!n){throw new Error(`[MetaUI Layout Instantiation] Layout ${t} was not preloaded or has no constructor!`)}return new n}}var n={__esModule:true};n.PluginRegistry=e;return n});
2
2
  //# sourceMappingURL=PluginRegistry.js.map