@siliconst/metaui 1.4.5 → 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 (329) 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 +49 -6
  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 +48 -5
  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 +1 -1
  13. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  14. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +49 -5
  15. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +32 -1
  16. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -1
  17. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +7 -0
  18. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -1
  19. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +1 -1
  20. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -1
  21. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +11 -1
  22. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +20 -0
  23. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -1
  24. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +12 -0
  25. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -1
  26. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +1 -1
  27. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -1
  28. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +21 -0
  29. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +9 -0
  30. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -1
  31. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +7 -0
  32. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -1
  33. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -1
  34. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +7 -0
  35. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +13 -0
  36. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -1
  37. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +10 -0
  38. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -1
  39. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -1
  40. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +10 -0
  41. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +46 -10
  42. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +17 -5
  44. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  45. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  46. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  47. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +48 -8
  48. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +5 -0
  49. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +4 -0
  51. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  52. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  53. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +4 -0
  54. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +4 -0
  55. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  56. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +4 -0
  57. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  58. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +4 -0
  60. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +4 -0
  61. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +4 -0
  63. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
  64. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  65. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +4 -0
  66. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js +45 -12
  67. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -1
  68. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts +6 -0
  69. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts.map +1 -1
  70. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js +1 -1
  71. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +25 -12
  73. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +30 -17
  74. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  75. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +8 -8
  76. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  77. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  78. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +39 -32
  80. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +17 -3
  81. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -1
  82. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts +4 -0
  83. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -1
  84. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +1 -1
  85. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +13 -3
  87. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +158 -106
  88. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +25 -26
  90. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  91. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  93. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +176 -113
  94. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +26 -0
  95. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  96. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +22 -0
  97. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  99. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +22 -0
  100. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +6 -0
  101. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  102. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +5 -0
  103. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +5 -0
  106. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
  107. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +3 -3
  108. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
  109. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +3 -3
  110. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js +10 -0
  111. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout-dbg.js.map +1 -1
  112. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts +9 -0
  113. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.d.ts.map +1 -1
  114. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.js.map +1 -1
  115. package/src/nz/co/siliconst/ui5/metaui/layouts/CompactLayout.ts +9 -0
  116. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +10 -0
  117. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  118. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts +9 -0
  119. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  120. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  121. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +9 -0
  122. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +2 -2
  123. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  124. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  126. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +2 -2
  127. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js +9 -0
  128. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout-dbg.js.map +1 -1
  129. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts +8 -0
  130. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.d.ts.map +1 -1
  131. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.js.map +1 -1
  132. package/src/nz/co/siliconst/ui5/metaui/layouts/WizardLayout.ts +8 -0
  133. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +2 -32
  134. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
  135. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +36 -37
  136. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  137. package/src/nz/co/siliconst/ui5/metaui/library.d.ts +0 -6
  138. package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
  139. package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
  140. package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
  141. package/src/nz/co/siliconst/ui5/metaui/library.ts +0 -33
  142. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js +2 -2
  143. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -1
  144. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js +1 -1
  145. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +2 -2
  147. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js +2 -2
  148. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin-dbg.js.map +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js +1 -1
  150. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.js.map +1 -1
  151. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/SubmitFormActionPlugin.ts +2 -2
  152. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +23 -5
  153. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  154. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +16 -0
  155. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  156. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
  157. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  158. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +21 -5
  159. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +21 -2
  160. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  161. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +17 -0
  162. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -1
  163. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  164. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  165. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +19 -2
  166. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +6 -6
  167. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  168. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +5 -5
  169. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  170. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
  171. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  172. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +6 -6
  173. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +3 -2
  174. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  175. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  176. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  177. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  178. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +4 -2
  179. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +21 -2
  180. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  181. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +17 -0
  182. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -1
  183. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  184. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  185. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +19 -2
  186. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +31 -2
  187. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  188. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +25 -0
  189. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -1
  190. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  191. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  192. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +27 -2
  193. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +21 -2
  194. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  195. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +17 -0
  196. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  197. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  198. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  199. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +19 -2
  200. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +21 -2
  201. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +17 -0
  203. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  204. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  205. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  206. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +19 -2
  207. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +4 -2
  208. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  209. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +2 -0
  210. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  211. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  213. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +4 -2
  214. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +21 -2
  215. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  216. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +17 -0
  217. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +19 -2
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +21 -2
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +17 -0
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +19 -2
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +18 -0
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +16 -0
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +16 -0
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +21 -2
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +17 -0
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +19 -2
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +21 -2
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +17 -0
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +19 -2
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +28 -5
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +20 -0
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +1 -1
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +25 -5
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +21 -2
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +17 -0
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +19 -2
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +21 -2
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +17 -0
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -1
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +19 -2
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +21 -2
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +17 -0
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -1
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +19 -2
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +21 -2
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +17 -0
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +19 -2
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +4 -2
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +2 -0
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -1
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +4 -2
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +21 -2
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +17 -0
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +19 -2
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +21 -2
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +17 -0
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -1
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +19 -2
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +21 -2
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +17 -0
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +19 -2
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +21 -2
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +17 -0
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +19 -2
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +2 -2
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -1
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js +1 -1
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -1
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +2 -2
  323. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js +0 -32
  324. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry-dbg.js.map +0 -1
  325. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts +0 -16
  326. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.d.ts.map +0 -1
  327. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js +0 -2
  328. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.js.map +0 -1
  329. package/src/nz/co/siliconst/ui5/metaui/core/LayoutRegistry.ts +0 -26
