@siliconst/metaui 1.4.34 → 1.4.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js +22 -20
  4. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js.map +1 -1
  5. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts +3 -3
  6. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts.map +1 -1
  7. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js +1 -1
  8. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js.map +1 -1
  9. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.ts +24 -16
  10. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js.map +1 -1
  11. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js.map +1 -1
  12. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.ts +2 -2
  13. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js +62 -2
  14. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js.map +1 -1
  15. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts +54 -0
  16. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts.map +1 -1
  17. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js +1 -1
  18. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js.map +1 -1
  19. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.ts +59 -2
  20. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +43 -47
  21. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  22. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +2 -2
  23. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  24. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  25. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  26. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +61 -66
  27. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +120 -63
  28. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  29. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +16 -4
  30. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  31. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  32. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  33. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +126 -65
  34. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +41 -38
  35. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +6 -4
  37. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  38. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +1 -1
  39. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  40. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +47 -39
  41. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +41 -2
  42. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +6 -2
  44. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  45. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js +1 -1
  46. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  47. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +47 -2
  48. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +7 -2
  49. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +4 -1
  51. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
  52. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +1 -1
  53. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  54. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +7 -2
  55. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +212 -34
  56. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  57. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +21 -3
  58. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  60. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +214 -35
  62. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js +3 -1
  63. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js.map +1 -1
  64. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts.map +1 -1
  65. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js +1 -1
  66. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js.map +1 -1
  67. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.ts +3 -1
  68. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js +5 -0
  69. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js.map +1 -1
  70. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts.map +1 -1
  71. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js.map +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.ts +6 -0
  74. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +8 -0
  75. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -1
  77. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +1 -1
  78. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +7 -0
  80. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +127 -50
  81. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  82. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +13 -0
  83. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  84. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  85. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +140 -57
  87. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js +310 -0
  88. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js.map +1 -0
  89. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.d.ts +73 -0
  90. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.d.ts.map +1 -0
  91. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.js +2 -0
  92. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.js.map +1 -0
  93. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.ts +307 -0
  94. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +34 -13
  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 +4 -4
  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 +1 -1
  99. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  100. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +45 -20
  101. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +15 -3
  102. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
  103. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +15 -1
  107. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +82 -16
  108. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  109. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +16 -0
  110. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  111. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js +1 -1
  112. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  113. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +89 -17
  114. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
  115. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +12 -1
  116. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
  117. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +13 -1
  118. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin-dbg.js +2 -0
  119. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin-dbg.js.map +1 -0
  120. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.d.ts +50 -0
  121. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.d.ts.map +1 -0
  122. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.js +2 -0
  123. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.js.map +1 -0
  124. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.ts +49 -0
  125. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  126. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +19 -0
  127. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  128. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +22 -0
  129. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +26 -31
  130. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  131. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  132. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
  133. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  134. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +22 -25
  135. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +40 -6
  136. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  137. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
  138. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  139. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  140. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +37 -5
  141. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +69 -56
  142. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  143. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js +3 -2
  144. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js.map +1 -1
  145. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts.map +1 -1
  147. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js +1 -1
  148. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js.map +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts +4 -3
  150. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.map +1 -1
  151. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts +1 -1
  152. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts.map +1 -1
  153. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js.map +1 -1
  154. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.ts +4 -4
  155. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js +2 -1
  156. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js.map +1 -1
  157. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts +1 -1
  158. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts.map +1 -1
  159. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js +1 -1
  160. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js.map +1 -1
  161. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.ts +4 -3
  162. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js +12 -8
  163. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js.map +1 -1
  164. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts +1 -1
  165. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts.map +1 -1
  166. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js +1 -1
  167. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js.map +1 -1
  168. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts +16 -12
  169. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js +20 -12
  170. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js.map +1 -1
  171. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts +5 -5
  172. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts.map +1 -1
  173. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js +1 -1
  174. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js.map +1 -1
  175. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.ts +25 -17
  176. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js +18 -11
  177. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js.map +1 -1
  178. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts +5 -5
  179. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts.map +1 -1
  180. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js +1 -1
  181. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js.map +1 -1
  182. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.ts +23 -16
  183. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js +24 -100
  184. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js.map +1 -1
  185. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts +10 -74
  186. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts.map +1 -1
  187. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js +1 -1
  188. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js.map +1 -1
  189. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts +54 -117
  190. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +7 -4
  191. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  192. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +1 -1
  193. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  194. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
  195. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  196. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +6 -4
  197. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +4 -4
  198. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  199. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +1 -1
  200. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -1
  201. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  203. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +5 -5
  204. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +129 -9
  205. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  206. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +45 -4
  207. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  208. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
  209. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  210. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +143 -13
  211. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +35 -14
  212. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  213. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +1 -1
  214. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  215. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  216. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  217. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +38 -14
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +2 -2
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +1 -1
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -1
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +3 -3
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +69 -20
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +2 -1
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -1
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +77 -21
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +2 -2
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +1 -1
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +3 -3
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +2 -2
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +1 -1
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +3 -3
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js +1 -0
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js.map +1 -1
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts.map +1 -1
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js +1 -1
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js.map +1 -1
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.ts +6 -5
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +8 -3
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +1 -1
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +9 -4
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js +2 -2
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js.map +1 -1
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts +1 -1
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts.map +1 -1
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js +1 -1
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js.map +1 -1
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.ts +3 -3
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +2 -2
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +1 -1
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +3 -3
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +2 -2
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +1 -1
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +3 -3
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js +2 -2
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js.map +1 -1
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts +1 -1
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts.map +1 -1
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js +1 -1
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js.map +1 -1
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.ts +3 -3
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +1 -1
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -1
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +6 -5
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts +1 -1
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +9 -8
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +2 -2
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +1 -1
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +3 -3
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +35 -20
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +1 -1
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +39 -22
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +5 -3
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +1 -1
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +1 -1
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +4 -3
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js +2 -2
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js.map +1 -1
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts +1 -1
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts.map +1 -1
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js +1 -1
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js.map +1 -1
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.ts +3 -3
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +2 -2
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +1 -1
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +3 -3
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +28 -12
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js.map +1 -1
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts +5 -1
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts.map +1 -1
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js +1 -1
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js.map +1 -1
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts +29 -10
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +2 -2
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +1 -1
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -1
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +3 -3
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +2 -2
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +1 -1
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -1
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +3 -3
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +2 -2
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +1 -1
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +3 -3
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +2 -2
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -1
  364. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts +1 -1
  365. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts.map +1 -1
  366. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +1 -1
  367. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -1
  368. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +4 -4
  369. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +2 -2
  370. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  371. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +1 -1
  372. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -1
  373. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  374. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  375. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +3 -3
  376. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +2 -2
  377. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  378. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +1 -1
  379. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  380. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  381. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  382. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +3 -3
  383. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +58 -56
  384. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  385. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +2 -5
  386. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -1
  387. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  388. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  389. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +66 -55
  390. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +2 -2
  391. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  392. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +1 -1
  393. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  394. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  395. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  396. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +3 -3
  397. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +2 -2
  398. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  399. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +1 -1
  400. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  401. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  402. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  403. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +3 -3
  404. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
  405. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
  406. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +110 -109
  407. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +2 -1
  408. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -1
  409. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -1
  410. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js +1 -1
  411. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -1
  412. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +66 -64
  413. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +29 -8
  414. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -1
  415. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +1 -1
  416. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -1
  417. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js +1 -1
  418. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -1
  419. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +145 -118
  420. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
  421. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
  422. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +106 -105
  423. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin-dbg.js +41 -0
  424. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin-dbg.js.map +1 -0
  425. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.d.ts +24 -0
  426. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.d.ts.map +1 -0
  427. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.js +2 -0
  428. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.js.map +1 -0
  429. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.ts +34 -0
  430. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin-dbg.js +41 -0
  431. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin-dbg.js.map +1 -0
  432. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.d.ts +24 -0
  433. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.d.ts.map +1 -0
  434. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.js +2 -0
  435. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.js.map +1 -0
  436. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.ts +34 -0
  437. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin-dbg.js +52 -0
  438. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin-dbg.js.map +1 -0
  439. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.d.ts +30 -0
  440. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.d.ts.map +1 -0
  441. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.js +2 -0
  442. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.js.map +1 -0
  443. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.ts +45 -0
  444. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin-dbg.js +52 -0
  445. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin-dbg.js.map +1 -0
  446. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.d.ts +30 -0
  447. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.d.ts.map +1 -0
  448. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.js +2 -0
  449. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.js.map +1 -0
  450. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.ts +45 -0
  451. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin-dbg.js +41 -0
  452. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin-dbg.js.map +1 -0
  453. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.d.ts +24 -0
  454. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.d.ts.map +1 -0
  455. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.js +2 -0
  456. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.js.map +1 -0
  457. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.ts +34 -0
  458. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin-dbg.js +40 -0
  459. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin-dbg.js.map +1 -0
  460. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.d.ts +28 -0
  461. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.d.ts.map +1 -0
  462. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.js +2 -0
  463. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.js.map +1 -0
  464. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.ts +34 -0
  465. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin-dbg.js +40 -0
  466. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin-dbg.js.map +1 -0
  467. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.d.ts +28 -0
  468. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.d.ts.map +1 -0
  469. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.js +2 -0
  470. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.js.map +1 -0
  471. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.ts +34 -0
  472. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin-dbg.js +40 -0
  473. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin-dbg.js.map +1 -0
  474. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.d.ts +28 -0
  475. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.d.ts.map +1 -0
  476. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.js +2 -0
  477. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.js.map +1 -0
  478. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.ts +34 -0
  479. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin-dbg.js +40 -0
  480. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin-dbg.js.map +1 -0
  481. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.d.ts +28 -0
  482. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.d.ts.map +1 -0
  483. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.js +2 -0
  484. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.js.map +1 -0
  485. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.ts +34 -0
  486. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider-dbg.js +33 -0
  487. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider-dbg.js.map +1 -0
  488. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.d.ts +14 -0
  489. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.d.ts.map +1 -0
  490. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.js +2 -0
  491. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.js.map +1 -0
  492. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.ts +24 -0
  493. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +0 -75
  494. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +0 -1
  495. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +0 -47
  496. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +0 -1
  497. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +0 -2
  498. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +0 -1
  499. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +0 -72
