@siliconst/metaui 1.4.21 → 1.4.34

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 (338) hide show
  1. package/package.json +1 -1
  2. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js +51 -0
  3. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js.map +1 -0
  4. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts +41 -0
  5. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts.map +1 -0
  6. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js +2 -0
  7. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js.map +1 -0
  8. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.ts +44 -0
  9. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -1
  10. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -1
  11. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +1 -1
  12. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -1
  13. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts.map +1 -1
  14. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -1
  15. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +2 -1
  16. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +2 -2
  17. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -1
  18. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +1 -1
  19. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -1
  20. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +3 -3
  21. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +5 -1
  22. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  23. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +6 -2
  24. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  25. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  26. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  27. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +10 -9
  28. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +0 -9
  29. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -1
  30. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +0 -9
  31. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -1
  32. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +1 -1
  33. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -1
  34. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +3 -9
  35. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +0 -11
  36. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -1
  37. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +0 -11
  38. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -1
  39. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +1 -1
  40. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +2 -9
  42. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +2 -7
  43. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -1
  44. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +0 -5
  45. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -1
  46. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +1 -1
  47. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -1
  48. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +3 -7
  49. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +1 -6
  50. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -1
  51. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +0 -5
  52. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -1
  53. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +1 -1
  54. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -1
  55. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +9 -12
  56. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +51 -12
  57. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  58. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +13 -0
  59. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  60. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +53 -14
  63. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +2 -2
  64. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  65. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +1 -1
  66. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  67. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +1 -1
  68. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +3 -3
  70. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js.map +1 -1
  71. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -1
  74. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +8 -7
  75. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +1 -1
  77. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
  78. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +3 -3
  80. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +1 -1
  81. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +1 -1
  82. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +4 -4
  83. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +3 -4
  84. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  85. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  87. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  88. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +6 -7
  90. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js +84 -0
  91. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js.map +1 -0
  92. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts +16 -0
  93. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts.map +1 -0
  94. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js +2 -0
  95. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js.map +1 -0
  96. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.ts +80 -0
  97. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js +137 -0
  98. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js.map +1 -0
  99. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts +24 -0
  100. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts.map +1 -0
  101. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js +2 -0
  102. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js.map +1 -0
  103. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.ts +141 -0
  104. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +26 -0
  105. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +2 -0
  107. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  108. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  109. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  110. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +29 -1
  111. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +1 -1
  112. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  113. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +4 -4
  114. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  115. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  116. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  117. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +11 -11
  118. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  119. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  120. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +1 -1
  121. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  122. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +4 -1
  123. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  124. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +5 -1
  125. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +5 -5
  126. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  127. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  128. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
  129. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  130. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +4 -4
  131. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +7 -5
  132. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  133. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
  134. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  135. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  136. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +11 -7
  137. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +40 -37
  138. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  139. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js.map +1 -1
  140. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts +1 -1
  141. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts.map +1 -1
  142. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js.map +1 -1
  143. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts +1 -1
  144. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.map +1 -1
  145. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts.map +1 -1
  147. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js.map +1 -1
  148. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.ts +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js.map +1 -1
  150. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts +1 -1
  151. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts.map +1 -1
  152. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js.map +1 -1
  153. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.ts +1 -1
  154. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js +2 -2
  155. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js.map +1 -1
  156. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js.map +1 -1
  157. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.ts +2 -2
  158. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js.map +1 -1
  159. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts +1 -1
  160. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts.map +1 -1
  161. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js.map +1 -1
  162. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts +3 -3
  163. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js.map +1 -1
  164. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts +1 -1
  165. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts.map +1 -1
  166. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js.map +1 -1
  167. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.ts +1 -1
  168. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js.map +1 -1
  169. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts +1 -1
  170. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts.map +1 -1
  171. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js.map +1 -1
  172. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.ts +1 -1
  173. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js +1 -1
  174. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js.map +1 -1
  175. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts +4 -4
  176. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts.map +1 -1
  177. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js.map +1 -1
  178. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts +19 -19
  179. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -1
  180. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -1
  181. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -1
  182. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +2 -1
  183. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +18 -15
  184. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  185. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  186. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
  187. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  188. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +18 -18
  189. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +1 -1
  190. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  191. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  192. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  193. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +2 -2
  194. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  195. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +1 -6
  196. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  197. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  198. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +2 -2
  199. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  200. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  201. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +2 -2
  203. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  204. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  205. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  206. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +2 -2
  207. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +4 -4
  208. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  209. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  210. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  211. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +4 -4
  212. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +1 -1
  213. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  214. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  215. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  216. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +2 -2
  217. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +1 -1
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +2 -2
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +1 -1
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js +1 -1
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js.map +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js +1 -1
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js.map +1 -1
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.ts +1 -1
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +1 -1
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +2 -2
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +2 -2
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +2 -2
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js +1 -1
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js.map +1 -1
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js +1 -1
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js.map +1 -1
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.ts +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +1 -1
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +3 -3
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +3 -3
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +4 -4
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +5 -4
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +1 -1
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +7 -6
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js +1 -1
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js.map +1 -1
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js +1 -1
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js.map +1 -1
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.ts +1 -1
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +1 -1
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +2 -2
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +3 -2
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js.map +1 -1
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts.map +1 -1
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js +1 -1
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js.map +1 -1
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts +3 -2
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +2 -2
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +2 -2
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +2 -2
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +2 -2
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +1 -1
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +1 -1
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +1 -1
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -1
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +1 -1
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -1
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +2 -2
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +1 -1
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +1 -1
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +2 -2
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +2 -2
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +1 -1
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +1 -1
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +2 -2
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +2 -2
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts.map +1 -1
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +109 -108
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -1
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -1
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -1
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +64 -63
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +1 -1
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -1
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +1 -1
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -1
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -1
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +118 -117
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts.map +1 -1
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +105 -104
  335. package/src/nz/co/siliconst/ui5/metaui/utils/Logger-dbg.js.map +1 -1
  336. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts.map +1 -1
  337. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js.map +1 -1
  338. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteDropdownPlugin.js","names":["BasePlugin","___controls_BasePlugin","Logger","____utils_Logger","RemoteDropdownPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","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":["/**\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 { 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 `sap.ui.core.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) => 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.m.Text({ text: \"Error: No URL provided\" }) as Control;\n }\n \n if (!this.isEditable) {\n sap.ui.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 change: (oEvent: sap.ui.base.Event) => {\n const result = this.validate();\n if (this.onChange) {\n this.onChange(result.isValid, this.fieldKey);\n }\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 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 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 return this.control ? (this.control as Select).getSelectedKey() : null;\n }\n\n /**\n * Applies dynamic read-only state.\n */\n protected applyState(): void {\n if (this.control && this.metadata) {\n if (!this.isEditable) return;\n const select = this.control as Select;\n select.setEnabled(!this.metadata.ui?.readOnly);\n }\n }\n}\n"],"mappings":"+HAAA,MAKSA,EAAUC,EAAA,oBAKVC,EAAMC,EAAA,UASR,MAAMC,UAA6BJ,EAY/BK,OAAOC,EAAkCC,EAAqBC,EAAoB,OAAQC,EAAwBC,GACrHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAEhB,MAAMO,EAASP,EAAcQ,UAC7B,IAAKD,IAAWA,EAAOE,IAAK,CACxBb,EAAOc,KAAK,2EACZ,OAAO,IAAIC,IAAIC,EAAEC,KAAK,CAAEC,KAAM,0BAClC,CAEA,IAAKT,KAAKU,WAAY,CAClBJ,IAAIK,GAAGC,YAAY,cACnB,MAAMC,EAAcP,IAAIK,GAAGG,QAAQ,cAEnCd,KAAKe,QAAU,IAAIF,EAAY,CAC3BG,GAAIhB,KAAKiB,iBAAiBnB,EAAeF,GACzCa,KAAM,IAAIZ,KAAaD,OAK3BI,KAAKkB,sBAAsBlB,KAAKe,QAASpB,EAAeE,GACxD,OAAOG,KAAKe,OAChB,CAEA,MAAMI,EAAS,IAAIC,EAAO,CACtBJ,GAAIhB,KAAKiB,iBAAiBnB,EAAeF,GACzCyB,YAAa,IAAIxB,KAAaD,KAC9B0B,SAAU3B,EAAcgB,IAAIY,SAC5BC,eAAgB,MAChBC,KAAM,KACNC,OAASC,IACL,MAAMC,EAAS5B,KAAK6B,WACpB,GAAI7B,KAAKD,SAAU,CACfC,KAAKD,SAAS6B,EAAOE,QAAS9B,KAAK+B,SACvC,KAKRZ,EAAOa,QAAQ,IAAIC,EAAK,CAAEC,IAAK,GAAIzB,KAAM,oBAGzC0B,MAAMjC,EAAOE,KACRgC,KAAKC,IACF,IAAKA,EAAIC,GAAI,MAAM,IAAIC,MAAM,QAAQF,EAAIG,UACzC,OAAOH,EAAII,SAEdL,KAAKM,IACF,MAAMC,EAAMC,MAAMC,QAAQH,GAAQA,EAAQA,EAAKI,OAAS,GACxDH,EAAII,QAASC,IACT,MAAMC,EAAI/C,EAAOgD,QAAUF,EAAK9C,EAAOgD,SAAWF,EAClD,MAAMG,EAAIjD,EAAOkD,SAAWJ,EAAK9C,EAAOkD,UAAYJ,EACpD7B,EAAOa,QAAQ,IAAIC,EAAK,CAAEC,IAAKmB,OAAOJ,GAAIxC,KAAM4C,OAAOF,QAE3DhC,EAAOmC,QAAQ,SAElBC,MAAMC,IACHjE,EAAOkE,MAAM,kEAAkEvD,EAAOE,MAAOoD,EAAIE,SACjGvC,EAAOa,QAAQ,IAAIC,EAAK,CAAEC,IAAK,GAAIzB,KAAM,wBACzCU,EAAOmC,QAAQ,SAGvBtD,KAAKe,QAAUI,EACfnB,KAAKkB,sBAAsBlB,KAAKe,QAASpB,EAAeE,GACxD,OAAOG,KAAKe,OAChB,CAMU4C,WACN,OAAO3D,KAAKe,QAAWf,KAAKe,QAAmB6C,iBAAmB,IACtE,CAKUC,aACN,GAAI7D,KAAKe,SAAWf,KAAKC,SAAU,CAC/B,IAAKD,KAAKU,WAAY,OACtB,MAAMS,EAASnB,KAAKe,QACpBI,EAAO2C,YAAY9D,KAAKC,SAASU,IAAIY,SACzC,CACJ,EACH,IAAAwC,EAAA,CAAAC,WAAA,MAAAD,EAAAtE,uBAAA,OAAAsE,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"RemoteDropdownPlugin.js","names":["BasePlugin","___controls_BasePlugin","Logger","____utils_Logger","RemoteDropdownPlugin","render","fieldMetadata","bindingPath","modelName","engineScopeId","onChange","this","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":"+HAAA,MAKSA,EAAUC,EAAA,oBAOVC,EAAMC,EAAA,UASR,MAAMC,UAA6BJ,EAY/BK,OAAOC,EAAkCC,EAAqBC,EAAoB,OAAQC,EAAwBC,GACrHC,KAAKD,SAAWA,EAChBC,KAAKC,SAAWN,EAEhB,MAAMO,EAASP,EAAcQ,UAC7B,IAAKD,IAAWA,EAAOE,IAAK,CACxBb,EAAOc,KAAK,2EACZ,OAAO,IAAKC,IAAYC,EAAEC,KAAK,CAAEC,KAAM,0BAC3C,CAEA,IAAKT,KAAKU,WAAY,CACjBJ,IAAIK,GAAWC,YAAY,cAC5B,MAAMC,EAAcP,IAAIK,GAAGG,QAAQ,cAEnCd,KAAKe,QAAU,IAAIF,EAAY,CAC3BG,GAAIhB,KAAKiB,iBAAiBnB,EAAeF,GACzCa,KAAM,IAAIZ,KAAaD,OAK3BI,KAAKkB,sBAAsBlB,KAAKe,QAAUpB,EAAeE,GACzD,OAAOG,KAAKe,OAChB,CAEA,MAAMI,EAAS,IAAIC,EAAO,CACtBJ,GAAIhB,KAAKiB,iBAAiBnB,EAAeF,GACzCyB,YAAa,IAAIxB,KAAaD,KAC9B0B,SAAU3B,EAAcgB,IAAIY,SAC5BC,eAAgB,MAChBC,KAAM,KACNC,OAASC,IACL,MAAMC,EAAS5B,KAAK6B,WACpB,GAAI7B,KAAKD,SAAU,CACfC,KAAKD,SAAS6B,EAAOE,QAAS9B,KAAK+B,SACvC,KAKRZ,EAAOa,QAAQ,IAAIC,EAAK,CAAEC,IAAK,GAAIzB,KAAM,oBAGzC0B,MAAMjC,EAAOE,KACRgC,KAAKC,IACF,IAAKA,EAAIC,GAAI,MAAM,IAAIC,MAAM,QAAQF,EAAIG,UACzC,OAAOH,EAAII,SAEdL,KAAKM,IACF,MAAMC,EAAMC,MAAMC,QAAQH,GAAQA,EAAQA,EAAKI,OAAS,GACxDH,EAAII,QAASC,IACT,MAAMC,EAAI/C,EAAOgD,QAAUF,EAAK9C,EAAOgD,SAAWF,EAClD,MAAMG,EAAIjD,EAAOkD,SAAWJ,EAAK9C,EAAOkD,UAAYJ,EACpD7B,EAAOa,QAAQ,IAAIC,EAAK,CAAEC,IAAKmB,OAAOJ,GAAIxC,KAAM4C,OAAOF,QAE3DhC,EAAOmC,QAAQ,SAElBC,MAAMC,IACHjE,EAAOkE,MAAM,kEAAkEvD,EAAOE,MAAOoD,EAAIE,SACjGvC,EAAOa,QAAQ,IAAIC,EAAK,CAAEC,IAAK,GAAIzB,KAAM,wBACzCU,EAAOmC,QAAQ,SAGvBtD,KAAKe,QAAUI,EACfnB,KAAKkB,sBAAsBlB,KAAKe,QAAUpB,EAAeE,GACzD,OAAOG,KAAKe,OAChB,CAMU4C,WACN,OAAO3D,KAAKe,QAAWf,KAAKe,QAAmB6C,iBAAmB,IACtE,CAKUC,aACN,GAAI7D,KAAKe,SAAWf,KAAKC,SAAU,CAC/B,IAAKD,KAAKU,WAAY,OACtB,MAAMS,EAASnB,KAAKe,QACpBI,EAAO2C,YAAY9D,KAAKC,SAASU,IAAIY,SACzC,CACJ,EACH,IAAAwC,EAAA,CAAAC,WAAA,MAAAD,EAAAtE,uBAAA,OAAAsE,CAAA","ignoreList":[]}
