@siliconst/metaui 1.4.7 → 1.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/package.json +1 -1
  2. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -1
  3. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts +2 -2
  4. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.d.ts.map +1 -1
  5. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -1
  6. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +2 -2
  7. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -1
  8. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -1
  9. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +2 -2
  10. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +3 -2
  11. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -1
  12. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts +1 -1
  13. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts.map +1 -1
  14. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +1 -1
  15. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -1
  16. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +4 -3
  17. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +8 -5
  18. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  19. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +6 -6
  20. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  21. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  22. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  23. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +14 -10
  24. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +1 -1
  25. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -1
  26. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +2 -2
  27. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -1
  28. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -1
  29. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +2 -2
  30. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +30 -8
  31. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -1
  32. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +10 -1
  33. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -1
  34. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +1 -1
  35. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +39 -8
  37. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +9 -6
  38. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -1
  39. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +31 -0
  40. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +1 -1
  42. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +47 -12
  44. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +6 -14
  45. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  46. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +1 -2
  47. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  48. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  49. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +12 -19
  51. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  52. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +3 -3
  53. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  54. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  55. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +4 -4
  56. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  57. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +1 -1
  58. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  60. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js.map +1 -1
  63. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +4 -3
  64. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -1
  65. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -1
  66. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +10 -9
  67. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +3 -3
  68. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +1 -1
  70. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
  71. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +7 -6
  74. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +1 -1
  75. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +1 -1
  77. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +1 -1
  78. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -1
  80. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -1
  81. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +1 -1
  82. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  83. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  84. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +2 -2
  85. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts +1 -1
  87. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -1
  88. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +1 -1
  90. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +5 -1
  91. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  93. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  94. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  95. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +9 -5
  96. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  97. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  99. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  100. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +7 -7
  101. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
  102. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts +1 -1
  103. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  107. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +2 -2
  108. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  109. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  110. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +6 -6
  111. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline-dbg.js.map +1 -1
  112. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts +1 -1
  113. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.d.ts.map +1 -1
  114. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPipeline.ts +1 -1
  115. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  116. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  117. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +1 -1
  118. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js.map +1 -1
  119. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js.map +1 -1
  120. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.ts +1 -1
  121. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +3 -3
  122. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
  123. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +33 -32
  124. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/library.d.ts +27 -1
  126. package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
  127. package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
  128. package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
  129. package/src/nz/co/siliconst/ui5/metaui/library.ts +34 -2
  130. package/src/nz/co/siliconst/ui5/metaui/manifest.json +2 -1
  131. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -1
  132. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts +1 -1
  133. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -1
  134. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -1
  135. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +1 -1
  136. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js +0 -2
  137. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js.map +1 -1
  138. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts +1 -1
  139. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.d.ts.map +1 -1
  140. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js.map +1 -1
  141. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.ts +2 -4
  142. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin-dbg.js.map +1 -1
  143. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts +1 -1
  144. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.d.ts.map +1 -1
  145. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.js.map +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/UrlNavigationActionPlugin.ts +1 -1
  147. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +5 -3
  148. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +1 -1
  150. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  151. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
  152. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  153. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +7 -6
  154. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +3 -9
  155. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  156. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +2 -2
  157. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -1
  158. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  159. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  160. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +9 -14
  161. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +14 -3
  162. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  163. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +2 -2
  164. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  165. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
  166. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  167. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +19 -8
  168. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +1 -3
  169. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  170. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +1 -1
  171. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  172. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  173. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  174. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +3 -3
  175. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +2 -4
  176. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  177. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +2 -2
  178. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -1
  179. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  180. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  181. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +7 -7
  182. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +2 -4
  183. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  184. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +2 -2
  185. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -1
  186. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  187. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  188. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +15 -15
  189. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +2 -4
  190. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  191. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +2 -2
  192. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  193. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  194. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  195. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +4 -4
  196. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +2 -4
  197. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  198. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +2 -2
  199. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  200. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  201. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +4 -4
  203. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +2 -4
  204. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  205. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +2 -2
  206. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  207. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  208. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  209. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +4 -4
  210. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +2 -4
  211. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +2 -2
  213. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  214. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  215. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  216. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +4 -4
  217. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +2 -4
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +2 -2
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +7 -7
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +1 -1
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -1
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +2 -4
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +2 -2
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +5 -5
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +2 -4
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +2 -2
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +4 -4
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +5 -3
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +1 -1
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +1 -1
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +11 -9
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +2 -4
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +2 -2
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +4 -4
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +1 -3
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -1
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +5 -5
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +2 -4
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +2 -2
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -1
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +9 -9
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +2 -4
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +2 -2
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +6 -6
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +2 -4
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +2 -2
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -1
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +6 -6
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +2 -4
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +2 -2
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +6 -6
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +2 -4
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +2 -2
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -1
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +6 -6
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +2 -4
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +2 -2
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +6 -6
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +2 -4
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +2 -2
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +8 -8
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js +9 -0
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts +8 -1
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts.map +1 -1
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +13 -6
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +9 -0
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -1
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts +8 -1
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -1
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -1
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +10 -3
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +19 -0
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -1
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +18 -1
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -1
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -1
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +19 -2
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js +23 -0
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts +20 -1
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts.map +1 -1
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +25 -6
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin-dbg.js.map +1 -1
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts +1 -1
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.d.ts.map +1 -1
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.js.map +1 -1
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/CurrencyFormatterPlugin.ts +2 -2
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js +6 -0
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin-dbg.js.map +1 -1
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts +6 -1
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.d.ts.map +1 -1
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.js.map +1 -1
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/DateFormatterPlugin.ts +7 -2
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js +5 -0
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin-dbg.js.map +1 -1
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts +6 -1
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.d.ts.map +1 -1
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.js.map +1 -1
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/PhoneFormatterPlugin.ts +6 -1
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js +5 -0
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin-dbg.js.map +1 -1
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts +6 -1
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.d.ts.map +1 -1
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.js.map +1 -1
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/formatters/TextCaseFormatterPlugin.ts +6 -1
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin-dbg.js.map +1 -1
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts +1 -1
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.d.ts.map +1 -1
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.js.map +1 -1
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/EmailValidatorPlugin.ts +1 -1
  364. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js +6 -0
  365. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin-dbg.js.map +1 -1
  366. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts +7 -1
  367. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.d.ts.map +1 -1
  368. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.js.map +1 -1
  369. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/IbanValidatorPlugin.ts +7 -1
  370. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js +6 -0
  371. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin-dbg.js.map +1 -1
  372. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts +7 -1
  373. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.d.ts.map +1 -1
  374. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.js.map +1 -1
  375. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/MinLengthValidatorPlugin.ts +7 -1
  376. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js +6 -0
  377. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin-dbg.js.map +1 -1
  378. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts +7 -1
  379. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.d.ts.map +1 -1
  380. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.js.map +1 -1
  381. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/PatternValidatorPlugin.ts +7 -1
  382. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js +6 -0
  383. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin-dbg.js.map +1 -1
  384. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts +7 -1
  385. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.d.ts.map +1 -1
  386. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.js.map +1 -1
  387. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/RangeValidatorPlugin.ts +7 -1
  388. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js +6 -0
  389. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin-dbg.js.map +1 -1
  390. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts +7 -1
  391. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.d.ts.map +1 -1
  392. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.js.map +1 -1
  393. package/src/nz/co/siliconst/ui5/metaui/plugins/validators/UrlValidatorPlugin.ts +7 -1
  394. package/src/nz/co/siliconst/ui5/metaui/typings/ui5-custom.d.ts +20 -0
  395. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder-dbg.js +50 -0
  396. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder-dbg.js.map +1 -0
  397. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder.d.ts +19 -0
  398. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder.d.ts.map +1 -0
  399. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder.js +2 -0
  400. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder.js.map +1 -0
  401. package/src/nz/co/siliconst/ui5/metaui/utils/ExpressionBuilder.ts +43 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siliconst/metaui",
3
- "version": "1.4.7",
3
+ "version": "1.4.9",
4
4
  "description": "Dynamic Metadata UI5 Engine",
5
5
  "author": "SiliconStreetDev1",
6
6
  "license": "MIT",
@@ -1 +1 @@
1
- {"version":3,"file":"BaseHardwareControl-dbg.js","names":["BaseHardwareControlRenderer","_interopRequireDefault","__BaseHardwareControlRenderer","BaseHardwareControl","Control","extend","renderer","metadata","properties","value","type","defaultValue","schemaMetadata","readOnly","aggregations","_content","multiple","visibility","events","capture","parameters","setValueAndFire","_setValueAndFire","val","setProperty","fireEvent","renderContent","_renderContent","rm","control"],"sources":["BaseHardwareControl.ts"],"sourcesContent":["/**\n * @file BaseHardwareControl.ts\n * @description Foundational UI5 Custom Control for hardware plugins.\n * Exposes a standard 'value' property for pure two-way data binding.\n * \n */\n\nimport Control from \"sap/ui/core/Control\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport BaseHardwareControlRenderer from \"./BaseHardwareControlRenderer\";\n\n/**\n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nexport default class BaseHardwareControl extends Control {\n static readonly metadata = {\n properties: {\n /** The raw data value. Two-way bound to the model. */\n value: { type: \"any\", defaultValue: null },\n /** The schema metadata for rendering dynamic hints (like labels/readOnly) */\n schemaMetadata: { type: \"object\", defaultValue: null },\n /** Indicates if the control should be in a read-only state */\n readOnly: { type: \"boolean\", defaultValue: false }\n },\n aggregations: {\n _content: { type: \"sap.m.VBox\", multiple: false, visibility: \"hidden\" }\n },\n events: {\n /** Fired when the hardware successfully captures a value */\n capture: {\n parameters: {\n value: { type: \"any\" }\n }\n }\n }\n };\n\n /**\n * Updates the bound value and fires the capture event.\n */\n protected setValueAndFire(val: unknown): void {\n this.setProperty(\"value\", val, true); // true to suppress re-rendering if desired, but we want the binding to update\n this.fireEvent(\"capture\", { value: val });\n }\n\n /**\n * Common renderer for all hardware controls\n */\n static readonly renderer = BaseHardwareControlRenderer;\n\n /**\n * Abstract hook for subclasses to render their specific DOM/Controls.\n */\n protected renderContent(rm: RenderManager, control: BaseHardwareControl): void {\n // To be overridden by hardware implementations\n }\n}\n"],"mappings":";;;;;;QAUOA,2BAA2B,GAAAC,sBAAA,CAAAC,6BAAA;EAElC;AACA;AACA;EAFA,MAGqBC,mBAAmB,GAASC,OAAO,CAAAC,MAAA;IA+BpD;AACJ;AACA;IACoBC,QAAQ,EAAGN,2BAA2B;IAjCtCO,QAAQ,EAAG;MACvBC,UAAU,EAAE;QACR;QACAC,KAAK,EAAE;UAAEC,IAAI,EAAE,KAAK;UAAEC,YAAY,EAAE;QAAK,CAAC;QAC1C;QACAC,cAAc,EAAE;UAAEF,IAAI,EAAE,QAAQ;UAAEC,YAAY,EAAE;QAAK,CAAC;QACtD;QACAE,QAAQ,EAAE;UAAEH,IAAI,EAAE,SAAS;UAAEC,YAAY,EAAE;QAAM;MACrD,CAAC;MACDG,YAAY,EAAE;QACVC,QAAQ,EAAE;UAAEL,IAAI,EAAE,YAAY;UAAEM,QAAQ,EAAE,KAAK;UAAEC,UAAU,EAAE;QAAS;MAC1E,CAAC;MACDC,MAAM,EAAE;QACJ;QACAC,OAAO,EAAE;UACLC,UAAU,EAAE;YACRX,KAAK,EAAE;cAAEC,IAAI,EAAE;YAAM;UACzB;QACJ;MACJ;IACJ,CAAC;IAED;AACJ;AACA;IACcW,eAAe,WAAAC,iBAACC,GAAY,EAAQ;MAC1C,IAAI,CAACC,WAAW,CAAC,OAAO,EAAED,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;MACtC,IAAI,CAACE,SAAS,CAAC,SAAS,EAAE;QAAEhB,KAAK,EAAEc;MAAI,CAAC,CAAC;IAC7C,CAAC;IAOD;AACJ;AACA;IACcG,aAAa,WAAAC,eAACC,EAAiB,EAAEC,OAA4B,EAAQ;MAC3E;IAAA;EACH;EAAA,OAzCgB1B,mBAAmB;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"BaseHardwareControl-dbg.js","names":["BaseHardwareControlRenderer","_interopRequireDefault","__BaseHardwareControlRenderer","BaseHardwareControl","Control","extend","renderer","metadata","properties","value","type","defaultValue","schemaMetadata","readOnly","aggregations","_content","multiple","visibility","events","capture","parameters","setValueAndFire","_setValueAndFire","val","setProperty","fireEvent","renderContent","_renderContent","rm","control"],"sources":["BaseHardwareControl.ts"],"sourcesContent":["/**\n * @file BaseHardwareControl.ts\n * @description Foundational UI5 Custom Control for hardware plugins.\n * Exposes a standard 'value' property for pure two-way data binding.\n * \n */\n\nimport Control from \"sap/ui/core/Control\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport BaseHardwareControlRenderer from \"./BaseHardwareControlRenderer\";\n\n/**\n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nexport default class BaseHardwareControl extends Control {\n static readonly metadata = {\n properties: {\n /** The raw data value. Two-way bound to the model. */\n value: { type: \"any\", defaultValue: null },\n /** The schema metadata for rendering dynamic hints (like labels/readOnly) */\n schemaMetadata: { type: \"object\", defaultValue: null },\n /** Indicates if the control should be in a read-only state */\n readOnly: { type: \"boolean\", defaultValue: false }\n },\n aggregations: {\n _content: { type: \"sap.m.VBox\", multiple: false, visibility: \"hidden\" }\n },\n events: {\n /** Fired when the hardware successfully captures a value */\n capture: {\n parameters: {\n value: { type: \"any\" }\n }\n }\n }\n };\n\n /**\n * Updates the bound value and fires the capture event.\n */\n public setValueAndFire(val: unknown): void {\n this.setProperty(\"value\", val, true); // true to suppress re-rendering if desired, but we want the binding to update\n this.fireEvent(\"capture\", { value: val });\n }\n\n /**\n * Common renderer for all hardware controls\n */\n static readonly renderer = BaseHardwareControlRenderer;\n\n /**\n * Abstract hook for subclasses to render their specific DOM/Controls.\n */\n public renderContent(rm: RenderManager, control: BaseHardwareControl): void {\n // To be overridden by hardware implementations\n }\n}\n"],"mappings":";;;;;;QAUOA,2BAA2B,GAAAC,sBAAA,CAAAC,6BAAA;EAElC;AACA;AACA;EAFA,MAGqBC,mBAAmB,GAASC,OAAO,CAAAC,MAAA;IA+BpD;AACJ;AACA;IACoBC,QAAQ,EAAGN,2BAA2B;IAjCtCO,QAAQ,EAAG;MACvBC,UAAU,EAAE;QACR;QACAC,KAAK,EAAE;UAAEC,IAAI,EAAE,KAAK;UAAEC,YAAY,EAAE;QAAK,CAAC;QAC1C;QACAC,cAAc,EAAE;UAAEF,IAAI,EAAE,QAAQ;UAAEC,YAAY,EAAE;QAAK,CAAC;QACtD;QACAE,QAAQ,EAAE;UAAEH,IAAI,EAAE,SAAS;UAAEC,YAAY,EAAE;QAAM;MACrD,CAAC;MACDG,YAAY,EAAE;QACVC,QAAQ,EAAE;UAAEL,IAAI,EAAE,YAAY;UAAEM,QAAQ,EAAE,KAAK;UAAEC,UAAU,EAAE;QAAS;MAC1E,CAAC;MACDC,MAAM,EAAE;QACJ;QACAC,OAAO,EAAE;UACLC,UAAU,EAAE;YACRX,KAAK,EAAE;cAAEC,IAAI,EAAE;YAAM;UACzB;QACJ;MACJ;IACJ,CAAC;IAED;AACJ;AACA;IACWW,eAAe,WAAAC,iBAACC,GAAY,EAAQ;MACvC,IAAI,CAACC,WAAW,CAAC,OAAO,EAAED,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;MACtC,IAAI,CAACE,SAAS,CAAC,SAAS,EAAE;QAAEhB,KAAK,EAAEc;MAAI,CAAC,CAAC;IAC7C,CAAC;IAOD;AACJ;AACA;IACWG,aAAa,WAAAC,eAACC,EAAiB,EAAEC,OAA4B,EAAQ;MACxE;IAAA;EACH;EAAA,OAzCgB1B,mBAAmB;AAAA","ignoreList":[]}
@@ -50,7 +50,7 @@ declare module "nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl" {
50
50
  /**
51
51
  * Updates the bound value and fires the capture event.
52
52
  */
53
- protected setValueAndFire(val: unknown): void;
53
+ setValueAndFire(val: unknown): void;
54
54
  /**
55
55
  * Common renderer for all hardware controls
56
56
  */
@@ -61,7 +61,7 @@ declare module "nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl" {
61
61
  /**
62
62
  * Abstract hook for subclasses to render their specific DOM/Controls.
63
63
  */
64
- protected renderContent(rm: RenderManager, control: BaseHardwareControl): void;
64
+ renderContent(rm: RenderManager, control: BaseHardwareControl): void;
65
65
  }
66
66
  }
