@sapui5/sap.fe.core 1.109.0 → 1.110.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 (334) hide show
  1. package/README.md +5 -1
  2. package/package.json +11 -9
  3. package/src/.eslintrc +7 -0
  4. package/src/sap/fe/core/.library +39 -37
  5. package/src/sap/fe/core/.supportrc +3 -3
  6. package/src/sap/fe/core/ActionRuntime.js +68 -23
  7. package/src/sap/fe/core/ActionRuntime.ts +79 -3
  8. package/src/sap/fe/core/AppComponent.js +62 -112
  9. package/src/sap/fe/core/AppComponent.ts +64 -42
  10. package/src/sap/fe/core/AppStateHandler.js +72 -59
  11. package/src/sap/fe/core/AppStateHandler.ts +62 -6
  12. package/src/sap/fe/core/BaseController.js +5 -30
  13. package/src/sap/fe/core/BaseController.ts +6 -9
  14. package/src/sap/fe/core/CommonUtils.js +200 -555
  15. package/src/sap/fe/core/CommonUtils.ts +50 -21
  16. package/src/sap/fe/core/ExtensionAPI.js +39 -77
  17. package/src/sap/fe/core/ExtensionAPI.ts +3 -6
  18. package/src/sap/fe/core/PageController.js +17 -45
  19. package/src/sap/fe/core/PageController.ts +5 -0
  20. package/src/sap/fe/core/TemplateComponent.js +6 -51
  21. package/src/sap/fe/core/TemplateComponent.ts +2 -0
  22. package/src/sap/fe/core/TemplateModel.js +18 -26
  23. package/src/sap/fe/core/TemplateModel.ts +13 -1
  24. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +8 -23
  25. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +4 -3
  26. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +146 -180
  27. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +143 -56
  28. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +1 -1
  29. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +43 -0
  30. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +11 -0
  31. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +429 -565
  32. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +282 -163
  33. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +215 -202
  34. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +93 -51
  35. package/src/sap/fe/core/controllerextensions/BusyLocker.js +11 -26
  36. package/src/sap/fe/core/controllerextensions/EditFlow.js +396 -583
  37. package/src/sap/fe/core/controllerextensions/EditFlow.ts +167 -55
  38. package/src/sap/fe/core/controllerextensions/Feedback.js +70 -0
  39. package/src/sap/fe/core/controllerextensions/Feedback.ts +64 -0
  40. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +12 -23
  41. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -1
  42. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +127 -182
  43. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +62 -30
  44. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +96 -198
  45. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +3 -4
  46. package/src/sap/fe/core/controllerextensions/InternalRouting.js +117 -284
  47. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +3 -4
  48. package/src/sap/fe/core/controllerextensions/KPIManagement.js +111 -214
  49. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +44 -44
  50. package/src/sap/fe/core/controllerextensions/MassEdit.js +24 -44
  51. package/src/sap/fe/core/controllerextensions/MessageHandler.js +23 -49
  52. package/src/sap/fe/core/controllerextensions/PageReady.js +81 -119
  53. package/src/sap/fe/core/controllerextensions/PageReady.ts +35 -14
  54. package/src/sap/fe/core/controllerextensions/Paginator.js +16 -50
  55. package/src/sap/fe/core/controllerextensions/Placeholder.js +7 -33
  56. package/src/sap/fe/core/controllerextensions/Routing.js +24 -32
  57. package/src/sap/fe/core/controllerextensions/Routing.ts +6 -1
  58. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  59. package/src/sap/fe/core/controllerextensions/Share.js +53 -98
  60. package/src/sap/fe/core/controllerextensions/Share.ts +2 -2
  61. package/src/sap/fe/core/controllerextensions/SideEffects.js +103 -174
  62. package/src/sap/fe/core/controllerextensions/SideEffects.ts +30 -16
  63. package/src/sap/fe/core/controllerextensions/ViewState.js +334 -276
  64. package/src/sap/fe/core/controllerextensions/ViewState.ts +199 -73
  65. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +6 -22
  66. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -2
  67. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +66 -88
  68. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +64 -17
  69. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +15 -41
  70. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +8 -6
  71. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +69 -65
  72. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +29 -9
  73. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +162 -618
  74. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +62 -86
  75. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +47 -113
  76. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +7 -2
  77. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +4 -32
  78. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +573 -681
  79. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +485 -373
  80. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +111 -102
  81. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +104 -80
  82. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +91 -266
  83. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +15 -15
  84. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +24 -101
  85. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +91 -217
  86. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +3 -20
  87. package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +1 -0
  88. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +46 -46
  89. package/src/sap/fe/core/controls/Any.js +1 -1
  90. package/src/sap/fe/core/controls/AnyElement.js +1 -1
  91. package/src/sap/fe/core/controls/CommandExecution.js +4 -26
  92. package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -39
  93. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +49 -91
  94. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +12 -0
  95. package/src/sap/fe/core/controls/CustomQuickViewPage.js +1 -34
  96. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +7 -7
  97. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +16 -38
  98. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +2 -4
  99. package/src/sap/fe/core/controls/FieldWrapper.js +6 -49
  100. package/src/sap/fe/core/controls/FileWrapper.js +48 -135
  101. package/src/sap/fe/core/controls/FileWrapper.ts +20 -26
  102. package/src/sap/fe/core/controls/FilterBar.js +19 -54
  103. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -22
  104. package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
  105. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -5
  106. package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +2 -2
  107. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +24 -46
  108. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +14 -41
  109. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +4 -4
  110. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +23 -68
  111. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +18 -18
  112. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +12 -48
  113. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +17 -46
  114. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -3
  115. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +1 -0
  116. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +6 -78
  117. package/src/sap/fe/core/converters/ConverterContext.js +44 -98
  118. package/src/sap/fe/core/converters/ManifestSettings.js +1 -20
  119. package/src/sap/fe/core/converters/ManifestSettings.ts +14 -8
  120. package/src/sap/fe/core/converters/ManifestWrapper.js +97 -158
  121. package/src/sap/fe/core/converters/ManifestWrapper.ts +4 -0
  122. package/src/sap/fe/core/converters/MetaModelConverter.js +28 -167
  123. package/src/sap/fe/core/converters/MetaModelConverter.ts +9 -3
  124. package/src/sap/fe/core/converters/TemplateConverter.js +10 -22
  125. package/src/sap/fe/core/converters/TemplateConverter.ts +10 -7
  126. package/src/sap/fe/core/converters/annotations/DataField.js +93 -134
  127. package/src/sap/fe/core/converters/annotations/DataField.ts +108 -54
  128. package/src/sap/fe/core/converters/common/AnnotationConverter.js +57 -379
  129. package/src/sap/fe/core/converters/controls/Common/Action.js +45 -115
  130. package/src/sap/fe/core/converters/controls/Common/Action.ts +17 -5
  131. package/src/sap/fe/core/converters/controls/Common/Chart.js +19 -71
  132. package/src/sap/fe/core/converters/controls/Common/Chart.ts +20 -13
  133. package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -9
  134. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +42 -96
  135. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +50 -33
  136. package/src/sap/fe/core/converters/controls/Common/Form.js +26 -63
  137. package/src/sap/fe/core/converters/controls/Common/Form.ts +22 -9
  138. package/src/sap/fe/core/converters/controls/Common/KPI.js +13 -63
  139. package/src/sap/fe/core/converters/controls/Common/Table.js +387 -730
  140. package/src/sap/fe/core/converters/controls/Common/Table.ts +270 -176
  141. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +50 -108
  142. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +9 -9
  143. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +69 -210
  144. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +22 -15
  145. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +12 -80
  146. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +2 -0
  147. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -19
  148. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +62 -135
  149. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +25 -13
  150. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +82 -173
  151. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +48 -22
  152. package/src/sap/fe/core/converters/helpers/Aggregation.js +24 -66
  153. package/src/sap/fe/core/converters/helpers/Aggregation.ts +2 -6
  154. package/src/sap/fe/core/converters/helpers/BindingHelper.js +9 -19
  155. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +0 -1
  156. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +20 -48
  157. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +5 -1
  158. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +12 -51
  159. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +12 -6
  160. package/src/sap/fe/core/converters/helpers/ID.js +3 -17
  161. package/src/sap/fe/core/converters/helpers/ID.ts +2 -3
  162. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -6
  163. package/src/sap/fe/core/converters/helpers/Key.js +10 -19
  164. package/src/sap/fe/core/converters/helpers/Key.ts +3 -3
  165. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +2 -20
  166. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +2 -37
  167. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +126 -131
  168. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +112 -31
  169. package/src/sap/fe/core/converters/templates/ListReportConverter.js +67 -131
  170. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +58 -27
  171. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +106 -183
  172. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +72 -103
  173. package/src/sap/fe/core/designtime/AppComponent.designtime.js +74 -67
  174. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +77 -69
  175. package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -25
  176. package/src/sap/fe/core/formatters/FPMFormatter.js +3 -7
  177. package/src/sap/fe/core/formatters/KPIFormatter.js +5 -13
  178. package/src/sap/fe/core/formatters/StandardFormatter.js +3 -18
  179. package/src/sap/fe/core/formatters/TableFormatter.js +69 -84
  180. package/src/sap/fe/core/formatters/TableFormatter.ts +70 -30
  181. package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -4
  182. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -37
  183. package/src/sap/fe/core/fpm/Component.js +2 -17
  184. package/src/sap/fe/core/helpers/AnnotationEnum.js +10 -20
  185. package/src/sap/fe/core/helpers/AnnotationEnum.ts +6 -6
  186. package/src/sap/fe/core/helpers/AppStartupHelper.js +16 -52
  187. package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
  188. package/src/sap/fe/core/helpers/BindingToolkit.js +104 -362
  189. package/src/sap/fe/core/helpers/BindingToolkit.ts +23 -1
  190. package/src/sap/fe/core/helpers/ClassSupport.js +16 -97
  191. package/src/sap/fe/core/helpers/DeleteHelper.js +39 -122
  192. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -12
  193. package/src/sap/fe/core/helpers/EditState.js +2 -5
  194. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -10
  195. package/src/sap/fe/core/helpers/FPMHelper.js +3 -8
  196. package/src/sap/fe/core/helpers/KeepAliveHelper.js +8 -38
  197. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -5
  198. package/src/sap/fe/core/helpers/LoaderUtils.js +1 -7
  199. package/src/sap/fe/core/helpers/MassEditHelper.js +150 -290
  200. package/src/sap/fe/core/helpers/MassEditHelper.ts +74 -72
  201. package/src/sap/fe/core/helpers/MessageStrip.js +12 -28
  202. package/src/sap/fe/core/helpers/ModelHelper.js +58 -99
  203. package/src/sap/fe/core/helpers/ModelHelper.ts +45 -7
  204. package/src/sap/fe/core/helpers/PasteHelper.js +47 -65
  205. package/src/sap/fe/core/helpers/PasteHelper.ts +31 -24
  206. package/src/sap/fe/core/helpers/SemanticDateOperators.js +112 -136
  207. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +111 -111
  208. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +5 -11
  209. package/src/sap/fe/core/helpers/SideEffectsHelper.js +26 -32
  210. package/src/sap/fe/core/helpers/StableIdHelper.js +166 -218
  211. package/src/sap/fe/core/helpers/StableIdHelper.ts +175 -191
  212. package/src/sap/fe/core/helpers/Synchronization.js +1 -8
  213. package/src/sap/fe/core/helpers/ToES6Promise.js +1 -4
  214. package/src/sap/fe/core/helpers/TypeGuards.js +22 -0
  215. package/src/sap/fe/core/helpers/TypeGuards.ts +9 -0
  216. package/src/sap/fe/core/jsx-runtime/Fragment.js +1 -3
  217. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +3 -23
  218. package/src/sap/fe/core/jsx-runtime/jsx-control.js +3 -23
  219. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +4 -16
  220. package/src/sap/fe/core/jsx-runtime/jsx.js +2 -5
  221. package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
  222. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +4 -27
  223. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
  224. package/src/sap/fe/core/library.js +10 -50
  225. package/src/sap/fe/core/library.support.js +1 -2
  226. package/src/sap/fe/core/library.ts +0 -6
  227. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +7 -22
  228. package/src/sap/fe/core/messagebundle.properties +74 -54
  229. package/src/sap/fe/core/messagebundle_ar.properties +7 -6
  230. package/src/sap/fe/core/messagebundle_bg.properties +7 -6
  231. package/src/sap/fe/core/messagebundle_ca.properties +7 -6
  232. package/src/sap/fe/core/messagebundle_cs.properties +8 -7
  233. package/src/sap/fe/core/messagebundle_cy.properties +24 -23
  234. package/src/sap/fe/core/messagebundle_da.properties +7 -6
  235. package/src/sap/fe/core/messagebundle_de.properties +31 -30
  236. package/src/sap/fe/core/messagebundle_el.properties +7 -6
  237. package/src/sap/fe/core/messagebundle_en.properties +6 -6
  238. package/src/sap/fe/core/messagebundle_en_GB.properties +7 -6
  239. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +8 -7
  240. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +8 -7
  241. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +10 -9
  242. package/src/sap/fe/core/messagebundle_es.properties +31 -30
  243. package/src/sap/fe/core/messagebundle_es_MX.properties +7 -6
  244. package/src/sap/fe/core/messagebundle_et.properties +7 -6
  245. package/src/sap/fe/core/messagebundle_fi.properties +24 -23
  246. package/src/sap/fe/core/messagebundle_fr.properties +5 -4
  247. package/src/sap/fe/core/messagebundle_fr_CA.properties +8 -7
  248. package/src/sap/fe/core/messagebundle_hi.properties +7 -6
  249. package/src/sap/fe/core/messagebundle_hr.properties +27 -26
  250. package/src/sap/fe/core/messagebundle_hu.properties +7 -6
  251. package/src/sap/fe/core/messagebundle_id.properties +7 -6
  252. package/src/sap/fe/core/messagebundle_it.properties +7 -6
  253. package/src/sap/fe/core/messagebundle_iw.properties +7 -6
  254. package/src/sap/fe/core/messagebundle_ja.properties +9 -8
  255. package/src/sap/fe/core/messagebundle_kk.properties +8 -7
  256. package/src/sap/fe/core/messagebundle_ko.properties +24 -23
  257. package/src/sap/fe/core/messagebundle_lt.properties +23 -22
  258. package/src/sap/fe/core/messagebundle_lv.properties +7 -6
  259. package/src/sap/fe/core/messagebundle_ms.properties +24 -23
  260. package/src/sap/fe/core/messagebundle_nl.properties +5 -4
  261. package/src/sap/fe/core/messagebundle_no.properties +5 -4
  262. package/src/sap/fe/core/messagebundle_pl.properties +6 -5
  263. package/src/sap/fe/core/messagebundle_pt.properties +5 -4
  264. package/src/sap/fe/core/messagebundle_pt_PT.properties +7 -6
  265. package/src/sap/fe/core/messagebundle_ro.properties +6 -5
  266. package/src/sap/fe/core/messagebundle_ru.properties +7 -6
  267. package/src/sap/fe/core/messagebundle_sh.properties +6 -5
  268. package/src/sap/fe/core/messagebundle_sk.properties +7 -6
  269. package/src/sap/fe/core/messagebundle_sl.properties +30 -29
  270. package/src/sap/fe/core/messagebundle_sv.properties +7 -6
  271. package/src/sap/fe/core/messagebundle_th.properties +8 -7
  272. package/src/sap/fe/core/messagebundle_tr.properties +5 -4
  273. package/src/sap/fe/core/messagebundle_uk.properties +7 -6
  274. package/src/sap/fe/core/messagebundle_vi.properties +24 -23
  275. package/src/sap/fe/core/messagebundle_zh_CN.properties +7 -6
  276. package/src/sap/fe/core/messagebundle_zh_TW.properties +7 -6
  277. package/src/sap/fe/core/operationsHelper.js +38 -69
  278. package/src/sap/fe/core/operationsHelper.ts +67 -34
  279. package/src/sap/fe/core/rootView/Fcl.controller.js +120 -241
  280. package/src/sap/fe/core/rootView/Fcl.controller.ts +48 -11
  281. package/src/sap/fe/core/rootView/Fcl.view.xml +1 -8
  282. package/src/sap/fe/core/rootView/NavContainer.controller.js +20 -52
  283. package/src/sap/fe/core/rootView/NavContainer.controller.ts +3 -3
  284. package/src/sap/fe/core/rootView/RootViewBaseController.js +94 -182
  285. package/src/sap/fe/core/rootView/RootViewBaseController.ts +19 -13
  286. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -18
  287. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +13 -52
  288. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -22
  289. package/src/sap/fe/core/services/NavigationServiceFactory.js +45 -87
  290. package/src/sap/fe/core/services/NavigationServiceFactory.ts +17 -14
  291. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -28
  292. package/src/sap/fe/core/services/RoutingServiceFactory.js +92 -250
  293. package/src/sap/fe/core/services/RoutingServiceFactory.ts +6 -10
  294. package/src/sap/fe/core/services/ShellServicesFactory.js +118 -249
  295. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +78 -168
  296. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +2 -2
  297. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +37 -135
  298. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +59 -73
  299. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -16
  300. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
  301. package/src/sap/fe/core/support/AnnotationIssue.support.js +6 -9
  302. package/src/sap/fe/core/support/AnnotationIssue.support.ts +4 -4
  303. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +6 -9
  304. package/src/sap/fe/core/support/CollectionFacetMissingID.support.ts +3 -3
  305. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +6 -9
  306. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +3 -3
  307. package/src/sap/fe/core/support/CommonHelper.js +7 -16
  308. package/src/sap/fe/core/support/Diagnostics.js +1 -10
  309. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +6 -9
  310. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +3 -3
  311. package/src/sap/fe/core/templating/CommonFormatters.js +1 -15
  312. package/src/sap/fe/core/templating/CriticalityFormatters.js +4 -20
  313. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -20
  314. package/src/sap/fe/core/templating/DataModelPathHelper.js +32 -104
  315. package/src/sap/fe/core/templating/DataModelPathHelper.ts +22 -16
  316. package/src/sap/fe/core/templating/DisplayModeFormatter.js +8 -15
  317. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +7 -7
  318. package/src/sap/fe/core/templating/EntitySetHelper.js +6 -31
  319. package/src/sap/fe/core/templating/FieldControlHelper.js +4 -21
  320. package/src/sap/fe/core/templating/FilterHelper.js +35 -111
  321. package/src/sap/fe/core/templating/FilterHelper.ts +15 -15
  322. package/src/sap/fe/core/templating/FilterTemplating.js +1 -19
  323. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -34
  324. package/src/sap/fe/core/templating/PropertyHelper.js +88 -159
  325. package/src/sap/fe/core/templating/PropertyHelper.ts +51 -36
  326. package/src/sap/fe/core/templating/SemanticObjectHelper.js +2 -12
  327. package/src/sap/fe/core/templating/UIFormatters.js +18 -157
  328. package/src/sap/fe/core/templating/UIFormatters.ts +7 -4
  329. package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -14
  330. package/src/sap/fe/core/type/Email.js +1 -10
  331. package/src/sap/fe/core/type/TypeUtil.js +1 -11
  332. package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +0 -35
  333. package/src/sap/fe/core/helpers/LRMessageStrip.js +0 -234
  334. package/src/sap/fe/core/helpers/LRMessageStrip.ts +0 -216
