@siliconst/metaui 1.4.6 → 1.4.7

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 (276) hide show
  1. package/package.json +1 -1
  2. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +13 -0
  3. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -1
  4. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts +10 -0
  5. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.d.ts.map +1 -1
  6. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -1
  7. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +10 -0
  8. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +47 -4
  9. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  10. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +47 -4
  11. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  12. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  13. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +48 -4
  14. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +32 -1
  15. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -1
  16. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +7 -0
  17. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -1
  18. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +1 -1
  19. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -1
  20. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +11 -1
  21. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +20 -0
  22. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -1
  23. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +12 -0
  24. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -1
  25. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +1 -1
  26. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -1
  27. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +21 -0
  28. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +9 -0
  29. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -1
  30. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +7 -0
  31. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -1
  32. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -1
  33. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +7 -0
  34. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +13 -0
  35. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +10 -0
  37. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -1
  38. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -1
  39. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +10 -0
  40. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +41 -5
  41. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  42. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +16 -4
  43. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  44. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  45. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  46. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +44 -4
  47. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +5 -0
  48. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  49. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +4 -0
  50. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  51. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  52. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +4 -0
  53. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +4 -0
  54. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  55. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +4 -0
  56. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  57. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  58. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +4 -0
  59. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +4 -0
  60. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +4 -0
  62. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
  63. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  64. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +4 -0
  65. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js +45 -12
  66. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -1
  67. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts +6 -0
  68. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts.map +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js +1 -1
  70. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -1
  71. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +25 -12
  72. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +25 -12
  73. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  74. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +5 -5
  75. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  77. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  78. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +34 -27
  79. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +17 -3
  80. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -1
  81. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts +4 -0
  82. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -1
  83. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +1 -1
  84. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -1
  85. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +13 -3
  86. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +158 -106
  87. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  88. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +25 -26
  89. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  90. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  91. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +176 -113
  93. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +26 -0
  94. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  95. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +22 -0
  96. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  97. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +22 -0
  99. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +6 -0
  100. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  101. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +5 -0
  102. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  103. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +5 -0
  105. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js +10 -0
  106. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js.map +1 -1
  107. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts +9 -0
  108. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts.map +1 -1
  109. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.js.map +1 -1
  110. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.ts +9 -0
  111. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +10 -0
  112. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  113. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts +9 -0
  114. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  115. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  116. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +9 -0
  117. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js +9 -0
  118. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js.map +1 -1
  119. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts +8 -0
  120. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts.map +1 -1
  121. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js.map +1 -1
  122. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.ts +8 -0
  123. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +2 -32
  124. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +9 -10
  126. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  127. package/src/nz/co/siliconst/ui5/metaui/library.d.ts +0 -6
  128. package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
  129. package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
  130. package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
  131. package/src/nz/co/siliconst/ui5/metaui/library.ts +0 -33
  132. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +18 -0
  133. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  134. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +16 -0
  135. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  136. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  137. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +16 -0
  138. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +19 -0
  139. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  140. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +17 -0
  141. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -1
  142. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  143. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +17 -0
  144. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +1 -0
  145. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  147. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  148. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +2 -0
  150. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +19 -0
  151. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  152. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +17 -0
  153. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -1
  154. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  155. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +17 -0
  156. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +29 -0
  157. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  158. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +25 -0
  159. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -1
  160. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  161. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +25 -0
  162. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +19 -0
  163. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  164. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +17 -0
  165. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  166. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  167. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +17 -0
  168. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +19 -0
  169. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  170. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +17 -0
  171. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  172. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  173. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +17 -0
  174. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +2 -0
  175. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  176. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +2 -0
  177. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  178. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  179. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +2 -0
  180. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +19 -0
  181. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  182. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +17 -0
  183. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  184. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  185. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +17 -0
  186. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +19 -0
  187. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  188. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +17 -0
  189. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  190. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  191. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +17 -0
  192. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +18 -0
  193. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  194. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +16 -0
  195. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  196. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  197. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +16 -0
  198. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +19 -0
  199. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  200. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +17 -0
  201. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  203. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +17 -0
  204. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +19 -0
  205. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  206. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +17 -0
  207. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  208. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  209. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +17 -0
  210. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +23 -0
  211. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +20 -0
  213. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
  214. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
  215. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +20 -0
  216. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +19 -0
  217. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +17 -0
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +17 -0
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +19 -0
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +17 -0
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -1
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +17 -0
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +19 -0
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +17 -0
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -1
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +17 -0
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +19 -0
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +17 -0
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +17 -0
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +2 -0
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +2 -0
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -1
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +2 -0
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +19 -0
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +17 -0
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +17 -0
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +19 -0
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +17 -0
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -1
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +17 -0
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +19 -0
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +17 -0
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +17 -0
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +19 -0
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +17 -0
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +17 -0
  270. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js +0 -32
  271. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js.map +0 -1
  272. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts +0 -16
  273. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts.map +0 -1
  274. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js +0 -2
  275. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js.map +0 -1
  276. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.ts +0 -26
@@ -14,8 +14,24 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin"
14
14
  * @public
15
15
  */
16
16
  export class MessageStripPlugin extends BasePlugin {
17
+ /**
18
+ * Renders a `sap.m.MessageStrip` component.
19
+ *
20
+ * @param fieldMetadata The specific JSON schema properties for this field.
21
+ * @param bindingPath The JSON path bound to this control.
22
+ * @param modelName The UI5 JSONModel name.
23
+ * @param engineScopeId The deterministic scope ID.
24
+ * @param onChange The callback fired on value change.
25
+ * @returns {Control} The configured MessageStrip control.
26
+ */
17
27
  render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control;
28
+ /**
29
+ * Read-only control, returns null.
30
+ */
18
31
  protected getValue(): any;
32
+ /**
33
+ * Read-only control, no dynamic state needed.
34
+ */
19
35
  protected applyState(): void;
20
36
  }