@@ -1 +1 @@
1
- {"version":3,"file":"LiveSearchPlugin.js","names":["BasePlugin","___controls_BasePlugin","Logger","____utils_Logger","LiveSearchPlugin","render","fieldMetadata","bindingPath","modelName","this","metadata","input","Input","value","enabled","ui","readOnly","placeholder","showSuggestion","suggest","oEvent","query","getParameter","fetchSuggestions","change","validate","control","vhConfig","valueHelp","url","error","removeAllSuggestionItems","setBusy","fetch","then","res","json","data","keyPath","textPath","lowerQuery","toLowerCase","filteredData","filter","item","textValue","String","includes","forEach","itemData","addSuggestionItem","Item","key","text","catch","err","message","finally","getValue","applyState","setEnabled","__exports","__esModule"],"sources":["LiveSearchPlugin.ts"],"sourcesContent":["/**\r\n * @file LiveSearchPlugin.ts\r\n * @description A custom datasource plugin that provides asynchronous live search (autocomplete) functionality.\r\n */\r\n\r\nimport { BasePlugin } from \"../controls/BasePlugin\";\rimport Event from \"sap/ui/base/Event\";\n\nimport { IPropertyMetadata, IRemoteValueHelpConfig } from \"../../interfaces/ISchema\";\r\nimport Input from \"sap/m/Input\";\r\nimport Item from \"sap/ui/core/Item\";\r\nimport Control from \"sap/ui/core/Control\";\r\nimport { Logger } from \"../../utils/Logger\";\r\n\r\n/**\r\n * A custom datasource plugin that provides asynchronous live search (autocomplete) functionality.\r\n * As the user types, it fetches suggestions from a remote endpoint.\r\n * \r\n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\r\n * @public\r\n */\r\nexport class LiveSearchPlugin extends BasePlugin {\r\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n const input = new Input({\r\n value: `{${modelName}>${bindingPath}}`,\r\n enabled: !fieldMetadata.ui?.readOnly,\r\n placeholder: \"Type to search...\",\r\n showSuggestion: true,\r\n suggest: (oEvent: Event) => {\r\n const query = (oEvent as Event).getParameter(\"suggestValue\");\r\n this.fetchSuggestions(input, query);\r\n },\r\n change: (oEvent: Event) => {\r\n this.validate();\r\n }\r\n });\r\n\r\n this.control = input;\r\n return this.control as Control;\r\n }\r\n\r\n /**\r\n * Executes the REST fetch for suggestions based on a query. Can be overridden by mock subclasses.\r\n * @param input The UI5 Input to populate with suggestions.\r\n * @param query The text typed by the user.\r\n */\r\n protected fetchSuggestions(input: Input, query: string): void {\r\n const vhConfig = this.metadata?.valueHelp as IRemoteValueHelpConfig;\r\n if (!vhConfig || !vhConfig.url) {\r\n Logger.error(\"LiveSearchPlugin requires a valid valueHelp configuration with a URL.\", \"\", \"LiveSearchPlugin\");\r\n return;\r\n }\r\n\r\n if (!query) {\r\n input.removeAllSuggestionItems();\r\n return;\r\n }\r\n \r\n input.setBusy(true);\r\n \r\n // In a real application, the query parameter would be passed to the backend (e.g. ?q=query)\r\n // Here, we simulate fetching and filter locally, but subclasses can override this entirely.\r\n fetch(vhConfig.url)\r\n .then(res => res.json())\r\n .then((data: Record<string, unknown>[]) => {\r\n const keyPath = vhConfig.keyPath || \"key\";\r\n const textPath = vhConfig.textPath || \"text\";\r\n \r\n input.removeAllSuggestionItems();\r\n\r\n // Simple client-side filter for demonstration\r\n const lowerQuery = query.toLowerCase();\r\n const filteredData = data.filter(item => {\r\n const textValue = String(item[textPath] || item[keyPath]).toLowerCase();\r\n return textValue.includes(lowerQuery);\r\n });\r\n \r\n filteredData.forEach(itemData => {\r\n input.addSuggestionItem(new Item({ \r\n key: String(itemData[keyPath]), \r\n text: String(itemData[textPath] || itemData[keyPath])\r\n }));\r\n });\r\n })\r\n .catch(err => {\r\n Logger.error(\"Failed to load value help from \" + vhConfig.url, err.message, \"LiveSearchPlugin\");\r\n })\r\n .finally(() => {\r\n input.setBusy(false);\r\n });\r\n }\r\n\r\n /**\r\n * Retrieves the current input value.\r\n * @returns {unknown} The input text.\r\n */\r\n protected getValue(): unknown {\r\n return this.control ? (this.control as Input).getValue() : null;\r\n }\r\n\r\n /**\r\n * Applies dynamic read-only state.\r\n */\r\n protected applyState(): void {\r\n if (this.control && this.metadata) {\r\n (this.control as Input).setEnabled(!this.metadata.ui?.readOnly);\r\n }\r\n }\r\n}\r\n"],"mappings":"8HAAA,MAKSA,EAAUC,EAAA,oBAOVC,EAAMC,EAAA,UASR,MAAMC,UAAyBJ,EAC3BK,OAAOC,EAAkCC,EAAqBC,EAAoB,QACrFC,KAAKC,SAAWJ,EAEhB,MAAMK,EAAQ,IAAIC,EAAM,CACpBC,MAAO,IAAIL,KAAaD,KACxBO,SAAUR,EAAcS,IAAIC,SAC5BC,YAAa,oBACbC,eAAgB,KAChBC,QAAUC,IACN,MAAMC,EAASD,EAAiBE,aAAa,gBAC7Cb,KAAKc,iBAAiBZ,EAAOU,IAEjCG,OAASJ,IACLX,KAAKgB,cAIbhB,KAAKiB,QAAUf,EACf,OAAOF,KAAKiB,OAChB,CAOUH,iBAAiBZ,EAAcU,GACrC,MAAMM,EAAWlB,KAAKC,UAAUkB,UAChC,IAAKD,IAAaA,EAASE,IAAK,CAC5B3B,EAAO4B,MAAM,wEAAyE,GAAI,oBAC1F,MACJ,CAEA,IAAKT,EAAO,CACRV,EAAMoB,2BACN,MACJ,CAEApB,EAAMqB,QAAQ,MAIdC,MAAMN,EAASE,KACVK,KAAKC,GAAOA,EAAIC,QAChBF,KAAMG,IACH,MAAMC,EAAUX,EAASW,SAAW,MACpC,MAAMC,EAAWZ,EAASY,UAAY,OAEtC5B,EAAMoB,2BAGN,MAAMS,EAAanB,EAAMoB,cACzB,MAAMC,EAAeL,EAAKM,OAAOC,IAC7B,MAAMC,EAAYC,OAAOF,EAAKL,IAAaK,EAAKN,IAAUG,cAC1D,OAAOI,EAAUE,SAASP,KAG9BE,EAAaM,QAAQC,IACjBtC,EAAMuC,kBAAkB,IAAIC,EAAK,CAC7BC,IAAKN,OAAOG,EAASX,IACrBe,KAAMP,OAAOG,EAASV,IAAaU,EAASX,WAIvDgB,MAAMC,IACHrD,EAAO4B,MAAM,kCAAoCH,EAASE,IAAK0B,EAAIC,QAAS,sBAE/EC,QAAQ,KACL9C,EAAMqB,QAAQ,QAE1B,CAMU0B,WACN,OAAOjD,KAAKiB,QAAWjB,KAAKiB,QAAkBgC,WAAa,IAC/D,CAKUC,aACN,GAAIlD,KAAKiB,SAAWjB,KAAKC,SAAU,CAC9BD,KAAKiB,QAAkBkC,YAAYnD,KAAKC,SAASK,IAAIC,SAC1D,CACJ,EACH,IAAA6C,EAAA,CAAAC,WAAA,MAAAD,EAAAzD,mBAAA,OAAAyD,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"LiveSearchPlugin.js","names":["BasePlugin","___controls_BasePlugin","Logger","____utils_Logger","LiveSearchPlugin","render","fieldMetadata","bindingPath","modelName","this","metadata","input","Input","value","enabled","ui","readOnly","placeholder","showSuggestion","suggest","oEvent","query","getParameter","fetchSuggestions","change","validate","control","vhConfig","valueHelp","url","error","removeAllSuggestionItems","setBusy","fetch","then","res","json","data","keyPath","textPath","lowerQuery","toLowerCase","filteredData","filter","item","textValue","String","includes","forEach","itemData","addSuggestionItem","Item","key","text","catch","err","message","finally","getValue","applyState","setEnabled","__exports","__esModule"],"sources":["LiveSearchPlugin.ts"],"sourcesContent":["/**\n * @file LiveSearchPlugin.ts\n * @description A custom datasource plugin that provides asynchronous live search (autocomplete) functionality.\n */\n\nimport { BasePlugin } from \"../controls/BasePlugin\";\nimport Event from \"sap/ui/base/Event\";\n\nimport { IPropertyMetadata, IRemoteValueHelpConfig } from \"../../interfaces/ISchema\";\nimport Input from \"sap/m/Input\";\nimport Item from \"sap/ui/core/Item\";\nimport Control from \"sap/ui/core/Control\";\nimport { Logger } from \"../../utils/Logger\";\n\n/**\n * A custom datasource plugin that provides asynchronous live search (autocomplete) functionality.\n * As the user types, it fetches suggestions from a remote endpoint.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\n * @public\n */\nexport class LiveSearchPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n \n const input = new Input({\n value: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n placeholder: \"Type to search...\",\n showSuggestion: true,\n suggest: (oEvent: Event) => {\n const query = (oEvent as Event).getParameter(\"suggestValue\");\n this.fetchSuggestions(input, query);\n },\n change: (oEvent: Event) => {\n this.validate();\n }\n });\n\n this.control = input;\n return this.control as Control;\n }\n\n /**\n * Executes the REST fetch for suggestions based on a query. Can be overridden by mock subclasses.\n * @param input The UI5 Input to populate with suggestions.\n * @param query The text typed by the user.\n */\n protected fetchSuggestions(input: Input, query: string): void {\n const vhConfig = this.metadata?.valueHelp as IRemoteValueHelpConfig;\n if (!vhConfig || !vhConfig.url) {\n Logger.error(\"LiveSearchPlugin requires a valid valueHelp configuration with a URL.\", \"\", \"LiveSearchPlugin\");\n return;\n }\n\n if (!query) {\n input.removeAllSuggestionItems();\n return;\n }\n \n input.setBusy(true);\n \n // In a real application, the query parameter would be passed to the backend (e.g. ?q=query)\n // Here, we simulate fetching and filter locally, but subclasses can override this entirely.\n fetch(vhConfig.url)\n .then(res => res.json())\n .then((data: Record<string, unknown>[]) => {\n const keyPath = vhConfig.keyPath || \"key\";\n const textPath = vhConfig.textPath || \"text\";\n \n input.removeAllSuggestionItems();\n\n // Simple client-side filter for demonstration\n const lowerQuery = query.toLowerCase();\n const filteredData = data.filter(item => {\n const textValue = String(item[textPath] || item[keyPath]).toLowerCase();\n return textValue.includes(lowerQuery);\n });\n \n filteredData.forEach(itemData => {\n input.addSuggestionItem(new Item({ \n key: String(itemData[keyPath]), \n text: String(itemData[textPath] || itemData[keyPath])\n }));\n });\n })\n .catch(err => {\n Logger.error(\"Failed to load value help from \" + vhConfig.url, err.message, \"LiveSearchPlugin\");\n })\n .finally(() => {\n input.setBusy(false);\n });\n }\n\n /**\n * Retrieves the current input value.\n * @returns {unknown} The input text.\n */\n protected getValue(): unknown {\n return this.control ? (this.control as Input).getValue() : null;\n }\n\n /**\n * Applies dynamic read-only state.\n */\n protected applyState(): void {\n if (this.control && this.metadata) {\n (this.control as Input).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"8HAAA,MAKSA,EAAUC,EAAA,oBAOVC,EAAMC,EAAA,UASR,MAAMC,UAAyBJ,EAC3BK,OAAOC,EAAkCC,EAAqBC,EAAoB,QACrFC,KAAKC,SAAWJ,EAEhB,MAAMK,EAAQ,IAAIC,EAAM,CACpBC,MAAO,IAAIL,KAAaD,KACxBO,SAAUR,EAAcS,IAAIC,SAC5BC,YAAa,oBACbC,eAAgB,KAChBC,QAAUC,IACN,MAAMC,EAASD,EAAiBE,aAAa,gBAC7Cb,KAAKc,iBAAiBZ,EAAOU,IAEjCG,OAASJ,IACLX,KAAKgB,cAIbhB,KAAKiB,QAAUf,EACf,OAAOF,KAAKiB,OAChB,CAOUH,iBAAiBZ,EAAcU,GACrC,MAAMM,EAAWlB,KAAKC,UAAUkB,UAChC,IAAKD,IAAaA,EAASE,IAAK,CAC5B3B,EAAO4B,MAAM,wEAAyE,GAAI,oBAC1F,MACJ,CAEA,IAAKT,EAAO,CACRV,EAAMoB,2BACN,MACJ,CAEApB,EAAMqB,QAAQ,MAIdC,MAAMN,EAASE,KACVK,KAAKC,GAAOA,EAAIC,QAChBF,KAAMG,IACH,MAAMC,EAAUX,EAASW,SAAW,MACpC,MAAMC,EAAWZ,EAASY,UAAY,OAEtC5B,EAAMoB,2BAGN,MAAMS,EAAanB,EAAMoB,cACzB,MAAMC,EAAeL,EAAKM,OAAOC,IAC7B,MAAMC,EAAYC,OAAOF,EAAKL,IAAaK,EAAKN,IAAUG,cAC1D,OAAOI,EAAUE,SAASP,KAG9BE,EAAaM,QAAQC,IACjBtC,EAAMuC,kBAAkB,IAAIC,EAAK,CAC7BC,IAAKN,OAAOG,EAASX,IACrBe,KAAMP,OAAOG,EAASV,IAAaU,EAASX,WAIvDgB,MAAMC,IACHrD,EAAO4B,MAAM,kCAAoCH,EAASE,IAAK0B,EAAIC,QAAS,sBAE/EC,QAAQ,KACL9C,EAAMqB,QAAQ,QAE1B,CAMU0B,WACN,OAAOjD,KAAKiB,QAAWjB,KAAKiB,QAAkBgC,WAAa,IAC/D,CAKUC,aACN,GAAIlD,KAAKiB,SAAWjB,KAAKC,SAAU,CAC9BD,KAAKiB,QAAkBkC,YAAYnD,KAAKC,SAASK,IAAIC,SAC1D,CACJ,EACH,IAAA6C,EAAA,CAAAC,WAAA,MAAAD,EAAAzD,mBAAA,OAAAyD,CAAA","ignoreList":[]}
@@ -1,110 +1,111 @@
1
- /**
2
- * @file LiveSearchPlugin.ts
3
- * @description A custom datasource plugin that provides asynchronous live search (autocomplete) functionality.
4
- */
5
-
6
- import { BasePlugin } from "../controls/BasePlugin";
1
+ /**
2
+ * @file LiveSearchPlugin.ts
3
+ * @description A custom datasource plugin that provides asynchronous live search (autocomplete) functionality.
4
+ */
7
5
 
8
- import { IPropertyMetadata, IRemoteValueHelpConfig } from "../../interfaces/ISchema";
9
- import Input from "sap/m/Input";
10
- import Item from "sap/ui/core/Item";
11
- import Control from "sap/ui/core/Control";
12
- import { Logger } from "../../utils/Logger";
13
-
14
- /**
15
- * A custom datasource plugin that provides asynchronous live search (autocomplete) functionality.
16
- * As the user types, it fetches suggestions from a remote endpoint.
17
- *
18
- * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources
19
- * @public
20
- */
21
- export class LiveSearchPlugin extends BasePlugin {
22
- public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta"): Control {
23
- this.metadata = fieldMetadata;
24
-
25
- const input = new Input({
26
- value: `{${modelName}>${bindingPath}}`,
27
- enabled: !fieldMetadata.ui?.readOnly,
28
- placeholder: "Type to search...",
29
- showSuggestion: true,
30
- suggest: (oEvent: Event) => {
31
- const query = (oEvent as Event).getParameter("suggestValue");
32
- this.fetchSuggestions(input, query);
33
- },
34
- change: (oEvent: Event) => {
35
- this.validate();
36
- }
37
- });
38
-
39
- this.control = input;
40
- return this.control as Control;
41
- }
42
-
43
- /**
44
- * Executes the REST fetch for suggestions based on a query. Can be overridden by mock subclasses.
45
- * @param input The UI5 Input to populate with suggestions.
46
- * @param query The text typed by the user.
47
- */
48
- protected fetchSuggestions(input: Input, query: string): void {
49
- const vhConfig = this.metadata?.valueHelp as IRemoteValueHelpConfig;
50
- if (!vhConfig || !vhConfig.url) {
51
- Logger.error("LiveSearchPlugin requires a valid valueHelp configuration with a URL.", "", "LiveSearchPlugin");
52
- return;
53
- }
54
-
55
- if (!query) {
56
- input.removeAllSuggestionItems();
57
- return;
58
- }
59
-
60
- input.setBusy(true);
61
-
62
- // In a real application, the query parameter would be passed to the backend (e.g. ?q=query)
63
- // Here, we simulate fetching and filter locally, but subclasses can override this entirely.
64
- fetch(vhConfig.url)
65
- .then(res => res.json())
66
- .then((data: Record<string, unknown>[]) => {
67
- const keyPath = vhConfig.keyPath || "key";
68
- const textPath = vhConfig.textPath || "text";
69
-
70
- input.removeAllSuggestionItems();
71
-
72
- // Simple client-side filter for demonstration
73
- const lowerQuery = query.toLowerCase();
74
- const filteredData = data.filter(item => {
75
- const textValue = String(item[textPath] || item[keyPath]).toLowerCase();
76
- return textValue.includes(lowerQuery);
77
- });
78
-
79
- filteredData.forEach(itemData => {
80
- input.addSuggestionItem(new Item({
81
- key: String(itemData[keyPath]),
82
- text: String(itemData[textPath] || itemData[keyPath])
83
- }));
84
- });
85
- })
86
- .catch(err => {
87
- Logger.error("Failed to load value help from " + vhConfig.url, err.message, "LiveSearchPlugin");
88
- })
89
- .finally(() => {
90
- input.setBusy(false);
91
- });
92
- }
93
-
94
- /**
95
- * Retrieves the current input value.
96
- * @returns {unknown} The input text.
97
- */
98
- protected getValue(): unknown {
99
- return this.control ? (this.control as Input).getValue() : null;
100
- }
101
-
102
- /**
103
- * Applies dynamic read-only state.
104
- */
105
- protected applyState(): void {
106
- if (this.control && this.metadata) {
107
- (this.control as Input).setEnabled(!this.metadata.ui?.readOnly);
108
- }
109
- }
110
- }
6
+ import { BasePlugin } from "../controls/BasePlugin";
7
+ import Event from "sap/ui/base/Event";
8
+
9
+ import { IPropertyMetadata, IRemoteValueHelpConfig } from "../../interfaces/ISchema";
10
+ import Input from "sap/m/Input";
11
+ import Item from "sap/ui/core/Item";
12
+ import Control from "sap/ui/core/Control";
13
+ import { Logger } from "../../utils/Logger";
14
+
15
+ /**
16
+ * A custom datasource plugin that provides asynchronous live search (autocomplete) functionality.
17
+ * As the user types, it fetches suggestions from a remote endpoint.
18
+ *
19
+ * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources
20
+ * @public
21
+ */
22
+ export class LiveSearchPlugin extends BasePlugin {
23
+ public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta"): Control {
24
+ this.metadata = fieldMetadata;
25
+
26
+ const input = new Input({
27
+ value: `{${modelName}>${bindingPath}}`,
28
+ enabled: !fieldMetadata.ui?.readOnly,
29
+ placeholder: "Type to search...",
30
+ showSuggestion: true,
31
+ suggest: (oEvent: Event) => {
32
+ const query = (oEvent as Event).getParameter("suggestValue");
33
+ this.fetchSuggestions(input, query);
34
+ },
35
+ change: (oEvent: Event) => {
36
+ this.validate();
37
+ }
38
+ });
39
+
40
+ this.control = input;
41
+ return this.control as Control;
42
+ }
43
+
44
+ /**
45
+ * Executes the REST fetch for suggestions based on a query. Can be overridden by mock subclasses.
46
+ * @param input The UI5 Input to populate with suggestions.
47
+ * @param query The text typed by the user.
48
+ */
49
+ protected fetchSuggestions(input: Input, query: string): void {
50
+ const vhConfig = this.metadata?.valueHelp as IRemoteValueHelpConfig;
51
+ if (!vhConfig || !vhConfig.url) {
52
+ Logger.error("LiveSearchPlugin requires a valid valueHelp configuration with a URL.", "", "LiveSearchPlugin");
53
+ return;
54
+ }
55
+
56
+ if (!query) {
57
+ input.removeAllSuggestionItems();
58
+ return;
59
+ }
60
+
61
+ input.setBusy(true);
62
+
63
+ // In a real application, the query parameter would be passed to the backend (e.g. ?q=query)
64
+ // Here, we simulate fetching and filter locally, but subclasses can override this entirely.
65
+ fetch(vhConfig.url)
66
+ .then(res => res.json())
67
+ .then((data: Record<string, unknown>[]) => {
68
+ const keyPath = vhConfig.keyPath || "key";
69
+ const textPath = vhConfig.textPath || "text";
70
+
71
+ input.removeAllSuggestionItems();
72
+
73
+ // Simple client-side filter for demonstration
74
+ const lowerQuery = query.toLowerCase();
75
+ const filteredData = data.filter(item => {
76
+ const textValue = String(item[textPath] || item[keyPath]).toLowerCase();
77
+ return textValue.includes(lowerQuery);
78
+ });
79
+
80
+ filteredData.forEach(itemData => {
81
+ input.addSuggestionItem(new Item({
82
+ key: String(itemData[keyPath]),
83
+ text: String(itemData[textPath] || itemData[keyPath])
84
+ }));
85
+ });
86
+ })
87
+ .catch(err => {
88
+ Logger.error("Failed to load value help from " + vhConfig.url, err.message, "LiveSearchPlugin");
89
+ })
90
+ .finally(() => {
91
+ input.setBusy(false);
92
+ });
93
+ }
94
+
95
+ /**
96
+ * Retrieves the current input value.
97
+ * @returns {unknown} The input text.
98
+ */
99
+ protected getValue(): unknown {
100
+ return this.control ? (this.control as Input).getValue() : null;
101
+ }
102
+
103
+ /**
104
+ * Applies dynamic read-only state.
105
+ */
106
+ protected applyState(): void {
107
+ if (this.control && this.metadata) {
108
+ (this.control as Input).setEnabled(!this.metadata.ui?.readOnly);
109
+ }
110
+ }
111
+ }
@@ -26,7 +26,8 @@ sap.ui.define(["../controls/BasePlugin", "sap/m/ComboBox", "sap/ui/core/Item"],
26
26
  enabled: !fieldMetadata.ui?.readOnly,
27
27
  placeholder: fieldMetadata.ui?.label || "Select...",
28
28
  change: oEvent => {
29
- const val = oEvent.getParameter("selectedItem")?.getKey();
29
+ const selectedItem = oEvent.getParameter("selectedItem");
30
+ const val = selectedItem?.getKey();
30
31
  this.validate();
31
32
  }
32
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ODataListBindingPlugin-dbg.js","names":["BasePlugin","___controls_BasePlugin","ODataListBindingPlugin","render","fieldMetadata","bindingPath","modelName","metadata","args","ui","path","key","text","control","ComboBox","selectedKey","enabled","readOnly","placeholder","label","change","oEvent","val","getParameter","getKey","validate","bindAggregation","template","Item","templateShareable","getValue","getSelectedKey","applyState","setEnabled","__exports","__esModule"],"sources":["ODataListBindingPlugin.ts"],"sourcesContent":["/**\r\n * @file ODataListBindingPlugin.ts\r\n * @description A custom datasource plugin that binds a ComboBox to an OData EntitySet.\r\n */\r\n\r\nimport { BasePlugin } from \"../controls/BasePlugin\";\rimport Event from \"sap/ui/base/Event\";\n\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\r\nimport ComboBox from \"sap/m/ComboBox\";\r\nimport Item from \"sap/ui/core/Item\";\r\nimport Control from \"sap/ui/core/Control\";\r\n\r\n/**\r\n * Renders a ComboBox natively bound to an OData Model entity set.\r\n * Expects args: { path: \"/Categories\", key: \"ID\", text: \"Name\" }\r\n * \r\n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\r\n * @public\r\n */\r\nexport class ODataListBindingPlugin extends BasePlugin {\r\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n const args = (fieldMetadata.ui?.args as any) || { path: \"/\", key: \"ID\", text: \"Name\" };\r\n \r\n this.control = new ComboBox({\r\n selectedKey: `{${modelName}>${bindingPath}}`,\r\n enabled: !fieldMetadata.ui?.readOnly,\r\n placeholder: fieldMetadata.ui?.label || \"Select...\",\r\n change: (oEvent: Event) => {\r\n const val = ((oEvent as any).getParameter(\"selectedItem\") as any)?.getKey();\r\n this.validate();\r\n }\r\n });\r\n\r\n // Natively bind aggregation to the default model (OData)\r\n (this.control as ComboBox).bindAggregation(\"items\", {\r\n path: args.path,\r\n template: new Item({\r\n key: `{${args.key}}`,\r\n text: `{${args.text}}`\r\n }),\r\n templateShareable: false\r\n });\r\n\r\n return this.control as Control;\r\n }\r\n\r\n /**\r\n * Retrieves the current selected key.\r\n * @returns {unknown} The selected key.\r\n */\r\n protected getValue(): unknown {\r\n return this.control ? (this.control as ComboBox).getSelectedKey() : null;\r\n }\r\n\r\n /**\r\n * Applies dynamic read-only state.\r\n */\r\n protected applyState(): void {\r\n if (this.control && this.metadata) {\r\n (this.control as ComboBox).setEnabled(!this.metadata.ui?.readOnly);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,sBAAA;EAQnB;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,sBAAsB,SAASF,UAAU,CAAC;IAC5CG,MAAMA,CAACC,aAAgC,EAAEC,WAAmB,EAAEC,SAAiB,GAAG,MAAM,EAAW;MACtG,IAAI,CAACC,QAAQ,GAAGH,aAAa;MAE7B,MAAMI,IAAI,GAAIJ,aAAa,CAACK,EAAE,EAAED,IAAI,IAAY;QAAEE,IAAI,EAAE,GAAG;QAAEC,GAAG,EAAE,IAAI;QAAEC,IAAI,EAAE;MAAO,CAAC;MAEtF,IAAI,CAACC,OAAO,GAAG,IAAIC,QAAQ,CAAC;QACxBC,WAAW,EAAE,IAAIT,SAAS,IAAID,WAAW,GAAG;QAC5CW,OAAO,EAAE,CAACZ,aAAa,CAACK,EAAE,EAAEQ,QAAQ;QACpCC,WAAW,EAAEd,aAAa,CAACK,EAAE,EAAEU,KAAK,IAAI,WAAW;QACnDC,MAAM,EAAGC,MAAa,IAAK;UACvB,MAAMC,GAAG,GAAKD,MAAM,CAASE,YAAY,CAAC,cAAc,CAAC,EAAUC,MAAM,CAAC,CAAC;UAC3E,IAAI,CAACC,QAAQ,CAAC,CAAC;QACnB;MACJ,CAAC,CAAC;;MAEF;MACC,IAAI,CAACZ,OAAO,CAAca,eAAe,CAAC,OAAO,EAAE;QAChDhB,IAAI,EAAEF,IAAI,CAACE,IAAI;QACfiB,QAAQ,EAAE,IAAIC,IAAI,CAAC;UACfjB,GAAG,EAAE,IAAIH,IAAI,CAACG,GAAG,GAAG;UACpBC,IAAI,EAAE,IAAIJ,IAAI,CAACI,IAAI;QACvB,CAAC,CAAC;QACFiB,iBAAiB,EAAE;MACvB,CAAC,CAAC;MAEF,OAAO,IAAI,CAAChB,OAAO;IACvB;;IAEA;AACJ;AACA;AACA;IACciB,QAAQA,CAAA,EAAY;MAC1B,OAAO,IAAI,CAACjB,OAAO,GAAI,IAAI,CAACA,OAAO,CAAckB,cAAc,CAAC,CAAC,GAAG,IAAI;IAC5E;;IAEA;AACJ;AACA;IACcC,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACnB,OAAO,IAAI,IAAI,CAACN,QAAQ,EAAE;QAC9B,IAAI,CAACM,OAAO,CAAcoB,UAAU,CAAC,CAAC,IAAI,CAAC1B,QAAQ,CAACE,EAAE,EAAEQ,QAAQ,CAAC;MACtE;IACJ;EACJ;EAAC,IAAAiB,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAhC,sBAAA,GAAAA,sBAAA;EAAA,OAAAgC,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"ODataListBindingPlugin-dbg.js","names":["BasePlugin","___controls_BasePlugin","ODataListBindingPlugin","render","fieldMetadata","bindingPath","modelName","metadata","args","ui","path","key","text","control","ComboBox","selectedKey","enabled","readOnly","placeholder","label","change","oEvent","selectedItem","getParameter","val","getKey","validate","bindAggregation","template","Item","templateShareable","getValue","getSelectedKey","applyState","setEnabled","__exports","__esModule"],"sources":["ODataListBindingPlugin.ts"],"sourcesContent":["/**\n * @file ODataListBindingPlugin.ts\n * @description A custom datasource plugin that binds a ComboBox to an OData EntitySet.\n */\n\nimport { BasePlugin } from \"../controls/BasePlugin\";\nimport Event from \"sap/ui/base/Event\";\n\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport ComboBox from \"sap/m/ComboBox\";\nimport Item from \"sap/ui/core/Item\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Renders a ComboBox natively bound to an OData Model entity set.\n * Expects args: { path: \"/Categories\", key: \"ID\", text: \"Name\" }\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\n * @public\n */\nexport class ODataListBindingPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n \n const args = (fieldMetadata.ui?.args as Record<string, string>) || { path: \"/\", key: \"ID\", text: \"Name\" };\n \n this.control = new ComboBox({\n selectedKey: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n placeholder: fieldMetadata.ui?.label || \"Select...\",\n change: (oEvent: Event) => {\n const selectedItem = (oEvent.getParameter(\"selectedItem\") as unknown) as Item;\n const val = selectedItem?.getKey();\n this.validate();\n }\n });\n\n // Natively bind aggregation to the default model (OData)\n (this.control as ComboBox).bindAggregation(\"items\", {\n path: args.path,\n template: new Item({\n key: `{${args.key}}`,\n text: `{${args.text}}`\n }),\n templateShareable: false\n });\n\n return this.control as Control;\n }\n\n /**\n * Retrieves the current selected key.\n * @returns {unknown} The selected key.\n */\n protected getValue(): unknown {\n return this.control ? (this.control as ComboBox).getSelectedKey() : null;\n }\n\n /**\n * Applies dynamic read-only state.\n */\n protected applyState(): void {\n if (this.control && this.metadata) {\n (this.control as ComboBox).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,sBAAA;EAQnB;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,sBAAsB,SAASF,UAAU,CAAC;IAC5CG,MAAMA,CAACC,aAAgC,EAAEC,WAAmB,EAAEC,SAAiB,GAAG,MAAM,EAAW;MACtG,IAAI,CAACC,QAAQ,GAAGH,aAAa;MAE7B,MAAMI,IAAI,GAAIJ,aAAa,CAACK,EAAE,EAAED,IAAI,IAA+B;QAAEE,IAAI,EAAE,GAAG;QAAEC,GAAG,EAAE,IAAI;QAAEC,IAAI,EAAE;MAAO,CAAC;MAEzG,IAAI,CAACC,OAAO,GAAG,IAAIC,QAAQ,CAAC;QACxBC,WAAW,EAAE,IAAIT,SAAS,IAAID,WAAW,GAAG;QAC5CW,OAAO,EAAE,CAACZ,aAAa,CAACK,EAAE,EAAEQ,QAAQ;QACpCC,WAAW,EAAEd,aAAa,CAACK,EAAE,EAAEU,KAAK,IAAI,WAAW;QACnDC,MAAM,EAAGC,MAAa,IAAK;UACvB,MAAMC,YAAY,GAAID,MAAM,CAACE,YAAY,CAAC,cAAc,CAAqB;UAC7E,MAAMC,GAAG,GAAGF,YAAY,EAAEG,MAAM,CAAC,CAAC;UAClC,IAAI,CAACC,QAAQ,CAAC,CAAC;QACnB;MACJ,CAAC,CAAC;;MAEF;MACC,IAAI,CAACb,OAAO,CAAcc,eAAe,CAAC,OAAO,EAAE;QAChDjB,IAAI,EAAEF,IAAI,CAACE,IAAI;QACfkB,QAAQ,EAAE,IAAIC,IAAI,CAAC;UACflB,GAAG,EAAE,IAAIH,IAAI,CAACG,GAAG,GAAG;UACpBC,IAAI,EAAE,IAAIJ,IAAI,CAACI,IAAI;QACvB,CAAC,CAAC;QACFkB,iBAAiB,EAAE;MACvB,CAAC,CAAC;MAEF,OAAO,IAAI,CAACjB,OAAO;IACvB;;IAEA;AACJ;AACA;AACA;IACckB,QAAQA,CAAA,EAAY;MAC1B,OAAO,IAAI,CAAClB,OAAO,GAAI,IAAI,CAACA,OAAO,CAAcmB,cAAc,CAAC,CAAC,GAAG,IAAI;IAC5E;;IAEA;AACJ;AACA;IACcC,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACpB,OAAO,IAAI,IAAI,CAACN,QAAQ,EAAE;QAC9B,IAAI,CAACM,OAAO,CAAcqB,UAAU,CAAC,CAAC,IAAI,CAAC3B,QAAQ,CAACE,EAAE,EAAEQ,QAAQ,CAAC;MACtE;IACJ;EACJ;EAAC,IAAAkB,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAjC,sBAAA,GAAAA,sBAAA;EAAA,OAAAiC,SAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ODataListBindingPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,uEAAuE,CAAC;IACvF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IAGpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAGlF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;;;;;OAMG;IACH,MAAa,sBAAuB,SAAQ,UAAU;QAC3C,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO;QA4BzG;;;WAGG;QACH,SAAS,CAAC,QAAQ,IAAI,OAAO;QAI7B;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAK/B;CAEA"}
1
+ {"version":3,"file":"ODataListBindingPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,uEAAuE,CAAC;IACvF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IAGpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAGlF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;;;;;OAMG;IACH,MAAa,sBAAuB,SAAQ,UAAU;QAC3C,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO;QA6BzG;;;WAGG;QACH,SAAS,CAAC,QAAQ,IAAI,OAAO;QAI7B;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAK/B;CAEA"}
@@ -1,2 +1,2 @@
1
- sap.ui.define(["../controls/BasePlugin","sap/m/ComboBox","sap/ui/core/Item"],function(e,t,a){"use strict";const l=e["BasePlugin"];class n extends l{render(e,l,n="meta"){this.metadata=e;const s=e.ui?.args||{path:"/",key:"ID",text:"Name"};this.control=new t({selectedKey:`{${n}>${l}}`,enabled:!e.ui?.readOnly,placeholder:e.ui?.label||"Select...",change:e=>{const t=e.getParameter("selectedItem")?.getKey();this.validate()}});this.control.bindAggregation("items",{path:s.path,template:new a({key:`{${s.key}}`,text:`{${s.text}}`}),templateShareable:false});return this.control}getValue(){return this.control?this.control.getSelectedKey():null}applyState(){if(this.control&&this.metadata){this.control.setEnabled(!this.metadata.ui?.readOnly)}}}var s={__esModule:true};s.ODataListBindingPlugin=n;return s});
1
+ sap.ui.define(["../controls/BasePlugin","sap/m/ComboBox","sap/ui/core/Item"],function(e,t,a){"use strict";const n=e["BasePlugin"];class l extends n{render(e,n,l="meta"){this.metadata=e;const s=e.ui?.args||{path:"/",key:"ID",text:"Name"};this.control=new t({selectedKey:`{${l}>${n}}`,enabled:!e.ui?.readOnly,placeholder:e.ui?.label||"Select...",change:e=>{const t=e.getParameter("selectedItem");const a=t?.getKey();this.validate()}});this.control.bindAggregation("items",{path:s.path,template:new a({key:`{${s.key}}`,text:`{${s.text}}`}),templateShareable:false});return this.control}getValue(){return this.control?this.control.getSelectedKey():null}applyState(){if(this.control&&this.metadata){this.control.setEnabled(!this.metadata.ui?.readOnly)}}}var s={__esModule:true};s.ODataListBindingPlugin=l;return s});
2
2
  //# sourceMappingURL=ODataListBindingPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ODataListBindingPlugin.js","names":["BasePlugin","___controls_BasePlugin","ODataListBindingPlugin","render","fieldMetadata","bindingPath","modelName","this","metadata","args","ui","path","key","text","control","ComboBox","selectedKey","enabled","readOnly","placeholder","label","change","oEvent","val","getParameter","getKey","validate","bindAggregation","template","Item","templateShareable","getValue","getSelectedKey","applyState","setEnabled","__exports","__esModule"],"sources":["ODataListBindingPlugin.ts"],"sourcesContent":["/**\r\n * @file ODataListBindingPlugin.ts\r\n * @description A custom datasource plugin that binds a ComboBox to an OData EntitySet.\r\n */\r\n\r\nimport { BasePlugin } from \"../controls/BasePlugin\";\rimport Event from \"sap/ui/base/Event\";\n\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\r\nimport ComboBox from \"sap/m/ComboBox\";\r\nimport Item from \"sap/ui/core/Item\";\r\nimport Control from \"sap/ui/core/Control\";\r\n\r\n/**\r\n * Renders a ComboBox natively bound to an OData Model entity set.\r\n * Expects args: { path: \"/Categories\", key: \"ID\", text: \"Name\" }\r\n * \r\n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\r\n * @public\r\n */\r\nexport class ODataListBindingPlugin extends BasePlugin {\r\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n const args = (fieldMetadata.ui?.args as any) || { path: \"/\", key: \"ID\", text: \"Name\" };\r\n \r\n this.control = new ComboBox({\r\n selectedKey: `{${modelName}>${bindingPath}}`,\r\n enabled: !fieldMetadata.ui?.readOnly,\r\n placeholder: fieldMetadata.ui?.label || \"Select...\",\r\n change: (oEvent: Event) => {\r\n const val = ((oEvent as any).getParameter(\"selectedItem\") as any)?.getKey();\r\n this.validate();\r\n }\r\n });\r\n\r\n // Natively bind aggregation to the default model (OData)\r\n (this.control as ComboBox).bindAggregation(\"items\", {\r\n path: args.path,\r\n template: new Item({\r\n key: `{${args.key}}`,\r\n text: `{${args.text}}`\r\n }),\r\n templateShareable: false\r\n });\r\n\r\n return this.control as Control;\r\n }\r\n\r\n /**\r\n * Retrieves the current selected key.\r\n * @returns {unknown} The selected key.\r\n */\r\n protected getValue(): unknown {\r\n return this.control ? (this.control as ComboBox).getSelectedKey() : null;\r\n }\r\n\r\n /**\r\n * Applies dynamic read-only state.\r\n */\r\n protected applyState(): void {\r\n if (this.control && this.metadata) {\r\n (this.control as ComboBox).setEnabled(!this.metadata.ui?.readOnly);\r\n }\r\n }\r\n}\r\n"],"mappings":"0GAAA,MAKSA,EAAUC,EAAA,cAeZ,MAAMC,UAA+BF,EACjCG,OAAOC,EAAkCC,EAAqBC,EAAoB,QACrFC,KAAKC,SAAWJ,EAEhB,MAAMK,EAAQL,EAAcM,IAAID,MAAgB,CAAEE,KAAM,IAAKC,IAAK,KAAMC,KAAM,QAE9EN,KAAKO,QAAU,IAAIC,EAAS,CACxBC,YAAa,IAAIV,KAAaD,KAC9BY,SAAUb,EAAcM,IAAIQ,SAC5BC,YAAaf,EAAcM,IAAIU,OAAS,YACxCC,OAASC,IACL,MAAMC,EAAQD,EAAeE,aAAa,iBAAyBC,SACnElB,KAAKmB,cAKZnB,KAAKO,QAAqBa,gBAAgB,QAAS,CAChDhB,KAAMF,EAAKE,KACXiB,SAAU,IAAIC,EAAK,CACfjB,IAAK,IAAIH,EAAKG,OACdC,KAAM,IAAIJ,EAAKI,UAEnBiB,kBAAmB,QAGvB,OAAOvB,KAAKO,OAChB,CAMUiB,WACN,OAAOxB,KAAKO,QAAWP,KAAKO,QAAqBkB,iBAAmB,IACxE,CAKUC,aACN,GAAI1B,KAAKO,SAAWP,KAAKC,SAAU,CAC9BD,KAAKO,QAAqBoB,YAAY3B,KAAKC,SAASE,IAAIQ,SAC7D,CACJ,EACH,IAAAiB,EAAA,CAAAC,WAAA,MAAAD,EAAAjC,yBAAA,OAAAiC,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"ODataListBindingPlugin.js","names":["BasePlugin","___controls_BasePlugin","ODataListBindingPlugin","render","fieldMetadata","bindingPath","modelName","this","metadata","args","ui","path","key","text","control","ComboBox","selectedKey","enabled","readOnly","placeholder","label","change","oEvent","selectedItem","getParameter","val","getKey","validate","bindAggregation","template","Item","templateShareable","getValue","getSelectedKey","applyState","setEnabled","__exports","__esModule"],"sources":["ODataListBindingPlugin.ts"],"sourcesContent":["/**\n * @file ODataListBindingPlugin.ts\n * @description A custom datasource plugin that binds a ComboBox to an OData EntitySet.\n */\n\nimport { BasePlugin } from \"../controls/BasePlugin\";\nimport Event from \"sap/ui/base/Event\";\n\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport ComboBox from \"sap/m/ComboBox\";\nimport Item from \"sap/ui/core/Item\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Renders a ComboBox natively bound to an OData Model entity set.\n * Expects args: { path: \"/Categories\", key: \"ID\", text: \"Name\" }\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\n * @public\n */\nexport class ODataListBindingPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n \n const args = (fieldMetadata.ui?.args as Record<string, string>) || { path: \"/\", key: \"ID\", text: \"Name\" };\n \n this.control = new ComboBox({\n selectedKey: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n placeholder: fieldMetadata.ui?.label || \"Select...\",\n change: (oEvent: Event) => {\n const selectedItem = (oEvent.getParameter(\"selectedItem\") as unknown) as Item;\n const val = selectedItem?.getKey();\n this.validate();\n }\n });\n\n // Natively bind aggregation to the default model (OData)\n (this.control as ComboBox).bindAggregation(\"items\", {\n path: args.path,\n template: new Item({\n key: `{${args.key}}`,\n text: `{${args.text}}`\n }),\n templateShareable: false\n });\n\n return this.control as Control;\n }\n\n /**\n * Retrieves the current selected key.\n * @returns {unknown} The selected key.\n */\n protected getValue(): unknown {\n return this.control ? (this.control as ComboBox).getSelectedKey() : null;\n }\n\n /**\n * Applies dynamic read-only state.\n */\n protected applyState(): void {\n if (this.control && this.metadata) {\n (this.control as ComboBox).setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"0GAAA,MAKSA,EAAUC,EAAA,cAeZ,MAAMC,UAA+BF,EACjCG,OAAOC,EAAkCC,EAAqBC,EAAoB,QACrFC,KAAKC,SAAWJ,EAEhB,MAAMK,EAAQL,EAAcM,IAAID,MAAmC,CAAEE,KAAM,IAAKC,IAAK,KAAMC,KAAM,QAEjGN,KAAKO,QAAU,IAAIC,EAAS,CACxBC,YAAa,IAAIV,KAAaD,KAC9BY,SAAUb,EAAcM,IAAIQ,SAC5BC,YAAaf,EAAcM,IAAIU,OAAS,YACxCC,OAASC,IACL,MAAMC,EAAgBD,EAAOE,aAAa,gBAC1C,MAAMC,EAAMF,GAAcG,SAC1BnB,KAAKoB,cAKZpB,KAAKO,QAAqBc,gBAAgB,QAAS,CAChDjB,KAAMF,EAAKE,KACXkB,SAAU,IAAIC,EAAK,CACflB,IAAK,IAAIH,EAAKG,OACdC,KAAM,IAAIJ,EAAKI,UAEnBkB,kBAAmB,QAGvB,OAAOxB,KAAKO,OAChB,CAMUkB,WACN,OAAOzB,KAAKO,QAAWP,KAAKO,QAAqBmB,iBAAmB,IACxE,CAKUC,aACN,GAAI3B,KAAKO,SAAWP,KAAKC,SAAU,CAC9BD,KAAKO,QAAqBqB,YAAY5B,KAAKC,SAASE,IAAIQ,SAC7D,CACJ,EACH,IAAAkB,EAAA,CAAAC,WAAA,MAAAD,EAAAlC,yBAAA,OAAAkC,CAAA","ignoreList":[]}
