@sapui5/sap.fe.core 1.102.0 → 1.103.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 (311) hide show
  1. package/package.json +5 -5
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AppComponent.js +62 -26
  4. package/src/sap/fe/core/AppComponent.ts +56 -40
  5. package/src/sap/fe/core/AppStateHandler.js +10 -10
  6. package/src/sap/fe/core/AppStateHandler.ts +9 -9
  7. package/src/sap/fe/core/BaseController.js +11 -9
  8. package/src/sap/fe/core/BaseController.ts +15 -13
  9. package/src/sap/fe/core/CommonUtils.js +236 -109
  10. package/src/sap/fe/core/CommonUtils.ts +252 -136
  11. package/src/sap/fe/core/ExtensionAPI.js +24 -27
  12. package/src/sap/fe/core/ExtensionAPI.ts +36 -38
  13. package/src/sap/fe/core/PageController.js +4 -4
  14. package/src/sap/fe/core/PageController.ts +4 -5
  15. package/src/sap/fe/core/TemplateComponent.js +1 -1
  16. package/src/sap/fe/core/TemplateComponent.ts +6 -6
  17. package/src/sap/fe/core/TemplateModel.js +1 -1
  18. package/src/sap/fe/core/TemplateModel.ts +1 -1
  19. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
  20. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +1 -1
  21. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +8 -8
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +11 -10
  23. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +27 -27
  24. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +28 -26
  25. package/src/sap/fe/core/controllerextensions/EditFlow.js +129 -118
  26. package/src/sap/fe/core/controllerextensions/EditFlow.ts +154 -141
  27. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +9 -9
  28. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
  29. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +31 -26
  30. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +34 -35
  31. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +70 -70
  32. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +77 -77
  33. package/src/sap/fe/core/controllerextensions/InternalRouting.js +84 -78
  34. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +105 -101
  35. package/src/sap/fe/core/controllerextensions/KPIManagement.js +66 -68
  36. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
  37. package/src/sap/fe/core/controllerextensions/MassEdit.js +8 -8
  38. package/src/sap/fe/core/controllerextensions/MassEdit.ts +19 -26
  39. package/src/sap/fe/core/controllerextensions/MessageHandler.js +20 -12
  40. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +29 -14
  41. package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
  42. package/src/sap/fe/core/controllerextensions/PageReady.ts +94 -34
  43. package/src/sap/fe/core/controllerextensions/Paginator.js +21 -22
  44. package/src/sap/fe/core/controllerextensions/Paginator.ts +24 -25
  45. package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -6
  46. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  47. package/src/sap/fe/core/controllerextensions/Routing.js +10 -11
  48. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  49. package/src/sap/fe/core/controllerextensions/Share.js +22 -22
  50. package/src/sap/fe/core/controllerextensions/Share.ts +30 -29
  51. package/src/sap/fe/core/controllerextensions/SideEffects.js +46 -50
  52. package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
  53. package/src/sap/fe/core/controllerextensions/ViewState.js +65 -62
  54. package/src/sap/fe/core/controllerextensions/ViewState.ts +68 -63
  55. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
  56. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -7
  57. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +6 -6
  58. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +12 -17
  59. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
  60. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +4 -4
  61. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +7 -9
  62. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +18 -19
  63. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +184 -137
  64. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +253 -206
  65. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +113 -121
  66. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +148 -158
  67. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +198 -148
  68. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +223 -159
  69. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +24 -26
  70. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +35 -33
  71. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +78 -44
  72. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +90 -60
  73. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +52 -55
  74. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +55 -58
  75. package/src/sap/fe/core/controls/Any.js +9 -5
  76. package/src/sap/fe/core/controls/Any.ts +10 -4
  77. package/src/sap/fe/core/controls/CommandExecution.js +11 -25
  78. package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
  79. package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
  80. package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
  81. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +22 -22
  82. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
  83. package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
  84. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +2 -2
  85. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -3
  86. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +5 -5
  87. package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
  88. package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
  89. package/src/sap/fe/core/controls/FileWrapper.js +2 -2
  90. package/src/sap/fe/core/controls/FileWrapper.ts +11 -11
  91. package/src/sap/fe/core/controls/FilterBar.js +6 -2
  92. package/src/sap/fe/core/controls/FilterBar.ts +13 -9
  93. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
  94. package/src/sap/fe/core/controls/FormElementWrapper.ts +2 -2
  95. package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
  96. package/src/sap/fe/core/controls/MassEditSelect.ts +0 -4
  97. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +3 -3
  98. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +16 -12
  99. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
  100. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -3
  101. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
  102. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +47 -47
  103. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +52 -52
  104. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
  105. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +89 -88
  106. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +107 -106
  107. package/src/sap/fe/core/converters/ConverterContext.js +26 -33
  108. package/src/sap/fe/core/converters/ConverterContext.ts +51 -60
  109. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  110. package/src/sap/fe/core/converters/ManifestSettings.ts +14 -14
  111. package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
  112. package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
  113. package/src/sap/fe/core/converters/MetaModelConverter.js +50 -32
  114. package/src/sap/fe/core/converters/MetaModelConverter.ts +145 -127
  115. package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
  116. package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
  117. package/src/sap/fe/core/converters/annotations/DataField.js +54 -34
  118. package/src/sap/fe/core/converters/annotations/DataField.ts +97 -75
  119. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
  120. package/src/sap/fe/core/converters/controls/Common/Action.js +50 -41
  121. package/src/sap/fe/core/converters/controls/Common/Action.ts +56 -46
  122. package/src/sap/fe/core/converters/controls/Common/Chart.js +14 -14
  123. package/src/sap/fe/core/converters/controls/Common/Chart.ts +23 -26
  124. package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
  125. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
  126. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +28 -28
  127. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +40 -36
  128. package/src/sap/fe/core/converters/controls/Common/Form.js +25 -27
  129. package/src/sap/fe/core/converters/controls/Common/Form.ts +37 -45
  130. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
  131. package/src/sap/fe/core/converters/controls/Common/KPI.ts +35 -39
  132. package/src/sap/fe/core/converters/controls/Common/Table.js +174 -183
  133. package/src/sap/fe/core/converters/controls/Common/Table.ts +237 -250
  134. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
  135. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +144 -141
  136. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +45 -41
  137. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +64 -57
  138. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
  139. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
  140. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
  141. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
  142. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +67 -64
  143. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +69 -66
  144. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +73 -72
  145. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +98 -96
  146. package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
  147. package/src/sap/fe/core/converters/helpers/Aggregation.ts +10 -13
  148. package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -31
  149. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +30 -29
  150. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -4
  151. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +9 -9
  152. package/src/sap/fe/core/converters/helpers/ID.js +46 -46
  153. package/src/sap/fe/core/converters/helpers/ID.ts +25 -25
  154. package/src/sap/fe/core/converters/helpers/Key.js +7 -7
  155. package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
  156. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  157. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -4
  158. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
  159. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
  160. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +46 -62
  161. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +54 -82
  162. package/src/sap/fe/core/converters/templates/ListReportConverter.js +30 -29
  163. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +40 -40
  164. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +39 -38
  165. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +52 -61
  166. package/src/sap/fe/core/designtime/AppComponent.designtime.js +4 -4
  167. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +4 -4
  168. package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
  169. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
  170. package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
  171. package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
  172. package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
  173. package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
  174. package/src/sap/fe/core/formatters/StandardFormatter.js +89 -0
  175. package/src/sap/fe/core/formatters/StandardFormatter.ts +64 -0
  176. package/src/sap/fe/core/formatters/TableFormatter.js +11 -11
  177. package/src/sap/fe/core/formatters/TableFormatter.ts +12 -12
  178. package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
  179. package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
  180. package/src/sap/fe/core/helpers/AppStartupHelper.js +15 -15
  181. package/src/sap/fe/core/helpers/AppStartupHelper.ts +37 -40
  182. package/src/sap/fe/core/helpers/BindingToolkit.js +1809 -0
  183. package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +365 -264
  184. package/src/sap/fe/core/helpers/ClassSupport.js +20 -11
  185. package/src/sap/fe/core/helpers/ClassSupport.ts +14 -10
  186. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
  187. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
  188. package/src/sap/fe/core/helpers/EditState.js +1 -6
  189. package/src/sap/fe/core/helpers/EditState.ts +5 -10
  190. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
  191. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
  192. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  193. package/src/sap/fe/core/helpers/FPMHelper.ts +2 -2
  194. package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
  195. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
  196. package/src/sap/fe/core/helpers/MassEditHelper.js +281 -254
  197. package/src/sap/fe/core/helpers/MassEditHelper.ts +337 -289
  198. package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
  199. package/src/sap/fe/core/helpers/ModelHelper.ts +34 -32
  200. package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
  201. package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
  202. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  203. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
  204. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
  205. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
  206. package/src/sap/fe/core/helpers/StableIdHelper.js +12 -12
  207. package/src/sap/fe/core/helpers/StableIdHelper.ts +12 -12
  208. package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
  209. package/src/sap/fe/core/jsx-runtime/jsx.ts +8 -8
  210. package/src/sap/fe/core/library.js +42 -3
  211. package/src/sap/fe/core/library.ts +38 -0
  212. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
  213. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
  214. package/src/sap/fe/core/messagebundle.properties +49 -35
  215. package/src/sap/fe/core/messagebundle_ar.properties +13 -5
  216. package/src/sap/fe/core/messagebundle_bg.properties +13 -5
  217. package/src/sap/fe/core/messagebundle_ca.properties +13 -5
  218. package/src/sap/fe/core/messagebundle_cs.properties +13 -5
  219. package/src/sap/fe/core/messagebundle_cy.properties +14 -6
  220. package/src/sap/fe/core/messagebundle_da.properties +13 -5
  221. package/src/sap/fe/core/messagebundle_de.properties +15 -7
  222. package/src/sap/fe/core/messagebundle_el.properties +14 -6
  223. package/src/sap/fe/core/messagebundle_en.properties +9 -1
  224. package/src/sap/fe/core/messagebundle_en_GB.properties +11 -3
  225. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +7 -1
  226. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -1
  227. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +44 -85
  228. package/src/sap/fe/core/messagebundle_es.properties +13 -5
  229. package/src/sap/fe/core/messagebundle_es_MX.properties +13 -5
  230. package/src/sap/fe/core/messagebundle_et.properties +13 -5
  231. package/src/sap/fe/core/messagebundle_fi.properties +14 -6
  232. package/src/sap/fe/core/messagebundle_fr.properties +14 -6
  233. package/src/sap/fe/core/messagebundle_fr_CA.properties +14 -6
  234. package/src/sap/fe/core/messagebundle_hi.properties +14 -6
  235. package/src/sap/fe/core/messagebundle_hr.properties +14 -6
  236. package/src/sap/fe/core/messagebundle_hu.properties +13 -5
  237. package/src/sap/fe/core/messagebundle_id.properties +13 -5
  238. package/src/sap/fe/core/messagebundle_it.properties +33 -25
  239. package/src/sap/fe/core/messagebundle_iw.properties +13 -5
  240. package/src/sap/fe/core/messagebundle_ja.properties +14 -6
  241. package/src/sap/fe/core/messagebundle_kk.properties +13 -5
  242. package/src/sap/fe/core/messagebundle_ko.properties +13 -5
  243. package/src/sap/fe/core/messagebundle_lt.properties +13 -5
  244. package/src/sap/fe/core/messagebundle_lv.properties +14 -6
  245. package/src/sap/fe/core/messagebundle_ms.properties +13 -5
  246. package/src/sap/fe/core/messagebundle_nl.properties +13 -5
  247. package/src/sap/fe/core/messagebundle_no.properties +13 -5
  248. package/src/sap/fe/core/messagebundle_pl.properties +13 -5
  249. package/src/sap/fe/core/messagebundle_pt.properties +13 -5
  250. package/src/sap/fe/core/messagebundle_pt_PT.properties +14 -6
  251. package/src/sap/fe/core/messagebundle_ro.properties +13 -5
  252. package/src/sap/fe/core/messagebundle_ru.properties +13 -5
  253. package/src/sap/fe/core/messagebundle_sh.properties +13 -5
  254. package/src/sap/fe/core/messagebundle_sk.properties +13 -5
  255. package/src/sap/fe/core/messagebundle_sl.properties +17 -9
  256. package/src/sap/fe/core/messagebundle_sv.properties +14 -6
  257. package/src/sap/fe/core/messagebundle_th.properties +13 -5
  258. package/src/sap/fe/core/messagebundle_tr.properties +13 -5
  259. package/src/sap/fe/core/messagebundle_uk.properties +13 -5
  260. package/src/sap/fe/core/messagebundle_vi.properties +13 -5
  261. package/src/sap/fe/core/messagebundle_zh_CN.properties +14 -6
  262. package/src/sap/fe/core/messagebundle_zh_TW.properties +13 -5
  263. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
  264. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
  265. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -2
  266. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +14 -14
  267. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  268. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
  269. package/src/sap/fe/core/services/NavigationServiceFactory.js +53 -44
  270. package/src/sap/fe/core/services/NavigationServiceFactory.ts +54 -46
  271. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
  272. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
  273. package/src/sap/fe/core/services/RoutingServiceFactory.js +55 -55
  274. package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
  275. package/src/sap/fe/core/services/ShellServicesFactory.js +72 -76
  276. package/src/sap/fe/core/services/ShellServicesFactory.ts +76 -82
  277. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +61 -61
  278. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
  279. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +20 -15
  280. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +26 -21
  281. package/src/sap/fe/core/support/CommonHelper.js +3 -2
  282. package/src/sap/fe/core/support/CommonHelper.ts +9 -13
  283. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  284. package/src/sap/fe/core/support/Diagnostics.ts +5 -5
  285. package/src/sap/fe/core/templating/CommonFormatters.js +84 -0
  286. package/src/sap/fe/core/templating/CommonFormatters.ts +86 -0
  287. package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
  288. package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
  289. package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
  290. package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
  291. package/src/sap/fe/core/templating/DataModelPathHelper.js +16 -15
  292. package/src/sap/fe/core/templating/DataModelPathHelper.ts +42 -32
  293. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  294. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -3
  295. package/src/sap/fe/core/templating/EntitySetHelper.js +7 -7
  296. package/src/sap/fe/core/templating/EntitySetHelper.ts +6 -8
  297. package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
  298. package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
  299. package/src/sap/fe/core/templating/FilterHelper.js +10 -9
  300. package/src/sap/fe/core/templating/FilterHelper.ts +13 -13
  301. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  302. package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
  303. package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
  304. package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
  305. package/src/sap/fe/core/templating/PropertyHelper.js +25 -25
  306. package/src/sap/fe/core/templating/PropertyHelper.ts +25 -26
  307. package/src/sap/fe/core/templating/UIFormatters.js +148 -93
  308. package/src/sap/fe/core/templating/UIFormatters.ts +196 -124
  309. package/src/sap/fe/core/type/Email.js +2 -2
  310. package/src/sap/fe/core/type/Email.ts +2 -2
  311. package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
