@siliconst/metaui 1.4.21 → 1.4.37

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 (555) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js +22 -20
  4. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js.map +1 -1
  5. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts +3 -3
  6. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts.map +1 -1
  7. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js +1 -1
  8. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js.map +1 -1
  9. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.ts +24 -16
  10. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js.map +1 -1
  11. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js.map +1 -1
  12. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.ts +2 -2
  13. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js +111 -0
  14. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js.map +1 -0
  15. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts +95 -0
  16. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts.map +1 -0
  17. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js +2 -0
  18. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js.map +1 -0
  19. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.ts +101 -0
  20. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -1
  21. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -1
  22. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +1 -1
  23. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -1
  24. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts.map +1 -1
  25. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -1
  26. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +2 -1
  27. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +2 -2
  28. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -1
  29. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +1 -1
  30. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -1
  31. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +3 -3
  32. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +47 -47
  33. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  34. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +6 -2
  35. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  37. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  38. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +62 -66
  39. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +0 -9
  40. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +0 -9
  42. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +1 -1
  44. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -1
  45. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +3 -9
  46. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +0 -11
  47. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -1
  48. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +0 -11
  49. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +1 -1
  51. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -1
  52. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +2 -9
  53. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +2 -7
  54. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -1
  55. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +0 -5
  56. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -1
  57. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +1 -1
  58. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +3 -7
  60. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +1 -6
  61. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +0 -5
  63. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -1
  64. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +1 -1
  65. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -1
  66. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +9 -12
  67. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +170 -74
  68. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +29 -4
  70. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  71. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +179 -79
  74. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +41 -38
  75. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +5 -3
  77. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  78. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  80. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +46 -38
  81. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +41 -2
  82. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  83. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +6 -2
  84. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  85. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  87. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +47 -2
  88. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js.map +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +1 -1
  90. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -1
  91. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +8 -7
  93. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +7 -2
  94. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  95. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +5 -2
  96. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
  97. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  99. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +10 -5
  100. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +215 -38
  101. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  102. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +21 -3
  103. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +218 -40
  107. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js +86 -0
  108. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js.map +1 -0
  109. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts +16 -0
  110. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts.map +1 -0
  111. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js +2 -0
  112. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js.map +1 -0
  113. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.ts +82 -0
  114. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js +142 -0
  115. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js.map +1 -0
  116. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts +24 -0
  117. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts.map +1 -0
  118. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js +2 -0
  119. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js.map +1 -0
  120. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.ts +147 -0
  121. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +8 -0
  122. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -1
  123. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -1
  124. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -1
  126. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +7 -0
  127. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +153 -50
  128. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  129. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +15 -0
  130. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  131. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  132. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  133. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +164 -53
  134. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js +310 -0
  135. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js.map +1 -0
  136. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.d.ts +73 -0
  137. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.d.ts.map +1 -0
  138. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.js +2 -0
  139. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.js.map +1 -0
  140. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.ts +307 -0
  141. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +35 -14
  142. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  143. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  144. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  145. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +40 -15
  147. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +15 -3
  148. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -1
  150. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +1 -1
  151. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
  152. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +15 -1
  153. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +82 -16
  154. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  155. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +16 -0
  156. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  157. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js +1 -1
  158. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  159. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +89 -17
  160. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
  161. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +12 -1
  162. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
  163. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +13 -1
  164. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin-dbg.js +2 -0
  165. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin-dbg.js.map +1 -0
  166. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.d.ts +50 -0
  167. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.d.ts.map +1 -0
  168. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.js +2 -0
  169. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.js.map +1 -0
  170. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.ts +49 -0
  171. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  172. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +23 -1
  173. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  174. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +27 -1
  175. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +31 -36
  176. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  177. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  178. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
  179. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  180. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +26 -29
  181. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +47 -11
  182. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  183. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
  184. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  185. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  186. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +48 -12
  187. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +74 -58
  188. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  189. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js +3 -2
  190. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js.map +1 -1
  191. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts.map +1 -1
  192. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js +1 -1
  193. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js.map +1 -1
  194. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts +3 -2
  195. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.map +1 -1
  196. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js.map +1 -1
  197. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.ts +3 -3
  198. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js +2 -1
  199. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js.map +1 -1
  200. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts +1 -1
  201. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts.map +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js +1 -1
  203. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js.map +1 -1
  204. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.ts +4 -3
  205. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js +2 -2
  206. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js.map +1 -1
  207. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js.map +1 -1
  208. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.ts +2 -2
  209. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js +12 -8
  210. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js.map +1 -1
  211. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts.map +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js +1 -1
  213. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js.map +1 -1
  214. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts +15 -11
  215. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js +20 -12
  216. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js.map +1 -1
  217. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts +4 -4
  218. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts.map +1 -1
  219. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js +1 -1
  220. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js.map +1 -1
  221. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.ts +24 -16
  222. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js +18 -11
  223. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js.map +1 -1
  224. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts +4 -4
  225. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts.map +1 -1
  226. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js.map +1 -1
  228. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.ts +22 -15
  229. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js +24 -100
  230. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js.map +1 -1
  231. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts +8 -72
  232. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts.map +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js +1 -1
  234. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js.map +1 -1
  235. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts +45 -108
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -1
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -1
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +2 -1
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +24 -18
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +1 -1
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +23 -21
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +5 -5
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +1 -1
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -1
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +7 -7
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +129 -9
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +46 -10
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +145 -15
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +35 -14
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +1 -1
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +38 -14
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +4 -4
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +1 -1
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -1
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +5 -5
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +69 -20
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +2 -1
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -1
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +77 -21
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +3 -3
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +1 -1
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +5 -5
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +3 -3
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +1 -1
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +5 -5
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js +1 -0
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js.map +1 -1
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts.map +1 -1
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js +1 -1
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js.map +1 -1
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.ts +6 -5
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +8 -3
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +1 -1
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +10 -5
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js +3 -3
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js.map +1 -1
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts +1 -1
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts.map +1 -1
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js +1 -1
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js.map +1 -1
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.ts +4 -4
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +3 -3
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +1 -1
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +5 -5
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +4 -4
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +1 -1
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +5 -5
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js +3 -3
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js.map +1 -1
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts +1 -1
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts.map +1 -1
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js +1 -1
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js.map +1 -1
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.ts +4 -4
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +1 -1
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -1
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +7 -6
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts +1 -1
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +9 -8
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +2 -2
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +1 -1
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +3 -3
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +36 -21
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +1 -1
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +40 -23
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +9 -6
  364. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
  365. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +1 -1
  366. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
  367. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +1 -1
  368. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
  369. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +10 -8
  370. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js +3 -3
  371. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js.map +1 -1
  372. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts +1 -1
  373. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts.map +1 -1
  374. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js +1 -1
  375. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js.map +1 -1
  376. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.ts +4 -4
  377. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +3 -3
  378. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  379. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +1 -1
  380. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  381. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  382. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  383. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +5 -5
  384. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +29 -12
  385. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js.map +1 -1
  386. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts +5 -1
  387. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts.map +1 -1
  388. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js +1 -1
  389. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js.map +1 -1
  390. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts +30 -10
  391. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +4 -4
  392. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  393. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +1 -1
  394. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -1
  395. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  396. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  397. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +5 -5
  398. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +4 -4
  399. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  400. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +1 -1
  401. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -1
  402. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  403. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  404. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +5 -5
  405. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +3 -3
  406. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  407. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +1 -1
  408. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  409. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  410. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  411. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +4 -4
  412. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +3 -3
  413. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -1
  414. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts +1 -1
  415. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts.map +1 -1
  416. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +1 -1
  417. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -1
  418. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +5 -5
  419. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +3 -3
  420. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  421. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +1 -1
  422. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -1
  423. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  424. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  425. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +4 -4
  426. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +2 -2
  427. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  428. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +1 -1
  429. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  430. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  431. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  432. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +3 -3
  433. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +58 -56
  434. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  435. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +2 -5
  436. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -1
  437. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  438. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  439. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +66 -55
  440. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +3 -3
  441. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  442. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +1 -1
  443. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  444. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  445. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  446. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +4 -4
  447. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +4 -4
  448. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  449. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +1 -1
  450. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  451. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  452. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  453. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +5 -5
  454. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
  455. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts.map +1 -1
  456. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
  457. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +5 -3
  458. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +2 -1
  459. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -1
  460. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -1
  461. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js +1 -1
  462. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -1
  463. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +6 -3
  464. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +30 -9
  465. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -1
  466. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +2 -2
  467. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -1
  468. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js +1 -1
  469. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -1
  470. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +41 -13
  471. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
  472. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts.map +1 -1
  473. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
  474. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +5 -3
  475. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin-dbg.js +41 -0
  476. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin-dbg.js.map +1 -0
  477. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.d.ts +24 -0
  478. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.d.ts.map +1 -0
  479. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.js +2 -0
  480. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.js.map +1 -0
  481. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.ts +34 -0
  482. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin-dbg.js +41 -0
  483. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin-dbg.js.map +1 -0
  484. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.d.ts +24 -0
  485. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.d.ts.map +1 -0
  486. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.js +2 -0
  487. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.js.map +1 -0
  488. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.ts +34 -0
  489. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin-dbg.js +52 -0
  490. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin-dbg.js.map +1 -0
  491. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.d.ts +30 -0
  492. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.d.ts.map +1 -0
  493. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.js +2 -0
  494. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.js.map +1 -0
  495. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.ts +45 -0
  496. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin-dbg.js +52 -0
  497. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin-dbg.js.map +1 -0
  498. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.d.ts +30 -0
  499. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.d.ts.map +1 -0
  500. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.js +2 -0
  501. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.js.map +1 -0
  502. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.ts +45 -0
  503. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin-dbg.js +41 -0
  504. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin-dbg.js.map +1 -0
  505. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.d.ts +24 -0
  506. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.d.ts.map +1 -0
  507. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.js +2 -0
  508. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.js.map +1 -0
  509. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.ts +34 -0
  510. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin-dbg.js +40 -0
  511. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin-dbg.js.map +1 -0
  512. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.d.ts +28 -0
  513. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.d.ts.map +1 -0
  514. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.js +2 -0
  515. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.js.map +1 -0
  516. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.ts +34 -0
  517. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin-dbg.js +40 -0
  518. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin-dbg.js.map +1 -0
  519. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.d.ts +28 -0
  520. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.d.ts.map +1 -0
  521. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.js +2 -0
  522. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.js.map +1 -0
  523. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.ts +34 -0
  524. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin-dbg.js +40 -0
  525. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin-dbg.js.map +1 -0
  526. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.d.ts +28 -0
  527. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.d.ts.map +1 -0
  528. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.js +2 -0
  529. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.js.map +1 -0
  530. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.ts +34 -0
  531. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin-dbg.js +40 -0
  532. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin-dbg.js.map +1 -0
  533. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.d.ts +28 -0
  534. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.d.ts.map +1 -0
  535. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.js +2 -0
  536. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.js.map +1 -0
  537. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.ts +34 -0
  538. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider-dbg.js +33 -0
  539. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider-dbg.js.map +1 -0
  540. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.d.ts +14 -0
  541. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.d.ts.map +1 -0
  542. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.js +2 -0
  543. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.js.map +1 -0
  544. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.ts +24 -0
  545. package/src/nz/co/siliconst/ui5/metaui/utils/Logger-dbg.js.map +1 -1
  546. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts.map +1 -1
  547. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js.map +1 -1
  548. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.ts +1 -1
  549. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +0 -75
  550. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +0 -1
  551. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +0 -47
  552. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +0 -1
  553. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +0 -2
  554. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +0 -1
  555. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +0 -72
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @file MetaUIConstants.ts
3
+ * @description Centralized registry of all core architectural string constants to prevent magic strings.
4
+ */
5
+
6
+ /**
7
+ * Defines the physical layout rendering mode of a schema node.
8
+ */
9
+ export const RENDER_MODE = {
10
+ INLINE: "inline",
11
+ DIALOG: "dialog"
12
+ } as const;
13
+
14
+ export type RenderModeType = typeof RENDER_MODE[keyof typeof RENDER_MODE];
15
+
16
+ /**
17
+ * Standard JSON schema and MetaUI extended types.
18
+ */
19
+ export const SCHEMA_TYPE = {
20
+ OBJECT: "object",
21
+ ARRAY: "array",
22
+ STRING: "string",
23
+ NUMBER: "number",
24
+ INTEGER: "integer",
25
+ BOOLEAN: "boolean",
26
+ DATE: "date"
27
+ } as const;
28
+
29
+ export type SchemaTypeType = typeof SCHEMA_TYPE[keyof typeof SCHEMA_TYPE];
30
+
31
+ /**
32
+ * Common widget types injected into schema metadata.
33
+ */
34
+ export const WIDGET_TYPE = {
35
+ REFERENCE: "reference",
36
+ DICTIONARY_MAP: "dictionaryMap",
37
+ TIME: "time",
38
+ DATETIME: "datetime",
39
+ SWITCH: "switch",
40
+ STEP: "step",
41
+ SELECT: "select",
42
+ TEXT_AREA: "textArea",
43
+ CODE_EDITOR: "codeEditor",
44
+ LINK: "link",
45
+ PASSWORD: "password",
46
+ EMAIL: "email",
47
+ FILE_UPLOADER: "fileUploader",
48
+ MULTI_SELECT: "multiSelect",
49
+ MULTI_INPUT: "multiInput",
50
+ SLIDER: "slider",
51
+ RATING: "rating",
52
+ MESSAGE_STRIP: "messageStrip",
53
+ CAMERA: "camera",
54
+ SIGNATURE: "signature",
55
+ LOCATION: "location",
56
+ SCANNER: "scanner",
57
+ VOICE_INPUT: "voiceInput",
58
+ RICH_TEXT: "richText",
59
+ URL_BUTTON: "urlButton",
60
+ SUBMIT_BUTTON: "submitButton",
61
+ ODATA_SELECT: "odataSelect",
62
+ REMOTE_DROPDOWN: "remoteDropdown",
63
+ LIVE_SEARCH: "liveSearch",
64
+ REMOTE_VALUE_HELP: "remoteValueHelp"
65
+ } as const;
66
+
67
+ /**
68
+ * Layout strategies for the core engine.
69
+ */
70
+ export const LAYOUT_STRATEGY = {
71
+ FORM: "form",
72
+ TABLE: "table",
73
+ WIZARD: "wizard",
74
+ COMPACT: "compact"
75
+ } as const;
76
+
77
+ /**
78
+ * Standard UI5 Event names used by the framework.
79
+ */
80
+ export const UI5_EVENT = {
81
+ SUBMIT: "submit",
82
+ CHANGE: "change",
83
+ PRESS: "press",
84
+ LIVE_CHANGE: "liveChange"
85
+ } as const;
86
+
87
+ /**
88
+ * Standard UI5 Aggregation names used by the framework.
89
+ */
90
+ export const UI5_AGGREGATION = {
91
+ TOKENS: "tokens",
92
+ ITEMS: "items"
93
+ } as const;
94
+
95
+ /**
96
+ * Prefix strings for OpenAPI schema references.
97
+ */
98
+ export const OPENAPI_PREFIX = {
99
+ DEFINITIONS: "#/definitions/",
100
+ COMPONENTS_SCHEMAS: "#/components/schemas/"
101
+ } as const;
@@ -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 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":[]}
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":[]}
@@ -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 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":[]}
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":[]}
@@ -7,7 +7,7 @@
7
7
 
