@sapui5/sap.fe.core 1.111.1 → 1.112.0

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 (524) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime-dbg.js +4 -4
  4. package/src/sap/fe/core/ActionRuntime.js +1 -1
  5. package/src/sap/fe/core/ActionRuntime.js.map +1 -1
  6. package/src/sap/fe/core/ActionRuntime.ts +11 -11
  7. package/src/sap/fe/core/AppComponent-dbg.js +27 -5
  8. package/src/sap/fe/core/AppComponent.js +1 -1
  9. package/src/sap/fe/core/AppComponent.js.map +1 -1
  10. package/src/sap/fe/core/AppComponent.ts +58 -3
  11. package/src/sap/fe/core/AppStateHandler-dbg.js +5 -2
  12. package/src/sap/fe/core/AppStateHandler.js +1 -1
  13. package/src/sap/fe/core/AppStateHandler.js.map +1 -1
  14. package/src/sap/fe/core/AppStateHandler.ts +10 -1
  15. package/src/sap/fe/core/BaseController-dbg.js +1 -1
  16. package/src/sap/fe/core/BaseController.ts +2 -1
  17. package/src/sap/fe/core/CommonUtils-dbg.js +152 -365
  18. package/src/sap/fe/core/CommonUtils.js +1 -1
  19. package/src/sap/fe/core/CommonUtils.js.map +1 -1
  20. package/src/sap/fe/core/CommonUtils.ts +201 -478
  21. package/src/sap/fe/core/ExtensionAPI-dbg.js +2 -1
  22. package/src/sap/fe/core/ExtensionAPI.js +1 -1
  23. package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
  24. package/src/sap/fe/core/ExtensionAPI.ts +9 -1
  25. package/src/sap/fe/core/PageController-dbg.js +26 -31
  26. package/src/sap/fe/core/PageController.js +1 -1
  27. package/src/sap/fe/core/PageController.js.map +1 -1
  28. package/src/sap/fe/core/PageController.ts +17 -3
  29. package/src/sap/fe/core/ResourceModel-dbg.js +71 -0
  30. package/src/sap/fe/core/ResourceModel.js +6 -0
  31. package/src/sap/fe/core/ResourceModel.js.map +1 -0
  32. package/src/sap/fe/core/ResourceModel.ts +67 -0
  33. package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
  34. package/src/sap/fe/core/TemplateComponent.ts +1 -0
  35. package/src/sap/fe/core/TemplateModel-dbg.js +1 -1
  36. package/src/sap/fe/core/TemplateModel.ts +6 -1
  37. package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +5 -7
  38. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
  39. package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -1
  40. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +6 -5
  41. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +163 -0
  42. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +6 -0
  43. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -0
  44. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +169 -0
  45. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +88 -0
  46. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +6 -0
  47. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -0
  48. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +147 -0
  49. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +905 -0
  50. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +21 -0
  51. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -0
  52. package/src/sap/fe/core/buildingBlocks/{BuildingBlockRuntime.ts → BuildingBlockTemplateProcessor.ts} +290 -362
  53. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +79 -0
  54. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +15 -0
  55. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -0
  56. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +68 -0
  57. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +162 -0
  58. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +6 -0
  59. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -0
  60. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +181 -0
  61. package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +4 -2
  62. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
  63. package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -1
  64. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -3
  65. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +890 -220
  66. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  67. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  68. package/src/sap/fe/core/controllerextensions/EditFlow.ts +974 -239
  69. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +24 -34
  70. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  71. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  72. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +71 -61
  73. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +14 -17
  74. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  75. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  76. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +23 -17
  77. package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1 -1
  78. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -0
  79. package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +3 -3
  80. package/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
  81. package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -1
  82. package/src/sap/fe/core/controllerextensions/MassEdit.ts +2 -2
  83. package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +2 -1
  84. package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -1
  85. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +2 -0
  86. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +1 -1
  87. package/src/sap/fe/core/controllerextensions/PageReady.ts +24 -0
  88. package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +2 -1
  89. package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -1
  90. package/src/sap/fe/core/controllerextensions/Paginator.ts +7 -0
  91. package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +1 -1
  92. package/src/sap/fe/core/controllerextensions/Placeholder.ts +8 -0
  93. package/src/sap/fe/core/controllerextensions/Share-dbg.js +8 -1
  94. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  95. package/src/sap/fe/core/controllerextensions/Share.ts +11 -0
  96. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +14 -13
  97. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  98. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  99. package/src/sap/fe/core/controllerextensions/SideEffects.ts +27 -27
  100. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +17 -8
  101. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  102. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  103. package/src/sap/fe/core/controllerextensions/ViewState.ts +35 -14
  104. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +6 -5
  105. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
  106. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -1
  107. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +7 -4
  108. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +285 -82
  109. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  110. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  111. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +326 -89
  112. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +23 -2
  113. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  114. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  115. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +32 -3
  116. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +1 -1
  117. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
  118. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -3
  119. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +17 -3
  120. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +65 -34
  121. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +1 -1
  122. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -1
  123. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +33 -18
  124. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +45 -31
  125. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  126. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  127. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +52 -42
  128. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +44 -49
  129. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  130. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  131. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +43 -63
  132. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  133. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +77 -0
  134. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +6 -0
  135. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -0
  136. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +114 -0
  137. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1505 -0
  138. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -0
  139. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -0
  140. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +1985 -0
  141. package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +3 -1415
  142. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  143. package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -1
  144. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +2 -1921
  145. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +10 -11
  146. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  147. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  148. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -13
  149. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +43 -41
  150. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  151. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  152. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +44 -47
  153. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +12 -1
  154. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -1
  155. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +19 -0
  156. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +12 -13
  157. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  158. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
  159. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +32 -13
  160. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -1
  161. package/src/sap/fe/core/controls/CommandExecution-dbg.js +16 -5
  162. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  163. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  164. package/src/sap/fe/core/controls/CommandExecution.ts +15 -3
  165. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +3 -2
  166. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  167. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -1
  168. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +4 -1
  169. package/src/sap/fe/core/controls/FilterBar-dbg.js +1 -1
  170. package/src/sap/fe/core/controls/FilterBar.ts +5 -0
  171. package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +1 -1
  172. package/src/sap/fe/core/controls/FormElementWrapper.ts +3 -0
  173. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +1 -1
  174. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +7 -0
  175. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +1 -1
  176. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +4 -0
  177. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +1 -1
  178. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +10 -0
  179. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +4 -3
  180. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  181. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  182. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -2
  183. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +0 -1
  184. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -0
  185. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +6 -1
  186. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
  187. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
  188. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +5 -0
  189. package/src/sap/fe/core/converters/ConverterContext-dbg.js +1 -1
  190. package/src/sap/fe/core/converters/ConverterContext.ts +2 -1
  191. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -8
  192. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  193. package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -1
  194. package/src/sap/fe/core/converters/ManifestSettings.ts +15 -6
  195. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +17 -1
  196. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  197. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
  198. package/src/sap/fe/core/converters/ManifestWrapper.ts +16 -0
  199. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +61 -49
  200. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  201. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  202. package/src/sap/fe/core/converters/MetaModelConverter.ts +65 -51
  203. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -1
  204. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  205. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  206. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +65 -16
  207. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  208. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  209. package/src/sap/fe/core/converters/annotations/DataField.ts +62 -18
  210. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1010 -957
  211. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  212. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  213. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +8 -8
  214. package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  215. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
  216. package/src/sap/fe/core/converters/controls/Common/Action.ts +28 -26
  217. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +95 -33
  218. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  219. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  220. package/src/sap/fe/core/converters/controls/Common/Chart.ts +133 -49
  221. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +99 -62
  222. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  223. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  224. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +140 -75
  225. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +1 -1
  226. package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -3
  227. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +6 -6
  228. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  229. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
  230. package/src/sap/fe/core/converters/controls/Common/KPI.ts +15 -15
  231. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +97 -69
  232. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  233. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  234. package/src/sap/fe/core/converters/controls/Common/Table.ts +161 -137
  235. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +3 -3
  236. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  237. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  238. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +10 -9
  239. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +48 -44
  240. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  241. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  242. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +130 -86
  243. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +34 -26
  244. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  245. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  246. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +62 -45
  247. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +1 -1
  248. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +1 -1
  249. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +6 -6
  250. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
  251. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -1
  252. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +5 -8
  253. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +34 -13
  254. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  255. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
  256. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +54 -20
  257. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +3 -1
  258. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  259. package/src/sap/fe/core/converters/helpers/Aggregation.ts +8 -0
  260. package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +7 -6
  261. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  262. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -1
  263. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +19 -10
  264. package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +1 -1
  265. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +7 -2
  266. package/src/sap/fe/core/converters/helpers/ID-dbg.js +1 -1
  267. package/src/sap/fe/core/converters/helpers/ID.ts +2 -1
  268. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +9 -8
  269. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  270. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
  271. package/src/sap/fe/core/converters/helpers/IssueManager.ts +8 -7
  272. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +8 -7
  273. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  274. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
  275. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +9 -6
  276. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +25 -33
  277. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  278. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  279. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +35 -35
  280. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +11 -4
  281. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  282. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  283. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +7 -1
  284. package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
  285. package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
  286. package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +2 -2
  287. package/src/sap/fe/core/formatters/FiscalFormat.ts +6 -1
  288. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -2
  289. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  290. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
  291. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
  292. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -5
  293. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  294. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  295. package/src/sap/fe/core/formatters/ValueFormatter.ts +6 -4
  296. package/src/sap/fe/core/fpm/Component-dbg.js +1 -1
  297. package/src/sap/fe/core/fpm/Component.ts +1 -0
  298. package/src/sap/fe/core/fpm/manifest.json +1 -1
  299. package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
  300. package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
  301. package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -1
  302. package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
  303. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +6 -6
  304. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  305. package/src/sap/fe/core/helpers/BindingToolkit.ts +8 -8
  306. package/src/sap/fe/core/helpers/ClassSupport-dbg.js +1 -1
  307. package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -1
  308. package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
  309. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +93 -62
  310. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  311. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  312. package/src/sap/fe/core/helpers/DeleteHelper.ts +140 -185
  313. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +20 -18
  314. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  315. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  316. package/src/sap/fe/core/helpers/MassEditHelper.ts +22 -23
  317. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +4 -5
  318. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  319. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  320. package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
  321. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +354 -0
  322. package/src/sap/fe/core/helpers/MetaModelFunction.js +6 -0
  323. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -0
  324. package/src/sap/fe/core/helpers/MetaModelFunction.ts +408 -0
  325. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +13 -13
  326. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
  327. package/src/sap/fe/core/helpers/ModelHelper.ts +13 -13
  328. package/src/sap/fe/core/helpers/PasteHelper-dbg.js +5 -5
  329. package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
  330. package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -1
  331. package/src/sap/fe/core/helpers/PasteHelper.ts +6 -10
  332. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +26 -0
  333. package/src/sap/fe/core/helpers/ResourceModelHelper.js +6 -0
  334. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -0
  335. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +19 -0
  336. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +93 -18
  337. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  338. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
  339. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +70 -17
  340. package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +2 -2
  341. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  342. package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -1
  343. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  344. package/src/sap/fe/core/helpers/Synchronization-dbg.js +1 -1
  345. package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
  346. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +5 -1
  347. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  348. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
  349. package/src/sap/fe/core/helpers/TypeGuards.ts +12 -1
  350. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +2 -1
  351. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
  352. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +6 -2
  353. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +1 -1
  354. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +3 -1
  355. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +3 -3
  356. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
  357. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
  358. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
  359. package/src/sap/fe/core/library-dbg.js +2 -2
  360. package/src/sap/fe/core/library-preload.js +127 -125
  361. package/src/sap/fe/core/library-preload.js.map +1 -1
  362. package/src/sap/fe/core/library.js +1 -1
  363. package/src/sap/fe/core/library.ts +7 -0
  364. package/src/sap/fe/core/manifest.json +1 -1
  365. package/src/sap/fe/core/messagebundle.properties +33 -0
  366. package/src/sap/fe/core/messagebundle_ar.properties +12 -10
  367. package/src/sap/fe/core/messagebundle_bg.properties +11 -9
  368. package/src/sap/fe/core/messagebundle_ca.properties +11 -9
  369. package/src/sap/fe/core/messagebundle_cs.properties +11 -9
  370. package/src/sap/fe/core/messagebundle_cy.properties +11 -9
  371. package/src/sap/fe/core/messagebundle_da.properties +11 -9
  372. package/src/sap/fe/core/messagebundle_de.properties +3 -1
  373. package/src/sap/fe/core/messagebundle_el.properties +11 -9
  374. package/src/sap/fe/core/messagebundle_en.properties +3 -1
  375. package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
  376. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
  377. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -0
  378. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -3
  379. package/src/sap/fe/core/messagebundle_es.properties +11 -9
  380. package/src/sap/fe/core/messagebundle_es_MX.properties +11 -9
  381. package/src/sap/fe/core/messagebundle_et.properties +11 -9
  382. package/src/sap/fe/core/messagebundle_fi.properties +11 -9
  383. package/src/sap/fe/core/messagebundle_fr.properties +11 -9
  384. package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
  385. package/src/sap/fe/core/messagebundle_hi.properties +2 -0
  386. package/src/sap/fe/core/messagebundle_hr.properties +11 -9
  387. package/src/sap/fe/core/messagebundle_hu.properties +11 -9
  388. package/src/sap/fe/core/messagebundle_id.properties +3 -1
  389. package/src/sap/fe/core/messagebundle_it.properties +11 -9
  390. package/src/sap/fe/core/messagebundle_iw.properties +11 -9
  391. package/src/sap/fe/core/messagebundle_ja.properties +11 -9
  392. package/src/sap/fe/core/messagebundle_kk.properties +11 -9
  393. package/src/sap/fe/core/messagebundle_ko.properties +2 -0
  394. package/src/sap/fe/core/messagebundle_lt.properties +11 -9
  395. package/src/sap/fe/core/messagebundle_lv.properties +2 -0
  396. package/src/sap/fe/core/messagebundle_ms.properties +12 -10
  397. package/src/sap/fe/core/messagebundle_nl.properties +12 -10
  398. package/src/sap/fe/core/messagebundle_no.properties +11 -9
  399. package/src/sap/fe/core/messagebundle_pl.properties +2 -0
  400. package/src/sap/fe/core/messagebundle_pt.properties +11 -9
  401. package/src/sap/fe/core/messagebundle_pt_PT.properties +11 -9
  402. package/src/sap/fe/core/messagebundle_ro.properties +3 -1
  403. package/src/sap/fe/core/messagebundle_ru.properties +3 -1
  404. package/src/sap/fe/core/messagebundle_sh.properties +11 -9
  405. package/src/sap/fe/core/messagebundle_sk.properties +11 -9
  406. package/src/sap/fe/core/messagebundle_sl.properties +11 -9
  407. package/src/sap/fe/core/messagebundle_sv.properties +2 -0
  408. package/src/sap/fe/core/messagebundle_th.properties +11 -9
  409. package/src/sap/fe/core/messagebundle_tr.properties +11 -9
  410. package/src/sap/fe/core/messagebundle_uk.properties +11 -9
  411. package/src/sap/fe/core/messagebundle_vi.properties +12 -10
  412. package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
  413. package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
  414. package/src/sap/fe/core/operationsHelper-dbg.js +70 -44
  415. package/src/sap/fe/core/operationsHelper.js +1 -1
  416. package/src/sap/fe/core/operationsHelper.js.map +1 -1
  417. package/src/sap/fe/core/operationsHelper.ts +88 -63
  418. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +1 -1
  419. package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -0
  420. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +2 -2
  421. package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
  422. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
  423. package/src/sap/fe/core/rootView/NavContainer.controller.ts +5 -3
  424. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +4 -3
  425. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  426. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  427. package/src/sap/fe/core/rootView/RootViewBaseController.ts +15 -5
  428. package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  429. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  430. package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +1 -1
  431. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -1
  432. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +15 -1
  433. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
  434. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  435. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -1
  436. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +9 -1
  437. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  438. package/src/sap/fe/core/services/NavigationServiceFactory.ts +19 -1
  439. package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +2 -2
  440. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  441. package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -1
  442. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +10 -3
  443. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +3 -3
  444. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  445. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  446. package/src/sap/fe/core/services/RoutingServiceFactory.ts +29 -3
  447. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
  448. package/src/sap/fe/core/services/ShellServicesFactory.ts +14 -2
  449. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +448 -279
  450. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  451. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  452. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +502 -333
  453. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +18 -5
  454. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  455. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  456. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +41 -12
  457. package/src/sap/fe/core/support/Diagnostics-dbg.js +1 -1
  458. package/src/sap/fe/core/support/Diagnostics.ts +5 -0
  459. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +185 -86
  460. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  461. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  462. package/src/sap/fe/core/templating/DataModelPathHelper.ts +190 -82
  463. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +1 -1
  464. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +1 -1
  465. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +2 -3
  466. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  467. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
  468. package/src/sap/fe/core/templating/EntitySetHelper.ts +1 -3
  469. package/src/sap/fe/core/templating/FilterHelper-dbg.js +3 -3
  470. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  471. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  472. package/src/sap/fe/core/templating/FilterHelper.ts +5 -3
  473. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +1 -1
  474. package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
  475. package/src/sap/fe/core/templating/UIFormatters-dbg.js +1 -1
  476. package/src/sap/fe/core/templating/UIFormatters.ts +4 -0
  477. package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +1 -1
  478. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -0
  479. package/src/sap/fe/core/type/FiscalDate-dbg.js +2 -2
  480. package/src/sap/fe/core/type/FiscalDate.js.map +1 -1
  481. package/src/sap/fe/core/type/FiscalDate.ts +2 -1
  482. package/src/sap/fe/core/type/TypeUtil-dbg.js +5 -10
  483. package/src/sap/fe/core/type/TypeUtil.js +1 -1
  484. package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
  485. package/src/sap/fe/core/type/TypeUtil.ts +3 -6
  486. package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +0 -410
  487. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +0 -15
  488. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +0 -1
  489. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +0 -536
  490. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +0 -44
  491. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +0 -6
  492. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +0 -1
  493. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +0 -14
  494. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +0 -948
  495. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +0 -19
  496. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +0 -1
  497. package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +0 -711
  498. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +0 -6
  499. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +0 -1
  500. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +0 -863
  501. package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +0 -151
  502. package/src/sap/fe/core/controls/ConditionalWrapper.js +0 -6
  503. package/src/sap/fe/core/controls/ConditionalWrapper.js.map +0 -1
  504. package/src/sap/fe/core/controls/ConditionalWrapper.ts +0 -88
  505. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +0 -330
  506. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +0 -6
  507. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +0 -1
  508. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -292
  509. package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +0 -126
  510. package/src/sap/fe/core/controls/CustomQuickViewPage.js +0 -6
  511. package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +0 -1
  512. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +0 -105
  513. package/src/sap/fe/core/controls/FieldWrapper-dbg.js +0 -194
  514. package/src/sap/fe/core/controls/FieldWrapper.js +0 -6
  515. package/src/sap/fe/core/controls/FieldWrapper.js.map +0 -1
  516. package/src/sap/fe/core/controls/FieldWrapper.ts +0 -121
  517. package/src/sap/fe/core/controls/FileWrapper-dbg.js +0 -280
  518. package/src/sap/fe/core/controls/FileWrapper.js +0 -6
  519. package/src/sap/fe/core/controls/FileWrapper.js.map +0 -1
  520. package/src/sap/fe/core/controls/FileWrapper.ts +0 -202
  521. package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +0 -141
  522. package/src/sap/fe/core/helpers/SideEffectsHelper.js +0 -6
  523. package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +0 -1
  524. package/src/sap/fe/core/helpers/SideEffectsHelper.ts +0 -129