package/README.md CHANGED
@@ -1,15 +1,19 @@
1
1
  ![SAPUI5](https://ui5.sap.com/resources/sap/ui/documentation/sdk/images/Logo_B_SAPUI5_H.png)
2
2
 
3
3
  # @sapui5/sap.fe.core
4
+
4
5
  Runtime resources of the [SAPUI5](https://sapui5.hana.ondemand.com) Library **sap.fe.core**.
5
6
 
6
7
  ## SAP Internal
8
+
7
9
  **This library is restricted for use by SAP internal projects only.**
8
10
 
9
11
  ## Usage
12
+
10
13
  Refrain from installing this package using npm, Yarn or similar package managers.
11
14
  It is meant to be consumed using the [UI5 Tooling](https://sap.github.io/ui5-tooling/).
12
15
  For details please refer to our documentation on [Consuming SAPUI5 Libraries](https://sap.github.io/ui5-tooling/pages/SAPUI5/).
13
16
 
14
17
  ## License
15
- This package is provided under the terms of the [SAP Developer License Agreement](https://tools.hana.ondemand.com/developer-license-3.1.txt).
18
+
19
+ This package is provided under the terms of the [SAP Developer License Agreement](https://tools.hana.ondemand.com/developer-license-3.1.txt).
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.core",
3
- "version": "1.109.0",
3
+ "version": "1.110.0",
4
4
  "description": "SAPUI5 Library sap.fe.core",
5
+ "keywords": [
6
+ "sapui5",
7
+ "ui5"
8
+ ],
9
+ "homepage": "https://sap.github.io/ui5-tooling/pages/SAPUI5/",
5
10
  "license": "SEE LICENSE IN LICENSE.txt",
6
11
  "author": "SAP SE (https://www.sap.com)",
7
- "homepage": "https://sap.github.io/ui5-tooling/pages/SAPUI5/",
8
12
  "scripts": {
9
- "build": "echo 'nothing to do'",
10
13
  "build-dts": "tsc --project tsconfig-dts.json",
11
14
  "build-local": "tsc --project tsconfig-local.json && copyfiles -u 5 \"../../lib/annotation-converter-ui5/ui5-dist/**/*.js\" dist-local/src && copyfiles ui5.yaml dist-local",
12
15
  "copy-dependency": "copyfiles -u 5 \"../../lib/annotation-converter-ui5/ui5-dist/**/*.js\" target/classes/META-INF/resources",
@@ -16,16 +19,15 @@
16
19
  "test": "jest --maxWorkers=4",
17
20
  "test-refs": "jest --runInBand --config jest.config-refs.js",
18
21
  "test-updateSnapshots": "jest --maxWorkers=4 -u",
19
- "watch-local": "npm run build-local && tsc --project tsconfig-local.json --watch"
22
+ "watch-local": "pnpm run build-local && tsc --project tsconfig-local.json --watch"
20
23
  },
21
- "keywords": [
22
- "sapui5",
23
- "ui5"
24
- ],
25
24
  "devDependencies": {
26
25
  "@babel/cli": "^7.14.8",
26
+ "@babel/core": "^7.20.5",
27
+ "@types/node": "14.10.1",
27
28
  "@ui5/cli": "^2.14.0",
28
29
  "copyfiles": "2.2.0",
29
- "ts-node": "^10.8.1"
30
+ "ts-node": "^10.8.1",
31
+ "typescript": "4.7.4"
30
32
  }
31
33
  }
package/src/.eslintrc ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "rules": {
3
+ // Note: you must disable the base rule as it can report incorrect errors
4
+ "no-restricted-imports": "off",
5
+ "@typescript-eslint/no-restricted-imports": ["error", { "patterns": ["sap/fe/templates/*"] }]
6
+ }
7
+ }
@@ -1,59 +1,61 @@
1
1
  <?xml version="1.0" encoding="UTF-8" ?>
2
2
  <library xmlns="http://www.sap.com/sap.ui.library.xsd">
3
-
4
- <name>sap.fe.core</name>
5
- <vendor>SAP SE</vendor>
6
- <copyright>SAP UI development toolkit for HTML5 (SAPUI5)
3
+ <name>sap.fe.core</name>
4
+ <vendor>SAP SE</vendor>
5
+ <copyright>
6
+ SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
- </copyright>
9
- <version>1.109.0</version>
8
+ </copyright>
9
+ <version>1.110.0</version>
10
10
 
11
- <documentation>UI5 library: sap.fe.core</documentation>
11
+ <documentation>UI5 library: sap.fe.core</documentation>
12
12
 
13
- <dependencies>
13
+ <dependencies>
14
14
  <dependency>
15
15
  <libraryName>sap.ui.core</libraryName>
16
16
  </dependency>
17
- <dependency>
18
- <libraryName>sap.f</libraryName>
19
- </dependency>
17
+ <dependency>
18
+ <libraryName>sap.f</libraryName>
19
+ </dependency>
20
20
  <dependency>
21
21
  <libraryName>sap.fe.navigation</libraryName>
22
22
  </dependency>
23
23
  <dependency>
24
24
  <libraryName>sap.fe.placeholder</libraryName>
25
25
  </dependency>
26
- <dependency>
27
- <libraryName>sap.m</libraryName>
28
- </dependency>
29
- <dependency>
30
- <libraryName>sap.ui.layout</libraryName>
31
- <lazy>true</lazy>
32
- </dependency>
33
- <dependency>
34
- <libraryName>sap.ui.mdc</libraryName>
26
+ <dependency>
27
+ <libraryName>sap.m</libraryName>
28
+ </dependency>
29
+ <dependency>
30
+ <libraryName>sap.ui.layout</libraryName>
31
+ <lazy>true</lazy>
32
+ </dependency>
33
+ <dependency>
34
+ <libraryName>sap.ui.mdc</libraryName>
35
35
  <lazy>false</lazy>
36
- </dependency>
36
+ </dependency>
37
37
  <dependency>
38
38
  <libraryName>sap.ui.fl</libraryName>
39
39
  </dependency>
40
- </dependencies>
40
+ </dependencies>
41
41
 
42
- <appData>
43
- <!-- excludes for the JSDoc -->
44
- <jsdoc xmlns="http://www.sap.com/ui5/buildext/jsdoc">
45
- <exclude name="sap.fe.core.js."/>
46
- </jsdoc>
47
- <!-- excludes for the JSCoverage -->
42
+ <appData>
43
+ <!-- excludes for the JSDoc -->
44
+ <jsdoc xmlns="http://www.sap.com/ui5/buildext/jsdoc">
45
+ <exclude name="sap.fe.core.js." />
46
+ </jsdoc>
47
+ <!-- excludes for the JSCoverage -->
48
48
  <jscoverage xmlns="http://www.sap.com/ui5/buildext/jscoverage">
49
- <exclude name="sap.fe.core.js."/>
49
+ <exclude name="sap.fe.core.js." />
50
50
  </jscoverage>
51
- <releasenotes xmlns="http://www.sap.com/ui5/buildext/releasenotes"
52
- url="../../../../test-resources/sap/fe/core/relnotes/changes-{major}.{minor}.json"
53
- resolve="lib" />
54
- <ownership xmlns="http://www.sap.com/ui5/buildext/ownership">
55
- <component>CA-UI5-FE</component><!-- default component for library, embedded text as a shortcut for <name>text</name> -->
56
- </ownership>
57
- </appData>
58
-
51
+ <releasenotes
52
+ xmlns="http://www.sap.com/ui5/buildext/releasenotes"
53
+ url="../../../../test-resources/sap/fe/core/relnotes/changes-{major}.{minor}.json"
54
+ resolve="lib"
55
+ />
56
+ <ownership xmlns="http://www.sap.com/ui5/buildext/ownership">
57
+ <component>CA-UI5-FE</component>
58
+ <!-- default component for library, embedded text as a shortcut for <name>text</name> -->
59
+ </ownership>
60
+ </appData>
59
61
  </library>
@@ -1,4 +1,4 @@
1
1
  {
2
- "publicRules": true,
3
- "internalRules": true
4
- }
2
+ "publicRules": true,
3
+ "internalRules": true
4
+ }
@@ -2,13 +2,15 @@
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(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit"], function (CommonUtils, BindingToolkit) {
5
+ sap.ui.define(["sap/base/util/merge", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "./controls/AnyElement", "./converters/ConverterContext", "./converters/objectPage/HeaderAndFooterAction"], function (merge, CommonUtils, BindingToolkit, ModelHelper, AnyElement, ConverterContext, HeaderAndFooterAction) {
6
6
  "use strict";
7
7
 
8
+ var getHiddenExpression = HeaderAndFooterAction.getHiddenExpression;
9
+ var getEditButtonEnabled = HeaderAndFooterAction.getEditButtonEnabled;
8
10
  var transformRecursively = BindingToolkit.transformRecursively;
11
+ var equal = BindingToolkit.equal;
9
12
  var constant = BindingToolkit.constant;
10
13
  var compileExpression = BindingToolkit.compileExpression;
11
-
12
14
  var ActionRuntime = {
13
15
  /**
14
16
  * Sets the action enablement.
@@ -19,23 +21,19 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit"],
19
21
  * @param oActionOperationAvailableMap Map containing the operation availability of actions
20
22
  * @param aSelectedContexts Array containing selected contexts of the chart
21
23
  * @param sControl Control name
22
- * @returns Promise.all(aPromises)
24
+ * @returns {void} Promise.All(promises)
23
25
  * @ui5-restricted
24
26
  */
25
27
  setActionEnablement: function (oInternalModelContext, oActionOperationAvailableMap, aSelectedContexts, sControl) {
26
28
  var aPromises = [];
27
-
28
29
  for (var sAction in oActionOperationAvailableMap) {
29
30
  var aRequestPromises = [];
30
31
  oInternalModelContext.setProperty(sAction, false);
31
32
  var sProperty = oActionOperationAvailableMap[sAction];
32
-
33
33
  for (var i = 0; i < aSelectedContexts.length; i++) {
34
34
  var oSelectedContext = aSelectedContexts[i];
35
-
36
35
  if (oSelectedContext) {
37
36
  var oContextData = oSelectedContext.getObject();
38
-
39
37
  if (sControl === "chart") {
40
38
  if (sProperty === null && !!oContextData["#".concat(sAction)] || oSelectedContext.getObject(sProperty)) {
41
39
  //look for action advertisement if present and its value is not null
@@ -47,7 +45,6 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit"],
47
45
  }
48
46
  }
49
47
  }
50
-
51
48
  if (sControl === "table") {
52
49
  if (!aSelectedContexts.length) {
53
50
  oInternalModelContext.setProperty("dynamicActions/".concat(sAction), {
@@ -64,7 +61,6 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit"],
64
61
  }
65
62
  }
66
63
  }
67
-
68
64
  if (sControl === "table") {
69
65
  return Promise.all(aPromises);
70
66
  }
@@ -72,14 +68,11 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit"],
72
68
  setActionEnablementAfterPatch: function (oView, oListBinding, oInternalModelContext) {
73
69
  var oInternalModelContextData = oInternalModelContext === null || oInternalModelContext === void 0 ? void 0 : oInternalModelContext.getObject();
74
70
  var oControls = (oInternalModelContextData === null || oInternalModelContextData === void 0 ? void 0 : oInternalModelContextData.controls) || {};
75
-
76
71
  for (var sKey in oControls) {
77
72
  if (oControls[sKey] && oControls[sKey].controlId) {
78
73
  var oTable = oView.byId(sKey);
79
-
80
74
  if (oTable && oTable.isA("sap.ui.mdc.Table")) {
81
75
  var oRowBinding = oTable.getRowBinding();
82
-
83
76
  if (oRowBinding == oListBinding) {
84
77
  ActionRuntime.setActionEnablement(oInternalModelContext, JSON.parse(oTable.data("operationAvailableMap").customData), oTable.getSelectedContexts(), "table");
85
78
  }
@@ -87,29 +80,84 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit"],
87
80
  }
88
81
  }
89
82
  },
83
+ updateEditButtonVisibilityAndEnablement: function (oView) {
84
+ var _oView$getViewData;
85
+ var iViewLevel = (_oView$getViewData = oView.getViewData()) === null || _oView$getViewData === void 0 ? void 0 : _oView$getViewData.viewLevel;
86
+ if (iViewLevel > 1) {
87
+ var _oContext$getModel, _oContext$getModel$ge, _annotations$UI, _annotations$UI$Updat;
88
+ var oContext = oView.getBindingContext();
89
+ var oAppComponent = CommonUtils.getAppComponent(oView);
90
+ var sMetaPath = ModelHelper.getMetaPathForContext(oContext);
91
+ var sEntitySet = ModelHelper.getRootEntitySetPath(sMetaPath);
92
+ var metaContext = oContext === null || oContext === void 0 ? void 0 : (_oContext$getModel = oContext.getModel()) === null || _oContext$getModel === void 0 ? void 0 : (_oContext$getModel$ge = _oContext$getModel.getMetaModel()) === null || _oContext$getModel$ge === void 0 ? void 0 : _oContext$getModel$ge.getContext(oContext === null || oContext === void 0 ? void 0 : oContext.getPath());
93
+ var converterContext = ConverterContext === null || ConverterContext === void 0 ? void 0 : ConverterContext.createConverterContextForMacro(sEntitySet, metaContext, oAppComponent.getDiagnostics(), merge, undefined);
94
+ var entitySet = converterContext.getEntitySet();
95
+ var entityType = converterContext.getEntityType();
96
+ var updateHidden;
97
+ //Find the Update Hidden of the root entity set and bind the property to AnyElement, any changes in the path of the root UpdateHidden will be updated via the property, internal model context is updated based on the property
98
+ var bUpdateHidden = entitySet && !ModelHelper.isSingleton(entitySet) && ((_annotations$UI = entitySet.annotations.UI) === null || _annotations$UI === void 0 ? void 0 : (_annotations$UI$Updat = _annotations$UI.UpdateHidden) === null || _annotations$UI$Updat === void 0 ? void 0 : _annotations$UI$Updat.valueOf());
99
+ if (bUpdateHidden !== true) {
100
+ updateHidden = ModelHelper.isUpdateHidden(entitySet, entityType);
101
+ }
102
+ //Find the operation available property of the root edit configuration and fetch the property using AnyElement
103
+ var sEditEnableBinding = getEditButtonEnabled(converterContext, undefined);
104
+ var draftRootPath = ModelHelper.getDraftRootPath(oContext);
105
+ var sStickyRootPath = ModelHelper.getStickyRootPath(oContext);
106
+ var sPath = draftRootPath || sStickyRootPath;
107
+ var oInternalModelContext = oView.getBindingContext("internal");
108
+ if (sPath) {
109
+ var oRootContext = oView.getModel().bindContext(sPath).getBoundContext();
110
+ if (updateHidden !== undefined) {
111
+ var sHiddenExpression = compileExpression(equal(getHiddenExpression(converterContext, updateHidden), false));
112
+ this.updateEditModelContext(sHiddenExpression, oView, oRootContext, "rootEditVisible", oInternalModelContext);
113
+ }
114
+ if (sEditEnableBinding) {
115
+ this.updateEditModelContext(sEditEnableBinding, oView, oRootContext, "rootEditEnabled", oInternalModelContext);
116
+ }
117
+ }
118
+ }
119
+ },
120
+ updateEditModelContext: function (sBindingExpression, oView, oRootContext, sProperty, oInternalModelContext) {
121
+ if (sBindingExpression) {
122
+ var _oHiddenElement$getMo, _oHiddenElement$getMo2, _oHiddenElement$getBi;
123
+ var oHiddenElement = new AnyElement({
124
+ anyText: sBindingExpression
125
+ });
126
+ oHiddenElement.setBindingContext(null);
127
+ oView.addDependent(oHiddenElement);
128
+ oHiddenElement.getBinding("anyText");
129
+ var oContext = (_oHiddenElement$getMo = oHiddenElement.getModel()) === null || _oHiddenElement$getMo === void 0 ? void 0 : (_oHiddenElement$getMo2 = _oHiddenElement$getMo.bindContext(oRootContext.getPath(), oRootContext, {
130
+ $$groupId: "$auto.Heroes"
131
+ })) === null || _oHiddenElement$getMo2 === void 0 ? void 0 : _oHiddenElement$getMo2.getBoundContext();
132
+ oHiddenElement.setBindingContext(oContext);
133
+ oHiddenElement === null || oHiddenElement === void 0 ? void 0 : (_oHiddenElement$getBi = oHiddenElement.getBinding("anyText")) === null || _oHiddenElement$getBi === void 0 ? void 0 : _oHiddenElement$getBi.attachChange(function (oEvent) {
134
+ var oNewValue = oEvent.getSource().getExternalValue();
135
+ oInternalModelContext.setProperty(sProperty, oNewValue);
136
+ });
137
+ }
138
+ },
90
139
  _setActionEnablementForTable: function (oSelectedContext, oInternalModelContext, sAction, sProperty, aRequestPromises) {
91
140
  // Reset all properties before computation
92
141
  oInternalModelContext.setProperty("dynamicActions/".concat(sAction), {
93
142
  bEnabled: false,
94
143
  aApplicable: [],
95
144
  aNotApplicable: []
96
- }); // Note that non dynamic actions are not processed here. They are enabled because
145
+ });
146
+ // Note that non dynamic actions are not processed here. They are enabled because
97
147
  // one or more are selected and the second part of the condition in the templating
98
148
  // is then undefined and thus the button takes the default enabling, which is true!
99
-
100
149
  var aApplicable = [],
101
- aNotApplicable = [],
102
- sDynamicActionEnabledPath = "".concat(oInternalModelContext.getPath(), "/dynamicActions/").concat(sAction, "/bEnabled");
103
-
150
+ aNotApplicable = [],
151
+ sDynamicActionEnabledPath = "".concat(oInternalModelContext.getPath(), "/dynamicActions/").concat(sAction, "/bEnabled");
104
152
  if (typeof sProperty === "object" && sProperty !== null && sProperty !== undefined) {
105
153
  if (oSelectedContext) {
106
154
  var oContextData = oSelectedContext.getObject();
107
- var oTransformedBinding = transformRecursively(sProperty, "PathInModel", // eslint-disable-next-line no-loop-func
155
+ var oTransformedBinding = transformRecursively(sProperty, "PathInModel",
156
+ // eslint-disable-next-line no-loop-func
108
157
  function (oBindingExpression) {
109
158
  return oContextData ? constant(oContextData[oBindingExpression.path]) : constant(false);
110
159
  }, true);
111
160
  var sResult = compileExpression(oTransformedBinding);
112
-
113
161
  if (sResult === "true") {
114
162
  oInternalModelContext.getModel().setProperty(sDynamicActionEnabledPath, true);
115
163
  aApplicable.push(oSelectedContext);
@@ -117,11 +165,9 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit"],
117
165
  aNotApplicable.push(oSelectedContext);
118
166
  }
119
167
  }
120
-
121
168
  CommonUtils.setDynamicActionContexts(oInternalModelContext, sAction, aApplicable, aNotApplicable);
122
169
  } else {
123
170
  var _oContextData = oSelectedContext === null || oSelectedContext === void 0 ? void 0 : oSelectedContext.getObject();
124
-
125
171
  if (sProperty === null && !!_oContextData["#".concat(sAction)]) {
126
172
  //look for action advertisement if present and its value is not null
127
173
  oInternalModelContext.getModel().setProperty(sDynamicActionEnabledPath, true);
@@ -130,10 +176,9 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit"],
130
176
  aRequestPromises.push(CommonUtils.requestProperty(oSelectedContext, sAction, sProperty, sDynamicActionEnabledPath));
131
177
  }
132
178
  }
133
-
134
179
  return aRequestPromises;
135
180
  }
136
181
  };
137
182
  return ActionRuntime;
138
183
  }, false);
139
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25SdW50aW1lIiwic2V0QWN0aW9uRW5hYmxlbWVudCIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsIm9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJhU2VsZWN0ZWRDb250ZXh0cyIsInNDb250cm9sIiwiYVByb21pc2VzIiwic0FjdGlvbiIsImFSZXF1ZXN0UHJvbWlzZXMiLCJzZXRQcm9wZXJ0eSIsInNQcm9wZXJ0eSIsImkiLCJsZW5ndGgiLCJvU2VsZWN0ZWRDb250ZXh0Iiwib0NvbnRleHREYXRhIiwiZ2V0T2JqZWN0IiwiX3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZSIsImJFbmFibGVkIiwiYUFwcGxpY2FibGUiLCJhTm90QXBwbGljYWJsZSIsInB1c2giLCJDb21tb25VdGlscyIsInNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZSIsIlByb21pc2UiLCJhbGwiLCJzZXRBY3Rpb25FbmFibGVtZW50QWZ0ZXJQYXRjaCIsIm9WaWV3Iiwib0xpc3RCaW5kaW5nIiwib0ludGVybmFsTW9kZWxDb250ZXh0RGF0YSIsIm9Db250cm9scyIsImNvbnRyb2xzIiwic0tleSIsImNvbnRyb2xJZCIsIm9UYWJsZSIsImJ5SWQiLCJpc0EiLCJvUm93QmluZGluZyIsImdldFJvd0JpbmRpbmciLCJKU09OIiwicGFyc2UiLCJkYXRhIiwiY3VzdG9tRGF0YSIsImdldFNlbGVjdGVkQ29udGV4dHMiLCJzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoIiwiZ2V0UGF0aCIsInVuZGVmaW5lZCIsIm9UcmFuc2Zvcm1lZEJpbmRpbmciLCJ0cmFuc2Zvcm1SZWN1cnNpdmVseSIsIm9CaW5kaW5nRXhwcmVzc2lvbiIsImNvbnN0YW50IiwicGF0aCIsInNSZXN1bHQiLCJjb21waWxlRXhwcmVzc2lvbiIsImdldE1vZGVsIiwic2V0RHluYW1pY0FjdGlvbkNvbnRleHRzIiwicmVxdWVzdFByb3BlcnR5Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBY3Rpb25SdW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBfUmVxdWVzdGVkUHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgUGF0aEluTW9kZWxFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBjb25zdGFudCwgdHJhbnNmb3JtUmVjdXJzaXZlbHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIHsgT0RhdGFMaXN0QmluZGluZywgVjRDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3R5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuXG5jb25zdCBBY3Rpb25SdW50aW1lID0ge1xuXHQvKipcblx0ICogU2V0cyB0aGUgYWN0aW9uIGVuYWJsZW1lbnQuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzZXRBY3Rpb25FbmFibGVtZW50XG5cdCAqIEBwYXJhbSBvSW50ZXJuYWxNb2RlbENvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgbW9kZWxcblx0ICogQHBhcmFtIG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAgTWFwIGNvbnRhaW5pbmcgdGhlIG9wZXJhdGlvbiBhdmFpbGFiaWxpdHkgb2YgYWN0aW9uc1xuXHQgKiBAcGFyYW0gYVNlbGVjdGVkQ29udGV4dHMgQXJyYXkgY29udGFpbmluZyBzZWxlY3RlZCBjb250ZXh0cyBvZiB0aGUgY2hhcnRcblx0ICogQHBhcmFtIHNDb250cm9sIENvbnRyb2wgbmFtZVxuXHQgKiBAcmV0dXJucyBQcm9taXNlLmFsbChhUHJvbWlzZXMpXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0c2V0QWN0aW9uRW5hYmxlbWVudDogZnVuY3Rpb24gKFxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0b0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0XHRhU2VsZWN0ZWRDb250ZXh0czogVjRDb250ZXh0W10sXG5cdFx0c0NvbnRyb2w6IHN0cmluZ1xuXHQpIHtcblx0XHRjb25zdCBhUHJvbWlzZXMgPSBbXTtcblx0XHRmb3IgKGNvbnN0IHNBY3Rpb24gaW4gb0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcCkge1xuXHRcdFx0bGV0IGFSZXF1ZXN0UHJvbWlzZXM6IFByb21pc2U8X1JlcXVlc3RlZFByb3BlcnR5PltdID0gW107XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0FjdGlvbiwgZmFsc2UpO1xuXHRcdFx0Y29uc3Qgc1Byb3BlcnR5ID0gb0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcFtzQWN0aW9uXTtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVNlbGVjdGVkQ29udGV4dHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3Qgb1NlbGVjdGVkQ29udGV4dCA9IGFTZWxlY3RlZENvbnRleHRzW2ldO1xuXHRcdFx0XHRpZiAob1NlbGVjdGVkQ29udGV4dCkge1xuXHRcdFx0XHRcdGNvbnN0IG9Db250ZXh0RGF0YSA9IG9TZWxlY3RlZENvbnRleHQuZ2V0T2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdFx0XHRcdFx0aWYgKHNDb250cm9sID09PSBcImNoYXJ0XCIpIHtcblx0XHRcdFx0XHRcdGlmICgoc1Byb3BlcnR5ID09PSBudWxsICYmICEhb0NvbnRleHREYXRhW2AjJHtzQWN0aW9ufWBdKSB8fCBvU2VsZWN0ZWRDb250ZXh0LmdldE9iamVjdChzUHJvcGVydHkpKSB7XG5cdFx0XHRcdFx0XHRcdC8vbG9vayBmb3IgYWN0aW9uIGFkdmVydGlzZW1lbnQgaWYgcHJlc2VudCBhbmQgaXRzIHZhbHVlIGlzIG5vdCBudWxsXG5cdFx0XHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzQWN0aW9uLCB0cnVlKTtcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChzQ29udHJvbCA9PT0gXCJ0YWJsZVwiKSB7XG5cdFx0XHRcdFx0XHRhUmVxdWVzdFByb21pc2VzID0gdGhpcy5fc2V0QWN0aW9uRW5hYmxlbWVudEZvclRhYmxlKFxuXHRcdFx0XHRcdFx0XHRvU2VsZWN0ZWRDb250ZXh0LFxuXHRcdFx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0XHRcdFx0XHRcdHNBY3Rpb24sXG5cdFx0XHRcdFx0XHRcdHNQcm9wZXJ0eSxcblx0XHRcdFx0XHRcdFx0YVJlcXVlc3RQcm9taXNlc1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChzQ29udHJvbCA9PT0gXCJ0YWJsZVwiKSB7XG5cdFx0XHRcdGlmICghYVNlbGVjdGVkQ29udGV4dHMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBkeW5hbWljQWN0aW9ucy8ke3NBY3Rpb259YCwge1xuXHRcdFx0XHRcdFx0YkVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRcdFx0YUFwcGxpY2FibGU6IFtdLFxuXHRcdFx0XHRcdFx0YU5vdEFwcGxpY2FibGU6IFtdXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0YVByb21pc2VzLnB1c2goQ29tbW9uVXRpbHMuc2V0Q29udGV4dHNCYXNlZE9uT3BlcmF0aW9uQXZhaWxhYmxlKG9JbnRlcm5hbE1vZGVsQ29udGV4dCwgW10pKTtcblx0XHRcdFx0fSBlbHNlIGlmIChhU2VsZWN0ZWRDb250ZXh0cy5sZW5ndGggJiYgdHlwZW9mIHNQcm9wZXJ0eSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdC8vIFdoZW4gYWxsIHByb3BlcnR5IHZhbHVlcyBoYXZlIGJlZW4gcmV0cmlldmVkLCBzZXRcblx0XHRcdFx0XHQvLyBUaGUgYXBwbGljYWJsZSBhbmQgbm90LWFwcGxpY2FibGUgc2VsZWN0ZWQgY29udGV4dHMgZm9yIGVhY2ggYWN0aW9uIGFuZFxuXHRcdFx0XHRcdC8vIFRoZSBlbmFibGVkIHByb3BlcnR5IG9mIHRoZSBkeW5hbWljIGFjdGlvbiBpbiBpbnRlcm5hbCBtb2RlbCBjb250ZXh0LlxuXHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKENvbW1vblV0aWxzLnNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZShvSW50ZXJuYWxNb2RlbENvbnRleHQsIGFSZXF1ZXN0UHJvbWlzZXMpKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoc0NvbnRyb2wgPT09IFwidGFibGVcIikge1xuXHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKGFQcm9taXNlcyk7XG5cdFx0fVxuXHR9LFxuXHRzZXRBY3Rpb25FbmFibGVtZW50QWZ0ZXJQYXRjaDogZnVuY3Rpb24gKG9WaWV3OiBWaWV3LCBvTGlzdEJpbmRpbmc6IE9EYXRhTGlzdEJpbmRpbmcsIG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQpIHtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHREYXRhID0gb0ludGVybmFsTW9kZWxDb250ZXh0Py5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0XHRjb25zdCBvQ29udHJvbHMgPSAob0ludGVybmFsTW9kZWxDb250ZXh0RGF0YT8uY29udHJvbHMgfHwge30pIGFzIFJlY29yZDxzdHJpbmcsIHsgY29udHJvbElkPzogc3RyaW5nIH0+O1xuXHRcdGZvciAoY29uc3Qgc0tleSBpbiBvQ29udHJvbHMpIHtcblx0XHRcdGlmIChvQ29udHJvbHNbc0tleV0gJiYgb0NvbnRyb2xzW3NLZXldLmNvbnRyb2xJZCkge1xuXHRcdFx0XHRjb25zdCBvVGFibGUgPSBvVmlldy5ieUlkKHNLZXkpO1xuXHRcdFx0XHRpZiAob1RhYmxlICYmIG9UYWJsZS5pc0E8VGFibGU+KFwic2FwLnVpLm1kYy5UYWJsZVwiKSkge1xuXHRcdFx0XHRcdGNvbnN0IG9Sb3dCaW5kaW5nID0gb1RhYmxlLmdldFJvd0JpbmRpbmcoKTtcblx0XHRcdFx0XHRpZiAob1Jvd0JpbmRpbmcgPT0gb0xpc3RCaW5kaW5nKSB7XG5cdFx0XHRcdFx0XHRBY3Rpb25SdW50aW1lLnNldEFjdGlvbkVuYWJsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRcdFx0XHRcdFx0SlNPTi5wYXJzZShvVGFibGUuZGF0YShcIm9wZXJhdGlvbkF2YWlsYWJsZU1hcFwiKS5jdXN0b21EYXRhKSxcblx0XHRcdFx0XHRcdFx0b1RhYmxlLmdldFNlbGVjdGVkQ29udGV4dHMoKSBhcyBWNENvbnRleHRbXSxcblx0XHRcdFx0XHRcdFx0XCJ0YWJsZVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0X3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZTogZnVuY3Rpb24gKFxuXHRcdG9TZWxlY3RlZENvbnRleHQ6IFY0Q29udGV4dCB8IHVuZGVmaW5lZCxcblx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQ6IEludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdHNBY3Rpb246IHN0cmluZyxcblx0XHRzUHJvcGVydHk6IHN0cmluZyxcblx0XHRhUmVxdWVzdFByb21pc2VzOiBQcm9taXNlPF9SZXF1ZXN0ZWRQcm9wZXJ0eT5bXVxuXHQpIHtcblx0XHQvLyBSZXNldCBhbGwgcHJvcGVydGllcyBiZWZvcmUgY29tcHV0YXRpb25cblx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoYGR5bmFtaWNBY3Rpb25zLyR7c0FjdGlvbn1gLCB7XG5cdFx0XHRiRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRhQXBwbGljYWJsZTogW10sXG5cdFx0XHRhTm90QXBwbGljYWJsZTogW11cblx0XHR9KTtcblx0XHQvLyBOb3RlIHRoYXQgbm9uIGR5bmFtaWMgYWN0aW9ucyBhcmUgbm90IHByb2Nlc3NlZCBoZXJlLiBUaGV5IGFyZSBlbmFibGVkIGJlY2F1c2Vcblx0XHQvLyBvbmUgb3IgbW9yZSBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBzZWNvbmQgcGFydCBvZiB0aGUgY29uZGl0aW9uIGluIHRoZSB0ZW1wbGF0aW5nXG5cdFx0Ly8gaXMgdGhlbiB1bmRlZmluZWQgYW5kIHRodXMgdGhlIGJ1dHRvbiB0YWtlcyB0aGUgZGVmYXVsdCBlbmFibGluZywgd2hpY2ggaXMgdHJ1ZSFcblx0XHRjb25zdCBhQXBwbGljYWJsZSA9IFtdLFxuXHRcdFx0YU5vdEFwcGxpY2FibGUgPSBbXSxcblx0XHRcdHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGggPSBgJHtvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UGF0aCgpfS9keW5hbWljQWN0aW9ucy8ke3NBY3Rpb259L2JFbmFibGVkYDtcblx0XHRpZiAodHlwZW9mIHNQcm9wZXJ0eSA9PT0gXCJvYmplY3RcIiAmJiBzUHJvcGVydHkgIT09IG51bGwgJiYgc1Byb3BlcnR5ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGlmIChvU2VsZWN0ZWRDb250ZXh0KSB7XG5cdFx0XHRcdGNvbnN0IG9Db250ZXh0RGF0YSA9IG9TZWxlY3RlZENvbnRleHQuZ2V0T2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlVHlwZT47XG5cdFx0XHRcdGNvbnN0IG9UcmFuc2Zvcm1lZEJpbmRpbmcgPSB0cmFuc2Zvcm1SZWN1cnNpdmVseShcblx0XHRcdFx0XHRzUHJvcGVydHksXG5cdFx0XHRcdFx0XCJQYXRoSW5Nb2RlbFwiLFxuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1sb29wLWZ1bmNcblx0XHRcdFx0XHRmdW5jdGlvbiAob0JpbmRpbmdFeHByZXNzaW9uOiBQYXRoSW5Nb2RlbEV4cHJlc3Npb248UHJpbWl0aXZlVHlwZT4pIHtcblx0XHRcdFx0XHRcdHJldHVybiBvQ29udGV4dERhdGEgPyBjb25zdGFudChvQ29udGV4dERhdGFbb0JpbmRpbmdFeHByZXNzaW9uLnBhdGhdKSA6IGNvbnN0YW50KGZhbHNlKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHRydWVcblx0XHRcdFx0KTtcblx0XHRcdFx0Y29uc3Qgc1Jlc3VsdCA9IGNvbXBpbGVFeHByZXNzaW9uKG9UcmFuc2Zvcm1lZEJpbmRpbmcpO1xuXHRcdFx0XHRpZiAoc1Jlc3VsdCA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0TW9kZWwoKS5zZXRQcm9wZXJ0eShzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoLCB0cnVlKTtcblx0XHRcdFx0XHRhQXBwbGljYWJsZS5wdXNoKG9TZWxlY3RlZENvbnRleHQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGFOb3RBcHBsaWNhYmxlLnB1c2gob1NlbGVjdGVkQ29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdENvbW1vblV0aWxzLnNldER5bmFtaWNBY3Rpb25Db250ZXh0cyhvSW50ZXJuYWxNb2RlbENvbnRleHQsIHNBY3Rpb24sIGFBcHBsaWNhYmxlLCBhTm90QXBwbGljYWJsZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0RGF0YSA9IG9TZWxlY3RlZENvbnRleHQ/LmdldE9iamVjdCgpIGFzIFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZVR5cGU+O1xuXHRcdFx0aWYgKHNQcm9wZXJ0eSA9PT0gbnVsbCAmJiAhIW9Db250ZXh0RGF0YVtgIyR7c0FjdGlvbn1gXSkge1xuXHRcdFx0XHQvL2xvb2sgZm9yIGFjdGlvbiBhZHZlcnRpc2VtZW50IGlmIHByZXNlbnQgYW5kIGl0cyB2YWx1ZSBpcyBub3QgbnVsbFxuXHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0TW9kZWwoKS5zZXRQcm9wZXJ0eShzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoLCB0cnVlKTtcblx0XHRcdH0gZWxzZSBpZiAob1NlbGVjdGVkQ29udGV4dCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdC8vIENvbGxlY3QgcHJvbWlzZXMgdG8gcmV0cmlldmUgc2luZ2xldG9uIG9yIG5vcm1hbCBwcm9wZXJ0eSB2YWx1ZSBhc3luY2hyb25vdXNseVxuXHRcdFx0XHRhUmVxdWVzdFByb21pc2VzLnB1c2goQ29tbW9uVXRpbHMucmVxdWVzdFByb3BlcnR5KG9TZWxlY3RlZENvbnRleHQsIHNBY3Rpb24sIHNQcm9wZXJ0eSwgc0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gYVJlcXVlc3RQcm9taXNlcztcblx0fVxufTtcbmV4cG9ydCBkZWZhdWx0IEFjdGlvblJ1bnRpbWU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7O0VBVUEsSUFBTUEsYUFBYSxHQUFHO0lBQ3JCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDQyxtQkFBbUIsRUFBRSxVQUNwQkMscUJBRG9CLEVBRXBCQyw0QkFGb0IsRUFHcEJD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
184
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25SdW50aW1lIiwic2V0QWN0aW9uRW5hYmxlbWVudCIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsIm9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJhU2VsZWN0ZWRDb250ZXh0cyIsInNDb250cm9sIiwiYVByb21pc2VzIiwic0FjdGlvbiIsImFSZXF1ZXN0UHJvbWlzZXMiLCJzZXRQcm9wZXJ0eSIsInNQcm9wZXJ0eSIsImkiLCJsZW5ndGgiLCJvU2VsZWN0ZWRDb250ZXh0Iiwib0NvbnRleHREYXRhIiwiZ2V0T2JqZWN0IiwiX3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZSIsImJFbmFibGVkIiwiYUFwcGxpY2FibGUiLCJhTm90QXBwbGljYWJsZSIsInB1c2giLCJDb21tb25VdGlscyIsInNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZSIsIlByb21pc2UiLCJhbGwiLCJzZXRBY3Rpb25FbmFibGVtZW50QWZ0ZXJQYXRjaCIsIm9WaWV3Iiwib0xpc3RCaW5kaW5nIiwib0ludGVybmFsTW9kZWxDb250ZXh0RGF0YSIsIm9Db250cm9scyIsImNvbnRyb2xzIiwic0tleSIsImNvbnRyb2xJZCIsIm9UYWJsZSIsImJ5SWQiLCJpc0EiLCJvUm93QmluZGluZyIsImdldFJvd0JpbmRpbmciLCJKU09OIiwicGFyc2UiLCJkYXRhIiwiY3VzdG9tRGF0YSIsImdldFNlbGVjdGVkQ29udGV4dHMiLCJ1cGRhdGVFZGl0QnV0dG9uVmlzaWJpbGl0eUFuZEVuYWJsZW1lbnQiLCJpVmlld0xldmVsIiwiZ2V0Vmlld0RhdGEiLCJ2aWV3TGV2ZWwiLCJvQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwib0FwcENvbXBvbmVudCIsImdldEFwcENvbXBvbmVudCIsInNNZXRhUGF0aCIsIk1vZGVsSGVscGVyIiwiZ2V0TWV0YVBhdGhGb3JDb250ZXh0Iiwic0VudGl0eVNldCIsImdldFJvb3RFbnRpdHlTZXRQYXRoIiwibWV0YUNvbnRleHQiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsImdldENvbnRleHQiLCJnZXRQYXRoIiwiY29udmVydGVyQ29udGV4dCIsIkNvbnZlcnRlckNvbnRleHQiLCJjcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8iLCJnZXREaWFnbm9zdGljcyIsIm1lcmdlIiwidW5kZWZpbmVkIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiZW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJ1cGRhdGVIaWRkZW4iLCJiVXBkYXRlSGlkZGVuIiwiaXNTaW5nbGV0b24iLCJhbm5vdGF0aW9ucyIsIlVJIiwiVXBkYXRlSGlkZGVuIiwidmFsdWVPZiIsImlzVXBkYXRlSGlkZGVuIiwic0VkaXRFbmFibGVCaW5kaW5nIiwiZ2V0RWRpdEJ1dHRvbkVuYWJsZWQiLCJkcmFmdFJvb3RQYXRoIiwiZ2V0RHJhZnRSb290UGF0aCIsInNTdGlja3lSb290UGF0aCIsImdldFN0aWNreVJvb3RQYXRoIiwic1BhdGgiLCJvUm9vdENvbnRleHQiLCJiaW5kQ29udGV4dCIsImdldEJvdW5kQ29udGV4dCIsInNIaWRkZW5FeHByZXNzaW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJlcXVhbCIsImdldEhpZGRlbkV4cHJlc3Npb24iLCJ1cGRhdGVFZGl0TW9kZWxDb250ZXh0Iiwic0JpbmRpbmdFeHByZXNzaW9uIiwib0hpZGRlbkVsZW1lbnQiLCJBbnlFbGVtZW50IiwiYW55VGV4dCIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRGVwZW5kZW50IiwiZ2V0QmluZGluZyIsIiQkZ3JvdXBJZCIsImF0dGFjaENoYW5nZSIsIm9FdmVudCIsIm9OZXdWYWx1ZSIsImdldFNvdXJjZSIsImdldEV4dGVybmFsVmFsdWUiLCJzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoIiwib1RyYW5zZm9ybWVkQmluZGluZyIsInRyYW5zZm9ybVJlY3Vyc2l2ZWx5Iiwib0JpbmRpbmdFeHByZXNzaW9uIiwiY29uc3RhbnQiLCJwYXRoIiwic1Jlc3VsdCIsInNldER5bmFtaWNBY3Rpb25Db250ZXh0cyIsInJlcXVlc3RQcm9wZXJ0eSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQWN0aW9uUnVudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVNldCwgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IG1lcmdlIGZyb20gXCJzYXAvYmFzZS91dGlsL21lcmdlXCI7XG5pbXBvcnQgdHlwZSB7IF9SZXF1ZXN0ZWRQcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBQYXRoSW5Nb2RlbEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24sIGNvbnN0YW50LCBlcXVhbCwgdHJhbnNmb3JtUmVjdXJzaXZlbHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSBQcm9wZXJ0eUJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9Qcm9wZXJ0eUJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIHsgT0RhdGFMaXN0QmluZGluZywgVjRDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3R5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuaW1wb3J0IEFueUVsZW1lbnQgZnJvbSBcIi4vY29udHJvbHMvQW55RWxlbWVudFwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4vY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VNYW5pZmVzdFNldHRpbmdzIH0gZnJvbSBcIi4vY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBnZXRFZGl0QnV0dG9uRW5hYmxlZCwgZ2V0SGlkZGVuRXhwcmVzc2lvbiB9IGZyb20gXCIuL2NvbnZlcnRlcnMvb2JqZWN0UGFnZS9IZWFkZXJBbmRGb290ZXJBY3Rpb25cIjtcblxuY29uc3QgQWN0aW9uUnVudGltZSA9IHtcblx0LyoqXG5cdCAqIFNldHMgdGhlIGFjdGlvbiBlbmFibGVtZW50LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2V0QWN0aW9uRW5hYmxlbWVudFxuXHQgKiBAcGFyYW0gb0ludGVybmFsTW9kZWxDb250ZXh0IE9iamVjdCBjb250YWluaW5nIHRoZSBjb250ZXh0IG1vZGVsXG5cdCAqIEBwYXJhbSBvQWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlTWFwIE1hcCBjb250YWluaW5nIHRoZSBvcGVyYXRpb24gYXZhaWxhYmlsaXR5IG9mIGFjdGlvbnNcblx0ICogQHBhcmFtIGFTZWxlY3RlZENvbnRleHRzIEFycmF5IGNvbnRhaW5pbmcgc2VsZWN0ZWQgY29udGV4dHMgb2YgdGhlIGNoYXJ0XG5cdCAqIEBwYXJhbSBzQ29udHJvbCBDb250cm9sIG5hbWVcblx0ICogQHJldHVybnMge3ZvaWR9IFByb21pc2UuQWxsKHByb21pc2VzKVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHNldEFjdGlvbkVuYWJsZW1lbnQ6IGZ1bmN0aW9uIChcblx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQ6IEludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG5cdFx0YVNlbGVjdGVkQ29udGV4dHM6IFY0Q29udGV4dFtdLFxuXHRcdHNDb250cm9sOiBzdHJpbmdcblx0KSB7XG5cdFx0Y29uc3QgYVByb21pc2VzID0gW107XG5cdFx0Zm9yIChjb25zdCBzQWN0aW9uIGluIG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXApIHtcblx0XHRcdGxldCBhUmVxdWVzdFByb21pc2VzOiBQcm9taXNlPF9SZXF1ZXN0ZWRQcm9wZXJ0eT5bXSA9IFtdO1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNBY3Rpb24sIGZhbHNlKTtcblx0XHRcdGNvbnN0IHNQcm9wZXJ0eSA9IG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl07XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFTZWxlY3RlZENvbnRleHRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IG9TZWxlY3RlZENvbnRleHQgPSBhU2VsZWN0ZWRDb250ZXh0c1tpXTtcblx0XHRcdFx0aWYgKG9TZWxlY3RlZENvbnRleHQpIHtcblx0XHRcdFx0XHRjb25zdCBvQ29udGV4dERhdGEgPSBvU2VsZWN0ZWRDb250ZXh0LmdldE9iamVjdCgpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXHRcdFx0XHRcdGlmIChzQ29udHJvbCA9PT0gXCJjaGFydFwiKSB7XG5cdFx0XHRcdFx0XHRpZiAoKHNQcm9wZXJ0eSA9PT0gbnVsbCAmJiAhIW9Db250ZXh0RGF0YVtgIyR7c0FjdGlvbn1gXSkgfHwgb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3Qoc1Byb3BlcnR5KSkge1xuXHRcdFx0XHRcdFx0XHQvL2xvb2sgZm9yIGFjdGlvbiBhZHZlcnRpc2VtZW50IGlmIHByZXNlbnQgYW5kIGl0cyB2YWx1ZSBpcyBub3QgbnVsbFxuXHRcdFx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0FjdGlvbiwgdHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoc0NvbnRyb2wgPT09IFwidGFibGVcIikge1xuXHRcdFx0XHRcdFx0YVJlcXVlc3RQcm9taXNlcyA9IHRoaXMuX3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZShcblx0XHRcdFx0XHRcdFx0b1NlbGVjdGVkQ29udGV4dCxcblx0XHRcdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdFx0XHRcdFx0XHRzQWN0aW9uLFxuXHRcdFx0XHRcdFx0XHRzUHJvcGVydHksXG5cdFx0XHRcdFx0XHRcdGFSZXF1ZXN0UHJvbWlzZXNcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAoc0NvbnRyb2wgPT09IFwidGFibGVcIikge1xuXHRcdFx0XHRpZiAoIWFTZWxlY3RlZENvbnRleHRzLmxlbmd0aCkge1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgZHluYW1pY0FjdGlvbnMvJHtzQWN0aW9ufWAsIHtcblx0XHRcdFx0XHRcdGJFbmFibGVkOiBmYWxzZSxcblx0XHRcdFx0XHRcdGFBcHBsaWNhYmxlOiBbXSxcblx0XHRcdFx0XHRcdGFOb3RBcHBsaWNhYmxlOiBbXVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKENvbW1vblV0aWxzLnNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZShvSW50ZXJuYWxNb2RlbENvbnRleHQsIFtdKSk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYVNlbGVjdGVkQ29udGV4dHMubGVuZ3RoICYmIHR5cGVvZiBzUHJvcGVydHkgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0XHQvLyBXaGVuIGFsbCBwcm9wZXJ0eSB2YWx1ZXMgaGF2ZSBiZWVuIHJldHJpZXZlZCwgc2V0XG5cdFx0XHRcdFx0Ly8gVGhlIGFwcGxpY2FibGUgYW5kIG5vdC1hcHBsaWNhYmxlIHNlbGVjdGVkIGNvbnRleHRzIGZvciBlYWNoIGFjdGlvbiBhbmRcblx0XHRcdFx0XHQvLyBUaGUgZW5hYmxlZCBwcm9wZXJ0eSBvZiB0aGUgZHluYW1pYyBhY3Rpb24gaW4gaW50ZXJuYWwgbW9kZWwgY29udGV4dC5cblx0XHRcdFx0XHRhUHJvbWlzZXMucHVzaChDb21tb25VdGlscy5zZXRDb250ZXh0c0Jhc2VkT25PcGVyYXRpb25BdmFpbGFibGUob0ludGVybmFsTW9kZWxDb250ZXh0LCBhUmVxdWVzdFByb21pc2VzKSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHNDb250cm9sID09PSBcInRhYmxlXCIpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLmFsbChhUHJvbWlzZXMpO1xuXHRcdH1cblx0fSxcblx0c2V0QWN0aW9uRW5hYmxlbWVudEFmdGVyUGF0Y2g6IGZ1bmN0aW9uIChvVmlldzogVmlldywgb0xpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nLCBvSW50ZXJuYWxNb2RlbENvbnRleHQ6IEludGVybmFsTW9kZWxDb250ZXh0KSB7XG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0RGF0YSA9IG9JbnRlcm5hbE1vZGVsQ29udGV4dD8uZ2V0T2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdFx0Y29uc3Qgb0NvbnRyb2xzID0gKG9JbnRlcm5hbE1vZGVsQ29udGV4dERhdGE/LmNvbnRyb2xzIHx8IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB7IGNvbnRyb2xJZD86IHN0cmluZyB9Pjtcblx0XHRmb3IgKGNvbnN0IHNLZXkgaW4gb0NvbnRyb2xzKSB7XG5cdFx0XHRpZiAob0NvbnRyb2xzW3NLZXldICYmIG9Db250cm9sc1tzS2V5XS5jb250cm9sSWQpIHtcblx0XHRcdFx0Y29uc3Qgb1RhYmxlID0gb1ZpZXcuYnlJZChzS2V5KTtcblx0XHRcdFx0aWYgKG9UYWJsZSAmJiBvVGFibGUuaXNBPFRhYmxlPihcInNhcC51aS5tZGMuVGFibGVcIikpIHtcblx0XHRcdFx0XHRjb25zdCBvUm93QmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCk7XG5cdFx0XHRcdFx0aWYgKG9Sb3dCaW5kaW5nID09IG9MaXN0QmluZGluZykge1xuXHRcdFx0XHRcdFx0QWN0aW9uUnVudGltZS5zZXRBY3Rpb25FbmFibGVtZW50KFxuXHRcdFx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0XHRcdFx0XHRcdEpTT04ucGFyc2Uob1RhYmxlLmRhdGEoXCJvcGVyYXRpb25BdmFpbGFibGVNYXBcIikuY3VzdG9tRGF0YSksXG5cdFx0XHRcdFx0XHRcdG9UYWJsZS5nZXRTZWxlY3RlZENvbnRleHRzKCkgYXMgVjRDb250ZXh0W10sXG5cdFx0XHRcdFx0XHRcdFwidGFibGVcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0dXBkYXRlRWRpdEJ1dHRvblZpc2liaWxpdHlBbmRFbmFibGVtZW50KG9WaWV3OiBWaWV3KSB7XG5cdFx0Y29uc3QgaVZpZXdMZXZlbCA9IChvVmlldy5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzKT8udmlld0xldmVsO1xuXHRcdGlmICgoaVZpZXdMZXZlbCBhcyBudW1iZXIpID4gMSkge1xuXHRcdFx0Y29uc3Qgb0NvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIFY0Q29udGV4dDtcblx0XHRcdGNvbnN0IG9BcHBDb21wb25lbnQgPSBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQob1ZpZXcpO1xuXHRcdFx0Y29uc3Qgc01ldGFQYXRoID0gTW9kZWxIZWxwZXIuZ2V0TWV0YVBhdGhGb3JDb250ZXh0KG9Db250ZXh0KTtcblx0XHRcdGNvbnN0IHNFbnRpdHlTZXQgPSBNb2RlbEhlbHBlci5nZXRSb290RW50aXR5U2V0UGF0aChzTWV0YVBhdGgpO1xuXHRcdFx0Y29uc3QgbWV0YUNvbnRleHQgPSBvQ29udGV4dD8uZ2V0TW9kZWwoKT8uZ2V0TWV0YU1vZGVsKCk/LmdldENvbnRleHQob0NvbnRleHQ/LmdldFBhdGgoKSk7XG5cdFx0XHRjb25zdCBjb252ZXJ0ZXJDb250ZXh0ID0gQ29udmVydGVyQ29udGV4dD8uY3JlYXRlQ29udmVydGVyQ29udGV4dEZvck1hY3JvKFxuXHRcdFx0XHRzRW50aXR5U2V0LFxuXHRcdFx0XHRtZXRhQ29udGV4dCxcblx0XHRcdFx0b0FwcENvbXBvbmVudC5nZXREaWFnbm9zdGljcygpLFxuXHRcdFx0XHRtZXJnZSxcblx0XHRcdFx0dW5kZWZpbmVkXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKTtcblx0XHRcdGNvbnN0IGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0XHRcdGxldCB1cGRhdGVIaWRkZW47XG5cdFx0XHQvL0ZpbmQgdGhlIFVwZGF0ZSBIaWRkZW4gb2YgdGhlIHJvb3QgZW50aXR5IHNldCBhbmQgYmluZCB0aGUgcHJvcGVydHkgdG8gQW55RWxlbWVudCwgYW55IGNoYW5nZXMgaW4gdGhlIHBhdGggb2YgdGhlIHJvb3QgVXBkYXRlSGlkZGVuIHdpbGwgYmUgdXBkYXRlZCB2aWEgdGhlIHByb3BlcnR5LCBpbnRlcm5hbCBtb2RlbCBjb250ZXh0IGlzIHVwZGF0ZWQgYmFzZWQgb24gdGhlIHByb3BlcnR5XG5cdFx0XHRjb25zdCBiVXBkYXRlSGlkZGVuID1cblx0XHRcdFx0ZW50aXR5U2V0ICYmICFNb2RlbEhlbHBlci5pc1NpbmdsZXRvbihlbnRpdHlTZXQpICYmIChlbnRpdHlTZXQgYXMgRW50aXR5U2V0KS5hbm5vdGF0aW9ucy5VST8uVXBkYXRlSGlkZGVuPy52YWx1ZU9mKCk7XG5cdFx0XHRpZiAoYlVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdFx0XHR1cGRhdGVIaWRkZW4gPSBNb2RlbEhlbHBlci5pc1VwZGF0ZUhpZGRlbihlbnRpdHlTZXQsIGVudGl0eVR5cGUpO1xuXHRcdFx0fVxuXHRcdFx0Ly9GaW5kIHRoZSBvcGVyYXRpb24gYXZhaWxhYmxlIHByb3BlcnR5IG9mIHRoZSByb290IGVkaXQgY29uZmlndXJhdGlvbiBhbmQgZmV0Y2ggdGhlIHByb3BlcnR5IHVzaW5nIEFueUVsZW1lbnRcblx0XHRcdGNvbnN0IHNFZGl0RW5hYmxlQmluZGluZyA9IGdldEVkaXRCdXR0b25FbmFibGVkKGNvbnZlcnRlckNvbnRleHQsIHVuZGVmaW5lZCk7XG5cdFx0XHRjb25zdCBkcmFmdFJvb3RQYXRoID0gTW9kZWxIZWxwZXIuZ2V0RHJhZnRSb290UGF0aChvQ29udGV4dCk7XG5cdFx0XHRjb25zdCBzU3RpY2t5Um9vdFBhdGggPSBNb2RlbEhlbHBlci5nZXRTdGlja3lSb290UGF0aChvQ29udGV4dCk7XG5cdFx0XHRjb25zdCBzUGF0aCA9IGRyYWZ0Um9vdFBhdGggfHwgc1N0aWNreVJvb3RQYXRoO1xuXHRcdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRcdGlmIChzUGF0aCkge1xuXHRcdFx0XHRjb25zdCBvUm9vdENvbnRleHQgPSBvVmlldy5nZXRNb2RlbCgpLmJpbmRDb250ZXh0KHNQYXRoKS5nZXRCb3VuZENvbnRleHQoKSBhcyBWNENvbnRleHQ7XG5cdFx0XHRcdGlmICh1cGRhdGVIaWRkZW4gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGNvbnN0IHNIaWRkZW5FeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oZXF1YWwoZ2V0SGlkZGVuRXhwcmVzc2lvbihjb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGVIaWRkZW4pLCBmYWxzZSkpO1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlRWRpdE1vZGVsQ29udGV4dChzSGlkZGVuRXhwcmVzc2lvbiwgb1ZpZXcsIG9Sb290Q29udGV4dCwgXCJyb290RWRpdFZpc2libGVcIiwgb0ludGVybmFsTW9kZWxDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoc0VkaXRFbmFibGVCaW5kaW5nKSB7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVFZGl0TW9kZWxDb250ZXh0KHNFZGl0RW5hYmxlQmluZGluZywgb1ZpZXcsIG9Sb290Q29udGV4dCwgXCJyb290RWRpdEVuYWJsZWRcIiwgb0ludGVybmFsTW9kZWxDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHR1cGRhdGVFZGl0TW9kZWxDb250ZXh0OiBmdW5jdGlvbiAoXG5cdFx0c0JpbmRpbmdFeHByZXNzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdFx0b1ZpZXc6IFZpZXcsXG5cdFx0b1Jvb3RDb250ZXh0OiBWNENvbnRleHQsXG5cdFx0c1Byb3BlcnR5OiBzdHJpbmcsXG5cdFx0b0ludGVybmFsTW9kZWxDb250ZXh0OiBJbnRlcm5hbE1vZGVsQ29udGV4dFxuXHQpIHtcblx0XHRpZiAoc0JpbmRpbmdFeHByZXNzaW9uKSB7XG5cdFx0XHRjb25zdCBvSGlkZGVuRWxlbWVudCA9IG5ldyBBbnlFbGVtZW50KHsgYW55VGV4dDogc0JpbmRpbmdFeHByZXNzaW9uIH0pO1xuXHRcdFx0b0hpZGRlbkVsZW1lbnQuc2V0QmluZGluZ0NvbnRleHQobnVsbCk7XG5cdFx0XHRvVmlldy5hZGREZXBlbmRlbnQob0hpZGRlbkVsZW1lbnQpO1xuXHRcdFx0b0hpZGRlbkVsZW1lbnQuZ2V0QmluZGluZyhcImFueVRleHRcIik7XG5cdFx0XHRjb25zdCBvQ29udGV4dCA9IG9IaWRkZW5FbGVtZW50XG5cdFx0XHRcdC5nZXRNb2RlbCgpXG5cdFx0XHRcdD8uYmluZENvbnRleHQob1Jvb3RDb250ZXh0LmdldFBhdGgoKSwgb1Jvb3RDb250ZXh0LCB7ICQkZ3JvdXBJZDogXCIkYXV0by5IZXJvZXNcIiB9KVxuXHRcdFx0XHQ/LmdldEJvdW5kQ29udGV4dCgpO1xuXHRcdFx0b0hpZGRlbkVsZW1lbnQuc2V0QmluZGluZ0NvbnRleHQob0NvbnRleHQpO1xuXHRcdFx0b0hpZGRlbkVsZW1lbnQ/LmdldEJpbmRpbmcoXCJhbnlUZXh0XCIpPy5hdHRhY2hDaGFuZ2UoKG9FdmVudDogRXZlbnQpID0+IHtcblx0XHRcdFx0Y29uc3Qgb05ld1ZhbHVlID0gKG9FdmVudC5nZXRTb3VyY2UoKSBhcyBQcm9wZXJ0eUJpbmRpbmcpLmdldEV4dGVybmFsVmFsdWUoKTtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNQcm9wZXJ0eSwgb05ld1ZhbHVlKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fSxcblxuXHRfc2V0QWN0aW9uRW5hYmxlbWVudEZvclRhYmxlOiBmdW5jdGlvbiAoXG5cdFx0b1NlbGVjdGVkQ29udGV4dDogVjRDb250ZXh0IHwgdW5kZWZpbmVkLFxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0c0FjdGlvbjogc3RyaW5nLFxuXHRcdHNQcm9wZXJ0eTogc3RyaW5nLFxuXHRcdGFSZXF1ZXN0UHJvbWlzZXM6IFByb21pc2U8X1JlcXVlc3RlZFByb3BlcnR5PltdXG5cdCkge1xuXHRcdC8vIFJlc2V0IGFsbCBwcm9wZXJ0aWVzIGJlZm9yZSBjb21wdXRhdGlvblxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgZHluYW1pY0FjdGlvbnMvJHtzQWN0aW9ufWAsIHtcblx0XHRcdGJFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFBcHBsaWNhYmxlOiBbXSxcblx0XHRcdGFOb3RBcHBsaWNhYmxlOiBbXVxuXHRcdH0pO1xuXHRcdC8vIE5vdGUgdGhhdCBub24gZHluYW1pYyBhY3Rpb25zIGFyZSBub3QgcHJvY2Vzc2VkIGhlcmUuIFRoZXkgYXJlIGVuYWJsZWQgYmVjYXVzZVxuXHRcdC8vIG9uZSBvciBtb3JlIGFyZSBzZWxlY3RlZCBhbmQgdGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBjb25kaXRpb24gaW4gdGhlIHRlbXBsYXRpbmdcblx0XHQvLyBpcyB0aGVuIHVuZGVmaW5lZCBhbmQgdGh1cyB0aGUgYnV0dG9uIHRha2VzIHRoZSBkZWZhdWx0IGVuYWJsaW5nLCB3aGljaCBpcyB0cnVlIVxuXHRcdGNvbnN0IGFBcHBsaWNhYmxlID0gW10sXG5cdFx0XHRhTm90QXBwbGljYWJsZSA9IFtdLFxuXHRcdFx0c0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCA9IGAke29JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQYXRoKCl9L2R5bmFtaWNBY3Rpb25zLyR7c0FjdGlvbn0vYkVuYWJsZWRgO1xuXHRcdGlmICh0eXBlb2Ygc1Byb3BlcnR5ID09PSBcIm9iamVjdFwiICYmIHNQcm9wZXJ0eSAhPT0gbnVsbCAmJiBzUHJvcGVydHkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0aWYgKG9TZWxlY3RlZENvbnRleHQpIHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPjtcblx0XHRcdFx0Y29uc3Qgb1RyYW5zZm9ybWVkQmluZGluZyA9IHRyYW5zZm9ybVJlY3Vyc2l2ZWx5KFxuXHRcdFx0XHRcdHNQcm9wZXJ0eSxcblx0XHRcdFx0XHRcIlBhdGhJbk1vZGVsXCIsXG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3AtZnVuY1xuXHRcdFx0XHRcdGZ1bmN0aW9uIChvQmluZGluZ0V4cHJlc3Npb246IFBhdGhJbk1vZGVsRXhwcmVzc2lvbjxQcmltaXRpdmVUeXBlPikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIG9Db250ZXh0RGF0YSA/IGNvbnN0YW50KG9Db250ZXh0RGF0YVtvQmluZGluZ0V4cHJlc3Npb24ucGF0aF0pIDogY29uc3RhbnQoZmFsc2UpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCBzUmVzdWx0ID0gY29tcGlsZUV4cHJlc3Npb24ob1RyYW5zZm9ybWVkQmluZGluZyk7XG5cdFx0XHRcdGlmIChzUmVzdWx0ID09PSBcInRydWVcIikge1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRNb2RlbCgpLnNldFByb3BlcnR5KHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgsIHRydWUpO1xuXHRcdFx0XHRcdGFBcHBsaWNhYmxlLnB1c2gob1NlbGVjdGVkQ29udGV4dCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0YU5vdEFwcGxpY2FibGUucHVzaChvU2VsZWN0ZWRDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Q29tbW9uVXRpbHMuc2V0RHluYW1pY0FjdGlvbkNvbnRleHRzKG9JbnRlcm5hbE1vZGVsQ29udGV4dCwgc0FjdGlvbiwgYUFwcGxpY2FibGUsIGFOb3RBcHBsaWNhYmxlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dD8uZ2V0T2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlVHlwZT47XG5cdFx0XHRpZiAoc1Byb3BlcnR5ID09PSBudWxsICYmICEhb0NvbnRleHREYXRhW2AjJHtzQWN0aW9ufWBdKSB7XG5cdFx0XHRcdC8vbG9vayBmb3IgYWN0aW9uIGFkdmVydGlzZW1lbnQgaWYgcHJlc2VudCBhbmQgaXRzIHZhbHVlIGlzIG5vdCBudWxsXG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRNb2RlbCgpLnNldFByb3BlcnR5KHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgsIHRydWUpO1xuXHRcdFx0fSBlbHNlIGlmIChvU2VsZWN0ZWRDb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Ly8gQ29sbGVjdCBwcm9taXNlcyB0byByZXRyaWV2ZSBzaW5nbGV0b24gb3Igbm9ybWFsIHByb3BlcnR5IHZhbHVlIGFzeW5jaHJvbm91c2x5XG5cdFx0XHRcdGFSZXF1ZXN0UHJvbWlzZXMucHVzaChDb21tb25VdGlscy5yZXF1ZXN0UHJvcGVydHkob1NlbGVjdGVkQ29udGV4dCwgc0FjdGlvbiwgc1Byb3BlcnR5LCBzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBhUmVxdWVzdFByb21pc2VzO1xuXHR9XG59O1xuZXhwb3J0IGRlZmF1bHQgQWN0aW9uUnVudGltZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7OztFQWtCQSxJQUFNQSxhQUFhLEdBQUc7SUFDckI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0NDLG1CQUFtQixFQUFFLFVBQ3BCQyxxQkFBMkMsRUFDM0NDLDRCQUFvRCxFQUNwREMsaUJBQThCLEVBQzlCQyxRQUFnQixFQUNmO01BQ0QsSUFBTUMsU0FBUyxHQUFHLEVBQUU7TUFDcEIsS0FBSyxJQUFNQyxPQUFPLElBQUlKLDRCQUE0QixFQUFFO1FBQ25ELElBQUlLLGdCQUErQyxHQUFHLEVBQUU7UUFDeEROLHFCQUFxQixDQUFDTyxXQUFXLENBQUNGLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDakQsSUFBTUcsU0FBUyxHQUFHUCw0QkFBNEIsQ0FBQ0ksT0FBTyxDQUFDO1FBQ3ZELEtBQUssSUFBSUksQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHUCxpQkFBaUIsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtVQUNsRCxJQUFNRSxnQkFBZ0IsR0FBR1QsaUJBQWlCLENBQUNPLENBQUMsQ0FBQztVQUM3QyxJQUFJRSxnQkFBZ0IsRUFBRTtZQUNyQixJQUFNQyxZQUFZLEdBQUdELGdC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
@@ -1,12 +1,20 @@
1
- import type { PrimitiveType } from "@sap-ux/vocabularies-types";
1
+ import type { EntitySet, PrimitiveType } from "@sap-ux/vocabularies-types";
2
+ import merge from "sap/base/util/merge";
2
3
  import type { _RequestedProperty } from "sap/fe/core/CommonUtils";
3
4
  import CommonUtils from "sap/fe/core/CommonUtils";
4
5
  import type { PathInModelExpression } from "sap/fe/core/helpers/BindingToolkit";
5
- import { compileExpression, constant, transformRecursively } from "sap/fe/core/helpers/BindingToolkit";
6
+ import { compileExpression, constant, equal, transformRecursively } from "sap/fe/core/helpers/BindingToolkit";
6
7
  import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
8
+ import ModelHelper from "sap/fe/core/helpers/ModelHelper";
9
+ import type Event from "sap/ui/base/Event";
7
10
  import type View from "sap/ui/core/mvc/View";
8
11
  import type Table from "sap/ui/mdc/Table";
12
+ import type PropertyBinding from "sap/ui/model/PropertyBinding";
9
13
  import type { ODataListBinding, V4Context } from "../../../../../../types/extension_types";
14
+ import AnyElement from "./controls/AnyElement";
15
+ import ConverterContext from "./converters/ConverterContext";
16
+ import type { BaseManifestSettings } from "./converters/ManifestSettings";
17
+ import { getEditButtonEnabled, getHiddenExpression } from "./converters/objectPage/HeaderAndFooterAction";
10
18
 
11
19
  const ActionRuntime = {
12
20
  /**
@@ -18,7 +26,7 @@ const ActionRuntime = {
18
26
  * @param oActionOperationAvailableMap Map containing the operation availability of actions
19
27
  * @param aSelectedContexts Array containing selected contexts of the chart
20
28
  * @param sControl Control name
21
- * @returns Promise.all(aPromises)
29
+ * @returns {void} Promise.All(promises)
22
30
  * @ui5-restricted
23
31
  */
24
32
  setActionEnablement: function (
@@ -93,6 +101,74 @@ const ActionRuntime = {
93
101
  }
94
102
  }
95
103
  },
104
+
105
+ updateEditButtonVisibilityAndEnablement(oView: View) {
106
+ const iViewLevel = (oView.getViewData() as BaseManifestSettings)?.viewLevel;
107
+ if ((iViewLevel as number) > 1) {
108
+ const oContext = oView.getBindingContext() as V4Context;
109
+ const oAppComponent = CommonUtils.getAppComponent(oView);
110
+ const sMetaPath = ModelHelper.getMetaPathForContext(oContext);
111
+ const sEntitySet = ModelHelper.getRootEntitySetPath(sMetaPath);
112
+ const metaContext = oContext?.getModel()?.getMetaModel()?.getContext(oContext?.getPath());
113
+ const converterContext = ConverterContext?.createConverterContextForMacro(
114
+ sEntitySet,
115
+ metaContext,
116
+ oAppComponent.getDiagnostics(),
117
+ merge,
118
+ undefined
119
+ );
120
+ const entitySet = converterContext.getEntitySet();
121
+ const entityType = converterContext.getEntityType();
122
+ let updateHidden;
123
+ //Find the Update Hidden of the root entity set and bind the property to AnyElement, any changes in the path of the root UpdateHidden will be updated via the property, internal model context is updated based on the property
124
+ const bUpdateHidden =
125
+ entitySet && !ModelHelper.isSingleton(entitySet) && (entitySet as EntitySet).annotations.UI?.UpdateHidden?.valueOf();
126
+ if (bUpdateHidden !== true) {
127
+ updateHidden = ModelHelper.isUpdateHidden(entitySet, entityType);
128
+ }
129
+ //Find the operation available property of the root edit configuration and fetch the property using AnyElement
130
+ const sEditEnableBinding = getEditButtonEnabled(converterContext, undefined);
131
+ const draftRootPath = ModelHelper.getDraftRootPath(oContext);
132
+ const sStickyRootPath = ModelHelper.getStickyRootPath(oContext);
133
+ const sPath = draftRootPath || sStickyRootPath;
134
+ const oInternalModelContext = oView.getBindingContext("internal") as InternalModelContext;
135
+ if (sPath) {
136
+ const oRootContext = oView.getModel().bindContext(sPath).getBoundContext() as V4Context;
137
+ if (updateHidden !== undefined) {
138
+ const sHiddenExpression = compileExpression(equal(getHiddenExpression(converterContext, updateHidden), false));
139
+ this.updateEditModelContext(sHiddenExpression, oView, oRootContext, "rootEditVisible", oInternalModelContext);
140
+ }
141
+ if (sEditEnableBinding) {
142
+ this.updateEditModelContext(sEditEnableBinding, oView, oRootContext, "rootEditEnabled", oInternalModelContext);
143
+ }
144
+ }
145
+ }
146
+ },
147
+
148
+ updateEditModelContext: function (
149
+ sBindingExpression: string | undefined,
150
+ oView: View,
151
+ oRootContext: V4Context,
152
+ sProperty: string,
153
+ oInternalModelContext: InternalModelContext
154
+ ) {
155
+ if (sBindingExpression) {
156
+ const oHiddenElement = new AnyElement({ anyText: sBindingExpression });
157
+ oHiddenElement.setBindingContext(null);
158
+ oView.addDependent(oHiddenElement);
159
+ oHiddenElement.getBinding("anyText");
160
+ const oContext = oHiddenElement
161
+ .getModel()
162
+ ?.bindContext(oRootContext.getPath(), oRootContext, { $$groupId: "$auto.Heroes" })
163
+ ?.getBoundContext();
164
+ oHiddenElement.setBindingContext(oContext);
165
+ oHiddenElement?.getBinding("anyText")?.attachChange((oEvent: Event) => {
166
+ const oNewValue = (oEvent.getSource() as PropertyBinding).getExternalValue();
167
+ oInternalModelContext.setProperty(sProperty, oNewValue);
168
+ });
169
+ }
170
+ },
171
+
96
172
  _setActionEnablementForTable: function (
97
173
  oSelectedContext: V4Context | undefined,
98
174
  oInternalModelContext: InternalModelContext,