8
8
  import Control from "sap/ui/core/Control";
9
9
  import RenderManager from "sap/ui/core/RenderManager";
10
- import { IPropertyMetadata } from "../../interfaces/ISchema";
10
+ import { IPropertyMetadata } from "../interfaces/ISchema";
11
11
  import BaseHardwareControlRenderer from "./BaseHardwareControlRenderer";
12
12
 
13
13
  /**
@@ -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.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
+ {"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\nimport Control from \"sap/ui/core/Control\";\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 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,GAUe;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,CAAY;MAC7D,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.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iEAAiE,CAAC;IACjF;;;;;OAKG;IACH,OAAO,aAAa,MAAM,2BAA2B,CAAC;IACtD,OAAO,mBAAmB,MAAM,yDAAyD,CAAC;;;qBAIhE,aAAa,WAAW,mBAAmB;;IAFrE,wBAkBE;CAED"}
1
+ {"version":3,"file":"BaseHardwareControlRenderer.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iEAAiE,CAAC;IACjF;;;;;OAKG;IACH,OAAO,aAAa,MAAM,2BAA2B,CAAC;IACtD,OAAO,mBAAmB,MAAM,yDAAyD,CAAC;;;qBAKhE,aAAa,WAAW,mBAAmB;;IAFrE,wBAkBE;CAED"}
@@ -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.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":[]}
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\nimport Control from \"sap/ui/core/Control\";\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 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,EAUe,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":[]}
@@ -7,6 +7,7 @@
7
7
  import RenderManager from "sap/ui/core/RenderManager";
8
8
  import BaseHardwareControl from "./BaseHardwareControl";
9
9
 
10
+ import Control from "sap/ui/core/Control";
10
11
  export default {
11
12
  apiVersion: 2,
12
13
  render: function (rm: RenderManager, control: BaseHardwareControl) {
@@ -14,7 +15,7 @@ export default {
14
15
  rm.class("sapUiSmallMarginBottom");
15
16
  rm.openEnd();
16
17
 
17
- const content = control.getAggregation("_content") as sap.ui.core.Control;
18
+ const content = control.getAggregation("_content") as Control;
18
19
  if (content) {
19
20
  rm.renderControl(content);
20
21
  }
@@ -58,7 +58,7 @@ sap.ui.define(["./BaseHardwareControl", "sap/m/Button", "sap/m/VBox", "sap/ui/co
58
58
  const domRef = this.videoHtml.getDomRef();
59
59
  if (!domRef) return;
60
60
  this.videoEl = domRef;
61
- const val = this.getValue();
61
+ const val = this.getProperty("value");
62
62
  if (val && typeof val === "string" && val.startsWith("data:image")) {
63
63
  this.showPreview(val);
64
64
  } else if (this.captureBtn.getVisible() && this.videoHtml.getVisible()) {
@@ -131,7 +131,7 @@ sap.ui.define(["./BaseHardwareControl", "sap/m/Button", "sap/m/VBox", "sap/ui/co
131
131
  * @param value The base64 data URL string representing the image.
132
132
  */
