@sapui5/sap.fe.core 1.102.3 → 1.105.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 (359) hide show
  1. package/package.json +6 -6
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +120 -0
  4. package/src/sap/fe/core/ActionRuntime.ts +108 -0
  5. package/src/sap/fe/core/AppComponent.js +81 -35
  6. package/src/sap/fe/core/AppComponent.ts +68 -44
  7. package/src/sap/fe/core/AppStateHandler.js +82 -70
  8. package/src/sap/fe/core/AppStateHandler.ts +32 -37
  9. package/src/sap/fe/core/BaseController.js +12 -10
  10. package/src/sap/fe/core/BaseController.ts +15 -13
  11. package/src/sap/fe/core/CommonUtils.js +291 -218
  12. package/src/sap/fe/core/CommonUtils.ts +315 -251
  13. package/src/sap/fe/core/ExtensionAPI.js +25 -28
  14. package/src/sap/fe/core/ExtensionAPI.ts +36 -38
  15. package/src/sap/fe/core/PageController.js +5 -5
  16. package/src/sap/fe/core/PageController.ts +4 -5
  17. package/src/sap/fe/core/TemplateComponent.js +21 -10
  18. package/src/sap/fe/core/TemplateComponent.ts +9 -6
  19. package/src/sap/fe/core/TemplateModel.js +2 -2
  20. package/src/sap/fe/core/TemplateModel.ts +1 -1
  21. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +11 -3
  22. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +8 -2
  23. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +197 -43
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +164 -24
  25. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +14 -0
  26. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.ts +5 -0
  27. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +609 -230
  28. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +275 -128
  29. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +30 -30
  30. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +32 -29
  31. package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
  32. package/src/sap/fe/core/controllerextensions/EditFlow.js +761 -700
  33. package/src/sap/fe/core/controllerextensions/EditFlow.ts +478 -514
  34. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +10 -10
  35. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
  36. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +104 -75
  37. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +71 -79
  38. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +68 -68
  39. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +76 -76
  40. package/src/sap/fe/core/controllerextensions/InternalRouting.js +162 -102
  41. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +177 -121
  42. package/src/sap/fe/core/controllerextensions/KPIManagement.js +67 -69
  43. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
  44. package/src/sap/fe/core/controllerextensions/MassEdit.js +10 -10
  45. package/src/sap/fe/core/controllerextensions/MassEdit.ts +20 -27
  46. package/src/sap/fe/core/controllerextensions/MessageHandler.js +21 -13
  47. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +21 -14
  48. package/src/sap/fe/core/controllerextensions/PageReady.js +98 -26
  49. package/src/sap/fe/core/controllerextensions/PageReady.ts +98 -34
  50. package/src/sap/fe/core/controllerextensions/Paginator.js +31 -32
  51. package/src/sap/fe/core/controllerextensions/Paginator.ts +33 -34
  52. package/src/sap/fe/core/controllerextensions/Placeholder.js +5 -7
  53. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  54. package/src/sap/fe/core/controllerextensions/Routing.js +11 -12
  55. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  56. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  57. package/src/sap/fe/core/controllerextensions/Share.js +171 -140
  58. package/src/sap/fe/core/controllerextensions/Share.ts +117 -118
  59. package/src/sap/fe/core/controllerextensions/SideEffects.js +47 -51
  60. package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
  61. package/src/sap/fe/core/controllerextensions/ViewState.js +201 -132
  62. package/src/sap/fe/core/controllerextensions/ViewState.ts +141 -148
  63. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
  64. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -7
  65. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +13 -12
  66. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +17 -20
  67. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +13 -12
  68. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +15 -15
  69. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +57 -18
  70. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +60 -28
  71. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +29 -21
  72. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1424 -940
  73. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +799 -836
  74. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +410 -377
  75. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +275 -358
  76. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +309 -0
  77. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +320 -0
  78. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +752 -579
  79. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +631 -599
  80. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +92 -74
  81. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +49 -52
  82. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +78 -41
  83. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +110 -84
  84. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +69 -81
  85. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +64 -73
  86. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +18 -2
  87. package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +35 -0
  88. package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +25 -24
  89. package/src/sap/fe/core/controls/Any.js +9 -5
  90. package/src/sap/fe/core/controls/Any.ts +10 -4
  91. package/src/sap/fe/core/controls/CommandExecution.js +12 -26
  92. package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
  93. package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -3
  94. package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
  95. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +26 -26
  96. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
  97. package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -3
  98. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +2 -2
  99. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -3
  100. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +5 -5
  101. package/src/sap/fe/core/controls/FieldWrapper.js +3 -3
  102. package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
  103. package/src/sap/fe/core/controls/FileWrapper.js +9 -4
  104. package/src/sap/fe/core/controls/FileWrapper.ts +16 -12
  105. package/src/sap/fe/core/controls/FilterBar.js +7 -3
  106. package/src/sap/fe/core/controls/FilterBar.ts +13 -9
  107. package/src/sap/fe/core/controls/FormElementWrapper.js +2 -2
  108. package/src/sap/fe/core/controls/FormElementWrapper.ts +2 -2
  109. package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
  110. package/src/sap/fe/core/controls/MassEditSelect.ts +0 -4
  111. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -1
  112. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +44 -19
  113. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -2
  114. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +17 -13
  115. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
  116. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +4 -4
  117. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
  118. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +49 -49
  119. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +54 -54
  120. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
  121. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
  122. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +89 -88
  123. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +107 -106
  124. package/src/sap/fe/core/converters/ConverterContext.js +48 -34
  125. package/src/sap/fe/core/converters/ConverterContext.ts +81 -67
  126. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  127. package/src/sap/fe/core/converters/ManifestSettings.ts +18 -15
  128. package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
  129. package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
  130. package/src/sap/fe/core/converters/MetaModelConverter.js +74 -40
  131. package/src/sap/fe/core/converters/MetaModelConverter.ts +176 -140
  132. package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
  133. package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
  134. package/src/sap/fe/core/converters/annotations/DataField.js +58 -35
  135. package/src/sap/fe/core/converters/annotations/DataField.ts +102 -76
  136. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1956 -1494
  137. package/src/sap/fe/core/converters/controls/Common/Action.js +78 -51
  138. package/src/sap/fe/core/converters/controls/Common/Action.ts +87 -52
  139. package/src/sap/fe/core/converters/controls/Common/Chart.js +22 -16
  140. package/src/sap/fe/core/converters/controls/Common/Chart.ts +42 -43
  141. package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
  142. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
  143. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +65 -29
  144. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +93 -62
  145. package/src/sap/fe/core/converters/controls/Common/Form.js +31 -31
  146. package/src/sap/fe/core/converters/controls/Common/Form.ts +46 -57
  147. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
  148. package/src/sap/fe/core/converters/controls/Common/KPI.ts +49 -52
  149. package/src/sap/fe/core/converters/controls/Common/Table.js +251 -264
  150. package/src/sap/fe/core/converters/controls/Common/Table.ts +344 -370
  151. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
  152. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +147 -144
  153. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +89 -59
  154. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +118 -71
  155. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
  156. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
  157. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
  158. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
  159. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +131 -95
  160. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +123 -87
  161. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +98 -87
  162. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +121 -117
  163. package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
  164. package/src/sap/fe/core/converters/helpers/Aggregation.ts +12 -15
  165. package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -31
  166. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +30 -29
  167. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +8 -6
  168. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +18 -10
  169. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +136 -0
  170. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +139 -0
  171. package/src/sap/fe/core/converters/helpers/ID.js +48 -46
  172. package/src/sap/fe/core/converters/helpers/ID.ts +26 -25
  173. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  174. package/src/sap/fe/core/converters/helpers/Key.js +7 -7
  175. package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
  176. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  177. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -5
  178. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
  179. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
  180. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +53 -75
  181. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +59 -90
  182. package/src/sap/fe/core/converters/templates/ListReportConverter.js +58 -57
  183. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +93 -86
  184. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +58 -44
  185. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +87 -80
  186. package/src/sap/fe/core/designtime/AppComponent.designtime.js +4 -4
  187. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +4 -4
  188. package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
  189. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
  190. package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
  191. package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
  192. package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
  193. package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
  194. package/src/sap/fe/core/formatters/StandardFormatter.js +96 -0
  195. package/src/sap/fe/core/formatters/StandardFormatter.ts +70 -0
  196. package/src/sap/fe/core/formatters/TableFormatter.js +11 -11
  197. package/src/sap/fe/core/formatters/TableFormatter.ts +12 -12
  198. package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
  199. package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
  200. package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
  201. package/src/sap/fe/core/fpm/Component.js +33 -7
  202. package/src/sap/fe/core/fpm/Component.ts +14 -0
  203. package/src/sap/fe/core/helpers/AnnotationEnum.js +1 -1
  204. package/src/sap/fe/core/helpers/AppStartupHelper.js +19 -18
  205. package/src/sap/fe/core/helpers/AppStartupHelper.ts +41 -43
  206. package/src/sap/fe/core/helpers/BindingToolkit.js +1836 -0
  207. package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +397 -270
  208. package/src/sap/fe/core/helpers/ClassSupport.js +49 -12
  209. package/src/sap/fe/core/helpers/ClassSupport.ts +37 -10
  210. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
  211. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
  212. package/src/sap/fe/core/helpers/EditState.js +1 -6
  213. package/src/sap/fe/core/helpers/EditState.ts +5 -10
  214. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
  215. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
  216. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  217. package/src/sap/fe/core/helpers/FPMHelper.ts +2 -2
  218. package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
  219. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
  220. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -1
  221. package/src/sap/fe/core/helpers/MassEditHelper.js +306 -280
  222. package/src/sap/fe/core/helpers/MassEditHelper.ts +380 -360
  223. package/src/sap/fe/core/helpers/MessageStrip.js +81 -0
  224. package/src/sap/fe/core/helpers/MessageStrip.ts +79 -0
  225. package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
  226. package/src/sap/fe/core/helpers/ModelHelper.ts +34 -32
  227. package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
  228. package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
  229. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  230. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
  231. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
  232. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
  233. package/src/sap/fe/core/helpers/StableIdHelper.js +12 -12
  234. package/src/sap/fe/core/helpers/StableIdHelper.ts +12 -12
  235. package/src/sap/fe/core/helpers/Synchronization.js +1 -1
  236. package/src/sap/fe/core/helpers/ToES6Promise.js +32 -0
  237. package/src/sap/fe/core/helpers/ToES6Promise.ts +19 -0
  238. package/src/sap/fe/core/jsx-runtime/Fragment.js +16 -0
  239. package/src/sap/fe/core/jsx-runtime/Fragment.ts +3 -0
  240. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +109 -0
  241. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +47 -0
  242. package/src/sap/fe/core/jsx-runtime/jsx-control.js +110 -0
  243. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +92 -0
  244. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +105 -0
  245. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +89 -0
  246. package/src/sap/fe/core/jsx-runtime/jsx.js +12 -90
  247. package/src/sap/fe/core/jsx-runtime/jsx.ts +24 -85
  248. package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
  249. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +179 -0
  250. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +150 -0
  251. package/src/sap/fe/core/library.js +42 -3
  252. package/src/sap/fe/core/library.support.js +1 -1
  253. package/src/sap/fe/core/library.ts +38 -0
  254. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
  255. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
  256. package/src/sap/fe/core/messagebundle.properties +39 -67
  257. package/src/sap/fe/core/messagebundle_ar.properties +27 -44
  258. package/src/sap/fe/core/messagebundle_bg.properties +27 -44
  259. package/src/sap/fe/core/messagebundle_ca.properties +27 -44
  260. package/src/sap/fe/core/messagebundle_cs.properties +27 -44
  261. package/src/sap/fe/core/messagebundle_cy.properties +26 -43
  262. package/src/sap/fe/core/messagebundle_da.properties +27 -44
  263. package/src/sap/fe/core/messagebundle_de.properties +25 -42
  264. package/src/sap/fe/core/messagebundle_el.properties +28 -45
  265. package/src/sap/fe/core/messagebundle_en.properties +27 -44
  266. package/src/sap/fe/core/messagebundle_en_GB.properties +27 -44
  267. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +25 -42
  268. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +26 -40
  269. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +25 -42
  270. package/src/sap/fe/core/messagebundle_es.properties +27 -44
  271. package/src/sap/fe/core/messagebundle_es_MX.properties +27 -44
  272. package/src/sap/fe/core/messagebundle_et.properties +27 -44
  273. package/src/sap/fe/core/messagebundle_fi.properties +27 -44
  274. package/src/sap/fe/core/messagebundle_fr.properties +26 -43
  275. package/src/sap/fe/core/messagebundle_fr_CA.properties +25 -42
  276. package/src/sap/fe/core/messagebundle_hi.properties +27 -44
  277. package/src/sap/fe/core/messagebundle_hr.properties +27 -44
  278. package/src/sap/fe/core/messagebundle_hu.properties +27 -44
  279. package/src/sap/fe/core/messagebundle_id.properties +27 -44
  280. package/src/sap/fe/core/messagebundle_it.properties +43 -60
  281. package/src/sap/fe/core/messagebundle_iw.properties +27 -44
  282. package/src/sap/fe/core/messagebundle_ja.properties +27 -44
  283. package/src/sap/fe/core/messagebundle_kk.properties +27 -44
  284. package/src/sap/fe/core/messagebundle_ko.properties +30 -47
  285. package/src/sap/fe/core/messagebundle_lt.properties +27 -44
  286. package/src/sap/fe/core/messagebundle_lv.properties +27 -44
  287. package/src/sap/fe/core/messagebundle_ms.properties +27 -44
  288. package/src/sap/fe/core/messagebundle_nl.properties +29 -46
  289. package/src/sap/fe/core/messagebundle_no.properties +27 -44
  290. package/src/sap/fe/core/messagebundle_pl.properties +28 -45
  291. package/src/sap/fe/core/messagebundle_pt.properties +28 -45
  292. package/src/sap/fe/core/messagebundle_pt_PT.properties +27 -44
  293. package/src/sap/fe/core/messagebundle_ro.properties +27 -44
  294. package/src/sap/fe/core/messagebundle_ru.properties +27 -44
  295. package/src/sap/fe/core/messagebundle_sh.properties +27 -44
  296. package/src/sap/fe/core/messagebundle_sk.properties +27 -44
  297. package/src/sap/fe/core/messagebundle_sl.properties +27 -44
  298. package/src/sap/fe/core/messagebundle_sv.properties +27 -44
  299. package/src/sap/fe/core/messagebundle_th.properties +25 -42
  300. package/src/sap/fe/core/messagebundle_tr.properties +27 -44
  301. package/src/sap/fe/core/messagebundle_uk.properties +27 -44
  302. package/src/sap/fe/core/messagebundle_vi.properties +27 -44
  303. package/src/sap/fe/core/messagebundle_zh_CN.properties +27 -44
  304. package/src/sap/fe/core/messagebundle_zh_TW.properties +27 -44
  305. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -3
  306. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
  307. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +103 -75
  308. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +72 -73
  309. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +2 -2
  310. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
  311. package/src/sap/fe/core/services/NavigationServiceFactory.js +62 -50
  312. package/src/sap/fe/core/services/NavigationServiceFactory.ts +63 -52
  313. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -3
  314. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
  315. package/src/sap/fe/core/services/RoutingServiceFactory.js +56 -56
  316. package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
  317. package/src/sap/fe/core/services/ShellServicesFactory.js +93 -77
  318. package/src/sap/fe/core/services/ShellServicesFactory.ts +95 -82
  319. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +64 -64
  320. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
  321. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +232 -200
  322. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +145 -142
  323. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
  324. package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
  325. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
  326. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
  327. package/src/sap/fe/core/support/CommonHelper.js +3 -2
  328. package/src/sap/fe/core/support/CommonHelper.ts +9 -13
  329. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  330. package/src/sap/fe/core/support/Diagnostics.ts +5 -5
  331. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
  332. package/src/sap/fe/core/templating/CommonFormatters.js +85 -0
  333. package/src/sap/fe/core/templating/CommonFormatters.ts +90 -0
  334. package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
  335. package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
  336. package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
  337. package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
  338. package/src/sap/fe/core/templating/DataModelPathHelper.js +23 -15
  339. package/src/sap/fe/core/templating/DataModelPathHelper.ts +47 -34
  340. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  341. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -3
  342. package/src/sap/fe/core/templating/EntitySetHelper.js +7 -7
  343. package/src/sap/fe/core/templating/EntitySetHelper.ts +6 -8
  344. package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
  345. package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
  346. package/src/sap/fe/core/templating/FilterHelper.js +18 -17
  347. package/src/sap/fe/core/templating/FilterHelper.ts +18 -18
  348. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  349. package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
  350. package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
  351. package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
  352. package/src/sap/fe/core/templating/PropertyHelper.js +25 -25
  353. package/src/sap/fe/core/templating/PropertyHelper.ts +25 -26
  354. package/src/sap/fe/core/templating/UIFormatters.js +152 -95
  355. package/src/sap/fe/core/templating/UIFormatters.ts +202 -128
  356. package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
  357. package/src/sap/fe/core/type/Email.js +3 -3
  358. package/src/sap/fe/core/type/Email.ts +2 -2
  359. package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
