@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":"DynamicHost-dbg.js","names":["GeneratorHost","_interopRequireDefault","__GeneratorHost","Logger","___utils_Logger","ODataDelegate","___host_delegates_ODataDelegate","SchemaBuilderRegistry","___core_SchemaBuilderRegistry","DynamicHost","Control","extend","constructor","prototype","apply","arguments","odataDelegate","_innerHost","_initializedInner","renderer","apiVersion","render","rm","control","openStart","style","openEnd","content","getAggregation","renderControl","close","metadata","properties","schemaDefinition","type","defaultValue","schemaDefinitions","schemaTarget","pluginRegistry","schemaBuilderRegistry","data","bindable","dataJson","liveUpdate","isValid","useMessageManager","modelName","debugMode","editable","inferenceStrategy","aggregations","_content","multiple","visibility","events","beforeSubmit","parameters","payload","addError","preventDefault","submit","payloadJson","cancel","fieldChange","fieldPath","value","validationStateChanged","validationError","message","validationSuccess","error","exception","initODataDelegate","_initODataDelegate","getBindingInfo","dataBinding","path","oContext","getBindingContext","debug","getPath","requestObject","syncToEngine","Object","keys","setBindingContext","_setBindingContext","sModelName","Control.prototype.setBindingContext.call","bindElement","_bindElement","vPath","mParameters","Control.prototype.bindElement.call","model","undefined","oBinding","getElementBinding","attachChange","onBeforeRendering","_onBeforeRendering","schemaRaw","getProperty","startsWith","self","_fetchingSchema","sap","ui","require","BusyIndicator","MessageToast","show","fetch","then","res","ok","Error","status","json","plugin","getBuilderFor","finalSchema","build","Control.prototype.setProperty.call","definitions","hide","invalidate","catch","err","warn","schema","trim","JSON","parse","e","hasSchema","length","hasData","rawDataObj","trace","AIConfig","proxy","getProxy","generateSchema","generatedSchema","props","getMetadata","getProperties","propName","val","Control.prototype.getProperty.call","setProperty","setAggregation","getEvents","eventName","attachEvent","oEvent","params","getParameters","isLive","str","stringify","fireEvent","_setProperty","propertyName","suppressInvalidate","openInDialog","_openInDialog","title","submitButtonText","cancelButtonText","dialogWidth","parentView","triggerSubmit","_triggerSubmit","addCustomError","_addCustomError","inner","clearCustomError","_clearCustomError","_getProperty"],"sources":["DynamicHost.ts"],"sourcesContent":["import Control from \"sap/ui/core/Control\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport GeneratorHost from \"./host/GeneratorHost\";\nimport { Logger } from \"../utils/Logger\";\nimport { ODataDelegate } from \"./host/delegates/ODataDelegate\";\nimport ODataV4Context from \"sap/ui/model/odata/v4/Context\";\nimport { SchemaBuilderRegistry } from \"../core/SchemaBuilderRegistry\";\n\n/**\n * A transparent wrapper control (Facade) that automatically chooses between Explicit Schema Mode \n * and Inference Mode based on the presence of a 'schemaDefinition'.\n * \n * This maintains total architectural separation of the modes without forcing developers to \n * use different XML tags.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nexport default class DynamicHost extends Control {\n private odataDelegate: ODataDelegate | null = null;\n\n static readonly metadata = {\n properties: {\n schemaDefinition: { type: \"any\", defaultValue: null },\n schemaDefinitions: { type: \"object\", defaultValue: null },\n schemaTarget: { type: \"string\", defaultValue: null },\n pluginRegistry: { type: \"object\", defaultValue: null },\n schemaBuilderRegistry: { type: \"object\", defaultValue: null },\n data: { type: \"object\", defaultValue: null, bindable: \"bindable\" },\n dataJson: { type: \"string\", defaultValue: null, bindable: \"bindable\" },\n liveUpdate: { type: \"boolean\", defaultValue: false },\n isValid: { type: \"boolean\", defaultValue: true },\n useMessageManager: { type: \"boolean\", defaultValue: false },\n modelName: { type: \"string\", defaultValue: \"meta\" },\n debugMode: { type: \"boolean\", defaultValue: false },\n editable: { type: \"boolean\", defaultValue: true },\n inferenceStrategy: { type: \"string\", defaultValue: \"RuleBased\" }\n },\n aggregations: {\n _content: { type: \"sap.ui.core.Control\", multiple: false, visibility: \"hidden\" }\n },\n events: {\n beforeSubmit: {\n parameters: {\n payload: { type: \"object\" },\n addError: { type: \"function\" },\n preventDefault: { type: \"function\" }\n }\n },\n submit: {\n parameters: {\n payload: { type: \"object\" },\n payloadJson: { type: \"string\" }\n }\n },\n cancel: {},\n fieldChange: {\n parameters: {\n fieldPath: { type: \"string\" },\n value: { type: \"any\" },\n payload: { type: \"object\" },\n isValid: { type: \"boolean\" }\n }\n },\n validationStateChanged: { parameters: { isValid: { type: \"boolean\" } } },\n validationError: { parameters: { fieldPath: { type: \"string\" }, message: { type: \"string\" } } },\n validationSuccess: { parameters: { fieldPath: { type: \"string\" } } },\n error: { parameters: { message: { type: \"string\" }, exception: { type: \"object\" } } }\n }\n };\n\n static renderer = {\n apiVersion: 2,\n render(rm: RenderManager, control: DynamicHost) {\n rm.openStart(\"div\", control);\n rm.style(\"width\", \"100%\");\n rm.style(\"height\", \"100%\");\n rm.openEnd();\n\n const content = control.getAggregation(\"_content\") as Control;\n if (content) {\n rm.renderControl(content);\n }\n\n rm.close(\"div\");\n }\n };\n\n /**\n * Internal reference to the generated inner host instance.\n * @private\n */\n private _innerHost: GeneratorHost | null = null;\n\n /**\n * Flag indicating if the inner host has been initialized.\n * @private\n */\n private _initializedInner: boolean = false;\n\n /**\n * Initializes the OData Delegate if an OData context is detected.\n * This allows DynamicHost to seamlessly synchronize metadata and properties from an OData model.\n * @private\n */\n private initODataDelegate(): void {\n if (!this.odataDelegate) {\n // Guard: If the user explicitly bound dataJson, do not steal the context.\n if (this.getBindingInfo(\"dataJson\")) {\n return;\n }\n\n // Guard: If the user explicitly bound 'data' to a specific property path, do not steal the context.\n const dataBinding = this.getBindingInfo(\"data\") as any;\n if (dataBinding && dataBinding.path && dataBinding.path !== \"\") {\n return;\n }\n\n const oContext = this.getBindingContext(\"odata\") || this.getBindingContext();\n if (oContext) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context found for delegate initialization: ${oContext.getPath()}`, \"DynamicHost\");\n if (oContext && (oContext as ODataV4Context).requestObject && typeof (oContext as ODataV4Context).requestObject === \"function\") {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context supports requestObject/getObject. Instantiating ODataDelegate.`, \"DynamicHost\");\n this.odataDelegate = new ODataDelegate(this, oContext as ODataV4Context);\n this.odataDelegate.syncToEngine();\n } else {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context does NOT support requestObject/getObject! Keys: ${Object.keys(oContext)}`, \"DynamicHost\");\n }\n }\n }\n }\n\n /**\n * Standard UI5 method override.\n * Sets the binding context for the control and attempts to initialize the OData delegate\n * if the context points to an OData model.\n * \n * @param {sap.ui.model.Context | null | undefined} oContext The binding context object\n * @param {string} [sModelName] Optional model name\n * @returns {this} The control instance for chaining\n */\n public setBindingContext(oContext: sap.ui.model.Context | null | undefined, sModelName?: string): this {\n super.setBindingContext(oContext, sModelName);\n this.initODataDelegate();\n return this;\n }\n\n /**\n * Standard UI5 method override.\n * Binds the element to the given path and attaches a change listener to re-evaluate\n * the OData delegate when the element binding resolves.\n * \n * @param {string | Record<string, unknown>} vPath The binding path or configuration object\n * @param {object} [mParameters] Optional mapping parameters\n * @returns {this} Reference to this instance for chaining\n */\n public bindElement(vPath: string | Record<string, unknown>, mParameters?: object): this {\n super.bindElement(vPath, mParameters);\n const sModelName = typeof vPath === \"object\" ? vPath.model : undefined;\n const oBinding = this.getElementBinding(sModelName);\n if (oBinding) {\n oBinding.attachChange(() => {\n this.initODataDelegate();\n });\n }\n return this;\n }\n\n /**\n * Standard UI5 Lifecycle Hook.\n * Evaluates the initial properties and spawns the GeneratorHost.\n * It handles the complex lifecycle task of copying all bindings, raw properties, and event listeners \n * down to the inner host perfectly transparently.\n */\n public onBeforeRendering(): void {\n Logger.debug(\"[MetaUI DynamicHost]\", `onBeforeRendering called. _initializedInner: ${this._initializedInner}`, \"DynamicHost\");\n\n this.initODataDelegate();\n\n if (!this._initializedInner) {\n let schemaRaw = this.getProperty(\"schemaDefinition\");\n\n // 1. URL Detection & Fetching\n if (typeof schemaRaw === \"string\" && (schemaRaw.startsWith(\"http://\") || schemaRaw.startsWith(\"https://\"))) {\n const self = this as unknown as { _fetchingSchema?: boolean };\n if (self._fetchingSchema) return; // Prevent re-entry\n self._fetchingSchema = true;\n \n sap.ui.require([\"sap/ui/core/BusyIndicator\", \"sap/m/MessageToast\"], (BusyIndicator: { show: (n: number) => void, hide: () => void }, MessageToast: { show: (s: string) => void }) => {\n BusyIndicator.show(0);\n fetch(schemaRaw as string)\n .then(res => {\n if (!res.ok) throw new Error(\"HTTP \" + res.status);\n return res.json();\n })\n .then(json => {\n const plugin = SchemaBuilderRegistry.getBuilderFor(json);\n const finalSchema = plugin ? plugin.build(json, this.getProperty(\"schemaTarget\")) : json;\n super.setProperty(\"schemaDefinition\", finalSchema, true);\n if (finalSchema.definitions) {\n super.setProperty(\"schemaDefinitions\", finalSchema.definitions, true);\n }\n const self = this as unknown as { _fetchingSchema?: boolean };\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); // Force re-render with resolved schema\n })\n .catch(err => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n Logger.warn(\"[MetaUI DynamicHost]\", \"Failed to fetch remote schema: \" + err, \"DynamicHost\");\n if (MessageToast) MessageToast.show(\"Failed to fetch remote schema\");\n super.setProperty(\"schemaDefinition\", null, true); // Fallback to full inference\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate();\n });\n });\n return; // Abort this render cycle until fetch completes\n }\n\n // 2. Local Plugin Detection (Stringified JSON or Raw Object)\n let schema = schemaRaw;\n if (schema && typeof schema === \"string\" && (schema as string).trim().startsWith(\"{\")) {\n try {\n schema = JSON.parse(schema);\n } catch (e) {\n // Ignore, let standard validation catch it\n }\n }\n\n if (schema && typeof schema === \"object\") {\n const plugin = SchemaBuilderRegistry.getBuilderFor(schema);\n if (plugin) {\n schema = plugin.build(schema, this.getProperty(\"schemaTarget\"));\n // Silently update the wrapper property so the inner host gets the final parsed MetaUI format\n super.setProperty(\"schemaDefinition\", schema, true);\n if (schema.definitions) {\n super.setProperty(\"schemaDefinitions\", schema.definitions, true);\n }\n }\n }\n\n const dataJson = this.getProperty(\"dataJson\");\n const data = this.getProperty(\"data\");\n\n let hasSchema = !!schema;\n if (hasSchema && typeof schema === \"object\" && Object.keys(schema).length === 0) {\n hasSchema = false; // Treat empty object as no schema\n }\n\n const hasData = !!dataJson || !!data;\n\n // 3. AI Schema Inference Detection\n if (hasData && this.getProperty(\"inferenceStrategy\") === \"AI\") {\n const self = this as unknown as { _fetchingSchema?: boolean };\n if (self._fetchingSchema) return; // Prevent re-entry\n self._fetchingSchema = true;\n\n let rawDataObj = data;\n if (!rawDataObj && dataJson) {\n try { rawDataObj = JSON.parse(dataJson as string); } catch(e: Error) { Logger.trace(\"[DynamicHost] Ignored invalid dataJson parse: \" + e.message); }\n }\n\n if (rawDataObj) {\n sap.ui.require([\n \"sap/ui/core/BusyIndicator\", \n \"sap/m/MessageToast\",\n \"nz/co/siliconst/ui5/metaui/ai/AIConfig\"\n ], (BusyIndicator: { show: (n: number) => void, hide: () => void }, MessageToast: { show: (s: string) => void }, AIConfig: { getProxy: () => { generateSchema: (d: unknown, s?: unknown) => Promise<unknown> } }) => {\n BusyIndicator.show(0);\n const proxy = AIConfig.getProxy();\n \n proxy.generateSchema(rawDataObj, schema || undefined)\n .then((generatedSchema: unknown) => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n super.setProperty(\"schemaDefinition\", generatedSchema, true);\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); // Force re-render with the new schema\n })\n .catch((err: Error) => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n Logger.warn(\"[MetaUI DynamicHost]\", \"AI inference failed, falling back to RuleBased. Error: \" + err.message, \"DynamicHost\");\n if (MessageToast) MessageToast.show(\"AI Inference failed, using fallback.\");\n super.setProperty(\"inferenceStrategy\", \"RuleBased\", true); // Fallback to normal inference\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); \n });\n });\n return; // Abort render cycle until AI is done\n }\n }\n\n Logger.debug(\"[MetaUI DynamicHost]\", `Evaluating boot. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n\n // Only boot if we have either a schema or some data to infer from\n if (hasSchema || hasData) {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Booting inner host. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n }\n // The architectural Facade router logic:\n // We've simplified this! We no longer use HostFactory or separate subclasses.\n // GeneratorHost is fully capable of inferring the schema if none is provided.\n this._innerHost = new GeneratorHost();\n\n // 1. Forward all static values to the spawned host BEFORE mounting.\n // Since we no longer use bindProperty, it's perfectly safe to set raw properties before mounting.\n const props = this.getMetadata().getProperties();\n for (const propName in props) {\n if (propName === \"inferenceStrategy\") continue;\n const val = super.getProperty(propName);\n if (val !== null && val !== undefined) {\n if (propName === \"schemaDefinitions\") {\n Logger.debug(`[MetaUI DynamicHost] Proxying schemaDefinitions: ${Object.keys(val)}`, \"\", \"DynamicHost\");\n }\n this._innerHost.setProperty(propName, val);\n } else if (propName === \"schemaDefinitions\") {\n Logger.warn(`[MetaUI DynamicHost] Warning: schemaDefinitions is null/undefined in Wrapper. Defaulting to empty object in GeneratorHost.`, \"\", \"DynamicHost\");\n }\n }\n\n // 2. Mount so it inherits models and triggers lifecycle.\n this.setAggregation(\"_content\", this._innerHost);\n\n // 3. Forward all event subscriptions.\n // By proxying the events upwards, the developer can subscribe to `<meta:DynamicHost submit=\"...\">` \n // and perfectly receive the inner host's submission event.\n const events = this.getMetadata().getEvents();\n for (const eventName in events) {\n this._innerHost.attachEvent(eventName, (oEvent: sap.ui.base.Event) => {\n // Natively push updated payload out to any bound Fiori Element properties.\n // Using super.setProperty prevents an infinite loop back down to _innerHost.\n if (eventName === \"submit\" || eventName === \"fieldChange\") {\n const params = oEvent.getParameters();\n if (params.payload) {\n const isLive = this.getProperty(\"liveUpdate\") === true;\n if (eventName === \"submit\" || isLive) {\n super.setProperty(\"data\", params.payload, true);\n\n const str = params.payloadJson || JSON.stringify(params.payload, null, 2);\n super.setProperty(\"dataJson\", str, true);\n }\n }\n }\n this.fireEvent(eventName, oEvent.getParameters());\n });\n }\n\n this._initializedInner = true;\n }\n }\n }\n\n /**\n * Overrides standard UI5 setProperty to act as a transparent proxy.\n * When a property is updated on the wrapper (either programmatically or via a binding update),\n * it instantly mirrors that value down to the inner instantiated host.\n */\n public setProperty(propertyName: string, value: unknown, suppressInvalidate?: boolean): this {\n if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\" || propertyName === \"schemaDefinitions\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Wrapper received setProperty: ${propertyName}`, \"DynamicHost\");\n }\n }\n super.setProperty(propertyName, value, suppressInvalidate);\n if (this._innerHost && propertyName !== \"inferenceStrategy\") {\n this._innerHost.setProperty(propertyName, value, suppressInvalidate);\n } else if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\" || propertyName === \"schemaDefinitions\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `_innerHost not yet initialized when ${propertyName} was set. Booting will happen on next render.`, \"DynamicHost\");\n }\n }\n return this;\n }\n\n\n\n\n\n /**\n * Programmatic API support. Routes dialog commands down to the spawned inner host.\n * If the inner host has not booted yet, it forces initialization immediately.\n * \n * @param {string} [title=\"Form\"] The title of the dialog\n * @param {string} [submitButtonText=\"OK\"] The text for the primary action button\n * @param {string} [cancelButtonText=\"Cancel\"] The text for the cancel button\n * @param {string} [dialogWidth=\"auto\"] The width of the dialog\n * @param {sap.ui.core.Control} [parentView] The parent view to attach the dialog to for model inheritance.\n */\n public openInDialog(title?: string, submitButtonText?: string, cancelButtonText?: string, dialogWidth?: string, parentView?: Control): void {\n if (!this._innerHost) {\n this.onBeforeRendering(); // Force init if they bypassed UI5 rendering\n }\n this._innerHost?.openInDialog(title, submitButtonText, cancelButtonText, dialogWidth, parentView);\n }\n\n /**\n * Proxies submission triggering down to the instantiated generator host.\n * Evaluates the internal Engine validation suite and returns true if structurally sound.\n * \n * @returns {boolean} True if the internal payload passes schema validation, false otherwise.\n */\n public triggerSubmit(): boolean {\n if (!this._innerHost) {\n return false;\n }\n return this._innerHost.triggerSubmit();\n }\n\n /**\n * Injects a custom error message onto a specific field.\n * Useful for injecting custom backend validation errors.\n * \n * @param {string} fieldPath The schema key path to target.\n * @param {string} message The custom error message to display.\n */\n public addCustomError(fieldPath: string, message: string): void {\n const inner = this._innerHost as unknown as { addCustomError?: (p: string, m: string) => void };\n if (inner && typeof inner.addCustomError === \"function\") {\n inner.addCustomError(fieldPath, message);\n }\n }\n\n /**\n * Clears a custom error message from a specific field.\n * \n * @param {string} fieldPath The schema key path to target.\n */\n public clearCustomError(fieldPath: string): void {\n const inner = this._innerHost as unknown as { clearCustomError?: (p: string) => void };\n if (inner && typeof inner.clearCustomError === \"function\") {\n inner.clearCustomError(fieldPath);\n }\n }\n\n /**\n * Overrides standard UI5 getProperty to transparently pull extracted data from the inner host.\n * Ensures that querying the DynamicHost facade for `data` always yields the freshest payload.\n * \n * @param {string} propertyName The name of the property to retrieve\n * @returns {unknown} The property value\n */\n public getProperty(propertyName: string): unknown {\n if (propertyName === \"outputData\") {\n propertyName = \"data\"; // Forward deprecated outputData to data\n }\n if (this._innerHost && (propertyName === \"data\" || propertyName === \"dataJson\")) {\n return this._innerHost.getProperty(propertyName);\n }\n return super.getProperty(propertyName);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DynamicHost-dbg.js","names":["GeneratorHost","_interopRequireDefault","__GeneratorHost","Logger","___utils_Logger","ODataDelegate","___host_delegates_ODataDelegate","SchemaBuilderRegistry","___core_SchemaBuilderRegistry","DynamicHost","Control","extend","constructor","prototype","apply","arguments","odataDelegate","_innerHost","_initializedInner","renderer","apiVersion","render","rm","control","openStart","style","openEnd","content","getAggregation","renderControl","close","metadata","properties","schemaDefinition","type","defaultValue","schemaDefinitions","schemaTarget","pluginRegistry","schemaBuilderRegistry","data","bindable","dataJson","liveUpdate","isValid","useMessageManager","modelName","debugMode","editable","layoutBudget","inferenceStrategy","aggregations","_content","multiple","visibility","events","beforeSubmit","parameters","payload","addError","preventDefault","submit","payloadJson","cancel","fieldChange","fieldPath","value","validationStateChanged","validationError","message","validationSuccess","error","exception","initODataDelegate","_initODataDelegate","getBindingInfo","dataBinding","path","oContext","getBindingContext","debug","getPath","requestObject","syncToEngine","Object","keys","setBindingContext","_setBindingContext","sModelName","Control.prototype.setBindingContext.call","bindElement","_bindElement","vPath","mParameters","Control.prototype.bindElement.call","model","undefined","oBinding","getElementBinding","attachChange","onBeforeRendering","_onBeforeRendering","schemaRaw","getProperty","startsWith","self","_fetchingSchema","sap","ui","require","BusyIndicator","MessageToast","show","fetch","then","res","ok","Error","status","json","plugin","getBuilderFor","finalSchema","build","Control.prototype.setProperty.call","definitions","hide","invalidate","catch","err","warn","schema","trim","JSON","parse","e","hasSchema","length","hasData","rawDataObj","AIConfig","proxy","getProxy","generateSchema","generatedSchema","props","getMetadata","getProperties","propName","val","Control.prototype.getProperty.call","setProperty","setAggregation","getEvents","eventName","attachEvent","oEvent","params","getParameters","isLive","str","stringify","fireEvent","_setProperty","propertyName","suppressInvalidate","openInDialog","_openInDialog","title","submitButtonText","cancelButtonText","dialogWidth","parentView","triggerSubmit","_triggerSubmit","addCustomError","_addCustomError","inner","clearCustomError","_clearCustomError","_getProperty"],"sources":["DynamicHost.ts"],"sourcesContent":["import Control from \"sap/ui/core/Control\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport GeneratorHost from \"./host/GeneratorHost\";\nimport { Logger } from \"../utils/Logger\";\nimport { ODataDelegate } from \"./host/delegates/ODataDelegate\";\nimport ODataV4Context from \"sap/ui/model/odata/v4/Context\";\nimport { SchemaBuilderRegistry } from \"../core/SchemaBuilderRegistry\";\n\n/**\n * A transparent wrapper control (Facade) that automatically chooses between Explicit Schema Mode \n * and Inference Mode based on the presence of a 'schemaDefinition'.\n * \n * This maintains total architectural separation of the modes without forcing developers to \n * use different XML tags.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nexport default class DynamicHost extends Control {\n private odataDelegate: ODataDelegate | null = null;\n\n static readonly metadata = {\n properties: {\n schemaDefinition: { type: \"any\", defaultValue: null },\n schemaDefinitions: { type: \"object\", defaultValue: null },\n schemaTarget: { type: \"string\", defaultValue: null },\n pluginRegistry: { type: \"object\", defaultValue: null },\n schemaBuilderRegistry: { type: \"object\", defaultValue: null },\n data: { type: \"object\", defaultValue: null, bindable: \"bindable\" },\n dataJson: { type: \"string\", defaultValue: null, bindable: \"bindable\" },\n liveUpdate: { type: \"boolean\", defaultValue: false },\n isValid: { type: \"boolean\", defaultValue: true },\n useMessageManager: { type: \"boolean\", defaultValue: false },\n modelName: { type: \"string\", defaultValue: \"meta\" },\n debugMode: { type: \"boolean\", defaultValue: false },\n editable: { type: \"boolean\", defaultValue: true },\n layoutBudget: { type: \"int\", defaultValue: 0 },\n inferenceStrategy: { type: \"string\", defaultValue: \"RuleBased\" }\n },\n aggregations: {\n _content: { type: \"sap.ui.core.Control\", multiple: false, visibility: \"hidden\" }\n },\n events: {\n beforeSubmit: {\n parameters: {\n payload: { type: \"object\" },\n addError: { type: \"function\" },\n preventDefault: { type: \"function\" }\n }\n },\n submit: {\n parameters: {\n payload: { type: \"object\" },\n payloadJson: { type: \"string\" }\n }\n },\n cancel: {},\n fieldChange: {\n parameters: {\n fieldPath: { type: \"string\" },\n value: { type: \"any\" },\n payload: { type: \"object\" },\n isValid: { type: \"boolean\" }\n }\n },\n validationStateChanged: { parameters: { isValid: { type: \"boolean\" } } },\n validationError: { parameters: { fieldPath: { type: \"string\" }, message: { type: \"string\" } } },\n validationSuccess: { parameters: { fieldPath: { type: \"string\" } } },\n error: { parameters: { message: { type: \"string\" }, exception: { type: \"object\" } } }\n }\n };\n\n static renderer = {\n apiVersion: 2,\n render(rm: RenderManager, control: DynamicHost) {\n rm.openStart(\"div\", control);\n rm.style(\"width\", \"100%\");\n rm.style(\"height\", \"100%\");\n rm.openEnd();\n\n const content = control.getAggregation(\"_content\") as Control;\n if (content) {\n rm.renderControl(content);\n }\n\n rm.close(\"div\");\n }\n };\n\n /**\n * Internal reference to the generated inner host instance.\n * @private\n */\n private _innerHost: GeneratorHost | null = null;\n\n /**\n * Flag indicating if the inner host has been initialized.\n * @private\n */\n private _initializedInner: boolean = false;\n\n /**\n * Initializes the OData Delegate if an OData context is detected.\n * This allows DynamicHost to seamlessly synchronize metadata and properties from an OData model.\n * @private\n */\n private initODataDelegate(): void {\n if (!this.odataDelegate) {\n // Guard: If the user explicitly bound dataJson, do not steal the context.\n if (this.getBindingInfo(\"dataJson\")) {\n return;\n }\n\n // Guard: If the user explicitly bound 'data' to a specific property path, do not steal the context.\n const dataBinding = this.getBindingInfo(\"data\") as any;\n if (dataBinding && dataBinding.path && dataBinding.path !== \"\") {\n return;\n }\n\n const oContext = this.getBindingContext(\"odata\") || this.getBindingContext();\n if (oContext) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context found for delegate initialization: ${oContext.getPath()}`, \"DynamicHost\");\n if (oContext && (oContext as ODataV4Context).requestObject && typeof (oContext as ODataV4Context).requestObject === \"function\") {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context supports requestObject/getObject. Instantiating ODataDelegate.`, \"DynamicHost\");\n this.odataDelegate = new ODataDelegate(this, oContext as ODataV4Context);\n this.odataDelegate.syncToEngine();\n } else {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context does NOT support requestObject/getObject! Keys: ${Object.keys(oContext)}`, \"DynamicHost\");\n }\n }\n }\n }\n\n /**\n * Standard UI5 method override.\n * Sets the binding context for the control and attempts to initialize the OData delegate\n * if the context points to an OData model.\n * \n * @param {sap.ui.model.Context | null | undefined} oContext The binding context object\n * @param {string} [sModelName] Optional model name\n * @returns {this} The control instance for chaining\n */\n public setBindingContext(oContext: any, sModelName?: string): this {\n super.setBindingContext(oContext, sModelName);\n this.initODataDelegate();\n return this;\n }\n\n /**\n * Standard UI5 method override.\n * Binds the element to the given path and attaches a change listener to re-evaluate\n * the OData delegate when the element binding resolves.\n * \n * @param {string | Record<string, unknown>} vPath The binding path or configuration object\n * @param {object} [mParameters] Optional mapping parameters\n * @returns {this} Reference to this instance for chaining\n */\n public bindElement(vPath: any, mParameters?: object): this {\n super.bindElement(vPath, mParameters);\n const sModelName = typeof vPath === \"object\" ? vPath.model : undefined;\n const oBinding = this.getElementBinding(sModelName);\n if (oBinding) {\n oBinding.attachChange(() => {\n this.initODataDelegate();\n });\n }\n return this;\n }\n\n /**\n * Standard UI5 Lifecycle Hook.\n * Evaluates the initial properties and spawns the GeneratorHost.\n * It handles the complex lifecycle task of copying all bindings, raw properties, and event listeners \n * down to the inner host perfectly transparently.\n */\n public onBeforeRendering(): void {\n Logger.debug(\"[MetaUI DynamicHost]\", `onBeforeRendering called. _initializedInner: ${this._initializedInner}`, \"DynamicHost\");\n\n this.initODataDelegate();\n\n if (!this._initializedInner) {\n let schemaRaw = this.getProperty(\"schemaDefinition\");\n\n // 1. URL Detection & Fetching\n if (typeof schemaRaw === \"string\" && (schemaRaw.startsWith(\"http://\") || schemaRaw.startsWith(\"https://\"))) {\n const self = this as unknown as { _fetchingSchema?: boolean };\n if (self._fetchingSchema) return; // Prevent re-entry\n self._fetchingSchema = true;\n \n sap.ui.require([\"sap/ui/core/BusyIndicator\", \"sap/m/MessageToast\"], (BusyIndicator: { show: (n: number) => void, hide: () => void }, MessageToast: { show: (s: string) => void }) => {\n BusyIndicator.show(0);\n fetch(schemaRaw as string)\n .then(res => {\n if (!res.ok) throw new Error(\"HTTP \" + res.status);\n return res.json();\n })\n .then(json => {\n const plugin = SchemaBuilderRegistry.getBuilderFor(json);\n const finalSchema = plugin ? plugin.build(json, this.getProperty(\"schemaTarget\") as string | undefined) : json;\n super.setProperty(\"schemaDefinition\", finalSchema, true);\n if (finalSchema.definitions) {\n super.setProperty(\"schemaDefinitions\", finalSchema.definitions, true);\n }\n const self = this as unknown as { _fetchingSchema?: boolean };\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); // Force re-render with resolved schema\n })\n .catch(err => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n Logger.warn(\"[MetaUI DynamicHost]\", \"Failed to fetch remote schema: \" + err, \"DynamicHost\");\n if (MessageToast) MessageToast.show(\"Failed to fetch remote schema\");\n super.setProperty(\"schemaDefinition\", null, true); // Fallback to full inference\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate();\n });\n });\n return; // Abort this render cycle until fetch completes\n }\n\n // 2. Local Plugin Detection (Stringified JSON or Raw Object)\n let schema = schemaRaw;\n if (schema && typeof schema === \"string\" && (schema as string).trim().startsWith(\"{\")) {\n try {\n schema = JSON.parse(schema);\n } catch (e) {\n // Ignore, let standard validation catch it\n }\n }\n\n if (schema && typeof schema === \"object\") {\n const plugin = SchemaBuilderRegistry.getBuilderFor(schema);\n if (plugin) {\n schema = plugin.build(schema, this.getProperty(\"schemaTarget\") as string | undefined);\n // Silently update the wrapper property so the inner host gets the final parsed MetaUI format\n super.setProperty(\"schemaDefinition\", schema, true);\n if ((schema as any).definitions) {\n super.setProperty(\"schemaDefinitions\", (schema as any).definitions, true);\n }\n }\n }\n\n const dataJson = this.getProperty(\"dataJson\");\n const data = this.getProperty(\"data\");\n\n let hasSchema = !!schema;\n if (hasSchema && typeof schema === \"object\" && Object.keys(schema as any).length === 0) {\n hasSchema = false; // Treat empty object as no schema\n }\n\n const hasData = !!dataJson || !!data;\n\n // 3. AI Schema Inference Detection\n if (hasData && this.getProperty(\"inferenceStrategy\") === \"AI\") {\n const self = this as unknown as { _fetchingSchema?: boolean };\n if (self._fetchingSchema) return; // Prevent re-entry\n self._fetchingSchema = true;\n\n let rawDataObj = data;\n if (!rawDataObj && dataJson) {\n try { rawDataObj = JSON.parse(dataJson as string); } catch(e: any) { Logger.debug(\"[DynamicHost] Ignored invalid dataJson parse: \" + e.message); }\n }\n\n if (rawDataObj) {\n sap.ui.require([\n \"sap/ui/core/BusyIndicator\", \n \"sap/m/MessageToast\",\n \"nz/co/siliconst/ui5/metaui/ai/AIConfig\"\n ], (BusyIndicator: { show: (n: number) => void, hide: () => void }, MessageToast: { show: (s: string) => void }, AIConfig: { getProxy: () => { generateSchema: (d: unknown, s?: unknown) => Promise<unknown> } }) => {\n BusyIndicator.show(0);\n const proxy = AIConfig.getProxy();\n \n proxy.generateSchema(rawDataObj, schema || undefined)\n .then((generatedSchema: unknown) => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n super.setProperty(\"schemaDefinition\", generatedSchema, true);\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); // Force re-render with the new schema\n })\n .catch((err: Error) => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n Logger.warn(\"[MetaUI DynamicHost]\", \"AI inference failed, falling back to RuleBased. Error: \" + err.message, \"DynamicHost\");\n if (MessageToast) MessageToast.show(\"AI Inference failed, using fallback.\");\n super.setProperty(\"inferenceStrategy\", \"RuleBased\", true); // Fallback to normal inference\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); \n });\n });\n return; // Abort render cycle until AI is done\n }\n }\n\n Logger.debug(\"[MetaUI DynamicHost]\", `Evaluating boot. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n\n // Only boot if we have either a schema or some data to infer from\n if (hasSchema || hasData) {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Booting inner host. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n }\n // The architectural Facade router logic:\n // We've simplified this! We no longer use HostFactory or separate subclasses.\n // GeneratorHost is fully capable of inferring the schema if none is provided.\n this._innerHost = new GeneratorHost();\n\n // 1. Forward all static values to the spawned host BEFORE mounting.\n // Since we no longer use bindProperty, it's perfectly safe to set raw properties before mounting.\n const props = this.getMetadata().getProperties();\n for (const propName in props) {\n if (propName === \"inferenceStrategy\") continue;\n const val = super.getProperty(propName);\n if (val !== null && val !== undefined) {\n if (propName === \"schemaDefinitions\") {\n Logger.debug(`[MetaUI DynamicHost] Proxying schemaDefinitions: ${Object.keys(val)}`, \"\", \"DynamicHost\");\n }\n this._innerHost.setProperty(propName, val);\n } else if (propName === \"schemaDefinitions\") {\n Logger.warn(`[MetaUI DynamicHost] Warning: schemaDefinitions is null/undefined in Wrapper. Defaulting to empty object in GeneratorHost.`, \"\", \"DynamicHost\");\n }\n }\n\n // 2. Mount so it inherits models and triggers lifecycle.\n this.setAggregation(\"_content\", this._innerHost);\n\n // 3. Forward all event subscriptions.\n // By proxying the events upwards, the developer can subscribe to `<meta:DynamicHost submit=\"...\">` \n // and perfectly receive the inner host's submission event.\n const events = this.getMetadata().getEvents();\n for (const eventName in events) {\n this._innerHost.attachEvent(eventName, (oEvent: any) => {\n // Natively push updated payload out to any bound Fiori Element properties.\n // Using super.setProperty prevents an infinite loop back down to _innerHost.\n if (eventName === \"submit\" || eventName === \"fieldChange\") {\n const params = oEvent.getParameters();\n if (params.payload) {\n const isLive = this.getProperty(\"liveUpdate\") === true;\n if (eventName === \"submit\" || isLive) {\n super.setProperty(\"data\", params.payload, true);\n\n const str = params.payloadJson || JSON.stringify(params.payload, null, 2);\n super.setProperty(\"dataJson\", str, true);\n }\n }\n }\n this.fireEvent(eventName, oEvent.getParameters());\n });\n }\n\n this._initializedInner = true;\n }\n }\n }\n\n /**\n * Overrides standard UI5 setProperty to act as a transparent proxy.\n * When a property is updated on the wrapper (either programmatically or via a binding update),\n * it instantly mirrors that value down to the inner instantiated host.\n */\n public setProperty(propertyName: string, value: unknown, suppressInvalidate?: boolean): this {\n if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\" || propertyName === \"schemaDefinitions\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Wrapper received setProperty: ${propertyName}`, \"DynamicHost\");\n }\n }\n super.setProperty(propertyName, value, suppressInvalidate);\n if (this._innerHost && propertyName !== \"inferenceStrategy\") {\n this._innerHost.setProperty(propertyName, value, suppressInvalidate);\n } else if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\" || propertyName === \"schemaDefinitions\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `_innerHost not yet initialized when ${propertyName} was set. Booting will happen on next render.`, \"DynamicHost\");\n }\n }\n return this;\n }\n\n\n\n\n\n /**\n * Programmatic API support. Routes dialog commands down to the spawned inner host.\n * If the inner host has not booted yet, it forces initialization immediately.\n * \n * @param {string} [title=\"Form\"] The title of the dialog\n * @param {string} [submitButtonText=\"OK\"] The text for the primary action button\n * @param {string} [cancelButtonText=\"Cancel\"] The text for the cancel button\n * @param {string} [dialogWidth=\"auto\"] The width of the dialog\n * @param {sap.ui.core.Control} [parentView] The parent view to attach the dialog to for model inheritance.\n */\n public openInDialog(title?: string, submitButtonText?: string, cancelButtonText?: string, dialogWidth?: string, parentView?: Control): void {\n if (!this._innerHost) {\n this.onBeforeRendering(); // Force init if they bypassed UI5 rendering\n }\n this._innerHost?.openInDialog(title, submitButtonText, cancelButtonText, dialogWidth, parentView);\n }\n\n /**\n * Proxies submission triggering down to the instantiated generator host.\n * Evaluates the internal Engine validation suite and returns true if structurally sound.\n * \n * @returns {boolean} True if the internal payload passes schema validation, false otherwise.\n */\n public triggerSubmit(): boolean {\n if (!this._innerHost) {\n return false;\n }\n return this._innerHost.triggerSubmit();\n }\n\n /**\n * Injects a custom error message onto a specific field.\n * Useful for injecting custom backend validation errors.\n * \n * @param {string} fieldPath The schema key path to target.\n * @param {string} message The custom error message to display.\n */\n public addCustomError(fieldPath: string, message: string): void {\n const inner = this._innerHost as unknown as { addCustomError?: (p: string, m: string) => void };\n if (inner && typeof inner.addCustomError === \"function\") {\n inner.addCustomError(fieldPath, message);\n }\n }\n\n /**\n * Clears a custom error message from a specific field.\n * \n * @param {string} fieldPath The schema key path to target.\n */\n public clearCustomError(fieldPath: string): void {\n const inner = this._innerHost as unknown as { clearCustomError?: (p: string) => void };\n if (inner && typeof inner.clearCustomError === \"function\") {\n inner.clearCustomError(fieldPath);\n }\n }\n\n /**\n * Overrides standard UI5 getProperty to transparently pull extracted data from the inner host.\n * Ensures that querying the DynamicHost facade for `data` always yields the freshest payload.\n * \n * @param {string} propertyName The name of the property to retrieve\n * @returns {unknown} The property value\n */\n public getProperty(propertyName: string): unknown {\n if (propertyName === \"outputData\") {\n propertyName = \"data\"; // Forward deprecated outputData to data\n }\n if (this._innerHost && (propertyName === \"data\" || propertyName === \"dataJson\")) {\n return this._innerHost.getProperty(propertyName);\n }\n return super.getProperty(propertyName);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -68,6 +68,10 @@ declare module "nz/co/siliconst/ui5/metaui/controls/DynamicHost" {
68
68
  type: string;
69
69
  defaultValue: boolean;
70
70
  };