133
133
  setValue(value) {
134
- super.setValue(value);
134
+ super.setProperty("value", value);
135
135
  if (value && typeof value === "string" && value.startsWith("data:image")) {
136
136
  this.showPreview(value);
137
137
  } else if (!value) {
@@ -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","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":[]}
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","getProperty","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","setProperty","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(): Promise<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.getProperty(\"value\");\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.setProperty(\"value\", 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,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)}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});
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.getProperty("value");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.setProperty("value",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","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":[]}
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","getProperty","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","setProperty","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(): Promise<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.getProperty(\"value\");\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.setProperty(\"value\", 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":[]}
@@ -70,13 +70,13 @@ export default class CameraControl extends BaseHardwareControl {
70
70
  this.setAggregation("_content", this.vBox);
71
71
  }
72
72
 
73
- private async onVideoRendered(): void {
73
+ private async onVideoRendered(): Promise<void> {
74
74
  const domRef = this.videoHtml.getDomRef() as HTMLElement;
75
75
  if (!domRef) return;
76
76
 
77
77
  this.videoEl = domRef as HTMLVideoElement;
78
78
 
79
- const val = this.getValue();
79
+ const val = this.getProperty("value");
80
80
  if (val && typeof val === "string" && val.startsWith("data:image")) {
81
81
  this.showPreview(val);
82
82
  } else if (this.captureBtn.getVisible() && this.videoHtml.getVisible()) {
@@ -153,7 +153,7 @@ export default class CameraControl extends BaseHardwareControl {
153
153
  * @param value The base64 data URL string representing the image.
154
154
  */
155
155
  public setValue(value: unknown): this {
156
- super.setValue(value);
156
+ super.setProperty("value", value);
157
157
  if (value && typeof value === "string" && value.startsWith("data:image")) {
158
158
  this.showPreview(value);
159
159
  } else if (!value) {
@@ -1,4 +1,4 @@
1
- sap.ui.define(["sap/ui/core/Control", "./host/GeneratorHost", "../utils/Logger", "./host/delegates/ODataDelegate", "../core/SchemaBuilderRegistry"], function (Control, __GeneratorHost, ___utils_Logger, ___host_delegates_ODataDelegate, ___core_SchemaBuilderRegistry) {
1
+ sap.ui.define(["sap/ui/core/Control", "./host/GeneratorHost", "../utils/Logger", "./host/delegates/ODataDelegate", "../core/SchemaBuilderRegistry", "sap/ui/core/BusyIndicator", "sap/m/MessageToast", "sap/m/MessageBox", "../services/SchemaProvider", "../ai/AIConfig"], function (Control, __GeneratorHost, ___utils_Logger, ___host_delegates_ODataDelegate, ___core_SchemaBuilderRegistry, BusyIndicator, MessageToast, MessageBox, ___services_SchemaProvider, ___ai_AIConfig) {
2
2
  "use strict";
3
3
 
4
4
  function _interopRequireDefault(obj) {
@@ -8,6 +8,8 @@ sap.ui.define(["sap/ui/core/Control", "./host/GeneratorHost", "../utils/Logger",
8
8
  const Logger = ___utils_Logger["Logger"];
9
9
  const ODataDelegate = ___host_delegates_ODataDelegate["ODataDelegate"];
10
10
  const SchemaBuilderRegistry = ___core_SchemaBuilderRegistry["SchemaBuilderRegistry"];
11
+ const SchemaProvider = ___services_SchemaProvider["SchemaProvider"];
12
+ const AIConfig = ___ai_AIConfig["AIConfig"];
11
13
  /**
12
14
  * A transparent wrapper control (Facade) that automatically chooses between Explicit Schema Mode
13
15
  * and Inference Mode based on the presence of a 'schemaDefinition'.
@@ -102,6 +104,10 @@ sap.ui.define(["sap/ui/core/Control", "./host/GeneratorHost", "../utils/Logger",
102
104
  type: "boolean",
103
105
  defaultValue: true
104
106
  },
107
+ layoutBudget: {
108
+ type: "int",
109
+ defaultValue: 0
110
+ },
105
111
  inferenceStrategy: {
106
112
  type: "string",
107
113
  defaultValue: "RuleBased"
@@ -266,37 +272,29 @@ sap.ui.define(["sap/ui/core/Control", "./host/GeneratorHost", "../utils/Logger",
266
272
  this.initODataDelegate();
267
273
  if (!this._initializedInner) {
268
274
  let schemaRaw = this.getProperty("schemaDefinition");
269
-
270
- // 1. URL Detection & Fetching
271
275
  if (typeof schemaRaw === "string" && (schemaRaw.startsWith("http://") || schemaRaw.startsWith("https://"))) {
272
276
  const self = this;
273
277
  if (self._fetchingSchema) return; // Prevent re-entry
274
278
  self._fetchingSchema = true;
275
- sap.ui.require(["sap/ui/core/BusyIndicator", "sap/m/MessageToast"], (BusyIndicator, MessageToast) => {
276
- BusyIndicator.show(0);
277
- fetch(schemaRaw).then(res => {
278
- if (!res.ok) throw new Error("HTTP " + res.status);
279
- return res.json();
280
- }).then(json => {
281
- const plugin = SchemaBuilderRegistry.getBuilderFor(json);
282
- const finalSchema = plugin ? plugin.build(json, this.getProperty("schemaTarget")) : json;
283
- Control.prototype.setProperty.call(this, "schemaDefinition", finalSchema, true);
284
- if (finalSchema.definitions) {
285
- Control.prototype.setProperty.call(this, "schemaDefinitions", finalSchema.definitions, true);
286
- }
287
- const self = this;
288
- self._fetchingSchema = false;
289
- BusyIndicator.hide();
290
- this.invalidate(); // Force re-render with resolved schema
291
- }).catch(err => {
292
- const self = this;
293
- Logger.warn("[MetaUI DynamicHost]", "Failed to fetch remote schema: " + err, "DynamicHost");
294
- if (MessageToast) MessageToast.show("Failed to fetch remote schema");
295
- Control.prototype.setProperty.call(this, "schemaDefinition", null, true); // Fallback to full inference
296
- self._fetchingSchema = false;
297
- BusyIndicator.hide();
298
- this.invalidate();
299
- });
279
+ BusyIndicator.show(0);
280
+ SchemaProvider.resolve(schemaRaw).then(json => {
281
+ const plugin = SchemaBuilderRegistry.getBuilderFor(json);
282
+ const finalSchema = plugin ? plugin.build(json, this.getProperty("schemaTarget")) : json;
283
+ Control.prototype.setProperty.call(this, "schemaDefinition", finalSchema, true);
284
+ if (finalSchema.definitions) {
285
+ Control.prototype.setProperty.call(this, "schemaDefinitions", finalSchema.definitions, true);
286
+ }
287
+ const self = this;
288
+ self._fetchingSchema = false;
289
+ BusyIndicator.hide();
290
+ this.invalidate(); // Force re-render with resolved schema
291
+ }).catch(err => {
292
+ const self = this;
293
+ MessageToast.show("Failed to fetch remote schema");
294
+ Control.prototype.setProperty.call(this, "schemaDefinition", null, true); // Fallback to full inference
295
+ self._fetchingSchema = false;
296
+ BusyIndicator.hide();
297
+ this.invalidate();
300
298
  });
301
299
  return; // Abort this render cycle until fetch completes
302
300
  }
@@ -339,28 +337,30 @@ sap.ui.define(["sap/ui/core/Control", "./host/GeneratorHost", "../utils/Logger",
339
337
  try {
340
338
  rawDataObj = JSON.parse(dataJson);
341
339
  } catch (e) {
342
- Logger.trace("[DynamicHost] Ignored invalid dataJson parse: " + e.message);
340
+ const msg = "Ignored invalid dataJson parse: " + e.message;
341
+ Logger.error("[DynamicHost]", msg, "DynamicHost");
342
+ MessageBox.error(msg, {
343
+ title: "Invalid JSON Data"
344
+ });
343
345
  }
344
346
  }
345
347
  if (rawDataObj) {
346
- sap.ui.require(["sap/ui/core/BusyIndicator", "sap/m/MessageToast", "nz/co/siliconst/ui5/metaui/ai/AIConfig"], (BusyIndicator, MessageToast, AIConfig) => {
347
- BusyIndicator.show(0);
348
- const proxy = AIConfig.getProxy();
349
- proxy.generateSchema(rawDataObj, schema || undefined).then(generatedSchema => {
350
- const self = this;
351
- Control.prototype.setProperty.call(this, "schemaDefinition", generatedSchema, true);
352
- self._fetchingSchema = false;
353
- BusyIndicator.hide();
354
- this.invalidate(); // Force re-render with the new schema
355
- }).catch(err => {
356
- const self = this;
357
- Logger.warn("[MetaUI DynamicHost]", "AI inference failed, falling back to RuleBased. Error: " + err.message, "DynamicHost");
358
- if (MessageToast) MessageToast.show("AI Inference failed, using fallback.");
359
- Control.prototype.setProperty.call(this, "inferenceStrategy", "RuleBased", true); // Fallback to normal inference
360
- self._fetchingSchema = false;
361
- BusyIndicator.hide();
362
- this.invalidate();
363
- });
348
+ BusyIndicator.show(0);
349
+ const proxy = AIConfig.getProxy();
350
+ proxy.generateSchema(rawDataObj, schema || undefined).then(generatedSchema => {
351
+ const self = this;
352
+ Control.prototype.setProperty.call(this, "schemaDefinition", generatedSchema, true);
353
+ self._fetchingSchema = false;
354
+ BusyIndicator.hide();
355
+ this.invalidate(); // Force re-render with the new schema
356
+ }).catch(err => {
357
+ const self = this;
358
+ Logger.warn("[MetaUI DynamicHost]", "AI inference failed, falling back to RuleBased. Error: " + err.message, "DynamicHost");
359
+ MessageToast.show("AI Inference failed, using fallback.");
360
+ Control.prototype.setProperty.call(this, "inferenceStrategy", "RuleBased", true); // Fallback to normal inference
361
+ self._fetchingSchema = false;
362
+ BusyIndicator.hide();
363
+ this.invalidate();
364
364
  });
365
365
  return; // Abort render cycle until AI is done
366
366
  }