67
67
  //# sourceMappingURL=BaseHardwareControl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseHardwareControl.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,yDAAyD,CAAC;IACzE;;;;;OAKG;IAEH,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAC1C,OAAO,aAAa,MAAM,2BAA2B,CAAC;IAItD;;OAEG;IACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;QACpD,MAAM,CAAC,QAAQ,CAAC,QAAQ;;gBAEhB,sDAAsD;;;;;gBAEtD,6EAA6E;;;;;gBAE7E,8DAA8D;;;;;;;;;;;;;;gBAO9D,4DAA4D;;;;;;;;;UAOlE;QAEF;;WAEG;QACH,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;QAK7C;;WAEG;QACH,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;UAA+B;QAEvD;;WAEG;QACH,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;KAGjF;CAEA"}
1
+ {"version":3,"file":"BaseHardwareControl.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,yDAAyD,CAAC;IACzE;;;;;OAKG;IAEH,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAC1C,OAAO,aAAa,MAAM,2BAA2B,CAAC;IAItD;;OAEG;IACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;QACpD,MAAM,CAAC,QAAQ,CAAC,QAAQ;;gBAEhB,sDAAsD;;;;;gBAEtD,6EAA6E;;;;;gBAE7E,8DAA8D;;;;;;;;;;;;;;gBAO9D,4DAA4D;;;;;;;;;UAOlE;QAEF;;WAEG;QACI,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;QAK1C;;WAEG;QACH,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;UAA+B;QAEvD;;WAEG;QACI,aAAa,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;KAG9E;CAEA"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseHardwareControl.js","names":["BaseHardwareControlRenderer","_interopRequireDefault","__BaseHardwareControlRenderer","BaseHardwareControl","Control","extend","renderer","metadata","properties","value","type","defaultValue","schemaMetadata","readOnly","aggregations","_content","multiple","visibility","events","capture","parameters","setValueAndFire","_setValueAndFire","val","this","setProperty","fireEvent","renderContent","_renderContent","rm","control"],"sources":["BaseHardwareControl.ts"],"sourcesContent":["/**\n * @file BaseHardwareControl.ts\n * @description Foundational UI5 Custom Control for hardware plugins.\n * Exposes a standard 'value' property for pure two-way data binding.\n * \n */\n\nimport Control from \"sap/ui/core/Control\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport BaseHardwareControlRenderer from \"./BaseHardwareControlRenderer\";\n\n/**\n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nexport default class BaseHardwareControl extends Control {\n static readonly metadata = {\n properties: {\n /** The raw data value. Two-way bound to the model. */\n value: { type: \"any\", defaultValue: null },\n /** The schema metadata for rendering dynamic hints (like labels/readOnly) */\n schemaMetadata: { type: \"object\", defaultValue: null },\n /** Indicates if the control should be in a read-only state */\n readOnly: { type: \"boolean\", defaultValue: false }\n },\n aggregations: {\n _content: { type: \"sap.m.VBox\", multiple: false, visibility: \"hidden\" }\n },\n events: {\n /** Fired when the hardware successfully captures a value */\n capture: {\n parameters: {\n value: { type: \"any\" }\n }\n }\n }\n };\n\n /**\n * Updates the bound value and fires the capture event.\n */\n protected setValueAndFire(val: unknown): void {\n this.setProperty(\"value\", val, true); // true to suppress re-rendering if desired, but we want the binding to update\n this.fireEvent(\"capture\", { value: val });\n }\n\n /**\n * Common renderer for all hardware controls\n */\n static readonly renderer = BaseHardwareControlRenderer;\n\n /**\n * Abstract hook for subclasses to render their specific DOM/Controls.\n */\n protected renderContent(rm: RenderManager, control: BaseHardwareControl): void {\n // To be overridden by hardware implementations\n }\n}\n"],"mappings":"wLAUOA,EAA2BC,EAAAC,GAElC,MAGqBC,EAA4BC,EAAOC,OAAA,2DAkCpCC,SAAWN,EAjCXO,SAAW,CACvBC,WAAY,CAERC,MAAO,CAAEC,KAAM,MAAOC,aAAc,MAEpCC,eAAgB,CAAEF,KAAM,SAAUC,aAAc,MAEhDE,SAAU,CAAEH,KAAM,UAAWC,aAAc,QAE/CG,aAAc,CACVC,SAAU,CAAEL,KAAM,aAAcM,SAAU,MAAOC,WAAY,WAEjEC,OAAQ,CAEJC,QAAS,CACLC,WAAY,CACRX,MAAO,CAAEC,KAAM,WASrBW,gBAAe,SAAAC,EAACC,GACtBC,KAAKC,YAAY,QAASF,EAAK,MAC/BC,KAAKE,UAAU,UAAW,CAAEjB,MAAOc,GACvC,EAUUI,cAAa,SAAAC,EAACC,EAAmBC,GACvC,IACH,OAzCgB3B,CAAmB","ignoreList":[]}
1
+ {"version":3,"file":"BaseHardwareControl.js","names":["BaseHardwareControlRenderer","_interopRequireDefault","__BaseHardwareControlRenderer","BaseHardwareControl","Control","extend","renderer","metadata","properties","value","type","defaultValue","schemaMetadata","readOnly","aggregations","_content","multiple","visibility","events","capture","parameters","setValueAndFire","_setValueAndFire","val","this","setProperty","fireEvent","renderContent","_renderContent","rm","control"],"sources":["BaseHardwareControl.ts"],"sourcesContent":["/**\n * @file BaseHardwareControl.ts\n * @description Foundational UI5 Custom Control for hardware plugins.\n * Exposes a standard 'value' property for pure two-way data binding.\n * \n */\n\nimport Control from \"sap/ui/core/Control\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport BaseHardwareControlRenderer from \"./BaseHardwareControlRenderer\";\n\n/**\n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nexport default class BaseHardwareControl extends Control {\n static readonly metadata = {\n properties: {\n /** The raw data value. Two-way bound to the model. */\n value: { type: \"any\", defaultValue: null },\n /** The schema metadata for rendering dynamic hints (like labels/readOnly) */\n schemaMetadata: { type: \"object\", defaultValue: null },\n /** Indicates if the control should be in a read-only state */\n readOnly: { type: \"boolean\", defaultValue: false }\n },\n aggregations: {\n _content: { type: \"sap.m.VBox\", multiple: false, visibility: \"hidden\" }\n },\n events: {\n /** Fired when the hardware successfully captures a value */\n capture: {\n parameters: {\n value: { type: \"any\" }\n }\n }\n }\n };\n\n /**\n * Updates the bound value and fires the capture event.\n */\n public setValueAndFire(val: unknown): void {\n this.setProperty(\"value\", val, true); // true to suppress re-rendering if desired, but we want the binding to update\n this.fireEvent(\"capture\", { value: val });\n }\n\n /**\n * Common renderer for all hardware controls\n */\n static readonly renderer = BaseHardwareControlRenderer;\n\n /**\n * Abstract hook for subclasses to render their specific DOM/Controls.\n */\n public renderContent(rm: RenderManager, control: BaseHardwareControl): void {\n // To be overridden by hardware implementations\n }\n}\n"],"mappings":"wLAUOA,EAA2BC,EAAAC,GAElC,MAGqBC,EAA4BC,EAAOC,OAAA,2DAkCpCC,SAAWN,EAjCXO,SAAW,CACvBC,WAAY,CAERC,MAAO,CAAEC,KAAM,MAAOC,aAAc,MAEpCC,eAAgB,CAAEF,KAAM,SAAUC,aAAc,MAEhDE,SAAU,CAAEH,KAAM,UAAWC,aAAc,QAE/CG,aAAc,CACVC,SAAU,CAAEL,KAAM,aAAcM,SAAU,MAAOC,WAAY,WAEjEC,OAAQ,CAEJC,QAAS,CACLC,WAAY,CACRX,MAAO,CAAEC,KAAM,WASxBW,gBAAe,SAAAC,EAACC,GACnBC,KAAKC,YAAY,QAASF,EAAK,MAC/BC,KAAKE,UAAU,UAAW,CAAEjB,MAAOc,GACvC,EAUOI,cAAa,SAAAC,EAACC,EAAmBC,GACpC,IACH,OAzCgB3B,CAAmB","ignoreList":[]}
@@ -39,7 +39,7 @@ export default class BaseHardwareControl extends Control {
39
39
  /**
40
40
  * Updates the bound value and fires the capture event.
41
41
  */
42
- protected setValueAndFire(val: unknown): void {
42
+ public setValueAndFire(val: unknown): void {
43
43
  this.setProperty("value", val, true); // true to suppress re-rendering if desired, but we want the binding to update
44
44
  this.fireEvent("capture", { value: val });
45
45
  }
@@ -52,7 +52,7 @@ export default class BaseHardwareControl extends Control {
52
52
  /**
53
53
  * Abstract hook for subclasses to render their specific DOM/Controls.
54
54
  */
55
- protected renderContent(rm: RenderManager, control: BaseHardwareControl): void {
55
+ public renderContent(rm: RenderManager, control: BaseHardwareControl): void {
56
56
  // To be overridden by hardware implementations
57
57
  }
58
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseHardwareControlRenderer-dbg.js","names":["__exports","apiVersion","render","rm","control","openStart","class","openEnd","content","getAggregation","renderControl","renderContent","close"],"sources":["BaseHardwareControlRenderer.ts"],"sourcesContent":["/**\n * @file BaseHardwareControlRenderer.ts\n * @description Standard renderer for all MetaUI hardware controls.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport BaseHardwareControl from \"./BaseHardwareControl\";\n\nexport default {\n apiVersion: 2,\n render: function (rm: RenderManager, control: BaseHardwareControl) {\n rm.openStart(\"div\", control);\n rm.class(\"sapUiSmallMarginBottom\");\n rm.openEnd();\n \n const content = control.getAggregation(\"_content\") as sap.ui.core.Control;\n if (content) {\n rm.renderControl(content);\n }\n \n if (typeof (control as unknown).renderContent === \"function\") {\n (control as unknown).renderContent(rm, control);\n }\n \n rm.close(\"div\");\n }\n};\n"],"mappings":";;;EAAA;AACA;AACA;AACA;AACA;AACA;EALA,IAAAA,SAAA,GASe;IACXC,UAAU,EAAE,CAAC;IACbC,MAAM,EAAE,SAAAA,CAAUC,EAAiB,EAAEC,OAA4B,EAAE;MAC/DD,EAAE,CAACE,SAAS,CAAC,KAAK,EAAED,OAAO,CAAC;MAC5BD,EAAE,CAACG,KAAK,CAAC,wBAAwB,CAAC;MAClCH,EAAE,CAACI,OAAO,CAAC,CAAC;MAEZ,MAAMC,OAAO,GAAGJ,OAAO,CAACK,cAAc,CAAC,UAAU,CAAwB;MACzE,IAAID,OAAO,EAAE;QACTL,EAAE,CAACO,aAAa,CAACF,OAAO,CAAC;MAC7B;MAEA,IAAI,OAAQJ,OAAO,CAAaO,aAAa,KAAK,UAAU,EAAE;QACzDP,OAAO,CAAaO,aAAa,CAACR,EAAE,EAAEC,OAAO,CAAC;MACnD;MAEAD,EAAE,CAACS,KAAK,CAAC,KAAK,CAAC;IACnB;EACJ,CAAC;EAAA,OAAAZ,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"BaseHardwareControlRenderer-dbg.js","names":["__exports","apiVersion","render","rm","control","openStart","class","openEnd","content","getAggregation","renderControl","renderContent","close"],"sources":["BaseHardwareControlRenderer.ts"],"sourcesContent":["/**\n * @file BaseHardwareControlRenderer.ts\n * @description Standard renderer for all MetaUI hardware controls.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport BaseHardwareControl from \"./BaseHardwareControl\";\n\nexport default {\n apiVersion: 2,\n render: function (rm: RenderManager, control: BaseHardwareControl) {\n rm.openStart(\"div\", control);\n rm.class(\"sapUiSmallMarginBottom\");\n rm.openEnd();\n \n const content = control.getAggregation(\"_content\") as sap.ui.core.Control;\n if (content) {\n rm.renderControl(content);\n }\n \n if (typeof control.renderContent === \"function\") {\n control.renderContent(rm, control);\n }\n \n rm.close(\"div\");\n }\n};\n"],"mappings":";;;EAAA;AACA;AACA;AACA;AACA;AACA;EALA,IAAAA,SAAA,GASe;IACXC,UAAU,EAAE,CAAC;IACbC,MAAM,EAAE,SAAAA,CAAUC,EAAiB,EAAEC,OAA4B,EAAE;MAC/DD,EAAE,CAACE,SAAS,CAAC,KAAK,EAAED,OAAO,CAAC;MAC5BD,EAAE,CAACG,KAAK,CAAC,wBAAwB,CAAC;MAClCH,EAAE,CAACI,OAAO,CAAC,CAAC;MAEZ,MAAMC,OAAO,GAAGJ,OAAO,CAACK,cAAc,CAAC,UAAU,CAAwB;MACzE,IAAID,OAAO,EAAE;QACTL,EAAE,CAACO,aAAa,CAACF,OAAO,CAAC;MAC7B;MAEA,IAAI,OAAOJ,OAAO,CAACO,aAAa,KAAK,UAAU,EAAE;QAC7CP,OAAO,CAACO,aAAa,CAACR,EAAE,EAAEC,OAAO,CAAC;MACtC;MAEAD,EAAE,CAACS,KAAK,CAAC,KAAK,CAAC;IACnB;EACJ,CAAC;EAAA,OAAAZ,SAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseHardwareControlRenderer.js","names":["__exports","apiVersion","render","rm","control","openStart","class","openEnd","content","getAggregation","renderControl","renderContent","close"],"sources":["BaseHardwareControlRenderer.ts"],"sourcesContent":["/**\n * @file BaseHardwareControlRenderer.ts\n * @description Standard renderer for all MetaUI hardware controls.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport BaseHardwareControl from \"./BaseHardwareControl\";\n\nexport default {\n apiVersion: 2,\n render: function (rm: RenderManager, control: BaseHardwareControl) {\n rm.openStart(\"div\", control);\n rm.class(\"sapUiSmallMarginBottom\");\n rm.openEnd();\n \n const content = control.getAggregation(\"_content\") as sap.ui.core.Control;\n if (content) {\n rm.renderControl(content);\n }\n \n if (typeof (control as unknown).renderContent === \"function\") {\n (control as unknown).renderContent(rm, control);\n }\n \n rm.close(\"div\");\n }\n};\n"],"mappings":"yCAAA,IAAAA,EASe,CACXC,WAAY,EACZC,OAAQ,SAAUC,EAAmBC,GACjCD,EAAGE,UAAU,MAAOD,GACpBD,EAAGG,MAAM,0BACTH,EAAGI,UAEH,MAAMC,EAAUJ,EAAQK,eAAe,YACvC,GAAID,EAAS,CACTL,EAAGO,cAAcF,EACrB,CAEA,UAAYJ,EAAoBO,gBAAkB,WAAY,CACzDP,EAAoBO,cAAcR,EAAIC,EAC3C,CAEAD,EAAGS,MAAM,MACb,GACH,OAAAZ,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"BaseHardwareControlRenderer.js","names":["__exports","apiVersion","render","rm","control","openStart","class","openEnd","content","getAggregation","renderControl","renderContent","close"],"sources":["BaseHardwareControlRenderer.ts"],"sourcesContent":["/**\n * @file BaseHardwareControlRenderer.ts\n * @description Standard renderer for all MetaUI hardware controls.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport BaseHardwareControl from \"./BaseHardwareControl\";\n\nexport default {\n apiVersion: 2,\n render: function (rm: RenderManager, control: BaseHardwareControl) {\n rm.openStart(\"div\", control);\n rm.class(\"sapUiSmallMarginBottom\");\n rm.openEnd();\n \n const content = control.getAggregation(\"_content\") as sap.ui.core.Control;\n if (content) {\n rm.renderControl(content);\n }\n \n if (typeof control.renderContent === \"function\") {\n control.renderContent(rm, control);\n }\n \n rm.close(\"div\");\n }\n};\n"],"mappings":"yCAAA,IAAAA,EASe,CACXC,WAAY,EACZC,OAAQ,SAAUC,EAAmBC,GACjCD,EAAGE,UAAU,MAAOD,GACpBD,EAAGG,MAAM,0BACTH,EAAGI,UAEH,MAAMC,EAAUJ,EAAQK,eAAe,YACvC,GAAID,EAAS,CACTL,EAAGO,cAAcF,EACrB,CAEA,UAAWJ,EAAQO,gBAAkB,WAAY,CAC7CP,EAAQO,cAAcR,EAAIC,EAC9B,CAEAD,EAAGS,MAAM,MACb,GACH,OAAAZ,CAAA","ignoreList":[]}
@@ -19,8 +19,8 @@ export default {
19
19
  rm.renderControl(content);
20
20
  }
21
21
 
22
- if (typeof (control as unknown).renderContent === "function") {
23
- (control as unknown).renderContent(rm, control);
22
+ if (typeof control.renderContent === "function") {
23
+ control.renderContent(rm, control);
24
24
  }
25
25
 
26
26
  rm.close("div");
@@ -61,6 +61,8 @@ sap.ui.define(["./BaseHardwareControl", "sap/m/Button", "sap/m/VBox", "sap/ui/co
61
61
  const val = this.getValue();
62
62
  if (val && typeof val === "string" && val.startsWith("data:image")) {
63
63
  this.showPreview(val);
64
+ } else if (this.captureBtn.getVisible() && this.videoHtml.getVisible()) {
65
+ this.startCamera();
64
66
  }
65
67
  }
66
68
  handleStartCameraPress() {
@@ -113,8 +115,7 @@ sap.ui.define(["./BaseHardwareControl", "sap/m/Button", "sap/m/VBox", "sap/ui/co
113
115
  this.captureBtn.setVisible(true);
114
116
  this.retakeBtn.setVisible(false);
115
117
 
116
- // Use a slight timeout to ensure DOM is ready before accessing stream again
117
- setTimeout(() => this.startCamera(), 100);
118
+ // startCamera is now handled safely by onVideoRendered hook
118
119
  }
119
120
  showPreview(dataUrl) {
120
121
  this.stopCamera();
@@ -1 +1 @@
1
- {"version":3,"file":"CameraControl-dbg.js","names":["BaseHardwareControl","_interopRequireDefault","__BaseHardwareControl","Logger","___utils_Logger","CameraControl","renderer","metadata","properties","events","videoEl","mediaStream","init","videoHtml","HTML","content","afterRendering","onVideoRendered","bind","addStyleClass","previewImage","Image","width","visible","startBtn","Button","icon","text","press","handleStartCameraPress","captureBtn","captureImage","retakeBtn","retakeImage","vBox","VBox","items","setAggregation","domRef","getDomRef","val","getValue","startsWith","showPreview","startCamera","setVisible","style","display","navigator","mediaDevices","getUserMedia","video","facingMode","srcObject","err","error","message","MessageToast","show","stopCamera","getTracks","forEach","track","stop","canvas","document","createElement","videoWidth","height","videoHeight","ctx","getContext","drawImage","dataUrl","toDataURL","setValueAndFire","setTimeout","setSrc","setValue","value","getVisible","exit"],"sources":["CameraControl.ts"],"sourcesContent":["import BaseHardwareControl from \"./BaseHardwareControl\";\nimport Button from \"sap/m/Button\";\nimport VBox from \"sap/m/VBox\";\nimport HTML from \"sap/ui/core/HTML\";\nimport MessageToast from \"sap/m/MessageToast\";\nimport Image from \"sap/m/Image\";\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * CameraControl\n * Provides a live video feed to capture photos.\n */\nexport default class CameraControl extends BaseHardwareControl {\n static readonly renderer = \"nz.co.siliconst.ui5.metaui.controls.BaseHardwareControlRenderer\";\n static readonly metadata = {\n properties: {},\n events: {}\n };\n\n private startBtn!: Button;\n private vBox!: VBox;\n private captureBtn!: Button;\n private retakeBtn!: Button;\n private videoHtml!: HTML;\n private previewImage!: Image;\n \n private videoEl: HTMLVideoElement | null = null;\n private mediaStream: MediaStream | null = null;\n\n /**\n * Initializes the control and builds the internal camera UI.\n */\n public init(): void {\n super.init();\n\n this.videoHtml = new HTML({\n content: \"<video width='400' height='300' autoplay playsinline style='background-color: #000; display: none;'></video>\",\n afterRendering: this.onVideoRendered.bind(this)\n }).addStyleClass(\"sapUiSmallMarginBottom\");\n\n this.previewImage = new Image({\n width: \"400px\",\n visible: false\n }).addStyleClass(\"sapUiSmallMarginBottom\");\n\n this.startBtn = new Button({\n icon: \"sap-icon://video\",\n text: \"Start Camera\",\n press: this.handleStartCameraPress.bind(this)\n });\n\n this.captureBtn = new Button({\n icon: \"sap-icon://camera\",\n text: \"Capture\",\n visible: false,\n press: this.captureImage.bind(this)\n });\n\n this.retakeBtn = new Button({\n icon: \"sap-icon://undo\",\n text: \"Retake\",\n visible: false,\n press: this.retakeImage.bind(this)\n });\n\n this.vBox = new VBox({\n items: [this.videoHtml, this.previewImage, this.startBtn, this.captureBtn, this.retakeBtn]\n });\n\n this.setAggregation(\"_content\", this.vBox);\n }\n\n private async onVideoRendered(): void {\n const domRef = this.videoHtml.getDomRef() as HTMLElement;\n if (!domRef) return;\n \n this.videoEl = domRef as HTMLVideoElement;\n \n const val = this.getValue();\n if (val && typeof val === \"string\" && val.startsWith(\"data:image\")) {\n this.showPreview(val);\n }\n }\n\n private handleStartCameraPress(): void {\n this.startCamera();\n this.startBtn.setVisible(false);\n this.captureBtn.setVisible(true);\n if (this.videoEl) {\n this.videoEl.style.display = \"block\";\n }\n }\n\n private async startCamera(): Promise<void> {\n try {\n this.mediaStream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: \"environment\" } });\n if (this.videoEl) {\n this.videoEl.srcObject = this.mediaStream;\n }\n } catch (err) {\n Logger.error(\"Camera access denied or unavailable\", (err as Error).message, \"CameraControl\");\n MessageToast.show(\"Camera access denied or unavailable.\");\n }\n }\n\n private stopCamera(): void {\n if (this.mediaStream) {\n this.mediaStream.getTracks().forEach(track => track.stop());\n this.mediaStream = null;\n }\n }\n\n private captureImage(): void {\n if (!this.videoEl) return;\n \n const canvas = document.createElement(\"canvas\");\n canvas.width = this.videoEl.videoWidth || 400;\n canvas.height = this.videoEl.videoHeight || 300;\n \n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(this.videoEl, 0, 0, canvas.width, canvas.height);\n const dataUrl = canvas.toDataURL(\"image/jpeg\", 0.8);\n this.setValueAndFire(dataUrl);\n this.showPreview(dataUrl);\n MessageToast.show(\"Image captured successfully.\");\n }\n }\n\n private retakeImage(): void {\n this.setValueAndFire(null);\n this.previewImage.setVisible(false);\n this.videoHtml.setVisible(true);\n this.captureBtn.setVisible(true);\n this.retakeBtn.setVisible(false);\n \n // Use a slight timeout to ensure DOM is ready before accessing stream again\n setTimeout(() => this.startCamera(), 100);\n }\n\n private showPreview(dataUrl: string): void {\n this.stopCamera();\n this.videoHtml.setVisible(false);\n this.previewImage.setSrc(dataUrl);\n this.previewImage.setVisible(true);\n this.captureBtn.setVisible(false);\n this.retakeBtn.setVisible(true);\n }\n\n /**\n * Sets the value of the control programmatically.\n * @param value The base64 data URL string representing the image.\n */\n public setValue(value: any): this {\n super.setValue(value);\n if (value && typeof value === \"string\" && value.startsWith(\"data:image\")) {\n this.showPreview(value);\n } else if (!value) {\n // Only retake if we were showing a preview\n if (this.previewImage.getVisible()) {\n this.retakeImage();\n }\n }\n return this;\n }\n\n /**\n * Cleans up the hardware streams when the control is destroyed.\n */\n public exit(): void {\n this.stopCamera();\n super.exit();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CameraControl-dbg.js","names":["BaseHardwareControl","_interopRequireDefault","__BaseHardwareControl","Logger","___utils_Logger","CameraControl","renderer","metadata","properties","events","videoEl","mediaStream","init","videoHtml","HTML","content","afterRendering","onVideoRendered","bind","addStyleClass","previewImage","Image","width","visible","startBtn","Button","icon","text","press","handleStartCameraPress","captureBtn","captureImage","retakeBtn","retakeImage","vBox","VBox","items","setAggregation","domRef","getDomRef","val","getValue","startsWith","showPreview","getVisible","startCamera","setVisible","style","display","navigator","mediaDevices","getUserMedia","video","facingMode","srcObject","err","error","message","MessageToast","show","stopCamera","getTracks","forEach","track","stop","canvas","document","createElement","videoWidth","height","videoHeight","ctx","getContext","drawImage","dataUrl","toDataURL","setValueAndFire","setSrc","setValue","value","exit"],"sources":["CameraControl.ts"],"sourcesContent":["import BaseHardwareControl from \"./BaseHardwareControl\";\nimport Button from \"sap/m/Button\";\nimport VBox from \"sap/m/VBox\";\nimport HTML from \"sap/ui/core/HTML\";\nimport MessageToast from \"sap/m/MessageToast\";\nimport Image from \"sap/m/Image\";\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * CameraControl\n * Provides a live video feed to capture photos.\n */\nexport default class CameraControl extends BaseHardwareControl {\n static readonly renderer = \"nz.co.siliconst.ui5.metaui.controls.BaseHardwareControlRenderer\";\n static readonly metadata = {\n properties: {},\n events: {}\n };\n\n private startBtn!: Button;\n private vBox!: VBox;\n private captureBtn!: Button;\n private retakeBtn!: Button;\n private videoHtml!: HTML;\n private previewImage!: Image;\n \n private videoEl: HTMLVideoElement | null = null;\n private mediaStream: MediaStream | null = null;\n\n /**\n * Initializes the control and builds the internal camera UI.\n */\n public init(): void {\n super.init();\n\n this.videoHtml = new HTML({\n content: \"<video width='400' height='300' autoplay playsinline style='background-color: #000; display: none;'></video>\",\n afterRendering: this.onVideoRendered.bind(this)\n }).addStyleClass(\"sapUiSmallMarginBottom\");\n\n this.previewImage = new Image({\n width: \"400px\",\n visible: false\n }).addStyleClass(\"sapUiSmallMarginBottom\");\n\n this.startBtn = new Button({\n icon: \"sap-icon://video\",\n text: \"Start Camera\",\n press: this.handleStartCameraPress.bind(this)\n });\n\n this.captureBtn = new Button({\n icon: \"sap-icon://camera\",\n text: \"Capture\",\n visible: false,\n press: this.captureImage.bind(this)\n });\n\n this.retakeBtn = new Button({\n icon: \"sap-icon://undo\",\n text: \"Retake\",\n visible: false,\n press: this.retakeImage.bind(this)\n });\n\n this.vBox = new VBox({\n items: [this.videoHtml, this.previewImage, this.startBtn, this.captureBtn, this.retakeBtn]\n });\n\n this.setAggregation(\"_content\", this.vBox);\n }\n\n private async onVideoRendered(): void {\n const domRef = this.videoHtml.getDomRef() as HTMLElement;\n if (!domRef) return;\n \n this.videoEl = domRef as HTMLVideoElement;\n \n const val = this.getValue();\n if (val && typeof val === \"string\" && val.startsWith(\"data:image\")) {\n this.showPreview(val);\n } else if (this.captureBtn.getVisible() && this.videoHtml.getVisible()) {\n this.startCamera();\n }\n }\n\n private handleStartCameraPress(): void {\n this.startCamera();\n this.startBtn.setVisible(false);\n this.captureBtn.setVisible(true);\n if (this.videoEl) {\n this.videoEl.style.display = \"block\";\n }\n }\n\n private async startCamera(): Promise<void> {\n try {\n this.mediaStream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: \"environment\" } });\n if (this.videoEl) {\n this.videoEl.srcObject = this.mediaStream;\n }\n } catch (err) {\n Logger.error(\"Camera access denied or unavailable\", (err as Error).message, \"CameraControl\");\n MessageToast.show(\"Camera access denied or unavailable.\");\n }\n }\n\n private stopCamera(): void {\n if (this.mediaStream) {\n this.mediaStream.getTracks().forEach(track => track.stop());\n this.mediaStream = null;\n }\n }\n\n private captureImage(): void {\n if (!this.videoEl) return;\n \n const canvas = document.createElement(\"canvas\");\n canvas.width = this.videoEl.videoWidth || 400;\n canvas.height = this.videoEl.videoHeight || 300;\n \n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(this.videoEl, 0, 0, canvas.width, canvas.height);\n const dataUrl = canvas.toDataURL(\"image/jpeg\", 0.8);\n this.setValueAndFire(dataUrl);\n this.showPreview(dataUrl);\n MessageToast.show(\"Image captured successfully.\");\n }\n }\n\n private retakeImage(): void {\n this.setValueAndFire(null);\n this.previewImage.setVisible(false);\n this.videoHtml.setVisible(true);\n this.captureBtn.setVisible(true);\n this.retakeBtn.setVisible(false);\n \n // startCamera is now handled safely by onVideoRendered hook\n }\n\n private showPreview(dataUrl: string): void {\n this.stopCamera();\n this.videoHtml.setVisible(false);\n this.previewImage.setSrc(dataUrl);\n this.previewImage.setVisible(true);\n this.captureBtn.setVisible(false);\n this.retakeBtn.setVisible(true);\n }\n\n /**\n * Sets the value of the control programmatically.\n * @param value The base64 data URL string representing the image.\n */\n public setValue(value: unknown): this {\n super.setValue(value);\n if (value && typeof value === \"string\" && value.startsWith(\"data:image\")) {\n this.showPreview(value);\n } else if (!value) {\n // Only retake if we were showing a preview\n if (this.previewImage.getVisible()) {\n this.retakeImage();\n }\n }\n return this;\n }\n\n /**\n * Cleans up the hardware streams when the control is destroyed.\n */\n public exit(): void {\n this.stopCamera();\n super.exit();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -33,7 +33,7 @@ declare module "nz/co/siliconst/ui5/metaui/controls/CameraControl" {
33
33
  * Sets the value of the control programmatically.
34
34
  * @param value The base64 data URL string representing the image.
35
35
  */
36
- setValue(value: any): this;
36
+ setValue(value: unknown): this;
37
37
  /**
38
38
  * Cleans up the hardware streams when the control is destroyed.
39
39
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CameraControl.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,mDAAmD,CAAC;IACnE,OAAO,mBAAmB,MAAM,yDAAyD,CAAC;IAQ1F;;;OAGG;IACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,mBAAmB;QAC1D,MAAM,CAAC,QAAQ,CAAC,QAAQ,qEAAqE;QAC7F,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;UAGtB;QAEF,OAAO,CAAC,QAAQ,CAAU;QAC1B,OAAO,CAAC,IAAI,CAAQ;QACpB,OAAO,CAAC,UAAU,CAAU;QAC5B,OAAO,CAAC,SAAS,CAAU;QAC3B,OAAO,CAAC,SAAS,CAAQ;QACzB,OAAO,CAAC,YAAY,CAAS;QAE7B,OAAO,CAAC,OAAO,CAAiC;QAChD,OAAO,CAAC,WAAW,CAA4B;QAE/C;;WAEG;QACI,IAAI,IAAI,IAAI;gBAwCL,eAAe;QAY7B,OAAO,CAAC,sBAAsB;gBAShB,WAAW;QAYzB,OAAO,CAAC,UAAU;QAOlB,OAAO,CAAC,YAAY;QAiBpB,OAAO,CAAC,WAAW;QAWnB,OAAO,CAAC,WAAW;QASnB;;;WAGG;QACI,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;QAajC;;WAEG;QACI,IAAI,IAAI,IAAI;KAItB;CAEA"}
1
+ {"version":3,"file":"CameraControl.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,mDAAmD,CAAC;IACnE,OAAO,mBAAmB,MAAM,yDAAyD,CAAC;IAQ1F;;;OAGG;IACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,mBAAmB;QAC1D,MAAM,CAAC,QAAQ,CAAC,QAAQ,qEAAqE;QAC7F,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;UAGtB;QAEF,OAAO,CAAC,QAAQ,CAAU;QAC1B,OAAO,CAAC,IAAI,CAAQ;QACpB,OAAO,CAAC,UAAU,CAAU;QAC5B,OAAO,CAAC,SAAS,CAAU;QAC3B,OAAO,CAAC,SAAS,CAAQ;QACzB,OAAO,CAAC,YAAY,CAAS;QAE7B,OAAO,CAAC,OAAO,CAAiC;QAChD,OAAO,CAAC,WAAW,CAA4B;QAE/C;;WAEG;QACI,IAAI,IAAI,IAAI;gBAwCL,eAAe;QAc7B,OAAO,CAAC,sBAAsB;gBAShB,WAAW;QAYzB,OAAO,CAAC,UAAU;QAOlB,OAAO,CAAC,YAAY;QAiBpB,OAAO,CAAC,WAAW;QAUnB,OAAO,CAAC,WAAW;QASnB;;;WAGG;QACK,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;QAatC;;WAEG;QACI,IAAI,IAAI,IAAI;KAItB;CAEA"}
@@ -1,2 +1,2 @@
1
- sap.ui.define(["./BaseHardwareControl","sap/m/Button","sap/m/VBox","sap/ui/core/HTML","sap/m/MessageToast","sap/m/Image","../utils/Logger"],function(e,t,i,s,a,r,n){"use strict";function o(e){return e&&e.__esModule&&typeof e.default!=="undefined"?e.default:e}const l=o(e);const h=n["Logger"];class d extends l{static renderer="nz.co.siliconst.ui5.metaui.controls.BaseHardwareControlRenderer";static metadata={properties:{},events:{}};videoEl=null;mediaStream=null;init(){super.init();this.videoHtml=new s({content:"<video width='400' height='300' autoplay playsinline style='background-color: #000; display: none;'></video>",afterRendering:this.onVideoRendered.bind(this)}).addStyleClass("sapUiSmallMarginBottom");this.previewImage=new r({width:"400px",visible:false}).addStyleClass("sapUiSmallMarginBottom");this.startBtn=new t({icon:"sap-icon://video",text:"Start Camera",press:this.handleStartCameraPress.bind(this)});this.captureBtn=new t({icon:"sap-icon://camera",text:"Capture",visible:false,press:this.captureImage.bind(this)});this.retakeBtn=new t({icon:"sap-icon://undo",text:"Retake",visible:false,press:this.retakeImage.bind(this)});this.vBox=new i({items:[this.videoHtml,this.previewImage,this.startBtn,this.captureBtn,this.retakeBtn]});this.setAggregation("_content",this.vBox)}async onVideoRendered(){const e=this.videoHtml.getDomRef();if(!e)return;this.videoEl=e;const t=this.getValue();if(t&&typeof t==="string"&&t.startsWith("data:image")){this.showPreview(t)}}handleStartCameraPress(){this.startCamera();this.startBtn.setVisible(false);this.captureBtn.setVisible(true);if(this.videoEl){this.videoEl.style.display="block"}}async startCamera(){try{this.mediaStream=await navigator.mediaDevices.getUserMedia({video:{facingMode:"environment"}});if(this.videoEl){this.videoEl.srcObject=this.mediaStream}}catch(e){h.error("Camera access denied or unavailable",e.message,"CameraControl");a.show("Camera access denied or unavailable.")}}stopCamera(){if(this.mediaStream){this.mediaStream.getTracks().forEach(e=>e.stop());this.mediaStream=null}}captureImage(){if(!this.videoEl)return;const e=document.createElement("canvas");e.width=this.videoEl.videoWidth||400;e.height=this.videoEl.videoHeight||300;const t=e.getContext("2d");if(t){t.drawImage(this.videoEl,0,0,e.width,e.height);const i=e.toDataURL("image/jpeg",.8);this.setValueAndFire(i);this.showPreview(i);a.show("Image captured successfully.")}}retakeImage(){this.setValueAndFire(null);this.previewImage.setVisible(false);this.videoHtml.setVisible(true);this.captureBtn.setVisible(true);this.retakeBtn.setVisible(false);setTimeout(()=>this.startCamera(),100)}showPreview(e){this.stopCamera();this.videoHtml.setVisible(false);this.previewImage.setSrc(e);this.previewImage.setVisible(true);this.captureBtn.setVisible(false);this.retakeBtn.setVisible(true)}setValue(e){super.setValue(e);if(e&&typeof e==="string"&&e.startsWith("data:image")){this.showPreview(e)}else if(!e){if(this.previewImage.getVisible()){this.retakeImage()}}return this}exit(){this.stopCamera();super.exit()}}return d});
1
+ sap.ui.define(["./BaseHardwareControl","sap/m/Button","sap/m/VBox","sap/ui/core/HTML","sap/m/MessageToast","sap/m/Image","../utils/Logger"],function(e,t,i,s,a,r,n){"use strict";function o(e){return e&&e.__esModule&&typeof e.default!=="undefined"?e.default:e}const l=o(e);const h=n["Logger"];class d extends l{static renderer="nz.co.siliconst.ui5.metaui.controls.BaseHardwareControlRenderer";static metadata={properties:{},events:{}};videoEl=null;mediaStream=null;init(){super.init();this.videoHtml=new s({content:"<video width='400' height='300' autoplay playsinline style='background-color: #000; display: none;'></video>",afterRendering:this.onVideoRendered.bind(this)}).addStyleClass("sapUiSmallMarginBottom");this.previewImage=new r({width:"400px",visible:false}).addStyleClass("sapUiSmallMarginBottom");this.startBtn=new t({icon:"sap-icon://video",text:"Start Camera",press:this.handleStartCameraPress.bind(this)});this.captureBtn=new t({icon:"sap-icon://camera",text:"Capture",visible:false,press:this.captureImage.bind(this)});this.retakeBtn=new t({icon:"sap-icon://undo",text:"Retake",visible:false,press:this.retakeImage.bind(this)});this.vBox=new i({items:[this.videoHtml,this.previewImage,this.startBtn,this.captureBtn,this.retakeBtn]});this.setAggregation("_content",this.vBox)}async onVideoRendered(){const e=this.videoHtml.getDomRef();if(!e)return;this.videoEl=e;const t=this.getValue();if(t&&typeof t==="string"&&t.startsWith("data:image")){this.showPreview(t)}else if(this.captureBtn.getVisible()&&this.videoHtml.getVisible()){this.startCamera()}}handleStartCameraPress(){this.startCamera();this.startBtn.setVisible(false);this.captureBtn.setVisible(true);if(this.videoEl){this.videoEl.style.display="block"}}async startCamera(){try{this.mediaStream=await navigator.mediaDevices.getUserMedia({video:{facingMode:"environment"}});if(this.videoEl){this.videoEl.srcObject=this.mediaStream}}catch(e){h.error("Camera access denied or unavailable",e.message,"CameraControl");a.show("Camera access denied or unavailable.")}}stopCamera(){if(this.mediaStream){this.mediaStream.getTracks().forEach(e=>e.stop());this.mediaStream=null}}captureImage(){if(!this.videoEl)return;const e=document.createElement("canvas");e.width=this.videoEl.videoWidth||400;e.height=this.videoEl.videoHeight||300;const t=e.getContext("2d");if(t){t.drawImage(this.videoEl,0,0,e.width,e.height);const i=e.toDataURL("image/jpeg",.8);this.setValueAndFire(i);this.showPreview(i);a.show("Image captured successfully.")}}retakeImage(){this.setValueAndFire(null);this.previewImage.setVisible(false);this.videoHtml.setVisible(true);this.captureBtn.setVisible(true);this.retakeBtn.setVisible(false)}showPreview(e){this.stopCamera();this.videoHtml.setVisible(false);this.previewImage.setSrc(e);this.previewImage.setVisible(true);this.captureBtn.setVisible(false);this.retakeBtn.setVisible(true)}setValue(e){super.setValue(e);if(e&&typeof e==="string"&&e.startsWith("data:image")){this.showPreview(e)}else if(!e){if(this.previewImage.getVisible()){this.retakeImage()}}return this}exit(){this.stopCamera();super.exit()}}return d});
2
2
  //# sourceMappingURL=CameraControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CameraControl.js","names":["BaseHardwareControl","_interopRequireDefault","__BaseHardwareControl","Logger","___utils_Logger","CameraControl","static","properties","events","videoEl","mediaStream","init","super","this","videoHtml","HTML","content","afterRendering","onVideoRendered","bind","addStyleClass","previewImage","Image","width","visible","startBtn","Button","icon","text","press","handleStartCameraPress","captureBtn","captureImage","retakeBtn","retakeImage","vBox","VBox","items","setAggregation","domRef","getDomRef","val","getValue","startsWith","showPreview","startCamera","setVisible","style","display","navigator","mediaDevices","getUserMedia","video","facingMode","srcObject","err","error","message","MessageToast","show","stopCamera","getTracks","forEach","track","stop","canvas","document","createElement","videoWidth","height","videoHeight","ctx","getContext","drawImage","dataUrl","toDataURL","setValueAndFire","setTimeout","setSrc","setValue","value","getVisible","exit"],"sources":["CameraControl.ts"],"sourcesContent":["import BaseHardwareControl from \"./BaseHardwareControl\";\nimport Button from \"sap/m/Button\";\nimport VBox from \"sap/m/VBox\";\nimport HTML from \"sap/ui/core/HTML\";\nimport MessageToast from \"sap/m/MessageToast\";\nimport Image from \"sap/m/Image\";\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * CameraControl\n * Provides a live video feed to capture photos.\n */\nexport default class CameraControl extends BaseHardwareControl {\n static readonly renderer = \"nz.co.siliconst.ui5.metaui.controls.BaseHardwareControlRenderer\";\n static readonly metadata = {\n properties: {},\n events: {}\n };\n\n private startBtn!: Button;\n private vBox!: VBox;\n private captureBtn!: Button;\n private retakeBtn!: Button;\n private videoHtml!: HTML;\n private previewImage!: Image;\n \n private videoEl: HTMLVideoElement | null = null;\n private mediaStream: MediaStream | null = null;\n\n /**\n * Initializes the control and builds the internal camera UI.\n */\n public init(): void {\n super.init();\n\n this.videoHtml = new HTML({\n content: \"<video width='400' height='300' autoplay playsinline style='background-color: #000; display: none;'></video>\",\n afterRendering: this.onVideoRendered.bind(this)\n }).addStyleClass(\"sapUiSmallMarginBottom\");\n\n this.previewImage = new Image({\n width: \"400px\",\n visible: false\n }).addStyleClass(\"sapUiSmallMarginBottom\");\n\n this.startBtn = new Button({\n icon: \"sap-icon://video\",\n text: \"Start Camera\",\n press: this.handleStartCameraPress.bind(this)\n });\n\n this.captureBtn = new Button({\n icon: \"sap-icon://camera\",\n text: \"Capture\",\n visible: false,\n press: this.captureImage.bind(this)\n });\n\n this.retakeBtn = new Button({\n icon: \"sap-icon://undo\",\n text: \"Retake\",\n visible: false,\n press: this.retakeImage.bind(this)\n });\n\n this.vBox = new VBox({\n items: [this.videoHtml, this.previewImage, this.startBtn, this.captureBtn, this.retakeBtn]\n });\n\n this.setAggregation(\"_content\", this.vBox);\n }\n\n private async onVideoRendered(): void {\n const domRef = this.videoHtml.getDomRef() as HTMLElement;\n if (!domRef) return;\n \n this.videoEl = domRef as HTMLVideoElement;\n \n const val = this.getValue();\n if (val && typeof val === \"string\" && val.startsWith(\"data:image\")) {\n this.showPreview(val);\n }\n }\n\n private handleStartCameraPress(): void {\n this.startCamera();\n this.startBtn.setVisible(false);\n this.captureBtn.setVisible(true);\n if (this.videoEl) {\n this.videoEl.style.display = \"block\";\n }\n }\n\n private async startCamera(): Promise<void> {\n try {\n this.mediaStream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: \"environment\" } });\n if (this.videoEl) {\n this.videoEl.srcObject = this.mediaStream;\n }\n } catch (err) {\n Logger.error(\"Camera access denied or unavailable\", (err as Error).message, \"CameraControl\");\n MessageToast.show(\"Camera access denied or unavailable.\");\n }\n }\n\n private stopCamera(): void {\n if (this.mediaStream) {\n this.mediaStream.getTracks().forEach(track => track.stop());\n this.mediaStream = null;\n }\n }\n\n private captureImage(): void {\n if (!this.videoEl) return;\n \n const canvas = document.createElement(\"canvas\");\n canvas.width = this.videoEl.videoWidth || 400;\n canvas.height = this.videoEl.videoHeight || 300;\n \n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(this.videoEl, 0, 0, canvas.width, canvas.height);\n const dataUrl = canvas.toDataURL(\"image/jpeg\", 0.8);\n this.setValueAndFire(dataUrl);\n this.showPreview(dataUrl);\n MessageToast.show(\"Image captured successfully.\");\n }\n }\n\n private retakeImage(): void {\n this.setValueAndFire(null);\n this.previewImage.setVisible(false);\n this.videoHtml.setVisible(true);\n this.captureBtn.setVisible(true);\n this.retakeBtn.setVisible(false);\n \n // Use a slight timeout to ensure DOM is ready before accessing stream again\n setTimeout(() => this.startCamera(), 100);\n }\n\n private showPreview(dataUrl: string): void {\n this.stopCamera();\n this.videoHtml.setVisible(false);\n this.previewImage.setSrc(dataUrl);\n this.previewImage.setVisible(true);\n this.captureBtn.setVisible(false);\n this.retakeBtn.setVisible(true);\n }\n\n /**\n * Sets the value of the control programmatically.\n * @param value The base64 data URL string representing the image.\n */\n public setValue(value: any): this {\n super.setValue(value);\n if (value && typeof value === \"string\" && value.startsWith(\"data:image\")) {\n this.showPreview(value);\n } else if (!value) {\n // Only retake if we were showing a preview\n if (this.previewImage.getVisible()) {\n this.retakeImage();\n }\n }\n return this;\n }\n\n /**\n * Cleans up the hardware streams when the control is destroyed.\n */\n public exit(): void {\n this.stopCamera();\n super.exit();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CameraControl.js","names":["BaseHardwareControl","_interopRequireDefault","__BaseHardwareControl","Logger","___utils_Logger","CameraControl","static","properties","events","videoEl","mediaStream","init","super","this","videoHtml","HTML","content","afterRendering","onVideoRendered","bind","addStyleClass","previewImage","Image","width","visible","startBtn","Button","icon","text","press","handleStartCameraPress","captureBtn","captureImage","retakeBtn","retakeImage","vBox","VBox","items","setAggregation","domRef","getDomRef","val","getValue","startsWith","showPreview","getVisible","startCamera","setVisible","style","display","navigator","mediaDevices","getUserMedia","video","facingMode","srcObject","err","error","message","MessageToast","show","stopCamera","getTracks","forEach","track","stop","canvas","document","createElement","videoWidth","height","videoHeight","ctx","getContext","drawImage","dataUrl","toDataURL","setValueAndFire","setSrc","setValue","value","exit"],"sources":["CameraControl.ts"],"sourcesContent":["import BaseHardwareControl from \"./BaseHardwareControl\";\nimport Button from \"sap/m/Button\";\nimport VBox from \"sap/m/VBox\";\nimport HTML from \"sap/ui/core/HTML\";\nimport MessageToast from \"sap/m/MessageToast\";\nimport Image from \"sap/m/Image\";\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * CameraControl\n * Provides a live video feed to capture photos.\n */\nexport default class CameraControl extends BaseHardwareControl {\n static readonly renderer = \"nz.co.siliconst.ui5.metaui.controls.BaseHardwareControlRenderer\";\n static readonly metadata = {\n properties: {},\n events: {}\n };\n\n private startBtn!: Button;\n private vBox!: VBox;\n private captureBtn!: Button;\n private retakeBtn!: Button;\n private videoHtml!: HTML;\n private previewImage!: Image;\n \n private videoEl: HTMLVideoElement | null = null;\n private mediaStream: MediaStream | null = null;\n\n /**\n * Initializes the control and builds the internal camera UI.\n */\n public init(): void {\n super.init();\n\n this.videoHtml = new HTML({\n content: \"<video width='400' height='300' autoplay playsinline style='background-color: #000; display: none;'></video>\",\n afterRendering: this.onVideoRendered.bind(this)\n }).addStyleClass(\"sapUiSmallMarginBottom\");\n\n this.previewImage = new Image({\n width: \"400px\",\n visible: false\n }).addStyleClass(\"sapUiSmallMarginBottom\");\n\n this.startBtn = new Button({\n icon: \"sap-icon://video\",\n text: \"Start Camera\",\n press: this.handleStartCameraPress.bind(this)\n });\n\n this.captureBtn = new Button({\n icon: \"sap-icon://camera\",\n text: \"Capture\",\n visible: false,\n press: this.captureImage.bind(this)\n });\n\n this.retakeBtn = new Button({\n icon: \"sap-icon://undo\",\n text: \"Retake\",\n visible: false,\n press: this.retakeImage.bind(this)\n });\n\n this.vBox = new VBox({\n items: [this.videoHtml, this.previewImage, this.startBtn, this.captureBtn, this.retakeBtn]\n });\n\n this.setAggregation(\"_content\", this.vBox);\n }\n\n private async onVideoRendered(): void {\n const domRef = this.videoHtml.getDomRef() as HTMLElement;\n if (!domRef) return;\n \n this.videoEl = domRef as HTMLVideoElement;\n \n const val = this.getValue();\n if (val && typeof val === \"string\" && val.startsWith(\"data:image\")) {\n this.showPreview(val);\n } else if (this.captureBtn.getVisible() && this.videoHtml.getVisible()) {\n this.startCamera();\n }\n }\n\n private handleStartCameraPress(): void {\n this.startCamera();\n this.startBtn.setVisible(false);\n this.captureBtn.setVisible(true);\n if (this.videoEl) {\n this.videoEl.style.display = \"block\";\n }\n }\n\n private async startCamera(): Promise<void> {\n try {\n this.mediaStream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: \"environment\" } });\n if (this.videoEl) {\n this.videoEl.srcObject = this.mediaStream;\n }\n } catch (err) {\n Logger.error(\"Camera access denied or unavailable\", (err as Error).message, \"CameraControl\");\n MessageToast.show(\"Camera access denied or unavailable.\");\n }\n }\n\n private stopCamera(): void {\n if (this.mediaStream) {\n this.mediaStream.getTracks().forEach(track => track.stop());\n this.mediaStream = null;\n }\n }\n\n private captureImage(): void {\n if (!this.videoEl) return;\n \n const canvas = document.createElement(\"canvas\");\n canvas.width = this.videoEl.videoWidth || 400;\n canvas.height = this.videoEl.videoHeight || 300;\n \n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(this.videoEl, 0, 0, canvas.width, canvas.height);\n const dataUrl = canvas.toDataURL(\"image/jpeg\", 0.8);\n this.setValueAndFire(dataUrl);\n this.showPreview(dataUrl);\n MessageToast.show(\"Image captured successfully.\");\n }\n }\n\n private retakeImage(): void {\n this.setValueAndFire(null);\n this.previewImage.setVisible(false);\n this.videoHtml.setVisible(true);\n this.captureBtn.setVisible(true);\n this.retakeBtn.setVisible(false);\n \n // startCamera is now handled safely by onVideoRendered hook\n }\n\n private showPreview(dataUrl: string): void {\n this.stopCamera();\n this.videoHtml.setVisible(false);\n this.previewImage.setSrc(dataUrl);\n this.previewImage.setVisible(true);\n this.captureBtn.setVisible(false);\n this.retakeBtn.setVisible(true);\n }\n\n /**\n * Sets the value of the control programmatically.\n * @param value The base64 data URL string representing the image.\n */\n public setValue(value: unknown): this {\n super.setValue(value);\n if (value && typeof value === \"string\" && value.startsWith(\"data:image\")) {\n this.showPreview(value);\n } else if (!value) {\n // Only retake if we were showing a preview\n if (this.previewImage.getVisible()) {\n this.retakeImage();\n }\n }\n return this;\n }\n\n /**\n * Cleans up the hardware streams when the control is destroyed.\n */\n public exit(): void {\n this.stopCamera();\n super.exit();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -79,6 +79,8 @@ export default class CameraControl extends BaseHardwareControl {
79
79
  const val = this.getValue();
80
80
  if (val && typeof val === "string" && val.startsWith("data:image")) {
81
81
  this.showPreview(val);
82
+ } else if (this.captureBtn.getVisible() && this.videoHtml.getVisible()) {
83
+ this.startCamera();
82
84
  }
83
85
  }
84
86
 
@@ -134,8 +136,7 @@ export default class CameraControl extends BaseHardwareControl {
134
136
  this.captureBtn.setVisible(true);
135
137
  this.retakeBtn.setVisible(false);
136
138
 
137
- // Use a slight timeout to ensure DOM is ready before accessing stream again
138
- setTimeout(() => this.startCamera(), 100);
139
+ // startCamera is now handled safely by onVideoRendered hook
139
140
  }
140
141
 
141
142
  private showPreview(dataUrl: string): void {
@@ -151,7 +152,7 @@ export default class CameraControl extends BaseHardwareControl {
151
152
  * Sets the value of the control programmatically.
152
153
  * @param value The base64 data URL string representing the image.
153
154
  */
154
- public setValue(value: any): this {
155
+ public setValue(value: unknown): this {
155
156
  super.setValue(value);
156
157
  if (value && typeof value === "string" && value.startsWith("data:image")) {
157
158
  this.showPreview(value);
@@ -172,7 +172,7 @@ sap.ui.define(["sap/ui/core/Control", "./host/GeneratorHost", "../utils/Logger",
172
172
  const oContext = this.getBindingContext("odata") || this.getBindingContext();
173
173
  if (oContext) {
174
174
  Logger.debug("[MetaUI DynamicHost]", `Context found for delegate initialization: ${oContext.getPath()}`, "DynamicHost");
175
- if (typeof oContext.requestObject === "function" || typeof oContext.getObject === "function") {
175
+ if (oContext && oContext.requestObject && typeof oContext.requestObject === "function") {
176
176
  Logger.debug("[MetaUI DynamicHost]", `Context supports requestObject/getObject. Instantiating ODataDelegate.`, "DynamicHost");
177
177
  this.odataDelegate = new ODataDelegate(this, oContext);
178
178
  this.odataDelegate.syncToEngine();
@@ -201,9 +201,9 @@ sap.ui.define(["sap/ui/core/Control", "./host/GeneratorHost", "../utils/Logger",
201
201
  * Binds the element to the given path and attaches a change listener to re-evaluate
202
202
  * the OData delegate when the element binding resolves.
203
203
  *
204
- * @param {string | any} vPath The binding path or configuration object
205
- * @param {object} [mParameters] Optional binding parameters
206
- * @returns {this} The control instance for chaining
204
+ * @param {string | Record<string, unknown>} vPath The binding path or configuration object
205
+ * @param {object} [mParameters] Optional mapping parameters
206
+ * @returns {this} Reference to this instance for chaining
207
207
  */
208
208
  bindElement: function _bindElement(vPath, mParameters) {
209
209
  Control.prototype.bindElement.call(this, vPath, mParameters);
@@ -334,9 +334,12 @@ sap.ui.define(["sap/ui/core/Control", "./host/GeneratorHost", "../utils/Logger",
334
334
  * Ensures that querying the DynamicHost facade for `data` always yields the freshest payload.
335
335
  *
336
336
  * @param {string} propertyName The name of the property to retrieve
337
- * @returns {any} The property value
337
+ * @returns {unknown} The property value
338
338
  */
339
339
  getProperty: function _getProperty(propertyName) {
340
+ if (propertyName === "outputData") {
341
+ propertyName = "data"; // Forward deprecated outputData to data
342
+ }
340
343
  if (this._innerHost && (propertyName === "data" || propertyName === "dataJson")) {
341
344
  return this._innerHost.getProperty(propertyName);
342
345
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicHost-dbg.js","names":["GeneratorHost","_interopRequireDefault","__GeneratorHost","Logger","___utils_Logger","ODataDelegate","___host_delegates_ODataDelegate","DynamicHost","Control","extend","constructor","prototype","apply","arguments","_innerHost","odataDelegate","_initializedInner","renderer","apiVersion","render","rm","control","openStart","style","openEnd","content","getAggregation","renderControl","close","metadata","properties","schemaDefinition","type","defaultValue","data","bindable","dataJson","liveUpdate","isValid","useMessageManager","modelName","debugMode","editable","aggregations","_content","multiple","visibility","events","beforeSubmit","parameters","payload","addError","preventDefault","submit","payloadJson","cancel","fieldChange","fieldPath","value","validationStateChanged","validationError","message","validationSuccess","initODataDelegate","_initODataDelegate","oContext","getBindingContext","debug","getPath","requestObject","getObject","syncToEngine","Object","keys","setBindingContext","_setBindingContext","sModelName","Control.prototype.setBindingContext.call","bindElement","_bindElement","vPath","mParameters","Control.prototype.bindElement.call","model","undefined","oBinding","getElementBinding","attachChange","onBeforeRendering","_onBeforeRendering","schema","getProperty","hasSchema","hasData","props","getMetadata","getProperties","propName","val","Control.prototype.getProperty.call","setProperty","setAggregation","getEvents","eventName","attachEvent","oEvent","params","getParameters","Control.prototype.setProperty.call","str","JSON","stringify","handleFieldChange","fireEvent","_setProperty","propertyName","suppressInvalidate","openInDialog","_openInDialog","title","submitButtonText","cancelButtonText","triggerSubmit","_triggerSubmit","_getProperty"],"sources":["DynamicHost.ts"],"sourcesContent":["import Control from \"sap/ui/core/Control\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport GeneratorHost from \"./host/GeneratorHost\";\nimport { Logger } from \"../utils/Logger\";\nimport { ODataDelegate } from \"./host/delegates/ODataDelegate\";\n\n/**\n * A transparent wrapper control (Facade) that automatically chooses between Explicit Schema Mode \n * and Inference Mode based on the presence of a 'schemaDefinition'.\n * \n * This maintains total architectural separation of the modes without forcing developers to \n * use different XML tags.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nexport default class DynamicHost extends Control {\n private _innerHost: GeneratorHost | null = null;\n private odataDelegate: ODataDelegate | null = null;\n private _initializedInner: boolean = false;\n\n static readonly metadata = {\n properties: {\n schemaDefinition: { type: \"any\", defaultValue: null },\n data: { type: \"object\", defaultValue: null, bindable: \"bindable\" },\n dataJson: { type: \"string\", defaultValue: null, bindable: \"bindable\" },\n liveUpdate: { type: \"boolean\", defaultValue: false },\n isValid: { type: \"boolean\", defaultValue: true },\n useMessageManager: { type: \"boolean\", defaultValue: false },\n modelName: { type: \"string\", defaultValue: \"meta\" },\n debugMode: { type: \"boolean\", defaultValue: false },\n editable: { type: \"boolean\", defaultValue: true }\n },\n aggregations: {\n _content: { type: \"sap.ui.core.Control\", multiple: false, visibility: \"hidden\" }\n },\n events: {\n beforeSubmit: {\n parameters: {\n payload: { type: \"object\" },\n addError: { type: \"function\" },\n preventDefault: { type: \"function\" }\n }\n },\n submit: {\n parameters: {\n payload: { type: \"object\" },\n payloadJson: { type: \"string\" }\n }\n },\n cancel: {},\n fieldChange: {\n parameters: {\n fieldPath: { type: \"string\" },\n value: { type: \"any\" },\n payload: { type: \"object\" },\n isValid: { type: \"boolean\" }\n }\n },\n validationStateChanged: { parameters: { isValid: { type: \"boolean\" } } },\n validationError: { parameters: { fieldPath: { type: \"string\" }, message: { type: \"string\" } } },\n validationSuccess: { parameters: { fieldPath: { type: \"string\" } } }\n }\n };\n\n static renderer = {\n apiVersion: 2,\n render(rm: RenderManager, control: DynamicHost) {\n rm.openStart(\"div\", control);\n rm.style(\"width\", \"100%\");\n rm.style(\"height\", \"100%\");\n rm.openEnd();\n\n const content = control.getAggregation(\"_content\") as Control;\n if (content) {\n rm.renderControl(content);\n }\n\n rm.close(\"div\");\n }\n };\n\n /**\n * Internal reference to the generated inner host instance.\n * @private\n */\n private _innerHost: GeneratorHost | null = null;\n \n /**\n * Flag indicating if the inner host has been initialized.\n * @private\n */\n private _initializedInner: boolean = false;\n\n /**\n * Initializes the OData Delegate if an OData context is detected.\n * This allows DynamicHost to seamlessly synchronize metadata and properties from an OData model.\n * @private\n */\n private initODataDelegate(): void {\n if (!this.odataDelegate) {\n const oContext = this.getBindingContext(\"odata\") || this.getBindingContext();\n if (oContext) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context found for delegate initialization: ${oContext.getPath()}`, \"DynamicHost\");\n if (typeof (oContext as any).requestObject === \"function\" || typeof (oContext as any).getObject === \"function\") {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context supports requestObject/getObject. Instantiating ODataDelegate.`, \"DynamicHost\");\n this.odataDelegate = new ODataDelegate(this, oContext as any);\n this.odataDelegate.syncToEngine();\n } else {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context does NOT support requestObject/getObject! Keys: ${Object.keys(oContext)}`, \"DynamicHost\");\n }\n }\n }\n }\n\n /**\n * Standard UI5 method override.\n * Sets the binding context for the control and attempts to initialize the OData delegate\n * if the context points to an OData model.\n * \n * @param {sap.ui.model.Context | null | undefined} oContext The binding context object\n * @param {string} [sModelName] Optional model name\n * @returns {this} The control instance for chaining\n */\n public setBindingContext(oContext: sap.ui.model.Context | null | undefined, sModelName?: string): this {\n super.setBindingContext(oContext, sModelName);\n this.initODataDelegate();\n return this;\n }\n\n /**\n * Standard UI5 method override.\n * Binds the element to the given path and attaches a change listener to re-evaluate\n * the OData delegate when the element binding resolves.\n * \n * @param {string | any} vPath The binding path or configuration object\n * @param {object} [mParameters] Optional binding parameters\n * @returns {this} The control instance for chaining\n */\n public bindElement(vPath: string | any, mParameters?: object): this {\n super.bindElement(vPath, mParameters);\n const sModelName = typeof vPath === \"object\" ? vPath.model : undefined;\n const oBinding = this.getElementBinding(sModelName);\n if (oBinding) {\n oBinding.attachChange(() => {\n this.initODataDelegate();\n });\n }\n return this;\n }\n\n /**\n * Standard UI5 Lifecycle Hook.\n * Evaluates the initial properties and spawns the GeneratorHost.\n * It handles the complex lifecycle task of copying all bindings, raw properties, and event listeners \n * down to the inner host perfectly transparently.\n */\n public onBeforeRendering(): void {\n Logger.debug(\"[MetaUI DynamicHost]\", `onBeforeRendering called. _initializedInner: ${this._initializedInner}`, \"DynamicHost\");\n\n this.initODataDelegate();\n\n if (!this._initializedInner) {\n const schema = this.getProperty(\"schemaDefinition\");\n const dataJson = this.getProperty(\"dataJson\");\n const data = this.getProperty(\"data\");\n\n const hasSchema = !!schema;\n const hasData = !!dataJson || !!data;\n\n Logger.debug(\"[MetaUI DynamicHost]\", `Evaluating boot. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n\n // Only boot if we have either a schema or some data to infer from\n if (hasSchema || hasData) {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Booting inner host. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n }\n // The architectural Facade router logic:\n // We've simplified this! We no longer use HostFactory or separate subclasses.\n // GeneratorHost is fully capable of inferring the schema if none is provided.\n this._innerHost = new GeneratorHost();\n\n // 1. Forward all static values to the spawned host BEFORE mounting.\n // Since we no longer use bindProperty, it's perfectly safe to set raw properties before mounting.\n const props = this.getMetadata().getProperties();\n for (const propName in props) {\n const val = super.getProperty(propName);\n if (val !== null && val !== undefined) {\n this._innerHost.setProperty(propName, val);\n }\n }\n\n // 2. Mount so it inherits models and triggers lifecycle.\n this.setAggregation(\"_content\", this._innerHost);\n\n // 3. Forward all event subscriptions.\n // By proxying the events upwards, the developer can subscribe to `<meta:DynamicHost submit=\"...\">` \n // and perfectly receive the inner host's submission event.\n const events = this.getMetadata().getEvents();\n for (const eventName in events) {\n this._innerHost.attachEvent(eventName, (oEvent: any) => {\n // Natively push updated payload out to any bound Fiori Element properties.\n // Using super.setProperty prevents an infinite loop back down to _innerHost.\n if (eventName === \"submit\" || eventName === \"fieldChange\") {\n const params = oEvent.getParameters();\n if (params.payload) {\n super.setProperty(\"data\", params.payload, true);\n\n const str = params.payloadJson || JSON.stringify(params.payload, null, 2);\n super.setProperty(\"dataJson\", str, true);\n }\n if (eventName === \"fieldChange\" && this.odataDelegate) {\n this.odataDelegate.handleFieldChange(params.fieldPath, params.value);\n }\n }\n this.fireEvent(eventName, oEvent.getParameters());\n });\n }\n\n this._initializedInner = true;\n }\n }\n }\n\n /**\n * Overrides standard UI5 setProperty to act as a transparent proxy.\n * When a property is updated on the wrapper (either programmatically or via a binding update),\n * it instantly mirrors that value down to the inner instantiated host.\n */\n public setProperty(propertyName: string, value: unknown, suppressInvalidate?: boolean): this {\n if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Wrapper received setProperty: ${propertyName}`, \"DynamicHost\");\n }\n }\n super.setProperty(propertyName, value, suppressInvalidate);\n if (this._innerHost) {\n this._innerHost.setProperty(propertyName, value, suppressInvalidate);\n } else if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `_innerHost not yet initialized when ${propertyName} was set. Booting will happen on next render.`, \"DynamicHost\");\n }\n }\n return this;\n }\n\n\n\n\n\n /**\n * Programmatic API support. Routes dialog commands down to the spawned inner host.\n * If the inner host has not booted yet, it forces initialization immediately.\n * \n * @param {string} [title=\"Form\"] The title of the dialog\n * @param {string} [submitButtonText=\"OK\"] The text for the primary action button\n * @param {string} [cancelButtonText=\"Cancel\"] The text for the cancel button\n */\n public openInDialog(title?: string, submitButtonText?: string, cancelButtonText?: string): void {\n if (!this._innerHost) {\n this.onBeforeRendering(); // Force init if they bypassed UI5 rendering\n }\n this._innerHost?.openInDialog(title, submitButtonText, cancelButtonText);\n }\n\n /**\n * Proxies submission triggering down to the instantiated generator host.\n * Evaluates the internal Engine validation suite and returns true if structurally sound.\n * \n * @returns {boolean} True if the internal payload passes schema validation, false otherwise.\n */\n public triggerSubmit(): boolean {\n if (!this._innerHost) {\n return false;\n }\n return (this._innerHost as any).triggerSubmit();\n }\n\n /**\n * Overrides standard UI5 getProperty to transparently pull extracted data from the inner host.\n * Ensures that querying the DynamicHost facade for `data` always yields the freshest payload.\n * \n * @param {string} propertyName The name of the property to retrieve\n * @returns {any} The property value\n */\n public getProperty(propertyName: string): any {\n if (this._innerHost && (propertyName === \"data\" || propertyName === \"dataJson\")) {\n return this._innerHost.getProperty(propertyName);\n }\n return super.getProperty(propertyName);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DynamicHost-dbg.js","names":["GeneratorHost","_interopRequireDefault","__GeneratorHost","Logger","___utils_Logger","ODataDelegate","___host_delegates_ODataDelegate","DynamicHost","Control","extend","constructor","prototype","apply","arguments","_innerHost","odataDelegate","_initializedInner","renderer","apiVersion","render","rm","control","openStart","style","openEnd","content","getAggregation","renderControl","close","metadata","properties","schemaDefinition","type","defaultValue","data","bindable","dataJson","liveUpdate","isValid","useMessageManager","modelName","debugMode","editable","aggregations","_content","multiple","visibility","events","beforeSubmit","parameters","payload","addError","preventDefault","submit","payloadJson","cancel","fieldChange","fieldPath","value","validationStateChanged","validationError","message","validationSuccess","initODataDelegate","_initODataDelegate","oContext","getBindingContext","debug","getPath","requestObject","syncToEngine","Object","keys","setBindingContext","_setBindingContext","sModelName","Control.prototype.setBindingContext.call","bindElement","_bindElement","vPath","mParameters","Control.prototype.bindElement.call","model","undefined","oBinding","getElementBinding","attachChange","onBeforeRendering","_onBeforeRendering","schema","getProperty","hasSchema","hasData","props","getMetadata","getProperties","propName","val","Control.prototype.getProperty.call","setProperty","setAggregation","getEvents","eventName","attachEvent","oEvent","params","getParameters","Control.prototype.setProperty.call","str","JSON","stringify","handleFieldChange","fireEvent","_setProperty","propertyName","suppressInvalidate","openInDialog","_openInDialog","title","submitButtonText","cancelButtonText","triggerSubmit","_triggerSubmit","_getProperty"],"sources":["DynamicHost.ts"],"sourcesContent":["import Control from \"sap/ui/core/Control\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport GeneratorHost from \"./host/GeneratorHost\";\nimport { Logger } from \"../utils/Logger\";\nimport { ODataDelegate } from \"./host/delegates/ODataDelegate\";\nimport ODataV4Context from \"sap/ui/model/odata/v4/Context\";\n\n/**\n * A transparent wrapper control (Facade) that automatically chooses between Explicit Schema Mode \n * and Inference Mode based on the presence of a 'schemaDefinition'.\n * \n * This maintains total architectural separation of the modes without forcing developers to \n * use different XML tags.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nexport default class DynamicHost extends Control {\n private _innerHost: GeneratorHost | null = null;\n private odataDelegate: ODataDelegate | null = null;\n private _initializedInner: boolean = false;\n\n static readonly metadata = {\n properties: {\n schemaDefinition: { type: \"any\", defaultValue: null },\n data: { type: \"object\", defaultValue: null, bindable: \"bindable\" },\n dataJson: { type: \"string\", defaultValue: null, bindable: \"bindable\" },\n liveUpdate: { type: \"boolean\", defaultValue: false },\n isValid: { type: \"boolean\", defaultValue: true },\n useMessageManager: { type: \"boolean\", defaultValue: false },\n modelName: { type: \"string\", defaultValue: \"meta\" },\n debugMode: { type: \"boolean\", defaultValue: false },\n editable: { type: \"boolean\", defaultValue: true }\n },\n aggregations: {\n _content: { type: \"sap.ui.core.Control\", multiple: false, visibility: \"hidden\" }\n },\n events: {\n beforeSubmit: {\n parameters: {\n payload: { type: \"object\" },\n addError: { type: \"function\" },\n preventDefault: { type: \"function\" }\n }\n },\n submit: {\n parameters: {\n payload: { type: \"object\" },\n payloadJson: { type: \"string\" }\n }\n },\n cancel: {},\n fieldChange: {\n parameters: {\n fieldPath: { type: \"string\" },\n value: { type: \"any\" },\n payload: { type: \"object\" },\n isValid: { type: \"boolean\" }\n }\n },\n validationStateChanged: { parameters: { isValid: { type: \"boolean\" } } },\n validationError: { parameters: { fieldPath: { type: \"string\" }, message: { type: \"string\" } } },\n validationSuccess: { parameters: { fieldPath: { type: \"string\" } } }\n }\n };\n\n static renderer = {\n apiVersion: 2,\n render(rm: RenderManager, control: DynamicHost) {\n rm.openStart(\"div\", control);\n rm.style(\"width\", \"100%\");\n rm.style(\"height\", \"100%\");\n rm.openEnd();\n\n const content = control.getAggregation(\"_content\") as Control;\n if (content) {\n rm.renderControl(content);\n }\n\n rm.close(\"div\");\n }\n };\n\n /**\n * Internal reference to the generated inner host instance.\n * @private\n */\n private _innerHost: GeneratorHost | null = null;\n \n /**\n * Flag indicating if the inner host has been initialized.\n * @private\n */\n private _initializedInner: boolean = false;\n\n /**\n * Initializes the OData Delegate if an OData context is detected.\n * This allows DynamicHost to seamlessly synchronize metadata and properties from an OData model.\n * @private\n */\n private initODataDelegate(): void {\n if (!this.odataDelegate) {\n const oContext = this.getBindingContext(\"odata\") || this.getBindingContext();\n if (oContext) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context found for delegate initialization: ${oContext.getPath()}`, \"DynamicHost\");\n if (oContext && (oContext as ODataV4Context).requestObject && typeof (oContext as ODataV4Context).requestObject === \"function\") {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context supports requestObject/getObject. Instantiating ODataDelegate.`, \"DynamicHost\");\n this.odataDelegate = new ODataDelegate(this, oContext as ODataV4Context);\n this.odataDelegate.syncToEngine();\n } else {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context does NOT support requestObject/getObject! Keys: ${Object.keys(oContext)}`, \"DynamicHost\");\n }\n }\n }\n }\n\n /**\n * Standard UI5 method override.\n * Sets the binding context for the control and attempts to initialize the OData delegate\n * if the context points to an OData model.\n * \n * @param {sap.ui.model.Context | null | undefined} oContext The binding context object\n * @param {string} [sModelName] Optional model name\n * @returns {this} The control instance for chaining\n */\n public setBindingContext(oContext: sap.ui.model.Context | null | undefined, sModelName?: string): this {\n super.setBindingContext(oContext, sModelName);\n this.initODataDelegate();\n return this;\n }\n\n /**\n * Standard UI5 method override.\n * Binds the element to the given path and attaches a change listener to re-evaluate\n * the OData delegate when the element binding resolves.\n * \n * @param {string | Record<string, unknown>} vPath The binding path or configuration object\n * @param {object} [mParameters] Optional mapping parameters\n * @returns {this} Reference to this instance for chaining\n */\n public bindElement(vPath: string | Record<string, unknown>, mParameters?: object): this {\n super.bindElement(vPath, mParameters);\n const sModelName = typeof vPath === \"object\" ? vPath.model : undefined;\n const oBinding = this.getElementBinding(sModelName);\n if (oBinding) {\n oBinding.attachChange(() => {\n this.initODataDelegate();\n });\n }\n return this;\n }\n\n /**\n * Standard UI5 Lifecycle Hook.\n * Evaluates the initial properties and spawns the GeneratorHost.\n * It handles the complex lifecycle task of copying all bindings, raw properties, and event listeners \n * down to the inner host perfectly transparently.\n */\n public onBeforeRendering(): void {\n Logger.debug(\"[MetaUI DynamicHost]\", `onBeforeRendering called. _initializedInner: ${this._initializedInner}`, \"DynamicHost\");\n\n this.initODataDelegate();\n\n if (!this._initializedInner) {\n const schema = this.getProperty(\"schemaDefinition\");\n const dataJson = this.getProperty(\"dataJson\");\n const data = this.getProperty(\"data\");\n\n const hasSchema = !!schema;\n const hasData = !!dataJson || !!data;\n\n Logger.debug(\"[MetaUI DynamicHost]\", `Evaluating boot. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n\n // Only boot if we have either a schema or some data to infer from\n if (hasSchema || hasData) {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Booting inner host. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n }\n // The architectural Facade router logic:\n // We've simplified this! We no longer use HostFactory or separate subclasses.\n // GeneratorHost is fully capable of inferring the schema if none is provided.\n this._innerHost = new GeneratorHost();\n\n // 1. Forward all static values to the spawned host BEFORE mounting.\n // Since we no longer use bindProperty, it's perfectly safe to set raw properties before mounting.\n const props = this.getMetadata().getProperties();\n for (const propName in props) {\n const val = super.getProperty(propName);\n if (val !== null && val !== undefined) {\n this._innerHost.setProperty(propName, val);\n }\n }\n\n // 2. Mount so it inherits models and triggers lifecycle.\n this.setAggregation(\"_content\", this._innerHost);\n\n // 3. Forward all event subscriptions.\n // By proxying the events upwards, the developer can subscribe to `<meta:DynamicHost submit=\"...\">` \n // and perfectly receive the inner host's submission event.\n const events = this.getMetadata().getEvents();\n for (const eventName in events) {\n this._innerHost.attachEvent(eventName, (oEvent: sap.ui.base.Event) => {\n // Natively push updated payload out to any bound Fiori Element properties.\n // Using super.setProperty prevents an infinite loop back down to _innerHost.\n if (eventName === \"submit\" || eventName === \"fieldChange\") {\n const params = oEvent.getParameters();\n if (params.payload) {\n super.setProperty(\"data\", params.payload, true);\n\n const str = params.payloadJson || JSON.stringify(params.payload, null, 2);\n super.setProperty(\"dataJson\", str, true);\n }\n if (eventName === \"fieldChange\" && this.odataDelegate) {\n this.odataDelegate.handleFieldChange(params.fieldPath, params.value);\n }\n }\n this.fireEvent(eventName, oEvent.getParameters());\n });\n }\n\n this._initializedInner = true;\n }\n }\n }\n\n /**\n * Overrides standard UI5 setProperty to act as a transparent proxy.\n * When a property is updated on the wrapper (either programmatically or via a binding update),\n * it instantly mirrors that value down to the inner instantiated host.\n */\n public setProperty(propertyName: string, value: unknown, suppressInvalidate?: boolean): this {\n if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Wrapper received setProperty: ${propertyName}`, \"DynamicHost\");\n }\n }\n super.setProperty(propertyName, value, suppressInvalidate);\n if (this._innerHost) {\n this._innerHost.setProperty(propertyName, value, suppressInvalidate);\n } else if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `_innerHost not yet initialized when ${propertyName} was set. Booting will happen on next render.`, \"DynamicHost\");\n }\n }\n return this;\n }\n\n\n\n\n\n /**\n * Programmatic API support. Routes dialog commands down to the spawned inner host.\n * If the inner host has not booted yet, it forces initialization immediately.\n * \n * @param {string} [title=\"Form\"] The title of the dialog\n * @param {string} [submitButtonText=\"OK\"] The text for the primary action button\n * @param {string} [cancelButtonText=\"Cancel\"] The text for the cancel button\n */\n public openInDialog(title?: string, submitButtonText?: string, cancelButtonText?: string): void {\n if (!this._innerHost) {\n this.onBeforeRendering(); // Force init if they bypassed UI5 rendering\n }\n this._innerHost?.openInDialog(title, submitButtonText, cancelButtonText);\n }\n\n /**\n * Proxies submission triggering down to the instantiated generator host.\n * Evaluates the internal Engine validation suite and returns true if structurally sound.\n * \n * @returns {boolean} True if the internal payload passes schema validation, false otherwise.\n */\n public triggerSubmit(): boolean {\n if (!this._innerHost) {\n return false;\n }\n return this._innerHost.triggerSubmit();\n }\n\n /**\n * Overrides standard UI5 getProperty to transparently pull extracted data from the inner host.\n * Ensures that querying the DynamicHost facade for `data` always yields the freshest payload.\n * \n * @param {string} propertyName The name of the property to retrieve\n * @returns {unknown} The property value\n */\n public getProperty(propertyName: string): unknown {\n if (propertyName === \"outputData\") {\n propertyName = \"data\"; // Forward deprecated outputData to data\n }\n if (this._innerHost && (propertyName === \"data\" || propertyName === \"dataJson\")) {\n return this._innerHost.getProperty(propertyName);\n }\n return super.getProperty(propertyName);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -164,11 +164,11 @@ declare module "nz/co/siliconst/ui5/metaui/controls/DynamicHost" {
164
164
  * Binds the element to the given path and attaches a change listener to re-evaluate
165
165
  * the OData delegate when the element binding resolves.
166
166
  *
167
- * @param {string | any} vPath The binding path or configuration object
168
- * @param {object} [mParameters] Optional binding parameters
169
- * @returns {this} The control instance for chaining
167
+ * @param {string | Record<string, unknown>} vPath The binding path or configuration object
168
+ * @param {object} [mParameters] Optional mapping parameters
169
+ * @returns {this} Reference to this instance for chaining
170
170
  */
171
- bindElement(vPath: string | any, mParameters?: object): this;
171
+ bindElement(vPath: string | Record<string, unknown>, mParameters?: object): this;
172
172
  /**
173
173
  * Standard UI5 Lifecycle Hook.
174
174
  * Evaluates the initial properties and spawns the GeneratorHost.
@@ -203,9 +203,9 @@ declare module "nz/co/siliconst/ui5/metaui/controls/DynamicHost" {
203
203
  * Ensures that querying the DynamicHost facade for `data` always yields the freshest payload.
204
204
  *
205
205
  * @param {string} propertyName The name of the property to retrieve
206
- * @returns {any} The property value
206
+ * @returns {unknown} The property value
207
207
  */
208
- getProperty(propertyName: string): any;
208
+ getProperty(propertyName: string): unknown;
209
209
  }
210
210
  }
211
211
  //# sourceMappingURL=DynamicHost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicHost.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iDAAiD,CAAC;IACjE,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAC1C,OAAO,aAAa,MAAM,2BAA2B,CAAC;IAKtD;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;QAC5C,OAAO,CAAC,UAAU,CAA8B;QAChD,OAAO,CAAC,aAAa,CAA8B;QACnD,OAAO,CAAC,iBAAiB,CAAkB;QAE3C,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA0CtB;QAEF,MAAM,CAAC,QAAQ;;uBAEA,aAAa,WAAW,WAAW;UAahD;QAEF;;;WAGG;QACH,OAAO,CAAC,UAAU,CAA8B;QAEhD;;;WAGG;QACH,OAAO,CAAC,iBAAiB,CAAkB;QAE3C;;;;WAIG;QACH,OAAO,CAAC,iBAAiB;QAgBzB;;;;;;;;WAQG;QACI,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;QAMtG;;;;;;;;WAQG;QACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;QAYnE;;;;;WAKG;QACI,iBAAiB,IAAI,IAAI;QAmEhC;;;;WAIG;QACI,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,IAAI;QAqB5F;;;;;;;WAOG;QACI,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;QAO/F;;;;;WAKG;QACI,aAAa,IAAI,OAAO;QAO/B;;;;;;WAMG;QACI,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG;KAMhD;CAEA"}
1
+ {"version":3,"file":"DynamicHost.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iDAAiD,CAAC;IACjE,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAC1C,OAAO,aAAa,MAAM,2BAA2B,CAAC;IAMtD;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;QAC5C,OAAO,CAAC,UAAU,CAA8B;QAChD,OAAO,CAAC,aAAa,CAA8B;QACnD,OAAO,CAAC,iBAAiB,CAAkB;QAE3C,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA0CtB;QAEF,MAAM,CAAC,QAAQ;;uBAEA,aAAa,WAAW,WAAW;UAahD;QAEF;;;WAGG;QACH,OAAO,CAAC,UAAU,CAA8B;QAEhD;;;WAGG;QACH,OAAO,CAAC,iBAAiB,CAAkB;QAE3C;;;;WAIG;QACH,OAAO,CAAC,iBAAiB;QAgBzB;;;;;;;;WAQG;QACI,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;QAMtG;;;;;;;;WAQG;QACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;QAYvF;;;;;WAKG;QACI,iBAAiB,IAAI,IAAI;QAmEhC;;;;WAIG;QACI,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,IAAI;QAqB5F;;;;;;;WAOG;QACI,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;QAO/F;;;;;WAKG;QACI,aAAa,IAAI,OAAO;QAO/B;;;;;;WAMG;QACI,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;KASpD;CAEA"}
@@ -1,2 +1,2 @@
1
- sap.ui.define(["sap/ui/core/Control","./host/GeneratorHost","../utils/Logger","./host/delegates/ODataDelegate"],function(t,e,n,i){"use strict";function a(t){return t&&t.__esModule&&typeof t.default!=="undefined"?t.default:t}const o=a(e);const s=n["Logger"];const r=i["ODataDelegate"];const l=t.extend("nz.co.siliconst.ui5.metaui.controls.DynamicHost",{constructor:function e(){t.prototype.constructor.apply(this,arguments);this._innerHost=null;this.odataDelegate=null;this._initializedInner=false;this._innerHost=null;this._initializedInner=false},renderer:{apiVersion:2,render(t,e){t.openStart("div",e);t.style("width","100%");t.style("height","100%");t.openEnd();const n=e.getAggregation("_content");if(n){t.renderControl(n)}t.close("div")}},metadata:{properties:{schemaDefinition:{type:"any",defaultValue:null},data:{type:"object",defaultValue:null,bindable:"bindable"},dataJson:{type:"string",defaultValue:null,bindable:"bindable"},liveUpdate:{type:"boolean",defaultValue:false},isValid:{type:"boolean",defaultValue:true},useMessageManager:{type:"boolean",defaultValue:false},modelName:{type:"string",defaultValue:"meta"},debugMode:{type:"boolean",defaultValue:false},editable:{type:"boolean",defaultValue:true}},aggregations:{_content:{type:"sap.ui.core.Control",multiple:false,visibility:"hidden"}},events:{beforeSubmit:{parameters:{payload:{type:"object"},addError:{type:"function"},preventDefault:{type:"function"}}},submit:{parameters:{payload:{type:"object"},payloadJson:{type:"string"}}},cancel:{},fieldChange:{parameters:{fieldPath:{type:"string"},value:{type:"any"},payload:{type:"object"},isValid:{type:"boolean"}}},validationStateChanged:{parameters:{isValid:{type:"boolean"}}},validationError:{parameters:{fieldPath:{type:"string"},message:{type:"string"}}},validationSuccess:{parameters:{fieldPath:{type:"string"}}}}},initODataDelegate:function t(){if(!this.odataDelegate){const t=this.getBindingContext("odata")||this.getBindingContext();if(t){s.debug("[MetaUI DynamicHost]",`Context found for delegate initialization: ${t.getPath()}`,"DynamicHost");if(typeof t.requestObject==="function"||typeof t.getObject==="function"){s.debug("[MetaUI DynamicHost]",`Context supports requestObject/getObject. Instantiating ODataDelegate.`,"DynamicHost");this.odataDelegate=new r(this,t);this.odataDelegate.syncToEngine()}else{s.debug("[MetaUI DynamicHost]",`Context does NOT support requestObject/getObject! Keys: ${Object.keys(t)}`,"DynamicHost")}}}},setBindingContext:function e(n,i){t.prototype.setBindingContext.call(this,n,i);this.initODataDelegate();return this},bindElement:function e(n,i){t.prototype.bindElement.call(this,n,i);const a=typeof n==="object"?n.model:undefined;const o=this.getElementBinding(a);if(o){o.attachChange(()=>{this.initODataDelegate()})}return this},onBeforeRendering:function e(){s.debug("[MetaUI DynamicHost]",`onBeforeRendering called. _initializedInner: ${this._initializedInner}`,"DynamicHost");this.initODataDelegate();if(!this._initializedInner){const e=this.getProperty("schemaDefinition");const n=this.getProperty("dataJson");const i=this.getProperty("data");const a=!!e;const r=!!n||!!i;s.debug("[MetaUI DynamicHost]",`Evaluating boot. hasSchema: ${a}, hasData: ${r}`,"DynamicHost");if(a||r){if(this.getProperty("debugMode")){s.debug("[MetaUI DynamicHost]",`Booting inner host. hasSchema: ${a}, hasData: ${r}`,"DynamicHost")}this._innerHost=new o;const e=this.getMetadata().getProperties();for(const n in e){const e=t.prototype.getProperty.call(this,n);if(e!==null&&e!==undefined){this._innerHost.setProperty(n,e)}}this.setAggregation("_content",this._innerHost);const n=this.getMetadata().getEvents();for(const e in n){this._innerHost.attachEvent(e,n=>{if(e==="submit"||e==="fieldChange"){const i=n.getParameters();if(i.payload){t.prototype.setProperty.call(this,"data",i.payload,true);const e=i.payloadJson||JSON.stringify(i.payload,null,2);t.prototype.setProperty.call(this,"dataJson",e,true)}if(e==="fieldChange"&&this.odataDelegate){this.odataDelegate.handleFieldChange(i.fieldPath,i.value)}}this.fireEvent(e,n.getParameters())})}this._initializedInner=true}}},setProperty:function e(n,i,a){if(n==="data"||n==="dataJson"||n==="schemaDefinition"){if(this.getProperty("debugMode")){s.debug("[MetaUI DynamicHost]",`Wrapper received setProperty: ${n}`,"DynamicHost")}}t.prototype.setProperty.call(this,n,i,a);if(this._innerHost){this._innerHost.setProperty(n,i,a)}else if(n==="data"||n==="dataJson"||n==="schemaDefinition"){if(this.getProperty("debugMode")){s.debug("[MetaUI DynamicHost]",`_innerHost not yet initialized when ${n} was set. Booting will happen on next render.`,"DynamicHost")}}return this},openInDialog:function t(e,n,i){if(!this._innerHost){this.onBeforeRendering()}this._innerHost?.openInDialog(e,n,i)},triggerSubmit:function t(){if(!this._innerHost){return false}return this._innerHost.triggerSubmit()},getProperty:function e(n){if(this._innerHost&&(n==="data"||n==="dataJson")){return this._innerHost.getProperty(n)}return t.prototype.getProperty.call(this,n)}});return l});
1
+ sap.ui.define(["sap/ui/core/Control","./host/GeneratorHost","../utils/Logger","./host/delegates/ODataDelegate"],function(t,e,n,i){"use strict";function a(t){return t&&t.__esModule&&typeof t.default!=="undefined"?t.default:t}const o=a(e);const s=n["Logger"];const r=i["ODataDelegate"];const l=t.extend("nz.co.siliconst.ui5.metaui.controls.DynamicHost",{constructor:function e(){t.prototype.constructor.apply(this,arguments);this._innerHost=null;this.odataDelegate=null;this._initializedInner=false;this._innerHost=null;this._initializedInner=false},renderer:{apiVersion:2,render(t,e){t.openStart("div",e);t.style("width","100%");t.style("height","100%");t.openEnd();const n=e.getAggregation("_content");if(n){t.renderControl(n)}t.close("div")}},metadata:{properties:{schemaDefinition:{type:"any",defaultValue:null},data:{type:"object",defaultValue:null,bindable:"bindable"},dataJson:{type:"string",defaultValue:null,bindable:"bindable"},liveUpdate:{type:"boolean",defaultValue:false},isValid:{type:"boolean",defaultValue:true},useMessageManager:{type:"boolean",defaultValue:false},modelName:{type:"string",defaultValue:"meta"},debugMode:{type:"boolean",defaultValue:false},editable:{type:"boolean",defaultValue:true}},aggregations:{_content:{type:"sap.ui.core.Control",multiple:false,visibility:"hidden"}},events:{beforeSubmit:{parameters:{payload:{type:"object"},addError:{type:"function"},preventDefault:{type:"function"}}},submit:{parameters:{payload:{type:"object"},payloadJson:{type:"string"}}},cancel:{},fieldChange:{parameters:{fieldPath:{type:"string"},value:{type:"any"},payload:{type:"object"},isValid:{type:"boolean"}}},validationStateChanged:{parameters:{isValid:{type:"boolean"}}},validationError:{parameters:{fieldPath:{type:"string"},message:{type:"string"}}},validationSuccess:{parameters:{fieldPath:{type:"string"}}}}},initODataDelegate:function t(){if(!this.odataDelegate){const t=this.getBindingContext("odata")||this.getBindingContext();if(t){s.debug("[MetaUI DynamicHost]",`Context found for delegate initialization: ${t.getPath()}`,"DynamicHost");if(t&&t.requestObject&&typeof t.requestObject==="function"){s.debug("[MetaUI DynamicHost]",`Context supports requestObject/getObject. Instantiating ODataDelegate.`,"DynamicHost");this.odataDelegate=new r(this,t);this.odataDelegate.syncToEngine()}else{s.debug("[MetaUI DynamicHost]",`Context does NOT support requestObject/getObject! Keys: ${Object.keys(t)}`,"DynamicHost")}}}},setBindingContext:function e(n,i){t.prototype.setBindingContext.call(this,n,i);this.initODataDelegate();return this},bindElement:function e(n,i){t.prototype.bindElement.call(this,n,i);const a=typeof n==="object"?n.model:undefined;const o=this.getElementBinding(a);if(o){o.attachChange(()=>{this.initODataDelegate()})}return this},onBeforeRendering:function e(){s.debug("[MetaUI DynamicHost]",`onBeforeRendering called. _initializedInner: ${this._initializedInner}`,"DynamicHost");this.initODataDelegate();if(!this._initializedInner){const e=this.getProperty("schemaDefinition");const n=this.getProperty("dataJson");const i=this.getProperty("data");const a=!!e;const r=!!n||!!i;s.debug("[MetaUI DynamicHost]",`Evaluating boot. hasSchema: ${a}, hasData: ${r}`,"DynamicHost");if(a||r){if(this.getProperty("debugMode")){s.debug("[MetaUI DynamicHost]",`Booting inner host. hasSchema: ${a}, hasData: ${r}`,"DynamicHost")}this._innerHost=new o;const e=this.getMetadata().getProperties();for(const n in e){const e=t.prototype.getProperty.call(this,n);if(e!==null&&e!==undefined){this._innerHost.setProperty(n,e)}}this.setAggregation("_content",this._innerHost);const n=this.getMetadata().getEvents();for(const e in n){this._innerHost.attachEvent(e,n=>{if(e==="submit"||e==="fieldChange"){const i=n.getParameters();if(i.payload){t.prototype.setProperty.call(this,"data",i.payload,true);const e=i.payloadJson||JSON.stringify(i.payload,null,2);t.prototype.setProperty.call(this,"dataJson",e,true)}if(e==="fieldChange"&&this.odataDelegate){this.odataDelegate.handleFieldChange(i.fieldPath,i.value)}}this.fireEvent(e,n.getParameters())})}this._initializedInner=true}}},setProperty:function e(n,i,a){if(n==="data"||n==="dataJson"||n==="schemaDefinition"){if(this.getProperty("debugMode")){s.debug("[MetaUI DynamicHost]",`Wrapper received setProperty: ${n}`,"DynamicHost")}}t.prototype.setProperty.call(this,n,i,a);if(this._innerHost){this._innerHost.setProperty(n,i,a)}else if(n==="data"||n==="dataJson"||n==="schemaDefinition"){if(this.getProperty("debugMode")){s.debug("[MetaUI DynamicHost]",`_innerHost not yet initialized when ${n} was set. Booting will happen on next render.`,"DynamicHost")}}return this},openInDialog:function t(e,n,i){if(!this._innerHost){this.onBeforeRendering()}this._innerHost?.openInDialog(e,n,i)},triggerSubmit:function t(){if(!this._innerHost){return false}return this._innerHost.triggerSubmit()},getProperty:function e(n){if(n==="outputData"){n="data"}if(this._innerHost&&(n==="data"||n==="dataJson")){return this._innerHost.getProperty(n)}return t.prototype.getProperty.call(this,n)}});return l});
2
2
  //# sourceMappingURL=DynamicHost.js.map