71
+ layoutBudget: {
72
+ type: string;
73
+ defaultValue: number;
74
+ };
71
75
  inferenceStrategy: {
72
76
  type: string;
73
77
  defaultValue: string;
@@ -186,7 +190,7 @@ declare module "nz/co/siliconst/ui5/metaui/controls/DynamicHost" {
186
190
  * @param {string} [sModelName] Optional model name
187
191
  * @returns {this} The control instance for chaining
188
192
  */
189
- setBindingContext(oContext: sap.ui.model.Context | null | undefined, sModelName?: string): this;
193
+ setBindingContext(oContext: any, sModelName?: string): this;
190
194
  /**
191
195
  * Standard UI5 method override.
192
196
  * Binds the element to the given path and attaches a change listener to re-evaluate
@@ -196,7 +200,7 @@ declare module "nz/co/siliconst/ui5/metaui/controls/DynamicHost" {
196
200
  * @param {object} [mParameters] Optional mapping parameters
197
201
  * @returns {this} Reference to this instance for chaining
198
202
  */
199
- bindElement(vPath: string | Record<string, unknown>, mParameters?: object): this;
203
+ bindElement(vPath: any, mParameters?: object): this;
200
204
  /**
201
205
  * Standard UI5 Lifecycle Hook.
202
206
  * Evaluates the initial properties and spawns the GeneratorHost.
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicHost.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iDAAiD,CAAC;IACjE,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAC1C,OAAO,aAAa,MAAM,2BAA2B,CAAC;IAOtD;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;QAC5C,OAAO,CAAC,aAAa,CAA8B;QAEnD,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAgDtB;QAEF,MAAM,CAAC,QAAQ;;uBAEA,aAAa,WAAW,WAAW;UAahD;QAEF;;;WAGG;QACH,OAAO,CAAC,UAAU,CAA8B;QAEhD;;;WAGG;QACH,OAAO,CAAC,iBAAiB,CAAkB;QAE3C;;;;WAIG;QACH,OAAO,CAAC,iBAAiB;QA2BzB;;;;;;;;WAQG;QACI,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;QAMtG;;;;;;;;WAQG;QACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;QAYvF;;;;;WAKG;QACI,iBAAiB,IAAI,IAAI;QAoLhC;;;;WAIG;QACI,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,IAAI;QAqB5F;;;;;;;;;WASG;QACI,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;QAO3I;;;;;WAKG;QACI,aAAa,IAAI,OAAO;QAO/B;;;;;;WAMG;QACI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;QAO/D;;;;WAIG;QACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;QAOhD;;;;;;WAMG;QACI,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;KASpD;CAEA"}
1
+ {"version":3,"file":"DynamicHost.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iDAAiD,CAAC;IACjE,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAC1C,OAAO,aAAa,MAAM,2BAA2B,CAAC;IAOtD;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;QAC5C,OAAO,CAAC,aAAa,CAA8B;QAEnD,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiDtB;QAEF,MAAM,CAAC,QAAQ;;uBAEA,aAAa,WAAW,WAAW;UAahD;QAEF;;;WAGG;QACH,OAAO,CAAC,UAAU,CAA8B;QAEhD;;;WAGG;QACH,OAAO,CAAC,iBAAiB,CAAkB;QAE3C;;;;WAIG;QACH,OAAO,CAAC,iBAAiB;QA2BzB;;;;;;;;WAQG;QACI,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;QAMlE;;;;;;;;WAQG;QACI,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;QAY1D;;;;;WAKG;QACI,iBAAiB,IAAI,IAAI;QAoLhC;;;;WAIG;QACI,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,IAAI;QAqB5F;;;;;;;;;WASG;QACI,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;QAO3I;;;;;WAKG;QACI,aAAa,IAAI,OAAO;QAO/B;;;;;;WAMG;QACI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;QAO/D;;;;WAIG;QACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;QAOhD;;;;;;WAMG;QACI,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;KASpD;CAEA"}
@@ -1,2 +1,2 @@
1
- sap.ui.define(["sap/ui/core/Control","./host/GeneratorHost","../utils/Logger","./host/delegates/ODataDelegate","../core/SchemaBuilderRegistry"],function(t,e,i,n,a){"use strict";function s(t){return t&&t.__esModule&&typeof t.default!=="undefined"?t.default:t}const o=s(e);const r=i["Logger"];const l=n["ODataDelegate"];const c=a["SchemaBuilderRegistry"];const u=t.extend("nz.co.siliconst.ui5.metaui.controls.DynamicHost",{constructor:function e(){t.prototype.constructor.apply(this,arguments);this.odataDelegate=null;this._innerHost=null;this._initializedInner=false},renderer:{apiVersion:2,render(t,e){t.openStart("div",e);t.style("width","100%");t.style("height","100%");t.openEnd();const i=e.getAggregation("_content");if(i){t.renderControl(i)}t.close("div")}},metadata:{properties:{schemaDefinition:{type:"any",defaultValue:null},schemaDefinitions:{type:"object",defaultValue:null},schemaTarget:{type:"string",defaultValue:null},pluginRegistry:{type:"object",defaultValue:null},schemaBuilderRegistry:{type:"object",defaultValue:null},data:{type:"object",defaultValue:null,bindable:"bindable"},dataJson:{type:"string",defaultValue:null,bindable:"bindable"},liveUpdate:{type:"boolean",defaultValue:false},isValid:{type:"boolean",defaultValue:true},useMessageManager:{type:"boolean",defaultValue:false},modelName:{type:"string",defaultValue:"meta"},debugMode:{type:"boolean",defaultValue:false},editable:{type:"boolean",defaultValue:true},inferenceStrategy:{type:"string",defaultValue:"RuleBased"}},aggregations:{_content:{type:"sap.ui.core.Control",multiple:false,visibility:"hidden"}},events:{beforeSubmit:{parameters:{payload:{type:"object"},addError:{type:"function"},preventDefault:{type:"function"}}},submit:{parameters:{payload:{type:"object"},payloadJson:{type:"string"}}},cancel:{},fieldChange:{parameters:{fieldPath:{type:"string"},value:{type:"any"},payload:{type:"object"},isValid:{type:"boolean"}}},validationStateChanged:{parameters:{isValid:{type:"boolean"}}},validationError:{parameters:{fieldPath:{type:"string"},message:{type:"string"}}},validationSuccess:{parameters:{fieldPath:{type:"string"}}},error:{parameters:{message:{type:"string"},exception:{type:"object"}}}}},initODataDelegate:function t(){if(!this.odataDelegate){if(this.getBindingInfo("dataJson")){return}const t=this.getBindingInfo("data");if(t&&t.path&&t.path!==""){return}const e=this.getBindingContext("odata")||this.getBindingContext();if(e){r.debug("[MetaUI DynamicHost]",`Context found for delegate initialization: ${e.getPath()}`,"DynamicHost");if(e&&e.requestObject&&typeof e.requestObject==="function"){r.debug("[MetaUI DynamicHost]",`Context supports requestObject/getObject. Instantiating ODataDelegate.`,"DynamicHost");this.odataDelegate=new l(this,e);this.odataDelegate.syncToEngine()}else{r.debug("[MetaUI DynamicHost]",`Context does NOT support requestObject/getObject! Keys: ${Object.keys(e)}`,"DynamicHost")}}}},setBindingContext:function e(i,n){t.prototype.setBindingContext.call(this,i,n);this.initODataDelegate();return this},bindElement:function e(i,n){t.prototype.bindElement.call(this,i,n);const a=typeof i==="object"?i.model:undefined;const s=this.getElementBinding(a);if(s){s.attachChange(()=>{this.initODataDelegate()})}return this},onBeforeRendering:function e(){r.debug("[MetaUI DynamicHost]",`onBeforeRendering called. _initializedInner: ${this._initializedInner}`,"DynamicHost");this.initODataDelegate();if(!this._initializedInner){let e=this.getProperty("schemaDefinition");if(typeof e==="string"&&(e.startsWith("http://")||e.startsWith("https://"))){const i=this;if(i._fetchingSchema)return;i._fetchingSchema=true;sap.ui.require(["sap/ui/core/BusyIndicator","sap/m/MessageToast"],(i,n)=>{i.show(0);fetch(e).then(t=>{if(!t.ok)throw new Error("HTTP "+t.status);return t.json()}).then(e=>{const n=c.getBuilderFor(e);const a=n?n.build(e,this.getProperty("schemaTarget")):e;t.prototype.setProperty.call(this,"schemaDefinition",a,true);if(a.definitions){t.prototype.setProperty.call(this,"schemaDefinitions",a.definitions,true)}const s=this;s._fetchingSchema=false;i.hide();this.invalidate()}).catch(e=>{const a=this;r.warn("[MetaUI DynamicHost]","Failed to fetch remote schema: "+e,"DynamicHost");if(n)n.show("Failed to fetch remote schema");t.prototype.setProperty.call(this,"schemaDefinition",null,true);a._fetchingSchema=false;i.hide();this.invalidate()})});return}let i=e;if(i&&typeof i==="string"&&i.trim().startsWith("{")){try{i=JSON.parse(i)}catch(t){}}if(i&&typeof i==="object"){const e=c.getBuilderFor(i);if(e){i=e.build(i,this.getProperty("schemaTarget"));t.prototype.setProperty.call(this,"schemaDefinition",i,true);if(i.definitions){t.prototype.setProperty.call(this,"schemaDefinitions",i.definitions,true)}}}const n=this.getProperty("dataJson");const a=this.getProperty("data");let s=!!i;if(s&&typeof i==="object"&&Object.keys(i).length===0){s=false}const l=!!n||!!a;if(l&&this.getProperty("inferenceStrategy")==="AI"){const e=this;if(e._fetchingSchema)return;e._fetchingSchema=true;let s=a;if(!s&&n){try{s=JSON.parse(n)}catch(t){r.trace("[DynamicHost] Ignored invalid dataJson parse: "+t.message)}}if(s){sap.ui.require(["sap/ui/core/BusyIndicator","sap/m/MessageToast","nz/co/siliconst/ui5/metaui/ai/AIConfig"],(e,n,a)=>{e.show(0);const o=a.getProxy();o.generateSchema(s,i||undefined).then(i=>{const n=this;t.prototype.setProperty.call(this,"schemaDefinition",i,true);n._fetchingSchema=false;e.hide();this.invalidate()}).catch(i=>{const a=this;r.warn("[MetaUI DynamicHost]","AI inference failed, falling back to RuleBased. Error: "+i.message,"DynamicHost");if(n)n.show("AI Inference failed, using fallback.");t.prototype.setProperty.call(this,"inferenceStrategy","RuleBased",true);a._fetchingSchema=false;e.hide();this.invalidate()})});return}}r.debug("[MetaUI DynamicHost]",`Evaluating boot. hasSchema: ${s}, hasData: ${l}`,"DynamicHost");if(s||l){if(this.getProperty("debugMode")){r.debug("[MetaUI DynamicHost]",`Booting inner host. hasSchema: ${s}, hasData: ${l}`,"DynamicHost")}this._innerHost=new o;const e=this.getMetadata().getProperties();for(const i in e){if(i==="inferenceStrategy")continue;const e=t.prototype.getProperty.call(this,i);if(e!==null&&e!==undefined){if(i==="schemaDefinitions"){r.debug(`[MetaUI DynamicHost] Proxying schemaDefinitions: ${Object.keys(e)}`,"","DynamicHost")}this._innerHost.setProperty(i,e)}else if(i==="schemaDefinitions"){r.warn(`[MetaUI DynamicHost] Warning: schemaDefinitions is null/undefined in Wrapper. Defaulting to empty object in GeneratorHost.`,"","DynamicHost")}}this.setAggregation("_content",this._innerHost);const i=this.getMetadata().getEvents();for(const e in i){this._innerHost.attachEvent(e,i=>{if(e==="submit"||e==="fieldChange"){const n=i.getParameters();if(n.payload){const i=this.getProperty("liveUpdate")===true;if(e==="submit"||i){t.prototype.setProperty.call(this,"data",n.payload,true);const e=n.payloadJson||JSON.stringify(n.payload,null,2);t.prototype.setProperty.call(this,"dataJson",e,true)}}}this.fireEvent(e,i.getParameters())})}this._initializedInner=true}}},setProperty:function e(i,n,a){if(i==="data"||i==="dataJson"||i==="schemaDefinition"||i==="schemaDefinitions"){if(this.getProperty("debugMode")){r.debug("[MetaUI DynamicHost]",`Wrapper received setProperty: ${i}`,"DynamicHost")}}t.prototype.setProperty.call(this,i,n,a);if(this._innerHost&&i!=="inferenceStrategy"){this._innerHost.setProperty(i,n,a)}else if(i==="data"||i==="dataJson"||i==="schemaDefinition"||i==="schemaDefinitions"){if(this.getProperty("debugMode")){r.debug("[MetaUI DynamicHost]",`_innerHost not yet initialized when ${i} was set. Booting will happen on next render.`,"DynamicHost")}}return this},openInDialog:function t(e,i,n,a,s){if(!this._innerHost){this.onBeforeRendering()}this._innerHost?.openInDialog(e,i,n,a,s)},triggerSubmit:function t(){if(!this._innerHost){return false}return this._innerHost.triggerSubmit()},addCustomError:function t(e,i){const n=this._innerHost;if(n&&typeof n.addCustomError==="function"){n.addCustomError(e,i)}},clearCustomError:function t(e){const i=this._innerHost;if(i&&typeof i.clearCustomError==="function"){i.clearCustomError(e)}},getProperty:function e(i){if(i==="outputData"){i="data"}if(this._innerHost&&(i==="data"||i==="dataJson")){return this._innerHost.getProperty(i)}return t.prototype.getProperty.call(this,i)}});return u});
1
+ sap.ui.define(["sap/ui/core/Control","./host/GeneratorHost","../utils/Logger","./host/delegates/ODataDelegate","../core/SchemaBuilderRegistry"],function(t,e,i,n,a){"use strict";function s(t){return t&&t.__esModule&&typeof t.default!=="undefined"?t.default:t}const o=s(e);const r=i["Logger"];const l=n["ODataDelegate"];const c=a["SchemaBuilderRegistry"];const u=t.extend("nz.co.siliconst.ui5.metaui.controls.DynamicHost",{constructor:function e(){t.prototype.constructor.apply(this,arguments);this.odataDelegate=null;this._innerHost=null;this._initializedInner=false},renderer:{apiVersion:2,render(t,e){t.openStart("div",e);t.style("width","100%");t.style("height","100%");t.openEnd();const i=e.getAggregation("_content");if(i){t.renderControl(i)}t.close("div")}},metadata:{properties:{schemaDefinition:{type:"any",defaultValue:null},schemaDefinitions:{type:"object",defaultValue:null},schemaTarget:{type:"string",defaultValue:null},pluginRegistry:{type:"object",defaultValue:null},schemaBuilderRegistry:{type:"object",defaultValue:null},data:{type:"object",defaultValue:null,bindable:"bindable"},dataJson:{type:"string",defaultValue:null,bindable:"bindable"},liveUpdate:{type:"boolean",defaultValue:false},isValid:{type:"boolean",defaultValue:true},useMessageManager:{type:"boolean",defaultValue:false},modelName:{type:"string",defaultValue:"meta"},debugMode:{type:"boolean",defaultValue:false},editable:{type:"boolean",defaultValue:true},layoutBudget:{type:"int",defaultValue:0},inferenceStrategy:{type:"string",defaultValue:"RuleBased"}},aggregations:{_content:{type:"sap.ui.core.Control",multiple:false,visibility:"hidden"}},events:{beforeSubmit:{parameters:{payload:{type:"object"},addError:{type:"function"},preventDefault:{type:"function"}}},submit:{parameters:{payload:{type:"object"},payloadJson:{type:"string"}}},cancel:{},fieldChange:{parameters:{fieldPath:{type:"string"},value:{type:"any"},payload:{type:"object"},isValid:{type:"boolean"}}},validationStateChanged:{parameters:{isValid:{type:"boolean"}}},validationError:{parameters:{fieldPath:{type:"string"},message:{type:"string"}}},validationSuccess:{parameters:{fieldPath:{type:"string"}}},error:{parameters:{message:{type:"string"},exception:{type:"object"}}}}},initODataDelegate:function t(){if(!this.odataDelegate){if(this.getBindingInfo("dataJson")){return}const t=this.getBindingInfo("data");if(t&&t.path&&t.path!==""){return}const e=this.getBindingContext("odata")||this.getBindingContext();if(e){r.debug("[MetaUI DynamicHost]",`Context found for delegate initialization: ${e.getPath()}`,"DynamicHost");if(e&&e.requestObject&&typeof e.requestObject==="function"){r.debug("[MetaUI DynamicHost]",`Context supports requestObject/getObject. Instantiating ODataDelegate.`,"DynamicHost");this.odataDelegate=new l(this,e);this.odataDelegate.syncToEngine()}else{r.debug("[MetaUI DynamicHost]",`Context does NOT support requestObject/getObject! Keys: ${Object.keys(e)}`,"DynamicHost")}}}},setBindingContext:function e(i,n){t.prototype.setBindingContext.call(this,i,n);this.initODataDelegate();return this},bindElement:function e(i,n){t.prototype.bindElement.call(this,i,n);const a=typeof i==="object"?i.model:undefined;const s=this.getElementBinding(a);if(s){s.attachChange(()=>{this.initODataDelegate()})}return this},onBeforeRendering:function e(){r.debug("[MetaUI DynamicHost]",`onBeforeRendering called. _initializedInner: ${this._initializedInner}`,"DynamicHost");this.initODataDelegate();if(!this._initializedInner){let e=this.getProperty("schemaDefinition");if(typeof e==="string"&&(e.startsWith("http://")||e.startsWith("https://"))){const i=this;if(i._fetchingSchema)return;i._fetchingSchema=true;sap.ui.require(["sap/ui/core/BusyIndicator","sap/m/MessageToast"],(i,n)=>{i.show(0);fetch(e).then(t=>{if(!t.ok)throw new Error("HTTP "+t.status);return t.json()}).then(e=>{const n=c.getBuilderFor(e);const a=n?n.build(e,this.getProperty("schemaTarget")):e;t.prototype.setProperty.call(this,"schemaDefinition",a,true);if(a.definitions){t.prototype.setProperty.call(this,"schemaDefinitions",a.definitions,true)}const s=this;s._fetchingSchema=false;i.hide();this.invalidate()}).catch(e=>{const a=this;r.warn("[MetaUI DynamicHost]","Failed to fetch remote schema: "+e,"DynamicHost");if(n)n.show("Failed to fetch remote schema");t.prototype.setProperty.call(this,"schemaDefinition",null,true);a._fetchingSchema=false;i.hide();this.invalidate()})});return}let i=e;if(i&&typeof i==="string"&&i.trim().startsWith("{")){try{i=JSON.parse(i)}catch(t){}}if(i&&typeof i==="object"){const e=c.getBuilderFor(i);if(e){i=e.build(i,this.getProperty("schemaTarget"));t.prototype.setProperty.call(this,"schemaDefinition",i,true);if(i.definitions){t.prototype.setProperty.call(this,"schemaDefinitions",i.definitions,true)}}}const n=this.getProperty("dataJson");const a=this.getProperty("data");let s=!!i;if(s&&typeof i==="object"&&Object.keys(i).length===0){s=false}const l=!!n||!!a;if(l&&this.getProperty("inferenceStrategy")==="AI"){const e=this;if(e._fetchingSchema)return;e._fetchingSchema=true;let s=a;if(!s&&n){try{s=JSON.parse(n)}catch(t){r.debug("[DynamicHost] Ignored invalid dataJson parse: "+t.message)}}if(s){sap.ui.require(["sap/ui/core/BusyIndicator","sap/m/MessageToast","nz/co/siliconst/ui5/metaui/ai/AIConfig"],(e,n,a)=>{e.show(0);const o=a.getProxy();o.generateSchema(s,i||undefined).then(i=>{const n=this;t.prototype.setProperty.call(this,"schemaDefinition",i,true);n._fetchingSchema=false;e.hide();this.invalidate()}).catch(i=>{const a=this;r.warn("[MetaUI DynamicHost]","AI inference failed, falling back to RuleBased. Error: "+i.message,"DynamicHost");if(n)n.show("AI Inference failed, using fallback.");t.prototype.setProperty.call(this,"inferenceStrategy","RuleBased",true);a._fetchingSchema=false;e.hide();this.invalidate()})});return}}r.debug("[MetaUI DynamicHost]",`Evaluating boot. hasSchema: ${s}, hasData: ${l}`,"DynamicHost");if(s||l){if(this.getProperty("debugMode")){r.debug("[MetaUI DynamicHost]",`Booting inner host. hasSchema: ${s}, hasData: ${l}`,"DynamicHost")}this._innerHost=new o;const e=this.getMetadata().getProperties();for(const i in e){if(i==="inferenceStrategy")continue;const e=t.prototype.getProperty.call(this,i);if(e!==null&&e!==undefined){if(i==="schemaDefinitions"){r.debug(`[MetaUI DynamicHost] Proxying schemaDefinitions: ${Object.keys(e)}`,"","DynamicHost")}this._innerHost.setProperty(i,e)}else if(i==="schemaDefinitions"){r.warn(`[MetaUI DynamicHost] Warning: schemaDefinitions is null/undefined in Wrapper. Defaulting to empty object in GeneratorHost.`,"","DynamicHost")}}this.setAggregation("_content",this._innerHost);const i=this.getMetadata().getEvents();for(const e in i){this._innerHost.attachEvent(e,i=>{if(e==="submit"||e==="fieldChange"){const n=i.getParameters();if(n.payload){const i=this.getProperty("liveUpdate")===true;if(e==="submit"||i){t.prototype.setProperty.call(this,"data",n.payload,true);const e=n.payloadJson||JSON.stringify(n.payload,null,2);t.prototype.setProperty.call(this,"dataJson",e,true)}}}this.fireEvent(e,i.getParameters())})}this._initializedInner=true}}},setProperty:function e(i,n,a){if(i==="data"||i==="dataJson"||i==="schemaDefinition"||i==="schemaDefinitions"){if(this.getProperty("debugMode")){r.debug("[MetaUI DynamicHost]",`Wrapper received setProperty: ${i}`,"DynamicHost")}}t.prototype.setProperty.call(this,i,n,a);if(this._innerHost&&i!=="inferenceStrategy"){this._innerHost.setProperty(i,n,a)}else if(i==="data"||i==="dataJson"||i==="schemaDefinition"||i==="schemaDefinitions"){if(this.getProperty("debugMode")){r.debug("[MetaUI DynamicHost]",`_innerHost not yet initialized when ${i} was set. Booting will happen on next render.`,"DynamicHost")}}return this},openInDialog:function t(e,i,n,a,s){if(!this._innerHost){this.onBeforeRendering()}this._innerHost?.openInDialog(e,i,n,a,s)},triggerSubmit:function t(){if(!this._innerHost){return false}return this._innerHost.triggerSubmit()},addCustomError:function t(e,i){const n=this._innerHost;if(n&&typeof n.addCustomError==="function"){n.addCustomError(e,i)}},clearCustomError:function t(e){const i=this._innerHost;if(i&&typeof i.clearCustomError==="function"){i.clearCustomError(e)}},getProperty:function e(i){if(i==="outputData"){i="data"}if(this._innerHost&&(i==="data"||i==="dataJson")){return this._innerHost.getProperty(i)}return t.prototype.getProperty.call(this,i)}});return u});
2
2
  //# sourceMappingURL=DynamicHost.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicHost.js","names":["GeneratorHost","_interopRequireDefault","__GeneratorHost","Logger","___utils_Logger","ODataDelegate","___host_delegates_ODataDelegate","SchemaBuilderRegistry","___core_SchemaBuilderRegistry","DynamicHost","Control","extend","constructor","prototype","apply","this","arguments","odataDelegate","_innerHost","_initializedInner","renderer","apiVersion","render","rm","control","openStart","style","openEnd","content","getAggregation","renderControl","close","metadata","properties","schemaDefinition","type","defaultValue","schemaDefinitions","schemaTarget","pluginRegistry","schemaBuilderRegistry","data","bindable","dataJson","liveUpdate","isValid","useMessageManager","modelName","debugMode","editable","inferenceStrategy","aggregations","_content","multiple","visibility","events","beforeSubmit","parameters","payload","addError","preventDefault","submit","payloadJson","cancel","fieldChange","fieldPath","value","validationStateChanged","validationError","message","validationSuccess","error","exception","initODataDelegate","_initODataDelegate","getBindingInfo","dataBinding","path","oContext","getBindingContext","debug","getPath","requestObject","syncToEngine","Object","keys","setBindingContext","_setBindingContext","sModelName","Control.prototype.setBindingContext.call","bindElement","_bindElement","vPath","mParameters","Control.prototype.bindElement.call","model","undefined","oBinding","getElementBinding","attachChange","onBeforeRendering","_onBeforeRendering","schemaRaw","getProperty","startsWith","self","_fetchingSchema","sap","ui","require","BusyIndicator","MessageToast","show","fetch","then","res","ok","Error","status","json","plugin","getBuilderFor","finalSchema","build","Control.prototype.setProperty.call","definitions","hide","invalidate","catch","err","warn","schema","trim","JSON","parse","e","hasSchema","length","hasData","rawDataObj","trace","AIConfig","proxy","getProxy","generateSchema","generatedSchema","props","getMetadata","getProperties","propName","val","Control.prototype.getProperty.call","setProperty","setAggregation","getEvents","eventName","attachEvent","oEvent","params","getParameters","isLive","str","stringify","fireEvent","_setProperty","propertyName","suppressInvalidate","openInDialog","_openInDialog","title","submitButtonText","cancelButtonText","dialogWidth","parentView","triggerSubmit","_triggerSubmit","addCustomError","_addCustomError","inner","clearCustomError","_clearCustomError","_getProperty"],"sources":["DynamicHost.ts"],"sourcesContent":["import Control from \"sap/ui/core/Control\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport GeneratorHost from \"./host/GeneratorHost\";\nimport { Logger } from \"../utils/Logger\";\nimport { ODataDelegate } from \"./host/delegates/ODataDelegate\";\nimport ODataV4Context from \"sap/ui/model/odata/v4/Context\";\nimport { SchemaBuilderRegistry } from \"../core/SchemaBuilderRegistry\";\n\n/**\n * A transparent wrapper control (Facade) that automatically chooses between Explicit Schema Mode \n * and Inference Mode based on the presence of a 'schemaDefinition'.\n * \n * This maintains total architectural separation of the modes without forcing developers to \n * use different XML tags.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nexport default class DynamicHost extends Control {\n private odataDelegate: ODataDelegate | null = null;\n\n static readonly metadata = {\n properties: {\n schemaDefinition: { type: \"any\", defaultValue: null },\n schemaDefinitions: { type: \"object\", defaultValue: null },\n schemaTarget: { type: \"string\", defaultValue: null },\n pluginRegistry: { type: \"object\", defaultValue: null },\n schemaBuilderRegistry: { type: \"object\", defaultValue: null },\n data: { type: \"object\", defaultValue: null, bindable: \"bindable\" },\n dataJson: { type: \"string\", defaultValue: null, bindable: \"bindable\" },\n liveUpdate: { type: \"boolean\", defaultValue: false },\n isValid: { type: \"boolean\", defaultValue: true },\n useMessageManager: { type: \"boolean\", defaultValue: false },\n modelName: { type: \"string\", defaultValue: \"meta\" },\n debugMode: { type: \"boolean\", defaultValue: false },\n editable: { type: \"boolean\", defaultValue: true },\n inferenceStrategy: { type: \"string\", defaultValue: \"RuleBased\" }\n },\n aggregations: {\n _content: { type: \"sap.ui.core.Control\", multiple: false, visibility: \"hidden\" }\n },\n events: {\n beforeSubmit: {\n parameters: {\n payload: { type: \"object\" },\n addError: { type: \"function\" },\n preventDefault: { type: \"function\" }\n }\n },\n submit: {\n parameters: {\n payload: { type: \"object\" },\n payloadJson: { type: \"string\" }\n }\n },\n cancel: {},\n fieldChange: {\n parameters: {\n fieldPath: { type: \"string\" },\n value: { type: \"any\" },\n payload: { type: \"object\" },\n isValid: { type: \"boolean\" }\n }\n },\n validationStateChanged: { parameters: { isValid: { type: \"boolean\" } } },\n validationError: { parameters: { fieldPath: { type: \"string\" }, message: { type: \"string\" } } },\n validationSuccess: { parameters: { fieldPath: { type: \"string\" } } },\n error: { parameters: { message: { type: \"string\" }, exception: { type: \"object\" } } }\n }\n };\n\n static renderer = {\n apiVersion: 2,\n render(rm: RenderManager, control: DynamicHost) {\n rm.openStart(\"div\", control);\n rm.style(\"width\", \"100%\");\n rm.style(\"height\", \"100%\");\n rm.openEnd();\n\n const content = control.getAggregation(\"_content\") as Control;\n if (content) {\n rm.renderControl(content);\n }\n\n rm.close(\"div\");\n }\n };\n\n /**\n * Internal reference to the generated inner host instance.\n * @private\n */\n private _innerHost: GeneratorHost | null = null;\n\n /**\n * Flag indicating if the inner host has been initialized.\n * @private\n */\n private _initializedInner: boolean = false;\n\n /**\n * Initializes the OData Delegate if an OData context is detected.\n * This allows DynamicHost to seamlessly synchronize metadata and properties from an OData model.\n * @private\n */\n private initODataDelegate(): void {\n if (!this.odataDelegate) {\n // Guard: If the user explicitly bound dataJson, do not steal the context.\n if (this.getBindingInfo(\"dataJson\")) {\n return;\n }\n\n // Guard: If the user explicitly bound 'data' to a specific property path, do not steal the context.\n const dataBinding = this.getBindingInfo(\"data\") as any;\n if (dataBinding && dataBinding.path && dataBinding.path !== \"\") {\n return;\n }\n\n const oContext = this.getBindingContext(\"odata\") || this.getBindingContext();\n if (oContext) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context found for delegate initialization: ${oContext.getPath()}`, \"DynamicHost\");\n if (oContext && (oContext as ODataV4Context).requestObject && typeof (oContext as ODataV4Context).requestObject === \"function\") {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context supports requestObject/getObject. Instantiating ODataDelegate.`, \"DynamicHost\");\n this.odataDelegate = new ODataDelegate(this, oContext as ODataV4Context);\n this.odataDelegate.syncToEngine();\n } else {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context does NOT support requestObject/getObject! Keys: ${Object.keys(oContext)}`, \"DynamicHost\");\n }\n }\n }\n }\n\n /**\n * Standard UI5 method override.\n * Sets the binding context for the control and attempts to initialize the OData delegate\n * if the context points to an OData model.\n * \n * @param {sap.ui.model.Context | null | undefined} oContext The binding context object\n * @param {string} [sModelName] Optional model name\n * @returns {this} The control instance for chaining\n */\n public setBindingContext(oContext: sap.ui.model.Context | null | undefined, sModelName?: string): this {\n super.setBindingContext(oContext, sModelName);\n this.initODataDelegate();\n return this;\n }\n\n /**\n * Standard UI5 method override.\n * Binds the element to the given path and attaches a change listener to re-evaluate\n * the OData delegate when the element binding resolves.\n * \n * @param {string | Record<string, unknown>} vPath The binding path or configuration object\n * @param {object} [mParameters] Optional mapping parameters\n * @returns {this} Reference to this instance for chaining\n */\n public bindElement(vPath: string | Record<string, unknown>, mParameters?: object): this {\n super.bindElement(vPath, mParameters);\n const sModelName = typeof vPath === \"object\" ? vPath.model : undefined;\n const oBinding = this.getElementBinding(sModelName);\n if (oBinding) {\n oBinding.attachChange(() => {\n this.initODataDelegate();\n });\n }\n return this;\n }\n\n /**\n * Standard UI5 Lifecycle Hook.\n * Evaluates the initial properties and spawns the GeneratorHost.\n * It handles the complex lifecycle task of copying all bindings, raw properties, and event listeners \n * down to the inner host perfectly transparently.\n */\n public onBeforeRendering(): void {\n Logger.debug(\"[MetaUI DynamicHost]\", `onBeforeRendering called. _initializedInner: ${this._initializedInner}`, \"DynamicHost\");\n\n this.initODataDelegate();\n\n if (!this._initializedInner) {\n let schemaRaw = this.getProperty(\"schemaDefinition\");\n\n // 1. URL Detection & Fetching\n if (typeof schemaRaw === \"string\" && (schemaRaw.startsWith(\"http://\") || schemaRaw.startsWith(\"https://\"))) {\n const self = this as unknown as { _fetchingSchema?: boolean };\n if (self._fetchingSchema) return; // Prevent re-entry\n self._fetchingSchema = true;\n \n sap.ui.require([\"sap/ui/core/BusyIndicator\", \"sap/m/MessageToast\"], (BusyIndicator: { show: (n: number) => void, hide: () => void }, MessageToast: { show: (s: string) => void }) => {\n BusyIndicator.show(0);\n fetch(schemaRaw as string)\n .then(res => {\n if (!res.ok) throw new Error(\"HTTP \" + res.status);\n return res.json();\n })\n .then(json => {\n const plugin = SchemaBuilderRegistry.getBuilderFor(json);\n const finalSchema = plugin ? plugin.build(json, this.getProperty(\"schemaTarget\")) : json;\n super.setProperty(\"schemaDefinition\", finalSchema, true);\n if (finalSchema.definitions) {\n super.setProperty(\"schemaDefinitions\", finalSchema.definitions, true);\n }\n const self = this as unknown as { _fetchingSchema?: boolean };\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); // Force re-render with resolved schema\n })\n .catch(err => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n Logger.warn(\"[MetaUI DynamicHost]\", \"Failed to fetch remote schema: \" + err, \"DynamicHost\");\n if (MessageToast) MessageToast.show(\"Failed to fetch remote schema\");\n super.setProperty(\"schemaDefinition\", null, true); // Fallback to full inference\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate();\n });\n });\n return; // Abort this render cycle until fetch completes\n }\n\n // 2. Local Plugin Detection (Stringified JSON or Raw Object)\n let schema = schemaRaw;\n if (schema && typeof schema === \"string\" && (schema as string).trim().startsWith(\"{\")) {\n try {\n schema = JSON.parse(schema);\n } catch (e) {\n // Ignore, let standard validation catch it\n }\n }\n\n if (schema && typeof schema === \"object\") {\n const plugin = SchemaBuilderRegistry.getBuilderFor(schema);\n if (plugin) {\n schema = plugin.build(schema, this.getProperty(\"schemaTarget\"));\n // Silently update the wrapper property so the inner host gets the final parsed MetaUI format\n super.setProperty(\"schemaDefinition\", schema, true);\n if (schema.definitions) {\n super.setProperty(\"schemaDefinitions\", schema.definitions, true);\n }\n }\n }\n\n const dataJson = this.getProperty(\"dataJson\");\n const data = this.getProperty(\"data\");\n\n let hasSchema = !!schema;\n if (hasSchema && typeof schema === \"object\" && Object.keys(schema).length === 0) {\n hasSchema = false; // Treat empty object as no schema\n }\n\n const hasData = !!dataJson || !!data;\n\n // 3. AI Schema Inference Detection\n if (hasData && this.getProperty(\"inferenceStrategy\") === \"AI\") {\n const self = this as unknown as { _fetchingSchema?: boolean };\n if (self._fetchingSchema) return; // Prevent re-entry\n self._fetchingSchema = true;\n\n let rawDataObj = data;\n if (!rawDataObj && dataJson) {\n try { rawDataObj = JSON.parse(dataJson as string); } catch(e: Error) { Logger.trace(\"[DynamicHost] Ignored invalid dataJson parse: \" + e.message); }\n }\n\n if (rawDataObj) {\n sap.ui.require([\n \"sap/ui/core/BusyIndicator\", \n \"sap/m/MessageToast\",\n \"nz/co/siliconst/ui5/metaui/ai/AIConfig\"\n ], (BusyIndicator: { show: (n: number) => void, hide: () => void }, MessageToast: { show: (s: string) => void }, AIConfig: { getProxy: () => { generateSchema: (d: unknown, s?: unknown) => Promise<unknown> } }) => {\n BusyIndicator.show(0);\n const proxy = AIConfig.getProxy();\n \n proxy.generateSchema(rawDataObj, schema || undefined)\n .then((generatedSchema: unknown) => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n super.setProperty(\"schemaDefinition\", generatedSchema, true);\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); // Force re-render with the new schema\n })\n .catch((err: Error) => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n Logger.warn(\"[MetaUI DynamicHost]\", \"AI inference failed, falling back to RuleBased. Error: \" + err.message, \"DynamicHost\");\n if (MessageToast) MessageToast.show(\"AI Inference failed, using fallback.\");\n super.setProperty(\"inferenceStrategy\", \"RuleBased\", true); // Fallback to normal inference\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); \n });\n });\n return; // Abort render cycle until AI is done\n }\n }\n\n Logger.debug(\"[MetaUI DynamicHost]\", `Evaluating boot. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n\n // Only boot if we have either a schema or some data to infer from\n if (hasSchema || hasData) {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Booting inner host. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n }\n // The architectural Facade router logic:\n // We've simplified this! We no longer use HostFactory or separate subclasses.\n // GeneratorHost is fully capable of inferring the schema if none is provided.\n this._innerHost = new GeneratorHost();\n\n // 1. Forward all static values to the spawned host BEFORE mounting.\n // Since we no longer use bindProperty, it's perfectly safe to set raw properties before mounting.\n const props = this.getMetadata().getProperties();\n for (const propName in props) {\n if (propName === \"inferenceStrategy\") continue;\n const val = super.getProperty(propName);\n if (val !== null && val !== undefined) {\n if (propName === \"schemaDefinitions\") {\n Logger.debug(`[MetaUI DynamicHost] Proxying schemaDefinitions: ${Object.keys(val)}`, \"\", \"DynamicHost\");\n }\n this._innerHost.setProperty(propName, val);\n } else if (propName === \"schemaDefinitions\") {\n Logger.warn(`[MetaUI DynamicHost] Warning: schemaDefinitions is null/undefined in Wrapper. Defaulting to empty object in GeneratorHost.`, \"\", \"DynamicHost\");\n }\n }\n\n // 2. Mount so it inherits models and triggers lifecycle.\n this.setAggregation(\"_content\", this._innerHost);\n\n // 3. Forward all event subscriptions.\n // By proxying the events upwards, the developer can subscribe to `<meta:DynamicHost submit=\"...\">` \n // and perfectly receive the inner host's submission event.\n const events = this.getMetadata().getEvents();\n for (const eventName in events) {\n this._innerHost.attachEvent(eventName, (oEvent: sap.ui.base.Event) => {\n // Natively push updated payload out to any bound Fiori Element properties.\n // Using super.setProperty prevents an infinite loop back down to _innerHost.\n if (eventName === \"submit\" || eventName === \"fieldChange\") {\n const params = oEvent.getParameters();\n if (params.payload) {\n const isLive = this.getProperty(\"liveUpdate\") === true;\n if (eventName === \"submit\" || isLive) {\n super.setProperty(\"data\", params.payload, true);\n\n const str = params.payloadJson || JSON.stringify(params.payload, null, 2);\n super.setProperty(\"dataJson\", str, true);\n }\n }\n }\n this.fireEvent(eventName, oEvent.getParameters());\n });\n }\n\n this._initializedInner = true;\n }\n }\n }\n\n /**\n * Overrides standard UI5 setProperty to act as a transparent proxy.\n * When a property is updated on the wrapper (either programmatically or via a binding update),\n * it instantly mirrors that value down to the inner instantiated host.\n */\n public setProperty(propertyName: string, value: unknown, suppressInvalidate?: boolean): this {\n if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\" || propertyName === \"schemaDefinitions\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Wrapper received setProperty: ${propertyName}`, \"DynamicHost\");\n }\n }\n super.setProperty(propertyName, value, suppressInvalidate);\n if (this._innerHost && propertyName !== \"inferenceStrategy\") {\n this._innerHost.setProperty(propertyName, value, suppressInvalidate);\n } else if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\" || propertyName === \"schemaDefinitions\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `_innerHost not yet initialized when ${propertyName} was set. Booting will happen on next render.`, \"DynamicHost\");\n }\n }\n return this;\n }\n\n\n\n\n\n /**\n * Programmatic API support. Routes dialog commands down to the spawned inner host.\n * If the inner host has not booted yet, it forces initialization immediately.\n * \n * @param {string} [title=\"Form\"] The title of the dialog\n * @param {string} [submitButtonText=\"OK\"] The text for the primary action button\n * @param {string} [cancelButtonText=\"Cancel\"] The text for the cancel button\n * @param {string} [dialogWidth=\"auto\"] The width of the dialog\n * @param {sap.ui.core.Control} [parentView] The parent view to attach the dialog to for model inheritance.\n */\n public openInDialog(title?: string, submitButtonText?: string, cancelButtonText?: string, dialogWidth?: string, parentView?: Control): void {\n if (!this._innerHost) {\n this.onBeforeRendering(); // Force init if they bypassed UI5 rendering\n }\n this._innerHost?.openInDialog(title, submitButtonText, cancelButtonText, dialogWidth, parentView);\n }\n\n /**\n * Proxies submission triggering down to the instantiated generator host.\n * Evaluates the internal Engine validation suite and returns true if structurally sound.\n * \n * @returns {boolean} True if the internal payload passes schema validation, false otherwise.\n */\n public triggerSubmit(): boolean {\n if (!this._innerHost) {\n return false;\n }\n return this._innerHost.triggerSubmit();\n }\n\n /**\n * Injects a custom error message onto a specific field.\n * Useful for injecting custom backend validation errors.\n * \n * @param {string} fieldPath The schema key path to target.\n * @param {string} message The custom error message to display.\n */\n public addCustomError(fieldPath: string, message: string): void {\n const inner = this._innerHost as unknown as { addCustomError?: (p: string, m: string) => void };\n if (inner && typeof inner.addCustomError === \"function\") {\n inner.addCustomError(fieldPath, message);\n }\n }\n\n /**\n * Clears a custom error message from a specific field.\n * \n * @param {string} fieldPath The schema key path to target.\n */\n public clearCustomError(fieldPath: string): void {\n const inner = this._innerHost as unknown as { clearCustomError?: (p: string) => void };\n if (inner && typeof inner.clearCustomError === \"function\") {\n inner.clearCustomError(fieldPath);\n }\n }\n\n /**\n * Overrides standard UI5 getProperty to transparently pull extracted data from the inner host.\n * Ensures that querying the DynamicHost facade for `data` always yields the freshest payload.\n * \n * @param {string} propertyName The name of the property to retrieve\n * @returns {unknown} The property value\n */\n public getProperty(propertyName: string): unknown {\n if (propertyName === \"outputData\") {\n propertyName = \"data\"; // Forward deprecated outputData to data\n }\n if (this._innerHost && (propertyName === \"data\" || propertyName === \"dataJson\")) {\n return this._innerHost.getProperty(propertyName);\n }\n return super.getProperty(propertyName);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DynamicHost.js","names":["GeneratorHost","_interopRequireDefault","__GeneratorHost","Logger","___utils_Logger","ODataDelegate","___host_delegates_ODataDelegate","SchemaBuilderRegistry","___core_SchemaBuilderRegistry","DynamicHost","Control","extend","constructor","prototype","apply","this","arguments","odataDelegate","_innerHost","_initializedInner","renderer","apiVersion","render","rm","control","openStart","style","openEnd","content","getAggregation","renderControl","close","metadata","properties","schemaDefinition","type","defaultValue","schemaDefinitions","schemaTarget","pluginRegistry","schemaBuilderRegistry","data","bindable","dataJson","liveUpdate","isValid","useMessageManager","modelName","debugMode","editable","layoutBudget","inferenceStrategy","aggregations","_content","multiple","visibility","events","beforeSubmit","parameters","payload","addError","preventDefault","submit","payloadJson","cancel","fieldChange","fieldPath","value","validationStateChanged","validationError","message","validationSuccess","error","exception","initODataDelegate","_initODataDelegate","getBindingInfo","dataBinding","path","oContext","getBindingContext","debug","getPath","requestObject","syncToEngine","Object","keys","setBindingContext","_setBindingContext","sModelName","Control.prototype.setBindingContext.call","bindElement","_bindElement","vPath","mParameters","Control.prototype.bindElement.call","model","undefined","oBinding","getElementBinding","attachChange","onBeforeRendering","_onBeforeRendering","schemaRaw","getProperty","startsWith","self","_fetchingSchema","sap","ui","require","BusyIndicator","MessageToast","show","fetch","then","res","ok","Error","status","json","plugin","getBuilderFor","finalSchema","build","Control.prototype.setProperty.call","definitions","hide","invalidate","catch","err","warn","schema","trim","JSON","parse","e","hasSchema","length","hasData","rawDataObj","AIConfig","proxy","getProxy","generateSchema","generatedSchema","props","getMetadata","getProperties","propName","val","Control.prototype.getProperty.call","setProperty","setAggregation","getEvents","eventName","attachEvent","oEvent","params","getParameters","isLive","str","stringify","fireEvent","_setProperty","propertyName","suppressInvalidate","openInDialog","_openInDialog","title","submitButtonText","cancelButtonText","dialogWidth","parentView","triggerSubmit","_triggerSubmit","addCustomError","_addCustomError","inner","clearCustomError","_clearCustomError","_getProperty"],"sources":["DynamicHost.ts"],"sourcesContent":["import Control from \"sap/ui/core/Control\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport GeneratorHost from \"./host/GeneratorHost\";\nimport { Logger } from \"../utils/Logger\";\nimport { ODataDelegate } from \"./host/delegates/ODataDelegate\";\nimport ODataV4Context from \"sap/ui/model/odata/v4/Context\";\nimport { SchemaBuilderRegistry } from \"../core/SchemaBuilderRegistry\";\n\n/**\n * A transparent wrapper control (Facade) that automatically chooses between Explicit Schema Mode \n * and Inference Mode based on the presence of a 'schemaDefinition'.\n * \n * This maintains total architectural separation of the modes without forcing developers to \n * use different XML tags.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nexport default class DynamicHost extends Control {\n private odataDelegate: ODataDelegate | null = null;\n\n static readonly metadata = {\n properties: {\n schemaDefinition: { type: \"any\", defaultValue: null },\n schemaDefinitions: { type: \"object\", defaultValue: null },\n schemaTarget: { type: \"string\", defaultValue: null },\n pluginRegistry: { type: \"object\", defaultValue: null },\n schemaBuilderRegistry: { type: \"object\", defaultValue: null },\n data: { type: \"object\", defaultValue: null, bindable: \"bindable\" },\n dataJson: { type: \"string\", defaultValue: null, bindable: \"bindable\" },\n liveUpdate: { type: \"boolean\", defaultValue: false },\n isValid: { type: \"boolean\", defaultValue: true },\n useMessageManager: { type: \"boolean\", defaultValue: false },\n modelName: { type: \"string\", defaultValue: \"meta\" },\n debugMode: { type: \"boolean\", defaultValue: false },\n editable: { type: \"boolean\", defaultValue: true },\n layoutBudget: { type: \"int\", defaultValue: 0 },\n inferenceStrategy: { type: \"string\", defaultValue: \"RuleBased\" }\n },\n aggregations: {\n _content: { type: \"sap.ui.core.Control\", multiple: false, visibility: \"hidden\" }\n },\n events: {\n beforeSubmit: {\n parameters: {\n payload: { type: \"object\" },\n addError: { type: \"function\" },\n preventDefault: { type: \"function\" }\n }\n },\n submit: {\n parameters: {\n payload: { type: \"object\" },\n payloadJson: { type: \"string\" }\n }\n },\n cancel: {},\n fieldChange: {\n parameters: {\n fieldPath: { type: \"string\" },\n value: { type: \"any\" },\n payload: { type: \"object\" },\n isValid: { type: \"boolean\" }\n }\n },\n validationStateChanged: { parameters: { isValid: { type: \"boolean\" } } },\n validationError: { parameters: { fieldPath: { type: \"string\" }, message: { type: \"string\" } } },\n validationSuccess: { parameters: { fieldPath: { type: \"string\" } } },\n error: { parameters: { message: { type: \"string\" }, exception: { type: \"object\" } } }\n }\n };\n\n static renderer = {\n apiVersion: 2,\n render(rm: RenderManager, control: DynamicHost) {\n rm.openStart(\"div\", control);\n rm.style(\"width\", \"100%\");\n rm.style(\"height\", \"100%\");\n rm.openEnd();\n\n const content = control.getAggregation(\"_content\") as Control;\n if (content) {\n rm.renderControl(content);\n }\n\n rm.close(\"div\");\n }\n };\n\n /**\n * Internal reference to the generated inner host instance.\n * @private\n */\n private _innerHost: GeneratorHost | null = null;\n\n /**\n * Flag indicating if the inner host has been initialized.\n * @private\n */\n private _initializedInner: boolean = false;\n\n /**\n * Initializes the OData Delegate if an OData context is detected.\n * This allows DynamicHost to seamlessly synchronize metadata and properties from an OData model.\n * @private\n */\n private initODataDelegate(): void {\n if (!this.odataDelegate) {\n // Guard: If the user explicitly bound dataJson, do not steal the context.\n if (this.getBindingInfo(\"dataJson\")) {\n return;\n }\n\n // Guard: If the user explicitly bound 'data' to a specific property path, do not steal the context.\n const dataBinding = this.getBindingInfo(\"data\") as any;\n if (dataBinding && dataBinding.path && dataBinding.path !== \"\") {\n return;\n }\n\n const oContext = this.getBindingContext(\"odata\") || this.getBindingContext();\n if (oContext) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context found for delegate initialization: ${oContext.getPath()}`, \"DynamicHost\");\n if (oContext && (oContext as ODataV4Context).requestObject && typeof (oContext as ODataV4Context).requestObject === \"function\") {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context supports requestObject/getObject. Instantiating ODataDelegate.`, \"DynamicHost\");\n this.odataDelegate = new ODataDelegate(this, oContext as ODataV4Context);\n this.odataDelegate.syncToEngine();\n } else {\n Logger.debug(\"[MetaUI DynamicHost]\", `Context does NOT support requestObject/getObject! Keys: ${Object.keys(oContext)}`, \"DynamicHost\");\n }\n }\n }\n }\n\n /**\n * Standard UI5 method override.\n * Sets the binding context for the control and attempts to initialize the OData delegate\n * if the context points to an OData model.\n * \n * @param {sap.ui.model.Context | null | undefined} oContext The binding context object\n * @param {string} [sModelName] Optional model name\n * @returns {this} The control instance for chaining\n */\n public setBindingContext(oContext: any, sModelName?: string): this {\n super.setBindingContext(oContext, sModelName);\n this.initODataDelegate();\n return this;\n }\n\n /**\n * Standard UI5 method override.\n * Binds the element to the given path and attaches a change listener to re-evaluate\n * the OData delegate when the element binding resolves.\n * \n * @param {string | Record<string, unknown>} vPath The binding path or configuration object\n * @param {object} [mParameters] Optional mapping parameters\n * @returns {this} Reference to this instance for chaining\n */\n public bindElement(vPath: any, mParameters?: object): this {\n super.bindElement(vPath, mParameters);\n const sModelName = typeof vPath === \"object\" ? vPath.model : undefined;\n const oBinding = this.getElementBinding(sModelName);\n if (oBinding) {\n oBinding.attachChange(() => {\n this.initODataDelegate();\n });\n }\n return this;\n }\n\n /**\n * Standard UI5 Lifecycle Hook.\n * Evaluates the initial properties and spawns the GeneratorHost.\n * It handles the complex lifecycle task of copying all bindings, raw properties, and event listeners \n * down to the inner host perfectly transparently.\n */\n public onBeforeRendering(): void {\n Logger.debug(\"[MetaUI DynamicHost]\", `onBeforeRendering called. _initializedInner: ${this._initializedInner}`, \"DynamicHost\");\n\n this.initODataDelegate();\n\n if (!this._initializedInner) {\n let schemaRaw = this.getProperty(\"schemaDefinition\");\n\n // 1. URL Detection & Fetching\n if (typeof schemaRaw === \"string\" && (schemaRaw.startsWith(\"http://\") || schemaRaw.startsWith(\"https://\"))) {\n const self = this as unknown as { _fetchingSchema?: boolean };\n if (self._fetchingSchema) return; // Prevent re-entry\n self._fetchingSchema = true;\n \n sap.ui.require([\"sap/ui/core/BusyIndicator\", \"sap/m/MessageToast\"], (BusyIndicator: { show: (n: number) => void, hide: () => void }, MessageToast: { show: (s: string) => void }) => {\n BusyIndicator.show(0);\n fetch(schemaRaw as string)\n .then(res => {\n if (!res.ok) throw new Error(\"HTTP \" + res.status);\n return res.json();\n })\n .then(json => {\n const plugin = SchemaBuilderRegistry.getBuilderFor(json);\n const finalSchema = plugin ? plugin.build(json, this.getProperty(\"schemaTarget\") as string | undefined) : json;\n super.setProperty(\"schemaDefinition\", finalSchema, true);\n if (finalSchema.definitions) {\n super.setProperty(\"schemaDefinitions\", finalSchema.definitions, true);\n }\n const self = this as unknown as { _fetchingSchema?: boolean };\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); // Force re-render with resolved schema\n })\n .catch(err => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n Logger.warn(\"[MetaUI DynamicHost]\", \"Failed to fetch remote schema: \" + err, \"DynamicHost\");\n if (MessageToast) MessageToast.show(\"Failed to fetch remote schema\");\n super.setProperty(\"schemaDefinition\", null, true); // Fallback to full inference\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate();\n });\n });\n return; // Abort this render cycle until fetch completes\n }\n\n // 2. Local Plugin Detection (Stringified JSON or Raw Object)\n let schema = schemaRaw;\n if (schema && typeof schema === \"string\" && (schema as string).trim().startsWith(\"{\")) {\n try {\n schema = JSON.parse(schema);\n } catch (e) {\n // Ignore, let standard validation catch it\n }\n }\n\n if (schema && typeof schema === \"object\") {\n const plugin = SchemaBuilderRegistry.getBuilderFor(schema);\n if (plugin) {\n schema = plugin.build(schema, this.getProperty(\"schemaTarget\") as string | undefined);\n // Silently update the wrapper property so the inner host gets the final parsed MetaUI format\n super.setProperty(\"schemaDefinition\", schema, true);\n if ((schema as any).definitions) {\n super.setProperty(\"schemaDefinitions\", (schema as any).definitions, true);\n }\n }\n }\n\n const dataJson = this.getProperty(\"dataJson\");\n const data = this.getProperty(\"data\");\n\n let hasSchema = !!schema;\n if (hasSchema && typeof schema === \"object\" && Object.keys(schema as any).length === 0) {\n hasSchema = false; // Treat empty object as no schema\n }\n\n const hasData = !!dataJson || !!data;\n\n // 3. AI Schema Inference Detection\n if (hasData && this.getProperty(\"inferenceStrategy\") === \"AI\") {\n const self = this as unknown as { _fetchingSchema?: boolean };\n if (self._fetchingSchema) return; // Prevent re-entry\n self._fetchingSchema = true;\n\n let rawDataObj = data;\n if (!rawDataObj && dataJson) {\n try { rawDataObj = JSON.parse(dataJson as string); } catch(e: any) { Logger.debug(\"[DynamicHost] Ignored invalid dataJson parse: \" + e.message); }\n }\n\n if (rawDataObj) {\n sap.ui.require([\n \"sap/ui/core/BusyIndicator\", \n \"sap/m/MessageToast\",\n \"nz/co/siliconst/ui5/metaui/ai/AIConfig\"\n ], (BusyIndicator: { show: (n: number) => void, hide: () => void }, MessageToast: { show: (s: string) => void }, AIConfig: { getProxy: () => { generateSchema: (d: unknown, s?: unknown) => Promise<unknown> } }) => {\n BusyIndicator.show(0);\n const proxy = AIConfig.getProxy();\n \n proxy.generateSchema(rawDataObj, schema || undefined)\n .then((generatedSchema: unknown) => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n super.setProperty(\"schemaDefinition\", generatedSchema, true);\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); // Force re-render with the new schema\n })\n .catch((err: Error) => {\n const self = this as unknown as { _fetchingSchema?: boolean };\n Logger.warn(\"[MetaUI DynamicHost]\", \"AI inference failed, falling back to RuleBased. Error: \" + err.message, \"DynamicHost\");\n if (MessageToast) MessageToast.show(\"AI Inference failed, using fallback.\");\n super.setProperty(\"inferenceStrategy\", \"RuleBased\", true); // Fallback to normal inference\n self._fetchingSchema = false;\n BusyIndicator.hide();\n this.invalidate(); \n });\n });\n return; // Abort render cycle until AI is done\n }\n }\n\n Logger.debug(\"[MetaUI DynamicHost]\", `Evaluating boot. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n\n // Only boot if we have either a schema or some data to infer from\n if (hasSchema || hasData) {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Booting inner host. hasSchema: ${hasSchema}, hasData: ${hasData}`, \"DynamicHost\");\n }\n // The architectural Facade router logic:\n // We've simplified this! We no longer use HostFactory or separate subclasses.\n // GeneratorHost is fully capable of inferring the schema if none is provided.\n this._innerHost = new GeneratorHost();\n\n // 1. Forward all static values to the spawned host BEFORE mounting.\n // Since we no longer use bindProperty, it's perfectly safe to set raw properties before mounting.\n const props = this.getMetadata().getProperties();\n for (const propName in props) {\n if (propName === \"inferenceStrategy\") continue;\n const val = super.getProperty(propName);\n if (val !== null && val !== undefined) {\n if (propName === \"schemaDefinitions\") {\n Logger.debug(`[MetaUI DynamicHost] Proxying schemaDefinitions: ${Object.keys(val)}`, \"\", \"DynamicHost\");\n }\n this._innerHost.setProperty(propName, val);\n } else if (propName === \"schemaDefinitions\") {\n Logger.warn(`[MetaUI DynamicHost] Warning: schemaDefinitions is null/undefined in Wrapper. Defaulting to empty object in GeneratorHost.`, \"\", \"DynamicHost\");\n }\n }\n\n // 2. Mount so it inherits models and triggers lifecycle.\n this.setAggregation(\"_content\", this._innerHost);\n\n // 3. Forward all event subscriptions.\n // By proxying the events upwards, the developer can subscribe to `<meta:DynamicHost submit=\"...\">` \n // and perfectly receive the inner host's submission event.\n const events = this.getMetadata().getEvents();\n for (const eventName in events) {\n this._innerHost.attachEvent(eventName, (oEvent: any) => {\n // Natively push updated payload out to any bound Fiori Element properties.\n // Using super.setProperty prevents an infinite loop back down to _innerHost.\n if (eventName === \"submit\" || eventName === \"fieldChange\") {\n const params = oEvent.getParameters();\n if (params.payload) {\n const isLive = this.getProperty(\"liveUpdate\") === true;\n if (eventName === \"submit\" || isLive) {\n super.setProperty(\"data\", params.payload, true);\n\n const str = params.payloadJson || JSON.stringify(params.payload, null, 2);\n super.setProperty(\"dataJson\", str, true);\n }\n }\n }\n this.fireEvent(eventName, oEvent.getParameters());\n });\n }\n\n this._initializedInner = true;\n }\n }\n }\n\n /**\n * Overrides standard UI5 setProperty to act as a transparent proxy.\n * When a property is updated on the wrapper (either programmatically or via a binding update),\n * it instantly mirrors that value down to the inner instantiated host.\n */\n public setProperty(propertyName: string, value: unknown, suppressInvalidate?: boolean): this {\n if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\" || propertyName === \"schemaDefinitions\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `Wrapper received setProperty: ${propertyName}`, \"DynamicHost\");\n }\n }\n super.setProperty(propertyName, value, suppressInvalidate);\n if (this._innerHost && propertyName !== \"inferenceStrategy\") {\n this._innerHost.setProperty(propertyName, value, suppressInvalidate);\n } else if (propertyName === \"data\" || propertyName === \"dataJson\" || propertyName === \"schemaDefinition\" || propertyName === \"schemaDefinitions\") {\n if (this.getProperty(\"debugMode\")) {\n Logger.debug(\"[MetaUI DynamicHost]\", `_innerHost not yet initialized when ${propertyName} was set. Booting will happen on next render.`, \"DynamicHost\");\n }\n }\n return this;\n }\n\n\n\n\n\n /**\n * Programmatic API support. Routes dialog commands down to the spawned inner host.\n * If the inner host has not booted yet, it forces initialization immediately.\n * \n * @param {string} [title=\"Form\"] The title of the dialog\n * @param {string} [submitButtonText=\"OK\"] The text for the primary action button\n * @param {string} [cancelButtonText=\"Cancel\"] The text for the cancel button\n * @param {string} [dialogWidth=\"auto\"] The width of the dialog\n * @param {sap.ui.core.Control} [parentView] The parent view to attach the dialog to for model inheritance.\n */\n public openInDialog(title?: string, submitButtonText?: string, cancelButtonText?: string, dialogWidth?: string, parentView?: Control): void {\n if (!this._innerHost) {\n this.onBeforeRendering(); // Force init if they bypassed UI5 rendering\n }\n this._innerHost?.openInDialog(title, submitButtonText, cancelButtonText, dialogWidth, parentView);\n }\n\n /**\n * Proxies submission triggering down to the instantiated generator host.\n * Evaluates the internal Engine validation suite and returns true if structurally sound.\n * \n * @returns {boolean} True if the internal payload passes schema validation, false otherwise.\n */\n public triggerSubmit(): boolean {\n if (!this._innerHost) {\n return false;\n }\n return this._innerHost.triggerSubmit();\n }\n\n /**\n * Injects a custom error message onto a specific field.\n * Useful for injecting custom backend validation errors.\n * \n * @param {string} fieldPath The schema key path to target.\n * @param {string} message The custom error message to display.\n */\n public addCustomError(fieldPath: string, message: string): void {\n const inner = this._innerHost as unknown as { addCustomError?: (p: string, m: string) => void };\n if (inner && typeof inner.addCustomError === \"function\") {\n inner.addCustomError(fieldPath, message);\n }\n }\n\n /**\n * Clears a custom error message from a specific field.\n * \n * @param {string} fieldPath The schema key path to target.\n */\n public clearCustomError(fieldPath: string): void {\n const inner = this._innerHost as unknown as { clearCustomError?: (p: string) => void };\n if (inner && typeof inner.clearCustomError === \"function\") {\n inner.clearCustomError(fieldPath);\n }\n }\n\n /**\n * Overrides standard UI5 getProperty to transparently pull extracted data from the inner host.\n * Ensures that querying the DynamicHost facade for `data` always yields the freshest payload.\n * \n * @param {string} propertyName The name of the property to retrieve\n * @returns {unknown} The property value\n */\n public getProperty(propertyName: string): unknown {\n if (propertyName === \"outputData\") {\n propertyName = \"data\"; // Forward deprecated outputData to data\n }\n if (this._innerHost && (propertyName === \"data\" || propertyName === \"dataJson\")) {\n return this._innerHost.getProperty(propertyName);\n }\n return super.getProperty(propertyName);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -33,6 +33,7 @@ export default class DynamicHost extends Control {
33
33
  modelName: { type: "string", defaultValue: "meta" },
34
34
  debugMode: { type: "boolean", defaultValue: false },
35
35
  editable: { type: "boolean", defaultValue: true },
36
+ layoutBudget: { type: "int", defaultValue: 0 },
36
37
  inferenceStrategy: { type: "string", defaultValue: "RuleBased" }
37
38
  },
38
39
  aggregations: {
@@ -138,7 +139,7 @@ export default class DynamicHost extends Control {
138
139
  * @param {string} [sModelName] Optional model name
139
140
  * @returns {this} The control instance for chaining
140
141
  */
141
- public setBindingContext(oContext: sap.ui.model.Context | null | undefined, sModelName?: string): this {
142
+ public setBindingContext(oContext: any, sModelName?: string): this {
142
143
  super.setBindingContext(oContext, sModelName);
143
144
  this.initODataDelegate();
144
145
  return this;
@@ -153,7 +154,7 @@ export default class DynamicHost extends Control {
153
154
  * @param {object} [mParameters] Optional mapping parameters
154
155
  * @returns {this} Reference to this instance for chaining
155
156
  */
156
- public bindElement(vPath: string | Record<string, unknown>, mParameters?: object): this {
157
+ public bindElement(vPath: any, mParameters?: object): this {
157
158
  super.bindElement(vPath, mParameters);
158
159
  const sModelName = typeof vPath === "object" ? vPath.model : undefined;
159
160
  const oBinding = this.getElementBinding(sModelName);
@@ -194,7 +195,7 @@ export default class DynamicHost extends Control {
194
195
  })
195
196
  .then(json => {
196
197
  const plugin = SchemaBuilderRegistry.getBuilderFor(json);
197
- const finalSchema = plugin ? plugin.build(json, this.getProperty("schemaTarget")) : json;
198
+ const finalSchema = plugin ? plugin.build(json, this.getProperty("schemaTarget") as string | undefined) : json;
198
199
  super.setProperty("schemaDefinition", finalSchema, true);
199
200
  if (finalSchema.definitions) {
200
201
  super.setProperty("schemaDefinitions", finalSchema.definitions, true);
@@ -230,11 +231,11 @@ export default class DynamicHost extends Control {
230
231
  if (schema && typeof schema === "object") {
231
232
  const plugin = SchemaBuilderRegistry.getBuilderFor(schema);
232
233
  if (plugin) {
233
- schema = plugin.build(schema, this.getProperty("schemaTarget"));
234
+ schema = plugin.build(schema, this.getProperty("schemaTarget") as string | undefined);
234
235
  // Silently update the wrapper property so the inner host gets the final parsed MetaUI format
235
236
  super.setProperty("schemaDefinition", schema, true);
236
- if (schema.definitions) {
237
- super.setProperty("schemaDefinitions", schema.definitions, true);
237
+ if ((schema as any).definitions) {
238
+ super.setProperty("schemaDefinitions", (schema as any).definitions, true);
238
239
  }
239
240
  }
240
241
  }
@@ -243,7 +244,7 @@ export default class DynamicHost extends Control {
243
244
  const data = this.getProperty("data");
244
245
 
245
246
  let hasSchema = !!schema;
246
- if (hasSchema && typeof schema === "object" && Object.keys(schema).length === 0) {
247
+ if (hasSchema && typeof schema === "object" && Object.keys(schema as any).length === 0) {
247
248
  hasSchema = false; // Treat empty object as no schema
248
249
  }
249
250
 
@@ -257,7 +258,7 @@ export default class DynamicHost extends Control {
257
258
 
258
259
  let rawDataObj = data;
259
260
  if (!rawDataObj && dataJson) {
260
- try { rawDataObj = JSON.parse(dataJson as string); } catch(e: Error) { Logger.trace("[DynamicHost] Ignored invalid dataJson parse: " + e.message); }
261
+ try { rawDataObj = JSON.parse(dataJson as string); } catch(e: any) { Logger.debug("[DynamicHost] Ignored invalid dataJson parse: " + e.message); }
261
262
  }
262
263
 
263
264
  if (rawDataObj) {
@@ -327,7 +328,7 @@ export default class DynamicHost extends Control {
327
328
  // and perfectly receive the inner host's submission event.
328
329
  const events = this.getMetadata().getEvents();
329
330
  for (const eventName in events) {
330
- this._innerHost.attachEvent(eventName, (oEvent: sap.ui.base.Event) => {
331
+ this._innerHost.attachEvent(eventName, (oEvent: any) => {
331
332
  // Natively push updated payload out to any bound Fiori Element properties.
332
333
  // Using super.setProperty prevents an infinite loop back down to _innerHost.
333
334
  if (eventName === "submit" || eventName === "fieldChange") {
@@ -31,15 +31,6 @@ sap.ui.define(["./BaseHardwareControl", "./BaseHardwareControlRenderer", "sap/m/
31
31
  const BaseHardwareControlRenderer = _interopRequireDefault(__BaseHardwareControlRenderer);
32
32
  class GeolocationControl extends BaseHardwareControl {
33
33
  static renderer = BaseHardwareControlRenderer;
34
- static metadata = {
35
- aggregations: {
36
- _content: {
37
- type: "sap.m.VBox",
38
- multiple: false,
39
- visibility: "hidden"
40
- }
41
- }
42
- };
43
34
 
44
35
  /**
45
36
  * Initializes the control and builds the internal UI components.
@@ -1 +1 @@
1
- {"version":3,"file":"GeolocationControl-dbg.js","names":["BaseHardwareControl","_interopRequireDefault","__BaseHardwareControl","BaseHardwareControlRenderer","__BaseHardwareControlRenderer","GeolocationControl","renderer","metadata","aggregations","_content","type","multiple","visibility","init","locationBtn","Button","icon","text","press","getLocation","bind","resultInput","Input","editable","visible","vBox","VBox","items","setAggregation","onBeforeRendering","getProperty","ui","label","setText","readOnly","setEnabled","currentVal","setValue","setVisible","navigator","geolocation","MessageToast","show","getCurrentPosition","position","locStr","coords","latitude","longitude","setValueAndFire","error","__ui5_require_async","then","Logger","message"],"sources":["GeolocationControl.ts"],"sourcesContent":["/**\n * @file GeolocationControl.ts\n * @description Native UI5 Control for GPS capture.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nimport BaseHardwareControl from \"./BaseHardwareControl\";\nimport BaseHardwareControlRenderer from \"./BaseHardwareControlRenderer\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport Button from \"sap/m/Button\";\nimport Input from \"sap/m/Input\";\nimport VBox from \"sap/m/VBox\";\nimport MessageToast from \"sap/m/MessageToast\";\n\nexport default class GeolocationControl extends BaseHardwareControl {\n private vBox: VBox;\n private locationBtn: Button;\n private resultInput: Input;\n\n static readonly renderer = BaseHardwareControlRenderer;\n\n static readonly metadata = {\n aggregations: {\n _content: { type: \"sap.m.VBox\", multiple: false, visibility: \"hidden\" }\n }\n };\n\n /**\n * Initializes the control and builds the internal UI components.\n */\n public init(): void {\n super.init();\n\n this.locationBtn = new Button({\n icon: \"sap-icon://map\",\n text: \"Get Location\",\n press: this.getLocation.bind(this)\n });\n\n this.resultInput = new Input({\n editable: false,\n visible: false\n });\n\n this.vBox = new VBox({\n items: [this.locationBtn, this.resultInput]\n });\n\n this.setAggregation(\"_content\", this.vBox);\n }\n\n /**\n * Lifecycle hook called before the control is rendered to the DOM.\n * Updates button state and sets any existing values.\n */\n public onBeforeRendering(): void {\n const metadata = this.getProperty(\"schemaMetadata\");\n if (metadata && metadata.ui && metadata.ui.label) {\n this.locationBtn.setText(metadata.ui.label);\n }\n\n const readOnly = this.getProperty(\"readOnly\");\n this.locationBtn.setEnabled(!readOnly);\n\n const currentVal = this.getProperty(\"value\");\n if (currentVal) {\n this.resultInput.setValue(currentVal as string);\n this.resultInput.setVisible(true);\n }\n }\n\n private getLocation(): void {\n if (!navigator.geolocation) {\n MessageToast.show(\"Geolocation is not supported by your browser\");\n return;\n }\n\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const locStr = `${position.coords.latitude}, ${position.coords.longitude}`;\n this.resultInput.setValue(locStr);\n this.resultInput.setVisible(true);\n this.setValueAndFire(locStr);\n MessageToast.show(\"Location acquired.\");\n },\n (error) => {\n import(\"../utils/Logger\").then(({ Logger }) => {\n Logger.error(\"[MetaUI] Geolocation failed or denied\", error.message, \"GeolocationControl\");\n });\n MessageToast.show(\"Unable to retrieve your location\");\n }\n );\n }\n\n\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"GeolocationControl-dbg.js","names":["BaseHardwareControl","_interopRequireDefault","__BaseHardwareControl","BaseHardwareControlRenderer","__BaseHardwareControlRenderer","GeolocationControl","renderer","init","locationBtn","Button","icon","text","press","getLocation","bind","resultInput","Input","editable","visible","vBox","VBox","items","setAggregation","onBeforeRendering","metadata","getProperty","ui","label","setText","readOnly","setEnabled","currentVal","setValue","setVisible","navigator","geolocation","MessageToast","show","getCurrentPosition","position","locStr","coords","latitude","longitude","setValueAndFire","error","__ui5_require_async","then","Logger","message"],"sources":["GeolocationControl.ts"],"sourcesContent":["/**\n * @file GeolocationControl.ts\n * @description Native UI5 Control for GPS capture.\n * \n * @namespace nz.co.siliconst.ui5.metaui.controls\n */\nimport BaseHardwareControl from \"./BaseHardwareControl\";\nimport BaseHardwareControlRenderer from \"./BaseHardwareControlRenderer\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport Button from \"sap/m/Button\";\nimport Input from \"sap/m/Input\";\nimport VBox from \"sap/m/VBox\";\nimport MessageToast from \"sap/m/MessageToast\";\n\nexport default class GeolocationControl extends BaseHardwareControl {\n private vBox!: VBox;\n private locationBtn!: Button;\n private resultInput!: Input;\n\n static readonly renderer = BaseHardwareControlRenderer;\n\n /**\n * Initializes the control and builds the internal UI components.\n */\n public init(): void {\n super.init();\n\n this.locationBtn = new Button({\n icon: \"sap-icon://map\",\n text: \"Get Location\",\n press: this.getLocation.bind(this)\n });\n\n this.resultInput = new Input({\n editable: false,\n visible: false\n });\n\n this.vBox = new VBox({\n items: [this.locationBtn, this.resultInput]\n });\n\n this.setAggregation(\"_content\", this.vBox);\n }\n\n /**\n * Lifecycle hook called before the control is rendered to the DOM.\n * Updates button state and sets any existing values.\n */\n public onBeforeRendering(): void {\n const metadata = this.getProperty(\"schemaMetadata\");\n if (metadata && metadata.ui && metadata.ui.label) {\n this.locationBtn.setText(metadata.ui.label);\n }\n\n const readOnly = this.getProperty(\"readOnly\");\n this.locationBtn.setEnabled(!readOnly);\n\n const currentVal = this.getProperty(\"value\");\n if (currentVal) {\n this.resultInput.setValue(currentVal as string);\n this.resultInput.setVisible(true);\n }\n }\n\n private getLocation(): void {\n if (!navigator.geolocation) {\n MessageToast.show(\"Geolocation is not supported by your browser\");\n return;\n }\n\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const locStr = `${position.coords.latitude}, ${position.coords.longitude}`;\n this.resultInput.setValue(locStr);\n this.resultInput.setVisible(true);\n this.setValueAndFire(locStr);\n MessageToast.show(\"Location acquired.\");\n },\n (error) => {\n import(\"../utils/Logger\").then(({ Logger }) => {\n Logger.error(\"[MetaUI] Geolocation failed or denied\", error.message, \"GeolocationControl\");\n });\n MessageToast.show(\"Unable to retrieve your location\");\n }\n );\n }\n\n\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;EAAA;AACA;AACA;AACA;AACA;AACA;EALA,MAMOA,mBAAmB,GAAAC,sBAAA,CAAAC,qBAAA;EAAA,MACnBC,2BAA2B,GAAAF,sBAAA,CAAAG,6BAAA;EAOnB,MAAMC,kBAAkB,SAASL,mBAAmB,CAAC;IAKhE,OAAgBM,QAAQ,GAAGH,2BAA2B;;IAEtD;AACJ;AACA;IACWI,IAAIA,CAAA,EAAS;MAChB,KAAK,CAACA,IAAI,CAAC,CAAC;MAEZ,IAAI,CAACC,WAAW,GAAG,IAAIC,MAAM,CAAC;QAC1BC,IAAI,EAAE,gBAAgB;QACtBC,IAAI,EAAE,cAAc;QACpBC,KAAK,EAAE,IAAI,CAACC,WAAW,CAACC,IAAI,CAAC,IAAI;MACrC,CAAC,CAAC;MAEF,IAAI,CAACC,WAAW,GAAG,IAAIC,KAAK,CAAC;QACzBC,QAAQ,EAAE,KAAK;QACfC,OAAO,EAAE;MACb,CAAC,CAAC;MAEF,IAAI,CAACC,IAAI,GAAG,IAAIC,IAAI,CAAC;QACjBC,KAAK,EAAE,CAAC,IAAI,CAACb,WAAW,EAAE,IAAI,CAACO,WAAW;MAC9C,CAAC,CAAC;MAEF,IAAI,CAACO,cAAc,CAAC,UAAU,EAAE,IAAI,CAACH,IAAI,CAAC;IAC9C;;IAEA;AACJ;AACA;AACA;IACWI,iBAAiBA,CAAA,EAAS;MAC7B,MAAMC,QAAQ,GAAG,IAAI,CAACC,WAAW,CAAC,gBAAgB,CAAC;MACnD,IAAID,QAAQ,IAAIA,QAAQ,CAACE,EAAE,IAAIF,QAAQ,CAACE,EAAE,CAACC,KAAK,EAAE;QAC9C,IAAI,CAACnB,WAAW,CAACoB,OAAO,CAACJ,QAAQ,CAACE,EAAE,CAACC,KAAK,CAAC;MAC/C;MAEA,MAAME,QAAQ,GAAG,IAAI,CAACJ,WAAW,CAAC,UAAU,CAAC;MAC7C,IAAI,CAACjB,WAAW,CAACsB,UAAU,CAAC,CAACD,QAAQ,CAAC;MAEtC,MAAME,UAAU,GAAG,IAAI,CAACN,WAAW,CAAC,OAAO,CAAC;MAC5C,IAAIM,UAAU,EAAE;QACZ,IAAI,CAAChB,WAAW,CAACiB,QAAQ,CAACD,UAAoB,CAAC;QAC/C,IAAI,CAAChB,WAAW,CAACkB,UAAU,CAAC,IAAI,CAAC;MACrC;IACJ;IAEQpB,WAAWA,CAAA,EAAS;MACxB,IAAI,CAACqB,SAAS,CAACC,WAAW,EAAE;QACxBC,YAAY,CAACC,IAAI,CAAC,8CAA8C,CAAC;QACjE;MACJ;MAEAH,SAAS,CAACC,WAAW,CAACG,kBAAkB,CACnCC,QAAQ,IAAK;QACV,MAAMC,MAAM,GAAG,GAAGD,QAAQ,CAACE,MAAM,CAACC,QAAQ,KAAKH,QAAQ,CAACE,MAAM,CAACE,SAAS,EAAE;QAC1E,IAAI,CAAC5B,WAAW,CAACiB,QAAQ,CAACQ,MAAM,CAAC;QACjC,IAAI,CAACzB,WAAW,CAACkB,UAAU,CAAC,IAAI,CAAC;QACjC,IAAI,CAACW,eAAe,CAACJ,MAAM,CAAC;QAC5BJ,YAAY,CAACC,IAAI,CAAC,oBAAoB,CAAC;MAC3C,CAAC,EACAQ,KAAK,IAAK;QACPC,mBAAA,CAAO,iBAAiB,CAAC,CAACC,IAAI,CAAC,CAAC;UAAEC;QAAO,CAAC,KAAK;UAC3CA,MAAM,CAACH,KAAK,CAAC,uCAAuC,EAAEA,KAAK,CAACI,OAAO,EAAE,oBAAoB,CAAC;QAC9F,CAAC,CAAC;QACFb,YAAY,CAACC,IAAI,CAAC,kCAAkC,CAAC;MACzD,CACJ,CAAC;IACL;EAGJ;EAAC,OAAAhC,kBAAA;AAAA","ignoreList":[]}