@@ -1,65 +1,67 @@
1
- /**
2
- * @file ODataListBindingPlugin.ts
3
- * @description A custom datasource plugin that binds a ComboBox to an OData EntitySet.
4
- */
5
-
6
- import { BasePlugin } from "../controls/BasePlugin";
1
+ /**
2
+ * @file ODataListBindingPlugin.ts
3
+ * @description A custom datasource plugin that binds a ComboBox to an OData EntitySet.
4
+ */
7
5
 
8
- import { IPropertyMetadata } from "../../interfaces/ISchema";
9
- import ComboBox from "sap/m/ComboBox";
10
- import Item from "sap/ui/core/Item";
11
- import Control from "sap/ui/core/Control";
12
-
13
- /**
14
- * Renders a ComboBox natively bound to an OData Model entity set.
15
- * Expects args: { path: "/Categories", key: "ID", text: "Name" }
16
- *
17
- * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources
18
- * @public
19
- */
20
- export class ODataListBindingPlugin extends BasePlugin {
21
- public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta"): Control {
22
- this.metadata = fieldMetadata;
23
-
24
- const args = (fieldMetadata.ui?.args as any) || { path: "/", key: "ID", text: "Name" };
25
-
26
- this.control = new ComboBox({
27
- selectedKey: `{${modelName}>${bindingPath}}`,
28
- enabled: !fieldMetadata.ui?.readOnly,
29
- placeholder: fieldMetadata.ui?.label || "Select...",
30
- change: (oEvent: Event) => {
31
- const val = ((oEvent as any).getParameter("selectedItem") as any)?.getKey();
32
- this.validate();
33
- }
34
- });
35
-
36
- // Natively bind aggregation to the default model (OData)
37
- (this.control as ComboBox).bindAggregation("items", {
38
- path: args.path,
39
- template: new Item({
40
- key: `{${args.key}}`,
41
- text: `{${args.text}}`
42
- }),
43
- templateShareable: false
44
- });
45
-
46
- return this.control as Control;
47
- }
48
-
49
- /**
50
- * Retrieves the current selected key.
51
- * @returns {unknown} The selected key.
52
- */
53
- protected getValue(): unknown {
54
- return this.control ? (this.control as ComboBox).getSelectedKey() : null;
55
- }
56
-
57
- /**
58
- * Applies dynamic read-only state.
59
- */
60
- protected applyState(): void {
61
- if (this.control && this.metadata) {
62
- (this.control as ComboBox).setEnabled(!this.metadata.ui?.readOnly);
63
- }
64
- }
65
- }
6
+ import { BasePlugin } from "../controls/BasePlugin";
7
+ import Event from "sap/ui/base/Event";
8
+
9
+ import { IPropertyMetadata } from "../../interfaces/ISchema";
10
+ import ComboBox from "sap/m/ComboBox";
11
+ import Item from "sap/ui/core/Item";
12
+ import Control from "sap/ui/core/Control";
13
+
14
+ /**
15
+ * Renders a ComboBox natively bound to an OData Model entity set.
16
+ * Expects args: { path: "/Categories", key: "ID", text: "Name" }
17
+ *
18
+ * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources
19
+ * @public
20
+ */
21
+ export class ODataListBindingPlugin extends BasePlugin {
22
+ public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta"): Control {
23
+ this.metadata = fieldMetadata;
24
+
25
+ const args = (fieldMetadata.ui?.args as Record<string, string>) || { path: "/", key: "ID", text: "Name" };
26
+
27
+ this.control = new ComboBox({
28
+ selectedKey: `{${modelName}>${bindingPath}}`,
29
+ enabled: !fieldMetadata.ui?.readOnly,
30
+ placeholder: fieldMetadata.ui?.label || "Select...",
31
+ change: (oEvent: Event) => {
32
+ const selectedItem = (oEvent.getParameter("selectedItem") as unknown) as Item;
33
+ const val = selectedItem?.getKey();
34
+ this.validate();
35
+ }
36
+ });
37
+
38
+ // Natively bind aggregation to the default model (OData)
39
+ (this.control as ComboBox).bindAggregation("items", {
40
+ path: args.path,
41
+ template: new Item({
42
+ key: `{${args.key}}`,
43
+ text: `{${args.text}}`
44
+ }),
45
+ templateShareable: false
46
+ });
47
+
48
+ return this.control as Control;
49
+ }
50
+
51
+ /**
52
+ * Retrieves the current selected key.
53
+ * @returns {unknown} The selected key.
54
+ */
55
+ protected getValue(): unknown {
56
+ return this.control ? (this.control as ComboBox).getSelectedKey() : null;
57
+ }
58
+
59
+ /**
60
+ * Applies dynamic read-only state.
61
+ */
62
+ protected applyState(): void {
63
+ if (this.control && this.metadata) {
64
+ (this.control as ComboBox).setEnabled(!this.metadata.ui?.readOnly);
65
+ }
66
+ }
67
+ }
@@ -53,13 +53,15 @@ sap.ui.define(["../controls/BasePlugin", "sap/m/Select", "sap/ui/core/Item", "..
53
53
  selectedKey: `{${modelName}>${bindingPath}}`,
54
54
  enabled: !fieldMetadata.ui?.readOnly,
55
55
  forceSelection: false,
56
- busy: true,
57
- // Show busy indicator while fetching
58
- change: oEvent => {
59
- const result = this.validate();
60
- if (this.onChange) {
61
- this.onChange(result.isValid, this.fieldKey);
62
- }
56
+ busy: true // Show busy indicator while fetching
57
+ });
58
+ select.attachChange(() => {
59
+ const result = this.validate();
60
+ if (this.onChange) {
61
+ this.onChange(result.isValid, this.fieldKey, result.errorMessage, this.control?.getId());
62
+ }
63
+ if (this.useMessageManager) {
64
+ this.setVisualValidationState(result.isValid, result.errorMessage);
63
65
  }
64
66
  });
65
67
 
@@ -74,6 +76,7 @@ sap.ui.define(["../controls/BasePlugin", "sap/m/Select", "sap/ui/core/Item", "..
74
76
  if (!res.ok) throw new Error(`HTTP ${res.status}`);
75
77
  return res.json();
76
78
  }).then(data => {
79
+ if (select.bIsDestroyed) return;
77
80
  const arr = Array.isArray(data) ? data : data.value || [];
78
81
  arr.forEach(item => {
79
82
  const k = config.keyPath ? item[config.keyPath] : item;
@@ -85,6 +88,7 @@ sap.ui.define(["../controls/BasePlugin", "sap/m/Select", "sap/ui/core/Item", "..
85
88
  });
86
89
  select.setBusy(false);
87
90
  }).catch(err => {
91
+ if (select.bIsDestroyed) return;
88
92
  Logger.error(`[MetaUI RemoteDropdownPlugin] Failed to fetch remote data from ${config.url}`, err.message);
89
93
  select.addItem(new Item({
90
94
  key: "",
@@ -102,7 +106,24 @@ sap.ui.define(["../controls/BasePlugin", "sap/m/Select", "sap/ui/core/Item", "..
102
106
  * @returns {unknown} The selected key.
103
107
  */
104
108
  getValue() {
105
- return this.control ? this.control.getSelectedKey() : null;
109
+ if (!this.control) return null;
110
+ const select = this.control;
111
+ if (select.getBusy()) {
112
+ // Prevent false negatives during fast form submissions:
113
+ // If still fetching items, getSelectedKey() is blank, so fallback to raw model data.
114
+ const binding = select.getBinding("selectedKey");
115
+ if (binding && typeof binding.getValue === "function") {
116
+ return binding.getValue();
117
+ }
118
+ }
119
+ let val = select.getSelectedKey();
120
+
121
+ // Defect #8: Dropdown Type Coercion Crash
122
+ if (this.metadata && (this.metadata.type === "number" || this.metadata.type === "integer")) {
123
+ if (val === "" || val === null || val === undefined) return null;
124
+ return Number(val);
125
+ }
126
+ return val;
106
127
  }
107
128
 
108
129
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteDropdownPlugin-dbg.js","names":["BasePlugin","___controls_BasePlugin","Logger","____utils_Logger","RemoteDropdownPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","config","valueHelp","url","warn","sap","m","Text","text","isEditable","ui","requireSync","TextControl","require","control","id","generateStableId","applyCommonDirectives","select","Select","selectedKey","enabled","readOnly","forceSelection","busy","change","oEvent","result","validate","isValid","fieldKey","addItem","Item","key","fetch","then","res","ok","Error","status","json","data","arr","Array","isArray","value","forEach","item","k","keyPath","t","textPath","String","setBusy","catch","err","error","message","getValue","getSelectedKey","applyState","setEnabled","__exports","__esModule"],"sources":["RemoteDropdownPlugin.ts"],"sourcesContent":["/**\r\n * @file RemoteDropdownPlugin.ts\r\n * @description Renders a sap.m.Select that fetches valueHelp remotely via a JSON URL.\r\n */\r\n\r\nimport { BasePlugin } from \"../controls/BasePlugin\";\rimport Event from \"sap/ui/base/Event\";\n\nimport { IPropertyMetadata, IRemoteValueHelpConfig } from \"../../interfaces/ISchema\";\r\nimport Select from \"sap/m/Select\";\r\nimport Item from \"sap/ui/core/Item\";\r\nimport Control from \"sap/ui/core/Control\";\r\nimport { Logger } from \"../../utils/Logger\";\r\n\r\n/**\r\n * Handles rendering logic for dropdown inputs fetching data remotely.\r\n * Maps a URL response array to `Item` elements.\r\n * \r\n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\r\n * @public\r\n */\r\nexport class RemoteDropdownPlugin extends BasePlugin {\r\n \r\n /**\r\n * Renders a `Select` dropdown that fetches data remotely.\r\n * \r\n * @param fieldMetadata The specific JSON schema properties for this field.\r\n * @param bindingPath The JSON path bound to this control.\r\n * @param modelName The UI5 JSONModel name.\r\n * @param engineScopeId The deterministic scope ID.\r\n * @param onChange The callback fired on value change.\r\n * @returns {Control} The configured Select control.\r\n */\r\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {\r\n this.onChange = onChange;\r\n this.metadata = fieldMetadata;\r\n\r\n const config = fieldMetadata.valueHelp as IRemoteValueHelpConfig;\r\n if (!config || !config.url) {\r\n Logger.warn(\"[MetaUI RemoteDropdownPlugin] No valid URL provided for remoteDropdown.\");\r\n return new (sap as any).m.Text({ text: \"Error: No URL provided\" }) as Control;\r\n }\r\n \r\n if (!this.isEditable) {\r\n (sap.ui as any).requireSync(\"sap/m/Text\");\r\n const TextControl = sap.ui.require(\"sap/m/Text\");\r\n \r\n this.control = new TextControl({\r\n id: this.generateStableId(engineScopeId, bindingPath),\r\n text: `{${modelName}>${bindingPath}}` // We might not have the text mapping synchronously\r\n });\r\n \r\n // Optionally, we could fetch data and update the text formatter here\r\n \r\n this.applyCommonDirectives(this.control!, fieldMetadata, modelName);\r\n return this.control as Control;\r\n }\r\n\r\n const select = new Select({\r\n id: this.generateStableId(engineScopeId, bindingPath),\r\n selectedKey: `{${modelName}>${bindingPath}}`,\r\n enabled: !fieldMetadata.ui?.readOnly,\r\n forceSelection: false,\r\n busy: true, // Show busy indicator while fetching\r\n change: (oEvent: Event) => {\r\n const result = this.validate();\r\n if (this.onChange) {\r\n this.onChange(result.isValid, this.fieldKey);\r\n }\r\n }\r\n });\r\n\r\n // Add empty placeholder\r\n select.addItem(new Item({ key: \"\", text: \"--- Select ---\" }));\r\n\r\n // Fetch data remotely\r\n fetch(config.url)\r\n .then(res => {\r\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\r\n return res.json();\r\n })\r\n .then(data => {\r\n const arr = Array.isArray(data) ? data : (data.value || []);\r\n arr.forEach((item: Record<string, unknown>) => {\r\n const k = config.keyPath ? item[config.keyPath] : item;\r\n const t = config.textPath ? item[config.textPath] : item;\r\n select.addItem(new Item({ key: String(k), text: String(t) }));\r\n });\r\n select.setBusy(false);\r\n })\r\n .catch(err => {\r\n Logger.error(`[MetaUI RemoteDropdownPlugin] Failed to fetch remote data from ${config.url}`, err.message);\r\n select.addItem(new Item({ key: \"\", text: \"Error loading data\" }));\r\n select.setBusy(false);\r\n });\r\n\r\n this.control = select;\r\n this.applyCommonDirectives(this.control!, fieldMetadata, modelName);\r\n return this.control as Control;\r\n }\r\n\r\n /**\r\n * Retrieves the current selected key.\r\n * @returns {unknown} The selected key.\r\n */\r\n protected getValue(): unknown {\r\n return this.control ? (this.control as Select).getSelectedKey() : null;\r\n }\r\n\r\n /**\r\n * Applies dynamic read-only state.\r\n */\r\n protected applyState(): void {\r\n if (this.control && this.metadata) {\r\n if (!this.isEditable) return;\r\n const select = this.control as Select;\r\n select.setEnabled(!this.metadata.ui?.readOnly);\r\n }\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RemoteDropdownPlugin-dbg.js","names":["BasePlugin","___controls_BasePlugin","Logger","____utils_Logger","RemoteDropdownPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","metadata","config","valueHelp","url","warn","sap","m","Text","text","isEditable","ui","requireSync","TextControl","require","control","id","generateStableId","applyCommonDirectives","select","Select","selectedKey","enabled","readOnly","forceSelection","busy","attachChange","result","validate","isValid","fieldKey","errorMessage","getId","useMessageManager","setVisualValidationState","addItem","Item","key","fetch","then","res","ok","Error","status","json","data","bIsDestroyed","arr","Array","isArray","value","forEach","item","k","keyPath","t","textPath","String","setBusy","catch","err","error","message","getValue","getBusy","binding","getBinding","val","getSelectedKey","type","undefined","Number","applyState","setEnabled","__exports","__esModule"],"sources":["RemoteDropdownPlugin.ts"],"sourcesContent":["/**\n * @file RemoteDropdownPlugin.ts\n * @description Renders a sap.m.Select that fetches valueHelp remotely via a JSON URL.\n */\n\nimport { BasePlugin } from \"../controls/BasePlugin\";\nimport Event from \"sap/ui/base/Event\";\n\nimport { IPropertyMetadata, IRemoteValueHelpConfig } from \"../../interfaces/ISchema\";\nimport Select from \"sap/m/Select\";\nimport Item from \"sap/ui/core/Item\";\nimport Control from \"sap/ui/core/Control\";\nimport { Logger } from \"../../utils/Logger\";\n\n/**\n * Handles rendering logic for dropdown inputs fetching data remotely.\n * Maps a URL response array to `Item` elements.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\n * @public\n */\nexport class RemoteDropdownPlugin extends BasePlugin {\n \n /**\n * Renders a `Select` dropdown that fetches data remotely.\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 Select control.\n */\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control {\n this.onChange = onChange;\n this.metadata = fieldMetadata;\n\n const config = fieldMetadata.valueHelp as IRemoteValueHelpConfig;\n if (!config || !config.url) {\n Logger.warn(\"[MetaUI RemoteDropdownPlugin] No valid URL provided for remoteDropdown.\");\n return new (sap as any).m.Text({ text: \"Error: No URL provided\" }) as Control;\n }\n \n if (!this.isEditable) {\n (sap.ui as any).requireSync(\"sap/m/Text\");\n const TextControl = sap.ui.require(\"sap/m/Text\");\n \n this.control = new TextControl({\n id: this.generateStableId(engineScopeId, bindingPath),\n text: `{${modelName}>${bindingPath}}` // We might not have the text mapping synchronously\n });\n \n // Optionally, we could fetch data and update the text formatter here\n \n this.applyCommonDirectives(this.control!, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n const select = new Select({\n id: this.generateStableId(engineScopeId, bindingPath),\n selectedKey: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n forceSelection: false,\n busy: true // Show busy indicator while fetching\n });\n\n select.attachChange(() => {\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey, result.errorMessage, this.control?.getId());\n }\n if (this.useMessageManager) {\n this.setVisualValidationState(result.isValid, result.errorMessage);\n }\n });\n\n // Add empty placeholder\n select.addItem(new Item({ key: \"\", text: \"--- Select ---\" }));\n\n // Fetch data remotely\n fetch(config.url)\n .then(res => {\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n return res.json();\n })\n .then(data => {\n if ((select as any).bIsDestroyed) return;\n const arr = Array.isArray(data) ? data : (data.value || []);\n arr.forEach((item: Record<string, unknown>) => {\n const k = config.keyPath ? item[config.keyPath] : item;\n const t = config.textPath ? item[config.textPath] : item;\n select.addItem(new Item({ key: String(k), text: String(t) }));\n });\n select.setBusy(false);\n })\n .catch(err => {\n if ((select as any).bIsDestroyed) return;\n Logger.error(`[MetaUI RemoteDropdownPlugin] Failed to fetch remote data from ${config.url}`, err.message);\n select.addItem(new Item({ key: \"\", text: \"Error loading data\" }));\n select.setBusy(false);\n });\n\n this.control = select;\n this.applyCommonDirectives(this.control!, fieldMetadata, modelName);\n return this.control as Control;\n }\n\n /**\n * Retrieves the current selected key.\n * @returns {unknown} The selected key.\n */\n protected getValue(): unknown {\n if (!this.control) return null;\n \n const select = this.control as Select;\n if (select.getBusy()) {\n // Prevent false negatives during fast form submissions: \n // If still fetching items, getSelectedKey() is blank, so fallback to raw model data.\n const binding = select.getBinding(\"selectedKey\");\n if (binding && typeof (binding as any).getValue === \"function\") {\n return (binding as any).getValue();\n }\n }\n \n let val: unknown = select.getSelectedKey();\n \n // Defect #8: Dropdown Type Coercion Crash\n if (this.metadata && (this.metadata.type === \"number\" || this.metadata.type === \"integer\")) {\n if (val === \"\" || val === null || val === undefined) return null;\n return Number(val);\n }\n \n return val;\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 select = this.control as Select;\n select.setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -24,7 +24,7 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlu
24
24
  * @param onChange The callback fired on value change.
25
25
  * @returns {Control} The configured Select control.
26
26
  */
27
- render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control;
27
+ render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string, engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string, errorMessage?: string, controlId?: string) => void): Control;
28
28
  /**
29
29
  * Retrieves the current selected key.
30
30
  * @returns {unknown} The selected key.
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteDropdownPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,qEAAqE,CAAC;IACrF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IAGpF,OAAO,EAAE,iBAAiB,EAA0B,MAAM,+CAA+C,CAAC;IAG1G,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAG1C;;;;;;OAMG;IACH,MAAa,oBAAqB,SAAQ,UAAU;QAEhD;;;;;;;;;WASG;QACI,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,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;QAoE3L;;;WAGG;QACH,SAAS,CAAC,QAAQ,IAAI,OAAO;QAI7B;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAO/B;CAEA"}
1
+ {"version":3,"file":"RemoteDropdownPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,qEAAqE,CAAC;IACrF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IAGpF,OAAO,EAAE,iBAAiB,EAA0B,MAAM,+CAA+C,CAAC;IAG1G,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAG1C;;;;;;OAMG;IACH,MAAa,oBAAqB,SAAQ,UAAU;QAEhD;;;;;;;;;WASG;QACI,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO;QA0EtO;;;WAGG;QACH,SAAS,CAAC,QAAQ,IAAI,OAAO;QAwB7B;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAO/B;CAEA"}