@@ -0,0 +1,92 @@
1
+ import { compileExpression } from "sap/fe/core/helpers/BindingToolkit";
2
+ import type { ControlProperties, NonControlProperties, Ref } from "sap/fe/core/jsx-runtime/jsx";
3
+ import Text from "sap/m/Text";
4
+ import type ManagedObjectMetadata from "sap/ui/base/ManagedObjectMetadata";
5
+ import type Control from "sap/ui/core/Control";
6
+ import type { $ControlSettings } from "sap/ui/core/Control";
7
+ import type Element from "sap/ui/core/Element";
8
+ const addChildAggregation = function (aggregationChildren: any, aggregationName: string, child: any) {
9
+ if (child === undefined || typeof child === "string") {
10
+ return;
11
+ }
12
+ if (!aggregationChildren[aggregationName]) {
13
+ aggregationChildren[aggregationName] = [];
14
+ }
15
+ if (isChildAnElement(child)) {
16
+ aggregationChildren[aggregationName].push(child);
17
+ } else if (Array.isArray(child)) {
18
+ child.forEach((subChild) => {
19
+ addChildAggregation(aggregationChildren, aggregationName, subChild);
20
+ });
21
+ } else {
22
+ Object.keys(child).forEach((childKey) => {
23
+ addChildAggregation(aggregationChildren, childKey, child[childKey]);
24
+ });
25
+ }
26
+ };
27
+ const isChildAnElement = function <T>(children?: Element | ControlProperties<T>): children is Element {
28
+ return (children as Element)?.isA?.("sap.ui.core.Element");
29
+ };
30
+ const isAControl = function (children?: typeof Control | Function): children is typeof Control {
31
+ return !!(children as typeof Control)?.getMetadata;
32
+ };
33
+
34
+ function processAggregations(metadata: ManagedObjectMetadata, mSettings: Record<string, any>) {
35
+ const metadataAggregations = metadata.getAllAggregations() as any;
36
+ const defaultAggregationName = metadata.getDefaultAggregationName();
37
+ const aggregationChildren: Record<string, string[]> = {};
38
+ addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
39
+ delete mSettings.children;
40
+ // find out which aggregation are bound (both in children and directly under it)
41
+ Object.keys(metadataAggregations).forEach((aggregationName) => {
42
+ if (mSettings.hasOwnProperty(aggregationName)) {
43
+ (mSettings as any)[aggregationName].factory = aggregationChildren[aggregationName];
44
+ } else {
45
+ (mSettings as any)[aggregationName] = aggregationChildren[aggregationName];
46
+ }
47
+ });
48
+ }
49
+
50
+ const jsxControl = function <T extends Element>(
51
+ ControlType: typeof Control | Function,
52
+ mSettings: NonControlProperties<T> & { key: string; children?: Element | ControlProperties<T>; ref?: Ref<T>; class?: string },
53
+ key: string
54
+ ): Control | Control[] {
55
+ if ((ControlType as any).isFragment) {
56
+ return mSettings.children as any;
57
+ }
58
+ let targetControl;
59
+ if (isAControl(ControlType)) {
60
+ const metadata = ControlType.getMetadata();
61
+ if (key !== undefined) {
62
+ mSettings["key"] = key;
63
+ }
64
+ processAggregations(metadata, mSettings);
65
+ const classDef = mSettings.class;
66
+ const refDef = mSettings.ref;
67
+ delete mSettings.ref;
68
+ delete mSettings.class;
69
+ let settingsKey: keyof typeof mSettings;
70
+ for (settingsKey in mSettings) {
71
+ if ((mSettings[settingsKey] as any)?._type) {
72
+ mSettings[settingsKey] = compileExpression(mSettings[settingsKey] as any) as any;
73
+ }
74
+ }
75
+ targetControl = new ControlType(mSettings as $ControlSettings);
76
+ if (classDef) {
77
+ targetControl.addStyleClass(classDef);
78
+ }
79
+ if (refDef) {
80
+ refDef.setCurrent(targetControl as any);
81
+ }
82
+ } else if (typeof ControlType === "function") {
83
+ const controlTypeFn = ControlType;
84
+ targetControl = controlTypeFn(mSettings as $ControlSettings);
85
+ } else {
86
+ targetControl = new Text({ text: "Missing component " + (ControlType as any) });
87
+ }
88
+
89
+ return targetControl;
90
+ };
91
+
92
+ export default jsxControl;
@@ -0,0 +1,105 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define([], function () {
6
+ "use strict";
7
+
8
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+
10
+ var writeChildren = function (val) {
11
+ if (Array.isArray(val)) {
12
+ return val.join("");
13
+ } else {
14
+ return val;
15
+ }
16
+ };
17
+
18
+ var addChildAggregation = function (aggregationChildren, aggregationName, child) {
19
+ if (child === undefined) {
20
+ return;
21
+ }
22
+
23
+ if (!aggregationChildren[aggregationName]) {
24
+ aggregationChildren[aggregationName] = [];
25
+ }
26
+
27
+ if (typeof child === "string" && child.trim().length > 0) {
28
+ aggregationChildren[aggregationName].push(child);
29
+ } else if (Array.isArray(child)) {
30
+ child.forEach(function (subChild) {
31
+ addChildAggregation(aggregationChildren, aggregationName, subChild);
32
+ });
33
+ } else {
34
+ Object.keys(child).forEach(function (childKey) {
35
+ addChildAggregation(aggregationChildren, childKey, child[childKey]);
36
+ });
37
+ }
38
+ };
39
+
40
+ var FL_DELEGATE = "fl:delegate";
41
+
42
+ var jsxXml = function (type, mSettings, key) {
43
+ var metadata = type.getMetadata();
44
+ var namesSplit = metadata.getName().split(".");
45
+
46
+ if (key !== undefined) {
47
+ mSettings["key"] = key;
48
+ }
49
+
50
+ var metadataProperties = metadata.getAllProperties();
51
+ var metadataAggregations = metadata.getAllAggregations();
52
+ metadataProperties["class"] = {
53
+ name: "class"
54
+ };
55
+ metadataProperties["id"] = {
56
+ name: "id"
57
+ };
58
+ metadataProperties[FL_DELEGATE] = {
59
+ name: FL_DELEGATE
60
+ };
61
+ metadataProperties["xmlns:fl"] = {
62
+ name: FL_DELEGATE
63
+ };
64
+
65
+ if (metadata.getName() === "sap.ui.core.Fragment") {
66
+ metadataProperties["fragmentName"] = {
67
+ name: "fragmentName"
68
+ };
69
+ }
70
+
71
+ var namespace = namesSplit.slice(0, -1);
72
+ var name = namesSplit[namesSplit.length - 1];
73
+ var namespaceAlias = namespace[namespace.length - 1];
74
+ var tagName = "".concat(namespaceAlias, ":").concat(name);
75
+ var propertiesString = [];
76
+ var aggregationString = [];
77
+ var defaultAggregationName = metadata.getDefaultAggregationName();
78
+ Object.keys(metadataProperties).forEach(function (propertyName) {
79
+ if (mSettings.hasOwnProperty(propertyName) && mSettings[propertyName] !== undefined) {
80
+ if (typeof mSettings[propertyName] === "object") {
81
+ propertiesString.push("".concat(propertyName, "='").concat(JSON.stringify(mSettings[propertyName]), "'"));
82
+ } else {
83
+ propertiesString.push("".concat(propertyName, "='").concat(mSettings[propertyName], "'"));
84
+ }
85
+ }
86
+ });
87
+
88
+ var aggregationChildren = _defineProperty({}, defaultAggregationName, []);
89
+
90
+ addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
91
+ Object.keys(metadataAggregations).forEach(function (aggregationName) {
92
+ if (aggregationChildren !== null && aggregationChildren !== void 0 && aggregationChildren.hasOwnProperty(aggregationName) && aggregationChildren[aggregationName].length > 0) {
93
+ aggregationString.push("<".concat(namespaceAlias, ":").concat(aggregationName, ">\n\t\t\t\t\t\t").concat(writeChildren(aggregationChildren[aggregationName]), "\n\t\t\t\t\t</").concat(namespaceAlias, ":").concat(aggregationName, ">"));
94
+ }
95
+
96
+ if (mSettings.hasOwnProperty(aggregationName) && mSettings[aggregationName] !== undefined) {
97
+ propertiesString.push("".concat(aggregationName, "='").concat(JSON.stringify(mSettings[aggregationName]), "'"));
98
+ }
99
+ });
100
+ return "<".concat(tagName, " xmlns:").concat(namespaceAlias, "=\"").concat(namespace.join("."), "\" ").concat(propertiesString.join(" "), ">").concat(aggregationString.join(""), "</").concat(tagName, ">");
101
+ };
102
+
103
+ return jsxXml;
104
+ }, false);
105
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3cml0ZUNoaWxkcmVuIiwidmFsIiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsImFkZENoaWxkQWdncmVnYXRpb24iLCJhZ2dyZWdhdGlvbkNoaWxkcmVuIiwiYWdncmVnYXRpb25OYW1lIiwiY2hpbGQiLCJ1bmRlZmluZWQiLCJ0cmltIiwibGVuZ3RoIiwicHVzaCIsImZvckVhY2giLCJzdWJDaGlsZCIsIk9iamVjdCIsImtleXMiLCJjaGlsZEtleSIsIkZMX0RFTEVHQVRFIiwianN4WG1sIiwidHlwZSIsIm1TZXR0aW5ncyIsImtleSIsIm1ldGFkYXRhIiwiZ2V0TWV0YWRhdGEiLCJuYW1lc1NwbGl0IiwiZ2V0TmFtZSIsInNwbGl0IiwibWV0YWRhdGFQcm9wZXJ0aWVzIiwiZ2V0QWxsUHJvcGVydGllcyIsIm1ldGFkYXRhQWdncmVnYXRpb25zIiwiZ2V0QWxsQWdncmVnYXRpb25zIiwibmFtZSIsIm5hbWVzcGFjZSIsInNsaWNlIiwibmFtZXNwYWNlQWxpYXMiLCJ0YWdOYW1lIiwicHJvcGVydGllc1N0cmluZyIsImFnZ3JlZ2F0aW9uU3RyaW5nIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSIsImdldERlZmF1bHRBZ2dyZWdhdGlvbk5hbWUiLCJwcm9wZXJ0eU5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsIkpTT04iLCJzdHJpbmdpZnkiLCJjaGlsZHJlbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsianN4LXhtbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbnRyb2xQcm9wZXJ0aWVzLCBOb25Db250cm9sUHJvcGVydGllcyB9IGZyb20gXCJzYXAvZmUvY29yZS9qc3gtcnVudGltZS9qc3hcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5cbmNvbnN0IHdyaXRlQ2hpbGRyZW4gPSBmdW5jdGlvbiAodmFsOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuXHRpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG5cdFx0cmV0dXJuIHZhbC5qb2luKFwiXCIpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiB2YWw7XG5cdH1cbn07XG5cbmNvbnN0IGFkZENoaWxkQWdncmVnYXRpb24gPSBmdW5jdGlvbiAoYWdncmVnYXRpb25DaGlsZHJlbjogYW55LCBhZ2dyZWdhdGlvbk5hbWU6IHN0cmluZywgY2hpbGQ6IGFueSkge1xuXHRpZiAoY2hpbGQgPT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybjtcblx0fVxuXHRpZiAoIWFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSkge1xuXHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSA9IFtdO1xuXHR9XG5cdGlmICh0eXBlb2YgY2hpbGQgPT09IFwic3RyaW5nXCIgJiYgY2hpbGQudHJpbSgpLmxlbmd0aCA+IDApIHtcblx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0ucHVzaChjaGlsZCk7XG5cdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjaGlsZCkpIHtcblx0XHRjaGlsZC5mb3JFYWNoKChzdWJDaGlsZCkgPT4ge1xuXHRcdFx0YWRkQ2hpbGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbkNoaWxkcmVuLCBhZ2dyZWdhdGlvbk5hbWUsIHN1YkNoaWxkKTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRPYmplY3Qua2V5cyhjaGlsZCkuZm9yRWFjaCgoY2hpbGRLZXkpID0+IHtcblx0XHRcdGFkZENoaWxkQWdncmVnYXRpb24oYWdncmVnYXRpb25DaGlsZHJlbiwgY2hpbGRLZXksIGNoaWxkW2NoaWxkS2V5XSk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmNvbnN0IEZMX0RFTEVHQVRFID0gXCJmbDpkZWxlZ2F0ZVwiO1xuY29uc3QganN4WG1sID0gZnVuY3Rpb24gPFQ+KFxuXHR0eXBlOiB0eXBlb2YgQ29udHJvbCxcblx0bVNldHRpbmdzOiBOb25Db250cm9sUHJvcGVydGllczxUPiAmIHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuPzogRWxlbWVudCB8IENvbnRyb2xQcm9wZXJ0aWVzPFQ+IH0sXG5cdGtleTogc3RyaW5nXG4pOiBzdHJpbmcge1xuXHRjb25zdCBtZXRhZGF0YSA9IHR5cGUuZ2V0TWV0YWRhdGEoKTtcblx0Y29uc3QgbmFtZXNTcGxpdCA9IG1ldGFkYXRhLmdldE5hbWUoKS5zcGxpdChcIi5cIik7XG5cdGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuXHRcdG1TZXR0aW5nc1tcImtleVwiXSA9IGtleTtcblx0fVxuXHRjb25zdCBtZXRhZGF0YVByb3BlcnRpZXMgPSBtZXRhZGF0YS5nZXRBbGxQcm9wZXJ0aWVzKCk7XG5cdGNvbnN0IG1ldGFkYXRhQWdncmVnYXRpb25zID0gbWV0YWRhdGEuZ2V0QWxsQWdncmVnYXRpb25zKCk7XG5cdG1ldGFkYXRhUHJvcGVydGllc1tcImNsYXNzXCJdID0geyBuYW1lOiBcImNsYXNzXCIgfTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wiaWRcIl0gPSB7IG5hbWU6IFwiaWRcIiB9O1xuXHRtZXRhZGF0YVByb3BlcnRpZXNbRkxfREVMRUdBVEVdID0geyBuYW1lOiBGTF9ERUxFR0FURSB9O1xuXHRtZXRhZGF0YVByb3BlcnRpZXNbXCJ4bWxuczpmbFwiXSA9IHsgbmFtZTogRkxfREVMRUdBVEUgfTtcblx0aWYgKG1ldGFkYXRhLmdldE5hbWUoKSA9PT0gXCJzYXAudWkuY29yZS5GcmFnbWVudFwiKSB7XG5cdFx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wiZnJhZ21lbnROYW1lXCJdID0geyBuYW1lOiBcImZyYWdtZW50TmFtZVwiIH07XG5cdH1cblx0Y29uc3QgbmFtZXNwYWNlID0gbmFtZXNTcGxpdC5zbGljZSgwLCAtMSk7XG5cdGNvbnN0IG5hbWUgPSBuYW1lc1NwbGl0W25hbWVzU3BsaXQubGVuZ3RoIC0gMV07XG5cdGNvbnN0IG5hbWVzcGFjZUFsaWFzID0gbmFtZXNwYWNlW25hbWVzcGFjZS5sZW5ndGggLSAxXTtcblx0Y29uc3QgdGFnTmFtZSA9IGAke25hbWVzcGFjZUFsaWFzfToke25hbWV9YDtcblx0Y29uc3QgcHJvcGVydGllc1N0cmluZzogc3RyaW5nW10gPSBbXTtcblx0Y29uc3QgYWdncmVnYXRpb25TdHJpbmc6IHN0cmluZ1tdID0gW107XG5cdGNvbnN0IGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUgPSBtZXRhZGF0YS5nZXREZWZhdWx0QWdncmVnYXRpb25OYW1lKCk7XG5cdE9iamVjdC5rZXlzKG1ldGFkYXRhUHJvcGVydGllcykuZm9yRWFjaCgocHJvcGVydHlOYW1lKSA9PiB7XG5cdFx0aWYgKG1TZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpICYmIChtU2V0dGluZ3MgYXMgYW55KVtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGlmICh0eXBlb2YgKG1TZXR0aW5ncyBhcyBhbnkpW3Byb3BlcnR5TmFtZV0gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke3Byb3BlcnR5TmFtZX09JyR7SlNPTi5zdHJpbmdpZnkoKG1TZXR0aW5ncyBhcyBhbnkpW3Byb3BlcnR5TmFtZV0pfSdgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHtwcm9wZXJ0eU5hbWV9PSckeyhtU2V0dGluZ3MgYXMgYW55KVtwcm9wZXJ0eU5hbWVdfSdgKTtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXHRjb25zdCBhZ2dyZWdhdGlvbkNoaWxkcmVuOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7XG5cdFx0W2RlZmF1bHRBZ2dyZWdhdGlvbk5hbWVdOiBbXVxuXHR9O1xuXHRhZGRDaGlsZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4sIGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUsIG1TZXR0aW5ncy5jaGlsZHJlbik7XG5cdE9iamVjdC5rZXlzKG1ldGFkYXRhQWdncmVnYXRpb25zKS5mb3JFYWNoKChhZ2dyZWdhdGlvbk5hbWUpID0+IHtcblx0XHRpZiAoYWdncmVnYXRpb25DaGlsZHJlbj8uaGFzT3duUHJvcGVydHkoYWdncmVnYXRpb25OYW1lKSAmJiBhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0ubGVuZ3RoID4gMCkge1xuXHRcdFx0YWdncmVnYXRpb25TdHJpbmcucHVzaChcblx0XHRcdFx0YDwke25hbWVzcGFjZUFsaWFzfToke2FnZ3JlZ2F0aW9uTmFtZX0+XG5cdFx0XHRcdFx0XHQke3dyaXRlQ2hpbGRyZW4oYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdKX1cblx0XHRcdFx0XHQ8LyR7bmFtZXNwYWNlQWxpYXN9OiR7YWdncmVnYXRpb25OYW1lfT5gXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAobVNldHRpbmdzLmhhc093blByb3BlcnR5KGFnZ3JlZ2F0aW9uTmFtZSkgJiYgKG1TZXR0aW5ncyBhcyBhbnkpW2FnZ3JlZ2F0aW9uTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke2FnZ3JlZ2F0aW9uTmFtZX09JyR7SlNPTi5zdHJpbmdpZnkoKG1TZXR0aW5ncyBhcyBhbnkpW2FnZ3JlZ2F0aW9uTmFtZV0pfSdgKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gYDwke3RhZ05hbWV9IHhtbG5zOiR7bmFtZXNwYWNlQWxpYXN9PVwiJHtuYW1lc3BhY2Uuam9pbihcIi5cIil9XCIgJHtwcm9wZXJ0aWVzU3RyaW5nLmpvaW4oXCIgXCIpfT4ke2FnZ3JlZ2F0aW9uU3RyaW5nLmpvaW4oXG5cdFx0XCJcIlxuXHQpfTwvJHt0YWdOYW1lfT5gO1xufTtcbmV4cG9ydCBkZWZhdWx0IGpzeFhtbDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7O0VBSUEsSUFBTUEsYUFBYSxHQUFHLFVBQVVDLEdBQVYsRUFBa0M7SUFDdkQs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
@@ -0,0 +1,89 @@
1
+ import type { ControlProperties, NonControlProperties } from "sap/fe/core/jsx-runtime/jsx";
2
+ import type Control from "sap/ui/core/Control";
3
+ import Element from "sap/ui/core/Element";
4
+
5
+ const writeChildren = function (val: string | string[]) {
6
+ if (Array.isArray(val)) {
7
+ return val.join("");
8
+ } else {
9
+ return val;
10
+ }
11
+ };
12
+
13
+ const addChildAggregation = function (aggregationChildren: any, aggregationName: string, child: any) {
14
+ if (child === undefined) {
15
+ return;
16
+ }
17
+ if (!aggregationChildren[aggregationName]) {
18
+ aggregationChildren[aggregationName] = [];
19
+ }
20
+ if (typeof child === "string" && child.trim().length > 0) {
21
+ aggregationChildren[aggregationName].push(child);
22
+ } else if (Array.isArray(child)) {
23
+ child.forEach((subChild) => {
24
+ addChildAggregation(aggregationChildren, aggregationName, subChild);
25
+ });
26
+ } else {
27
+ Object.keys(child).forEach((childKey) => {
28
+ addChildAggregation(aggregationChildren, childKey, child[childKey]);
29
+ });
30
+ }
31
+ };
32
+
33
+ const FL_DELEGATE = "fl:delegate";
34
+ const jsxXml = function <T>(
35
+ type: typeof Control,
36
+ mSettings: NonControlProperties<T> & { key: string; children?: Element | ControlProperties<T> },
37
+ key: string
38
+ ): string {
39
+ const metadata = type.getMetadata();
40
+ const namesSplit = metadata.getName().split(".");
41
+ if (key !== undefined) {
42
+ mSettings["key"] = key;
43
+ }
44
+ const metadataProperties = metadata.getAllProperties();
45
+ const metadataAggregations = metadata.getAllAggregations();
46
+ metadataProperties["class"] = { name: "class" };
47
+ metadataProperties["id"] = { name: "id" };
48
+ metadataProperties[FL_DELEGATE] = { name: FL_DELEGATE };
49
+ metadataProperties["xmlns:fl"] = { name: FL_DELEGATE };
50
+ if (metadata.getName() === "sap.ui.core.Fragment") {
51
+ metadataProperties["fragmentName"] = { name: "fragmentName" };
52
+ }
53
+ const namespace = namesSplit.slice(0, -1);
54
+ const name = namesSplit[namesSplit.length - 1];
55
+ const namespaceAlias = namespace[namespace.length - 1];
56
+ const tagName = `${namespaceAlias}:${name}`;
57
+ const propertiesString: string[] = [];
58
+ const aggregationString: string[] = [];
59
+ const defaultAggregationName = metadata.getDefaultAggregationName();
60
+ Object.keys(metadataProperties).forEach((propertyName) => {
61
+ if (mSettings.hasOwnProperty(propertyName) && (mSettings as any)[propertyName] !== undefined) {
62
+ if (typeof (mSettings as any)[propertyName] === "object") {
63
+ propertiesString.push(`${propertyName}='${JSON.stringify((mSettings as any)[propertyName])}'`);
64
+ } else {
65
+ propertiesString.push(`${propertyName}='${(mSettings as any)[propertyName]}'`);
66
+ }
67
+ }
68
+ });
69
+ const aggregationChildren: Record<string, string[]> = {
70
+ [defaultAggregationName]: []
71
+ };
72
+ addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
73
+ Object.keys(metadataAggregations).forEach((aggregationName) => {
74
+ if (aggregationChildren?.hasOwnProperty(aggregationName) && aggregationChildren[aggregationName].length > 0) {
75
+ aggregationString.push(
76
+ `<${namespaceAlias}:${aggregationName}>
77
+ ${writeChildren(aggregationChildren[aggregationName])}
78
+ </${namespaceAlias}:${aggregationName}>`
79
+ );
80
+ }
81
+ if (mSettings.hasOwnProperty(aggregationName) && (mSettings as any)[aggregationName] !== undefined) {
82
+ propertiesString.push(`${aggregationName}='${JSON.stringify((mSettings as any)[aggregationName])}'`);
83
+ }
84
+ });
85
+ return `<${tagName} xmlns:${namespaceAlias}="${namespace.join(".")}" ${propertiesString.join(" ")}>${aggregationString.join(
86
+ ""
87
+ )}</${tagName}>`;
88
+ };
89
+ export default jsxXml;
@@ -2,104 +2,26 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define([], function () {
5
+ sap.ui.define(["sap/fe/core/jsx-runtime/jsx-control", "sap/fe/core/jsx-runtime/jsx-xml"], function (jsxControl, jsxXml) {
6
6
  "use strict";
7
7
 
8
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+ var renderNextAsXML = false;
9
9
 
10
- var writeChildren = function (val) {
11
- if (Array.isArray(val)) {
12
- return val.join("");
10
+ var jsx = function (ControlType, mSettings, key) {
11
+ if (!renderNextAsXML) {
12
+ return jsxControl(ControlType, mSettings, key);
13
13
  } else {
14
- return val;
14
+ return jsxXml(ControlType, mSettings, key);
15
15
  }
16
16
  };
17
17
 
18
- var addChildAggregation = function (aggregationChildren, aggregationName, child) {
19
- if (child === undefined) {
20
- return;
21
- }
22
-
23
- if (!aggregationChildren[aggregationName]) {
24
- aggregationChildren[aggregationName] = [];
25
- }
26
-
27
- if (typeof child === "string" && child.trim().length > 0) {
28
- aggregationChildren[aggregationName].push(child);
29
- } else if (Array.isArray(child)) {
30
- child.forEach(function (subChild) {
31
- addChildAggregation(aggregationChildren, aggregationName, subChild);
32
- });
33
- } else {
34
- Object.keys(child).forEach(function (childKey) {
35
- addChildAggregation(aggregationChildren, childKey, child[childKey]);
36
- });
37
- }
38
- };
39
-
40
- var FL_DELEGATE = "fl:delegate";
41
-
42
- var jsx = function (type, mSettings, key) {
43
- var metadata = type.getMetadata();
44
- var namesSplit = metadata.getName().split(".");
45
-
46
- if (key !== undefined) {
47
- mSettings["key"] = key;
48
- }
49
-
50
- var metadataProperties = metadata.getAllProperties();
51
- var metadataAggregations = metadata.getAllAggregations();
52
- metadataProperties["class"] = {
53
- name: "class"
54
- };
55
- metadataProperties["id"] = {
56
- name: "id"
57
- };
58
- metadataProperties[FL_DELEGATE] = {
59
- name: FL_DELEGATE
60
- };
61
- metadataProperties["xmlns:fl"] = {
62
- name: FL_DELEGATE
63
- };
64
-
65
- if (metadata.getName() === "sap.ui.core.Fragment") {
66
- metadataProperties["fragmentName"] = {
67
- name: "fragmentName"
68
- };
69
- }
70
-
71
- var namespace = namesSplit.slice(0, -1);
72
- var name = namesSplit[namesSplit.length - 1];
73
- var namespaceAlias = namespace[namespace.length - 1];
74
- var tagName = "".concat(namespaceAlias, ":").concat(name);
75
- var propertiesString = [];
76
- var aggregationString = [];
77
- var defaultAggregationName = metadata.getDefaultAggregationName();
78
- Object.keys(metadataProperties).forEach(function (propertyName) {
79
- if (mSettings.hasOwnProperty(propertyName) && mSettings[propertyName] !== undefined) {
80
- if (typeof mSettings[propertyName] === "object") {
81
- propertiesString.push("".concat(propertyName, "='").concat(JSON.stringify(mSettings[propertyName]), "'"));
82
- } else {
83
- propertiesString.push("".concat(propertyName, "='").concat(mSettings[propertyName], "'"));
84
- }
85
- }
86
- });
87
-
88
- var aggregationChildren = _defineProperty({}, defaultAggregationName, []);
89
-
90
- addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
91
- Object.keys(metadataAggregations).forEach(function (aggregationName) {
92
- if (aggregationChildren !== null && aggregationChildren !== void 0 && aggregationChildren.hasOwnProperty(aggregationName) && aggregationChildren[aggregationName].length > 0) {
93
- aggregationString.push("<".concat(namespaceAlias, ":").concat(aggregationName, ">\n\t\t\t\t\t\t").concat(writeChildren(aggregationChildren[aggregationName]), "\n\t\t\t\t\t</").concat(namespaceAlias, ":").concat(aggregationName, ">"));
94
- }
95
-
96
- if (mSettings.hasOwnProperty(aggregationName) && mSettings[aggregationName] !== undefined) {
97
- propertiesString.push("".concat(aggregationName, "='").concat(JSON.stringify(mSettings[aggregationName]), "'"));
98
- }
99
- });
100
- return "<".concat(tagName, " xmlns:").concat(namespaceAlias, "=\"").concat(namespace.join("."), "\" ").concat(propertiesString.join(" "), ">").concat(aggregationString.join(""), "</").concat(tagName, ">");
18
+ jsx.renderAsXML = function (renderMethod) {
19
+ renderNextAsXML = true;
20
+ var returnValue = renderMethod();
21
+ renderNextAsXML = false;
22
+ return returnValue;
101
23
  };
102
24
 
103
25
  return jsx;
104
26
  }, false);
105
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImpzeC50cyJdLCJuYW1lcyI6WyJ3cml0ZUNoaWxkcmVuIiwidmFsIiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsImFkZENoaWxkQWdncmVnYXRpb24iLCJhZ2dyZWdhdGlvbkNoaWxkcmVuIiwiYWdncmVnYXRpb25OYW1lIiwiY2hpbGQiLCJ1bmRlZmluZWQiLCJ0cmltIiwibGVuZ3RoIiwicHVzaCIsImZvckVhY2giLCJzdWJDaGlsZCIsIk9iamVjdCIsImtleXMiLCJjaGlsZEtleSIsIkZMX0RFTEVHQVRFIiwianN4IiwidHlwZSIsIm1TZXR0aW5ncyIsImtleSIsIm1ldGFkYXRhIiwiZ2V0TWV0YWRhdGEiLCJuYW1lc1NwbGl0IiwiZ2V0TmFtZSIsInNwbGl0IiwibWV0YWRhdGFQcm9wZXJ0aWVzIiwiZ2V0QWxsUHJvcGVydGllcyIsIm1ldGFkYXRhQWdncmVnYXRpb25zIiwiZ2V0QWxsQWdncmVnYXRpb25zIiwibmFtZSIsIm5hbWVzcGFjZSIsInNsaWNlIiwibmFtZXNwYWNlQWxpYXMiLCJ0YWdOYW1lIiwicHJvcGVydGllc1N0cmluZyIsImFnZ3JlZ2F0aW9uU3RyaW5nIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSIsImdldERlZmF1bHRBZ2dyZWdhdGlvbk5hbWUiLCJwcm9wZXJ0eU5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsIkpTT04iLCJzdHJpbmdpZnkiLCJjaGlsZHJlbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O0FBVUEsTUFBTUEsYUFBYSxHQUFHLFVBQVNDLEdBQVQsRUFBaUM7QUFDdEQsUUFBSUMsS0FBSyxDQUFDQyxPQUFOLENBQWNGLEdBQWQsQ0FBSixFQUF3QjtBQUN2QixhQUFPQSxHQUFHLENBQUNHLElBQUosQ0FBUyxFQUFULENBQVA7QUFDQSxLQUZELE1BRU87QUFDTixhQUFPSCxHQUFQO0FBQ0E7QUFDRCxHQU5EOztBQVFBLE1BQU1JLG1CQUFtQixHQUFHLFVBQVNDLG1CQUFULEVBQW1DQyxlQUFuQyxFQUE0REMsS0FBNUQsRUFBd0U7QUFDbkcsUUFBSUEsS0FBSyxLQUFLQyxTQUFkLEVBQXlCO0FBQ3hCO0FBQ0E7O0FBQ0QsUUFBSSxDQUFDSCxtQkFBbUIsQ0FBQ0MsZUFBRCxDQUF4QixFQUEyQztBQUMxQ0QsTUFBQUEsbUJBQW1CLENBQUNDLGVBQUQsQ0FBbkIsR0FBdUMsRUFBdkM7QUFDQTs7QUFDRCxRQUFJLE9BQU9DLEtBQVAsS0FBaUIsUUFBakIsSUFBNkJBLEtBQUssQ0FBQ0UsSUFBTixHQUFhQyxNQUFiLEdBQXNCLENBQXZELEVBQTBEO0FBQ3pETCxNQUFBQSxtQkFBbUIsQ0FBQ0MsZUFBRCxDQUFuQixDQUFxQ0ssSUFBckMsQ0FBMENKLEtBQTFDO0FBQ0EsS0FGRCxNQUVPLElBQUlOLEtBQUssQ0FBQ0MsT0FBTixDQUFjSyxLQUFkLENBQUosRUFBMEI7QUFDaENBLE1BQUFBLEtBQUssQ0FBQ0ssT0FBTixDQUFjLFVBQUFDLFFBQVEsRUFBSTtBQUN6QlQsUUFBQUEsbUJBQW1CLENBQUNDLG1CQUFELEVBQXNCQyxlQUF0QixFQUF1Q08sUUFBdkMsQ0FBbkI7QUFDQSxPQUZEO0FBR0EsS0FKTSxNQUlBO0FBQ05DLE1BQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZUixLQUFaLEVBQW1CSyxPQUFuQixDQUEyQixVQUFBSSxRQUFRLEVBQUk7QUFDdENaLFFBQUFBLG1CQUFtQixDQUFDQyxtQkFBRCxFQUFzQlcsUUFBdEIsRUFBZ0NULEtBQUssQ0FBQ1MsUUFBRCxDQUFyQyxDQUFuQjtBQUNBLE9BRkQ7QUFHQTtBQUNELEdBbEJEOztBQW9CQSxNQUFNQyxXQUFXLEdBQUcsYUFBcEI7O0FBQ0EsTUFBTUMsR0FBRyxHQUFHLFVBQ1hDLElBRFcsRUFFWEMsU0FGVyxFQUdYQyxHQUhXLEVBSUY7QUFDVCxRQUFNQyxRQUFRLEdBQUdILElBQUksQ0FBQ0ksV0FBTCxFQUFqQjtBQUNBLFFBQU1DLFVBQVUsR0FBR0YsUUFBUSxDQUFDRyxPQUFULEdBQW1CQyxLQUFuQixDQUF5QixHQUF6QixDQUFuQjs7QUFDQSxRQUFJTCxHQUFHLEtBQUtiLFNBQVosRUFBdUI7QUFDdEJZLE1BQUFBLFNBQVMsQ0FBQyxLQUFELENBQVQsR0FBbUJDLEdBQW5CO0FBQ0E7O0FBQ0QsUUFBTU0sa0JBQWtCLEdBQUdMLFFBQVEsQ0FBQ00sZ0JBQVQsRUFBM0I7QUFDQSxRQUFNQyxvQkFBb0IsR0FBR1AsUUFBUSxDQUFDUSxrQkFBVCxFQUE3QjtBQUNBSCxJQUFBQSxrQkFBa0IsQ0FBQyxPQUFELENBQWxCLEdBQThCO0FBQUVJLE1BQUFBLElBQUksRUFBRTtBQUFSLEtBQTlCO0FBQ0FKLElBQUFBLGtCQUFrQixDQUFDLElBQUQsQ0FBbEIsR0FBMkI7QUFBRUksTUFBQUEsSUFBSSxFQUFFO0FBQVIsS0FBM0I7QUFDQUosSUFBQUEsa0JBQWtCLENBQUNWLFdBQUQsQ0FBbEIsR0FBa0M7QUFBRWMsTUFBQUEsSUFBSSxFQUFFZDtBQUFSLEtBQWxDO0FBQ0FVLElBQUFBLGtCQUFrQixDQUFDLFVBQUQsQ0FBbEIsR0FBaUM7QUFBRUksTUFBQUEsSUFBSSxFQUFFZDtBQUFSLEtBQWpDOztBQUNBLFFBQUlLLFFBQVEsQ0FBQ0csT0FBVCxPQUF1QixzQkFBM0IsRUFBbUQ7QUFDbERFLE1BQUFBLGtCQUFrQixDQUFDLGNBQUQsQ0FBbEIsR0FBcUM7QUFBRUksUUFBQUEsSUFBSSxFQUFFO0FBQVIsT0FBckM7QUFDQTs7QUFDRCxRQUFNQyxTQUFTLEdBQUdSLFVBQVUsQ0FBQ1MsS0FBWCxDQUFpQixDQUFqQixFQUFvQixDQUFDLENBQXJCLENBQWxCO0FBQ0EsUUFBTUYsSUFBSSxHQUFHUCxVQUFVLENBQUNBLFVBQVUsQ0FBQ2QsTUFBWCxHQUFvQixDQUFyQixDQUF2QjtBQUNBLFFBQU13QixjQUFjLEdBQUdGLFNBQVMsQ0FBQ0EsU0FBUyxDQUFDdEIsTUFBVixHQUFtQixDQUFwQixDQUFoQztBQUNBLFFBQU15QixPQUFPLGFBQU1ELGNBQU4sY0FBd0JILElBQXhCLENBQWI7QUFDQSxRQUFNSyxnQkFBMEIsR0FBRyxFQUFuQztBQUNBLFFBQU1DLGlCQUEyQixHQUFHLEVBQXBDO0FBQ0EsUUFBTUMsc0JBQXNCLEdBQUdoQixRQUFRLENBQUNpQix5QkFBVCxFQUEvQjtBQUNBekIsSUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQVlZLGtCQUFaLEVBQWdDZixPQUFoQyxDQUF3QyxVQUFBNEIsWUFBWSxFQUFJO0FBQ3ZELFVBQUlwQixTQUFTLENBQUNxQixjQUFWLENBQXlCRCxZQUF6QixLQUEyQ3BCLFNBQUQsQ0FBbUJvQixZQUFuQixNQUFxQ2hDLFNBQW5GLEVBQThGO0FBQzdGLFlBQUksT0FBUVksU0FBRCxDQUFtQm9CLFlBQW5CLENBQVAsS0FBNEMsUUFBaEQsRUFBMEQ7QUFDekRKLFVBQUFBLGdCQUFnQixDQUFDekIsSUFBakIsV0FBeUI2QixZQUF6QixlQUEwQ0UsSUFBSSxDQUFDQyxTQUFMLENBQWdCdkIsU0FBRCxDQUFtQm9CLFlBQW5CLENBQWYsQ0FBMUM7QUFDQSxTQUZELE1BRU87QUFDTkosVUFBQUEsZ0JBQWdCLENBQUN6QixJQUFqQixXQUF5QjZCLFlBQXpCLGVBQTJDcEIsU0FBRCxDQUFtQm9CLFlBQW5CLENBQTFDO0FBQ0E7QUFDRDtBQUNELEtBUkQ7O0FBU0EsUUFBTW5DLG1CQUE2Qyx1QkFDakRpQyxzQkFEaUQsRUFDeEIsRUFEd0IsQ0FBbkQ7O0FBR0FsQyxJQUFBQSxtQkFBbUIsQ0FBQ0MsbUJBQUQsRUFBc0JpQyxzQkFBdEIsRUFBOENsQixTQUFTLENBQUN3QixRQUF4RCxDQUFuQjtBQUNBOUIsSUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQVljLG9CQUFaLEVBQWtDakIsT0FBbEMsQ0FBMEMsVUFBQU4sZUFBZSxFQUFJO0FBQzVELFVBQUlELG1CQUFtQixTQUFuQixJQUFBQSxtQkFBbUIsV0FBbkIsSUFBQUEsbUJBQW1CLENBQUVvQyxjQUFyQixDQUFvQ25DLGVBQXBDLEtBQXdERCxtQkFBbUIsQ0FBQ0MsZUFBRCxDQUFuQixDQUFxQ0ksTUFBckMsR0FBOEMsQ0FBMUcsRUFBNkc7QUFDNUcyQixRQUFBQSxpQkFBaUIsQ0FBQzFCLElBQWxCLFlBQ0t1QixjQURMLGNBQ3VCNUIsZUFEdkIsNEJBRUtQLGFBQWEsQ0FBQ00sbUJBQW1CLENBQUNDLGVBQUQsQ0FBcEIsQ0FGbEIsMkJBR000QixjQUhOLGNBR3dCNUIsZUFIeEI7QUFLQTs7QUFDRCxVQUFJYyxTQUFTLENBQUNxQixjQUFWLENBQXlCbkMsZUFBekIsS0FBOENjLFNBQUQsQ0FBbUJkLGVBQW5CLE1BQXdDRSxTQUF6RixFQUFvRztBQUNuRzRCLFFBQUFBLGdCQUFnQixDQUFDekIsSUFBakIsV0FBeUJMLGVBQXpCLGVBQTZDb0MsSUFBSSxDQUFDQyxTQUFMLENBQWdCdkIsU0FBRCxDQUFtQmQsZUFBbkIsQ0FBZixDQUE3QztBQUNBO0FBQ0QsS0FYRDtBQVlBLHNCQUFXNkIsT0FBWCxvQkFBNEJELGNBQTVCLGdCQUErQ0YsU0FBUyxDQUFDN0IsSUFBVixDQUFlLEdBQWYsQ0FBL0MsZ0JBQXVFaUMsZ0JBQWdCLENBQUNqQyxJQUFqQixDQUFzQixHQUF0QixDQUF2RSxjQUFxR2tDLGlCQUFpQixDQUFDbEMsSUFBbEIsQ0FDcEcsRUFEb0csQ0FBckcsZUFFTWdDLE9BRk47QUFHQSxHQXRERDs7U0F1RGVqQixHIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFuYWdlZE9iamVjdE1ldGFkYXRhIGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0TWV0YWRhdGFcIjtcblxudHlwZSBDb250cm9sUHJvcGVydHlOYW1lczxUPiA9IHtcblx0W0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBzdHJpbmcgfCBib29sZWFuIHwgRnVuY3Rpb24gfCBudW1iZXIgfCB1bmRlZmluZWQgfCBzdHJpbmdbXSA/IG5ldmVyIDogSztcbn1ba2V5b2YgVF07XG50eXBlIENvbnRyb2xQcm9wZXJ0aWVzPFQ+ID0gUGFydGlhbDxSZWNvcmQ8Q29udHJvbFByb3BlcnR5TmFtZXM8VD4sIEpTWC5FbGVtZW50Pj47XG50eXBlIE5vbkNvbnRyb2xQcm9wZXJ0aWVzPFQ+ID0gUGFydGlhbDxPbWl0PFQsIENvbnRyb2xQcm9wZXJ0eU5hbWVzPFQ+Pj47XG50eXBlIENvbnRyb2xXaXRoTWV0YWRhdGEgPSB7XG5cdGdldE1ldGFkYXRhKCk6IE1hbmFnZWRPYmplY3RNZXRhZGF0YTtcbn07XG5leHBvcnQgdHlwZSBXcmFwcGVkQ29udHJvbDxUPiA9IChtU2V0dGluZ3M6IE5vbkNvbnRyb2xQcm9wZXJ0aWVzPFQ+ICYgeyBjaGlsZHJlbj86IEpTWC5FbGVtZW50IHwgQ29udHJvbFByb3BlcnRpZXM8VD4gfSkgPT4gSlNYLkVsZW1lbnQ7XG5cbmNvbnN0IHdyaXRlQ2hpbGRyZW4gPSBmdW5jdGlvbih2YWw6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG5cdGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcblx0XHRyZXR1cm4gdmFsLmpvaW4oXCJcIik7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHZhbDtcblx0fVxufTtcblxuY29uc3QgYWRkQ2hpbGRBZ2dyZWdhdGlvbiA9IGZ1bmN0aW9uKGFnZ3JlZ2F0aW9uQ2hpbGRyZW46IGFueSwgYWdncmVnYXRpb25OYW1lOiBzdHJpbmcsIGNoaWxkOiBhbnkpIHtcblx0aWYgKGNoaWxkID09PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm47XG5cdH1cblx0aWYgKCFhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0pIHtcblx0XHRhZ2dyZWdhdGlvbkNoaWxkcmVuW2FnZ3JlZ2F0aW9uTmFtZV0gPSBbXTtcblx0fVxuXHRpZiAodHlwZW9mIGNoaWxkID09PSBcInN0cmluZ1wiICYmIGNoaWxkLnRyaW0oKS5sZW5ndGggPiAwKSB7XG5cdFx0YWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdLnB1c2goY2hpbGQpO1xuXHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGQpKSB7XG5cdFx0Y2hpbGQuZm9yRWFjaChzdWJDaGlsZCA9PiB7XG5cdFx0XHRhZGRDaGlsZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4sIGFnZ3JlZ2F0aW9uTmFtZSwgc3ViQ2hpbGQpO1xuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdE9iamVjdC5rZXlzKGNoaWxkKS5mb3JFYWNoKGNoaWxkS2V5ID0+IHtcblx0XHRcdGFkZENoaWxkQWdncmVnYXRpb24oYWdncmVnYXRpb25DaGlsZHJlbiwgY2hpbGRLZXksIGNoaWxkW2NoaWxkS2V5XSk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmNvbnN0IEZMX0RFTEVHQVRFID0gXCJmbDpkZWxlZ2F0ZVwiO1xuY29uc3QganN4ID0gZnVuY3Rpb248VD4oXG5cdHR5cGU6IENvbnRyb2xXaXRoTWV0YWRhdGEsXG5cdG1TZXR0aW5nczogTm9uQ29udHJvbFByb3BlcnRpZXM8VD4gJiB7IGtleTogc3RyaW5nOyBjaGlsZHJlbj86IEpTWC5FbGVtZW50IHwgQ29udHJvbFByb3BlcnRpZXM8VD4gfSxcblx0a2V5OiBzdHJpbmdcbik6IHN0cmluZyB7XG5cdGNvbnN0IG1ldGFkYXRhID0gdHlwZS5nZXRNZXRhZGF0YSgpO1xuXHRjb25zdCBuYW1lc1NwbGl0ID0gbWV0YWRhdGEuZ2V0TmFtZSgpLnNwbGl0KFwiLlwiKTtcblx0aWYgKGtleSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0bVNldHRpbmdzW1wia2V5XCJdID0ga2V5O1xuXHR9XG5cdGNvbnN0IG1ldGFkYXRhUHJvcGVydGllcyA9IG1ldGFkYXRhLmdldEFsbFByb3BlcnRpZXMoKTtcblx0Y29uc3QgbWV0YWRhdGFBZ2dyZWdhdGlvbnMgPSBtZXRhZGF0YS5nZXRBbGxBZ2dyZWdhdGlvbnMoKTtcblx0bWV0YWRhdGFQcm9wZXJ0aWVzW1wiY2xhc3NcIl0gPSB7IG5hbWU6IFwiY2xhc3NcIiB9O1xuXHRtZXRhZGF0YVByb3BlcnRpZXNbXCJpZFwiXSA9IHsgbmFtZTogXCJpZFwiIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tGTF9ERUxFR0FURV0gPSB7IG5hbWU6IEZMX0RFTEVHQVRFIH07XG5cdG1ldGFkYXRhUHJvcGVydGllc1tcInhtbG5zOmZsXCJdID0geyBuYW1lOiBGTF9ERUxFR0FURSB9O1xuXHRpZiAobWV0YWRhdGEuZ2V0TmFtZSgpID09PSBcInNhcC51aS5jb3JlLkZyYWdtZW50XCIpIHtcblx0XHRtZXRhZGF0YVByb3BlcnRpZXNbXCJmcmFnbWVudE5hbWVcIl0gPSB7IG5hbWU6IFwiZnJhZ21lbnROYW1lXCIgfTtcblx0fVxuXHRjb25zdCBuYW1lc3BhY2UgPSBuYW1lc1NwbGl0LnNsaWNlKDAsIC0xKTtcblx0Y29uc3QgbmFtZSA9IG5hbWVzU3BsaXRbbmFtZXNTcGxpdC5sZW5ndGggLSAxXTtcblx0Y29uc3QgbmFtZXNwYWNlQWxpYXMgPSBuYW1lc3BhY2VbbmFtZXNwYWNlLmxlbmd0aCAtIDFdO1xuXHRjb25zdCB0YWdOYW1lID0gYCR7bmFtZXNwYWNlQWxpYXN9OiR7bmFtZX1gO1xuXHRjb25zdCBwcm9wZXJ0aWVzU3RyaW5nOiBzdHJpbmdbXSA9IFtdO1xuXHRjb25zdCBhZ2dyZWdhdGlvblN0cmluZzogc3RyaW5nW10gPSBbXTtcblx0Y29uc3QgZGVmYXVsdEFnZ3JlZ2F0aW9uTmFtZSA9IG1ldGFkYXRhLmdldERlZmF1bHRBZ2dyZWdhdGlvbk5hbWUoKTtcblx0T2JqZWN0LmtleXMobWV0YWRhdGFQcm9wZXJ0aWVzKS5mb3JFYWNoKHByb3BlcnR5TmFtZSA9PiB7XG5cdFx0aWYgKG1TZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpICYmIChtU2V0dGluZ3MgYXMgYW55KVtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGlmICh0eXBlb2YgKG1TZXR0aW5ncyBhcyBhbnkpW3Byb3BlcnR5TmFtZV0gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0cHJvcGVydGllc1N0cmluZy5wdXNoKGAke3Byb3BlcnR5TmFtZX09JyR7SlNPTi5zdHJpbmdpZnkoKG1TZXR0aW5ncyBhcyBhbnkpW3Byb3BlcnR5TmFtZV0pfSdgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHtwcm9wZXJ0eU5hbWV9PSckeyhtU2V0dGluZ3MgYXMgYW55KVtwcm9wZXJ0eU5hbWVdfSdgKTtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXHRjb25zdCBhZ2dyZWdhdGlvbkNoaWxkcmVuOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7XG5cdFx0W2RlZmF1bHRBZ2dyZWdhdGlvbk5hbWVdOiBbXVxuXHR9O1xuXHRhZGRDaGlsZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4sIGRlZmF1bHRBZ2dyZWdhdGlvbk5hbWUsIG1TZXR0aW5ncy5jaGlsZHJlbik7XG5cdE9iamVjdC5rZXlzKG1ldGFkYXRhQWdncmVnYXRpb25zKS5mb3JFYWNoKGFnZ3JlZ2F0aW9uTmFtZSA9PiB7XG5cdFx0aWYgKGFnZ3JlZ2F0aW9uQ2hpbGRyZW4/Lmhhc093blByb3BlcnR5KGFnZ3JlZ2F0aW9uTmFtZSkgJiYgYWdncmVnYXRpb25DaGlsZHJlblthZ2dyZWdhdGlvbk5hbWVdLmxlbmd0aCA+IDApIHtcblx0XHRcdGFnZ3JlZ2F0aW9uU3RyaW5nLnB1c2goXG5cdFx0XHRcdGA8JHtuYW1lc3BhY2VBbGlhc306JHthZ2dyZWdhdGlvbk5hbWV9PlxuXHRcdFx0XHRcdFx0JHt3cml0ZUNoaWxkcmVuKGFnZ3JlZ2F0aW9uQ2hpbGRyZW5bYWdncmVnYXRpb25OYW1lXSl9XG5cdFx0XHRcdFx0PC8ke25hbWVzcGFjZUFsaWFzfToke2FnZ3JlZ2F0aW9uTmFtZX0+YFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKG1TZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShhZ2dyZWdhdGlvbk5hbWUpICYmIChtU2V0dGluZ3MgYXMgYW55KVthZ2dyZWdhdGlvbk5hbWVdICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHByb3BlcnRpZXNTdHJpbmcucHVzaChgJHthZ2dyZWdhdGlvbk5hbWV9PScke0pTT04uc3RyaW5naWZ5KChtU2V0dGluZ3MgYXMgYW55KVthZ2dyZWdhdGlvbk5hbWVdKX0nYCk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIGA8JHt0YWdOYW1lfSB4bWxuczoke25hbWVzcGFjZUFsaWFzfT1cIiR7bmFtZXNwYWNlLmpvaW4oXCIuXCIpfVwiICR7cHJvcGVydGllc1N0cmluZy5qb2luKFwiIFwiKX0+JHthZ2dyZWdhdGlvblN0cmluZy5qb2luKFxuXHRcdFwiXCJcblx0KX08LyR7dGFnTmFtZX0+YDtcbn07XG5leHBvcnQgZGVmYXVsdCBqc3g7XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJOZXh0QXNYTUwiLCJqc3giLCJDb250cm9sVHlwZSIsIm1TZXR0aW5ncyIsImtleSIsImpzeENvbnRyb2wiLCJqc3hYbWwiLCJyZW5kZXJBc1hNTCIsInJlbmRlck1ldGhvZCIsInJldHVyblZhbHVlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJqc3gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzeENvbnRyb2wgZnJvbSBcInNhcC9mZS9jb3JlL2pzeC1ydW50aW1lL2pzeC1jb250cm9sXCI7XG5pbXBvcnQganN4WG1sIGZyb20gXCJzYXAvZmUvY29yZS9qc3gtcnVudGltZS9qc3gteG1sXCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcblxudHlwZSBDb250cm9sUHJvcGVydHlOYW1lczxUPiA9IHtcblx0W0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBzdHJpbmcgfCBib29sZWFuIHwgRnVuY3Rpb24gfCBudW1iZXIgfCB1bmRlZmluZWQgfCBzdHJpbmdbXSA/IG5ldmVyIDogSztcbn1ba2V5b2YgVF07XG5leHBvcnQgdHlwZSBDb250cm9sUHJvcGVydGllczxUPiA9IFBhcnRpYWw8UmVjb3JkPENvbnRyb2xQcm9wZXJ0eU5hbWVzPFQ+LCBFbGVtZW50Pj47XG5leHBvcnQgdHlwZSBOb25Db250cm9sUHJvcGVydGllczxUPiA9IFBhcnRpYWw8T21pdDxULCBDb250cm9sUHJvcGVydHlOYW1lczxUPj4+O1xuXG5sZXQgcmVuZGVyTmV4dEFzWE1MID0gZmFsc2U7XG5jb25zdCBqc3ggPSBmdW5jdGlvbiA8VD4oXG5cdENvbnRyb2xUeXBlOiB0eXBlb2YgQ29udHJvbCxcblx0bVNldHRpbmdzOiBOb25Db250cm9sUHJvcGVydGllczxUPiAmIHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuPzogRWxlbWVudCB8IENvbnRyb2xQcm9wZXJ0aWVzPFQ+IH0sXG5cdGtleTogc3RyaW5nXG4pOiBzdHJpbmcgfCBDb250cm9sIHwgQ29udHJvbFtdIHtcblx0aWYgKCFyZW5kZXJOZXh0QXNYTUwpIHtcblx0XHRyZXR1cm4ganN4Q29udHJvbChDb250cm9sVHlwZSwgbVNldHRpbmdzLCBrZXkpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBqc3hYbWwoQ29udHJvbFR5cGUsIG1TZXR0aW5ncywga2V5KTtcblx0fVxufTtcbmpzeC5yZW5kZXJBc1hNTCA9IGZ1bmN0aW9uIChyZW5kZXJNZXRob2Q6IEZ1bmN0aW9uKSB7XG5cdHJlbmRlck5leHRBc1hNTCA9IHRydWU7XG5cdGNvbnN0IHJldHVyblZhbHVlID0gcmVuZGVyTWV0aG9kKCk7XG5cdHJlbmRlck5leHRBc1hNTCA9IGZhbHNlO1xuXHRyZXR1cm4gcmV0dXJuVmFsdWU7XG59O1xuXG5leHBvcnQgdHlwZSBSZWY8VCBleHRlbmRzIEVsZW1lbnQ+ID0ge1xuXHRjdXJyZW50PzogVDtcblx0c2V0Q3VycmVudChvQ29udHJvbEluc3RhbmNlOiBUKTogdm9pZDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGpzeDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQVdBLElBQUlBLGVBQWUsR0FBRyxLQUF0Qjs7RUFDQSxJQUFNQyxHQUFHLEdBQUcsVUFDWEMsV0FEVyxFQUVYQyxTQUZXLEVBR1hDLEdBSFcsRUFJb0I7SUFDL0IsSUFBSSxDQUFDSixlQUFMLEVBQXNCO01BQ3JCLE9BQU9LLFVBQVUsQ0FBQ0gsV0FBRCxFQUFjQyxTQUFkLEVBQXlCQyxHQUF6QixDQUFqQjtJQUNBLENBRkQsTUFFTztNQUNOLE9BQU9FLE1BQU0sQ0FBQ0osV0FBRCxFQUFjQyxTQUFkLEVBQXlCQyxHQUF6QixDQUFiO0lBQ0E7RUFDRCxDQVZEOztFQVdBSCxHQUFHLENBQUNNLFdBQUosR0FBa0IsVUFBVUMsWUFBVixFQUFrQztJQUNuRFIsZUFBZSxHQUFHLElBQWxCO0lBQ0EsSUFBTVMsV0FBVyxHQUFHRCxZQUFZLEVBQWhDO0lBQ0FSLGVBQWUsR0FBRyxLQUFsQjtJQUNBLE9BQU9TLFdBQVA7RUFDQSxDQUxEOztTQVllUixHIn0=
@@ -1,97 +1,36 @@
1
- import ManagedObjectMetadata from "sap/ui/base/ManagedObjectMetadata";
1
+ import jsxControl from "sap/fe/core/jsx-runtime/jsx-control";
2
+ import jsxXml from "sap/fe/core/jsx-runtime/jsx-xml";
3
+ import Control from "sap/ui/core/Control";
4
+ import Element from "sap/ui/core/Element";
2
5
 
3
6
  type ControlPropertyNames<T> = {
4
7
  [K in keyof T]: T[K] extends string | boolean | Function | number | undefined | string[] ? never : K;
5
8
  }[keyof T];
6
- type ControlProperties<T> = Partial<Record<ControlPropertyNames<T>, JSX.Element>>;
7
- type NonControlProperties<T> = Partial<Omit<T, ControlPropertyNames<T>>>;
8
- type ControlWithMetadata = {
9
- getMetadata(): ManagedObjectMetadata;
10
- };
11
- export type WrappedControl<T> = (mSettings: NonControlProperties<T> & { children?: JSX.Element | ControlProperties<T> }) => JSX.Element;
9
+ export type ControlProperties<T> = Partial<Record<ControlPropertyNames<T>, Element>>;
10
+ export type NonControlProperties<T> = Partial<Omit<T, ControlPropertyNames<T>>>;
12
11
 
13
- const writeChildren = function(val: string | string[]) {
14
- if (Array.isArray(val)) {
15
- return val.join("");
12
+ let renderNextAsXML = false;
13
+ const jsx = function <T>(
14
+ ControlType: typeof Control,
15
+ mSettings: NonControlProperties<T> & { key: string; children?: Element | ControlProperties<T> },
16
+ key: string
17
+ ): string | Control | Control[] {
18
+ if (!renderNextAsXML) {
19
+ return jsxControl(ControlType, mSettings, key);
16
20
  } else {
17
- return val;
21
+ return jsxXml(ControlType, mSettings, key);
18
22
  }
19
23
  };
20
-
21
- const addChildAggregation = function(aggregationChildren: any, aggregationName: string, child: any) {
22
- if (child === undefined) {
23
- return;
24
- }
25
- if (!aggregationChildren[aggregationName]) {
26
- aggregationChildren[aggregationName] = [];
27
- }
28
- if (typeof child === "string" && child.trim().length > 0) {
29
- aggregationChildren[aggregationName].push(child);
30
- } else if (Array.isArray(child)) {
31
- child.forEach(subChild => {
32
- addChildAggregation(aggregationChildren, aggregationName, subChild);
33
- });
34
- } else {
35
- Object.keys(child).forEach(childKey => {
36
- addChildAggregation(aggregationChildren, childKey, child[childKey]);
37
- });
38
- }
24
+ jsx.renderAsXML = function (renderMethod: Function) {
25
+ renderNextAsXML = true;
26
+ const returnValue = renderMethod();
27
+ renderNextAsXML = false;
28
+ return returnValue;
39
29
  };
40
30
 
41
- const FL_DELEGATE = "fl:delegate";
42
- const jsx = function<T>(
43
- type: ControlWithMetadata,
44
- mSettings: NonControlProperties<T> & { key: string; children?: JSX.Element | ControlProperties<T> },
45
- key: string
46
- ): string {
47
- const metadata = type.getMetadata();
48
- const namesSplit = metadata.getName().split(".");
49
- if (key !== undefined) {
50
- mSettings["key"] = key;
51
- }
52
- const metadataProperties = metadata.getAllProperties();
53
- const metadataAggregations = metadata.getAllAggregations();
54
- metadataProperties["class"] = { name: "class" };
55
- metadataProperties["id"] = { name: "id" };
56
- metadataProperties[FL_DELEGATE] = { name: FL_DELEGATE };
57
- metadataProperties["xmlns:fl"] = { name: FL_DELEGATE };
58
- if (metadata.getName() === "sap.ui.core.Fragment") {
59
- metadataProperties["fragmentName"] = { name: "fragmentName" };
60
- }
61
- const namespace = namesSplit.slice(0, -1);
62
- const name = namesSplit[namesSplit.length - 1];
63
- const namespaceAlias = namespace[namespace.length - 1];
64
- const tagName = `${namespaceAlias}:${name}`;
65
- const propertiesString: string[] = [];
66
- const aggregationString: string[] = [];
67
- const defaultAggregationName = metadata.getDefaultAggregationName();
68
- Object.keys(metadataProperties).forEach(propertyName => {
69
- if (mSettings.hasOwnProperty(propertyName) && (mSettings as any)[propertyName] !== undefined) {
70
- if (typeof (mSettings as any)[propertyName] === "object") {
71
- propertiesString.push(`${propertyName}='${JSON.stringify((mSettings as any)[propertyName])}'`);
72
- } else {
73
- propertiesString.push(`${propertyName}='${(mSettings as any)[propertyName]}'`);
74
- }
75
- }
76
- });
77
- const aggregationChildren: Record<string, string[]> = {
78
- [defaultAggregationName]: []
79
- };
80
- addChildAggregation(aggregationChildren, defaultAggregationName, mSettings.children);
81
- Object.keys(metadataAggregations).forEach(aggregationName => {
82
- if (aggregationChildren?.hasOwnProperty(aggregationName) && aggregationChildren[aggregationName].length > 0) {
83
- aggregationString.push(
84
- `<${namespaceAlias}:${aggregationName}>
85
- ${writeChildren(aggregationChildren[aggregationName])}
86
- </${namespaceAlias}:${aggregationName}>`
87
- );
88
- }
89
- if (mSettings.hasOwnProperty(aggregationName) && (mSettings as any)[aggregationName] !== undefined) {
90
- propertiesString.push(`${aggregationName}='${JSON.stringify((mSettings as any)[aggregationName])}'`);
91
- }
92
- });
93
- return `<${tagName} xmlns:${namespaceAlias}="${namespace.join(".")}" ${propertiesString.join(" ")}>${aggregationString.join(
94
- ""
95
- )}</${tagName}>`;
31
+ export type Ref<T extends Element> = {
32
+ current?: T;
33
+ setCurrent(oControlInstance: T): void;
96
34
  };
35
+
97
36
  export default jsx;
@@ -7,4 +7,4 @@ sap.ui.define(["sap/fe/core/jsx-runtime/jsx"], function (jsx) {
7
7
 
8
8
  return jsx;
9
9
  }, false);
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImpzeHMudHMiXSwibmFtZXMiOlsianN4Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O1NBQWVBLEciLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqc3ggZnJvbSBcInNhcC9mZS9jb3JlL2pzeC1ydW50aW1lL2pzeFwiO1xuXG5leHBvcnQgZGVmYXVsdCBqc3g7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJqc3giXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbImpzeHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2NvcmUvanN4LXJ1bnRpbWUvanN4XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGpzeDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztTQUVlQSxHIn0=