@@ -0,0 +1,79 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockBase", "sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor", "sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment", "sap/fe/core/helpers/TypeGuards"], function (BuildingBlockBase, BuildingBlockTemplateProcessor, RuntimeBuildingBlockFragment, TypeGuards) {
6
+ "use strict";
7
+
8
+ var _exports = {};
9
+ var isContext = TypeGuards.isContext;
10
+ var storeRuntimeBlock = RuntimeBuildingBlockFragment.storeRuntimeBlock;
11
+ var xml = BuildingBlockTemplateProcessor.xml;
12
+ var registerBuildingBlock = BuildingBlockTemplateProcessor.registerBuildingBlock;
13
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
14
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
15
+ /**
16
+ * Base class for runtime building blocks
17
+ */
18
+ let RuntimeBuildingBlock = /*#__PURE__*/function (_BuildingBlockBase) {
19
+ _inheritsLoose(RuntimeBuildingBlock, _BuildingBlockBase);
20
+ function RuntimeBuildingBlock() {
21
+ return _BuildingBlockBase.apply(this, arguments) || this;
22
+ }
23
+ _exports = RuntimeBuildingBlock;
24
+ RuntimeBuildingBlock.register = function register() {
25
+ registerBuildingBlock(this);
26
+ storeRuntimeBlock(this);
27
+ };
28
+ var _proto = RuntimeBuildingBlock.prototype;
29
+ _proto.getTemplate = function getTemplate(oNode) {
30
+ const metadata = this.constructor.metadata;
31
+ const className = `${metadata.namespace}.${metadata.name}`;
32
+ const extraProps = [];
33
+ // Function are defined as string but need to be resolved by UI5, as such we store them in an `event` property and will redispatch them later
34
+ const functionHolderDefinition = [];
35
+ const propertiesAssignedToFunction = [];
36
+ const functionStringInOrder = [];
37
+ for (const propertiesKey in metadata.properties) {
38
+ let propertyValue = this[propertiesKey];
39
+ if (propertyValue !== undefined && propertyValue !== null) {
40
+ if (isContext(propertyValue)) {
41
+ propertyValue = propertyValue.getPath();
42
+ }
43
+ if (metadata.properties[propertiesKey].type === "function") {
44
+ functionHolderDefinition.push(propertyValue);
45
+ functionStringInOrder.push(propertyValue);
46
+ propertiesAssignedToFunction.push(propertiesKey);
47
+ } else {
48
+ extraProps.push(xml`feBB:${propertiesKey}="${propertyValue}"`);
49
+ }
50
+ }
51
+ }
52
+ if (functionHolderDefinition.length > 0) {
53
+ extraProps.push(xml`functionHolder="${functionHolderDefinition.join(";")}"`);
54
+ extraProps.push(xml`feBB:functionStringInOrder="${functionStringInOrder.join(",")}"`);
55
+ extraProps.push(xml`feBB:propertiesAssignedToFunction="${propertiesAssignedToFunction.join(",")}"`);
56
+ }
57
+ // core:require need to be defined on the node itself to be picked up due to the templating step
58
+ const coreRequire = (oNode === null || oNode === void 0 ? void 0 : oNode.getAttribute("core:require")) || undefined;
59
+ if (coreRequire) {
60
+ extraProps.push(xml`core:require="${coreRequire}"`);
61
+ }
62
+ return xml`<feBB:RuntimeBuildingBlockFragment
63
+ xmlns:core="sap.ui.core"
64
+ xmlns:feBB="sap.fe.core.buildingBlocks"
65
+ fragmentName="${className}"
66
+
67
+ id="{this>id}"
68
+ type="FE_COMPONENTS"
69
+ ${extraProps}
70
+ >
71
+ </feBB:RuntimeBuildingBlockFragment>`;
72
+ };
73
+ return RuntimeBuildingBlock;
74
+ }(BuildingBlockBase);
75
+ RuntimeBuildingBlock.isRuntime = true;
76
+ _exports = RuntimeBuildingBlock;
77
+ return _exports;
78
+ }, false);
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSdW50aW1lQnVpbGRpbmdCbG9jayIsInJlZ2lzdGVyIiwicmVnaXN0ZXJCdWlsZGluZ0Jsb2NrIiwic3RvcmVSdW50aW1lQmxvY2siLCJnZXRUZW1wbGF0ZSIsIm9Ob2RlIiwibWV0YWRhdGEiLCJjb25zdHJ1Y3RvciIsImNsYXNzTmFtZSIsIm5hbWVzcGFjZSIsIm5hbWUiLCJleHRyYVByb3BzIiwiZnVuY3Rpb25Ib2xkZXJEZWZpbml0aW9uIiwicHJvcGVydGllc0Fzc2lnbmVkVG9GdW5jdGlvbiIsImZ1bmN0aW9uU3RyaW5nSW5PcmRlciIsInByb3BlcnRpZXNLZXkiLCJwcm9wZXJ0aWVzIiwicHJvcGVydHlWYWx1ZSIsInVuZGVmaW5lZCIsImlzQ29udGV4dCIsImdldFBhdGgiLCJ0eXBlIiwicHVzaCIsInhtbCIsImxlbmd0aCIsImpvaW4iLCJjb3JlUmVxdWlyZSIsImdldEF0dHJpYnV0ZSIsIkJ1aWxkaW5nQmxvY2tCYXNlIiwiaXNSdW50aW1lIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJSdW50aW1lQnVpbGRpbmdCbG9jay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2tCYXNlIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrQmFzZVwiO1xuaW1wb3J0IHR5cGUgeyBYTUxQcm9jZXNzb3JUeXBlVmFsdWUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgeyByZWdpc3RlckJ1aWxkaW5nQmxvY2ssIHhtbCB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCB7IHN0b3JlUnVudGltZUJsb2NrIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL1J1bnRpbWVCdWlsZGluZ0Jsb2NrRnJhZ21lbnRcIjtcbmltcG9ydCB7IGlzQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgcnVudGltZSBidWlsZGluZyBibG9ja3NcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnVudGltZUJ1aWxkaW5nQmxvY2sgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZSB7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgaXNSdW50aW1lID0gdHJ1ZTtcblxuXHRnZXRDb250ZW50Pyhjb250YWluaW5nVmlldzogVmlldywgYXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQpOiBDb250cm9sIHwgdW5kZWZpbmVkO1xuXG5cdHN0YXRpYyByZWdpc3RlcigpIHtcblx0XHRyZWdpc3RlckJ1aWxkaW5nQmxvY2sodGhpcyk7XG5cdFx0c3RvcmVSdW50aW1lQmxvY2sodGhpcyk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0VGVtcGxhdGUob05vZGU/OiBFbGVtZW50KTogc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBtZXRhZGF0YSA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBCdWlsZGluZ0Jsb2NrQmFzZSkubWV0YWRhdGE7XG5cblx0XHRjb25zdCBjbGFzc05hbWUgPSBgJHttZXRhZGF0YS5uYW1lc3BhY2V9LiR7bWV0YWRhdGEubmFtZX1gO1xuXHRcdGNvbnN0IGV4dHJhUHJvcHMgPSBbXTtcblx0XHQvLyBGdW5jdGlvbiBhcmUgZGVmaW5lZCBhcyBzdHJpbmcgYnV0IG5lZWQgdG8gYmUgcmVzb2x2ZWQgYnkgVUk1LCBhcyBzdWNoIHdlIHN0b3JlIHRoZW0gaW4gYW4gYGV2ZW50YCBwcm9wZXJ0eSBhbmQgd2lsbCByZWRpc3BhdGNoIHRoZW0gbGF0ZXJcblx0XHRjb25zdCBmdW5jdGlvbkhvbGRlckRlZmluaXRpb24gPSBbXTtcblx0XHRjb25zdCBwcm9wZXJ0aWVzQXNzaWduZWRUb0Z1bmN0aW9uID0gW107XG5cdFx0Y29uc3QgZnVuY3Rpb25TdHJpbmdJbk9yZGVyID0gW107XG5cdFx0Zm9yIChjb25zdCBwcm9wZXJ0aWVzS2V5IGluIG1ldGFkYXRhLnByb3BlcnRpZXMpIHtcblx0XHRcdGxldCBwcm9wZXJ0eVZhbHVlID0gdGhpc1twcm9wZXJ0aWVzS2V5IGFzIGtleW9mIHRoaXNdIGFzIHVua25vd24gYXMgWE1MUHJvY2Vzc29yVHlwZVZhbHVlO1xuXHRcdFx0aWYgKHByb3BlcnR5VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wZXJ0eVZhbHVlICE9PSBudWxsKSB7XG5cdFx0XHRcdGlmIChpc0NvbnRleHQocHJvcGVydHlWYWx1ZSkpIHtcblx0XHRcdFx0XHRwcm9wZXJ0eVZhbHVlID0gcHJvcGVydHlWYWx1ZS5nZXRQYXRoKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG1ldGFkYXRhLnByb3BlcnRpZXNbcHJvcGVydGllc0tleV0udHlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRcdFx0ZnVuY3Rpb25Ib2xkZXJEZWZpbml0aW9uLnB1c2gocHJvcGVydHlWYWx1ZSk7XG5cdFx0XHRcdFx0ZnVuY3Rpb25TdHJpbmdJbk9yZGVyLnB1c2gocHJvcGVydHlWYWx1ZSk7XG5cdFx0XHRcdFx0cHJvcGVydGllc0Fzc2lnbmVkVG9GdW5jdGlvbi5wdXNoKHByb3BlcnRpZXNLZXkpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGV4dHJhUHJvcHMucHVzaCh4bWxgZmVCQjoke3Byb3BlcnRpZXNLZXl9PVwiJHtwcm9wZXJ0eVZhbHVlfVwiYCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGZ1bmN0aW9uSG9sZGVyRGVmaW5pdGlvbi5sZW5ndGggPiAwKSB7XG5cdFx0XHRleHRyYVByb3BzLnB1c2goeG1sYGZ1bmN0aW9uSG9sZGVyPVwiJHtmdW5jdGlvbkhvbGRlckRlZmluaXRpb24uam9pbihcIjtcIil9XCJgKTtcblx0XHRcdGV4dHJhUHJvcHMucHVzaCh4bWxgZmVCQjpmdW5jdGlvblN0cmluZ0luT3JkZXI9XCIke2Z1bmN0aW9uU3RyaW5nSW5PcmRlci5qb2luKFwiLFwiKX1cImApO1xuXHRcdFx0ZXh0cmFQcm9wcy5wdXNoKHhtbGBmZUJCOnByb3BlcnRpZXNBc3NpZ25lZFRvRnVuY3Rpb249XCIke3Byb3BlcnRpZXNBc3NpZ25lZFRvRnVuY3Rpb24uam9pbihcIixcIil9XCJgKTtcblx0XHR9XG5cdFx0Ly8gY29yZTpyZXF1aXJlIG5lZWQgdG8gYmUgZGVmaW5lZCBvbiB0aGUgbm9kZSBpdHNlbGYgdG8gYmUgcGlja2VkIHVwIGR1ZSB0byB0aGUgdGVtcGxhdGluZyBzdGVwXG5cdFx0Y29uc3QgY29yZVJlcXVpcmUgPSBvTm9kZT8uZ2V0QXR0cmlidXRlKFwiY29yZTpyZXF1aXJlXCIpIHx8IHVuZGVmaW5lZDtcblx0XHRpZiAoY29yZVJlcXVpcmUpIHtcblx0XHRcdGV4dHJhUHJvcHMucHVzaCh4bWxgY29yZTpyZXF1aXJlPVwiJHtjb3JlUmVxdWlyZX1cImApO1xuXHRcdH1cblx0XHRyZXR1cm4geG1sYDxmZUJCOlJ1bnRpbWVCdWlsZGluZ0Jsb2NrRnJhZ21lbnRcblx0XHRcdFx0XHR4bWxuczpjb3JlPVwic2FwLnVpLmNvcmVcIlxuXHRcdFx0XHRcdHhtbG5zOmZlQkI9XCJzYXAuZmUuY29yZS5idWlsZGluZ0Jsb2Nrc1wiXG5cdFx0XHRcdFx0ZnJhZ21lbnROYW1lPVwiJHtjbGFzc05hbWV9XCJcblxuXHRcdFx0XHRcdGlkPVwie3RoaXM+aWR9XCJcblx0XHRcdFx0XHR0eXBlPVwiRkVfQ09NUE9ORU5UU1wiXG5cdFx0XHRcdFx0JHtleHRyYVByb3BzfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdDwvZmVCQjpSdW50aW1lQnVpbGRpbmdCbG9ja0ZyYWdtZW50PmA7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7RUFTQTtBQUNBO0FBQ0E7RUFGQSxJQUdxQkEsb0JBQW9CO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBLHFCQUtqQ0MsUUFBUSxHQUFmLG9CQUFrQjtNQUNqQkMscUJBQXFCLENBQUMsSUFBSSxDQUFDO01BQzNCQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUFBO0lBQUEsT0FFTUMsV0FBVyxHQUFsQixxQkFBbUJDLEtBQWUsRUFBb0Q7TUFDckYsTUFBTUMsUUFBUSxHQUFJLElBQUksQ0FBQ0MsV0FBVyxDQUE4QkQsUUFBUTtNQUV4RSxNQUFNRSxTQUFTLEdBQUksR0FBRUYsUUFBUSxDQUFDRyxTQUFVLElBQUdILFFBQVEsQ0FBQ0ksSUFBSyxFQUFDO01BQzFELE1BQU1DLFVBQVUsR0FBRyxFQUFFO01BQ3JCO01BQ0EsTUFBTUMsd0JBQXdCLEdBQUcsRUFBRTtNQUNuQyxNQUFNQyw0QkFBNEIsR0FBRyxFQUFFO01BQ3ZDLE1BQU1DLHFCQUFxQixHQUFHLEVBQUU7TUFDaEMsS0FBSyxNQUFNQyxhQUFhLElBQUlULFFBQVEsQ0FBQ1UsVUFBVSxFQUFFO1FBQ2hELElBQUlDLGFBQWEsR0FBRyxJQUFJLENBQUNGLGFBQWEsQ0FBbUQ7UUFDekYsSUFBSUUsYUFBYSxLQUFLQyxTQUFTLElBQUlELGFBQWEsS0FBSyxJQUFJLEVBQUU7VUFDMUQsSUFBSUUsU0FBUyxDQUFDRixhQUFhLENBQUMsRUFBRTtZQUM3QkEsYUFBYSxHQUFHQSxhQUFhLENBQUNHLE9BQU8sRUFBRTtVQUN4QztVQUNBLElBQUlkLFFBQVEsQ0FBQ1UsVUFBVSxDQUFDRCxhQUFhLENBQUMsQ0FBQ00sSUFBSSxLQUFLLFVBQVUsRUFBRTtZQUMzRFQsd0JBQXdCLENBQUNVLElBQUksQ0FBQ0wsYUFBYSxDQUFDO1lBQzVDSCxxQkFBcUIsQ0FBQ1EsSUFBSSxDQUFDTCxhQUFhLENBQUM7WUFDekNKLDRCQUE0QixDQUFDUyxJQUFJLENBQUNQLGFBQWEsQ0FBQztVQUNqRCxDQUFDLE1BQU07WUFDTkosVUFBVSxDQUFDVyxJQUFJLENBQUNDLEdBQUksUUFBT1IsYUFBYyxLQUFJRSxhQUFjLEdBQUUsQ0FBQztVQUMvRDtRQUNEO01BQ0Q7TUFDQSxJQUFJTCx3QkFBd0IsQ0FBQ1ksTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN4Q2IsVUFBVSxDQUFDVyxJQUFJLENBQUNDLEdBQUksbUJBQWtCWCx3QkFBd0IsQ0FBQ2EsSUFBSSxDQUFDLEdBQUcsQ0FBRSxHQUFFLENBQUM7UUFDNUVkLFVBQVUsQ0FBQ1csSUFBSSxDQUFDQyxHQUFJLCtCQUE4QlQscUJBQXFCLENBQUNXLElBQUksQ0FBQyxHQUFHLENBQUUsR0FBRSxDQUFDO1FBQ3JGZCxVQUFVLENBQUNXLElBQUksQ0FBQ0MsR0FBSSxzQ0FBcUNWLDRCQUE0QixDQUFDWSxJQUFJLENBQUMsR0FBRyxDQUFFLEdBQUUsQ0FBQztNQUNwRztNQUNBO01BQ0EsTUFBTUMsV0FBVyxHQUFHLENBQUFyQixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXNCLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSVQsU0FBUztNQUNwRSxJQUFJUSxXQUFXLEVBQUU7UUFDaEJmLFVBQVUsQ0FBQ1csSUFBSSxDQUFDQyxHQUFJLGlCQUFnQkcsV0FBWSxHQUFFLENBQUM7TUFDcEQ7TUFDQSxPQUFPSCxHQUFJO0FBQ2I7QUFDQTtBQUNBLHFCQUFxQmYsU0FBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQSxPQUFPRyxVQUFXO0FBQ2xCO0FBQ0EseUNBQXlDO0lBQ3hDLENBQUM7SUFBQTtFQUFBLEVBdERnRGlCLGlCQUFpQjtFQUE5QzVCLG9CQUFvQixDQUNqQjZCLFNBQVMsR0FBRyxJQUFJO0VBQUE7RUFBQTtBQUFBIn0=
@@ -0,0 +1,15 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockBase","sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor","sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment","sap/fe/core/helpers/TypeGuards"],function(e,t,n,i){"use strict";var o={};var r=i.isContext;var s=n.storeRuntimeBlock;var u=t.xml;var c=t.registerBuildingBlock;function p(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;l(e,t)}function l(e,t){l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,n){t.__proto__=n;return t};return l(e,t)}let f=function(e){p(t,e);function t(){return e.apply(this,arguments)||this}o=t;t.register=function e(){c(this);s(this)};var n=t.prototype;n.getTemplate=function e(t){const n=this.constructor.metadata;const i=`${n.namespace}.${n.name}`;const o=[];const s=[];const c=[];const p=[];for(const e in n.properties){let t=this[e];if(t!==undefined&&t!==null){if(r(t)){t=t.getPath()}if(n.properties[e].type==="function"){s.push(t);p.push(t);c.push(e)}else{o.push(u`feBB:${e}="${t}"`)}}}if(s.length>0){o.push(u`functionHolder="${s.join(";")}"`);o.push(u`feBB:functionStringInOrder="${p.join(",")}"`);o.push(u`feBB:propertiesAssignedToFunction="${c.join(",")}"`)}const l=(t===null||t===void 0?void 0:t.getAttribute("core:require"))||undefined;if(l){o.push(u`core:require="${l}"`)}return u`<feBB:RuntimeBuildingBlockFragment
6
+ xmlns:core="sap.ui.core"
7
+ xmlns:feBB="sap.fe.core.buildingBlocks"
8
+ fragmentName="${i}"
9
+
10
+ id="{this>id}"
11
+ type="FE_COMPONENTS"
12
+ ${o}
13
+ >
14
+ </feBB:RuntimeBuildingBlockFragment>`};return t}(e);f.isRuntime=true;o=f;return o},false);
15
+ //# sourceMappingURL=RuntimeBuildingBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeBuildingBlock.js","names":["sap","ui","define","BuildingBlockBase","BuildingBlockTemplateProcessor","RuntimeBuildingBlockFragment","TypeGuards","_exports","isContext","storeRuntimeBlock","xml","registerBuildingBlock","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","RuntimeBuildingBlock","_BuildingBlockBase","apply","this","arguments","register","_proto","getTemplate","oNode","metadata","className","namespace","name","extraProps","functionHolderDefinition","propertiesAssignedToFunction","functionStringInOrder","propertiesKey","properties","propertyValue","undefined","getPath","type","push","length","join","coreRequire","getAttribute","isRuntime"],"sources":["RuntimeBuildingBlock-dbg.js"],"mappings":";;;;AAIAA,IAAIC,GAAGC,OAAO,CAAC,+CAAgD,4DAA6D,0DAA2D,kCAAmC,SAAUC,EAAmBC,EAAgCC,EAA8BC,GACnT,aAEA,IAAIC,EAAW,CAAC,EAChB,IAAIC,EAAYF,EAAWE,UAC3B,IAAIC,EAAoBJ,EAA6BI,kBACrD,IAAIC,EAAMN,EAA+BM,IACzC,IAAIC,EAAwBP,EAA+BO,sBAC3D,SAASC,EAAeC,EAAUC,GAAcD,EAASE,UAAYC,OAAOC,OAAOH,EAAWC,WAAYF,EAASE,UAAUG,YAAcL,EAAUM,EAAgBN,EAAUC,EAAa,CAC5L,SAASK,EAAgBC,EAAGC,GAAKF,EAAkBH,OAAOM,eAAiBN,OAAOM,eAAeC,OAAS,SAASJ,EAAgBC,EAAGC,GAAKD,EAAEI,UAAYH,EAAG,OAAOD,CAAG,EAAG,OAAOD,EAAgBC,EAAGC,EAAI,CAIvM,IAAII,EAAoC,SAAUC,GAChDd,EAAea,EAAsBC,GACrC,SAASD,IACP,OAAOC,EAAmBC,MAAMC,KAAMC,YAAcD,IACtD,CACArB,EAAWkB,EACXA,EAAqBK,SAAW,SAASA,IACvCnB,EAAsBiB,MACtBnB,EAAkBmB,KACpB,EACA,IAAIG,EAASN,EAAqBV,UAClCgB,EAAOC,YAAc,SAASA,EAAYC,GACxC,MAAMC,EAAWN,KAAKV,YAAYgB,SAClC,MAAMC,EAAY,GAAGD,EAASE,aAAaF,EAASG,OACpD,MAAMC,EAAa,GAEnB,MAAMC,EAA2B,GACjC,MAAMC,EAA+B,GACrC,MAAMC,EAAwB,GAC9B,IAAK,MAAMC,KAAiBR,EAASS,WAAY,CAC/C,IAAIC,EAAgBhB,KAAKc,GACzB,GAAIE,IAAkBC,WAAaD,IAAkB,KAAM,CACzD,GAAIpC,EAAUoC,GAAgB,CAC5BA,EAAgBA,EAAcE,SAChC,CACA,GAAIZ,EAASS,WAAWD,GAAeK,OAAS,WAAY,CAC1DR,EAAyBS,KAAKJ,GAC9BH,EAAsBO,KAAKJ,GAC3BJ,EAA6BQ,KAAKN,EACpC,KAAO,CACLJ,EAAWU,KAAKtC,CAAG,QAAQgC,MAAkBE,KAC/C,CACF,CACF,CACA,GAAIL,EAAyBU,OAAS,EAAG,CACvCX,EAAWU,KAAKtC,CAAG,mBAAmB6B,EAAyBW,KAAK,SACpEZ,EAAWU,KAAKtC,CAAG,+BAA+B+B,EAAsBS,KAAK,SAC7EZ,EAAWU,KAAKtC,CAAG,sCAAsC8B,EAA6BU,KAAK,QAC7F,CAEA,MAAMC,GAAelB,IAAU,MAAQA,SAAe,OAAS,EAAIA,EAAMmB,aAAa,kBAAoBP,UAC1G,GAAIM,EAAa,CACfb,EAAWU,KAAKtC,CAAG,iBAAiByC,KACtC,CACA,OAAOzC,CAAG;;;qBAGKyB;;;;OAIdG;;yCAGH,EACA,OAAOb,CACT,CAxDwC,CAwDtCtB,GACFsB,EAAqB4B,UAAY,KACjC9C,EAAWkB,EACX,OAAOlB,CACT,EAAG"}
@@ -0,0 +1,68 @@
1
+ import type AppComponent from "sap/fe/core/AppComponent";
2
+ import BuildingBlockBase from "sap/fe/core/buildingBlocks/BuildingBlockBase";
3
+ import type { XMLProcessorTypeValue } from "sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor";
4
+ import { registerBuildingBlock, xml } from "sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor";
5
+ import { storeRuntimeBlock } from "sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment";
6
+ import { isContext } from "sap/fe/core/helpers/TypeGuards";
7
+ import type Control from "sap/ui/core/Control";
8
+ import type View from "sap/ui/core/mvc/View";
9
+
10
+ /**
11
+ * Base class for runtime building blocks
12
+ */
13
+ export default class RuntimeBuildingBlock extends BuildingBlockBase {
14
+ public static readonly isRuntime = true;
15
+
16
+ getContent?(containingView: View, appComponent: AppComponent): Control | undefined;
17
+
18
+ static register() {
19
+ registerBuildingBlock(this);
20
+ storeRuntimeBlock(this);
21
+ }
22
+
23
+ public getTemplate(oNode?: Element): string | Promise<string | undefined> | undefined {
24
+ const metadata = (this.constructor as typeof BuildingBlockBase).metadata;
25
+
26
+ const className = `${metadata.namespace}.${metadata.name}`;
27
+ const extraProps = [];
28
+ // Function are defined as string but need to be resolved by UI5, as such we store them in an `event` property and will redispatch them later
29
+ const functionHolderDefinition = [];
30
+ const propertiesAssignedToFunction = [];
31
+ const functionStringInOrder = [];
32
+ for (const propertiesKey in metadata.properties) {
33
+ let propertyValue = this[propertiesKey as keyof this] as unknown as XMLProcessorTypeValue;
34
+ if (propertyValue !== undefined && propertyValue !== null) {
35
+ if (isContext(propertyValue)) {
36
+ propertyValue = propertyValue.getPath();
37
+ }
38
+ if (metadata.properties[propertiesKey].type === "function") {
39
+ functionHolderDefinition.push(propertyValue);
40
+ functionStringInOrder.push(propertyValue);
41
+ propertiesAssignedToFunction.push(propertiesKey);
42
+ } else {
43
+ extraProps.push(xml`feBB:${propertiesKey}="${propertyValue}"`);
44
+ }
45
+ }
46
+ }
47
+ if (functionHolderDefinition.length > 0) {
48
+ extraProps.push(xml`functionHolder="${functionHolderDefinition.join(";")}"`);
49
+ extraProps.push(xml`feBB:functionStringInOrder="${functionStringInOrder.join(",")}"`);
50
+ extraProps.push(xml`feBB:propertiesAssignedToFunction="${propertiesAssignedToFunction.join(",")}"`);
51
+ }
52
+ // core:require need to be defined on the node itself to be picked up due to the templating step
53
+ const coreRequire = oNode?.getAttribute("core:require") || undefined;
54
+ if (coreRequire) {
55
+ extraProps.push(xml`core:require="${coreRequire}"`);
56
+ }
57
+ return xml`<feBB:RuntimeBuildingBlockFragment
58
+ xmlns:core="sap.ui.core"
59
+ xmlns:feBB="sap.fe.core.buildingBlocks"
60
+ fragmentName="${className}"
61
+
62
+ id="{this>id}"
63
+ type="FE_COMPONENTS"
64
+ ${extraProps}
65
+ >
66
+ </feBB:RuntimeBuildingBlockFragment>`;
67
+ }
68
+ }
@@ -0,0 +1,162 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/jsx-runtime/jsx", "sap/ui/base/ManagedObject", "sap/ui/core/Component", "sap/ui/core/Fragment"], function (CommonUtils, BindingToolkit, ClassSupport, jsx, ManagedObject, Component, Fragment) {
6
+ "use strict";
7
+
8
+ var _dec, _dec2, _class, _class2, _descriptor;
9
+ var _exports = {};
10
+ var event = ClassSupport.event;
11
+ var defineUI5Class = ClassSupport.defineUI5Class;
12
+ var resolveBindingString = BindingToolkit.resolveBindingString;
13
+ function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
14
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
15
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
16
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
17
+ function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
18
+ function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
19
+ let RuntimeBuildingBlockFragment = (
20
+ /**
21
+ * Internal extension to the Fragment class in order to add some place to hold functions for runtime building blocks
22
+ */
23
+ _dec = defineUI5Class("sap.fe.core.buildingBlocks.RuntimeBuildingBlockFragment"), _dec2 = event(), _dec(_class = (_class2 = /*#__PURE__*/function (_Fragment) {
24
+ _inheritsLoose(RuntimeBuildingBlockFragment, _Fragment);
25
+ function RuntimeBuildingBlockFragment() {
26
+ var _this;
27
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
28
+ args[_key] = arguments[_key];
29
+ }
30
+ _this = _Fragment.call(this, ...args) || this;
31
+ _initializerDefineProperty(_this, "functionHolder", _descriptor, _assertThisInitialized(_this));
32
+ return _this;
33
+ }
34
+ _exports = RuntimeBuildingBlockFragment;
35
+ return RuntimeBuildingBlockFragment;
36
+ }(Fragment), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "functionHolder", [_dec2], {
37
+ configurable: true,
38
+ enumerable: true,
39
+ writable: true,
40
+ initializer: null
41
+ })), _class2)) || _class);
42
+ _exports = RuntimeBuildingBlockFragment;
43
+ const RUNTIME_BLOCKS = {};
44
+ /**
45
+ * Stores the class of a runtime building block to be loaded whenever the building block is used at runtime.
46
+ *
47
+ * @param BuildingBlockClass
48
+ */
49
+ function storeRuntimeBlock(BuildingBlockClass) {
50
+ RUNTIME_BLOCKS[`${BuildingBlockClass.metadata.namespace}.${BuildingBlockClass.metadata.name}`] = BuildingBlockClass;
51
+ }
52
+ _exports.storeRuntimeBlock = storeRuntimeBlock;
53
+ RuntimeBuildingBlockFragment.registerType("FE_COMPONENTS", {
54
+ load: async function (mSettings) {
55
+ return Promise.resolve(RUNTIME_BLOCKS[mSettings.fragmentName]);
56
+ },
57
+ init: function (mSettings) {
58
+ var _mSettings$customData, _mSettings$customData2, _mSettings$customData3, _mSettings$customData4, _mSettings$containing, _mSettings$containing2, _mSettings$containing3, _mSettings$containing4, _feCustomData$functio, _feCustomData$propert;
59
+ let BuildingBlockClass = mSettings.fragmentContent;
60
+ if (BuildingBlockClass === undefined) {
61
+ // In some case we might have been called here synchronously (unstash case for instance), which means we didn't go through the load function
62
+ BuildingBlockClass = RUNTIME_BLOCKS[mSettings.fragmentName];
63
+ }
64
+ if (BuildingBlockClass === undefined) {
65
+ throw new Error(`No building block class for runtime building block ${mSettings.fragmentName} found`);
66
+ }
67
+ const classSettings = {};
68
+ const feCustomData = ((_mSettings$customData = mSettings.customData) === null || _mSettings$customData === void 0 ? void 0 : (_mSettings$customData2 = _mSettings$customData[0]) === null || _mSettings$customData2 === void 0 ? void 0 : (_mSettings$customData3 = _mSettings$customData2.mProperties) === null || _mSettings$customData3 === void 0 ? void 0 : (_mSettings$customData4 = _mSettings$customData3.value) === null || _mSettings$customData4 === void 0 ? void 0 : _mSettings$customData4["sap.fe.core.buildingBlocks"]) || {};
69
+ delete mSettings.customData;
70
+ const functionHolder = mSettings.functionHolder ?? [];
71
+ delete mSettings.functionHolder;
72
+
73
+ // containingView can also be a fragment, so we have to use the controller to be sure to get the actual view
74
+ const containingView = ((_mSettings$containing = (_mSettings$containing2 = mSettings.containingView).getController) === null || _mSettings$containing === void 0 ? void 0 : (_mSettings$containing3 = (_mSettings$containing4 = _mSettings$containing.call(_mSettings$containing2)).getView) === null || _mSettings$containing3 === void 0 ? void 0 : _mSettings$containing3.call(_mSettings$containing4)) ?? mSettings.containingView;
75
+ const pageComponent = Component.getOwnerComponentFor(containingView);
76
+ const appComponent = CommonUtils.getAppComponent(containingView);
77
+ const metaModel = appComponent.getMetaModel();
78
+ const pageModel = pageComponent.getModel("_pageModel");
79
+ const functionStringInOrder = (_feCustomData$functio = feCustomData.functionStringInOrder) === null || _feCustomData$functio === void 0 ? void 0 : _feCustomData$functio.split(",");
80
+ const propertiesAssignedToFunction = (_feCustomData$propert = feCustomData.propertiesAssignedToFunction) === null || _feCustomData$propert === void 0 ? void 0 : _feCustomData$propert.split(",");
81
+ for (const propertyName in BuildingBlockClass.metadata.properties) {
82
+ const propertyMetadata = BuildingBlockClass.metadata.properties[propertyName];
83
+ const pageModelContext = pageModel.createBindingContext(feCustomData[propertyName]);
84
+ if (pageModelContext === null) {
85
+ // value cannot be resolved, so it is either a runtime binding or a constant
86
+ let value = feCustomData[propertyName];
87
+ if (typeof value === "string") {
88
+ if (propertyMetadata.bindable !== true) {
89
+ // runtime bindings are not allowed, so convert strings into actual primitive types
90
+ switch (propertyMetadata.type) {
91
+ case "boolean":
92
+ value = value === "true";
93
+ break;
94
+ case "number":
95
+ value = Number(value);
96
+ break;
97
+ }
98
+ } else {
99
+ // runtime bindings are allowed, so resolve the values as BindingToolkit expressions
100
+ value = resolveBindingString(value, propertyMetadata.type);
101
+ }
102
+ } else if (propertyMetadata.type === "function") {
103
+ const functionIndex = propertiesAssignedToFunction.indexOf(propertyName);
104
+ const functionString = functionStringInOrder[functionIndex];
105
+ const targetFunction = functionHolder === null || functionHolder === void 0 ? void 0 : functionHolder.find(functionDef => {
106
+ var _functionDef$;
107
+ return ((_functionDef$ = functionDef[0]) === null || _functionDef$ === void 0 ? void 0 : _functionDef$._sapui_handlerName) === functionString;
108
+ });
109
+ // We use the _sapui_handlerName to identify which function is the one we want to bind here
110
+ if (targetFunction && targetFunction.length > 1) {
111
+ value = targetFunction[0].bind(targetFunction[1]);
112
+ }
113
+ }
114
+ classSettings[propertyName] = value;
115
+ } else if (pageModelContext.getObject() !== undefined) {
116
+ // get value from page model
117
+ classSettings[propertyName] = pageModelContext.getObject();
118
+ } else {
119
+ // bind to metamodel
120
+ classSettings[propertyName] = metaModel.createBindingContext(feCustomData[propertyName]);
121
+ }
122
+ }
123
+ return ManagedObject.runWithPreprocessors(() => {
124
+ const renderedControl = jsx.withContext({
125
+ view: containingView,
126
+ appComponent: appComponent
127
+ }, () => {
128
+ var _getContent, _ref;
129
+ const templateProcessingSettings = {
130
+ models: {
131
+ "sap.fe.i18n": containingView.getModel("sap.fe.i18n")
132
+ }
133
+ };
134
+ return (_getContent = (_ref = new BuildingBlockClass(classSettings, {}, templateProcessingSettings)).getContent) === null || _getContent === void 0 ? void 0 : _getContent.call(_ref, containingView, appComponent);
135
+ });
136
+ if (!this._bAsync) {
137
+ this._aContent = renderedControl;
138
+ }
139
+ return renderedControl;
140
+ }, {
141
+ id: function (sId) {
142
+ return containingView.createId(sId);
143
+ },
144
+ settings: function (controlSettings) {
145
+ const allAssociations = this.getMetadata().getAssociations();
146
+ for (const associationDetailName of Object.keys(allAssociations)) {
147
+ if (controlSettings[associationDetailName] !== undefined) {
148
+ // The associated elements are indicated via local IDs; we need to change the references to global ones
149
+ const associations = Array.isArray(controlSettings[associationDetailName]) ? controlSettings[associationDetailName] : [controlSettings[associationDetailName]];
150
+
151
+ // Create global IDs for associations given as strings, not for already resolved ManagedObjects
152
+ controlSettings[associationDetailName] = associations.map(association => typeof association === "string" ? mSettings.containingView.createId(association) : association);
153
+ }
154
+ }
155
+ return controlSettings;
156
+ }
157
+ });
158
+ }
159
+ });
160
+ return _exports;
161
+ }, false);
162
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSdW50aW1lQnVpbGRpbmdCbG9ja0ZyYWdtZW50IiwiZGVmaW5lVUk1Q2xhc3MiLCJldmVudCIsIkZyYWdtZW50IiwiUlVOVElNRV9CTE9DS1MiLCJzdG9yZVJ1bnRpbWVCbG9jayIsIkJ1aWxkaW5nQmxvY2tDbGFzcyIsIm1ldGFkYXRhIiwibmFtZXNwYWNlIiwibmFtZSIsInJlZ2lzdGVyVHlwZSIsImxvYWQiLCJtU2V0dGluZ3MiLCJQcm9taXNlIiwicmVzb2x2ZSIsImZyYWdtZW50TmFtZSIsImluaXQiLCJmcmFnbWVudENvbnRlbnQiLCJ1bmRlZmluZWQiLCJFcnJvciIsImNsYXNzU2V0dGluZ3MiLCJmZUN1c3RvbURhdGEiLCJjdXN0b21EYXRhIiwibVByb3BlcnRpZXMiLCJ2YWx1ZSIsImZ1bmN0aW9uSG9sZGVyIiwiY29udGFpbmluZ1ZpZXciLCJnZXRDb250cm9sbGVyIiwiZ2V0VmlldyIsInBhZ2VDb21wb25lbnQiLCJDb21wb25lbnQiLCJnZXRPd25lckNvbXBvbmVudEZvciIsImFwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwibWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwicGFnZU1vZGVsIiwiZ2V0TW9kZWwiLCJmdW5jdGlvblN0cmluZ0luT3JkZXIiLCJzcGxpdCIsInByb3BlcnRpZXNBc3NpZ25lZFRvRnVuY3Rpb24iLCJwcm9wZXJ0eU5hbWUiLCJwcm9wZXJ0aWVzIiwicHJvcGVydHlNZXRhZGF0YSIsInBhZ2VNb2RlbENvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImJpbmRhYmxlIiwidHlwZSIsIk51bWJlciIsInJlc29sdmVCaW5kaW5nU3RyaW5nIiwiZnVuY3Rpb25JbmRleCIsImluZGV4T2YiLCJmdW5jdGlvblN0cmluZyIsInRhcmdldEZ1bmN0aW9uIiwiZmluZCIsImZ1bmN0aW9uRGVmIiwiX3NhcHVpX2hhbmRsZXJOYW1lIiwibGVuZ3RoIiwiYmluZCIsImdldE9iamVjdCIsIk1hbmFnZWRPYmplY3QiLCJydW5XaXRoUHJlcHJvY2Vzc29ycyIsInJlbmRlcmVkQ29udHJvbCIsImpzeCIsIndpdGhDb250ZXh0IiwidmlldyIsInRlbXBsYXRlUHJvY2Vzc2luZ1NldHRpbmdzIiwibW9kZWxzIiwiZ2V0Q29udGVudCIsIl9iQXN5bmMiLCJfYUNvbnRlbnQiLCJpZCIsInNJZCIsImNyZWF0ZUlkIiwic2V0dGluZ3MiLCJjb250cm9sU2V0dGluZ3MiLCJhbGxBc3NvY2lhdGlvbnMiLCJnZXRNZXRhZGF0YSIsImdldEFzc29jaWF0aW9ucyIsImFzc29jaWF0aW9uRGV0YWlsTmFtZSIsIk9iamVjdCIsImtleXMiLCJhc3NvY2lhdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJhc3NvY2lhdGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiUnVudGltZUJ1aWxkaW5nQmxvY2tGcmFnbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgdHlwZSBSdW50aW1lQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvUnVudGltZUJ1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IHJlc29sdmVCaW5kaW5nU3RyaW5nIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBldmVudCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2NvcmUvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgdHlwZSBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvZmUvY29yZS9SZXNvdXJjZU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBUZW1wbGF0ZUNvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVDb21wb25lbnRcIjtcbmltcG9ydCBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBGcmFnbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRnJhZ21lbnRcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgdHlwZSB7IE1hbmFnZWRPYmplY3RFeCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi8uLi90eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcblxuLyoqXG4gKiBJbnRlcm5hbCBleHRlbnNpb24gdG8gdGhlIEZyYWdtZW50IGNsYXNzIGluIG9yZGVyIHRvIGFkZCBzb21lIHBsYWNlIHRvIGhvbGQgZnVuY3Rpb25zIGZvciBydW50aW1lIGJ1aWxkaW5nIGJsb2Nrc1xuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5idWlsZGluZ0Jsb2Nrcy5SdW50aW1lQnVpbGRpbmdCbG9ja0ZyYWdtZW50XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSdW50aW1lQnVpbGRpbmdCbG9ja0ZyYWdtZW50IGV4dGVuZHMgRnJhZ21lbnQge1xuXHQvKlxuXHQgKiBFdmVudCB0byBob2xkIGFuZCByZXNvbHZlIGZ1bmN0aW9ucyBmb3IgcnVudGltZSBidWlsZGluZyBibG9ja3Ncblx0ICovXG5cdEBldmVudCgpXG5cdGZ1bmN0aW9uSG9sZGVyITogRnVuY3Rpb247XG59XG5cbnR5cGUgRnJhZ21lbnRDdXN0b21EYXRhID0ge1xuXHRtUHJvcGVydGllczoge1xuXHRcdHZhbHVlOiB7XG5cdFx0XHRcInNhcC5mZS5jb3JlLmJ1aWxkaW5nQmxvY2tzXCI/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRcdH07XG5cdH07XG59O1xuXG50eXBlIEZFQ29tcG9uZW50RnJhZ21lbnRTZXR0aW5ncyA9IHtcblx0ZnJhZ21lbnROYW1lOiBzdHJpbmc7XG5cdGZyYWdtZW50Q29udGVudD86IHR5cGVvZiBSdW50aW1lQnVpbGRpbmdCbG9jaztcblx0Y29udGFpbmluZ1ZpZXc6IFZpZXc7XG5cdGN1c3RvbURhdGE/OiBGcmFnbWVudEN1c3RvbURhdGFbXTtcblx0ZnVuY3Rpb25Ib2xkZXI/OiBGdW5jdGlvbldpdGhIYW5kbGVyW11bXTtcbn07XG5cbnR5cGUgRnVuY3Rpb25XaXRoSGFuZGxlciA9IEZ1bmN0aW9uICYge1xuXHRfc2FwdWlfaGFuZGxlck5hbWU/OiBzdHJpbmc7XG59O1xudHlwZSBGcmFnbWVudFdpdGhJbnRlcm5hbHMgPSB7XG5cdF9iQXN5bmM6IGJvb2xlYW47XG5cdF9hQ29udGVudDogQ29udHJvbCB8IENvbnRyb2xbXTtcbn07XG5cbmNvbnN0IFJVTlRJTUVfQkxPQ0tTOiBSZWNvcmQ8c3RyaW5nLCB0eXBlb2YgUnVudGltZUJ1aWxkaW5nQmxvY2s+ID0ge307XG4vKipcbiAqIFN0b3JlcyB0aGUgY2xhc3Mgb2YgYSBydW50aW1lIGJ1aWxkaW5nIGJsb2NrIHRvIGJlIGxvYWRlZCB3aGVuZXZlciB0aGUgYnVpbGRpbmcgYmxvY2sgaXMgdXNlZCBhdCBydW50aW1lLlxuICpcbiAqIEBwYXJhbSBCdWlsZGluZ0Jsb2NrQ2xhc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0b3JlUnVudGltZUJsb2NrKEJ1aWxkaW5nQmxvY2tDbGFzczogdHlwZW9mIFJ1bnRpbWVCdWlsZGluZ0Jsb2NrKSB7XG5cdFJVTlRJTUVfQkxPQ0tTW2Ake0J1aWxkaW5nQmxvY2tDbGFzcy5tZXRhZGF0YS5uYW1lc3BhY2V9LiR7QnVpbGRpbmdCbG9ja0NsYXNzLm1ldGFkYXRhLm5hbWV9YF0gPSBCdWlsZGluZ0Jsb2NrQ2xhc3M7XG59XG5cblJ1bnRpbWVCdWlsZGluZ0Jsb2NrRnJhZ21lbnQucmVnaXN0ZXJUeXBlKFwiRkVfQ09NUE9ORU5UU1wiLCB7XG5cdGxvYWQ6IGFzeW5jIGZ1bmN0aW9uIChtU2V0dGluZ3M6IEZFQ29tcG9uZW50RnJhZ21lbnRTZXR0aW5ncykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoUlVOVElNRV9CTE9DS1NbbVNldHRpbmdzLmZyYWdtZW50TmFtZV0pO1xuXHR9LFxuXHRpbml0OiBmdW5jdGlvbiAodGhpczogRnJhZ21lbnRXaXRoSW50ZXJuYWxzLCBtU2V0dGluZ3M6IEZFQ29tcG9uZW50RnJhZ21lbnRTZXR0aW5ncykge1xuXHRcdGxldCBCdWlsZGluZ0Jsb2NrQ2xhc3MgPSBtU2V0dGluZ3MuZnJhZ21lbnRDb250ZW50O1xuXHRcdGlmIChCdWlsZGluZ0Jsb2NrQ2xhc3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Ly8gSW4gc29tZSBjYXNlIHdlIG1pZ2h0IGhhdmUgYmVlbiBjYWxsZWQgaGVyZSBzeW5jaHJvbm91c2x5ICh1bnN0YXNoIGNhc2UgZm9yIGluc3RhbmNlKSwgd2hpY2ggbWVhbnMgd2UgZGlkbid0IGdvIHRocm91Z2ggdGhlIGxvYWQgZnVuY3Rpb25cblx0XHRcdEJ1aWxkaW5nQmxvY2tDbGFzcyA9IFJVTlRJTUVfQkxPQ0tTW21TZXR0aW5ncy5mcmFnbWVudE5hbWVdO1xuXHRcdH1cblx0XHRpZiAoQnVpbGRpbmdCbG9ja0NsYXNzID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgTm8gYnVpbGRpbmcgYmxvY2sgY2xhc3MgZm9yIHJ1bnRpbWUgYnVpbGRpbmcgYmxvY2sgJHttU2V0dGluZ3MuZnJhZ21lbnROYW1lfSBmb3VuZGApO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNsYXNzU2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cdFx0Y29uc3QgZmVDdXN0b21EYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gbVNldHRpbmdzLmN1c3RvbURhdGE/LlswXT8ubVByb3BlcnRpZXM/LnZhbHVlPy5bXCJzYXAuZmUuY29yZS5idWlsZGluZ0Jsb2Nrc1wiXSB8fCB7fTtcblx0XHRkZWxldGUgbVNldHRpbmdzLmN1c3RvbURhdGE7XG5cdFx0Y29uc3QgZnVuY3Rpb25Ib2xkZXI6IEZ1bmN0aW9uV2l0aEhhbmRsZXJbXVtdID0gbVNldHRpbmdzLmZ1bmN0aW9uSG9sZGVyID8/IFtdO1xuXHRcdGRlbGV0ZSBtU2V0dGluZ3MuZnVuY3Rpb25Ib2xkZXI7XG5cblx0XHQvLyBjb250YWluaW5nVmlldyBjYW4gYWxzbyBiZSBhIGZyYWdtZW50LCBzbyB3ZSBoYXZlIHRvIHVzZSB0aGUgY29udHJvbGxlciB0byBiZSBzdXJlIHRvIGdldCB0aGUgYWN0dWFsIHZpZXdcblx0XHRjb25zdCBjb250YWluaW5nVmlldyA9IG1TZXR0aW5ncy5jb250YWluaW5nVmlldy5nZXRDb250cm9sbGVyPy4oKS5nZXRWaWV3Py4oKSA/PyBtU2V0dGluZ3MuY29udGFpbmluZ1ZpZXc7XG5cdFx0Y29uc3QgcGFnZUNvbXBvbmVudCA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcihjb250YWluaW5nVmlldykgYXMgVGVtcGxhdGVDb21wb25lbnQ7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KGNvbnRhaW5pbmdWaWV3KTtcblxuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IGFwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBwYWdlTW9kZWwgPSBwYWdlQ29tcG9uZW50LmdldE1vZGVsKFwiX3BhZ2VNb2RlbFwiKTtcblxuXHRcdGNvbnN0IGZ1bmN0aW9uU3RyaW5nSW5PcmRlcjogc3RyaW5nW10gfCB1bmRlZmluZWQgPSBmZUN1c3RvbURhdGEuZnVuY3Rpb25TdHJpbmdJbk9yZGVyPy5zcGxpdChcIixcIik7XG5cdFx0Y29uc3QgcHJvcGVydGllc0Fzc2lnbmVkVG9GdW5jdGlvbjogc3RyaW5nW10gfCB1bmRlZmluZWQgPSBmZUN1c3RvbURhdGEucHJvcGVydGllc0Fzc2lnbmVkVG9GdW5jdGlvbj8uc3BsaXQoXCIsXCIpO1xuXHRcdGZvciAoY29uc3QgcHJvcGVydHlOYW1lIGluIEJ1aWxkaW5nQmxvY2tDbGFzcy5tZXRhZGF0YS5wcm9wZXJ0aWVzKSB7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eU1ldGFkYXRhID0gQnVpbGRpbmdCbG9ja0NsYXNzLm1ldGFkYXRhLnByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTtcblx0XHRcdGNvbnN0IHBhZ2VNb2RlbENvbnRleHQgPSBwYWdlTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoZmVDdXN0b21EYXRhW3Byb3BlcnR5TmFtZV0pO1xuXG5cdFx0XHRpZiAocGFnZU1vZGVsQ29udGV4dCA9PT0gbnVsbCkge1xuXHRcdFx0XHQvLyB2YWx1ZSBjYW5ub3QgYmUgcmVzb2x2ZWQsIHNvIGl0IGlzIGVpdGhlciBhIHJ1bnRpbWUgYmluZGluZyBvciBhIGNvbnN0YW50XG5cdFx0XHRcdGxldCB2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyPiB8IHVuZGVmaW5lZCA9XG5cdFx0XHRcdFx0ZmVDdXN0b21EYXRhW3Byb3BlcnR5TmFtZV07XG5cblx0XHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdGlmIChwcm9wZXJ0eU1ldGFkYXRhLmJpbmRhYmxlICE9PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHQvLyBydW50aW1lIGJpbmRpbmdzIGFyZSBub3QgYWxsb3dlZCwgc28gY29udmVydCBzdHJpbmdzIGludG8gYWN0dWFsIHByaW1pdGl2ZSB0eXBlc1xuXHRcdFx0XHRcdFx0c3dpdGNoIChwcm9wZXJ0eU1ldGFkYXRhLnR5cGUpIHtcblx0XHRcdFx0XHRcdFx0Y2FzZSBcImJvb2xlYW5cIjpcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBcInRydWVcIjtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0Y2FzZSBcIm51bWJlclwiOlxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Ly8gcnVudGltZSBiaW5kaW5ncyBhcmUgYWxsb3dlZCwgc28gcmVzb2x2ZSB0aGUgdmFsdWVzIGFzIEJpbmRpbmdUb29sa2l0IGV4cHJlc3Npb25zXG5cdFx0XHRcdFx0XHR2YWx1ZSA9IHJlc29sdmVCaW5kaW5nU3RyaW5nKHZhbHVlLCBwcm9wZXJ0eU1ldGFkYXRhLnR5cGUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChwcm9wZXJ0eU1ldGFkYXRhLnR5cGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdFx0XHRcdGNvbnN0IGZ1bmN0aW9uSW5kZXggPSBwcm9wZXJ0aWVzQXNzaWduZWRUb0Z1bmN0aW9uLmluZGV4T2YocHJvcGVydHlOYW1lKTtcblx0XHRcdFx0XHRjb25zdCBmdW5jdGlvblN0cmluZyA9IGZ1bmN0aW9uU3RyaW5nSW5PcmRlcltmdW5jdGlvbkluZGV4XTtcblx0XHRcdFx0XHRjb25zdCB0YXJnZXRGdW5jdGlvbiA9IGZ1bmN0aW9uSG9sZGVyPy5maW5kKChmdW5jdGlvbkRlZikgPT4gZnVuY3Rpb25EZWZbMF0/Ll9zYXB1aV9oYW5kbGVyTmFtZSA9PT0gZnVuY3Rpb25TdHJpbmcpO1xuXHRcdFx0XHRcdC8vIFdlIHVzZSB0aGUgX3NhcHVpX2hhbmRsZXJOYW1lIHRvIGlkZW50aWZ5IHdoaWNoIGZ1bmN0aW9uIGlzIHRoZSBvbmUgd2Ugd2FudCB0byBiaW5kIGhlcmVcblx0XHRcdFx0XHRpZiAodGFyZ2V0RnVuY3Rpb24gJiYgdGFyZ2V0RnVuY3Rpb24ubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdFx0dmFsdWUgPSB0YXJnZXRGdW5jdGlvblswXS5iaW5kKHRhcmdldEZ1bmN0aW9uWzFdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjbGFzc1NldHRpbmdzW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcblx0XHRcdH0gZWxzZSBpZiAocGFnZU1vZGVsQ29udGV4dC5nZXRPYmplY3QoKSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdC8vIGdldCB2YWx1ZSBmcm9tIHBhZ2UgbW9kZWxcblx0XHRcdFx0Y2xhc3NTZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gcGFnZU1vZGVsQ29udGV4dC5nZXRPYmplY3QoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIGJpbmQgdG8gbWV0YW1vZGVsXG5cdFx0XHRcdGNsYXNzU2V0dGluZ3NbcHJvcGVydHlOYW1lXSA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChmZUN1c3RvbURhdGFbcHJvcGVydHlOYW1lXSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIChNYW5hZ2VkT2JqZWN0IGFzIE1hbmFnZWRPYmplY3RFeCkucnVuV2l0aFByZXByb2Nlc3NvcnMoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHJlbmRlcmVkQ29udHJvbCA9IGpzeC53aXRoQ29udGV4dCh7IHZpZXc6IGNvbnRhaW5pbmdWaWV3LCBhcHBDb21wb25lbnQ6IGFwcENvbXBvbmVudCB9LCAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdGVtcGxhdGVQcm9jZXNzaW5nU2V0dGluZ3MgPSB7XG5cdFx0XHRcdFx0XHRtb2RlbHM6IHtcblx0XHRcdFx0XHRcdFx0XCJzYXAuZmUuaTE4blwiOiBjb250YWluaW5nVmlldy5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpIGFzIFJlc291cmNlTW9kZWxcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGFzIFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3M7XG5cdFx0XHRcdFx0cmV0dXJuIG5ldyBCdWlsZGluZ0Jsb2NrQ2xhc3MhKGNsYXNzU2V0dGluZ3MsIHt9LCB0ZW1wbGF0ZVByb2Nlc3NpbmdTZXR0aW5ncykuZ2V0Q29udGVudD8uKFxuXHRcdFx0XHRcdFx0Y29udGFpbmluZ1ZpZXcsXG5cdFx0XHRcdFx0XHRhcHBDb21wb25lbnRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0aWYgKCF0aGlzLl9iQXN5bmMpIHtcblx0XHRcdFx0XHR0aGlzLl9hQ29udGVudCA9IHJlbmRlcmVkQ29udHJvbDtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gcmVuZGVyZWRDb250cm9sO1xuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0aWQ6IGZ1bmN0aW9uIChzSWQ6IHN0cmluZykge1xuXHRcdFx0XHRcdHJldHVybiBjb250YWluaW5nVmlldy5jcmVhdGVJZChzSWQpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRzZXR0aW5nczogZnVuY3Rpb24gKGNvbnRyb2xTZXR0aW5nczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgTWFuYWdlZE9iamVjdCB8IChzdHJpbmcgfCBNYW5hZ2VkT2JqZWN0KVtdPikge1xuXHRcdFx0XHRcdGNvbnN0IGFsbEFzc29jaWF0aW9ucyA9IHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRBc3NvY2lhdGlvbnMoKTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IGFzc29jaWF0aW9uRGV0YWlsTmFtZSBvZiBPYmplY3Qua2V5cyhhbGxBc3NvY2lhdGlvbnMpKSB7XG5cdFx0XHRcdFx0XHRpZiAoY29udHJvbFNldHRpbmdzW2Fzc29jaWF0aW9uRGV0YWlsTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0XHQvLyBUaGUgYXNzb2NpYXRlZCBlbGVtZW50cyBhcmUgaW5kaWNhdGVkIHZpYSBsb2NhbCBJRHM7IHdlIG5lZWQgdG8gY2hhbmdlIHRoZSByZWZlcmVuY2VzIHRvIGdsb2JhbCBvbmVzXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGFzc29jaWF0aW9ucyA9IChcblx0XHRcdFx0XHRcdFx0XHRBcnJheS5pc0FycmF5KGNvbnRyb2xTZXR0aW5nc1thc3NvY2lhdGlvbkRldGFpbE5hbWVdKVxuXHRcdFx0XHRcdFx0XHRcdFx0PyBjb250cm9sU2V0dGluZ3NbYXNzb2NpYXRpb25EZXRhaWxOYW1lXVxuXHRcdFx0XHRcdFx0XHRcdFx0OiBbY29udHJvbFNldHRpbmdzW2Fzc29jaWF0aW9uRGV0YWlsTmFtZV1dXG5cdFx0XHRcdFx0XHRcdCkgYXMgKHN0cmluZyB8IE1hbmFnZWRPYmplY3QpW107XG5cblx0XHRcdFx0XHRcdFx0Ly8gQ3JlYXRlIGdsb2JhbCBJRHMgZm9yIGFzc29jaWF0aW9ucyBnaXZlbiBhcyBzdHJpbmdzLCBub3QgZm9yIGFscmVhZHkgcmVzb2x2ZWQgTWFuYWdlZE9iamVjdHNcblx0XHRcdFx0XHRcdFx0Y29udHJvbFNldHRpbmdzW2Fzc29jaWF0aW9uRGV0YWlsTmFtZV0gPSBhc3NvY2lhdGlvbnMubWFwKChhc3NvY2lhdGlvbjogc3RyaW5nIHwgTWFuYWdlZE9iamVjdCkgPT5cblx0XHRcdFx0XHRcdFx0XHR0eXBlb2YgYXNzb2NpYXRpb24gPT09IFwic3RyaW5nXCIgPyBtU2V0dGluZ3MuY29udGFpbmluZ1ZpZXcuY3JlYXRlSWQoYXNzb2NpYXRpb24pIDogYXNzb2NpYXRpb25cblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIGNvbnRyb2xTZXR0aW5ncztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdCk7XG5cdH1cbn0pO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7TUFvQnFCQSw0QkFBNEI7RUFKakQ7QUFD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
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/core/CommonUtils","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ClassSupport","sap/fe/core/jsx-runtime/jsx","sap/ui/base/ManagedObject","sap/ui/core/Component","sap/ui/core/Fragment"],function(e,n,t,i,r,o,a){"use strict";var l,s,c,u,d;var f={};var p=t.event;var g=t.defineUI5Class;var v=n.resolveBindingString;function b(e,n,t,i){if(!t)return;Object.defineProperty(e,n,{enumerable:t.enumerable,configurable:t.configurable,writable:t.writable,value:t.initializer?t.initializer.call(i):void 0})}function m(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function h(e,n){e.prototype=Object.create(n.prototype);e.prototype.constructor=e;y(e,n)}function y(e,n){y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(n,t){n.__proto__=t;return n};return y(e,n)}function w(e,n,t,i,r){var o={};Object.keys(i).forEach(function(e){o[e]=i[e]});o.enumerable=!!o.enumerable;o.configurable=!!o.configurable;if("value"in o||o.initializer){o.writable=true}o=t.slice().reverse().reduce(function(t,i){return i(e,n,t)||t},o);if(r&&o.initializer!==void 0){o.value=o.initializer?o.initializer.call(r):void 0;o.initializer=undefined}if(o.initializer===void 0){Object.defineProperty(e,n,o);o=null}return o}function O(e,n){throw new Error("Decorating class property failed. Please ensure that "+"proposal-class-properties is enabled and runs after the decorators transform.")}let C=(l=g("sap.fe.core.buildingBlocks.RuntimeBuildingBlockFragment"),s=p(),l(c=(u=function(e){h(n,e);function n(){var n;for(var t=arguments.length,i=new Array(t),r=0;r<t;r++){i[r]=arguments[r]}n=e.call(this,...i)||this;b(n,"functionHolder",d,m(n));return n}f=n;return n}(a),d=w(u.prototype,"functionHolder",[s],{configurable:true,enumerable:true,writable:true,initializer:null}),u))||c);f=C;const j={};function k(e){j[`${e.metadata.namespace}.${e.metadata.name}`]=e}f.storeRuntimeBlock=k;C.registerType("FE_COMPONENTS",{load:async function(e){return Promise.resolve(j[e.fragmentName])},init:function(n){var t,a,l,s,c,u,d,f,p,g;let b=n.fragmentContent;if(b===undefined){b=j[n.fragmentName]}if(b===undefined){throw new Error(`No building block class for runtime building block ${n.fragmentName} found`)}const m={};const h=((t=n.customData)===null||t===void 0?void 0:(a=t[0])===null||a===void 0?void 0:(l=a.mProperties)===null||l===void 0?void 0:(s=l.value)===null||s===void 0?void 0:s["sap.fe.core.buildingBlocks"])||{};delete n.customData;const y=n.functionHolder??[];delete n.functionHolder;const w=((c=(u=n.containingView).getController)===null||c===void 0?void 0:(d=(f=c.call(u)).getView)===null||d===void 0?void 0:d.call(f))??n.containingView;const O=o.getOwnerComponentFor(w);const C=e.getAppComponent(w);const k=C.getMetaModel();const _=O.getModel("_pageModel");const z=(p=h.functionStringInOrder)===null||p===void 0?void 0:p.split(",");const B=(g=h.propertiesAssignedToFunction)===null||g===void 0?void 0:g.split(",");for(const e in b.metadata.properties){const n=b.metadata.properties[e];const t=_.createBindingContext(h[e]);if(t===null){let t=h[e];if(typeof t==="string"){if(n.bindable!==true){switch(n.type){case"boolean":t=t==="true";break;case"number":t=Number(t);break}}else{t=v(t,n.type)}}else if(n.type==="function"){const n=B.indexOf(e);const i=z[n];const r=y===null||y===void 0?void 0:y.find(e=>{var n;return((n=e[0])===null||n===void 0?void 0:n._sapui_handlerName)===i});if(r&&r.length>1){t=r[0].bind(r[1])}}m[e]=t}else if(t.getObject()!==undefined){m[e]=t.getObject()}else{m[e]=k.createBindingContext(h[e])}}return r.runWithPreprocessors(()=>{const e=i.withContext({view:w,appComponent:C},()=>{var e,n;const t={models:{"sap.fe.i18n":w.getModel("sap.fe.i18n")}};return(e=(n=new b(m,{},t)).getContent)===null||e===void 0?void 0:e.call(n,w,C)});if(!this._bAsync){this._aContent=e}return e},{id:function(e){return w.createId(e)},settings:function(e){const t=this.getMetadata().getAssociations();for(const i of Object.keys(t)){if(e[i]!==undefined){const t=Array.isArray(e[i])?e[i]:[e[i]];e[i]=t.map(e=>typeof e==="string"?n.containingView.createId(e):e)}}return e}})}});return f},false);
6
+ //# sourceMappingURL=RuntimeBuildingBlockFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeBuildingBlockFragment.js","names":["sap","ui","define","CommonUtils","BindingToolkit","ClassSupport","jsx","ManagedObject","Component","Fragment","_dec","_dec2","_class","_class2","_descriptor","_exports","event","defineUI5Class","resolveBindingString","_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","RuntimeBuildingBlockFragment","_Fragment","_this","_len","arguments","length","args","Array","_key","this","RUNTIME_BLOCKS","storeRuntimeBlock","BuildingBlockClass","metadata","namespace","name","registerType","load","async","mSettings","Promise","resolve","fragmentName","init","_mSettings$customData","_mSettings$customData2","_mSettings$customData3","_mSettings$customData4","_mSettings$containing","_mSettings$containing2","_mSettings$containing3","_mSettings$containing4","_feCustomData$functio","_feCustomData$propert","fragmentContent","classSettings","feCustomData","customData","mProperties","functionHolder","containingView","getController","getView","pageComponent","getOwnerComponentFor","appComponent","getAppComponent","metaModel","getMetaModel","pageModel","getModel","functionStringInOrder","split","propertiesAssignedToFunction","propertyName","properties","propertyMetadata","pageModelContext","createBindingContext","bindable","type","Number","functionIndex","indexOf","functionString","targetFunction","find","functionDef","_functionDef$","_sapui_handlerName","getObject","runWithPreprocessors","renderedControl","withContext","view","_getContent","_ref","templateProcessingSettings","models","getContent","_bAsync","_aContent","id","sId","createId","settings","controlSettings","allAssociations","getMetadata","getAssociations","associationDetailName","associations","isArray","map","association"],"sources":["RuntimeBuildingBlockFragment-dbg.js"],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ import type { TemplateProcessorSettings } from "sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor";
2
+ import type RuntimeBuildingBlock from "sap/fe/core/buildingBlocks/RuntimeBuildingBlock";
3
+ import CommonUtils from "sap/fe/core/CommonUtils";
4
+ import type { BindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
5
+ import { resolveBindingString } from "sap/fe/core/helpers/BindingToolkit";
6
+ import { defineUI5Class, event } from "sap/fe/core/helpers/ClassSupport";
7
+ import jsx from "sap/fe/core/jsx-runtime/jsx";
8
+ import type ResourceModel from "sap/fe/core/ResourceModel";
9
+ import type TemplateComponent from "sap/fe/core/TemplateComponent";
10
+ import ManagedObject from "sap/ui/base/ManagedObject";
11
+ import Component from "sap/ui/core/Component";
12
+ import type Control from "sap/ui/core/Control";
13
+ import Fragment from "sap/ui/core/Fragment";
14
+ import type View from "sap/ui/core/mvc/View";
15
+ import type { ManagedObjectEx } from "../../../../../../../types/extension_types";
16
+
17
+ /**
18
+ * Internal extension to the Fragment class in order to add some place to hold functions for runtime building blocks
19
+ */
20
+ @defineUI5Class("sap.fe.core.buildingBlocks.RuntimeBuildingBlockFragment")
21
+ export default class RuntimeBuildingBlockFragment extends Fragment {
22
+ /*
23
+ * Event to hold and resolve functions for runtime building blocks
24
+ */
25
+ @event()
26
+ functionHolder!: Function;
27
+ }
28
+
29
+ type FragmentCustomData = {
30
+ mProperties: {
31
+ value: {
32
+ "sap.fe.core.buildingBlocks"?: Record<string, string>;
33
+ };
34
+ };
35
+ };
36
+
37
+ type FEComponentFragmentSettings = {
38
+ fragmentName: string;
39
+ fragmentContent?: typeof RuntimeBuildingBlock;
40
+ containingView: View;
41
+ customData?: FragmentCustomData[];
42
+ functionHolder?: FunctionWithHandler[][];
43
+ };
44
+
45
+ type FunctionWithHandler = Function & {
46
+ _sapui_handlerName?: string;
47
+ };
48
+ type FragmentWithInternals = {
49
+ _bAsync: boolean;
50
+ _aContent: Control | Control[];
51
+ };
52
+
53
+ const RUNTIME_BLOCKS: Record<string, typeof RuntimeBuildingBlock> = {};
54
+ /**
55
+ * Stores the class of a runtime building block to be loaded whenever the building block is used at runtime.
56
+ *
57
+ * @param BuildingBlockClass
58
+ */
59
+ export function storeRuntimeBlock(BuildingBlockClass: typeof RuntimeBuildingBlock) {
60
+ RUNTIME_BLOCKS[`${BuildingBlockClass.metadata.namespace}.${BuildingBlockClass.metadata.name}`] = BuildingBlockClass;
61
+ }
62
+
63
+ RuntimeBuildingBlockFragment.registerType("FE_COMPONENTS", {
64
+ load: async function (mSettings: FEComponentFragmentSettings) {
65
+ return Promise.resolve(RUNTIME_BLOCKS[mSettings.fragmentName]);
66
+ },
67
+ init: function (this: FragmentWithInternals, mSettings: FEComponentFragmentSettings) {
68
+ let BuildingBlockClass = mSettings.fragmentContent;
69
+ if (BuildingBlockClass === undefined) {
70
+ // In some case we might have been called here synchronously (unstash case for instance), which means we didn't go through the load function
71
+ BuildingBlockClass = RUNTIME_BLOCKS[mSettings.fragmentName];
72
+ }
73
+ if (BuildingBlockClass === undefined) {
74
+ throw new Error(`No building block class for runtime building block ${mSettings.fragmentName} found`);
75
+ }
76
+
77
+ const classSettings: Record<string, unknown> = {};
78
+ const feCustomData: Record<string, string> = mSettings.customData?.[0]?.mProperties?.value?.["sap.fe.core.buildingBlocks"] || {};
79
+ delete mSettings.customData;
80
+ const functionHolder: FunctionWithHandler[][] = mSettings.functionHolder ?? [];
81
+ delete mSettings.functionHolder;
82
+
83
+ // containingView can also be a fragment, so we have to use the controller to be sure to get the actual view
84
+ const containingView = mSettings.containingView.getController?.().getView?.() ?? mSettings.containingView;
85
+ const pageComponent = Component.getOwnerComponentFor(containingView) as TemplateComponent;
86
+ const appComponent = CommonUtils.getAppComponent(containingView);
87
+
88
+ const metaModel = appComponent.getMetaModel();
89
+ const pageModel = pageComponent.getModel("_pageModel");
90
+
91
+ const functionStringInOrder: string[] | undefined = feCustomData.functionStringInOrder?.split(",");
92
+ const propertiesAssignedToFunction: string[] | undefined = feCustomData.propertiesAssignedToFunction?.split(",");
93
+ for (const propertyName in BuildingBlockClass.metadata.properties) {
94
+ const propertyMetadata = BuildingBlockClass.metadata.properties[propertyName];
95
+ const pageModelContext = pageModel.createBindingContext(feCustomData[propertyName]);
96
+
97
+ if (pageModelContext === null) {
98
+ // value cannot be resolved, so it is either a runtime binding or a constant
99
+ let value: string | boolean | number | BindingToolkitExpression<string | boolean | number> | undefined =
100
+ feCustomData[propertyName];
101
+
102
+ if (typeof value === "string") {
103
+ if (propertyMetadata.bindable !== true) {
104
+ // runtime bindings are not allowed, so convert strings into actual primitive types
105
+ switch (propertyMetadata.type) {
106
+ case "boolean":
107
+ value = value === "true";
108
+ break;
109
+ case "number":
110
+ value = Number(value);
111
+ break;
112
+ }
113
+ } else {
114
+ // runtime bindings are allowed, so resolve the values as BindingToolkit expressions
115
+ value = resolveBindingString(value, propertyMetadata.type);
116
+ }
117
+ } else if (propertyMetadata.type === "function") {
118
+ const functionIndex = propertiesAssignedToFunction.indexOf(propertyName);
119
+ const functionString = functionStringInOrder[functionIndex];
120
+ const targetFunction = functionHolder?.find((functionDef) => functionDef[0]?._sapui_handlerName === functionString);
121
+ // We use the _sapui_handlerName to identify which function is the one we want to bind here
122
+ if (targetFunction && targetFunction.length > 1) {
123
+ value = targetFunction[0].bind(targetFunction[1]);
124
+ }
125
+ }
126
+
127
+ classSettings[propertyName] = value;
128
+ } else if (pageModelContext.getObject() !== undefined) {
129
+ // get value from page model
130
+ classSettings[propertyName] = pageModelContext.getObject();
131
+ } else {
132
+ // bind to metamodel
133
+ classSettings[propertyName] = metaModel.createBindingContext(feCustomData[propertyName]);
134
+ }
135
+ }
136
+
137
+ return (ManagedObject as ManagedObjectEx).runWithPreprocessors(
138
+ () => {
139
+ const renderedControl = jsx.withContext({ view: containingView, appComponent: appComponent }, () => {
140
+ const templateProcessingSettings = {
141
+ models: {
142
+ "sap.fe.i18n": containingView.getModel("sap.fe.i18n") as ResourceModel
143
+ }
144
+ } as TemplateProcessorSettings;
145
+ return new BuildingBlockClass!(classSettings, {}, templateProcessingSettings).getContent?.(
146
+ containingView,
147
+ appComponent
148
+ );
149
+ });
150
+ if (!this._bAsync) {
151
+ this._aContent = renderedControl;
152
+ }
153
+ return renderedControl;
154
+ },
155
+ {
156
+ id: function (sId: string) {
157
+ return containingView.createId(sId);
158
+ },
159
+ settings: function (controlSettings: Record<string, string | ManagedObject | (string | ManagedObject)[]>) {
160
+ const allAssociations = this.getMetadata().getAssociations();
161
+ for (const associationDetailName of Object.keys(allAssociations)) {
162
+ if (controlSettings[associationDetailName] !== undefined) {
163
+ // The associated elements are indicated via local IDs; we need to change the references to global ones
164
+ const associations = (
165
+ Array.isArray(controlSettings[associationDetailName])
166
+ ? controlSettings[associationDetailName]
167
+ : [controlSettings[associationDetailName]]
168
+ ) as (string | ManagedObject)[];
169
+
170
+ // Create global IDs for associations given as strings, not for already resolved ManagedObjects
171
+ controlSettings[associationDetailName] = associations.map((association: string | ManagedObject) =>
172
+ typeof association === "string" ? mSettings.containingView.createId(association) : association
173
+ );
174
+ }
175
+ }
176
+ return controlSettings;
177
+ }
178
+ }
179
+ );
180
+ }
181
+ });