@@ -1 +1 @@
1
- {"version":3,"file":"NumberPlugin.js","names":["BasePlugin","___BasePlugin","NumberPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","isDisplayMode","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.isDisplayMode) {\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.isDisplayMode) 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,GAAIK,KAAKE,cAAe,CACpBC,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,GAAID,KAAKE,cAAe,OACxB,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,11 +12,21 @@ 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;
18
28
 
19
- if (this.isDisplayMode) {
29
+ if (!this.isEditable) {
20
30
  sap.ui.requireSync("sap/m/Text");
21
31
  const TextControl = sap.ui.require("sap/m/Text");
22
32
  this.control = new TextControl({
@@ -47,13 +57,20 @@ 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
- if (this.isDisplayMode) return;
73
+ if (!this.isEditable) return;
57
74
  const input = this.control as StepInput;
58
75
  input.setEditable(!this.metadata.ui?.readOnly);
59
76
  input.setRequired(this.metadata.required);
@@ -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;
@@ -21,8 +31,8 @@ sap.ui.define(["./BasePlugin", "sap/m/Button"], function (___BasePlugin, Button)
21
31
  }
22
32
  this.control = new Button({
23
33
  id: this.generateStableId(engineScopeId, bindingPath),
24
- text: this.isDisplayMode ? "View Details" : "Edit Details",
25
- icon: this.isDisplayMode ? "sap-icon://display" : "sap-icon://form",
34
+ text: !this.isEditable ? "View Details" : "Edit Details",
35
+ icon: !this.isEditable ? "sap-icon://display" : "sap-icon://form",
26
36
  press: oEvent => {
27
37
  const btn = oEvent.getSource();
28
38
  const parentModel = btn.getModel(modelName);
@@ -38,29 +48,42 @@ sap.ui.define(["./BasePlugin", "sap/m/Button"], function (___BasePlugin, Button)
38
48
  const host = new GeneratorHost({
39
49
  schemaDefinition: subSchema,
40
50
  data: nestedData,
41
- displayMode: this.isDisplayMode
51
+ editable: this.isEditable
42
52
  });
43
- if (!this.isDisplayMode) {
53
+ if (!!this.isEditable) {
44
54
  host.attachSubmit(e => {
45
55
  const payload = e.getParameter("payload");
46
56
  parentModel.setProperty(updatePath, payload);
47
57
  });
48
58
  }
49
- const buttonText = field.ui?.dialogButtonText || (this.isDisplayMode ? "Close" : "OK");
59
+ const buttonText = field.ui?.dialogButtonText || (!this.isEditable ? "Close" : "OK");
50
60
  host.openInDialog(`Nested Details: ${field.ui?.label || propKey}`, buttonText);
51
61
  });
52
62
  }
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","isDisplayMode","icon","press","oEvent","btn","getSource","parentModel","getModel","bindingContext","getBindingContext","updatePath","ctxPath","getPath","endsWith","nestedData","getProperty","sap","require","GeneratorHost","host","schemaDefinition","data","displayMode","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.isDisplayMode ? \"View Details\" : \"Edit Details\",\n icon: this.isDisplayMode ? \"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 displayMode: this.isDisplayMode\n });\n\n if (!this.isDisplayMode) {\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.isDisplayMode ? \"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,2 +1,2 @@
1
- sap.ui.define(["./BasePlugin","sap/m/Button"],function(t,e){"use strict";const i=t["BasePlugin"];class s extends i{render(t,i,s="meta",o,a){this.onChange=a;this.metadata=t;const n=i.startsWith("/")?i.substring(1):i;const r={type:"object",title:t.ui?.label||n,properties:t.properties||{}};if(t.uiLayout){r.uiLayout=t.uiLayout}this.control=new e({id:this.generateStableId(o,i),text:this.isDisplayMode?"View Details":"Edit Details",icon:this.isDisplayMode?"sap-icon://display":"sap-icon://form",press:e=>{const o=e.getSource();const a=o.getModel(s);if(!a)return;const l=o.getBindingContext(s);let u=i;if(l&&!i.startsWith("/")){const t=l.getPath();u=t.endsWith("/")?t+i:t==="/"?"/"+i:t+"/"+i}const c=a.getProperty(u)||{};sap.ui.require(["nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost"],e=>{const i=new e({schemaDefinition:r,data:c,displayMode:this.isDisplayMode});if(!this.isDisplayMode){i.attachSubmit(t=>{const e=t.getParameter("payload");a.setProperty(u,e)})}const s=t.ui?.dialogButtonText||(this.isDisplayMode?"Close":"OK");i.openInDialog(`Nested Details: ${t.ui?.label||n}`,s)})}});return this.control}validate(){return{isValid:true}}getValue(){return null}applyState(){}}var o={__esModule:true};o.ObjectPlugin=s;return o});
1
+ sap.ui.define(["./BasePlugin","sap/m/Button"],function(t,e){"use strict";const i=t["BasePlugin"];class s extends i{render(t,i,s="meta",a,n){this.onChange=n;this.metadata=t;const o=i.startsWith("/")?i.substring(1):i;const r={type:"object",title:t.ui?.label||o,properties:t.properties||{}};if(t.uiLayout){r.uiLayout=t.uiLayout}this.control=new e({id:this.generateStableId(a,i),text:!this.isEditable?"View Details":"Edit Details",icon:!this.isEditable?"sap-icon://display":"sap-icon://form",press:e=>{const a=e.getSource();const n=a.getModel(s);if(!n)return;const l=a.getBindingContext(s);let u=i;if(l&&!i.startsWith("/")){const t=l.getPath();u=t.endsWith("/")?t+i:t==="/"?"/"+i:t+"/"+i}const c=n.getProperty(u)||{};sap.ui.require(["nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost"],e=>{const i=new e({schemaDefinition:r,data:c,editable:this.isEditable});if(!!this.isEditable){i.attachSubmit(t=>{const e=t.getParameter("payload");n.setProperty(u,e)})}const s=t.ui?.dialogButtonText||(!this.isEditable?"Close":"OK");i.openInDialog(`Nested Details: ${t.ui?.label||o}`,s)})}});return this.control}validate(){return{isValid:true}}getValue(){return null}applyState(){}}var a={__esModule:true};a.ObjectPlugin=s;return a});
2
2
  //# sourceMappingURL=ObjectPlugin.js.map
@@ -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","isDisplayMode","icon","press","oEvent","btn","getSource","parentModel","getModel","bindingContext","getBindingContext","updatePath","ctxPath","getPath","endsWith","nestedData","getProperty","sap","require","GeneratorHost","host","schemaDefinition","data","displayMode","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.isDisplayMode ? \"View Details\" : \"Edit Details\",\n icon: this.isDisplayMode ? \"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 displayMode: this.isDisplayMode\n });\n\n if (!this.isDisplayMode) {\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.isDisplayMode ? \"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,KAAMhB,KAAKiB,cAAgB,eAAiB,eAC5CC,KAAMlB,KAAKiB,cAAgB,qBAAuB,kBAClDE,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,YAAavC,KAAKiB,gBAGtB,IAAKjB,KAAKiB,cAAe,CACrBmB,EAAKI,aAAcC,IACf,MAAMC,EAAUD,EAAEE,aAAa,WAC/BpB,EAAYqB,YAAYjB,EAAYe,IAE5C,CAEA,MAAMG,EAAalD,EAAMa,IAAIsC,mBAAqB9C,KAAKiB,cAAgB,QAAU,MACjFmB,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;
@@ -28,8 +38,8 @@ export class ObjectPlugin extends BasePlugin {
28
38
 
29
39
  this.control = new Button({
30
40
  id: this.generateStableId(engineScopeId, bindingPath),
31
- text: this.isDisplayMode ? "View Details" : "Edit Details",
32
- icon: this.isDisplayMode ? "sap-icon://display" : "sap-icon://form",
41
+ text: !this.isEditable ? "View Details" : "Edit Details",
42
+ icon: !this.isEditable ? "sap-icon://display" : "sap-icon://form",
33
43
  press: (oEvent: sap.ui.base.Event) => {
34
44
  const btn = oEvent.getSource() as Button;
35
45
  const parentModel = btn.getModel(modelName) as JSONModel;
@@ -48,17 +58,17 @@ export class ObjectPlugin extends BasePlugin {
48
58
  const host = new GeneratorHost({
49
59
  schemaDefinition: subSchema,
50
60
  data: nestedData,
51
- displayMode: this.isDisplayMode
61
+ editable: this.isEditable
52
62
  });
53
63
 
54
- if (!this.isDisplayMode) {
64
+ if (!!this.isEditable) {
55
65
  host.attachSubmit((e: any) => {
56
66
  const payload = e.getParameter("payload");
57
67
  parentModel.setProperty(updatePath, payload);
58
68
  });
59
69
  }
60
70
 
61
- const buttonText = field.ui?.dialogButtonText || (this.isDisplayMode ? "Close" : "OK");
71
+ const buttonText = field.ui?.dialogButtonText || (!this.isEditable ? "Close" : "OK");
62
72
  host.openInDialog(`Nested Details: ${field.ui?.label || propKey}`, buttonText);
63
73
  });
64
74
  }
@@ -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
  }
@@ -13,10 +13,20 @@ sap.ui.define(["./BasePlugin", "sap/m/RatingIndicator"], function (___BasePlugin
13
13
  * @public
14
14
  */
15
15
  class RatingIndicatorPlugin extends BasePlugin {
16
+ /**
17
+ * Renders a `sap.m.RatingIndicator` component.
18
+ *
19
+ * @param fieldMetadata The specific JSON schema properties for this field.
20
+ * @param bindingPath The JSON path bound to this control.
21
+ * @param modelName The UI5 JSONModel name.
22
+ * @param engineScopeId The deterministic scope ID.
23
+ * @param onChange The callback fired on value change.
24
+ * @returns {Control} The configured RatingIndicator control.
25
+ */
16
26
  render(fieldMetadata, bindingPath, modelName = "meta", engineScopeId, onChange) {
17
27
  this.onChange = onChange;
18
28
  this.metadata = fieldMetadata;
19
- if (this.isDisplayMode) {
29
+ if (!this.isEditable) {
20
30
  sap.ui.requireSync("sap/m/Text");
21
31
  const TextControl = sap.ui.require("sap/m/Text");
22
32
  this.control = new TextControl({
@@ -42,12 +52,21 @@ sap.ui.define(["./BasePlugin", "sap/m/RatingIndicator"], function (___BasePlugin
42
52
  this.applyCommonDirectives(this.control, fieldMetadata, modelName);
43
53
  return this.control;
44
54
  }
55
+
56
+ /**
57
+ * Retrieves the current rating value.
58
+ * @returns {any} The rating value.
59
+ */
45
60
  getValue() {
46
61
  return this.control ? this.control.getValue() : 0;
47
62
  }
63
+
64
+ /**
65
+ * Applies dynamic read-only state.
66
+ */
48
67
  applyState() {
49
68
  if (this.control && this.metadata) {
50
- if (this.isDisplayMode) return;
69
+ if (!this.isEditable) return;
51
70
  this.control.setEnabled(!this.metadata.ui?.readOnly);
52
71
  }
53
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RatingIndicatorPlugin-dbg.js","names":["BasePlugin","___BasePlugin","RatingIndicatorPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","isDisplayMode","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","applyCommonDirectives","RatingIndicator","value","enabled","readOnly","maxValue","maximum","undefined","change","oEvent","val","getParameter","result","validate","isValid","fieldKey","getValue","applyState","setEnabled","__exports","__esModule"],"sources":["RatingIndicatorPlugin.ts"],"sourcesContent":["/**\n * @file RatingIndicatorPlugin.ts\n * @description Renders a sap.m.RatingIndicator for 1-5 numeric feedback.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport RatingIndicator from \"sap/m/RatingIndicator\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering logic for rating feedback.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class RatingIndicatorPlugin 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.isDisplayMode) {\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 RatingIndicator({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n maxValue: fieldMetadata.maximum !== undefined ? fieldMetadata.maximum : 5,\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 RatingIndicator).getValue() : 0;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (this.isDisplayMode) return;\n (this.control as RatingIndicator).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,aAAA;EAKnB;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,qBAAqB,SAASF,UAAU,CAAC;IAC3CG,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,IAAI,CAACM,aAAa,EAAE;QACpBC,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,eAAe,CAAC;QAC/BJ,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACX,aAAa,EAAEF,WAAW,CAAC;QACrDiB,KAAK,EAAE,IAAIhB,SAAS,IAAID,WAAW,GAAG;QACtCkB,OAAO,EAAE,CAACnB,aAAa,CAACQ,EAAE,EAAEY,QAAQ;QACpCC,QAAQ,EAAErB,aAAa,CAACsB,OAAO,KAAKC,SAAS,GAAGvB,aAAa,CAACsB,OAAO,GAAG,CAAC;QACzEE,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,CAAqBoB,QAAQ,CAAC,CAAC,GAAG,CAAC;IAC1E;IAEUC,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACrB,OAAO,IAAI,IAAI,CAACP,QAAQ,EAAE;QAC/B,IAAI,IAAI,CAACC,aAAa,EAAE;QACvB,IAAI,CAACM,OAAO,CAAqBsB,UAAU,CAAC,CAAC,IAAI,CAAC7B,QAAQ,CAACG,EAAE,EAAEY,QAAQ,CAAC;MAC7E;IACJ;EACJ;EAAC,IAAAe,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAArC,qBAAA,GAAAA,qBAAA;EAAA,OAAAqC,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"RatingIndicatorPlugin-dbg.js","names":["BasePlugin","___BasePlugin","RatingIndicatorPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","applyCommonDirectives","RatingIndicator","value","enabled","readOnly","maxValue","maximum","undefined","change","oEvent","val","getParameter","result","validate","isValid","fieldKey","getValue","applyState","setEnabled","__exports","__esModule"],"sources":["RatingIndicatorPlugin.ts"],"sourcesContent":["/**\n * @file RatingIndicatorPlugin.ts\n * @description Renders a sap.m.RatingIndicator for 1-5 numeric feedback.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport RatingIndicator from \"sap/m/RatingIndicator\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering logic for rating feedback.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class RatingIndicatorPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.RatingIndicator` 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 RatingIndicator 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 RatingIndicator({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n maxValue: fieldMetadata.maximum !== undefined ? fieldMetadata.maximum : 5,\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 rating value.\n * @returns {any} The rating value.\n */\n protected getValue(): any {\n return this.control ? (this.control as RatingIndicator).getValue() : 0;\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 RatingIndicator).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,aAAA;EAKnB;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,qBAAqB,SAASF,UAAU,CAAC;IAClD;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,eAAe,CAAC;QAC/BJ,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACX,aAAa,EAAEF,WAAW,CAAC;QACrDiB,KAAK,EAAE,IAAIhB,SAAS,IAAID,WAAW,GAAG;QACtCkB,OAAO,EAAE,CAACnB,aAAa,CAACQ,EAAE,EAAEY,QAAQ;QACpCC,QAAQ,EAAErB,aAAa,CAACsB,OAAO,KAAKC,SAAS,GAAGvB,aAAa,CAACsB,OAAO,GAAG,CAAC;QACzEE,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,CAAqBoB,QAAQ,CAAC,CAAC,GAAG,CAAC;IAC1E;;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;QACrB,IAAI,CAACM,OAAO,CAAqBsB,UAAU,CAAC,CAAC,IAAI,CAAC7B,QAAQ,CAACG,EAAE,EAAEY,QAAQ,CAAC;MAC7E;IACJ;EACJ;EAAC,IAAAe,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAArC,qBAAA,GAAAA,qBAAA;EAAA,OAAAqC,SAAA;AAAA","ignoreList":[]}
@@ -13,8 +13,25 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugi
13
13
  * @public
14
14
  */
15
15
  export class RatingIndicatorPlugin extends BasePlugin {
16
+ /**
17
+ * Renders a `sap.m.RatingIndicator` component.
18
+ *
19
+ * @param fieldMetadata The specific JSON schema properties for this field.
20
+ * @param bindingPath The JSON path bound to this control.
21
+ * @param modelName The UI5 JSONModel name.
22
+ * @param engineScopeId The deterministic scope ID.
23
+ * @param onChange The callback fired on value change.
24
+ * @returns {Control} The configured RatingIndicator control.
25
+ */
16
26
  render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control;
27
+ /**
28
+ * Retrieves the current rating value.
29
+ * @returns {any} The rating value.
30
+ */
17
31
  protected getValue(): any;
32
+ /**
33
+ * Applies dynamic read-only state.
34
+ */
18
35
  protected applyState(): void;
19
36
  }
20
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RatingIndicatorPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,mEAAmE,CAAC;IACnF;;;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;;;;;OAKG;IACH,MAAa,qBAAsB,SAAQ,UAAU;QAC1C,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;QAkC7L,SAAS,CAAC,QAAQ,IAAI,GAAG;QAIzB,SAAS,CAAC,UAAU,IAAI,IAAI;KAM/B;CAEA"}
1
+ {"version":3,"file":"RatingIndicatorPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,mEAAmE,CAAC;IACnF;;;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;;;;;OAKG;IACH,MAAa,qBAAsB,SAAQ,UAAU;QACjD;;;;;;;;;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;QAkC7L;;;WAGG;QACH,SAAS,CAAC,QAAQ,IAAI,GAAG;QAIzB;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAM/B;CAEA"}
@@ -1,2 +1,2 @@
1
- sap.ui.define(["./BasePlugin","sap/m/RatingIndicator"],function(t,e){"use strict";const i=t["BasePlugin"];class a extends i{render(t,i,a="meta",n,s){this.onChange=s;this.metadata=t;if(this.isDisplayMode){sap.ui.requireSync("sap/m/Text");const e=sap.ui.require("sap/m/Text");this.control=new e({id:this.generateStableId(n,i),text:`{${a}>${i}}`});this.applyCommonDirectives(this.control,t,a);return this.control}this.control=new e({id:this.generateStableId(n,i),value:`{${a}>${i}}`,enabled:!t.ui?.readOnly,maxValue:t.maximum!==undefined?t.maximum:5,change:t=>{const e=t.getParameter("value");const i=this.validate();if(this.onChange){this.onChange(i.isValid,this.fieldKey)}}});this.applyCommonDirectives(this.control,t,a);return this.control}getValue(){return this.control?this.control.getValue():0}applyState(){if(this.control&&this.metadata){if(this.isDisplayMode)return;this.control.setEnabled(!this.metadata.ui?.readOnly)}}}var n={__esModule:true};n.RatingIndicatorPlugin=a;return n});
1
+ sap.ui.define(["./BasePlugin","sap/m/RatingIndicator"],function(t,e){"use strict";const i=t["BasePlugin"];class a extends i{render(t,i,a="meta",n,s){this.onChange=s;this.metadata=t;if(!this.isEditable){sap.ui.requireSync("sap/m/Text");const e=sap.ui.require("sap/m/Text");this.control=new e({id:this.generateStableId(n,i),text:`{${a}>${i}}`});this.applyCommonDirectives(this.control,t,a);return this.control}this.control=new e({id:this.generateStableId(n,i),value:`{${a}>${i}}`,enabled:!t.ui?.readOnly,maxValue:t.maximum!==undefined?t.maximum:5,change:t=>{const e=t.getParameter("value");const i=this.validate();if(this.onChange){this.onChange(i.isValid,this.fieldKey)}}});this.applyCommonDirectives(this.control,t,a);return this.control}getValue(){return this.control?this.control.getValue():0}applyState(){if(this.control&&this.metadata){if(!this.isEditable)return;this.control.setEnabled(!this.metadata.ui?.readOnly)}}}var n={__esModule:true};n.RatingIndicatorPlugin=a;return n});
2
2
  //# sourceMappingURL=RatingIndicatorPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RatingIndicatorPlugin.js","names":["BasePlugin","___BasePlugin","RatingIndicatorPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","isDisplayMode","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","applyCommonDirectives","RatingIndicator","value","enabled","readOnly","maxValue","maximum","undefined","change","oEvent","val","getParameter","result","validate","isValid","fieldKey","getValue","applyState","setEnabled","__exports","__esModule"],"sources":["RatingIndicatorPlugin.ts"],"sourcesContent":["/**\n * @file RatingIndicatorPlugin.ts\n * @description Renders a sap.m.RatingIndicator for 1-5 numeric feedback.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport RatingIndicator from \"sap/m/RatingIndicator\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering logic for rating feedback.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class RatingIndicatorPlugin 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.isDisplayMode) {\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 RatingIndicator({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n maxValue: fieldMetadata.maximum !== undefined ? fieldMetadata.maximum : 5,\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 RatingIndicator).getValue() : 0;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (this.isDisplayMode) return;\n (this.control as RatingIndicator).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"kFAAA,MAKSA,EAAUC,EAAA,cAWZ,MAAMC,UAA8BF,EAChCG,OAAOC,EAAmCC,EAAsBC,EAAoB,OAAQC,EAAwBC,GACvHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAEhB,GAAIK,KAAKE,cAAe,CACpBC,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,EAAgB,CAC/BJ,GAAIT,KAAKU,iBAAiBZ,EAAeF,GACzCkB,MAAO,IAAIjB,KAAaD,KACxBmB,SAAUpB,EAAcS,IAAIY,SAC5BC,SAAUtB,EAAcuB,UAAYC,UAAYxB,EAAcuB,QAAU,EACxEE,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,QAA4BoB,WAAa,CACzE,CAEUC,aACN,GAAI7B,KAAKQ,SAAWR,KAAKC,SAAU,CAC/B,GAAID,KAAKE,cAAe,OACvBF,KAAKQ,QAA4BsB,YAAY9B,KAAKC,SAASG,IAAIY,SACpE,CACJ,EACH,IAAAe,EAAA,CAAAC,WAAA,MAAAD,EAAAtC,wBAAA,OAAAsC,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"RatingIndicatorPlugin.js","names":["BasePlugin","___BasePlugin","RatingIndicatorPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","metadata","isEditable","sap","ui","requireSync","TextControl","require","control","id","generateStableId","text","applyCommonDirectives","RatingIndicator","value","enabled","readOnly","maxValue","maximum","undefined","change","oEvent","val","getParameter","result","validate","isValid","fieldKey","getValue","applyState","setEnabled","__exports","__esModule"],"sources":["RatingIndicatorPlugin.ts"],"sourcesContent":["/**\n * @file RatingIndicatorPlugin.ts\n * @description Renders a sap.m.RatingIndicator for 1-5 numeric feedback.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport RatingIndicator from \"sap/m/RatingIndicator\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering logic for rating feedback.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.controls\n * @public\n */\nexport class RatingIndicatorPlugin extends BasePlugin {\n /**\n * Renders a `sap.m.RatingIndicator` 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 RatingIndicator 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 RatingIndicator({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n maxValue: fieldMetadata.maximum !== undefined ? fieldMetadata.maximum : 5,\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 rating value.\n * @returns {any} The rating value.\n */\n protected getValue(): any {\n return this.control ? (this.control as RatingIndicator).getValue() : 0;\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 RatingIndicator).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"kFAAA,MAKSA,EAAUC,EAAA,cAWZ,MAAMC,UAA8BF,EAWhCG,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,EAAgB,CAC/BJ,GAAIT,KAAKU,iBAAiBZ,EAAeF,GACzCkB,MAAO,IAAIjB,KAAaD,KACxBmB,SAAUpB,EAAcS,IAAIY,SAC5BC,SAAUtB,EAAcuB,UAAYC,UAAYxB,EAAcuB,QAAU,EACxEE,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,QAA4BoB,WAAa,CACzE,CAKUC,aACN,GAAI7B,KAAKQ,SAAWR,KAAKC,SAAU,CAC/B,IAAKD,KAAKE,WAAY,OACrBF,KAAKQ,QAA4BsB,YAAY9B,KAAKC,SAASG,IAAIY,SACpE,CACJ,EACH,IAAAe,EAAA,CAAAC,WAAA,MAAAD,EAAAtC,wBAAA,OAAAsC,CAAA","ignoreList":[]}
@@ -15,11 +15,21 @@ import Control from "sap/ui/core/Control";
15
15
  * @public
16
16
  */
17
17
  export class RatingIndicatorPlugin extends BasePlugin {
18
+ /**
19
+ * Renders a `sap.m.RatingIndicator` component.
20
+ *
21
+ * @param fieldMetadata The specific JSON schema properties for this field.
22
+ * @param bindingPath The JSON path bound to this control.
23
+ * @param modelName The UI5 JSONModel name.
24
+ * @param engineScopeId The deterministic scope ID.
25
+ * @param onChange The callback fired on value change.
26
+ * @returns {Control} The configured RatingIndicator control.
27
+ */
18
28
  public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {
19
29
  this.onChange = onChange;
20
30
  this.metadata = fieldMetadata;
21
31
 
22
- if (this.isDisplayMode) {
32
+ if (!this.isEditable) {
23
33
  sap.ui.requireSync("sap/m/Text");
24
34
  const TextControl = sap.ui.require("sap/m/Text");
25
35
  this.control = new TextControl({
@@ -49,13 +59,20 @@ export class RatingIndicatorPlugin extends BasePlugin {
49
59
  return this.control as Control;
50
60
  }
51
61
 
62
+ /**
63
+ * Retrieves the current rating value.
64
+ * @returns {any} The rating value.
65
+ */
52
66
  protected getValue(): any {
53
67
  return this.control ? (this.control as RatingIndicator).getValue() : 0;
54
68
  }
55
69
 
70
+ /**
71
+ * Applies dynamic read-only state.
72
+ */
56
73
  protected applyState(): void {
57
74
  if (this.control && this.metadata) {
58
- if (this.isDisplayMode) return;
75
+ if (!this.isEditable) return;
59
76
  (this.control as RatingIndicator).setEnabled(!this.metadata.ui?.readOnly);
60
77
  }
61
78
  }
@@ -10,12 +10,22 @@ sap.ui.define(["../controls/BasePlugin", "../../controls/RichTextControl"], func
10
10
  return control !== null && typeof control.getValue === 'function';
11
11
  }
12
12
  class RichTextPlugin extends BasePlugin {
13
+ /**
14
+ * Renders a `RichTextControl` component.
15
+ *
16
+ * @param metadata 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 RichTextControl.
22
+ */
13
23
  render(metadata, bindingPath, modelName = "meta", engineScopeId, onChange) {
14
24
  this.onChange = onChange;
15
25
  this.metadata = metadata;
16
26
  this.fieldKey = bindingPath.replace('/', '');
17
27
  this.modelName = modelName;
18
- if (this.isDisplayMode) {
28
+ if (!this.isEditable) {
19
29
  sap.ui.requireSync("sap/m/FormattedText");
20
30
  const FormattedTextControl = sap.ui.require("sap/m/FormattedText");
21
31
  this.control = new FormattedTextControl({
@@ -42,15 +52,24 @@ sap.ui.define(["../controls/BasePlugin", "../../controls/RichTextControl"], func
42
52
  }
43
53
  return this.control;
44
54
  }
55
+
56
+ /**
57
+ * Retrieves the current HTML string value.
58
+ * @returns {unknown} The string value.
59
+ */
45
60
  getValue() {
46
61
  if (isValueAccessor(this.control)) {
47
62
  return this.control.getValue();
48
63
  }
49
64
  return null;
50
65
  }
66
+
67
+ /**
68
+ * Applies dynamic read-only state.
69
+ */
51
70
  applyState() {
52
71
  if (this.control && this.metadata) {
53
- if (this.isDisplayMode) return;
72
+ if (!this.isEditable) return;
54
73
  this.control.setProperty("readOnly", !!this.metadata.ui?.readOnly);
55
74
  }
56
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextPlugin-dbg.js","names":["BasePlugin","___controls_BasePlugin","RichTextControl","_interopRequireDefault","__RichTextControl","isValueAccessor","control","getValue","RichTextPlugin","render","metadata","bindingPath","modelName","engineScopeId","onChange","fieldKey","replace","isDisplayMode","sap","ui","requireSync","FormattedTextControl","require","id","generateStableId","htmlText","applyCommonDirectives","value","schemaMetadata","readOnly","attachCapture","result","validate","isValid","applyState","setProperty","__exports","__esModule"],"sources":["RichTextPlugin.ts"],"sourcesContent":["import { BasePlugin } from \"../controls/BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Control from \"sap/ui/core/Control\";\nimport RichTextControl from \"../../controls/RichTextControl\";\n\ninterface IValueAccessor {\n getValue(): unknown;\n attachCapture?(fn: Function): void;\n}\n\nfunction isValueAccessor(control: unknown): control is IValueAccessor {\n return control !== null && typeof (control as IValueAccessor).getValue === 'function';\n}\n\nexport class RichTextPlugin extends BasePlugin {\n public render(metadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = metadata;\n this.fieldKey = bindingPath.replace('/', '');\n this.modelName = modelName;\n\n if (this.isDisplayMode) {\n (sap.ui as unknown as { requireSync: (s: string) => unknown }).requireSync(\"sap/m/FormattedText\");\n const FormattedTextControl = sap.ui.require(\"sap/m/FormattedText\");\n this.control = new FormattedTextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n htmlText: `{${modelName}>${bindingPath}}`\n }) as unknown as sap.ui.core.Control;\n this.applyCommonDirectives(this.control, metadata, modelName);\n return this.control as Control;\n }\n\n this.control = new RichTextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: `{${modelName}>${bindingPath}}`,\n schemaMetadata: metadata,\n readOnly: !!metadata.ui?.readOnly\n }) as unknown as sap.ui.core.Control;\n\n this.applyCommonDirectives(this.control, metadata, modelName);\n\n if (isValueAccessor(this.control) && this.control.attachCapture) {\n this.control.attachCapture(() => {\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\n });\n }\n\n return this.control as Control;\n }\n\n protected getValue(): unknown {\n if (isValueAccessor(this.control)) {\n return this.control.getValue();\n }\n return null;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (this.isDisplayMode) return;\n (this.control as unknown as { setProperty: (k: string, v: unknown) => void }).setProperty(\"readOnly\", !!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":";;;;;;QAASA,UAAU,GAAAC,sBAAA;EAAA,MAGZC,eAAe,GAAAC,sBAAA,CAAAC,iBAAA;EAOtB,SAASC,eAAeA,CAACC,OAAgB,EAA6B;IAClE,OAAOA,OAAO,KAAK,IAAI,IAAI,OAAQA,OAAO,CAAoBC,QAAQ,KAAK,UAAU;EACzF;EAEO,MAAMC,cAAc,SAASR,UAAU,CAAC;IACpCS,MAAMA,CAACC,QAA2B,EAAGC,WAAmB,EAAGC,SAAiB,GAAG,MAAM,EAAEC,aAAsB,EAAEC,QAAwD,EAAW;MACrL,IAAI,CAACA,QAAQ,GAAGA,QAAQ;MACxB,IAAI,CAACJ,QAAQ,GAAGA,QAAQ;MACxB,IAAI,CAACK,QAAQ,GAAGJ,WAAW,CAACK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;MAC5C,IAAI,CAACJ,SAAS,GAAGA,SAAS;MAE1B,IAAI,IAAI,CAACK,aAAa,EAAE;QACnBC,GAAG,CAACC,EAAE,CAAwDC,WAAW,CAAC,qBAAqB,CAAC;QACjG,MAAMC,oBAAoB,GAAGH,GAAG,CAACC,EAAE,CAACG,OAAO,CAAC,qBAAqB,CAAC;QAClE,IAAI,CAAChB,OAAO,GAAG,IAAIe,oBAAoB,CAAC;UACpCE,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACX,aAAa,EAAEF,WAAW,CAAC;UACrDc,QAAQ,EAAE,IAAIb,SAAS,IAAID,WAAW;QAC1C,CAAC,CAAmC;QACpC,IAAI,CAACe,qBAAqB,CAAC,IAAI,CAACpB,OAAO,EAAEI,QAAQ,EAAEE,SAAS,CAAC;QAC7D,OAAO,IAAI,CAACN,OAAO;MACvB;MAEA,IAAI,CAACA,OAAO,GAAG,IAAIJ,eAAe,CAAC;QAC/BqB,EAAE,EAAE,IAAI,CAACC,gBAAgB,CAACX,aAAa,EAAEF,WAAW,CAAC;QACrDgB,KAAK,EAAE,IAAIf,SAAS,IAAID,WAAW,GAAG;QACtCiB,cAAc,EAAElB,QAAQ;QACxBmB,QAAQ,EAAE,CAAC,CAACnB,QAAQ,CAACS,EAAE,EAAEU;MAC7B,CAAC,CAAmC;MAEpC,IAAI,CAACH,qBAAqB,CAAC,IAAI,CAACpB,OAAO,EAAEI,QAAQ,EAAEE,SAAS,CAAC;MAE7D,IAAIP,eAAe,CAAC,IAAI,CAACC,OAAO,CAAC,IAAI,IAAI,CAACA,OAAO,CAACwB,aAAa,EAAE;QAC7D,IAAI,CAACxB,OAAO,CAACwB,aAAa,CAAC,MAAM;UAC7B,MAAMC,MAAM,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;UAC9B,IAAI,IAAI,CAAClB,QAAQ,EAAE;YACf,IAAI,CAACA,QAAQ,CAACiB,MAAM,CAACE,OAAO,EAAE,IAAI,CAAClB,QAAQ,CAAC;UAChD;QACJ,CAAC,CAAC;MACN;MAEA,OAAO,IAAI,CAACT,OAAO;IACvB;IAEUC,QAAQA,CAAA,EAAY;MAC1B,IAAIF,eAAe,CAAC,IAAI,CAACC,OAAO,CAAC,EAAE;QAC/B,OAAO,IAAI,CAACA,OAAO,CAACC,QAAQ,CAAC,CAAC;MAClC;MACA,OAAO,IAAI;IACf;IAEU2B,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAAC5B,OAAO,IAAI,IAAI,CAACI,QAAQ,EAAE;QAC/B,IAAI,IAAI,CAACO,aAAa,EAAE;QACvB,IAAI,CAACX,OAAO,CAAiE6B,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAACzB,QAAQ,CAACS,EAAE,EAAEU,QAAQ,CAAC;MACvI;IACJ;EACJ;EAAC,IAAAO,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAA5B,cAAA,GAAAA,cAAA;EAAA,OAAA4B,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"RichTextPlugin-dbg.js","names":["BasePlugin","___controls_BasePlugin","RichTextControl","_interopRequireDefault","__RichTextControl","isValueAccessor","control","getValue","RichTextPlugin","render","metadata","bindingPath","modelName","engineScopeId","onChange","fieldKey","replace","isEditable","sap","ui","requireSync","FormattedTextControl","require","id","generateStableId","htmlText","applyCommonDirectives","value","schemaMetadata","readOnly","attachCapture","result","validate","isValid","applyState","setProperty","__exports","__esModule"],"sources":["RichTextPlugin.ts"],"sourcesContent":["import { BasePlugin } from \"../controls/BasePlugin\";\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport Control from \"sap/ui/core/Control\";\nimport RichTextControl from \"../../controls/RichTextControl\";\n\ninterface IValueAccessor {\n getValue(): unknown;\n attachCapture?(fn: Function): void;\n}\n\nfunction isValueAccessor(control: unknown): control is IValueAccessor {\n return control !== null && typeof (control as IValueAccessor).getValue === 'function';\n}\n\nexport class RichTextPlugin extends BasePlugin {\n /**\n * Renders a `RichTextControl` component.\n * \n * @param metadata 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 RichTextControl.\n */\n public render(metadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = metadata;\n this.fieldKey = bindingPath.replace('/', '');\n this.modelName = modelName;\n\n if (!this.isEditable) {\n (sap.ui as unknown as { requireSync: (s: string) => unknown }).requireSync(\"sap/m/FormattedText\");\n const FormattedTextControl = sap.ui.require(\"sap/m/FormattedText\");\n this.control = new FormattedTextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n htmlText: `{${modelName}>${bindingPath}}`\n }) as unknown as sap.ui.core.Control;\n this.applyCommonDirectives(this.control, metadata, modelName);\n return this.control as Control;\n }\n\n this.control = new RichTextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n value: `{${modelName}>${bindingPath}}`,\n schemaMetadata: metadata,\n readOnly: !!metadata.ui?.readOnly\n }) as unknown as sap.ui.core.Control;\n\n this.applyCommonDirectives(this.control, metadata, modelName);\n\n if (isValueAccessor(this.control) && this.control.attachCapture) {\n this.control.attachCapture(() => {\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\n });\n }\n\n return this.control as Control;\n }\n\n /**\n * Retrieves the current HTML string value.\n * @returns {unknown} The string value.\n */\n protected getValue(): unknown {\n if (isValueAccessor(this.control)) {\n return this.control.getValue();\n }\n return 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 (this.control as unknown as { setProperty: (k: string, v: unknown) => void }).setProperty(\"readOnly\", !!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}