@@ -1,118 +1,119 @@
1
- /**
2
- * @file RemoteDropdownPlugin.ts
3
- * @description Renders a sap.m.Select that fetches valueHelp remotely via a JSON URL.
4
- */
1
+ /**
2
+ * @file RemoteDropdownPlugin.ts
3
+ * @description Renders a sap.m.Select that fetches valueHelp remotely via a JSON URL.
4
+ */
5
+
6
+ import { BasePlugin } from "../controls/BasePlugin";
5
7
 
6
- import { BasePlugin } from "../controls/BasePlugin";
7
- import { IPropertyMetadata, IRemoteValueHelpConfig } from "../../interfaces/ISchema";
8
- import Select from "sap/m/Select";
9
- import Item from "sap/ui/core/Item";
10
- import Control from "sap/ui/core/Control";
11
- import { Logger } from "../../utils/Logger";
12
-
13
- /**
14
- * Handles rendering logic for dropdown inputs fetching data remotely.
15
- * Maps a URL response array to `sap.ui.core.Item` elements.
16
- *
17
- * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources
18
- * @public
19
- */
20
- export class RemoteDropdownPlugin extends BasePlugin {
21
-
22
- /**
23
- * Renders a `Select` dropdown that fetches data remotely.
24
- *
25
- * @param fieldMetadata The specific JSON schema properties for this field.
26
- * @param bindingPath The JSON path bound to this control.
27
- * @param modelName The UI5 JSONModel name.
28
- * @param engineScopeId The deterministic scope ID.
29
- * @param onChange The callback fired on value change.
30
- * @returns {Control} The configured Select control.
31
- */
32
- public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {
33
- this.onChange = onChange;
34
- this.metadata = fieldMetadata;
35
-
36
- const config = fieldMetadata.valueHelp as IRemoteValueHelpConfig;
37
- if (!config || !config.url) {
38
- Logger.warn("[MetaUI RemoteDropdownPlugin] No valid URL provided for remoteDropdown.");
39
- return new sap.m.Text({ text: "Error: No URL provided" }) as Control;
40
- }
41
-
42
- if (!this.isEditable) {
43
- sap.ui.requireSync("sap/m/Text");
44
- const TextControl = sap.ui.require("sap/m/Text");
45
-
46
- this.control = new TextControl({
47
- id: this.generateStableId(engineScopeId, bindingPath),
48
- text: `{${modelName}>${bindingPath}}` // We might not have the text mapping synchronously
49
- });
50
-
51
- // Optionally, we could fetch data and update the text formatter here
52
-
53
- this.applyCommonDirectives(this.control, fieldMetadata, modelName);
54
- return this.control as Control;
55
- }
56
-
57
- const select = new Select({
58
- id: this.generateStableId(engineScopeId, bindingPath),
59
- selectedKey: `{${modelName}>${bindingPath}}`,
60
- enabled: !fieldMetadata.ui?.readOnly,
61
- forceSelection: false,
62
- busy: true, // Show busy indicator while fetching
63
- change: (oEvent: sap.ui.base.Event) => {
64
- const result = this.validate();
65
- if (this.onChange) {
66
- this.onChange(result.isValid, this.fieldKey);
67
- }
68
- }
69
- });
70
-
71
- // Add empty placeholder
72
- select.addItem(new Item({ key: "", text: "--- Select ---" }));
73
-
74
- // Fetch data remotely
75
- fetch(config.url)
76
- .then(res => {
77
- if (!res.ok) throw new Error(`HTTP ${res.status}`);
78
- return res.json();
79
- })
80
- .then(data => {
81
- const arr = Array.isArray(data) ? data : (data.value || []);
82
- arr.forEach((item: Record<string, unknown>) => {
83
- const k = config.keyPath ? item[config.keyPath] : item;
84
- const t = config.textPath ? item[config.textPath] : item;
85
- select.addItem(new Item({ key: String(k), text: String(t) }));
86
- });
87
- select.setBusy(false);
88
- })
89
- .catch(err => {
90
- Logger.error(`[MetaUI RemoteDropdownPlugin] Failed to fetch remote data from ${config.url}`, err.message);
91
- select.addItem(new Item({ key: "", text: "Error loading data" }));
92
- select.setBusy(false);
93
- });
94
-
95
- this.control = select;
96
- this.applyCommonDirectives(this.control, fieldMetadata, modelName);
97
- return this.control as Control;
98
- }
99
-
100
- /**
101
- * Retrieves the current selected key.
102
- * @returns {unknown} The selected key.
103
- */
104
- protected getValue(): unknown {
105
- return this.control ? (this.control as Select).getSelectedKey() : null;
106
- }
107
-
108
- /**
109
- * Applies dynamic read-only state.
110
- */
111
- protected applyState(): void {
112
- if (this.control && this.metadata) {
113
- if (!this.isEditable) return;
114
- const select = this.control as Select;
115
- select.setEnabled(!this.metadata.ui?.readOnly);
116
- }
117
- }
118
- }
8
+ import { IPropertyMetadata, IRemoteValueHelpConfig } from "../../interfaces/ISchema";
9
+ import Select from "sap/m/Select";
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
+ * Handles rendering logic for dropdown inputs fetching data remotely.
16
+ * Maps a URL response array to `Item` elements.
17
+ *
18
+ * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources
19
+ * @public
20
+ */
21
+ export class RemoteDropdownPlugin extends BasePlugin {
22
+
23
+ /**
24
+ * Renders a `Select` dropdown that fetches data remotely.
25
+ *
26
+ * @param fieldMetadata The specific JSON schema properties for this field.
27
+ * @param bindingPath The JSON path bound to this control.
28
+ * @param modelName The UI5 JSONModel name.
29
+ * @param engineScopeId The deterministic scope ID.
30
+ * @param onChange The callback fired on value change.
31
+ * @returns {Control} The configured Select control.
32
+ */
33
+ public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta", engineScopeId?: string, onChange?: (isValid: boolean, fieldKey?: string) => void): Control {
34
+ this.onChange = onChange;
35
+ this.metadata = fieldMetadata;
36
+
37
+ const config = fieldMetadata.valueHelp as IRemoteValueHelpConfig;
38
+ if (!config || !config.url) {
39
+ Logger.warn("[MetaUI RemoteDropdownPlugin] No valid URL provided for remoteDropdown.");
40
+ return new (sap as any).m.Text({ text: "Error: No URL provided" }) as Control;
41
+ }
42
+
43
+ if (!this.isEditable) {
44
+ (sap.ui as any).requireSync("sap/m/Text");
45
+ const TextControl = sap.ui.require("sap/m/Text");
46
+
47
+ this.control = new TextControl({
48
+ id: this.generateStableId(engineScopeId, bindingPath),
49
+ text: `{${modelName}>${bindingPath}}` // We might not have the text mapping synchronously
50
+ });
51
+
52
+ // Optionally, we could fetch data and update the text formatter here
53
+
54
+ this.applyCommonDirectives(this.control!, fieldMetadata, modelName);
55
+ return this.control as Control;
56
+ }
57
+
58
+ const select = new Select({
59
+ id: this.generateStableId(engineScopeId, bindingPath),
60
+ selectedKey: `{${modelName}>${bindingPath}}`,
61
+ enabled: !fieldMetadata.ui?.readOnly,
62
+ forceSelection: false,
63
+ busy: true, // Show busy indicator while fetching
64
+ change: (oEvent: Event) => {
65
+ const result = this.validate();
66
+ if (this.onChange) {
67
+ this.onChange(result.isValid, this.fieldKey);
68
+ }
69
+ }
70
+ });
71
+
72
+ // Add empty placeholder
73
+ select.addItem(new Item({ key: "", text: "--- Select ---" }));
74
+
75
+ // Fetch data remotely
76
+ fetch(config.url)
77
+ .then(res => {
78
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
79
+ return res.json();
80
+ })
81
+ .then(data => {
82
+ const arr = Array.isArray(data) ? data : (data.value || []);
83
+ arr.forEach((item: Record<string, unknown>) => {
84
+ const k = config.keyPath ? item[config.keyPath] : item;
85
+ const t = config.textPath ? item[config.textPath] : item;
86
+ select.addItem(new Item({ key: String(k), text: String(t) }));
87
+ });
88
+ select.setBusy(false);
89
+ })
90
+ .catch(err => {
91
+ Logger.error(`[MetaUI RemoteDropdownPlugin] Failed to fetch remote data from ${config.url}`, err.message);
92
+ select.addItem(new Item({ key: "", text: "Error loading data" }));
93
+ select.setBusy(false);
94
+ });
95
+
96
+ this.control = select;
97
+ this.applyCommonDirectives(this.control!, fieldMetadata, modelName);
98
+ return this.control as Control;
99
+ }
100
+
101
+ /**
102
+ * Retrieves the current selected key.
103
+ * @returns {unknown} The selected key.
104
+ */
105
+ protected getValue(): unknown {
106
+ return this.control ? (this.control as Select).getSelectedKey() : null;
107
+ }
108
+
109
+ /**
110
+ * Applies dynamic read-only state.
111
+ */
112
+ protected applyState(): void {
113
+ if (this.control && this.metadata) {
114
+ if (!this.isEditable) return;
115
+ const select = this.control as Select;
116
+ select.setEnabled(!this.metadata.ui?.readOnly);
117
+ }
118
+ }
119
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteValueHelpPlugin-dbg.js","names":["BasePlugin","___controls_BasePlugin","Logger","____utils_Logger","RemoteValueHelpPlugin","isLoaded","render","fieldMetadata","bindingPath","modelName","metadata","comboBox","ComboBox","selectedKey","enabled","ui","readOnly","placeholder","change","oEvent","item","getParameter","val","getKey","validate","attachEventOnce","fetchData","control","vhConfig","valueHelp","url","error","setBusy","fetch","then","res","json","data","keyPath","textPath","forEach","itemData","addItem","Item","key","String","text","catch","err","message","finally","getValue","getSelectedKey","applyState","setEnabled","__exports","__esModule"],"sources":["RemoteValueHelpPlugin.ts"],"sourcesContent":["/**\n * @file RemoteValueHelpPlugin.ts\n * @description A custom datasource plugin that simulates fetching data from a remote server.\n */\n\nimport { BasePlugin } from \"../controls/BasePlugin\";\nimport { IPropertyMetadata, IRemoteValueHelpConfig } from \"../../interfaces/ISchema\";\nimport ComboBox from \"sap/m/ComboBox\";\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 simulates fetching data from a remote server.\n * Proves out custom data sources that dynamically load value help.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\n * @public\n */\nexport class RemoteValueHelpPlugin extends BasePlugin {\n private isLoaded = false;\n\n /**\n * Renders a `ComboBox` that simulates fetching data from a remote server.\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 * @returns {Control} The configured ComboBox control.\n */\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n \n const comboBox = new ComboBox({\n selectedKey: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n placeholder: \"Select a country...\",\n change: (oEvent: sap.ui.base.Event) => {\n const item = (oEvent as sap.ui.base.Event).getParameter(\"selectedItem\");\n const val = item ? item.getKey() : (oEvent as sap.ui.base.Event).getParameter(\"value\"); // Allow free text as well\n this.validate();\n }\n });\n\n // Perform an async load against the REST endpoint\n comboBox.attachEventOnce(\"loadItems\", () => {\n this.fetchData(comboBox);\n });\n\n this.control = comboBox;\n return this.control as Control;\n }\n\n /**\n * Executes the REST fetch for data.\n * @param comboBox The UI5 ComboBox to populate.\n */\n protected fetchData(comboBox: ComboBox): void {\n const vhConfig = this.metadata?.valueHelp as IRemoteValueHelpConfig;\n if (!vhConfig || !vhConfig.url) {\n Logger.error(\"RemoteValueHelpPlugin requires a valid valueHelp configuration with a URL.\", \"\", \"RemoteValueHelpPlugin\");\n return;\n }\n \n comboBox.setBusy(true);\n \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 data.forEach(itemData => {\n comboBox.addItem(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, \"RemoteValueHelpPlugin\");\n })\n .finally(() => {\n comboBox.setBusy(false);\n this.isLoaded = true;\n });\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;EAAA,MAKVC,MAAM,GAAAC,gBAAA;EAEf;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,qBAAqB,SAASJ,UAAU,CAAC;IAC1CK,QAAQ,GAAG,KAAK;;IAExB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACWC,MAAMA,CAACC,aAAgC,EAAEC,WAAmB,EAAEC,SAAiB,GAAG,MAAM,EAAW;MACtG,IAAI,CAACC,QAAQ,GAAGH,aAAa;MAE7B,MAAMI,QAAQ,GAAG,IAAIC,QAAQ,CAAC;QAC1BC,WAAW,EAAE,IAAIJ,SAAS,IAAID,WAAW,GAAG;QAC5CM,OAAO,EAAE,CAACP,aAAa,CAACQ,EAAE,EAAEC,QAAQ;QACpCC,WAAW,EAAE,qBAAqB;QAClCC,MAAM,EAAGC,MAAyB,IAAK;UACnC,MAAMC,IAAI,GAAID,MAAM,CAAuBE,YAAY,CAAC,cAAc,CAAC;UACvE,MAAMC,GAAG,GAAGF,IAAI,GAAGA,IAAI,CAACG,MAAM,CAAC,CAAC,GAAIJ,MAAM,CAAuBE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;UACxF,IAAI,CAACG,QAAQ,CAAC,CAAC;QACnB;MACJ,CAAC,CAAC;;MAEF;MACAb,QAAQ,CAACc,eAAe,CAAC,WAAW,EAAE,MAAM;QACxC,IAAI,CAACC,SAAS,CAACf,QAAQ,CAAC;MAC5B,CAAC,CAAC;MAEF,IAAI,CAACgB,OAAO,GAAGhB,QAAQ;MACvB,OAAO,IAAI,CAACgB,OAAO;IACvB;;IAEA;AACJ;AACA;AACA;IACcD,SAASA,CAACf,QAAkB,EAAQ;MAC1C,MAAMiB,QAAQ,GAAG,IAAI,CAAClB,QAAQ,EAAEmB,SAAmC;MACnE,IAAI,CAACD,QAAQ,IAAI,CAACA,QAAQ,CAACE,GAAG,EAAE;QAC5B5B,MAAM,CAAC6B,KAAK,CAAC,4EAA4E,EAAE,EAAE,EAAE,uBAAuB,CAAC;QACvH;MACJ;MAEApB,QAAQ,CAACqB,OAAO,CAAC,IAAI,CAAC;MAEtBC,KAAK,CAACL,QAAQ,CAACE,GAAG,CAAC,CACdI,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC,CACvBF,IAAI,CAAEG,IAA+B,IAAK;QACvC,MAAMC,OAAO,GAAGV,QAAQ,CAACU,OAAO,IAAI,KAAK;QACzC,MAAMC,QAAQ,GAAGX,QAAQ,CAACW,QAAQ,IAAI,MAAM;QAE5CF,IAAI,CAACG,OAAO,CAACC,QAAQ,IAAI;UACrB9B,QAAQ,CAAC+B,OAAO,CAAC,IAAIC,IAAI,CAAC;YACtBC,GAAG,EAAEC,MAAM,CAACJ,QAAQ,CAACH,OAAO,CAAC,CAAC;YAC9BQ,IAAI,EAAED,MAAM,CAACJ,QAAQ,CAACF,QAAQ,CAAC,IAAIE,QAAQ,CAACH,OAAO,CAAC;UACxD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;MACN,CAAC,CAAC,CACDS,KAAK,CAACC,GAAG,IAAI;QACV9C,MAAM,CAAC6B,KAAK,CAAC,iCAAiC,GAAGH,QAAQ,CAACE,GAAG,EAAEkB,GAAG,CAACC,OAAO,EAAE,uBAAuB,CAAC;MACxG,CAAC,CAAC,CACDC,OAAO,CAAC,MAAM;QACXvC,QAAQ,CAACqB,OAAO,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC3B,QAAQ,GAAG,IAAI;MACxB,CAAC,CAAC;IACV;;IAEA;AACJ;AACA;AACA;IACc8C,QAAQA,CAAA,EAAY;MAC1B,OAAO,IAAI,CAACxB,OAAO,GAAI,IAAI,CAACA,OAAO,CAAcyB,cAAc,CAAC,CAAC,GAAG,IAAI;IAC5E;;IAEA;AACJ;AACA;IACcC,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAAC1B,OAAO,IAAI,IAAI,CAACjB,QAAQ,EAAE;QAC9B,IAAI,CAACiB,OAAO,CAAc2B,UAAU,CAAC,CAAC,IAAI,CAAC5C,QAAQ,CAACK,EAAE,EAAEC,QAAQ,CAAC;MACtE;IACJ;EACJ;EAAC,IAAAuC,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAnD,qBAAA,GAAAA,qBAAA;EAAA,OAAAmD,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"RemoteValueHelpPlugin-dbg.js","names":["BasePlugin","___controls_BasePlugin","Logger","____utils_Logger","RemoteValueHelpPlugin","isLoaded","render","fieldMetadata","bindingPath","modelName","metadata","comboBox","ComboBox","selectedKey","enabled","ui","readOnly","placeholder","change","oEvent","item","getParameter","val","getKey","validate","attachEventOnce","fetchData","control","vhConfig","valueHelp","url","error","setBusy","fetch","then","res","json","data","keyPath","textPath","forEach","itemData","addItem","Item","key","String","text","catch","err","message","finally","getValue","getSelectedKey","applyState","setEnabled","__exports","__esModule"],"sources":["RemoteValueHelpPlugin.ts"],"sourcesContent":["/**\r\n * @file RemoteValueHelpPlugin.ts\r\n * @description A custom datasource plugin that simulates fetching data from a remote server.\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 ComboBox from \"sap/m/ComboBox\";\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 simulates fetching data from a remote server.\r\n * Proves out custom data sources that dynamically load value help.\r\n * \r\n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\r\n * @public\r\n */\r\nexport class RemoteValueHelpPlugin extends BasePlugin {\r\n private isLoaded = false;\r\n\r\n /**\r\n * Renders a `ComboBox` that simulates fetching data from a remote server.\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 * @returns {Control} The configured ComboBox control.\r\n */\r\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n const comboBox = new ComboBox({\r\n selectedKey: `{${modelName}>${bindingPath}}`,\r\n enabled: !fieldMetadata.ui?.readOnly,\r\n placeholder: \"Select a country...\",\r\n change: (oEvent: Event) => {\r\n const item = (oEvent as Event).getParameter(\"selectedItem\");\r\n const val = item ? item.getKey() : (oEvent as Event).getParameter(\"value\"); // Allow free text as well\r\n this.validate();\r\n }\r\n });\r\n\r\n // Perform an async load against the REST endpoint\r\n comboBox.attachEventOnce(\"loadItems\", () => {\r\n this.fetchData(comboBox);\r\n });\r\n\r\n this.control = comboBox;\r\n return this.control as Control;\r\n }\r\n\r\n /**\r\n * Executes the REST fetch for data.\r\n * @param comboBox The UI5 ComboBox to populate.\r\n */\r\n protected fetchData(comboBox: ComboBox): void {\r\n const vhConfig = this.metadata?.valueHelp as IRemoteValueHelpConfig;\r\n if (!vhConfig || !vhConfig.url) {\r\n Logger.error(\"RemoteValueHelpPlugin requires a valid valueHelp configuration with a URL.\", \"\", \"RemoteValueHelpPlugin\");\r\n return;\r\n }\r\n \r\n comboBox.setBusy(true);\r\n \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 data.forEach(itemData => {\r\n comboBox.addItem(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, \"RemoteValueHelpPlugin\");\r\n })\r\n .finally(() => {\r\n comboBox.setBusy(false);\r\n this.isLoaded = true;\r\n });\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":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteValueHelpPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,sEAAsE,CAAC;IACtF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IACpF,OAAO,EAAE,iBAAiB,EAA0B,MAAM,+CAA+C,CAAC;IAC1G,OAAO,QAAQ,MAAM,gBAAgB,CAAC;IAEtC,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAG1C;;;;;;OAMG;IACH,MAAa,qBAAsB,SAAQ,UAAU;QACjD,OAAO,CAAC,QAAQ,CAAS;QAEzB;;;;;;;WAOG;QACI,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO;QAuBzG;;;WAGG;QACH,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;QA+B7C;;;WAGG;QACH,SAAS,CAAC,QAAQ,IAAI,OAAO;QAI7B;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAK/B;CAEA"}
1
+ {"version":3,"file":"RemoteValueHelpPlugin.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,sEAAsE,CAAC;IACtF;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAC;IAGpF,OAAO,EAAE,iBAAiB,EAA0B,MAAM,+CAA+C,CAAC;IAC1G,OAAO,QAAQ,MAAM,gBAAgB,CAAC;IAEtC,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAG1C;;;;;;OAMG;IACH,MAAa,qBAAsB,SAAQ,UAAU;QACjD,OAAO,CAAC,QAAQ,CAAS;QAEzB;;;;;;;WAOG;QACI,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO;QAuBzG;;;WAGG;QACH,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;QA+B7C;;;WAGG;QACH,SAAS,CAAC,QAAQ,IAAI,OAAO;QAI7B;;WAEG;QACH,SAAS,CAAC,UAAU,IAAI,IAAI;KAK/B;CAEA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteValueHelpPlugin.js","names":["BasePlugin","___controls_BasePlugin","Logger","____utils_Logger","RemoteValueHelpPlugin","isLoaded","render","fieldMetadata","bindingPath","modelName","this","metadata","comboBox","ComboBox","selectedKey","enabled","ui","readOnly","placeholder","change","oEvent","item","getParameter","val","getKey","validate","attachEventOnce","fetchData","control","vhConfig","valueHelp","url","error","setBusy","fetch","then","res","json","data","keyPath","textPath","forEach","itemData","addItem","Item","key","String","text","catch","err","message","finally","getValue","getSelectedKey","applyState","setEnabled","__exports","__esModule"],"sources":["RemoteValueHelpPlugin.ts"],"sourcesContent":["/**\n * @file RemoteValueHelpPlugin.ts\n * @description A custom datasource plugin that simulates fetching data from a remote server.\n */\n\nimport { BasePlugin } from \"../controls/BasePlugin\";\nimport { IPropertyMetadata, IRemoteValueHelpConfig } from \"../../interfaces/ISchema\";\nimport ComboBox from \"sap/m/ComboBox\";\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 simulates fetching data from a remote server.\n * Proves out custom data sources that dynamically load value help.\n * \n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\n * @public\n */\nexport class RemoteValueHelpPlugin extends BasePlugin {\n private isLoaded = false;\n\n /**\n * Renders a `ComboBox` that simulates fetching data from a remote server.\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 * @returns {Control} The configured ComboBox control.\n */\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n \n const comboBox = new ComboBox({\n selectedKey: `{${modelName}>${bindingPath}}`,\n enabled: !fieldMetadata.ui?.readOnly,\n placeholder: \"Select a country...\",\n change: (oEvent: sap.ui.base.Event) => {\n const item = (oEvent as sap.ui.base.Event).getParameter(\"selectedItem\");\n const val = item ? item.getKey() : (oEvent as sap.ui.base.Event).getParameter(\"value\"); // Allow free text as well\n this.validate();\n }\n });\n\n // Perform an async load against the REST endpoint\n comboBox.attachEventOnce(\"loadItems\", () => {\n this.fetchData(comboBox);\n });\n\n this.control = comboBox;\n return this.control as Control;\n }\n\n /**\n * Executes the REST fetch for data.\n * @param comboBox The UI5 ComboBox to populate.\n */\n protected fetchData(comboBox: ComboBox): void {\n const vhConfig = this.metadata?.valueHelp as IRemoteValueHelpConfig;\n if (!vhConfig || !vhConfig.url) {\n Logger.error(\"RemoteValueHelpPlugin requires a valid valueHelp configuration with a URL.\", \"\", \"RemoteValueHelpPlugin\");\n return;\n }\n \n comboBox.setBusy(true);\n \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 data.forEach(itemData => {\n comboBox.addItem(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, \"RemoteValueHelpPlugin\");\n })\n .finally(() => {\n comboBox.setBusy(false);\n this.isLoaded = true;\n });\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":"iIAAA,MAKSA,EAAUC,EAAA,oBAKVC,EAAMC,EAAA,UASR,MAAMC,UAA8BJ,EAC/BK,SAAW,MAUZC,OAAOC,EAAkCC,EAAqBC,EAAoB,QACrFC,KAAKC,SAAWJ,EAEhB,MAAMK,EAAW,IAAIC,EAAS,CAC1BC,YAAa,IAAIL,KAAaD,KAC9BO,SAAUR,EAAcS,IAAIC,SAC5BC,YAAa,sBACbC,OAASC,IACL,MAAMC,EAAQD,EAA6BE,aAAa,gBACxD,MAAMC,EAAMF,EAAOA,EAAKG,SAAYJ,EAA6BE,aAAa,SAC9EZ,KAAKe,cAKbb,EAASc,gBAAgB,YAAa,KAClChB,KAAKiB,UAAUf,KAGnBF,KAAKkB,QAAUhB,EACf,OAAOF,KAAKkB,OAChB,CAMUD,UAAUf,GAChB,MAAMiB,EAAWnB,KAAKC,UAAUmB,UAChC,IAAKD,IAAaA,EAASE,IAAK,CAC5B7B,EAAO8B,MAAM,6EAA8E,GAAI,yBAC/F,MACJ,CAEApB,EAASqB,QAAQ,MAEjBC,MAAML,EAASE,KACVI,KAAKC,GAAOA,EAAIC,QAChBF,KAAMG,IACH,MAAMC,EAAUV,EAASU,SAAW,MACpC,MAAMC,EAAWX,EAASW,UAAY,OAEtCF,EAAKG,QAAQC,IACT9B,EAAS+B,QAAQ,IAAIC,EAAK,CACtBC,IAAKC,OAAOJ,EAASH,IACrBQ,KAAMD,OAAOJ,EAASF,IAAaE,EAASH,WAIvDS,MAAMC,IACH/C,EAAO8B,MAAM,kCAAoCH,EAASE,IAAKkB,EAAIC,QAAS,2BAE/EC,QAAQ,KACLvC,EAASqB,QAAQ,OACjBvB,KAAKL,SAAW,MAE5B,CAMU+C,WACN,OAAO1C,KAAKkB,QAAWlB,KAAKkB,QAAqByB,iBAAmB,IACxE,CAKUC,aACN,GAAI5C,KAAKkB,SAAWlB,KAAKC,SAAU,CAC9BD,KAAKkB,QAAqB2B,YAAY7C,KAAKC,SAASK,IAAIC,SAC7D,CACJ,EACH,IAAAuC,EAAA,CAAAC,WAAA,MAAAD,EAAApD,wBAAA,OAAAoD,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"RemoteValueHelpPlugin.js","names":["BasePlugin","___controls_BasePlugin","Logger","____utils_Logger","RemoteValueHelpPlugin","isLoaded","render","fieldMetadata","bindingPath","modelName","this","metadata","comboBox","ComboBox","selectedKey","enabled","ui","readOnly","placeholder","change","oEvent","item","getParameter","val","getKey","validate","attachEventOnce","fetchData","control","vhConfig","valueHelp","url","error","setBusy","fetch","then","res","json","data","keyPath","textPath","forEach","itemData","addItem","Item","key","String","text","catch","err","message","finally","getValue","getSelectedKey","applyState","setEnabled","__exports","__esModule"],"sources":["RemoteValueHelpPlugin.ts"],"sourcesContent":["/**\r\n * @file RemoteValueHelpPlugin.ts\r\n * @description A custom datasource plugin that simulates fetching data from a remote server.\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 ComboBox from \"sap/m/ComboBox\";\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 simulates fetching data from a remote server.\r\n * Proves out custom data sources that dynamically load value help.\r\n * \r\n * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources\r\n * @public\r\n */\r\nexport class RemoteValueHelpPlugin extends BasePlugin {\r\n private isLoaded = false;\r\n\r\n /**\r\n * Renders a `ComboBox` that simulates fetching data from a remote server.\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 * @returns {Control} The configured ComboBox control.\r\n */\r\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n const comboBox = new ComboBox({\r\n selectedKey: `{${modelName}>${bindingPath}}`,\r\n enabled: !fieldMetadata.ui?.readOnly,\r\n placeholder: \"Select a country...\",\r\n change: (oEvent: Event) => {\r\n const item = (oEvent as Event).getParameter(\"selectedItem\");\r\n const val = item ? item.getKey() : (oEvent as Event).getParameter(\"value\"); // Allow free text as well\r\n this.validate();\r\n }\r\n });\r\n\r\n // Perform an async load against the REST endpoint\r\n comboBox.attachEventOnce(\"loadItems\", () => {\r\n this.fetchData(comboBox);\r\n });\r\n\r\n this.control = comboBox;\r\n return this.control as Control;\r\n }\r\n\r\n /**\r\n * Executes the REST fetch for data.\r\n * @param comboBox The UI5 ComboBox to populate.\r\n */\r\n protected fetchData(comboBox: ComboBox): void {\r\n const vhConfig = this.metadata?.valueHelp as IRemoteValueHelpConfig;\r\n if (!vhConfig || !vhConfig.url) {\r\n Logger.error(\"RemoteValueHelpPlugin requires a valid valueHelp configuration with a URL.\", \"\", \"RemoteValueHelpPlugin\");\r\n return;\r\n }\r\n \r\n comboBox.setBusy(true);\r\n \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 data.forEach(itemData => {\r\n comboBox.addItem(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, \"RemoteValueHelpPlugin\");\r\n })\r\n .finally(() => {\r\n comboBox.setBusy(false);\r\n this.isLoaded = true;\r\n });\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":"iIAAA,MAKSA,EAAUC,EAAA,oBAOVC,EAAMC,EAAA,UASR,MAAMC,UAA8BJ,EAC/BK,SAAW,MAUZC,OAAOC,EAAkCC,EAAqBC,EAAoB,QACrFC,KAAKC,SAAWJ,EAEhB,MAAMK,EAAW,IAAIC,EAAS,CAC1BC,YAAa,IAAIL,KAAaD,KAC9BO,SAAUR,EAAcS,IAAIC,SAC5BC,YAAa,sBACbC,OAASC,IACL,MAAMC,EAAQD,EAAiBE,aAAa,gBAC5C,MAAMC,EAAMF,EAAOA,EAAKG,SAAYJ,EAAiBE,aAAa,SAClEZ,KAAKe,cAKbb,EAASc,gBAAgB,YAAa,KAClChB,KAAKiB,UAAUf,KAGnBF,KAAKkB,QAAUhB,EACf,OAAOF,KAAKkB,OAChB,CAMUD,UAAUf,GAChB,MAAMiB,EAAWnB,KAAKC,UAAUmB,UAChC,IAAKD,IAAaA,EAASE,IAAK,CAC5B7B,EAAO8B,MAAM,6EAA8E,GAAI,yBAC/F,MACJ,CAEApB,EAASqB,QAAQ,MAEjBC,MAAML,EAASE,KACVI,KAAKC,GAAOA,EAAIC,QAChBF,KAAMG,IACH,MAAMC,EAAUV,EAASU,SAAW,MACpC,MAAMC,EAAWX,EAASW,UAAY,OAEtCF,EAAKG,QAAQC,IACT9B,EAAS+B,QAAQ,IAAIC,EAAK,CACtBC,IAAKC,OAAOJ,EAASH,IACrBQ,KAAMD,OAAOJ,EAASF,IAAaE,EAASH,WAIvDS,MAAMC,IACH/C,EAAO8B,MAAM,kCAAoCH,EAASE,IAAKkB,EAAIC,QAAS,2BAE/EC,QAAQ,KACLvC,EAASqB,QAAQ,OACjBvB,KAAKL,SAAW,MAE5B,CAMU+C,WACN,OAAO1C,KAAKkB,QAAWlB,KAAKkB,QAAqByB,iBAAmB,IACxE,CAKUC,aACN,GAAI5C,KAAKkB,SAAWlB,KAAKC,SAAU,CAC9BD,KAAKkB,QAAqB2B,YAAY7C,KAAKC,SAASK,IAAIC,SAC7D,CACJ,EACH,IAAAuC,EAAA,CAAAC,WAAA,MAAAD,EAAApD,wBAAA,OAAAoD,CAAA","ignoreList":[]}
@@ -1,105 +1,106 @@
1
- /**
2
- * @file RemoteValueHelpPlugin.ts
3
- * @description A custom datasource plugin that simulates fetching data from a remote server.
4
- */
1
+ /**
2
+ * @file RemoteValueHelpPlugin.ts
3
+ * @description A custom datasource plugin that simulates fetching data from a remote server.
4
+ */
5
+
6
+ import { BasePlugin } from "../controls/BasePlugin";
5
7
 
6
- import { BasePlugin } from "../controls/BasePlugin";
7
- import { IPropertyMetadata, IRemoteValueHelpConfig } from "../../interfaces/ISchema";
8
- import ComboBox from "sap/m/ComboBox";
9
- import Item from "sap/ui/core/Item";
10
- import Control from "sap/ui/core/Control";
11
- import { Logger } from "../../utils/Logger";
12
-
13
- /**
14
- * A custom datasource plugin that simulates fetching data from a remote server.
15
- * Proves out custom data sources that dynamically load value help.
16
- *
17
- * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources
18
- * @public
19
- */
20
- export class RemoteValueHelpPlugin extends BasePlugin {
21
- private isLoaded = false;
22
-
23
- /**
24
- * Renders a `ComboBox` that simulates fetching data from a remote server.
25
- *
26
- * @param fieldMetadata The specific JSON schema properties for this field.
27
- * @param bindingPath The JSON path bound to this control.
28
- * @param modelName The UI5 JSONModel name.
29
- * @returns {Control} The configured ComboBox control.
30
- */
31
- public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta"): Control {
32
- this.metadata = fieldMetadata;
33
-
34
- const comboBox = new ComboBox({
35
- selectedKey: `{${modelName}>${bindingPath}}`,
36
- enabled: !fieldMetadata.ui?.readOnly,
37
- placeholder: "Select a country...",
38
- change: (oEvent: sap.ui.base.Event) => {
39
- const item = (oEvent as sap.ui.base.Event).getParameter("selectedItem");
40
- const val = item ? item.getKey() : (oEvent as sap.ui.base.Event).getParameter("value"); // Allow free text as well
41
- this.validate();
42
- }
43
- });
44
-
45
- // Perform an async load against the REST endpoint
46
- comboBox.attachEventOnce("loadItems", () => {
47
- this.fetchData(comboBox);
48
- });
49
-
50
- this.control = comboBox;
51
- return this.control as Control;
52
- }
53
-
54
- /**
55
- * Executes the REST fetch for data.
56
- * @param comboBox The UI5 ComboBox to populate.
57
- */
58
- protected fetchData(comboBox: ComboBox): void {
59
- const vhConfig = this.metadata?.valueHelp as IRemoteValueHelpConfig;
60
- if (!vhConfig || !vhConfig.url) {
61
- Logger.error("RemoteValueHelpPlugin requires a valid valueHelp configuration with a URL.", "", "RemoteValueHelpPlugin");
62
- return;
63
- }
64
-
65
- comboBox.setBusy(true);
66
-
67
- fetch(vhConfig.url)
68
- .then(res => res.json())
69
- .then((data: Record<string, unknown>[]) => {
70
- const keyPath = vhConfig.keyPath || "key";
71
- const textPath = vhConfig.textPath || "text";
72
-
73
- data.forEach(itemData => {
74
- comboBox.addItem(new Item({
75
- key: String(itemData[keyPath]),
76
- text: String(itemData[textPath] || itemData[keyPath])
77
- }));
78
- });
79
- })
80
- .catch(err => {
81
- Logger.error("Failed to load value help from " + vhConfig.url, err.message, "RemoteValueHelpPlugin");
82
- })
83
- .finally(() => {
84
- comboBox.setBusy(false);
85
- this.isLoaded = true;
86
- });
87
- }
88
-
89
- /**
90
- * Retrieves the current selected key.
91
- * @returns {unknown} The selected key.
92
- */
93
- protected getValue(): unknown {
94
- return this.control ? (this.control as ComboBox).getSelectedKey() : null;
95
- }
96
-
97
- /**
98
- * Applies dynamic read-only state.
99
- */
100
- protected applyState(): void {
101
- if (this.control && this.metadata) {
102
- (this.control as ComboBox).setEnabled(!this.metadata.ui?.readOnly);
103
- }
104
- }
105
- }
8
+ import { IPropertyMetadata, IRemoteValueHelpConfig } 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
+ import { Logger } from "../../utils/Logger";
13
+
14
+ /**
15
+ * A custom datasource plugin that simulates fetching data from a remote server.
16
+ * Proves out custom data sources that dynamically load value help.
17
+ *
18
+ * @namespace nz.co.siliconst.ui5.metaui.plugins.datasources
19
+ * @public
20
+ */
21
+ export class RemoteValueHelpPlugin extends BasePlugin {
22
+ private isLoaded = false;
23
+
24
+ /**
25
+ * Renders a `ComboBox` that simulates fetching data from a remote server.
26
+ *
27
+ * @param fieldMetadata The specific JSON schema properties for this field.
28
+ * @param bindingPath The JSON path bound to this control.
29
+ * @param modelName The UI5 JSONModel name.
30
+ * @returns {Control} The configured ComboBox control.
31
+ */
32
+ public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta"): Control {
33
+ this.metadata = fieldMetadata;
34
+
35
+ const comboBox = new ComboBox({
36
+ selectedKey: `{${modelName}>${bindingPath}}`,
37
+ enabled: !fieldMetadata.ui?.readOnly,
38
+ placeholder: "Select a country...",
39
+ change: (oEvent: Event) => {
40
+ const item = (oEvent as Event).getParameter("selectedItem");
41
+ const val = item ? item.getKey() : (oEvent as Event).getParameter("value"); // Allow free text as well
42
+ this.validate();
43
+ }
44
+ });
45
+
46
+ // Perform an async load against the REST endpoint
47
+ comboBox.attachEventOnce("loadItems", () => {
48
+ this.fetchData(comboBox);
49
+ });
50
+
51
+ this.control = comboBox;
52
+ return this.control as Control;
53
+ }
54
+
55
+ /**
56
+ * Executes the REST fetch for data.
57
+ * @param comboBox The UI5 ComboBox to populate.
58
+ */
59
+ protected fetchData(comboBox: ComboBox): void {
60
+ const vhConfig = this.metadata?.valueHelp as IRemoteValueHelpConfig;
61
+ if (!vhConfig || !vhConfig.url) {
62
+ Logger.error("RemoteValueHelpPlugin requires a valid valueHelp configuration with a URL.", "", "RemoteValueHelpPlugin");
63
+ return;
64
+ }
65
+
66
+ comboBox.setBusy(true);
67
+
68
+ fetch(vhConfig.url)
69
+ .then(res => res.json())
70
+ .then((data: Record<string, unknown>[]) => {
71
+ const keyPath = vhConfig.keyPath || "key";
72
+ const textPath = vhConfig.textPath || "text";
73
+
74
+ data.forEach(itemData => {
75
+ comboBox.addItem(new Item({
76
+ key: String(itemData[keyPath]),
77
+ text: String(itemData[textPath] || itemData[keyPath])
78
+ }));
79
+ });
80
+ })
81
+ .catch(err => {
82
+ Logger.error("Failed to load value help from " + vhConfig.url, err.message, "RemoteValueHelpPlugin");
83
+ })
84
+ .finally(() => {
85
+ comboBox.setBusy(false);
86
+ this.isLoaded = true;
87
+ });
88
+ }
89
+
90
+ /**
91
+ * Retrieves the current selected key.
92
+ * @returns {unknown} The selected key.
93
+ */
94
+ protected getValue(): unknown {
95
+ return this.control ? (this.control as ComboBox).getSelectedKey() : null;
96
+ }
97
+
98
+ /**
99
+ * Applies dynamic read-only state.
100
+ */
101
+ protected applyState(): void {
102
+ if (this.control && this.metadata) {
103
+ (this.control as ComboBox).setEnabled(!this.metadata.ui?.readOnly);
104
+ }
105
+ }
106
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"Logger-dbg.js","names":["Logger","debugMode","logInstance","setDebugMode","enabled","sap","ui","require","Log","isDebugMode","debug","message","details","component","console","info","warn","warning","error","showErrorPopup","title","MessageBox","__exports","__esModule"],"sources":["Logger.ts"],"sourcesContent":["/**\n * @file Logger.ts\n * @description Centralized logging utility for MetaUI.\n * Wraps sap/base/Log and provides a global toggle for debug mode.\n */\n\nexport class Logger {\n private static debugMode: boolean = false;\n private static logInstance: unknown = null;\n\n /**\n * Toggles the global debug mode for MetaUI.\n * @param enabled Set to true to enable logging.\n */\n public static setDebugMode(enabled: boolean): void {\n this.debugMode = enabled;\n if (enabled && !this.logInstance) {\n sap.ui.require([\"sap/base/Log\"], (Log: Record<string, Function>) => {\n this.logInstance = Log;\n });\n }\n }\n\n /**\n * Checks if debug mode is currently active.\n */\n public static isDebugMode(): boolean {\n return this.debugMode;\n }\n\n public static debug(message: string, details?: string, component?: string): void {\n if (!this.debugMode) return;\n if (this.logInstance) {\n this.logInstance.debug(message, details, component || \"MetaUI\");\n } else {\n console.debug(`[MetaUI] ${message}`, details || \"\");\n }\n }\n\n public static info(message: string, details?: string, component?: string): void {\n if (!this.debugMode) return;\n if (this.logInstance) {\n this.logInstance.info(message, details, component || \"MetaUI\");\n } else {\n console.info(`[MetaUI] ${message}`, details || \"\");\n }\n }\n\n public static warn(message: string, details?: string, component?: string): void {\n if (!this.debugMode) return;\n if (this.logInstance) {\n this.logInstance.warning(message, details, component || \"MetaUI\");\n } else {\n console.warn(`[MetaUI] ${message}`, details || \"\");\n }\n }\n\n public static error(message: string, details?: string, component?: string): void {\n if (this.logInstance) {\n this.logInstance.error(message, details, component || \"MetaUI\");\n } else {\n console.error(`[MetaUI Error] ${message}`, details || \"\");\n }\n }\n\n /**\n * Pops up a MessageBox UI alert if debug mode is active.\n */\n public static showErrorPopup(message: string, title?: string): void {\n if (!this.debugMode) return;\n sap.ui.require([\"sap/m/MessageBox\"], (MessageBox: Record<string, Function>) => {\n (MessageBox as Record<string, Function>).error(message, { title: title || \"MetaUI Error\" });\n });\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;AACA;;EAEO,MAAMA,MAAM,CAAC;IAChB,OAAeC,SAAS,GAAY,KAAK;IACzC,OAAeC,WAAW,GAAY,IAAI;;IAE1C;AACJ;AACA;AACA;IACI,OAAcC,YAAYA,CAACC,OAAgB,EAAQ;MAC/C,IAAI,CAACH,SAAS,GAAGG,OAAO;MACxB,IAAIA,OAAO,IAAI,CAAC,IAAI,CAACF,WAAW,EAAE;QAC9BG,GAAG,CAACC,EAAE,CAACC,OAAO,CAAC,CAAC,cAAc,CAAC,EAAGC,GAA6B,IAAK;UAChE,IAAI,CAACN,WAAW,GAAGM,GAAG;QAC1B,CAAC,CAAC;MACN;IACJ;;IAEA;AACJ;AACA;IACI,OAAcC,WAAWA,CAAA,EAAY;MACjC,OAAO,IAAI,CAACR,SAAS;IACzB;IAEA,OAAcS,KAAKA,CAACC,OAAe,EAAEC,OAAgB,EAAEC,SAAkB,EAAQ;MAC7E,IAAI,CAAC,IAAI,CAACZ,SAAS,EAAE;MACrB,IAAI,IAAI,CAACC,WAAW,EAAE;QAClB,IAAI,CAACA,WAAW,CAACQ,KAAK,CAACC,OAAO,EAAEC,OAAO,EAAEC,SAAS,IAAI,QAAQ,CAAC;MACnE,CAAC,MAAM;QACHC,OAAO,CAACJ,KAAK,CAAC,YAAYC,OAAO,EAAE,EAAEC,OAAO,IAAI,EAAE,CAAC;MACvD;IACJ;IAEA,OAAcG,IAAIA,CAACJ,OAAe,EAAEC,OAAgB,EAAEC,SAAkB,EAAQ;MAC5E,IAAI,CAAC,IAAI,CAACZ,SAAS,EAAE;MACrB,IAAI,IAAI,CAACC,WAAW,EAAE;QAClB,IAAI,CAACA,WAAW,CAACa,IAAI,CAACJ,OAAO,EAAEC,OAAO,EAAEC,SAAS,IAAI,QAAQ,CAAC;MAClE,CAAC,MAAM;QACHC,OAAO,CAACC,IAAI,CAAC,YAAYJ,OAAO,EAAE,EAAEC,OAAO,IAAI,EAAE,CAAC;MACtD;IACJ;IAEA,OAAcI,IAAIA,CAACL,OAAe,EAAEC,OAAgB,EAAEC,SAAkB,EAAQ;MAC5E,IAAI,CAAC,IAAI,CAACZ,SAAS,EAAE;MACrB,IAAI,IAAI,CAACC,WAAW,EAAE;QAClB,IAAI,CAACA,WAAW,CAACe,OAAO,CAACN,OAAO,EAAEC,OAAO,EAAEC,SAAS,IAAI,QAAQ,CAAC;MACrE,CAAC,MAAM;QACHC,OAAO,CAACE,IAAI,CAAC,YAAYL,OAAO,EAAE,EAAEC,OAAO,IAAI,EAAE,CAAC;MACtD;IACJ;IAEA,OAAcM,KAAKA,CAACP,OAAe,EAAEC,OAAgB,EAAEC,SAAkB,EAAQ;MAC7E,IAAI,IAAI,CAACX,WAAW,EAAE;QAClB,IAAI,CAACA,WAAW,CAACgB,KAAK,CAACP,OAAO,EAAEC,OAAO,EAAEC,SAAS,IAAI,QAAQ,CAAC;MACnE,CAAC,MAAM;QACHC,OAAO,CAACI,KAAK,CAAC,kBAAkBP,OAAO,EAAE,EAAEC,OAAO,IAAI,EAAE,CAAC;MAC7D;IACJ;;IAEA;AACJ;AACA;IACI,OAAcO,cAAcA,CAACR,OAAe,EAAES,KAAc,EAAQ;MAChE,IAAI,CAAC,IAAI,CAACnB,SAAS,EAAE;MACrBI,GAAG,CAACC,EAAE,CAACC,OAAO,CAAC,CAAC,kBAAkB,CAAC,EAAGc,UAAoC,IAAK;QAC1EA,UAAU,CAA8BH,KAAK,CAACP,OAAO,EAAE;UAAES,KAAK,EAAEA,KAAK,IAAI;QAAe,CAAC,CAAC;MAC/F,CAAC,CAAC;IACN;EACJ;EAAC,IAAAE,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAtB,MAAA,GAAAA,MAAA;EAAA,OAAAsB,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"Logger-dbg.js","names":["Logger","debugMode","logInstance","setDebugMode","enabled","sap","ui","require","Log","isDebugMode","debug","message","details","component","console","info","warn","warning","error","showErrorPopup","title","MessageBox","__exports","__esModule"],"sources":["Logger.ts"],"sourcesContent":["/**\n * @file Logger.ts\n * @description Centralized logging utility for MetaUI.\n * Wraps sap/base/Log and provides a global toggle for debug mode.\n */\n\nexport class Logger {\n private static debugMode: boolean = false;\n private static logInstance: any = null;\n\n /**\n * Toggles the global debug mode for MetaUI.\n * @param enabled Set to true to enable logging.\n */\n public static setDebugMode(enabled: boolean): void {\n this.debugMode = enabled;\n if (enabled && !this.logInstance) {\n sap.ui.require([\"sap/base/Log\"], (Log: Record<string, Function>) => {\n this.logInstance = Log;\n });\n }\n }\n\n /**\n * Checks if debug mode is currently active.\n */\n public static isDebugMode(): boolean {\n return this.debugMode;\n }\n\n public static debug(message: string, details?: string, component?: string): void {\n if (!this.debugMode) return;\n if (this.logInstance) {\n this.logInstance.debug(message, details, component || \"MetaUI\");\n } else {\n console.debug(`[MetaUI] ${message}`, details || \"\");\n }\n }\n\n public static info(message: string, details?: string, component?: string): void {\n if (!this.debugMode) return;\n if (this.logInstance) {\n this.logInstance.info(message, details, component || \"MetaUI\");\n } else {\n console.info(`[MetaUI] ${message}`, details || \"\");\n }\n }\n\n public static warn(message: string, details?: string, component?: string): void {\n if (!this.debugMode) return;\n if (this.logInstance) {\n this.logInstance.warning(message, details, component || \"MetaUI\");\n } else {\n console.warn(`[MetaUI] ${message}`, details || \"\");\n }\n }\n\n public static error(message: string, details?: string, component?: string): void {\n if (this.logInstance) {\n this.logInstance.error(message, details, component || \"MetaUI\");\n } else {\n console.error(`[MetaUI Error] ${message}`, details || \"\");\n }\n }\n\n /**\n * Pops up a MessageBox UI alert if debug mode is active.\n */\n public static showErrorPopup(message: string, title?: string): void {\n if (!this.debugMode) return;\n sap.ui.require([\"sap/m/MessageBox\"], (MessageBox: Record<string, Function>) => {\n (MessageBox as Record<string, Function>).error(message, { title: title || \"MetaUI Error\" });\n });\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;AACA;;EAEO,MAAMA,MAAM,CAAC;IAChB,OAAeC,SAAS,GAAY,KAAK;IACzC,OAAeC,WAAW,GAAQ,IAAI;;IAEtC;AACJ;AACA;AACA;IACI,OAAcC,YAAYA,CAACC,OAAgB,EAAQ;MAC/C,IAAI,CAACH,SAAS,GAAGG,OAAO;MACxB,IAAIA,OAAO,IAAI,CAAC,IAAI,CAACF,WAAW,EAAE;QAC9BG,GAAG,CAACC,EAAE,CAACC,OAAO,CAAC,CAAC,cAAc,CAAC,EAAGC,GAA6B,IAAK;UAChE,IAAI,CAACN,WAAW,GAAGM,GAAG;QAC1B,CAAC,CAAC;MACN;IACJ;;IAEA;AACJ;AACA;IACI,OAAcC,WAAWA,CAAA,EAAY;MACjC,OAAO,IAAI,CAACR,SAAS;IACzB;IAEA,OAAcS,KAAKA,CAACC,OAAe,EAAEC,OAAgB,EAAEC,SAAkB,EAAQ;MAC7E,IAAI,CAAC,IAAI,CAACZ,SAAS,EAAE;MACrB,IAAI,IAAI,CAACC,WAAW,EAAE;QAClB,IAAI,CAACA,WAAW,CAACQ,KAAK,CAACC,OAAO,EAAEC,OAAO,EAAEC,SAAS,IAAI,QAAQ,CAAC;MACnE,CAAC,MAAM;QACHC,OAAO,CAACJ,KAAK,CAAC,YAAYC,OAAO,EAAE,EAAEC,OAAO,IAAI,EAAE,CAAC;MACvD;IACJ;IAEA,OAAcG,IAAIA,CAACJ,OAAe,EAAEC,OAAgB,EAAEC,SAAkB,EAAQ;MAC5E,IAAI,CAAC,IAAI,CAACZ,SAAS,EAAE;MACrB,IAAI,IAAI,CAACC,WAAW,EAAE;QAClB,IAAI,CAACA,WAAW,CAACa,IAAI,CAACJ,OAAO,EAAEC,OAAO,EAAEC,SAAS,IAAI,QAAQ,CAAC;MAClE,CAAC,MAAM;QACHC,OAAO,CAACC,IAAI,CAAC,YAAYJ,OAAO,EAAE,EAAEC,OAAO,IAAI,EAAE,CAAC;MACtD;IACJ;IAEA,OAAcI,IAAIA,CAACL,OAAe,EAAEC,OAAgB,EAAEC,SAAkB,EAAQ;MAC5E,IAAI,CAAC,IAAI,CAACZ,SAAS,EAAE;MACrB,IAAI,IAAI,CAACC,WAAW,EAAE;QAClB,IAAI,CAACA,WAAW,CAACe,OAAO,CAACN,OAAO,EAAEC,OAAO,EAAEC,SAAS,IAAI,QAAQ,CAAC;MACrE,CAAC,MAAM;QACHC,OAAO,CAACE,IAAI,CAAC,YAAYL,OAAO,EAAE,EAAEC,OAAO,IAAI,EAAE,CAAC;MACtD;IACJ;IAEA,OAAcM,KAAKA,CAACP,OAAe,EAAEC,OAAgB,EAAEC,SAAkB,EAAQ;MAC7E,IAAI,IAAI,CAACX,WAAW,EAAE;QAClB,IAAI,CAACA,WAAW,CAACgB,KAAK,CAACP,OAAO,EAAEC,OAAO,EAAEC,SAAS,IAAI,QAAQ,CAAC;MACnE,CAAC,MAAM;QACHC,OAAO,CAACI,KAAK,CAAC,kBAAkBP,OAAO,EAAE,EAAEC,OAAO,IAAI,EAAE,CAAC;MAC7D;IACJ;;IAEA;AACJ;AACA;IACI,OAAcO,cAAcA,CAACR,OAAe,EAAES,KAAc,EAAQ;MAChE,IAAI,CAAC,IAAI,CAACnB,SAAS,EAAE;MACrBI,GAAG,CAACC,EAAE,CAACC,OAAO,CAAC,CAAC,kBAAkB,CAAC,EAAGc,UAAoC,IAAK;QAC1EA,UAAU,CAA8BH,KAAK,CAACP,OAAO,EAAE;UAAES,KAAK,EAAEA,KAAK,IAAI;QAAe,CAAC,CAAC;MAC/F,CAAC,CAAC;IACN;EACJ;EAAC,IAAAE,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAtB,MAAA,GAAAA,MAAA;EAAA,OAAAsB,SAAA;AAAA","ignoreList":[]}