21
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MessageStripPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gEAAgE,CAAC;IAChF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;;;;;OAMG;IACH,MAAa,kBAAmB,SAAQ,UAAU;QACvC,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAG,WAAW,EAAE,MAAM,EAAG,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QAgB7L,SAAS,CAAC,QAAQ,IAAI,GAAG;QAIzB,SAAS,CAAC,UAAU,IAAI,IAAI;KAG/B;CAEA"}
1
+ {"version":3,"file":"MessageStripPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gEAAgE,CAAC;IAChF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;;;;;OAMG;IACH,MAAa,kBAAmB,SAAQ,UAAU;QAC9C;;;;;;;;;WASG;QACI,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAG,WAAW,EAAE,MAAM,EAAG,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QAgB7L;;WAEG;QACH,SAAS,CAAC,QAAQ,IAAI,GAAG;QAIzB;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAG/B;CAEA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageStripPlugin.js","names":["BasePlugin","___BasePlugin","MessageStripPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","control","MessageStrip","id","generateStableId","text","type","showIcon","showCloseButton","getValue","applyState","__exports","__esModule"],"sources":["MessageStripPlugin.ts"],"sourcesContent":["/**\n * @file MessageStripPlugin.ts\n * @description Renders a sap.m.MessageStrip for informational text.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport MessageStrip from \"sap/m/MessageStrip\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Renders read-only informational alerts within the layout.\n * Does not emit values to the payload.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class MessageStripPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n \n // Use binding to display text if the field has a value, otherwise use the label\n this.control = new MessageStrip({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: `{${modelName}>${bindingPath}}`,\n type: \"Information\", // Can be driven by schema arguments in the future\n showIcon: true,\n showCloseButton: false\n });\n\n return this.control as Control;\n }\n\n protected getValue(): any {\n return null; // Read-only component\n }\n\n protected applyState(): void {\n // Read-only component, no dynamic state needed currently\n }\n}\n"],"mappings":"+EAAA,MAKSA,EAAUC,EAAA,cAYZ,MAAMC,UAA2BF,EAC7BG,OAAOC,EAAmCC,EAAsBC,EAAoB,OAAQC,EAAwBC,GACvHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAGhBK,KAAKE,QAAU,IAAIC,EAAa,CAC5BC,GAAIJ,KAAKK,iBAAiBP,EAAeF,GACzCU,KAAM,IAAIT,KAAaD,KACvBW,KAAM,cACNC,SAAU,KACVC,gBAAiB,QAGrB,OAAOT,KAAKE,OAChB,CAEUQ,WACN,OAAO,IACX,CAEUC,aACN,EAEP,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAAnB,qBAAA,OAAAmB,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"MessageStripPlugin.js","names":["BasePlugin","___BasePlugin","MessageStripPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","control","MessageStrip","id","generateStableId","text","type","showIcon","showCloseButton","getValue","applyState","__exports","__esModule"],"sources":["MessageStripPlugin.ts"],"sourcesContent":["/**\n * @file MessageStripPlugin.ts\n * @description Renders a sap.m.MessageStrip for informational text.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport MessageStrip from \"sap/m/MessageStrip\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Renders read-only informational alerts within the layout.\n * Does not emit values to the payload.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class MessageStripPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.MessageStrip` component.\n * \n * @param fieldMetadata The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured MessageStrip control.\n */\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n \n // Use binding to display text if the field has a value, otherwise use the label\n this.control = new MessageStrip({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: `{${modelName}>${bindingPath}}`,\n type: \"Information\", // Can be driven by schema arguments in the future\n showIcon: true,\n showCloseButton: false\n });\n\n return this.control as Control;\n }\n\n /**\n * Read-only control, returns null.\n */\n protected getValue(): any {\n return null; // Read-only component\n }\n\n /**\n * Read-only control, no dynamic state needed.\n */\n protected applyState(): void {\n // Read-only component, no dynamic state needed currently\n }\n}\n"],"mappings":"+EAAA,MAKSA,EAAUC,EAAA,cAYZ,MAAMC,UAA2BF,EAW7BG,OAAOC,EAAmCC,EAAsBC,EAAoB,OAAQC,EAAwBC,GACvHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAGhBK,KAAKE,QAAU,IAAIC,EAAa,CAC5BC,GAAIJ,KAAKK,iBAAiBP,EAAeF,GACzCU,KAAM,IAAIT,KAAaD,KACvBW,KAAM,cACNC,SAAU,KACVC,gBAAiB,QAGrB,OAAOT,KAAKE,OAChB,CAKUQ,WACN,OAAO,IACX,CAKUC,aACN,EAEP,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAAnB,qBAAA,OAAAmB,CAAA","ignoreList":[]}
@@ -16,6 +16,16 @@ import Control from "sap/ui/core/Control";
16
16
  * @public
17
17
  */
18
18
  export class MessageStripPlugin extends BasePlugin {
19
+ /**
20
+ * Renders a `sap.m.MessageStrip` component.
21
+ *
22
+ * @param fieldMetadata The specific JSON schema properties for this field.
23
+ * @param bindingPath The JSON path bound to this control.
24
+ * @param modelName The UI5 JSONModel name.
25
+ * @param engineScopeId The deterministic scope ID.
26
+ * @param onChange The callback fired on value change.
27
+ * @returns {Control} The configured MessageStrip control.
28
+ */
19
29
  public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {
20
30
  this.onChange = onChange;
21
31
  this.metadata = fieldMetadata;
@@ -32,10 +42,16 @@ export class MessageStripPlugin extends BasePlugin {
32
42
  return this.control as Control;
33
43
  }
34
44
 
45
+ /**
46
+ * Read-only control, returns null.
47
+ */
35
48
  protected getValue(): any {
36
49
  return null; // Read-only component
37
50
  }
38
51
 
52
+ /**
53
+ * Read-only control, no dynamic state needed.
54
+ */
39
55
  protected applyState(): void {
40
56
  // Read-only component, no dynamic state needed currently
41
57
  }
@@ -14,6 +14,16 @@ sap.ui.define(["./BasePlugin", "sap/m/MultiComboBox", "sap/ui/core/Item"], funct
14
14
  * @public
15
15
  */
16
16
  class MultiSelectPlugin extends BasePlugin {
17
+ /**
18
+ * Renders a `sap.m.MultiComboBox` component.
19
+ *
20
+ * @param fieldMetadata The specific JSON schema properties for this field.
21
+ * @param bindingPath The JSON path bound to this control.
22
+ * @param modelName The UI5 JSONModel name.
23
+ * @param engineScopeId The deterministic scope ID.
24
+ * @param onChange The callback fired on value change.
25
+ * @returns {Control} The configured MultiComboBox control.
26
+ */
17
27
  render(fieldMetadata, bindingPath, modelName = "meta", engineScopeId, onChange) {
18
28
  this.onChange = onChange;
19
29
  this.metadata = fieldMetadata;
@@ -55,9 +65,18 @@ sap.ui.define(["./BasePlugin", "sap/m/MultiComboBox", "sap/ui/core/Item"], funct
55
65
  this.applyCommonDirectives(this.control, fieldMetadata, modelName);
56
66
  return this.control;
57
67
  }
68
+
69
+ /**
70
+ * Retrieves the current selection keys.
71
+ * @returns {any} The selected keys.
72
+ */
58
73
  getValue() {
59
74
  return this.control ? this.control.getSelectedKeys() : [];
60
75
  }
76
+
77
+ /**
78
+ * Applies dynamic read-only state.
79
+ */
61
80
  applyState() {
62
81
  if (this.control && this.metadata) {
63
82
  if (!this.isEditable) return;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectPlugin-dbg.js","names":["BasePlugin","___BasePlugin","MultiSelectPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","path","formatter","val","Array","isArray","join","applyCommonDirectives","mcb","MultiComboBox","selectedKeys","enabled","readOnly","placeholder","label","selectionChange","oEvent","keys","getSelectedKeys","result","validate","isValid","fieldKey","enum","forEach","addItem","Item","key","toString","getValue","applyState","setEnabled","__exports","__esModule"],"sources":["MultiSelectPlugin.ts"],"sourcesContent":["/**\n * @file MultiSelectPlugin.ts\n * @description Renders a sap.m.MultiComboBox for selecting multiple string values.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport MultiComboBox from \"sap/m/MultiComboBox\";\nimport Item from \"sap/ui/core/Item\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering logic for selecting multiple strings from a predefined list.\n * Expects the payload to be an array of strings.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class MultiSelectPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n\n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: {\n path: `${modelName}>${bindingPath}`,\n formatter: (val: any[]) => Array.isArray(val) ? val.join(\", \") : \"\"\n }\n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n \n const mcb = new MultiComboBox({\n id: this.generateStableId(engineScopeId, bindingPath),\n selectedKeys: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n placeholder: fieldMetadata.ui?.label || \"Select items...\",\n selectionChange: (oEvent: sap.ui.base.Event) => {\n const keys = (this.control as MultiComboBox).getSelectedKeys();\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\n }\n });\n\n if (fieldMetadata.enum) {\n fieldMetadata.enum.forEach((val: string | number) => {\n mcb.addItem(new Item({ key: val.toString(), text: val.toString() }));\n });\n }\n\n this.control = mcb;\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n protected getValue(): any {\n return this.control ? (this.control as MultiComboBox).getSelectedKeys() : [];\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n (this.control as MultiComboBox).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MultiSelectPlugin-dbg.js","names":["BasePlugin","___BasePlugin","MultiSelectPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","path","formatter","val","Array","isArray","join","applyCommonDirectives","mcb","MultiComboBox","selectedKeys","enabled","readOnly","placeholder","label","selectionChange","oEvent","keys","getSelectedKeys","result","validate","isValid","fieldKey","enum","forEach","addItem","Item","key","toString","getValue","applyState","setEnabled","__exports","__esModule"],"sources":["MultiSelectPlugin.ts"],"sourcesContent":["/**\n * @file MultiSelectPlugin.ts\n * @description Renders a sap.m.MultiComboBox for selecting multiple string values.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport MultiComboBox from \"sap/m/MultiComboBox\";\nimport Item from \"sap/ui/core/Item\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering logic for selecting multiple strings from a predefined list.\n * Expects the payload to be an array of strings.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class MultiSelectPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.MultiComboBox` component.\n * \n * @param fieldMetadata The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured MultiComboBox control.\n */\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n\n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: {\n path: `${modelName}>${bindingPath}`,\n formatter: (val: any[]) => Array.isArray(val) ? val.join(\", \") : \"\"\n }\n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n \n const mcb = new MultiComboBox({\n id: this.generateStableId(engineScopeId, bindingPath),\n selectedKeys: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n placeholder: fieldMetadata.ui?.label || \"Select items...\",\n selectionChange: (oEvent: sap.ui.base.Event) => {\n const keys = (this.control as MultiComboBox).getSelectedKeys();\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\n }\n });\n\n if (fieldMetadata.enum) {\n fieldMetadata.enum.forEach((val: string | number) => {\n mcb.addItem(new Item({ key: val.toString(), text: val.toString() }));\n });\n }\n\n this.control = mcb;\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n /**\n * Retrieves the current selection keys.\n * @returns {any} The selected keys.\n */\n protected getValue(): any {\n return this.control ? (this.control as MultiComboBox).getSelectedKeys() : [];\n }\n\n /**\n * Applies dynamic read-only state.\n */\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n (this.control as MultiComboBox).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,8 +14,25 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin" {
14
14
  * @public
15
15
  */
16
16
  export class MultiSelectPlugin extends BasePlugin {
17
+ /**
18
+ * Renders a `sap.m.MultiComboBox` component.
19
+ *
20
+ * @param fieldMetadata The specific JSON schema properties for this field.
21
+ * @param bindingPath The JSON path bound to this control.
22
+ * @param modelName The UI5 JSONModel name.
23
+ * @param engineScopeId The deterministic scope ID.
24
+ * @param onChange The callback fired on value change.
25
+ * @returns {Control} The configured MultiComboBox control.
26
+ */
17
27
  render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control;
28
+ /**
29
+ * Retrieves the current selection keys.
30
+ * @returns {any} The selected keys.
31
+ */
18
32
  protected getValue(): any;
33
+ /**
34
+ * Applies dynamic read-only state.
35
+ */
19
36
  protected applyState(): void;
20
37
  }
21
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+DAA+D,CAAC;IAC/E;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAGlF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;;;;;OAMG;IACH,MAAa,iBAAkB,SAAQ,UAAU;QACtC,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAG,WAAW,EAAE,MAAM,EAAG,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QA2C7L,SAAS,CAAC,QAAQ,IAAI,GAAG;QAIzB,SAAS,CAAC,UAAU,IAAI,IAAI;KAM/B;CAEA"}
1
+ {"version":3,"file":"MultiSelectPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+DAA+D,CAAC;IAC/E;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAGlF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;;;;;OAMG;IACH,MAAa,iBAAkB,SAAQ,UAAU;QAC7C;;;;;;;;;WASG;QACI,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAG,WAAW,EAAE,MAAM,EAAG,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QA2C7L;;;WAGG;QACH,SAAS,CAAC,QAAQ,IAAI,GAAG;QAIzB;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAM/B;CAEA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectPlugin.js","names":["BasePlugin","___BasePlugin","MultiSelectPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","path","formatter","val","Array","isArray","join","applyCommonDirectives","mcb","MultiComboBox","selectedKeys","enabled","readOnly","placeholder","label","selectionChange","oEvent","keys","getSelectedKeys","result","validate","isValid","fieldKey","enum","forEach","addItem","Item","key","toString","getValue","applyState","setEnabled","__exports","__esModule"],"sources":["MultiSelectPlugin.ts"],"sourcesContent":["/**\n * @file MultiSelectPlugin.ts\n * @description Renders a sap.m.MultiComboBox for selecting multiple string values.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport MultiComboBox from \"sap/m/MultiComboBox\";\nimport Item from \"sap/ui/core/Item\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering logic for selecting multiple strings from a predefined list.\n * Expects the payload to be an array of strings.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class MultiSelectPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n\n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: {\n path: `${modelName}>${bindingPath}`,\n formatter: (val: any[]) => Array.isArray(val) ? val.join(\", \") : \"\"\n }\n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n \n const mcb = new MultiComboBox({\n id: this.generateStableId(engineScopeId, bindingPath),\n selectedKeys: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n placeholder: fieldMetadata.ui?.label || \"Select items...\",\n selectionChange: (oEvent: sap.ui.base.Event) => {\n const keys = (this.control as MultiComboBox).getSelectedKeys();\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\n }\n });\n\n if (fieldMetadata.enum) {\n fieldMetadata.enum.forEach((val: string | number) => {\n mcb.addItem(new Item({ key: val.toString(), text: val.toString() }));\n });\n }\n\n this.control = mcb;\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n protected getValue(): any {\n return this.control ? (this.control as MultiComboBox).getSelectedKeys() : [];\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n (this.control as MultiComboBox).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"qGAAA,MAKSA,EAAUC,EAAA,cAaZ,MAAMC,UAA0BF,EAC5BG,OAAOC,EAAmCC,EAAsBC,EAAoB,OAAQC,EAAwBC,GACvHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAEhB,IAAKK,KAAKE,WAAY,CAClBC,IAAIC,GAAGC,YAAY,cACnB,MAAMC,EAAcH,IAAIC,GAAGG,QAAQ,cACnCP,KAAKQ,QAAU,IAAIF,EAAY,CAC3BG,GAAIT,KAAKU,iBAAiBZ,EAAeF,GACzCe,KAAM,CACFC,KAAM,GAAGf,KAAaD,IACtBiB,UAAYC,GAAeC,MAAMC,QAAQF,GAAOA,EAAIG,KAAK,MAAQ,MAGzEjB,KAAKkB,sBAAsBlB,KAAKQ,QAASb,EAAeE,GACxD,OAAOG,KAAKQ,OAChB,CAEA,MAAMW,EAAM,IAAIC,EAAc,CAC1BX,GAAIT,KAAKU,iBAAiBZ,EAAeF,GACzCyB,aAAc,IAAIxB,KAAaD,KAC/B0B,SAAU3B,EAAcS,IAAImB,SAC5BC,YAAa7B,EAAcS,IAAIqB,OAAS,kBACxCC,gBAAkBC,IACd,MAAMC,EAAQ5B,KAAKQ,QAA0BqB,kBAC7C,MAAMC,EAAS9B,KAAK+B,WACpB,GAAI/B,KAAKD,SAAU,CACfC,KAAKD,SAAS+B,EAAOE,QAAShC,KAAKiC,SACvC,KAIR,GAAItC,EAAcuC,KAAM,CACpBvC,EAAcuC,KAAKC,QAASrB,IACxBK,EAAIiB,QAAQ,IAAIC,EAAK,CAAEC,IAAKxB,EAAIyB,WAAY5B,KAAMG,EAAIyB,eAE9D,CAEAvC,KAAKQ,QAAUW,EACfnB,KAAKkB,sBAAsBlB,KAAKQ,QAASb,EAAeE,GACxD,OAAOG,KAAKQ,OAChB,CAEUgC,WACN,OAAOxC,KAAKQ,QAAWR,KAAKQ,QAA0BqB,kBAAoB,EAC9E,CAEUY,aACN,GAAIzC,KAAKQ,SAAWR,KAAKC,SAAU,CAC/B,IAAKD,KAAKE,WAAY,OACrBF,KAAKQ,QAA0BkC,YAAY1C,KAAKC,SAASG,IAAImB,SAClE,CACJ,EACH,IAAAoB,EAAA,CAAAC,WAAA,MAAAD,EAAAlD,oBAAA,OAAAkD,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"MultiSelectPlugin.js","names":["BasePlugin","___BasePlugin","MultiSelectPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","path","formatter","val","Array","isArray","join","applyCommonDirectives","mcb","MultiComboBox","selectedKeys","enabled","readOnly","placeholder","label","selectionChange","oEvent","keys","getSelectedKeys","result","validate","isValid","fieldKey","enum","forEach","addItem","Item","key","toString","getValue","applyState","setEnabled","__exports","__esModule"],"sources":["MultiSelectPlugin.ts"],"sourcesContent":["/**\n * @file MultiSelectPlugin.ts\n * @description Renders a sap.m.MultiComboBox for selecting multiple string values.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport MultiComboBox from \"sap/m/MultiComboBox\";\nimport Item from \"sap/ui/core/Item\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering logic for selecting multiple strings from a predefined list.\n * Expects the payload to be an array of strings.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class MultiSelectPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.MultiComboBox` component.\n * \n * @param fieldMetadata The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured MultiComboBox control.\n */\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n\n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: {\n path: `${modelName}>${bindingPath}`,\n formatter: (val: any[]) => Array.isArray(val) ? val.join(\", \") : \"\"\n }\n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n \n const mcb = new MultiComboBox({\n id: this.generateStableId(engineScopeId, bindingPath),\n selectedKeys: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n placeholder: fieldMetadata.ui?.label || \"Select items...\",\n selectionChange: (oEvent: sap.ui.base.Event) => {\n const keys = (this.control as MultiComboBox).getSelectedKeys();\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\n }\n });\n\n if (fieldMetadata.enum) {\n fieldMetadata.enum.forEach((val: string | number) => {\n mcb.addItem(new Item({ key: val.toString(), text: val.toString() }));\n });\n }\n\n this.control = mcb;\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n /**\n * Retrieves the current selection keys.\n * @returns {any} The selected keys.\n */\n protected getValue(): any {\n return this.control ? (this.control as MultiComboBox).getSelectedKeys() : [];\n }\n\n /**\n * Applies dynamic read-only state.\n */\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n (this.control as MultiComboBox).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"qGAAA,MAKSA,EAAUC,EAAA,cAaZ,MAAMC,UAA0BF,EAW5BG,OAAOC,EAAmCC,EAAsBC,EAAoB,OAAQC,EAAwBC,GACvHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAEhB,IAAKK,KAAKE,WAAY,CAClBC,IAAIC,GAAGC,YAAY,cACnB,MAAMC,EAAcH,IAAIC,GAAGG,QAAQ,cACnCP,KAAKQ,QAAU,IAAIF,EAAY,CAC3BG,GAAIT,KAAKU,iBAAiBZ,EAAeF,GACzCe,KAAM,CACFC,KAAM,GAAGf,KAAaD,IACtBiB,UAAYC,GAAeC,MAAMC,QAAQF,GAAOA,EAAIG,KAAK,MAAQ,MAGzEjB,KAAKkB,sBAAsBlB,KAAKQ,QAASb,EAAeE,GACxD,OAAOG,KAAKQ,OAChB,CAEA,MAAMW,EAAM,IAAIC,EAAc,CAC1BX,GAAIT,KAAKU,iBAAiBZ,EAAeF,GACzCyB,aAAc,IAAIxB,KAAaD,KAC/B0B,SAAU3B,EAAcS,IAAImB,SAC5BC,YAAa7B,EAAcS,IAAIqB,OAAS,kBACxCC,gBAAkBC,IACd,MAAMC,EAAQ5B,KAAKQ,QAA0BqB,kBAC7C,MAAMC,EAAS9B,KAAK+B,WACpB,GAAI/B,KAAKD,SAAU,CACfC,KAAKD,SAAS+B,EAAOE,QAAShC,KAAKiC,SACvC,KAIR,GAAItC,EAAcuC,KAAM,CACpBvC,EAAcuC,KAAKC,QAASrB,IACxBK,EAAIiB,QAAQ,IAAIC,EAAK,CAAEC,IAAKxB,EAAIyB,WAAY5B,KAAMG,EAAIyB,eAE9D,CAEAvC,KAAKQ,QAAUW,EACfnB,KAAKkB,sBAAsBlB,KAAKQ,QAASb,EAAeE,GACxD,OAAOG,KAAKQ,OAChB,CAMUgC,WACN,OAAOxC,KAAKQ,QAAWR,KAAKQ,QAA0BqB,kBAAoB,EAC9E,CAKUY,aACN,GAAIzC,KAAKQ,SAAWR,KAAKC,SAAU,CAC/B,IAAKD,KAAKE,WAAY,OACrBF,KAAKQ,QAA0BkC,YAAY1C,KAAKC,SAASG,IAAImB,SAClE,CACJ,EACH,IAAAoB,EAAA,CAAAC,WAAA,MAAAD,EAAAlD,oBAAA,OAAAkD,CAAA","ignoreList":[]}
@@ -17,6 +17,16 @@ import Control from "sap/ui/core/Control";
17
17
  * @public
18
18
  */
19
19
  export class MultiSelectPlugin extends BasePlugin {
20
+ /**
21
+ * Renders a `sap.m.MultiComboBox` component.
22
+ *
23
+ * @param fieldMetadata The specific JSON schema properties for this field.
24
+ * @param bindingPath The JSON path bound to this control.
25
+ * @param modelName The UI5 JSONModel name.
26
+ * @param engineScopeId The deterministic scope ID.
27
+ * @param onChange The callback fired on value change.
28
+ * @returns {Control} The configured MultiComboBox control.
29
+ */
20
30
  public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {
21
31
  this.onChange = onChange;
22
32
  this.metadata = fieldMetadata;
@@ -60,10 +70,17 @@ export class MultiSelectPlugin extends BasePlugin {
60
70
  return this.control as Control;
61
71
  }
62
72
 
73
+ /**
74
+ * Retrieves the current selection keys.
75
+ * @returns {any} The selected keys.
76
+ */
63
77
  protected getValue(): any {
64
78
  return this.control ? (this.control as MultiComboBox).getSelectedKeys() : [];
65
79
  }
66
80
 
81
+ /**
82
+ * Applies dynamic read-only state.
83
+ */
67
84
  protected applyState(): void {
68
85
  if (this.control && this.metadata) {
69
86
  if (!this.isEditable) return;
@@ -10,6 +10,16 @@ sap.ui.define(["./BasePlugin", "sap/m/StepInput"], function (___BasePlugin, Step
10
10
  * Handles rendering and logic for numeric inputs.
11
11
  */
12
12
  class NumberPlugin extends BasePlugin {
13
+ /**
14
+ * Renders a `sap.m.StepInput` component for numeric evaluation.
15
+ *
16
+ * @param fieldMetadata The specific JSON schema properties for this field.
17
+ * @param bindingPath The JSON path bound to this control.
18
+ * @param modelName The UI5 JSONModel name.
19
+ * @param engineScopeId The deterministic scope ID.
20
+ * @param onChange The callback fired on value change.
21
+ * @returns {Control} The configured StepInput control.
22
+ */
13
23
  render(fieldMetadata, bindingPath, modelName = "meta", engineScopeId, onChange) {
14
24
  this.onChange = onChange;
15
25
  this.metadata = fieldMetadata;
@@ -40,9 +50,18 @@ sap.ui.define(["./BasePlugin", "sap/m/StepInput"], function (___BasePlugin, Step
40
50
  this.applyCommonDirectives(this.control, fieldMetadata, modelName);
41
51
  return this.control;
42
52
  }
53
+
54
+ /**
55
+ * Retrieves the current numeric state.
56
+ * @returns {any} The numeric value.
57
+ */
43
58
  getValue() {
44
59
  return this.control ? this.control.getValue() : null;
45
60
  }
61
+
62
+ /**
63
+ * Applies dynamic read-only state.
64
+ */
46
65
  applyState() {
47
66
  if (this.control && this.metadata) {
48
67
  if (!this.isEditable) return;
@@ -1 +1 @@
1
- {"version":3,"file":"NumberPlugin-dbg.js","names":["BasePlugin","___BasePlugin","NumberPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","applyCommonDirectives","StepInput","value","displayValuePrecision","scale","editable","readOnly","required","change","oEvent","val","getParameter","result","validate","isValid","fieldKey","getValue","applyState","input","setEditable","setRequired","__exports","__esModule"],"sources":["NumberPlugin.ts"],"sourcesContent":["/**\n * @file NumberPlugin.ts\n * @description Renders a sap.m.StepInput for numeric data.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport StepInput from \"sap/m/StepInput\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering and logic for numeric inputs.\n */\nexport class NumberPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n\n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: `{${modelName}>${bindingPath}}`\n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n this.control = new StepInput({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: `{${modelName}>${bindingPath}}`,\n displayValuePrecision: fieldMetadata.scale || 0,\n editable: !fieldMetadata.ui?.readOnly,\n required: fieldMetadata.required,\n change: (oEvent: sap.ui.base.Event) => {\n const val = oEvent.getParameter(\"value\");\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\n }\n });\n\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n\n return this.control as Control;\n }\n\n protected getValue(): any {\n return this.control ? (this.control as StepInput).getValue() : null;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n const input = this.control as StepInput;\n input.setEditable(!this.metadata.ui?.readOnly);\n input.setRequired(this.metadata.required);\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,aAAA;EAKnB;AACA;AACA;EACO,MAAMC,YAAY,SAASF,UAAU,CAAC;IAClCG,MAAMA,CAACC,aAAgC,EAAGC,WAAmB,EAAGC,SAAiB,GAAG,MAAM,EAAEC,aAAsB,EAAEC,QAAwD,EAAW;MAC1L,IAAI,CAACA,QAAQ,GAAGA,QAAQ;MACxB,IAAI,CAACC,QAAQ,GAAGL,aAAa;MAE7B,IAAI,CAAC,IAAI,CAACM,UAAU,EAAE;QAClBC,GAAG,CAACC,EAAE,CAACC,WAAW,CAAC,YAAY,CAAC;QAChC,MAAMC,WAAW,GAAGH,GAAG,CAACC,EAAE,CAACG,OAAO,CAAC,YAAY,CAAC;QAChD,IAAI,CAACC,OAAO,GAAG,IAAIF,WAAW,CAAC;UAC3BG,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACX,aAAa,EAAEF,WAAW,CAAC;UACrDc,IAAI,EAAE,IAAIb,SAAS,IAAID,WAAW;QACtC,CAAC,CAAC;QACF,IAAI,CAACe,qBAAqB,CAAC,IAAI,CAACJ,OAAO,EAAEZ,aAAa,EAAEE,SAAS,CAAC;QAClE,OAAO,IAAI,CAACU,OAAO;MACvB;MAEA,IAAI,CAACA,OAAO,GAAG,IAAIK,SAAS,CAAC;QACzBJ,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACX,aAAa,EAAEF,WAAW,CAAC;QACrDiB,KAAK,EAAE,IAAIhB,SAAS,IAAID,WAAW,GAAG;QACtCkB,qBAAqB,EAAEnB,aAAa,CAACoB,KAAK,IAAI,CAAC;QAC/CC,QAAQ,EAAE,CAACrB,aAAa,CAACQ,EAAE,EAAEc,QAAQ;QACrCC,QAAQ,EAAEvB,aAAa,CAACuB,QAAQ;QAChCC,MAAM,EAAGC,MAAyB,IAAK;UACnC,MAAMC,GAAG,GAAGD,MAAM,CAACE,YAAY,CAAC,OAAO,CAAC;UACxC,MAAMC,MAAM,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;UAC9B,IAAI,IAAI,CAACzB,QAAQ,EAAE;YACf,IAAI,CAACA,QAAQ,CAACwB,MAAM,CAACE,OAAO,EAAE,IAAI,CAACC,QAAQ,CAAC;UAChD;QACJ;MACJ,CAAC,CAAC;MAEF,IAAI,CAACf,qBAAqB,CAAC,IAAI,CAACJ,OAAO,EAAEZ,aAAa,EAAEE,SAAS,CAAC;MAElE,OAAO,IAAI,CAACU,OAAO;IACvB;IAEUoB,QAAQA,CAAA,EAAQ;MACtB,OAAO,IAAI,CAACpB,OAAO,GAAI,IAAI,CAACA,OAAO,CAAeoB,QAAQ,CAAC,CAAC,GAAG,IAAI;IACvE;IAEUC,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACrB,OAAO,IAAI,IAAI,CAACP,QAAQ,EAAE;QAC/B,IAAI,CAAC,IAAI,CAACC,UAAU,EAAE;QACtB,MAAM4B,KAAK,GAAG,IAAI,CAACtB,OAAoB;QACvCsB,KAAK,CAACC,WAAW,CAAC,CAAC,IAAI,CAAC9B,QAAQ,CAACG,EAAE,EAAEc,QAAQ,CAAC;QAC9CY,KAAK,CAACE,WAAW,CAAC,IAAI,CAAC/B,QAAQ,CAACkB,QAAQ,CAAC;MAC7C;IACJ;EACJ;EAAC,IAAAc,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAvC,YAAA,GAAAA,YAAA;EAAA,OAAAuC,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"NumberPlugin-dbg.js","names":["BasePlugin","___BasePlugin","NumberPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","applyCommonDirectives","StepInput","value","displayValuePrecision","scale","editable","readOnly","required","change","oEvent","val","getParameter","result","validate","isValid","fieldKey","getValue","applyState","input","setEditable","setRequired","__exports","__esModule"],"sources":["NumberPlugin.ts"],"sourcesContent":["/**\n * @file NumberPlugin.ts\n * @description Renders a sap.m.StepInput for numeric data.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport StepInput from \"sap/m/StepInput\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering and logic for numeric inputs.\n */\nexport class NumberPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.StepInput` component for numeric evaluation.\n * \n * @param fieldMetadata The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured StepInput control.\n */\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n\n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: `{${modelName}>${bindingPath}}`\n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n this.control = new StepInput({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: `{${modelName}>${bindingPath}}`,\n displayValuePrecision: fieldMetadata.scale || 0,\n editable: !fieldMetadata.ui?.readOnly,\n required: fieldMetadata.required,\n change: (oEvent: sap.ui.base.Event) => {\n const val = oEvent.getParameter(\"value\");\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\n }\n });\n\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n\n return this.control as Control;\n }\n\n /**\n * Retrieves the current numeric state.\n * @returns {any} The numeric value.\n */\n protected getValue(): any {\n return this.control ? (this.control as StepInput).getValue() : null;\n }\n\n /**\n * Applies dynamic read-only state.\n */\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n const input = this.control as StepInput;\n input.setEditable(!this.metadata.ui?.readOnly);\n input.setRequired(this.metadata.required);\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,aAAA;EAKnB;AACA;AACA;EACO,MAAMC,YAAY,SAASF,UAAU,CAAC;IACzC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACWG,MAAMA,CAACC,aAAgC,EAAGC,WAAmB,EAAGC,SAAiB,GAAG,MAAM,EAAEC,aAAsB,EAAEC,QAAwD,EAAW;MAC1L,IAAI,CAACA,QAAQ,GAAGA,QAAQ;MACxB,IAAI,CAACC,QAAQ,GAAGL,aAAa;MAE7B,IAAI,CAAC,IAAI,CAACM,UAAU,EAAE;QAClBC,GAAG,CAACC,EAAE,CAACC,WAAW,CAAC,YAAY,CAAC;QAChC,MAAMC,WAAW,GAAGH,GAAG,CAACC,EAAE,CAACG,OAAO,CAAC,YAAY,CAAC;QAChD,IAAI,CAACC,OAAO,GAAG,IAAIF,WAAW,CAAC;UAC3BG,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACX,aAAa,EAAEF,WAAW,CAAC;UACrDc,IAAI,EAAE,IAAIb,SAAS,IAAID,WAAW;QACtC,CAAC,CAAC;QACF,IAAI,CAACe,qBAAqB,CAAC,IAAI,CAACJ,OAAO,EAAEZ,aAAa,EAAEE,SAAS,CAAC;QAClE,OAAO,IAAI,CAACU,OAAO;MACvB;MAEA,IAAI,CAACA,OAAO,GAAG,IAAIK,SAAS,CAAC;QACzBJ,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACX,aAAa,EAAEF,WAAW,CAAC;QACrDiB,KAAK,EAAE,IAAIhB,SAAS,IAAID,WAAW,GAAG;QACtCkB,qBAAqB,EAAEnB,aAAa,CAACoB,KAAK,IAAI,CAAC;QAC/CC,QAAQ,EAAE,CAACrB,aAAa,CAACQ,EAAE,EAAEc,QAAQ;QACrCC,QAAQ,EAAEvB,aAAa,CAACuB,QAAQ;QAChCC,MAAM,EAAGC,MAAyB,IAAK;UACnC,MAAMC,GAAG,GAAGD,MAAM,CAACE,YAAY,CAAC,OAAO,CAAC;UACxC,MAAMC,MAAM,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;UAC9B,IAAI,IAAI,CAACzB,QAAQ,EAAE;YACf,IAAI,CAACA,QAAQ,CAACwB,MAAM,CAACE,OAAO,EAAE,IAAI,CAACC,QAAQ,CAAC;UAChD;QACJ;MACJ,CAAC,CAAC;MAEF,IAAI,CAACf,qBAAqB,CAAC,IAAI,CAACJ,OAAO,EAAEZ,aAAa,EAAEE,SAAS,CAAC;MAElE,OAAO,IAAI,CAACU,OAAO;IACvB;;IAEA;AACJ;AACA;AACA;IACcoB,QAAQA,CAAA,EAAQ;MACtB,OAAO,IAAI,CAACpB,OAAO,GAAI,IAAI,CAACA,OAAO,CAAeoB,QAAQ,CAAC,CAAC,GAAG,IAAI;IACvE;;IAEA;AACJ;AACA;IACcC,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACrB,OAAO,IAAI,IAAI,CAACP,QAAQ,EAAE;QAC/B,IAAI,CAAC,IAAI,CAACC,UAAU,EAAE;QACtB,MAAM4B,KAAK,GAAG,IAAI,CAACtB,OAAoB;QACvCsB,KAAK,CAACC,WAAW,CAAC,CAAC,IAAI,CAAC9B,QAAQ,CAACG,EAAE,EAAEc,QAAQ,CAAC;QAC9CY,KAAK,CAACE,WAAW,CAAC,IAAI,CAAC/B,QAAQ,CAACkB,QAAQ,CAAC;MAC7C;IACJ;EACJ;EAAC,IAAAc,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAvC,YAAA,GAAAA,YAAA;EAAA,OAAAuC,SAAA;AAAA","ignoreList":[]}
@@ -10,8 +10,25 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin" {
10
10
  * Handles rendering and logic for numeric inputs.
11
11
  */
12
12
  export class NumberPlugin extends BasePlugin {
13
+ /**
14
+ * Renders a `sap.m.StepInput` component for numeric evaluation.
15
+ *
16
+ * @param fieldMetadata The specific JSON schema properties for this field.
17
+ * @param bindingPath The JSON path bound to this control.
18
+ * @param modelName The UI5 JSONModel name.
19
+ * @param engineScopeId The deterministic scope ID.
20
+ * @param onChange The callback fired on value change.
21
+ * @returns {Control} The configured StepInput control.
22
+ */
13
23
  render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control;
24
+ /**
25
+ * Retrieves the current numeric state.
26
+ * @returns {any} The numeric value.
27
+ */
14
28
  protected getValue(): any;
29
+ /**
30
+ * Applies dynamic read-only state.
31
+ */
15
32
  protected applyState(): void;
16
33
  }
17
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NumberPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,0DAA0D,CAAC;IAC1E;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;OAEG;IACH,MAAa,YAAa,SAAQ,UAAU;QACjC,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAG,WAAW,EAAE,MAAM,EAAG,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QAmC7L,SAAS,CAAC,QAAQ,IAAI,GAAG;QAIzB,SAAS,CAAC,UAAU,IAAI,IAAI;KAQ/B;CAEA"}
1
+ {"version":3,"file":"NumberPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,0DAA0D,CAAC;IAC1E;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;OAEG;IACH,MAAa,YAAa,SAAQ,UAAU;QACxC;;;;;;;;;WASG;QACI,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAG,WAAW,EAAE,MAAM,EAAG,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QAmC7L;;;WAGG;QACH,SAAS,CAAC,QAAQ,IAAI,GAAG;QAIzB;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAQ/B;CAEA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumberPlugin.js","names":["BasePlugin","___BasePlugin","NumberPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","applyCommonDirectives","StepInput","value","displayValuePrecision","scale","editable","readOnly","required","change","oEvent","val","getParameter","result","validate","isValid","fieldKey","getValue","applyState","input","setEditable","setRequired","__exports","__esModule"],"sources":["NumberPlugin.ts"],"sourcesContent":["/**\n * @file NumberPlugin.ts\n * @description Renders a sap.m.StepInput for numeric data.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport StepInput from \"sap/m/StepInput\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering and logic for numeric inputs.\n */\nexport class NumberPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n\n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: `{${modelName}>${bindingPath}}`\n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n this.control = new StepInput({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: `{${modelName}>${bindingPath}}`,\n displayValuePrecision: fieldMetadata.scale || 0,\n editable: !fieldMetadata.ui?.readOnly,\n required: fieldMetadata.required,\n change: (oEvent: sap.ui.base.Event) => {\n const val = oEvent.getParameter(\"value\");\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\n }\n });\n\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n\n return this.control as Control;\n }\n\n protected getValue(): any {\n return this.control ? (this.control as StepInput).getValue() : null;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n const input = this.control as StepInput;\n input.setEditable(!this.metadata.ui?.readOnly);\n input.setRequired(this.metadata.required);\n }\n }\n}\n"],"mappings":"4EAAA,MAKSA,EAAUC,EAAA,cAQZ,MAAMC,UAAqBF,EACvBG,OAAOC,EAAmCC,EAAsBC,EAAoB,OAAQC,EAAwBC,GACvHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAEhB,IAAKK,KAAKE,WAAY,CAClBC,IAAIC,GAAGC,YAAY,cACnB,MAAMC,EAAcH,IAAIC,GAAGG,QAAQ,cACnCP,KAAKQ,QAAU,IAAIF,EAAY,CAC3BG,GAAIT,KAAKU,iBAAiBZ,EAAeF,GACzCe,KAAM,IAAId,KAAaD,OAE3BI,KAAKY,sBAAsBZ,KAAKQ,QAASb,EAAeE,GACxD,OAAOG,KAAKQ,OAChB,CAEAR,KAAKQ,QAAU,IAAIK,EAAU,CACzBJ,GAAIT,KAAKU,iBAAiBZ,EAAeF,GACzCkB,MAAO,IAAIjB,KAAaD,KACxBmB,sBAAuBpB,EAAcqB,OAAS,EAC9CC,UAAWtB,EAAcS,IAAIc,SAC7BC,SAAUxB,EAAcwB,SACxBC,OAASC,IACL,MAAMC,EAAMD,EAAOE,aAAa,SAChC,MAAMC,EAASxB,KAAKyB,WACpB,GAAIzB,KAAKD,SAAU,CACfC,KAAKD,SAASyB,EAAOE,QAAS1B,KAAK2B,SACvC,KAIR3B,KAAKY,sBAAsBZ,KAAKQ,QAASb,EAAeE,GAExD,OAAOG,KAAKQ,OAChB,CAEUoB,WACN,OAAO5B,KAAKQ,QAAWR,KAAKQ,QAAsBoB,WAAa,IACnE,CAEUC,aACN,GAAI7B,KAAKQ,SAAWR,KAAKC,SAAU,CAC/B,IAAKD,KAAKE,WAAY,OACtB,MAAM4B,EAAQ9B,KAAKQ,QACnBsB,EAAMC,aAAa/B,KAAKC,SAASG,IAAIc,UACrCY,EAAME,YAAYhC,KAAKC,SAASkB,SACpC,CACJ,EACH,IAAAc,EAAA,CAAAC,WAAA,MAAAD,EAAAxC,eAAA,OAAAwC,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"NumberPlugin.js","names":["BasePlugin","___BasePlugin","NumberPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","applyCommonDirectives","StepInput","value","displayValuePrecision","scale","editable","readOnly","required","change","oEvent","val","getParameter","result","validate","isValid","fieldKey","getValue","applyState","input","setEditable","setRequired","__exports","__esModule"],"sources":["NumberPlugin.ts"],"sourcesContent":["/**\n * @file NumberPlugin.ts\n * @description Renders a sap.m.StepInput for numeric data.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport StepInput from \"sap/m/StepInput\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering and logic for numeric inputs.\n */\nexport class NumberPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.StepInput` component for numeric evaluation.\n * \n * @param fieldMetadata The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured StepInput control.\n */\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n\n if (!this.isEditable) {\n sap.ui.requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: `{${modelName}>${bindingPath}}`\n });\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n this.control = new StepInput({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: `{${modelName}>${bindingPath}}`,\n displayValuePrecision: fieldMetadata.scale || 0,\n editable: !fieldMetadata.ui?.readOnly,\n required: fieldMetadata.required,\n change: (oEvent: sap.ui.base.Event) => {\n const val = oEvent.getParameter(\"value\");\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\n }\n });\n\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n\n return this.control as Control;\n }\n\n /**\n * Retrieves the current numeric state.\n * @returns {any} The numeric value.\n */\n protected getValue(): any {\n return this.control ? (this.control as StepInput).getValue() : null;\n }\n\n /**\n * Applies dynamic read-only state.\n */\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n const input = this.control as StepInput;\n input.setEditable(!this.metadata.ui?.readOnly);\n input.setRequired(this.metadata.required);\n }\n }\n}\n"],"mappings":"4EAAA,MAKSA,EAAUC,EAAA,cAQZ,MAAMC,UAAqBF,EAWvBG,OAAOC,EAAmCC,EAAsBC,EAAoB,OAAQC,EAAwBC,GACvHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAEhB,IAAKK,KAAKE,WAAY,CAClBC,IAAIC,GAAGC,YAAY,cACnB,MAAMC,EAAcH,IAAIC,GAAGG,QAAQ,cACnCP,KAAKQ,QAAU,IAAIF,EAAY,CAC3BG,GAAIT,KAAKU,iBAAiBZ,EAAeF,GACzCe,KAAM,IAAId,KAAaD,OAE3BI,KAAKY,sBAAsBZ,KAAKQ,QAASb,EAAeE,GACxD,OAAOG,KAAKQ,OAChB,CAEAR,KAAKQ,QAAU,IAAIK,EAAU,CACzBJ,GAAIT,KAAKU,iBAAiBZ,EAAeF,GACzCkB,MAAO,IAAIjB,KAAaD,KACxBmB,sBAAuBpB,EAAcqB,OAAS,EAC9CC,UAAWtB,EAAcS,IAAIc,SAC7BC,SAAUxB,EAAcwB,SACxBC,OAASC,IACL,MAAMC,EAAMD,EAAOE,aAAa,SAChC,MAAMC,EAASxB,KAAKyB,WACpB,GAAIzB,KAAKD,SAAU,CACfC,KAAKD,SAASyB,EAAOE,QAAS1B,KAAK2B,SACvC,KAIR3B,KAAKY,sBAAsBZ,KAAKQ,QAASb,EAAeE,GAExD,OAAOG,KAAKQ,OAChB,CAMUoB,WACN,OAAO5B,KAAKQ,QAAWR,KAAKQ,QAAsBoB,WAAa,IACnE,CAKUC,aACN,GAAI7B,KAAKQ,SAAWR,KAAKC,SAAU,CAC/B,IAAKD,KAAKE,WAAY,OACtB,MAAM4B,EAAQ9B,KAAKQ,QACnBsB,EAAMC,aAAa/B,KAAKC,SAASG,IAAIc,UACrCY,EAAME,YAAYhC,KAAKC,SAASkB,SACpC,CACJ,EACH,IAAAc,EAAA,CAAAC,WAAA,MAAAD,EAAAxC,eAAA,OAAAwC,CAAA","ignoreList":[]}
@@ -12,6 +12,16 @@ import Control from "sap/ui/core/Control";
12
12
  * Handles rendering and logic for numeric inputs.
13
13
  */
14
14
  export class NumberPlugin extends BasePlugin {
15
+ /**
16
+ * Renders a `sap.m.StepInput` component for numeric evaluation.
17
+ *
18
+ * @param fieldMetadata The specific JSON schema properties for this field.
19
+ * @param bindingPath The JSON path bound to this control.
20
+ * @param modelName The UI5 JSONModel name.
21
+ * @param engineScopeId The deterministic scope ID.
22
+ * @param onChange The callback fired on value change.
23
+ * @returns {Control} The configured StepInput control.
24
+ */
15
25
  public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {
16
26
  this.onChange = onChange;
17
27
  this.metadata = fieldMetadata;
@@ -47,10 +57,17 @@ export class NumberPlugin extends BasePlugin {
47
57
  return this.control as Control;
48
58
  }
49
59
 
60
+ /**
61
+ * Retrieves the current numeric state.
62
+ * @returns {any} The numeric value.
63
+ */
50
64
  protected getValue(): any {
51
65
  return this.control ? (this.control as StepInput).getValue() : null;
52
66
  }
53
67
 
68
+ /**
69
+ * Applies dynamic read-only state.
70
+ */
54
71
  protected applyState(): void {
55
72
  if (this.control && this.metadata) {
56
73
  if (!this.isEditable) return;
@@ -7,6 +7,16 @@ sap.ui.define(["./BasePlugin", "sap/m/Button"], function (___BasePlugin, Button)
7
7
  */
8
8
  const BasePlugin = ___BasePlugin["BasePlugin"];
9
9
  class ObjectPlugin extends BasePlugin {
10
+ /**
11
+ * Renders a `sap.m.Button` to open a nested Object form dialog.
12
+ *
13
+ * @param field The specific JSON schema properties for this field.
14
+ * @param bindingPath The JSON path bound to this control.
15
+ * @param modelName The UI5 JSONModel name.
16
+ * @param engineScopeId The deterministic scope ID.
17
+ * @param onChange The callback fired on value change.
18
+ * @returns {Control} The configured Button control.
19
+ */
10
20
  render(field, bindingPath, modelName = "meta", engineScopeId, onChange) {
11
21
  this.onChange = onChange;
12
22
  this.metadata = field;
@@ -53,14 +63,27 @@ sap.ui.define(["./BasePlugin", "sap/m/Button"], function (___BasePlugin, Button)
53
63
  });
54
64
  return this.control;
55
65
  }
66
+
67
+ /**
68
+ * Validates the object plugin (always true as validation is deferred to the dialog host).
69
+ * @returns {IPluginValidationResult} The validation result.
70
+ */
56
71
  validate() {
57
72
  return {
58
73
  isValid: true
59
74
  };
60
75
  }
76
+
77
+ /**
78
+ * Read-only component for the engine, returns null.
79
+ */
61
80
  getValue() {
62
81
  return null;
63
82
  }
83
+
84
+ /**
85
+ * Read-only component, no dynamic state handling needed for the button itself.
86
+ */
64
87
  applyState() {
65
88
  // No dynamic state handling needed for the button
66
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectPlugin-dbg.js","names":["BasePlugin","___BasePlugin","ObjectPlugin","render","field","bindingPath","modelName","engineScopeId","onChange","metadata","propKey","startsWith","substring","subSchema","type","title","ui","label","properties","uiLayout","control","Button","id","generateStableId","text","isEditable","icon","press","oEvent","btn","getSource","parentModel","getModel","bindingContext","getBindingContext","updatePath","ctxPath","getPath","endsWith","nestedData","getProperty","sap","require","GeneratorHost","host","schemaDefinition","data","editable","attachSubmit","e","payload","getParameter","setProperty","buttonText","dialogButtonText","openInDialog","validate","isValid","getValue","applyState","__exports","__esModule"],"sources":["ObjectPlugin.ts"],"sourcesContent":["/**\n * @file ObjectPlugin.ts\n * @description Renders a button that opens a dialog to edit a nested object structure.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPluginValidationResult } from \"../../interfaces/IPlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Control from \"sap/ui/core/Control\";\nimport Button from \"sap/m/Button\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\n\nexport class ObjectPlugin extends BasePlugin {\n public render(field: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = field;\n const propKey = bindingPath.startsWith(\"/\") ? bindingPath.substring(1) : bindingPath;\n \n const subSchema: any = {\n type: \"object\",\n title: field.ui?.label || propKey,\n properties: field.properties || {}\n };\n \n if (field.uiLayout) {\n subSchema.uiLayout = field.uiLayout;\n }\n\n this.control = new Button({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: !this.isEditable ? \"View Details\" : \"Edit Details\",\n icon: !this.isEditable ? \"sap-icon://display\" : \"sap-icon://form\",\n press: (oEvent: sap.ui.base.Event) => {\n const btn = oEvent.getSource() as Button;\n const parentModel = btn.getModel(modelName) as JSONModel;\n if (!parentModel) return;\n \n const bindingContext = btn.getBindingContext(modelName);\n let updatePath = bindingPath;\n if (bindingContext && !bindingPath.startsWith(\"/\")) {\n const ctxPath = bindingContext.getPath();\n updatePath = ctxPath.endsWith(\"/\") ? ctxPath + bindingPath : (ctxPath === \"/\" ? \"/\" + bindingPath : ctxPath + \"/\" + bindingPath);\n }\n \n const nestedData = parentModel.getProperty(updatePath) || {};\n\n sap.ui.require([\"nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost\"], (GeneratorHost: any) => {\n const host = new GeneratorHost({\n schemaDefinition: subSchema,\n data: nestedData,\n editable: this.isEditable\n });\n\n if (!!this.isEditable) {\n host.attachSubmit((e: any) => {\n const payload = e.getParameter(\"payload\");\n parentModel.setProperty(updatePath, payload);\n });\n }\n\n const buttonText = field.ui?.dialogButtonText || (!this.isEditable ? \"Close\" : \"OK\");\n host.openInDialog(`Nested Details: ${field.ui?.label || propKey}`, buttonText);\n });\n }\n });\n\n return this.control as Control;\n }\n\n public validate(): IPluginValidationResult {\n return { isValid: true };\n }\n\n protected getValue(): any {\n return null;\n }\n\n protected applyState(): void {\n // No dynamic state handling needed for the button\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ObjectPlugin-dbg.js","names":["BasePlugin","___BasePlugin","ObjectPlugin","render","field","bindingPath","modelName","engineScopeId","onChange","metadata","propKey","startsWith","substring","subSchema","type","title","ui","label","properties","uiLayout","control","Button","id","generateStableId","text","isEditable","icon","press","oEvent","btn","getSource","parentModel","getModel","bindingContext","getBindingContext","updatePath","ctxPath","getPath","endsWith","nestedData","getProperty","sap","require","GeneratorHost","host","schemaDefinition","data","editable","attachSubmit","e","payload","getParameter","setProperty","buttonText","dialogButtonText","openInDialog","validate","isValid","getValue","applyState","__exports","__esModule"],"sources":["ObjectPlugin.ts"],"sourcesContent":["/**\n * @file ObjectPlugin.ts\n * @description Renders a button that opens a dialog to edit a nested object structure.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPluginValidationResult } from \"../../interfaces/IPlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Control from \"sap/ui/core/Control\";\nimport Button from \"sap/m/Button\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\n\nexport class ObjectPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.Button` to open a nested Object form dialog.\n * \n * @param field The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured Button control.\n */\n public render(field: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = field;\n const propKey = bindingPath.startsWith(\"/\") ? bindingPath.substring(1) : bindingPath;\n \n const subSchema: any = {\n type: \"object\",\n title: field.ui?.label || propKey,\n properties: field.properties || {}\n };\n \n if (field.uiLayout) {\n subSchema.uiLayout = field.uiLayout;\n }\n\n this.control = new Button({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: !this.isEditable ? \"View Details\" : \"Edit Details\",\n icon: !this.isEditable ? \"sap-icon://display\" : \"sap-icon://form\",\n press: (oEvent: sap.ui.base.Event) => {\n const btn = oEvent.getSource() as Button;\n const parentModel = btn.getModel(modelName) as JSONModel;\n if (!parentModel) return;\n \n const bindingContext = btn.getBindingContext(modelName);\n let updatePath = bindingPath;\n if (bindingContext && !bindingPath.startsWith(\"/\")) {\n const ctxPath = bindingContext.getPath();\n updatePath = ctxPath.endsWith(\"/\") ? ctxPath + bindingPath : (ctxPath === \"/\" ? \"/\" + bindingPath : ctxPath + \"/\" + bindingPath);\n }\n \n const nestedData = parentModel.getProperty(updatePath) || {};\n\n sap.ui.require([\"nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost\"], (GeneratorHost: any) => {\n const host = new GeneratorHost({\n schemaDefinition: subSchema,\n data: nestedData,\n editable: this.isEditable\n });\n\n if (!!this.isEditable) {\n host.attachSubmit((e: any) => {\n const payload = e.getParameter(\"payload\");\n parentModel.setProperty(updatePath, payload);\n });\n }\n\n const buttonText = field.ui?.dialogButtonText || (!this.isEditable ? \"Close\" : \"OK\");\n host.openInDialog(`Nested Details: ${field.ui?.label || propKey}`, buttonText);\n });\n }\n });\n\n return this.control as Control;\n }\n\n /**\n * Validates the object plugin (always true as validation is deferred to the dialog host).\n * @returns {IPluginValidationResult} The validation result.\n */\n public validate(): IPluginValidationResult {\n return { isValid: true };\n }\n\n /**\n * Read-only component for the engine, returns null.\n */\n protected getValue(): any {\n return null;\n }\n\n /**\n * Read-only component, no dynamic state handling needed for the button itself.\n */\n protected applyState(): void {\n // No dynamic state handling needed for the button\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,9 +8,29 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin" {
8
8
  import { IPropertyMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
9
9
  import Control from "sap/ui/core/Control";
10
10
  export class ObjectPlugin extends BasePlugin {
11
+ /**
12
+ * Renders a `sap.m.Button` to open a nested Object form dialog.
13
+ *
14
+ * @param field The specific JSON schema properties for this field.
15
+ * @param bindingPath The JSON path bound to this control.
16
+ * @param modelName The UI5 JSONModel name.
17
+ * @param engineScopeId The deterministic scope ID.
18
+ * @param onChange The callback fired on value change.
19
+ * @returns {Control} The configured Button control.
20
+ */
11
21
  render(field: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control;
22
+ /**
23
+ * Validates the object plugin (always true as validation is deferred to the dialog host).
24
+ * @returns {IPluginValidationResult} The validation result.
25
+ */
12
26
  validate(): IPluginValidationResult;
27
+ /**
28
+ * Read-only component for the engine, returns null.
29
+ */
13
30
  protected getValue(): any;
31
+ /**
32
+ * Read-only component, no dynamic state handling needed for the button itself.
33
+ */
14
34
  protected applyState(): void;
15
35
  }
16
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,0DAA0D,CAAC;IAC1E;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;IACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAClF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAI1C,MAAa,YAAa,SAAQ,UAAU;QACjC,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAG,WAAW,EAAE,MAAM,EAAG,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QAwD9K,QAAQ,IAAI,uBAAuB;QAI1C,SAAS,CAAC,QAAQ,IAAI,GAAG;QAIzB,SAAS,CAAC,UAAU,IAAI,IAAI;KAG/B;CAEA"}
1
+ {"version":3,"file":"ObjectPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,0DAA0D,CAAC;IAC1E;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;IACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAClF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAI1C,MAAa,YAAa,SAAQ,UAAU;QACxC;;;;;;;;;WASG;QACI,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAG,WAAW,EAAE,MAAM,EAAG,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QAwDrL;;;WAGG;QACI,QAAQ,IAAI,uBAAuB;QAI1C;;WAEG;QACH,SAAS,CAAC,QAAQ,IAAI,GAAG;QAIzB;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAG/B;CAEA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectPlugin.js","names":["BasePlugin","___BasePlugin","ObjectPlugin","render","field","bindingPath","modelName","engineScopeId","onChange","this","metadata","propKey","startsWith","substring","subSchema","type","title","ui","label","properties","uiLayout","control","Button","id","generateStableId","text","isEditable","icon","press","oEvent","btn","getSource","parentModel","getModel","bindingContext","getBindingContext","updatePath","ctxPath","getPath","endsWith","nestedData","getProperty","sap","require","GeneratorHost","host","schemaDefinition","data","editable","attachSubmit","e","payload","getParameter","setProperty","buttonText","dialogButtonText","openInDialog","validate","isValid","getValue","applyState","__exports","__esModule"],"sources":["ObjectPlugin.ts"],"sourcesContent":["/**\n * @file ObjectPlugin.ts\n * @description Renders a button that opens a dialog to edit a nested object structure.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPluginValidationResult } from \"../../interfaces/IPlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Control from \"sap/ui/core/Control\";\nimport Button from \"sap/m/Button\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\n\nexport class ObjectPlugin extends BasePlugin {\n public render(field: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = field;\n const propKey = bindingPath.startsWith(\"/\") ? bindingPath.substring(1) : bindingPath;\n \n const subSchema: any = {\n type: \"object\",\n title: field.ui?.label || propKey,\n properties: field.properties || {}\n };\n \n if (field.uiLayout) {\n subSchema.uiLayout = field.uiLayout;\n }\n\n this.control = new Button({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: !this.isEditable ? \"View Details\" : \"Edit Details\",\n icon: !this.isEditable ? \"sap-icon://display\" : \"sap-icon://form\",\n press: (oEvent: sap.ui.base.Event) => {\n const btn = oEvent.getSource() as Button;\n const parentModel = btn.getModel(modelName) as JSONModel;\n if (!parentModel) return;\n \n const bindingContext = btn.getBindingContext(modelName);\n let updatePath = bindingPath;\n if (bindingContext && !bindingPath.startsWith(\"/\")) {\n const ctxPath = bindingContext.getPath();\n updatePath = ctxPath.endsWith(\"/\") ? ctxPath + bindingPath : (ctxPath === \"/\" ? \"/\" + bindingPath : ctxPath + \"/\" + bindingPath);\n }\n \n const nestedData = parentModel.getProperty(updatePath) || {};\n\n sap.ui.require([\"nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost\"], (GeneratorHost: any) => {\n const host = new GeneratorHost({\n schemaDefinition: subSchema,\n data: nestedData,\n editable: this.isEditable\n });\n\n if (!!this.isEditable) {\n host.attachSubmit((e: any) => {\n const payload = e.getParameter(\"payload\");\n parentModel.setProperty(updatePath, payload);\n });\n }\n\n const buttonText = field.ui?.dialogButtonText || (!this.isEditable ? \"Close\" : \"OK\");\n host.openInDialog(`Nested Details: ${field.ui?.label || propKey}`, buttonText);\n });\n }\n });\n\n return this.control as Control;\n }\n\n public validate(): IPluginValidationResult {\n return { isValid: true };\n }\n\n protected getValue(): any {\n return null;\n }\n\n protected applyState(): void {\n // No dynamic state handling needed for the button\n }\n}\n"],"mappings":"yEAAA,MAKSA,EAAUC,EAAA,cAOZ,MAAMC,UAAqBF,EACvBG,OAAOC,EAA2BC,EAAsBC,EAAoB,OAAQC,EAAwBC,GAC/GC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAChB,MAAMO,EAAUN,EAAYO,WAAW,KAAOP,EAAYQ,UAAU,GAAKR,EAEzE,MAAMS,EAAiB,CACnBC,KAAM,SACNC,MAAOZ,EAAMa,IAAIC,OAASP,EAC1BQ,WAAYf,EAAMe,YAAc,CAAC,GAGrC,GAAIf,EAAMgB,SAAU,CAChBN,EAAUM,SAAWhB,EAAMgB,QAC/B,CAEAX,KAAKY,QAAU,IAAIC,EAAO,CACtBC,GAAId,KAAKe,iBAAiBjB,EAAeF,GACzCoB,MAAOhB,KAAKiB,WAAa,eAAiB,eAC1CC,MAAOlB,KAAKiB,WAAa,qBAAuB,kBAChDE,MAAQC,IACJ,MAAMC,EAAMD,EAAOE,YACnB,MAAMC,EAAcF,EAAIG,SAAS3B,GACjC,IAAK0B,EAAa,OAElB,MAAME,EAAiBJ,EAAIK,kBAAkB7B,GAC7C,IAAI8B,EAAa/B,EACjB,GAAI6B,IAAmB7B,EAAYO,WAAW,KAAM,CAChD,MAAMyB,EAAUH,EAAeI,UAC/BF,EAAaC,EAAQE,SAAS,KAAOF,EAAUhC,EAAegC,IAAY,IAAM,IAAMhC,EAAcgC,EAAU,IAAMhC,CACxH,CAEA,MAAMmC,EAAaR,EAAYS,YAAYL,IAAe,CAAC,EAE3DM,IAAIzB,GAAG0B,QAAQ,CAAC,0DAA4DC,IACxE,MAAMC,EAAO,IAAID,EAAc,CAC3BE,iBAAkBhC,EAClBiC,KAAMP,EACNQ,SAAUvC,KAAKiB,aAGnB,KAAMjB,KAAKiB,WAAY,CACnBmB,EAAKI,aAAcC,IACf,MAAMC,EAAUD,EAAEE,aAAa,WAC/BpB,EAAYqB,YAAYjB,EAAYe,IAE5C,CAEA,MAAMG,EAAalD,EAAMa,IAAIsC,oBAAsB9C,KAAKiB,WAAa,QAAU,MAC/EmB,EAAKW,aAAa,mBAAmBpD,EAAMa,IAAIC,OAASP,IAAW2C,QAK/E,OAAO7C,KAAKY,OAChB,CAEOoC,WACH,MAAO,CAAEC,QAAS,KACtB,CAEUC,WACN,OAAO,IACX,CAEUC,aACN,EAEP,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAA3D,eAAA,OAAA2D,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"ObjectPlugin.js","names":["BasePlugin","___BasePlugin","ObjectPlugin","render","field","bindingPath","modelName","engineScopeId","onChange","this","metadata","propKey","startsWith","substring","subSchema","type","title","ui","label","properties","uiLayout","control","Button","id","generateStableId","text","isEditable","icon","press","oEvent","btn","getSource","parentModel","getModel","bindingContext","getBindingContext","updatePath","ctxPath","getPath","endsWith","nestedData","getProperty","sap","require","GeneratorHost","host","schemaDefinition","data","editable","attachSubmit","e","payload","getParameter","setProperty","buttonText","dialogButtonText","openInDialog","validate","isValid","getValue","applyState","__exports","__esModule"],"sources":["ObjectPlugin.ts"],"sourcesContent":["/**\n * @file ObjectPlugin.ts\n * @description Renders a button that opens a dialog to edit a nested object structure.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPluginValidationResult } from \"../../interfaces/IPlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Control from \"sap/ui/core/Control\";\nimport Button from \"sap/m/Button\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\n\nexport class ObjectPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.Button` to open a nested Object form dialog.\n * \n * @param field The specific JSON schema properties for this field.\n * @param bindingPath The JSON path bound to this control.\n * @param modelName The UI5 JSONModel name.\n * @param engineScopeId The deterministic scope ID.\n * @param onChange The callback fired on value change.\n * @returns {Control} The configured Button control.\n */\n public render(field: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = field;\n const propKey = bindingPath.startsWith(\"/\") ? bindingPath.substring(1) : bindingPath;\n \n const subSchema: any = {\n type: \"object\",\n title: field.ui?.label || propKey,\n properties: field.properties || {}\n };\n \n if (field.uiLayout) {\n subSchema.uiLayout = field.uiLayout;\n }\n\n this.control = new Button({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: !this.isEditable ? \"View Details\" : \"Edit Details\",\n icon: !this.isEditable ? \"sap-icon://display\" : \"sap-icon://form\",\n press: (oEvent: sap.ui.base.Event) => {\n const btn = oEvent.getSource() as Button;\n const parentModel = btn.getModel(modelName) as JSONModel;\n if (!parentModel) return;\n \n const bindingContext = btn.getBindingContext(modelName);\n let updatePath = bindingPath;\n if (bindingContext && !bindingPath.startsWith(\"/\")) {\n const ctxPath = bindingContext.getPath();\n updatePath = ctxPath.endsWith(\"/\") ? ctxPath + bindingPath : (ctxPath === \"/\" ? \"/\" + bindingPath : ctxPath + \"/\" + bindingPath);\n }\n \n const nestedData = parentModel.getProperty(updatePath) || {};\n\n sap.ui.require([\"nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost\"], (GeneratorHost: any) => {\n const host = new GeneratorHost({\n schemaDefinition: subSchema,\n data: nestedData,\n editable: this.isEditable\n });\n\n if (!!this.isEditable) {\n host.attachSubmit((e: any) => {\n const payload = e.getParameter(\"payload\");\n parentModel.setProperty(updatePath, payload);\n });\n }\n\n const buttonText = field.ui?.dialogButtonText || (!this.isEditable ? \"Close\" : \"OK\");\n host.openInDialog(`Nested Details: ${field.ui?.label || propKey}`, buttonText);\n });\n }\n });\n\n return this.control as Control;\n }\n\n /**\n * Validates the object plugin (always true as validation is deferred to the dialog host).\n * @returns {IPluginValidationResult} The validation result.\n */\n public validate(): IPluginValidationResult {\n return { isValid: true };\n }\n\n /**\n * Read-only component for the engine, returns null.\n */\n protected getValue(): any {\n return null;\n }\n\n /**\n * Read-only component, no dynamic state handling needed for the button itself.\n */\n protected applyState(): void {\n // No dynamic state handling needed for the button\n }\n}\n"],"mappings":"yEAAA,MAKSA,EAAUC,EAAA,cAOZ,MAAMC,UAAqBF,EAWvBG,OAAOC,EAA2BC,EAAsBC,EAAoB,OAAQC,EAAwBC,GAC/GC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAChB,MAAMO,EAAUN,EAAYO,WAAW,KAAOP,EAAYQ,UAAU,GAAKR,EAEzE,MAAMS,EAAiB,CACnBC,KAAM,SACNC,MAAOZ,EAAMa,IAAIC,OAASP,EAC1BQ,WAAYf,EAAMe,YAAc,CAAC,GAGrC,GAAIf,EAAMgB,SAAU,CAChBN,EAAUM,SAAWhB,EAAMgB,QAC/B,CAEAX,KAAKY,QAAU,IAAIC,EAAO,CACtBC,GAAId,KAAKe,iBAAiBjB,EAAeF,GACzCoB,MAAOhB,KAAKiB,WAAa,eAAiB,eAC1CC,MAAOlB,KAAKiB,WAAa,qBAAuB,kBAChDE,MAAQC,IACJ,MAAMC,EAAMD,EAAOE,YACnB,MAAMC,EAAcF,EAAIG,SAAS3B,GACjC,IAAK0B,EAAa,OAElB,MAAME,EAAiBJ,EAAIK,kBAAkB7B,GAC7C,IAAI8B,EAAa/B,EACjB,GAAI6B,IAAmB7B,EAAYO,WAAW,KAAM,CAChD,MAAMyB,EAAUH,EAAeI,UAC/BF,EAAaC,EAAQE,SAAS,KAAOF,EAAUhC,EAAegC,IAAY,IAAM,IAAMhC,EAAcgC,EAAU,IAAMhC,CACxH,CAEA,MAAMmC,EAAaR,EAAYS,YAAYL,IAAe,CAAC,EAE3DM,IAAIzB,GAAG0B,QAAQ,CAAC,0DAA4DC,IACxE,MAAMC,EAAO,IAAID,EAAc,CAC3BE,iBAAkBhC,EAClBiC,KAAMP,EACNQ,SAAUvC,KAAKiB,aAGnB,KAAMjB,KAAKiB,WAAY,CACnBmB,EAAKI,aAAcC,IACf,MAAMC,EAAUD,EAAEE,aAAa,WAC/BpB,EAAYqB,YAAYjB,EAAYe,IAE5C,CAEA,MAAMG,EAAalD,EAAMa,IAAIsC,oBAAsB9C,KAAKiB,WAAa,QAAU,MAC/EmB,EAAKW,aAAa,mBAAmBpD,EAAMa,IAAIC,OAASP,IAAW2C,QAK/E,OAAO7C,KAAKY,OAChB,CAMOoC,WACH,MAAO,CAAEC,QAAS,KACtB,CAKUC,WACN,OAAO,IACX,CAKUC,aACN,EAEP,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAA3D,eAAA,OAAA2D,CAAA","ignoreList":[]}
@@ -11,6 +11,16 @@ import Button from "sap/m/Button";
11
11
  import JSONModel from "sap/ui/model/json/JSONModel";
12
12
 
13
13
  export class ObjectPlugin extends BasePlugin {
14
+ /**
15
+ * Renders a `sap.m.Button` to open a nested Object form dialog.
16
+ *
17
+ * @param field The specific JSON schema properties for this field.
18
+ * @param bindingPath The JSON path bound to this control.
19
+ * @param modelName The UI5 JSONModel name.
20
+ * @param engineScopeId The deterministic scope ID.
21
+ * @param onChange The callback fired on value change.
22
+ * @returns {Control} The configured Button control.
23
+ */
14
24
  public render(field: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {
15
25
  this.onChange = onChange;
16
26
  this.metadata = field;
@@ -67,14 +77,24 @@ export class ObjectPlugin extends BasePlugin {
67
77
  return this.control as Control;
68
78
  }
69
79
 
80
+ /**
81
+ * Validates the object plugin (always true as validation is deferred to the dialog host).
82
+ * @returns {IPluginValidationResult} The validation result.
83
+ */
70
84
  public validate(): IPluginValidationResult {
71
85
  return { isValid: true };
72
86
  }
73
87
 
88
+ /**
89
+ * Read-only component for the engine, returns null.
90
+ */
74
91
  protected getValue(): any {
75
92
  return null;
76
93
  }
77
94
 
95
+ /**
96
+ * Read-only component, no dynamic state handling needed for the button itself.
97
+ */
78
98
  protected applyState(): void {
79
99
  // No dynamic state handling needed for the button
80
100
  }