@@ -1,54 +1,54 @@
1
- import {
2
- AnnotationTerm,
1
+ import type { AnnotationTerm } from "@sap-ux/vocabularies-types";
2
+ import { CommunicationAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Communication";
3
+ import type {
3
4
  CollectionFacetTypes,
4
5
  DataFieldAbstractTypes,
6
+ Emphasized,
5
7
  FacetTypes,
6
8
  FieldGroup,
7
- Identification,
8
9
  OperationGroupingType,
9
- ReferenceFacetTypes,
10
- StatusInfo,
11
- UIAnnotationTerms,
12
- UIAnnotationTypes
13
- } from "@sap-ux/vocabularies-types";
14
- import { CommunicationAnnotationTerms } from "@sap-ux/vocabularies-types/dist/generated/Communication";
10
+ ReferenceFacetTypes
11
+ } from "@sap-ux/vocabularies-types/vocabularies/UI";
12
+ import { UIAnnotationTerms, UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
13
+ import type { BaseAction, ConverterAction, CustomAction } from "sap/fe/core/converters/controls/Common/Action";
15
14
  import {
16
- BaseAction,
17
15
  ButtonType,
18
- ConverterAction,
19
- CustomAction,
20
16
  getActionsFromManifest,
21
17
  getEnabledForAnnotationAction,
22
18
  getSemanticObjectMapping,
23
19
  isActionNavigable,
24
20
  removeDuplicateActions
25
21
  } from "sap/fe/core/converters/controls/Common/Action";
22
+ import type { CustomObjectPageHeaderFacet, FlexSettings } from "sap/fe/core/converters/controls/ObjectPage/HeaderFacet";
26
23
  import {
27
- CustomObjectPageHeaderFacet,
28
- FlexSettings,
29
24
  getDesignTimeMetadataSettingsForHeaderFacet,
30
25
  getHeaderFacetsFromManifest,
31
26
  getStashedSettingsForHeaderFacet
32
27
  } from "sap/fe/core/converters/controls/ObjectPage/HeaderFacet";
33
28
  import { IssueCategory, IssueSeverity, IssueType } from "sap/fe/core/converters/helpers/IssueManager";
34
29
  import { KeyHelper } from "sap/fe/core/converters/helpers/Key";
30
+ import type { CompiledBindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
35
31
  import {
36
- annotationExpression,
37
- bindingExpression,
38
- BindingExpression,
39
- compileBinding,
32
+ compileExpression,
40
33
  equal,
41
34
  fn,
35
+ getExpressionFromAnnotation,
36
+ ifElse,
42
37
  not,
38
+ pathInModel,
43
39
  ref
44
- } from "sap/fe/core/helpers/BindingExpression";
45
- import ConverterContext from "../../ConverterContext";
46
- import { ConfigurableObject, ConfigurableRecord, CustomElement, insertCustomElements, Placement } from "../../helpers/ConfigurableObject";
47
- import { CustomSubSectionID, FormID, SideContentID, SubSectionID } from "../../helpers/ID";
48
- import { ActionType, ManifestAction, ManifestSubSection } from "../../ManifestSettings";
40
+ } from "sap/fe/core/helpers/BindingToolkit";
41
+ import type ConverterContext from "../../ConverterContext";
42
+ import type { ConfigurableObject, ConfigurableRecord, CustomElement } from "../../helpers/ConfigurableObject";
43
+ import { insertCustomElements, Placement } from "../../helpers/ConfigurableObject";
44
+ import { getCustomSubSectionID, getFormID, getSideContentID, getSubSectionID } from "../../helpers/ID";
45
+ import type { ManifestAction, ManifestSubSection } from "../../ManifestSettings";
46
+ import { ActionType } from "../../ManifestSettings";
49
47
  import { getFormActions, getFormHiddenActions, getVisibilityEnablementFormMenuActions } from "../../objectPage/FormMenuActions";
50
- import { DataVisualizationDefinition, getDataVisualizationConfiguration } from "../Common/DataVisualization";
51
- import { createFormDefinition, FormDefinition, isReferenceFacet } from "../Common/Form";
48
+ import type { DataVisualizationDefinition } from "../Common/DataVisualization";
49
+ import { getDataVisualizationConfiguration } from "../Common/DataVisualization";
50
+ import type { FormDefinition } from "../Common/Form";
51
+ import { createFormDefinition, isReferenceFacet } from "../Common/Form";
52
52
 
53
53
  export enum SubSectionType {
54
54
  Unknown = "Unknown", // Default Type
@@ -71,10 +71,10 @@ export type ObjectPageSubSection =
71
71
  type BaseSubSection = {
72
72
  id: string;
73
73
  key: string;
74
- title: BindingExpression<string>;
74
+ title: CompiledBindingToolkitExpression;
75
75
  annotationPath: string;
76
76
  type: SubSectionType;
77
- visible: BindingExpression<boolean>;
77
+ visible: CompiledBindingToolkitExpression;
78
78
  isVisibilityDynamic?: boolean | "";
79
79
  flexSettings?: FlexSettings;
80
80
  stashed?: boolean;
@@ -102,10 +102,6 @@ type XMLFragmentSubSection = Omit<BaseSubSection, "annotationPath"> & {
102
102
  actions: Record<string, CustomAction>;
103
103
  };
104
104
 
105
- type Emphasized = {
106
- path: string;
107
- };
108
-
109
105
  type PlaceholderFragmentSubSection = Omit<BaseSubSection, "annotationPath"> & {
110
106
  type: SubSectionType.Placeholder;
111
107
  actions: Record<string, CustomAction>;
@@ -123,9 +119,9 @@ export type FormSubSection = BaseSubSection & {
123
119
 
124
120
  export type ObjectPageSection = ConfigurableObject & {
125
121
  id: string;
126
- title: BindingExpression<string>;
127
- showTitle?: BindingExpression<boolean>;
128
- visible: BindingExpression<boolean>;
122
+ title: CompiledBindingToolkitExpression;
123
+ showTitle?: boolean;
124
+ visible: CompiledBindingToolkitExpression;
129
125
  subSections: ObjectPageSubSection[];
130
126
  };
131
127
 
@@ -156,10 +152,10 @@ const hasTable = (facets: any[] = []) => {
156
152
  /**
157
153
  * Create subsections based on facet definition.
158
154
  *
159
- * @param {FacetTypes[]} facetCollection Collection of facets
160
- * @param {ConverterContext} converterContext The converter context
161
- * @param {boolean} isHeaderSection True if header section is generated in this iteration
162
- * @returns {ObjectPageSubSection[]} The current subsections
155
+ * @param facetCollection Collection of facets
156
+ * @param converterContext The converter context
157
+ * @param isHeaderSection True if header section is generated in this iteration
158
+ * @returns The current subsections
163
159
  */
164
160
  export function createSubSections(
165
161
  facetCollection: FacetTypes[],
@@ -197,8 +193,8 @@ export function createSubSections(
197
193
  /**
198
194
  * Creates subsections based on the definition of the custom header facet.
199
195
  *
200
- * @param {ConverterContext} converterContext The converter context
201
- * @returns {ObjectPageSubSection[]} The current subsections
196
+ * @param converterContext The converter context
197
+ * @returns The current subsections
202
198
  */
203
199
  export function createCustomHeaderFacetSubSections(converterContext: ConverterContext): ObjectPageSubSection[] {
204
200
  const customHeaderFacets: Record<string, CustomObjectPageHeaderFacet> = getHeaderFacetsFromManifest(
@@ -223,11 +219,10 @@ export function createCustomHeaderFacetSubSections(converterContext: ConverterCo
223
219
  * Creates a subsection based on a custom header facet.
224
220
  *
225
221
  * @param customHeaderFacet A custom header facet
226
- *
227
- * @returns {ObjectPageSubSection} A definition for a subsection
222
+ * @returns A definition for a subsection
228
223
  */
229
224
  function createCustomHeaderFacetSubSection(customHeaderFacet: CustomObjectPageHeaderFacet): ObjectPageSubSection {
230
- const subSectionID = CustomSubSectionID(customHeaderFacet.key);
225
+ const subSectionID = getCustomSubSectionID(customHeaderFacet.key);
231
226
  const subSection: XMLFragmentSubSection = {
232
227
  id: subSectionID,
233
228
  key: customHeaderFacet.key,
@@ -252,10 +247,11 @@ const getSubSectionKey = (facetDefinition: FacetTypes, fallback: string): string
252
247
  };
253
248
  /**
254
249
  * Adds Form menu action to all form actions, removes duplicate actions and hidden actions.
250
+ *
255
251
  * @param actions The actions involved
256
252
  * @param facetDefinition The definition for the facet
257
253
  * @param converterContext The converter context
258
- * @returns {BaseAction[] | ConverterAction[]}
254
+ * @returns The form menu actions
259
255
  */
260
256
  function addFormMenuActions(
261
257
  actions: ConverterAction[],
@@ -274,51 +270,53 @@ function addFormMenuActions(
274
270
 
275
271
  /**
276
272
  * Retrieves the action form a facet.
273
+ *
277
274
  * @param facetDefinition
278
275
  * @param converterContext
279
- * @returns {ConverterAction[] | BaseAction[]} The current facet actions
276
+ * @returns The current facet actions
280
277
  */
281
278
  function getFacetActions(facetDefinition: FacetTypes, converterContext: ConverterContext): BaseAction[] | ConverterAction[] {
282
279
  let actions = new Array<ConverterAction>();
283
280
  switch (facetDefinition.$Type) {
284
281
  case UIAnnotationTypes.CollectionFacet:
285
282
  actions = (
286
- facetDefinition.Facets.filter((facetDefinition) => isReferenceFacet(facetDefinition)) as ReferenceFacetTypes[]
283
+ facetDefinition.Facets.filter((subFacetDefinition) => isReferenceFacet(subFacetDefinition)) as ReferenceFacetTypes[]
287
284
  ).reduce(
288
- (actions: ConverterAction[], facetDefinition) => createFormActionReducer(actions, facetDefinition, converterContext),
285
+ (actionReducer: ConverterAction[], referenceFacet) =>
286
+ createFormActionReducer(actionReducer, referenceFacet, converterContext),
289
287
  []
290
288
  );
291
289
  break;
292
290
  case UIAnnotationTypes.ReferenceFacet:
293
- actions = createFormActionReducer([], facetDefinition as ReferenceFacetTypes, converterContext);
291
+ actions = createFormActionReducer([], facetDefinition, converterContext);
292
+ break;
293
+ default:
294
294
  break;
295
295
  }
296
296
  return addFormMenuActions(actions, facetDefinition, converterContext);
297
297
  }
298
298
  /**
299
- * Retruns the button type based on @UI.Emphasized annotation.
300
- * @param Emphasized Emphasized annotation value.
301
- * @returns {ButtonType | string} The button type or path based expression.
299
+ * Returns the button type based on @UI.Emphasized annotation.
300
+ *
301
+ * @param emphasized Emphasized annotation value.
302
+ * @returns The button type or path based expression.
302
303
  */
303
- function getButtonType(Emphasized: Emphasized): ButtonType | string {
304
- const PathForButtonType: string = Emphasized?.path;
305
- if (PathForButtonType) {
306
- return "{= " + "!${" + PathForButtonType + "} ? '" + ButtonType.Transparent + "' : ${" + PathForButtonType + "}" + "}";
307
- } else if (Emphasized) {
308
- return ButtonType.Ghost;
309
- }
310
- return ButtonType.Transparent;
304
+ function getButtonType(emphasized: Emphasized | undefined): ButtonType {
305
+ // Emphasized is a boolean so if it's equal to true we show the button as Ghost, otherwise as Transparent
306
+ const buttonTypeCondition = equal(getExpressionFromAnnotation(emphasized), true);
307
+ return compileExpression(ifElse(buttonTypeCondition, ButtonType.Ghost, ButtonType.Transparent)) as ButtonType;
311
308
  }
312
309
 
313
310
  /**
314
311
  * Create a subsection based on FacetTypes.
312
+ *
315
313
  * @param facetDefinition
316
314
  * @param facetsToCreate
317
315
  * @param converterContext
318
316
  * @param level
319
317
  * @param hasSingleContent
320
318
  * @param isHeaderSection
321
- * @returns {ObjectPageSubSection} A subsection definition
319
+ * @returns A subsection definition
322
320
  */
323
321
  export function createSubSection(
324
322
  facetDefinition: FacetTypes,
@@ -328,14 +326,14 @@ export function createSubSection(
328
326
  hasSingleContent: boolean,
329
327
  isHeaderSection?: boolean
330
328
  ): ObjectPageSubSection {
331
- const subSectionID = SubSectionID({ Facet: facetDefinition });
329
+ const subSectionID = getSubSectionID({ Facet: facetDefinition });
332
330
  const oHiddenAnnotation: any = facetDefinition.annotations?.UI?.Hidden;
333
- const isVisible = compileBinding(not(equal(true, annotationExpression(oHiddenAnnotation))));
331
+ const isVisible = compileExpression(not(equal(true, getExpressionFromAnnotation(oHiddenAnnotation))));
334
332
  const isDynamicExpression =
335
333
  isVisible && typeof isVisible === "string" && isVisible.indexOf("{=") === 0 && oHiddenAnnotation?.type !== "Path";
336
334
  const isVisibleDynamicExpression =
337
335
  isVisible && isDynamicExpression ? isVisible.substring(isVisible.indexOf("{=") + 2, isVisible.lastIndexOf("}")) : false;
338
- const title = compileBinding(annotationExpression(facetDefinition.Label));
336
+ const title = compileExpression(getExpressionFromAnnotation(facetDefinition.Label));
339
337
  const subSection: BaseSubSection = {
340
338
  id: subSectionID,
341
339
  key: getSubSectionKey(facetDefinition, subSectionID),
@@ -465,7 +463,11 @@ export function createSubSection(
465
463
  };
466
464
  return unsupportedSubSection;
467
465
  }
468
- function isSubsectionTitleShown(hasSingleContent: boolean, subSectionTitle: BindingExpression<string>, controlTitle: string): boolean {
466
+ function isSubsectionTitleShown(
467
+ hasSingleContent: boolean,
468
+ subSectionTitle: CompiledBindingToolkitExpression,
469
+ controlTitle: string
470
+ ): boolean {
469
471
  if (hasSingleContent && controlTitle === subSectionTitle) {
470
472
  return false;
471
473
  }
@@ -500,20 +502,19 @@ function createFormActionReducer(
500
502
  undefined,
501
503
  undefined,
502
504
  undefined,
503
- facetDefinition.fullyQualifiedName as string
505
+ facetDefinition.fullyQualifiedName
504
506
  );
505
507
  break;
506
508
  case UIAnnotationTerms.Identification:
507
509
  case UIAnnotationTerms.StatusInfo:
508
510
  if (referenceTarget.qualifier) {
509
- dataFieldCollection = referenceTarget as Identification | StatusInfo;
511
+ dataFieldCollection = referenceTarget;
510
512
  }
511
513
  break;
512
514
  }
513
515
  }
514
516
 
515
- actions = dataFieldCollection.reduce((actions, dataField: DataFieldAbstractTypes) => {
516
- const UIAnnotation: any = dataField?.annotations?.UI;
517
+ actions = dataFieldCollection.reduce((actionReducer, dataField: DataFieldAbstractTypes) => {
517
518
  switch (dataField.$Type) {
518
519
  case UIAnnotationTypes.DataFieldForIntentBasedNavigation:
519
520
  if (dataField.RequiresContext?.valueOf() === true) {
@@ -535,57 +536,57 @@ function createFormActionReducer(
535
536
  if (dataField.Mapping) {
536
537
  mNavigationParameters.semanticObjectMapping = getSemanticObjectMapping(dataField.Mapping);
537
538
  }
538
- actions.push({
539
+ actionReducer.push({
539
540
  type: ActionType.DataFieldForIntentBasedNavigation,
540
- id: FormID({ Facet: facetDefinition }, dataField),
541
+ id: getFormID({ Facet: facetDefinition }, dataField),
541
542
  key: KeyHelper.generateKeyFromDataField(dataField),
542
543
  text: dataField.Label?.toString(),
543
544
  annotationPath: "",
544
545
  enabled:
545
546
  dataField.NavigationAvailable !== undefined
546
- ? compileBinding(equal(annotationExpression(dataField.NavigationAvailable?.valueOf()), true))
547
- : true,
548
- visible: compileBinding(not(equal(annotationExpression(dataField.annotations?.UI?.Hidden?.valueOf()), true))),
549
- buttonType: getButtonType(UIAnnotation?.Emphasized),
550
- press: compileBinding(
547
+ ? compileExpression(equal(getExpressionFromAnnotation(dataField.NavigationAvailable?.valueOf()), true))
548
+ : "true",
549
+ visible: compileExpression(not(equal(getExpressionFromAnnotation(dataField.annotations?.UI?.Hidden?.valueOf()), true))),
550
+ buttonType: getButtonType(dataField.annotations?.UI?.Emphasized),
551
+ press: compileExpression(
551
552
  fn("._intentBasedNavigation.navigate", [
552
- annotationExpression(dataField.SemanticObject),
553
- annotationExpression(dataField.Action),
553
+ getExpressionFromAnnotation(dataField.SemanticObject),
554
+ getExpressionFromAnnotation(dataField.Action),
554
555
  mNavigationParameters
555
556
  ])
556
557
  ),
557
- customData: compileBinding({
558
- semanticObject: annotationExpression(dataField.SemanticObject),
559
- action: annotationExpression(dataField.Action)
558
+ customData: compileExpression({
559
+ semanticObject: getExpressionFromAnnotation(dataField.SemanticObject),
560
+ action: getExpressionFromAnnotation(dataField.Action)
560
561
  })
561
562
  });
562
563
  break;
563
564
  case UIAnnotationTypes.DataFieldForAction:
564
565
  const formManifestActionsConfiguration: any = converterContext.getManifestControlConfiguration(referenceTarget).actions;
565
566
  const key: string = KeyHelper.generateKeyFromDataField(dataField);
566
- actions.push({
567
+ actionReducer.push({
567
568
  type: ActionType.DataFieldForAction,
568
- id: FormID({ Facet: facetDefinition }, dataField),
569
+ id: getFormID({ Facet: facetDefinition }, dataField),
569
570
  key: key,
570
571
  text: dataField.Label?.toString(),
571
572
  annotationPath: "",
572
573
  enabled: getEnabledForAnnotationAction(converterContext, dataField.ActionTarget),
573
- binding: navigationPropertyPath ? "{ 'path' : '" + navigationPropertyPath + "'}" : undefined,
574
- visible: compileBinding(not(equal(annotationExpression(dataField.annotations?.UI?.Hidden?.valueOf()), true))),
574
+ binding: navigationPropertyPath ? `{ 'path' : '${navigationPropertyPath}'}` : undefined,
575
+ visible: compileExpression(not(equal(getExpressionFromAnnotation(dataField.annotations?.UI?.Hidden?.valueOf()), true))),
575
576
  requiresDialog: isDialog(dataField.ActionTarget),
576
- buttonType: getButtonType(UIAnnotation?.Emphasized),
577
- press: compileBinding(
577
+ buttonType: getButtonType(dataField.annotations?.UI?.Emphasized),
578
+ press: compileExpression(
578
579
  fn(
579
580
  "invokeAction",
580
581
  [
581
582
  dataField.Action,
582
583
  {
583
- contexts: fn("getBindingContext", [], bindingExpression("", "$source")),
584
+ contexts: fn("getBindingContext", [], pathInModel("", "$source")),
584
585
  invocationGrouping: (dataField.InvocationGrouping === "UI.OperationGroupingType/ChangeSet"
585
586
  ? "ChangeSet"
586
587
  : "Isolated") as OperationGroupingType,
587
- label: annotationExpression(dataField.Label),
588
- model: fn("getModel", [], bindingExpression("/", "$source")),
588
+ label: getExpressionFromAnnotation(dataField.Label),
589
+ model: fn("getModel", [], pathInModel("/", "$source")),
589
590
  isNavigable: isActionNavigable(
590
591
  formManifestActionsConfiguration && formManifestActionsConfiguration[key]
591
592
  )
@@ -594,11 +595,13 @@ function createFormActionReducer(
594
595
  ref(".editFlow")
595
596
  )
596
597
  ),
597
- facetName: dataField.Inline ? (facetDefinition.fullyQualifiedName as string) : undefined
598
+ facetName: dataField.Inline ? facetDefinition.fullyQualifiedName : undefined
598
599
  });
599
600
  break;
601
+ default:
602
+ break;
600
603
  }
601
- return actions;
604
+ return actionReducer;
602
605
  }, actions);
603
606
  return insertCustomElements(actions, manifestActions);
604
607
  }
@@ -636,7 +639,7 @@ export function createCustomSubSection(
636
639
  const sideContent: SideContentDef | undefined = manifestSubSection.sideContent
637
640
  ? {
638
641
  template: manifestSubSection.sideContent.template,
639
- id: SideContentID(subSectionKey),
642
+ id: getSideContentID(subSectionKey),
640
643
  visible: false,
641
644
  equalSplit: manifestSubSection.sideContent.equalSplit
642
645
  }
@@ -651,7 +654,7 @@ export function createCustomSubSection(
651
654
  const isDynamicExpression = isVisible && typeof isVisible === "string" && isVisible.indexOf("{=") === 0;
652
655
  const subSectionDefinition = {
653
656
  type: SubSectionType.Unknown,
654
- id: manifestSubSection.id || CustomSubSectionID(subSectionKey),
657
+ id: manifestSubSection.id || getCustomSubSectionID(subSectionKey),
655
658
  actions: getActionsFromManifest(manifestSubSection.actions, converterContext),
656
659
  key: subSectionKey,
657
660
  title: manifestSubSection.title,
@@ -676,8 +679,7 @@ export function createCustomSubSection(
676
679
  * @param currentFacet
677
680
  * @param facetsToCreateInSection
678
681
  * @param converterContext
679
- *
680
- * @returns {boolean} `true` for compliant, false otherwise
682
+ * @returns `true` for compliant, false otherwise
681
683
  */
682
684
  function getCondensedTableLayoutCompliance(
683
685
  currentFacet: FacetTypes,
@@ -702,7 +704,7 @@ function hasNoOtherVisibleTableInTargets(currentFacet: FacetTypes, facetsToCreat
702
704
  return facetsToCreateInSection.every(function (subFacet) {
703
705
  if (subFacet !== currentFacet) {
704
706
  if (subFacet.$Type === UIAnnotationTypes.ReferenceFacet) {
705
- const refFacet = subFacet as ReferenceFacetTypes;
707
+ const refFacet = subFacet;
706
708
  if (
707
709
  refFacet.Target?.$target?.term === UIAnnotationTerms.LineItem ||
708
710
  refFacet.Target?.$target?.term === UIAnnotationTerms.PresentationVariant ||
@@ -156,9 +156,7 @@ sap.ui.define([], function () {
156
156
  };
157
157
 
158
158
  _proto.getTransAggregations = function getTransAggregations() {
159
- var aTransAggregationAnnotations = this._converterContext.getAnnotationsByTerm("Analytics", "com.sap.vocabularies.Analytics.v1.AggregatedProperties", [this._converterContext.getEntityContainer(), this._converterContext.getEntityType()]);
160
-
161
- return aTransAggregationAnnotations;
159
+ return this._converterContext.getAnnotationsByTerm("Analytics", "com.sap.vocabularies.Analytics.v1.AggregatedProperties", [this._converterContext.getEntityContainer(), this._converterContext.getEntityType()]);
162
160
  }
163
161
  /**
164
162
  * Returns the list of custom aggregate definitions for the entity type.
@@ -194,4 +192,4 @@ sap.ui.define([], function () {
194
192
  _exports.AggregationHelper = AggregationHelper;
195
193
  return _exports;
196
194
  }, false);
197
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFnZ3JlZ2F0aW9uLnRzIl0sIm5hbWVzIjpbIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZW50aXR5VHlwZSIsImNvbnZlcnRlckNvbnRleHQiLCJfZW50aXR5VHlwZSIsIl9jb252ZXJ0ZXJDb250ZXh0IiwiX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQiLCJfZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0IiwiX3R5cGUiLCJvVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucyIsImFubm90YXRpb25zIiwiQWdncmVnYXRpb24iLCJfYkFwcGx5U3VwcG9ydGVkIiwiQXBwbHlTdXBwb3J0ZWQiLCJfYUdyb3VwYWJsZVByb3BlcnRpZXMiLCJHcm91cGFibGVQcm9wZXJ0aWVzIiwiX2FBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzIiwiQWdncmVnYXRhYmxlUHJvcGVydGllcyIsIm9Db250YWluZXJBZ2dyZWdhdGlvbkFubm90YXRpb24iLCJnZXRFbnRpdHlDb250YWluZXIiLCJiSXNQYXJhbWV0ZXJpemVkIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldEVudGl0eVNldCIsIkNvbW1vbiIsIlJlc3VsdENvbnRleHQiLCJvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlIiwib0RhdGFNb2RlbE9iamVjdFBhdGgiLCJvTmF2aWdhdGlvblByb3BlcnR5T2JqZWN0IiwidGFyZ2V0T2JqZWN0Iiwib0VudGl0eVR5cGVPYmplY3QiLCJ0YXJnZXRFbnRpdHlUeXBlIiwib0VudGl0eVNldE9iamVjdCIsImdldEVudGl0eVNldCIsImdldEVudGl0eVR5cGUiLCJpc0FuYWx5dGljc1N1cHBvcnRlZCIsImlzUHJvcGVydHlHcm91cGFibGUiLCJwcm9wZXJ0eSIsInVuZGVmaW5lZCIsImxlbmd0aCIsImZpbmRJbmRleCIsInBhdGgiLCIkdGFyZ2V0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSIsImFDdXN0b21BZ2dyZWdhdGVBbm5vdGF0aW9ucyIsImdldEFubm90YXRpb25zQnlUZXJtIiwic29tZSIsImFubm90YXRpb24iLCJuYW1lIiwicXVhbGlmaWVyIiwiZ2V0R3JvdXBhYmxlUHJvcGVydGllcyIsImdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMiLCJnZXRUcmFuc0FnZ3JlZ2F0aW9ucyIsImFUcmFuc0FnZ3JlZ2F0aW9uQW5ub3RhdGlvbnMiLCJnZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucyIsImdldEFsbG93ZWRUcmFuc2Zvcm1hdGlvbnMiLCJUcmFuc2Zvcm1hdGlvbnMiLCJBcHBseVN1cHBvcnRlZERlZmF1bHRzIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7QUFVQTtBQUNBO0FBQ0E7TUFDYUEsaUI7QUFjWjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQywrQkFBWUMsVUFBWixFQUFvQ0MsZ0JBQXBDLEVBQXdFO0FBQUE7O0FBQ3ZFLFdBQUtDLFdBQUwsR0FBbUJGLFVBQW5CO0FBQ0EsV0FBS0csaUJBQUwsR0FBeUJGLGdCQUF6QjtBQUVBLFdBQUtHLDZCQUFMLEdBQXFDLEtBQUtDLHFDQUFMLEVBQXJDOztBQUNBLFVBQUksK0JBQUtELDZCQUFMLGdGQUFvQ0UsS0FBcEMsTUFBOEMsb0JBQWxELEVBQXdFO0FBQUE7O0FBQ3ZFLGFBQUtDLDZCQUFMLDZCQUFxQyxLQUFLSCw2QkFBMUMscUZBQXFDLHVCQUFvQ0ksV0FBekUsMkRBQXFDLHVCQUNsQ0MsV0FESDtBQUVBLE9BSEQsTUFHTyxJQUFJLGdDQUFLTCw2QkFBTCxrRkFBb0NFLEtBQXBDLE1BQThDLFlBQWxELEVBQWdFO0FBQUE7O0FBQ3RFLGFBQUtDLDZCQUFMLDZCQUFxQyxLQUFLSCw2QkFBMUMscUZBQXFDLHVCQUFvQ0ksV0FBekUsMkRBQXFDLHVCQUNsQ0MsV0FESDtBQUVBLE9BSE0sTUFHQSxJQUFJLGdDQUFLTCw2QkFBTCxrRkFBb0NFLEtBQXBDLE1BQThDLFdBQWxELEVBQStEO0FBQUE7O0FBQ3JFLGFBQUtD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Q0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNRQyw2QixHQUFQLHlDQUF1QztBQUN0QztBQUNBLFVBQU1WLDJCQUE4RCxHQUFHLEtBQUt2QyxpQkFBTCxDQUF1QndDLG9CQUF2QixDQUN0RSxhQURzRSw4Q0FHdEUsQ0FBQyxLQUFLdkMsNkJBQU4sQ0FIc0UsQ0FBdkU7O0FBTUEsYUFBT3NDLDJCQUFQO0FBQ0E7QUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNRVyx5QixHQUFQLHFDQUF5RDtBQUFBOztBQUN4RCxhQUNDLDJCQUFDLEtBQUs5Qyw2QkFBTixxRkFBQyx1QkFBb0NJLGNBQXJDLDJEQUFDLHVCQUFvRDJDLGVBQXJELCtCQUNDLEtBQUt0QywrQkFETixvRkFDQyxzQkFBc0N1QyxzQkFEdkMsMkRBQ0MsdUJBQThERCxlQUQvRCxDQUREO0FBSUEsSyIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U2V0LCBFbnRpdHlUeXBlLCBOYXZpZ2F0aW9uUHJvcGVydHksIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IEFubm90YXRpb25UZXJtIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBQcm9wZXJ0eVBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvZGlzdC9FZG1cIjtcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uQW5ub3RhdGlvblRlcm1zLCBDdXN0b21BZ2dyZWdhdGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvZGlzdC9nZW5lcmF0ZWQvQWdncmVnYXRpb25cIjtcbmltcG9ydCB7XG5cdENvbGxlY3Rpb25Bbm5vdGF0aW9uc19BZ2dyZWdhdGlvbixcblx0RW50aXR5Q29udGFpbmVyQW5ub3RhdGlvbnNfQWdncmVnYXRpb24sXG5cdEVudGl0eVNldEFubm90YXRpb25zX0FnZ3JlZ2F0aW9uLFxuXHRFbnRpdHlUeXBlQW5ub3RhdGlvbnNfQWdncmVnYXRpb25cbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL2Rpc3QvZ2VuZXJhdGVkL0FnZ3JlZ2F0aW9uX0VkbVwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uL0NvbnZlcnRlckNvbnRleHRcIjtcblxuLyoqXG4gKiBoZWxwZXIgY2xhc3MgZm9yIEFnZ3JlZ2F0aW9uIGFubm90YXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgQWdncmVnYXRpb25IZWxwZXIge1xuXHRfZW50aXR5VHlwZTogRW50aXR5VHlwZTtcblx0X2NvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ7XG5cdF9iQXBwbHlTdXBwb3J0ZWQ6IGJvb2xlYW47XG5cdF9hR3JvdXBhYmxlUHJvcGVydGllcz86IFByb3BlcnR5UGF0aFtdO1xuXHRfYUFnZ3JlZ2F0YWJsZVByb3BlcnRpZXM/O1xuXHRfb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldDogRW50aXR5VHlwZSB8IEVudGl0eVNldCB8IE5hdmlnYXRpb25Qcm9wZXJ0eTtcblx0b1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnM/OlxuXHRcdHwgQ29sbGVjdGlvbkFubm90YXRpb25zX0FnZ3JlZ2F0aW9uXG5cdFx0fCBFbnRpdHlUeXBlQW5ub3RhdGlvbnNfQWdncmVnYXRpb25cblx0XHR8IEVudGl0eVNldEFubm90YXRpb25zX0FnZ3JlZ2F0aW9uO1xuXG5cdG9Db250YWluZXJBZ2dyZWdhdGlvbkFubm90YXRpb24/OiBFbnRpdHlDb250YWluZXJBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbjtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIGhlbHBlciBmb3IgYSBzcGVjaWZpYyBlbnRpdHkgdHlwZSBhbmQgYSBjb252ZXJ0ZXIgY29udGV4dC5cblx0ICpcblx0ICogQHBhcmFtIGVudGl0eVR5cGUgVGhlIEVudGl0eVR5cGVcblx0ICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgVGhlIENvbnZlcnRlckNvbnRleHRcblx0ICovXG5cdGNvbnN0cnVjdG9yKGVudGl0eVR5cGU6IEVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpIHtcblx0XHR0aGlzLl9lbnRpdHlUeXBlID0gZW50aXR5VHlwZTtcblx0XHR0aGlzLl9jb252ZXJ0ZXJDb250ZXh0ID0gY29udmVydGVyQ29udGV4dDtcblxuXHRcdHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQgPSB0aGlzLl9kZXRlcm1pbmVBZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQoKTtcblx0XHRpZiAodGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIpIHtcblx0XHRcdHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnMgPSB0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5hbm5vdGF0aW9uc1xuXHRcdFx0XHQ/LkFnZ3JlZ2F0aW9uIGFzIENvbGxlY3Rpb25Bbm5vdGF0aW9uc19BZ2dyZWdhdGlvbjtcblx0XHR9IGVsc2UgaWYgKHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ/Ll90eXBlID09PSBcIkVudGl0eVR5cGVcIikge1xuXHRcdFx0dGhpcy5vVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucyA9IHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ/LmFubm90YXRpb25zXG5cdFx0XHRcdD8uQWdncmVnYXRpb24gYXMgRW50aXR5VHlwZUFubm90YXRpb25zX0FnZ3JlZ2F0aW9uO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uX3R5cGUgPT09IFwiRW50aXR5U2V0XCIpIHtcblx0XHRcdHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnMgPSB0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5hbm5vdGF0aW9uc1xuXHRcdFx0XHQ/LkFnZ3JlZ2F0aW9uIGFzIEVudGl0eVNldEFubm90YXRpb25zX0FnZ3JlZ2F0aW9uO1xuXHRcdH1cblx0XHR0aGlzLl9iQXBwbHlTdXBwb3J0ZWQgPSB0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zPy5BcHBseVN1cHBvcnRlZCA/IHRydWUgOiBmYWxzZTtcblxuXHRcdGlmICh0aGlzLl9iQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdHRoaXMuX2FHcm91cGFibGVQcm9wZXJ0aWVzID0gdGhpcy5vVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucz8uQXBwbHlTdXBwb3J0ZWQ/Lkdyb3VwYWJsZVByb3BlcnRpZXMgYXMgUHJvcGVydHlQYXRoW107XG5cdFx0XHR0aGlzLl9hQWdncmVnYXRhYmxlUHJvcGVydGllcyA9IHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnM/LkFwcGx5U3VwcG9ydGVkPy5BZ2dyZWdhdGFibGVQcm9wZXJ0aWVzO1xuXG5cdFx0XHR0aGlzLm9Db250YWluZXJBZ2dyZWdhdGlvbkFubm90YXRpb24gPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eUNvbnRhaW5lcigpLmFubm90YXRpb25zXG5cdFx0XHRcdC5BZ2dyZWdhdGlvbiBhcyBFbnRpdHlDb250YWluZXJBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbjtcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIERldGVybWluZXMgdGhlIG1vc3QgYXBwcm9wcmlhdGUgdGFyZ2V0IGZvciB0aGUgYWdncmVnYXRpb24gYW5ub3RhdGlvbnMuXG5cdCAqXG5cdCAqIEByZXR1cm5zICBFbnRpdHlUeXBlLCBFbnRpdHlTZXQgb3IgTmF2aWdhdGlvblByb3BlcnR5IHdoZXJlIGFnZ3JlZ2F0aW9uIGFubm90YXRpb25zIHNob3VsZCBiZSByZWFkIGZyb20uXG5cdCAqL1xuXHRwcml2YXRlIF9kZXRlcm1pbmVBZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQoKTogRW50aXR5VHlwZSB8IEVudGl0eVNldCB8IE5hdmlnYXRpb25Qcm9wZXJ0eSB7XG5cdFx0Y29uc3QgYklzUGFyYW1ldGVyaXplZCA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpPy50YXJnZXRFbnRpdHlTZXQ/LmVudGl0eVR5cGU/LmFubm90YXRpb25zPy5Db21tb25cblx0XHRcdD8uUmVzdWx0Q29udGV4dFxuXHRcdFx0PyB0cnVlXG5cdFx0XHQ6IGZhbHNlO1xuXHRcdGxldCBvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlO1xuXG5cdFx0Ly8gZmluZCBBcHBseVN1cHBvcnRlZFxuXHRcdGlmIChiSXNQYXJhbWV0ZXJpemVkKSB7XG5cdFx0XHQvLyBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyaXplZCB2aWV3IHRoZW4gYXBwbHlzdXBwb3J0ZWQgY2FuIGJlIGZvdW5kIGF0IGVpdGhlciB0aGUgbmF2UHJvcCBwb2ludGluZyB0byB0aGUgcmVzdWx0IHNldCBvciBlbnRpdHlUeXBlLlxuXHRcdFx0Ly8gSWYgYXBwbHlTdXBwb3J0ZWQgaXMgcHJlc2VudCBhdCBib3RoIHRoZSBuYXZQcm9wIGFuZCB0aGUgZW50aXR5VHlwZSB0aGVuIG5hdlByb3AgaXMgbW9yZSBzcGVjaWZpYyBzbyB0YWtlIGFubm90YXRpb25zIGZyb20gdGhlcmVcblx0XHRcdC8vIHRhcmdldE9iamVjdCBpbiB0aGUgY29udmVydGVyIGNvbnRleHQgZm9yIGEgcGFyYW1ldGVyaXplZCB2aWV3IGlzIHRoZSBuYXZpZ2F0aW9uIHByb3BlcnR5IHBvaW50aW5nIHRvIHRoIHJlc3VsdCBzZXRcblx0XHRcdGNvbnN0IG9EYXRhTW9kZWxPYmplY3RQYXRoID0gdGhpcy5fY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCk7XG5cdFx0XHRjb25zdCBvTmF2aWdhdGlvblByb3BlcnR5T2JqZWN0ID0gb0RhdGFNb2RlbE9iamVjdFBhdGg/LnRhcmdldE9iamVjdDtcblx0XHRcdGNvbnN0IG9FbnRpdHlUeXBlT2JqZWN0ID0gb0RhdGFNb2RlbE9iamVjdFBhdGg/LnRhcmdldEVudGl0eVR5cGU7XG5cdFx0XHRpZiAob05hdmlnYXRpb25Qcm9wZXJ0eU9iamVjdD8uYW5ub3RhdGlvbnM/LkFnZ3JlZ2F0aW9uPy5BcHBseVN1cHBvcnRlZCkge1xuXHRcdFx0XHRvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlID0gb05hdmlnYXRpb25Qcm9wZXJ0eU9iamVjdDtcblx0XHRcdH0gZWxzZSBpZiAob0VudGl0eVR5cGVPYmplY3Q/LmFubm90YXRpb25zPy5BZ2dyZWdhdGlvbj8uQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IG9FbnRpdHlUeXBlT2JqZWN0O1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBGb3IgdGhlIHRpbWUgYmVpbmcsIHdlIGlnbm9yZSBhbm5vdGF0aW9ucyBhdCB0aGUgY29udGFpbmVyIGxldmVsLCB1bnRpbCB0aGUgdm9jYWJ1bGFyeSBpcyBzdGFiaWxpemVkXG5cdFx0XHRjb25zdCBvRW50aXR5U2V0T2JqZWN0ID0gdGhpcy5fY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKTtcblx0XHRcdGlmIChvRW50aXR5U2V0T2JqZWN0Py5hbm5vdGF0aW9ucz8uQWdncmVnYXRpb24/LkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRcdG9BZ2dyZWdhdGlvbkFubm90YXRpb25Tb3VyY2UgPSBvRW50aXR5U2V0T2JqZWN0O1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIGVudGl0eSBzdXBwb3J0cyBhbmFseXRpY2FsIHF1ZXJpZXMuXG5cdCAqXG5cdCAqIEByZXR1cm5zIGB0cnVlYCBpZiBhbmFseXRpY2FsIHF1ZXJpZXMgYXJlIHN1cHBvcnRlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQgKi9cblx0cHVibGljIGlzQW5hbHl0aWNzU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9iQXBwbHlTdXBwb3J0ZWQ7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIGEgcHJvcGVydHkgaXMgZ3JvdXBhYmxlLlxuXHQgKlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG5cdCAqIEByZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZSBlbnRpdHkgZG9lc24ndCBzdXBwb3J0IGFuYWx5dGljYWwgcXVlcmllcywgdHJ1ZSBvciBmYWxzZSBvdGhlcndpc2Vcblx0ICovXG5cdHB1YmxpYyBpc1Byb3BlcnR5R3JvdXBhYmxlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRcdGlmICghdGhpcy5fYkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSBpZiAoIXRoaXMuX2FHcm91cGFibGVQcm9wZXJ0aWVzIHx8IHRoaXMuX2FHcm91cGFibGVQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0Ly8gTm8gZ3JvdXBhYmxlUHJvcGVydGllcyAtLT4gYWxsIHByb3BlcnRpZXMgYXJlIGdyb3VwYWJsZVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB0aGlzLl9hR3JvdXBhYmxlUHJvcGVydGllcy5maW5kSW5kZXgoKHBhdGgpID0+IHBhdGguJHRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUgPT09IHByb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZSkgPj0gMDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIGEgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlLlxuXHQgKlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG5cdCAqIEByZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZSBlbnRpdHkgZG9lc24ndCBzdXBwb3J0IGFuYWx5dGljYWwgcXVlcmllcywgdHJ1ZSBvciBmYWxzZSBvdGhlcndpc2Vcblx0ICovXG5cdHB1YmxpYyBpc1Byb3BlcnR5QWdncmVnYXRhYmxlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRcdGlmICghdGhpcy5fYkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBHZXQgdGhlIGN1c3RvbSBhZ2dyZWdhdGVzXG5cdFx0XHRjb25zdCBhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnM6IEFubm90YXRpb25UZXJtPEN1c3RvbUFnZ3JlZ2F0ZT5bXSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXG5cdFx0XHRcdFwiQWdncmVnYXRpb25cIixcblx0XHRcdFx0QWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMuQ3VzdG9tQWdncmVnYXRlLFxuXHRcdFx0XHRbdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldF1cblx0XHRcdCk7XG5cblx0XHRcdC8vIENoZWNrIGlmIGEgY3VzdG9tIGFnZ3JlZ2F0ZSBoYXMgYSBxdWFsaWZpZXIgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcHJvcGVydHkgbmFtZVxuXHRcdFx0cmV0dXJuIGFDdXN0b21BZ2dyZWdhdGVBbm5vdGF0aW9ucy5zb21lKChhbm5vdGF0aW9uKSA9PiB7XG5cdFx0XHRcdHJldHVybiBwcm9wZXJ0eS5uYW1lID09PSBhbm5vdGF0aW9uLnF1YWxpZmllcjtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXRHcm91cGFibGVQcm9wZXJ0aWVzKCkge1xuXHRcdHJldHVybiB0aGlzLl9hR3JvdXBhYmxlUHJvcGVydGllcztcblx0fVxuXG5cdHB1YmxpYyBnZXRBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzKCkge1xuXHRcdHJldHVybiB0aGlzLl9hQWdncmVnYXRhYmxlUHJvcGVydGllcztcblx0fVxuXG5cdHB1YmxpYyBnZXRUcmFuc0FnZ3JlZ2F0aW9ucygpIHtcblx0XHRjb25zdCBhVHJhbnNBZ2dyZWdhdGlvbkFubm90YXRpb25zID0gdGhpcy5fY29udmVydGVyQ29udGV4dC5nZXRBbm5vdGF0aW9uc0J5VGVybShcblx0XHRcdFwiQW5hbHl0aWNzXCIsXG5cdFx0XHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkFuYWx5dGljcy52MS5BZ2dyZWdhdGVkUHJvcGVydGllc1wiLFxuXHRcdFx0W3RoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5Q29udGFpbmVyKCksIHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpXVxuXHRcdCk7XG5cdFx0cmV0dXJuIGFUcmFuc0FnZ3JlZ2F0aW9uQW5ub3RhdGlvbnM7XG5cdH1cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGxpc3Qgb2YgY3VzdG9tIGFnZ3JlZ2F0ZSBkZWZpbml0aW9ucyBmb3IgdGhlIGVudGl0eSB0eXBlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBBIG1hcCAocHJvcGVydHlOYW1lIC0tPiBhcnJheSBvZiBjb250ZXh0LWRlZmluaW5nIHByb3BlcnR5IG5hbWVzKSBmb3IgZWFjaCBjdXN0b20gYWdncmVnYXRlIGNvcnJlc3BvbmRpbmcgdG8gYSBwcm9wZXJ0eS4gVGhlIGFycmF5IG9mXG5cdCAqIGNvbnRleHQtZGVmaW5pbmcgcHJvcGVydHkgbmFtZXMgaXMgZW1wdHkgaWYgdGhlIGN1c3RvbSBhZ2dyZWdhdGUgZG9lc24ndCBoYXZlIGFueSBjb250ZXh0LWRlZmluaW5nIHByb3BlcnR5LlxuXHQgKi9cblx0cHVibGljIGdldEN1c3RvbUFnZ3JlZ2F0ZURlZmluaXRpb25zKCkge1xuXHRcdC8vIEdldCB0aGUgY3VzdG9tIGFnZ3JlZ2F0ZXNcblx0XHRjb25zdCBhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnM6IEFubm90YXRpb25UZXJtPEN1c3RvbUFnZ3JlZ2F0ZT5bXSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXG5cdFx0XHRcIkFnZ3JlZ2F0aW9uXCIsXG5cdFx0XHRBZ2dyZWdhdGlvbkFubm90YXRpb25UZXJtcy5DdXN0b21BZ2dyZWdhdGUsXG5cdFx0XHRbdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldF1cblx0XHQpO1xuXG5cdFx0cmV0dXJuIGFDdXN0b21BZ2dyZWdhdGVBbm5vdGF0aW9ucztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGFsbG93ZWQgdHJhbnNmb3JtYXRpb25zIGluIHRoZSAkYXBwbHkuXG5cdCAqIEZpcnN0IGxvb2sgYXQgdGhlIGN1cnJlbnQgRW50aXR5U2V0LCB0aGVuIGxvb2sgYXQgdGhlIGRlZmF1bHQgdmFsdWVzIHByb3ZpZGVkIGF0IHRoZSBjb250YWluZXIgbGV2ZWwuXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIHRyYW5zZm9ybWF0aW9ucywgb3IgdW5kZWZpbmVkIGlmIG5vIGxpc3QgaXMgZm91bmRcblx0ICovXG5cdHB1YmxpYyBnZXRBbGxvd2VkVHJhbnNmb3JtYXRpb25zKCk6IFN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0KHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnM/LkFwcGx5U3VwcG9ydGVkPy5UcmFuc2Zvcm1hdGlvbnMgYXMgU3RyaW5nW10pIHx8XG5cdFx0XHQodGhpcy5vQ29udGFpbmVyQWdncmVnYXRpb25Bbm5vdGF0aW9uPy5BcHBseVN1cHBvcnRlZERlZmF1bHRzPy5UcmFuc2Zvcm1hdGlvbnMgYXMgU3RyaW5nW10pXG5cdFx0KTtcblx0fVxufVxuIl19
195
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFnZ3JlZ2F0aW9uLnRzIl0sIm5hbWVzIjpbIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZW50aXR5VHlwZSIsImNvbnZlcnRlckNvbnRleHQiLCJfZW50aXR5VHlwZSIsIl9jb252ZXJ0ZXJDb250ZXh0IiwiX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQiLCJfZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0IiwiX3R5cGUiLCJvVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucyIsImFubm90YXRpb25zIiwiQWdncmVnYXRpb24iLCJfYkFwcGx5U3VwcG9ydGVkIiwiQXBwbHlTdXBwb3J0ZWQiLCJfYUdyb3VwYWJsZVByb3BlcnRpZXMiLCJHcm91cGFibGVQcm9wZXJ0aWVzIiwiX2FBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzIiwiQWdncmVnYXRhYmxlUHJvcGVydGllcyIsIm9Db250YWluZXJBZ2dyZWdhdGlvbkFubm90YXRpb24iLCJnZXRFbnRpdHlDb250YWluZXIiLCJiSXNQYXJhbWV0ZXJpemVkIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldEVudGl0eVNldCIsIkNvbW1vbiIsIlJlc3VsdENvbnRleHQiLCJvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlIiwib0RhdGFNb2RlbE9iamVjdFBhdGgiLCJvTmF2aWdhdGlvblByb3BlcnR5T2JqZWN0IiwidGFyZ2V0T2JqZWN0Iiwib0VudGl0eVR5cGVPYmplY3QiLCJ0YXJnZXRFbnRpdHlUeXBlIiwib0VudGl0eVNldE9iamVjdCIsImdldEVudGl0eVNldCIsImdldEVudGl0eVR5cGUiLCJpc0FuYWx5dGljc1N1cHBvcnRlZCIsImlzUHJvcGVydHlHcm91cGFibGUiLCJwcm9wZXJ0eSIsInVuZGVmaW5lZCIsImxlbmd0aCIsImZpbmRJbmRleCIsInBhdGgiLCIkdGFyZ2V0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSIsImFDdXN0b21BZ2dyZWdhdGVBbm5vdGF0aW9ucyIsImdldEFubm90YXRpb25zQnlUZXJtIiwic29tZSIsImFubm90YXRpb24iLCJuYW1lIiwicXVhbGlmaWVyIiwiZ2V0R3JvdXBhYmxlUHJvcGVydGllcyIsImdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMiLCJnZXRUcmFuc0FnZ3JlZ2F0aW9ucyIsImdldEN1c3RvbUFnZ3JlZ2F0ZURlZmluaXRpb25zIiwiZ2V0QWxsb3dlZFRyYW5zZm9ybWF0aW9ucyIsIlRyYW5zZm9ybWF0aW9ucyIsIkFwcGx5U3VwcG9ydGVkRGVmYXVsdHMiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztBQVNBO0FBQ0E7QUFDQTtNQUNhQSxpQjtBQWNaO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDLCtCQUFZQyxVQUFaLEVBQW9DQyxnQkFBcEMsRUFBd0U7QUFBQTs7QUFDdkUsV0FBS0MsV0FBTCxHQUFtQkYsVUFBbkI7QUFDQSxXQUFLRyxpQkFBTCxHQUF5QkYsZ0JBQXpCO0FBRUEsV0FBS0csNkJBQUwsR0FBcUMsS0FBS0MscUNBQUwsRUFBckM7O0FBQ0EsVUFBSSwrQkFBS0QsNkJBQUwsZ0ZBQW9DRSxLQUFwQyxNQUE4QyxvQkFBbEQsRUFBd0U7QUFBQTs7QUFDdkUsYUFBS0MsNkJBQUwsNkJBQXFDLEtBQUtILDZCQUExQyxxRkFBcUMsdUJBQW9DSSxXQUF6RSwyREFBcUMsdUJBQ2xDQyxXQURIO0FBRUEsT0FIRCxNQUdPLElBQUksZ0NBQUtMLDZCQUFMLGtGQUFvQ0UsS0FBcEMsTUFBOEMsWUFBbEQsRUFBZ0U7QUFBQTs7QUFDdEUsYUFBS0MsNkJBQUwsNkJBQXFDLEtBQUtILDZCQUExQyxxRkFBcUMsdUJBQW9DSSxXQUF6RSwyREFBcUMsdUJBQ2xDQyxXQURIO0FBRUEsT0FITSxNQUdBLElBQUksZ0NBQUtMLDZCQUFMLGtGQUFvQ0UsS0FBcEMsTUFBOEMsV0FBbEQsRUFBK0Q7QUFBQTs7QUFDckUsYUFBS0MsNkJBQUwsNkJBQXFDLEtBQUtILDZCQUExQyxxRkFB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QThELEdBQUcsS0FBS3ZDLGlCQUFMLENBQXVCd0Msb0JBQXZCLENBQ3RFLGFBRHNFLDhDQUd0RSxDQUFDLEtBQUt2Qyw2QkFBTixDQUhzRSxDQUF2RTs7QUFNQSxhQUFPc0MsMkJBQVA7QUFDQTtBQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ1FVLHlCLEdBQVAscUNBQXlEO0FBQUE7O0FBQ3hELGFBQ0MsMkJBQUMsS0FBSzdDLDZCQUFOLHFGQUFDLHVCQUFvQ0ksY0FBckMsMkRBQUMsdUJBQW9EMEMsZUFBckQsK0JBQ0MsS0FBS3JDLCtCQUROLG9GQUNDLHNCQUFzQ3NDLHNCQUR2QywyREFDQyx1QkFBOERELGVBRC9ELENBREQ7QUFJQSxLIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFubm90YXRpb25UZXJtLCBFbnRpdHlTZXQsIEVudGl0eVR5cGUsIE5hdmlnYXRpb25Qcm9wZXJ0eSwgUHJvcGVydHksIFByb3BlcnR5UGF0aCB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBDdXN0b21BZ2dyZWdhdGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgeyBBZ2dyZWdhdGlvbkFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQWdncmVnYXRpb25cIjtcbmltcG9ydCB0eXBlIHtcblx0Q29sbGVjdGlvbkFubm90YXRpb25zX0FnZ3JlZ2F0aW9uLFxuXHRFbnRpdHlDb250YWluZXJBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbixcblx0RW50aXR5U2V0QW5ub3RhdGlvbnNfQWdncmVnYXRpb24sXG5cdEVudGl0eVR5cGVBbm5vdGF0aW9uc19BZ2dyZWdhdGlvblxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0FnZ3JlZ2F0aW9uX0VkbVwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vQ29udmVydGVyQ29udGV4dFwiO1xuXG4vKipcbiAqIGhlbHBlciBjbGFzcyBmb3IgQWdncmVnYXRpb24gYW5ub3RhdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBZ2dyZWdhdGlvbkhlbHBlciB7XG5cdF9lbnRpdHlUeXBlOiBFbnRpdHlUeXBlO1xuXHRfY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dDtcblx0X2JBcHBseVN1cHBvcnRlZDogYm9vbGVhbjtcblx0X2FHcm91cGFibGVQcm9wZXJ0aWVzPzogUHJvcGVydHlQYXRoW107XG5cdF9hQWdncmVnYXRhYmxlUHJvcGVydGllcz87XG5cdF9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0OiBFbnRpdHlUeXBlIHwgRW50aXR5U2V0IHwgTmF2aWdhdGlvblByb3BlcnR5O1xuXHRvVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucz86XG5cdFx0fCBDb2xsZWN0aW9uQW5ub3RhdGlvbnNfQWdncmVnYXRpb25cblx0XHR8IEVudGl0eVR5cGVBbm5vdGF0aW9uc19BZ2dyZWdhdGlvblxuXHRcdHwgRW50aXR5U2V0QW5ub3RhdGlvbnNfQWdncmVnYXRpb247XG5cblx0b0NvbnRhaW5lckFnZ3JlZ2F0aW9uQW5ub3RhdGlvbj86IEVudGl0eUNvbnRhaW5lckFubm90YXRpb25zX0FnZ3JlZ2F0aW9uO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgaGVscGVyIGZvciBhIHNwZWNpZmljIGVudGl0eSB0eXBlIGFuZCBhIGNvbnZlcnRlciBjb250ZXh0LlxuXHQgKlxuXHQgKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgRW50aXR5VHlwZVxuXHQgKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBUaGUgQ29udmVydGVyQ29udGV4dFxuXHQgKi9cblx0Y29uc3RydWN0b3IoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCkge1xuXHRcdHRoaXMuX2VudGl0eVR5cGUgPSBlbnRpdHlUeXBlO1xuXHRcdHRoaXMuX2NvbnZlcnRlckNvbnRleHQgPSBjb252ZXJ0ZXJDb250ZXh0O1xuXG5cdFx0dGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldCA9IHRoaXMuX2RldGVybWluZUFnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldCgpO1xuXHRcdGlmICh0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIikge1xuXHRcdFx0dGhpcy5vVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucyA9IHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ/LmFubm90YXRpb25zXG5cdFx0XHRcdD8uQWdncmVnYXRpb24gYXMgQ29sbGVjdGlvbkFubm90YXRpb25zX0FnZ3JlZ2F0aW9uO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uX3R5cGUgPT09IFwiRW50aXR5VHlwZVwiKSB7XG5cdFx0XHR0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zID0gdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uYW5ub3RhdGlvbnNcblx0XHRcdFx0Py5BZ2dyZWdhdGlvbiBhcyBFbnRpdHlUeXBlQW5ub3RhdGlvbnNfQWdncmVnYXRpb247XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5fdHlwZSA9PT0gXCJFbnRpdHlTZXRcIikge1xuXHRcdFx0dGhpcy5vVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucyA9IHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ/LmFubm90YXRpb25zXG5cdFx0XHRcdD8uQWdncmVnYXRpb24gYXMgRW50aXR5U2V0QW5ub3RhdGlvbnNfQWdncmVnYXRpb247XG5cdFx0fVxuXHRcdHRoaXMuX2JBcHBseVN1cHBvcnRlZCA9IHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnM/LkFwcGx5U3VwcG9ydGVkID8gdHJ1ZSA6IGZhbHNlO1xuXG5cdFx0aWYgKHRoaXMuX2JBcHBseVN1cHBvcnRlZCkge1xuXHRcdFx0dGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMgPSB0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zPy5BcHBseVN1cHBvcnRlZD8uR3JvdXBhYmxlUHJvcGVydGllcyBhcyBQcm9wZXJ0eVBhdGhbXTtcblx0XHRcdHRoaXMuX2FBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzID0gdGhpcy5vVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucz8uQXBwbHlTdXBwb3J0ZWQ/LkFnZ3JlZ2F0YWJsZVByb3BlcnRpZXM7XG5cblx0XHRcdHRoaXMub0NvbnRhaW5lckFnZ3JlZ2F0aW9uQW5ub3RhdGlvbiA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5Q29udGFpbmVyKCkuYW5ub3RhdGlvbnNcblx0XHRcdFx0LkFnZ3JlZ2F0aW9uIGFzIEVudGl0eUNvbnRhaW5lckFubm90YXRpb25zX0FnZ3JlZ2F0aW9uO1xuXHRcdH1cblx0fVxuXHQvKipcblx0ICogRGV0ZXJtaW5lcyB0aGUgbW9zdCBhcHByb3ByaWF0ZSB0YXJnZXQgZm9yIHRoZSBhZ2dyZWdhdGlvbiBhbm5vdGF0aW9ucy5cblx0ICpcblx0ICogQHJldHVybnMgIEVudGl0eVR5cGUsIEVudGl0eVNldCBvciBOYXZpZ2F0aW9uUHJvcGVydHkgd2hlcmUgYWdncmVnYXRpb24gYW5ub3RhdGlvbnMgc2hvdWxkIGJlIHJlYWQgZnJvbS5cblx0ICovXG5cdHByaXZhdGUgX2RldGVybWluZUFnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldCgpOiBFbnRpdHlUeXBlIHwgRW50aXR5U2V0IHwgTmF2aWdhdGlvblByb3BlcnR5IHtcblx0XHRjb25zdCBiSXNQYXJhbWV0ZXJpemVkID0gdGhpcy5fY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCk/LnRhcmdldEVudGl0eVNldD8uZW50aXR5VHlwZT8uYW5ub3RhdGlvbnM/LkNvbW1vblxuXHRcdFx0Py5SZXN1bHRDb250ZXh0XG5cdFx0XHQ/IHRydWVcblx0XHRcdDogZmFsc2U7XG5cdFx0bGV0IG9BZ2dyZWdhdGlvbkFubm90YXRpb25Tb3VyY2U7XG5cblx0XHQvLyBmaW5kIEFwcGx5U3VwcG9ydGVkXG5cdFx0aWYgKGJJc1BhcmFtZXRlcml6ZWQpIHtcblx0XHRcdC8vIGlmIHRoaXMgaXMgYSBwYXJhbWV0ZXJpemVkIHZpZXcgdGhlbiBhcHBseXN1cHBvcnRlZCBjYW4gYmUgZm91bmQgYXQgZWl0aGVyIHRoZSBuYXZQcm9wIHBvaW50aW5nIHRvIHRoZSByZXN1bHQgc2V0IG9yIGVudGl0eVR5cGUuXG5cdFx0XHQvLyBJZiBhcHBseVN1cHBvcnRlZCBpcyBwcmVzZW50IGF0IGJvdGggdGhlIG5hdlByb3AgYW5kIHRoZSBlbnRpdHlUeXBlIHRoZW4gbmF2UHJvcCBpcyBtb3JlIHNwZWNpZmljIHNvIHRha2UgYW5ub3RhdGlvbnMgZnJvbSB0aGVyZVxuXHRcdFx0Ly8gdGFyZ2V0T2JqZWN0IGluIHRoZSBjb252ZXJ0ZXIgY29udGV4dCBmb3IgYSBwYXJhbWV0ZXJpemVkIHZpZXcgaXMgdGhlIG5hdmlnYXRpb24gcHJvcGVydHkgcG9pbnRpbmcgdG8gdGggcmVzdWx0IHNldFxuXHRcdFx0Y29uc3Qgb0RhdGFNb2RlbE9iamVjdFBhdGggPSB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKTtcblx0XHRcdGNvbnN0IG9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3QgPSBvRGF0YU1vZGVsT2JqZWN0UGF0aD8udGFyZ2V0T2JqZWN0O1xuXHRcdFx0Y29uc3Qgb0VudGl0eVR5cGVPYmplY3QgPSBvRGF0YU1vZGVsT2JqZWN0UGF0aD8udGFyZ2V0RW50aXR5VHlwZTtcblx0XHRcdGlmIChvTmF2aWdhdGlvblByb3BlcnR5T2JqZWN0Py5hbm5vdGF0aW9ucz8uQWdncmVnYXRpb24/LkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRcdG9BZ2dyZWdhdGlvbkFubm90YXRpb25Tb3VyY2UgPSBvTmF2aWdhdGlvblByb3BlcnR5T2JqZWN0O1xuXHRcdFx0fSBlbHNlIGlmIChvRW50aXR5VHlwZU9iamVjdD8uYW5ub3RhdGlvbnM/LkFnZ3JlZ2F0aW9uPy5BcHBseVN1cHBvcnRlZCkge1xuXHRcdFx0XHRvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlID0gb0VudGl0eVR5cGVPYmplY3Q7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIEZvciB0aGUgdGltZSBiZWluZywgd2UgaWdub3JlIGFubm90YXRpb25zIGF0IHRoZSBjb250YWluZXIgbGV2ZWwsIHVudGlsIHRoZSB2b2NhYnVsYXJ5IGlzIHN0YWJpbGl6ZWRcblx0XHRcdGNvbnN0IG9FbnRpdHlTZXRPYmplY3QgPSB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpO1xuXHRcdFx0aWYgKG9FbnRpdHlTZXRPYmplY3Q/LmFubm90YXRpb25zPy5BZ2dyZWdhdGlvbj8uQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IG9FbnRpdHlTZXRPYmplY3Q7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlID0gdGhpcy5fY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgZW50aXR5IHN1cHBvcnRzIGFuYWx5dGljYWwgcXVlcmllcy5cblx0ICpcblx0ICogQHJldHVybnMgYHRydWVgIGlmIGFuYWx5dGljYWwgcXVlcmllcyBhcmUgc3VwcG9ydGVkLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgaXNBbmFseXRpY3NTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX2JBcHBseVN1cHBvcnRlZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgYSBwcm9wZXJ0eSBpcyBncm91cGFibGUuXG5cdCAqXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcblx0ICogQHJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIGVudGl0eSBkb2Vzbid0IHN1cHBvcnQgYW5hbHl0aWNhbCBxdWVyaWVzLCB0cnVlIG9yIGZhbHNlIG90aGVyd2lzZVxuXHQgKi9cblx0cHVibGljIGlzUHJvcGVydHlHcm91cGFibGUocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCF0aGlzLl9iQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fSBlbHNlIGlmICghdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMgfHwgdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHQvLyBObyBncm91cGFibGVQcm9wZXJ0aWVzIC0tPiBhbGwgcHJvcGVydGllcyBhcmUgZ3JvdXBhYmxlXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2FHcm91cGFibGVQcm9wZXJ0aWVzLmZpbmRJbmRleCgocGF0aCkgPT4gcGF0aC4kdGFyZ2V0LmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gcHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lKSA+PSAwO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgYSBwcm9wZXJ0eSBpcyBhZ2dyZWdhdGFibGUuXG5cdCAqXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcblx0ICogQHJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIGVudGl0eSBkb2Vzbid0IHN1cHBvcnQgYW5hbHl0aWNhbCBxdWVyaWVzLCB0cnVlIG9yIGZhbHNlIG90aGVyd2lzZVxuXHQgKi9cblx0cHVibGljIGlzUHJvcGVydHlBZ2dyZWdhdGFibGUocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCF0aGlzLl9iQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIEdldCB0aGUgY3VzdG9tIGFnZ3JlZ2F0ZXNcblx0XHRcdGNvbnN0IGFDdXN0b21BZ2dyZWdhdGVBbm5vdGF0aW9uczogQW5ub3RhdGlvblRlcm08Q3VzdG9tQWdncmVnYXRlPltdID0gdGhpcy5fY29udmVydGVyQ29udGV4dC5nZXRBbm5vdGF0aW9uc0J5VGVybShcblx0XHRcdFx0XCJBZ2dyZWdhdGlvblwiLFxuXHRcdFx0XHRBZ2dyZWdhdGlvbkFubm90YXRpb25UZXJtcy5DdXN0b21BZ2dyZWdhdGUsXG5cdFx0XHRcdFt0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0XVxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gQ2hlY2sgaWYgYSBjdXN0b20gYWdncmVnYXRlIGhhcyBhIHF1YWxpZmllciB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBwcm9wZXJ0eSBuYW1lXG5cdFx0XHRyZXR1cm4gYUN1c3RvbUFnZ3JlZ2F0ZUFubm90YXRpb25zLnNvbWUoKGFubm90YXRpb24pID0+IHtcblx0XHRcdFx0cmV0dXJuIHByb3BlcnR5Lm5hbWUgPT09IGFubm90YXRpb24ucXVhbGlmaWVyO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldEdyb3VwYWJsZVByb3BlcnRpZXMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2FHcm91cGFibGVQcm9wZXJ0aWVzO1xuXHR9XG5cblx0cHVibGljIGdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2FBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzO1xuXHR9XG5cblx0cHVibGljIGdldFRyYW5zQWdncmVnYXRpb25zKCkge1xuXHRcdHJldHVybiB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEFubm90YXRpb25zQnlUZXJtKFwiQW5hbHl0aWNzXCIsIFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQW5hbHl0aWNzLnYxLkFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzXCIsIFtcblx0XHRcdHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5Q29udGFpbmVyKCksXG5cdFx0XHR0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKVxuXHRcdF0pO1xuXHR9XG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGN1c3RvbSBhZ2dyZWdhdGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBlbnRpdHkgdHlwZS5cblx0ICpcblx0ICogQHJldHVybnMgQSBtYXAgKHByb3BlcnR5TmFtZSAtLT4gYXJyYXkgb2YgY29udGV4dC1kZWZpbmluZyBwcm9wZXJ0eSBuYW1lcykgZm9yIGVhY2ggY3VzdG9tIGFnZ3JlZ2F0ZSBjb3JyZXNwb25kaW5nIHRvIGEgcHJvcGVydHkuIFRoZSBhcnJheSBvZlxuXHQgKiBjb250ZXh0LWRlZmluaW5nIHByb3BlcnR5IG5hbWVzIGlzIGVtcHR5IGlmIHRoZSBjdXN0b20gYWdncmVnYXRlIGRvZXNuJ3QgaGF2ZSBhbnkgY29udGV4dC1kZWZpbmluZyBwcm9wZXJ0eS5cblx0ICovXG5cdHB1YmxpYyBnZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucygpIHtcblx0XHQvLyBHZXQgdGhlIGN1c3RvbSBhZ2dyZWdhdGVzXG5cdFx0Y29uc3QgYUN1c3RvbUFnZ3JlZ2F0ZUFubm90YXRpb25zOiBBbm5vdGF0aW9uVGVybTxDdXN0b21BZ2dyZWdhdGU+W10gPSB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEFubm90YXRpb25zQnlUZXJtKFxuXHRcdFx0XCJBZ2dyZWdhdGlvblwiLFxuXHRcdFx0QWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMuQ3VzdG9tQWdncmVnYXRlLFxuXHRcdFx0W3RoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXRdXG5cdFx0KTtcblxuXHRcdHJldHVybiBhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnM7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgbGlzdCBvZiBhbGxvd2VkIHRyYW5zZm9ybWF0aW9ucyBpbiB0aGUgJGFwcGx5LlxuXHQgKiBGaXJzdCBsb29rIGF0IHRoZSBjdXJyZW50IEVudGl0eVNldCwgdGhlbiBsb29rIGF0IHRoZSBkZWZhdWx0IHZhbHVlcyBwcm92aWRlZCBhdCB0aGUgY29udGFpbmVyIGxldmVsLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiB0cmFuc2Zvcm1hdGlvbnMsIG9yIHVuZGVmaW5lZCBpZiBubyBsaXN0IGlzIGZvdW5kXG5cdCAqL1xuXHRwdWJsaWMgZ2V0QWxsb3dlZFRyYW5zZm9ybWF0aW9ucygpOiBTdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIChcblx0XHRcdCh0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zPy5BcHBseVN1cHBvcnRlZD8uVHJhbnNmb3JtYXRpb25zIGFzIFN0cmluZ1tdKSB8fFxuXHRcdFx0KHRoaXMub0NvbnRhaW5lckFnZ3JlZ2F0aW9uQW5ub3RhdGlvbj8uQXBwbHlTdXBwb3J0ZWREZWZhdWx0cz8uVHJhbnNmb3JtYXRpb25zIGFzIFN0cmluZ1tdKVxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
@@ -1,14 +1,13 @@
1
- import { EntitySet, EntityType, NavigationProperty, Property } from "@sap-ux/annotation-converter";
2
- import { AnnotationTerm } from "@sap-ux/vocabularies-types";
3
- import { PropertyPath } from "@sap-ux/vocabularies-types/dist/Edm";
4
- import { AggregationAnnotationTerms, CustomAggregate } from "@sap-ux/vocabularies-types/dist/generated/Aggregation";
5
- import {
1
+ import type { AnnotationTerm, EntitySet, EntityType, NavigationProperty, Property, PropertyPath } from "@sap-ux/vocabularies-types";
2
+ import type { CustomAggregate } from "@sap-ux/vocabularies-types/vocabularies/Aggregation";
3
+ import { AggregationAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Aggregation";
4
+ import type {
6
5
  CollectionAnnotations_Aggregation,
7
6
  EntityContainerAnnotations_Aggregation,
8
7
  EntitySetAnnotations_Aggregation,
9
8
  EntityTypeAnnotations_Aggregation
10
- } from "@sap-ux/vocabularies-types/dist/generated/Aggregation_Edm";
11
- import ConverterContext from "../ConverterContext";
9
+ } from "@sap-ux/vocabularies-types/vocabularies/Aggregation_Edm";
10
+ import type ConverterContext from "../ConverterContext";
12
11
 
13
12
  /**
14
13
  * helper class for Aggregation annotations.
@@ -154,12 +153,10 @@ export class AggregationHelper {
154
153
  }
155
154
 
156
155
  public getTransAggregations() {
157
- const aTransAggregationAnnotations = this._converterContext.getAnnotationsByTerm(
158
- "Analytics",
159
- "com.sap.vocabularies.Analytics.v1.AggregatedProperties",
160
- [this._converterContext.getEntityContainer(), this._converterContext.getEntityType()]
161
- );
162
- return aTransAggregationAnnotations;
156
+ return this._converterContext.getAnnotationsByTerm("Analytics", "com.sap.vocabularies.Analytics.v1.AggregatedProperties", [
157
+ this._converterContext.getEntityContainer(),
158
+ this._converterContext.getEntityType()
159
+ ]);
163
160
  }
164
161
  /**
165
162
  * Returns the list of custom aggregate definitions for the entity type.