@sapui5/sap.fe.core 1.108.2 → 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 (359) 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 +72 -27
  7. package/src/sap/fe/core/ActionRuntime.ts +104 -21
  8. package/src/sap/fe/core/AppComponent.js +102 -120
  9. package/src/sap/fe/core/AppComponent.ts +148 -45
  10. package/src/sap/fe/core/AppStateHandler.js +105 -91
  11. package/src/sap/fe/core/AppStateHandler.ts +85 -23
  12. package/src/sap/fe/core/BaseController.js +5 -20
  13. package/src/sap/fe/core/BaseController.ts +11 -2
  14. package/src/sap/fe/core/CommonUtils.js +770 -1079
  15. package/src/sap/fe/core/CommonUtils.ts +750 -491
  16. package/src/sap/fe/core/ExtensionAPI.js +69 -96
  17. package/src/sap/fe/core/ExtensionAPI.ts +15 -17
  18. package/src/sap/fe/core/PageController.js +21 -46
  19. package/src/sap/fe/core/PageController.ts +11 -2
  20. package/src/sap/fe/core/TemplateComponent.js +6 -51
  21. package/src/sap/fe/core/TemplateComponent.ts +27 -16
  22. package/src/sap/fe/core/TemplateModel.js +18 -24
  23. package/src/sap/fe/core/TemplateModel.ts +25 -6
  24. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +8 -23
  25. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +5 -4
  26. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +146 -180
  27. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +144 -57
  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 +436 -556
  32. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +288 -157
  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 +407 -596
  37. package/src/sap/fe/core/controllerextensions/EditFlow.ts +163 -56
  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 +65 -32
  44. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +96 -198
  45. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +4 -5
  46. package/src/sap/fe/core/controllerextensions/InternalRouting.js +134 -291
  47. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +21 -12
  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/MassEdit.ts +3 -2
  52. package/src/sap/fe/core/controllerextensions/MessageHandler.js +39 -52
  53. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +26 -7
  54. package/src/sap/fe/core/controllerextensions/PageReady.js +81 -119
  55. package/src/sap/fe/core/controllerextensions/PageReady.ts +36 -15
  56. package/src/sap/fe/core/controllerextensions/Paginator.js +16 -51
  57. package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -3
  58. package/src/sap/fe/core/controllerextensions/Placeholder.js +7 -33
  59. package/src/sap/fe/core/controllerextensions/Routing.js +24 -32
  60. package/src/sap/fe/core/controllerextensions/Routing.ts +6 -1
  61. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  62. package/src/sap/fe/core/controllerextensions/Share.js +53 -98
  63. package/src/sap/fe/core/controllerextensions/Share.ts +6 -3
  64. package/src/sap/fe/core/controllerextensions/SideEffects.js +103 -174
  65. package/src/sap/fe/core/controllerextensions/SideEffects.ts +37 -22
  66. package/src/sap/fe/core/controllerextensions/ViewState.js +341 -276
  67. package/src/sap/fe/core/controllerextensions/ViewState.ts +236 -84
  68. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +6 -22
  69. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -2
  70. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +66 -88
  71. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +64 -17
  72. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +28 -34
  73. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +22 -1
  74. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +69 -65
  75. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +31 -12
  76. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +15 -13
  77. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +273 -906
  78. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +142 -420
  79. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +49 -115
  80. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +12 -7
  81. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +70 -89
  82. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +313 -320
  83. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +582 -683
  84. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +507 -386
  85. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +111 -102
  86. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +102 -79
  87. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +689 -154
  88. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +866 -31
  89. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +24 -101
  90. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +5 -5
  91. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +91 -217
  92. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +3 -20
  93. package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +1 -0
  94. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +46 -46
  95. package/src/sap/fe/core/controls/Any.js +1 -1
  96. package/src/sap/fe/core/controls/AnyElement.js +1 -1
  97. package/src/sap/fe/core/controls/CommandExecution.js +4 -26
  98. package/src/sap/fe/core/controls/ConditionalWrapper.js +16 -33
  99. package/src/sap/fe/core/controls/ConditionalWrapper.ts +16 -2
  100. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +41 -94
  101. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +1 -1
  102. package/src/sap/fe/core/controls/CustomQuickViewPage.js +5 -34
  103. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +5 -7
  104. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +7 -7
  105. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +56 -58
  106. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +53 -33
  107. package/src/sap/fe/core/controls/FieldWrapper.js +6 -49
  108. package/src/sap/fe/core/controls/FileWrapper.js +51 -136
  109. package/src/sap/fe/core/controls/FileWrapper.ts +25 -29
  110. package/src/sap/fe/core/controls/FilterBar.js +19 -54
  111. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -22
  112. package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
  113. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -5
  114. package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +2 -2
  115. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +24 -46
  116. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +14 -41
  117. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +4 -4
  118. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +26 -67
  119. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -20
  120. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +12 -48
  121. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +17 -46
  122. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -3
  123. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +1 -0
  124. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +6 -78
  125. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +4 -4
  126. package/src/sap/fe/core/converters/ConverterContext.js +44 -98
  127. package/src/sap/fe/core/converters/ConverterContext.ts +1 -1
  128. package/src/sap/fe/core/converters/ManifestSettings.js +1 -20
  129. package/src/sap/fe/core/converters/ManifestSettings.ts +16 -9
  130. package/src/sap/fe/core/converters/ManifestWrapper.js +97 -158
  131. package/src/sap/fe/core/converters/ManifestWrapper.ts +4 -0
  132. package/src/sap/fe/core/converters/MetaModelConverter.js +28 -167
  133. package/src/sap/fe/core/converters/MetaModelConverter.ts +9 -3
  134. package/src/sap/fe/core/converters/TemplateConverter.js +10 -22
  135. package/src/sap/fe/core/converters/TemplateConverter.ts +10 -7
  136. package/src/sap/fe/core/converters/annotations/DataField.js +88 -132
  137. package/src/sap/fe/core/converters/annotations/DataField.ts +90 -38
  138. package/src/sap/fe/core/converters/common/AnnotationConverter.js +57 -379
  139. package/src/sap/fe/core/converters/controls/Common/Action.js +45 -115
  140. package/src/sap/fe/core/converters/controls/Common/Action.ts +17 -5
  141. package/src/sap/fe/core/converters/controls/Common/Chart.js +20 -73
  142. package/src/sap/fe/core/converters/controls/Common/Chart.ts +21 -14
  143. package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -9
  144. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +40 -94
  145. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +44 -31
  146. package/src/sap/fe/core/converters/controls/Common/Form.js +26 -63
  147. package/src/sap/fe/core/converters/controls/Common/Form.ts +24 -10
  148. package/src/sap/fe/core/converters/controls/Common/KPI.js +13 -63
  149. package/src/sap/fe/core/converters/controls/Common/Table.js +368 -707
  150. package/src/sap/fe/core/converters/controls/Common/Table.ts +308 -197
  151. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +54 -109
  152. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +15 -9
  153. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +69 -210
  154. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +23 -16
  155. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +12 -80
  156. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +3 -1
  157. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -19
  158. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +45 -136
  159. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +10 -10
  160. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +82 -173
  161. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +48 -22
  162. package/src/sap/fe/core/converters/helpers/Aggregation.js +24 -66
  163. package/src/sap/fe/core/converters/helpers/Aggregation.ts +3 -7
  164. package/src/sap/fe/core/converters/helpers/BindingHelper.js +9 -19
  165. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +0 -1
  166. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +20 -48
  167. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +5 -1
  168. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +12 -51
  169. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +13 -11
  170. package/src/sap/fe/core/converters/helpers/ID.js +3 -17
  171. package/src/sap/fe/core/converters/helpers/ID.ts +2 -3
  172. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -6
  173. package/src/sap/fe/core/converters/helpers/Key.js +10 -19
  174. package/src/sap/fe/core/converters/helpers/Key.ts +3 -3
  175. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +2 -20
  176. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +2 -37
  177. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +126 -131
  178. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +112 -31
  179. package/src/sap/fe/core/converters/templates/ListReportConverter.js +67 -131
  180. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +58 -27
  181. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +106 -183
  182. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +73 -104
  183. package/src/sap/fe/core/designtime/AppComponent.designtime.js +74 -67
  184. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +77 -69
  185. package/src/sap/fe/core/formatters/CollaborationFormatter.js +20 -29
  186. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +21 -0
  187. package/src/sap/fe/core/formatters/FPMFormatter.js +3 -7
  188. package/src/sap/fe/core/formatters/KPIFormatter.js +5 -13
  189. package/src/sap/fe/core/formatters/StandardFormatter.js +3 -18
  190. package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -2
  191. package/src/sap/fe/core/formatters/TableFormatter.js +87 -53
  192. package/src/sap/fe/core/formatters/TableFormatter.ts +96 -9
  193. package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -4
  194. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -37
  195. package/src/sap/fe/core/fpm/Component.js +2 -17
  196. package/src/sap/fe/core/helpers/AnnotationEnum.js +10 -20
  197. package/src/sap/fe/core/helpers/AnnotationEnum.ts +6 -6
  198. package/src/sap/fe/core/helpers/AppStartupHelper.js +16 -52
  199. package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
  200. package/src/sap/fe/core/helpers/BindingToolkit.js +106 -364
  201. package/src/sap/fe/core/helpers/BindingToolkit.ts +30 -7
  202. package/src/sap/fe/core/helpers/ClassSupport.js +16 -97
  203. package/src/sap/fe/core/helpers/ClassSupport.ts +7 -4
  204. package/src/sap/fe/core/helpers/DeleteHelper.js +621 -0
  205. package/src/sap/fe/core/helpers/DeleteHelper.ts +796 -0
  206. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -12
  207. package/src/sap/fe/core/helpers/EditState.js +2 -5
  208. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -10
  209. package/src/sap/fe/core/helpers/FPMHelper.js +3 -8
  210. package/src/sap/fe/core/helpers/FPMHelper.ts +2 -1
  211. package/src/sap/fe/core/helpers/KeepAliveHelper.js +8 -38
  212. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -5
  213. package/src/sap/fe/core/helpers/LoaderUtils.js +1 -7
  214. package/src/sap/fe/core/helpers/MassEditHelper.js +177 -289
  215. package/src/sap/fe/core/helpers/MassEditHelper.ts +124 -91
  216. package/src/sap/fe/core/helpers/MessageStrip.js +12 -28
  217. package/src/sap/fe/core/helpers/MessageStrip.ts +7 -7
  218. package/src/sap/fe/core/helpers/ModelHelper.js +62 -103
  219. package/src/sap/fe/core/helpers/ModelHelper.ts +58 -20
  220. package/src/sap/fe/core/helpers/PasteHelper.js +28 -51
  221. package/src/sap/fe/core/helpers/PasteHelper.ts +10 -9
  222. package/src/sap/fe/core/helpers/SemanticDateOperators.js +112 -136
  223. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +111 -111
  224. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +5 -11
  225. package/src/sap/fe/core/helpers/SideEffectsHelper.js +26 -32
  226. package/src/sap/fe/core/helpers/StableIdHelper.js +166 -218
  227. package/src/sap/fe/core/helpers/StableIdHelper.ts +175 -191
  228. package/src/sap/fe/core/helpers/Synchronization.js +1 -8
  229. package/src/sap/fe/core/helpers/ToES6Promise.js +1 -4
  230. package/src/sap/fe/core/helpers/TypeGuards.js +22 -0
  231. package/src/sap/fe/core/helpers/TypeGuards.ts +9 -0
  232. package/src/sap/fe/core/jsx-runtime/Fragment.js +1 -3
  233. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +3 -23
  234. package/src/sap/fe/core/jsx-runtime/jsx-control.js +3 -23
  235. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +2 -1
  236. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +4 -16
  237. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +1 -1
  238. package/src/sap/fe/core/jsx-runtime/jsx.js +2 -5
  239. package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
  240. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +4 -27
  241. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
  242. package/src/sap/fe/core/library.js +9 -48
  243. package/src/sap/fe/core/library.support.js +3 -2
  244. package/src/sap/fe/core/library.support.ts +3 -1
  245. package/src/sap/fe/core/library.ts +3 -8
  246. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +74 -39
  247. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +71 -26
  248. package/src/sap/fe/core/messagebundle.properties +113 -67
  249. package/src/sap/fe/core/messagebundle_ar.properties +20 -3
  250. package/src/sap/fe/core/messagebundle_bg.properties +22 -5
  251. package/src/sap/fe/core/messagebundle_ca.properties +21 -4
  252. package/src/sap/fe/core/messagebundle_cs.properties +21 -4
  253. package/src/sap/fe/core/messagebundle_cy.properties +22 -5
  254. package/src/sap/fe/core/messagebundle_da.properties +20 -3
  255. package/src/sap/fe/core/messagebundle_de.properties +38 -21
  256. package/src/sap/fe/core/messagebundle_el.properties +20 -3
  257. package/src/sap/fe/core/messagebundle_en.properties +38 -21
  258. package/src/sap/fe/core/messagebundle_en_GB.properties +20 -3
  259. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +41 -28
  260. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +41 -24
  261. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +42 -29
  262. package/src/sap/fe/core/messagebundle_es.properties +40 -23
  263. package/src/sap/fe/core/messagebundle_es_MX.properties +20 -3
  264. package/src/sap/fe/core/messagebundle_et.properties +20 -3
  265. package/src/sap/fe/core/messagebundle_fi.properties +20 -3
  266. package/src/sap/fe/core/messagebundle_fr.properties +21 -4
  267. package/src/sap/fe/core/messagebundle_fr_CA.properties +22 -5
  268. package/src/sap/fe/core/messagebundle_hi.properties +20 -3
  269. package/src/sap/fe/core/messagebundle_hr.properties +22 -5
  270. package/src/sap/fe/core/messagebundle_hu.properties +20 -3
  271. package/src/sap/fe/core/messagebundle_id.properties +20 -3
  272. package/src/sap/fe/core/messagebundle_it.properties +23 -6
  273. package/src/sap/fe/core/messagebundle_iw.properties +20 -3
  274. package/src/sap/fe/core/messagebundle_ja.properties +22 -5
  275. package/src/sap/fe/core/messagebundle_kk.properties +21 -4
  276. package/src/sap/fe/core/messagebundle_ko.properties +20 -3
  277. package/src/sap/fe/core/messagebundle_lt.properties +20 -3
  278. package/src/sap/fe/core/messagebundle_lv.properties +20 -3
  279. package/src/sap/fe/core/messagebundle_ms.properties +20 -3
  280. package/src/sap/fe/core/messagebundle_nl.properties +20 -3
  281. package/src/sap/fe/core/messagebundle_no.properties +20 -3
  282. package/src/sap/fe/core/messagebundle_pl.properties +21 -4
  283. package/src/sap/fe/core/messagebundle_pt.properties +20 -3
  284. package/src/sap/fe/core/messagebundle_pt_PT.properties +20 -3
  285. package/src/sap/fe/core/messagebundle_ro.properties +20 -3
  286. package/src/sap/fe/core/messagebundle_ru.properties +20 -3
  287. package/src/sap/fe/core/messagebundle_sh.properties +20 -3
  288. package/src/sap/fe/core/messagebundle_sk.properties +20 -3
  289. package/src/sap/fe/core/messagebundle_sl.properties +26 -9
  290. package/src/sap/fe/core/messagebundle_sv.properties +20 -3
  291. package/src/sap/fe/core/messagebundle_th.properties +21 -4
  292. package/src/sap/fe/core/messagebundle_tr.properties +20 -3
  293. package/src/sap/fe/core/messagebundle_uk.properties +23 -6
  294. package/src/sap/fe/core/messagebundle_vi.properties +20 -3
  295. package/src/sap/fe/core/messagebundle_zh_CN.properties +20 -3
  296. package/src/sap/fe/core/messagebundle_zh_TW.properties +20 -3
  297. package/src/sap/fe/core/operationsHelper.js +74 -101
  298. package/src/sap/fe/core/operationsHelper.ts +113 -44
  299. package/src/sap/fe/core/rootView/Fcl.controller.js +151 -228
  300. package/src/sap/fe/core/rootView/Fcl.controller.ts +90 -15
  301. package/src/sap/fe/core/rootView/Fcl.view.xml +1 -8
  302. package/src/sap/fe/core/rootView/NavContainer.controller.js +41 -78
  303. package/src/sap/fe/core/rootView/NavContainer.controller.ts +32 -38
  304. package/src/sap/fe/core/rootView/RootViewBaseController.js +110 -181
  305. package/src/sap/fe/core/rootView/RootViewBaseController.ts +37 -17
  306. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -18
  307. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +13 -52
  308. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -22
  309. package/src/sap/fe/core/services/NavigationServiceFactory.js +45 -87
  310. package/src/sap/fe/core/services/NavigationServiceFactory.ts +17 -10
  311. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -28
  312. package/src/sap/fe/core/services/RoutingServiceFactory.js +92 -250
  313. package/src/sap/fe/core/services/RoutingServiceFactory.ts +8 -12
  314. package/src/sap/fe/core/services/ShellServicesFactory.js +122 -251
  315. package/src/sap/fe/core/services/ShellServicesFactory.ts +19 -4
  316. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +188 -273
  317. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +143 -154
  318. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +37 -135
  319. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +59 -94
  320. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -16
  321. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
  322. package/src/sap/fe/core/support/AnnotationIssue.support.js +6 -9
  323. package/src/sap/fe/core/support/AnnotationIssue.support.ts +4 -4
  324. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +6 -9
  325. package/src/sap/fe/core/support/CollectionFacetMissingID.support.ts +3 -3
  326. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +6 -9
  327. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +3 -3
  328. package/src/sap/fe/core/support/CommonHelper.js +7 -16
  329. package/src/sap/fe/core/support/Diagnostics.js +1 -10
  330. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +6 -9
  331. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +3 -3
  332. package/src/sap/fe/core/templating/CommonFormatters.js +1 -15
  333. package/src/sap/fe/core/templating/CriticalityFormatters.js +4 -20
  334. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -20
  335. package/src/sap/fe/core/templating/DataModelPathHelper.js +49 -121
  336. package/src/sap/fe/core/templating/DataModelPathHelper.ts +41 -31
  337. package/src/sap/fe/core/templating/DisplayModeFormatter.js +8 -15
  338. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +7 -7
  339. package/src/sap/fe/core/templating/EntitySetHelper.js +6 -31
  340. package/src/sap/fe/core/templating/FieldControlHelper.js +4 -21
  341. package/src/sap/fe/core/templating/FieldControlHelper.ts +1 -1
  342. package/src/sap/fe/core/templating/FilterHelper.js +40 -111
  343. package/src/sap/fe/core/templating/FilterHelper.ts +20 -16
  344. package/src/sap/fe/core/templating/FilterTemplating.js +1 -19
  345. package/src/sap/fe/core/templating/FilterTemplating.ts +1 -1
  346. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -34
  347. package/src/sap/fe/core/templating/PropertyHelper.js +120 -163
  348. package/src/sap/fe/core/templating/PropertyHelper.ts +69 -33
  349. package/src/sap/fe/core/templating/SemanticObjectHelper.js +46 -0
  350. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +34 -0
  351. package/src/sap/fe/core/templating/UIFormatters.js +40 -180
  352. package/src/sap/fe/core/templating/UIFormatters.ts +37 -43
  353. package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -14
  354. package/src/sap/fe/core/type/Email.js +1 -10
  355. package/src/sap/fe/core/type/TypeUtil.js +1 -11
  356. package/ui5.yaml +0 -1
  357. package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +0 -35
  358. package/src/sap/fe/core/helpers/LRMessageStrip.js +0 -234
  359. package/src/sap/fe/core/helpers/LRMessageStrip.ts +0 -216
@@ -3,7 +3,7 @@ import type BaseController from "sap/fe/core/BaseController";
3
3
  import type { KPIChartDefinition, KPIDefinition, NavigationInfo } from "sap/fe/core/converters/controls/Common/KPI";
4
4
  import type { FilterDefinition, RangeDefinition } from "sap/fe/core/converters/helpers/SelectionVariantHelper";
5
5
  import { MessageType } from "sap/fe/core/formatters/TableFormatterTypes";
6
- import type ListReportController from "sap/fe/templates/ListReport/ListReportController.controller";
6
+ import PageController from "sap/fe/core/PageController";
7
7
  import type GenericTag from "sap/m/GenericTag";
8
8
  import Popover from "sap/m/Popover";
9
9
  import Core from "sap/ui/core/Core";
@@ -411,14 +411,14 @@ function getScatterBubbleChartFeeds(chartDefinition: KPIChartDefinition): { uid:
411
411
  const yMeasure = axis2Measures.shift() || axis1Measures.shift() || axis3Measures.shift() || otherMeasures.shift() || "";
412
412
  const res = [
413
413
  {
414
- "uid": "valueAxis",
415
- "type": "Measure",
416
- "values": [xMeasure]
414
+ uid: "valueAxis",
415
+ type: "Measure",
416
+ values: [xMeasure]
417
417
  },
418
418
  {
419
- "uid": "valueAxis2",
420
- "type": "Measure",
421
- "values": [yMeasure]
419
+ uid: "valueAxis2",
420
+ type: "Measure",
421
+ values: [yMeasure]
422
422
  }
423
423
  ];
424
424
 
@@ -426,26 +426,26 @@ function getScatterBubbleChartFeeds(chartDefinition: KPIChartDefinition): { uid:
426
426
  // Measure for the size of the bubble: first measure for Axis3, or remaining measure for Axis1/Axis2 if not found
427
427
  const sizeMeasure = axis3Measures.shift() || axis1Measures.shift() || axis2Measures.shift() || otherMeasures.shift() || "";
428
428
  res.push({
429
- "uid": "bubbleWidth",
430
- "type": "Measure",
431
- "values": [sizeMeasure]
429
+ uid: "bubbleWidth",
430
+ type: "Measure",
431
+ values: [sizeMeasure]
432
432
  });
433
433
  }
434
434
 
435
435
  // Color (optional)
436
436
  if (seriesDimensions.length) {
437
437
  res.push({
438
- "uid": "color",
439
- "type": "Dimension",
440
- "values": seriesDimensions
438
+ uid: "color",
439
+ type: "Dimension",
440
+ values: seriesDimensions
441
441
  });
442
442
  }
443
443
  // Shape (optional)
444
444
  if (shapeDimension) {
445
445
  res.push({
446
- "uid": "shape",
447
- "type": "Dimension",
448
- "values": [shapeDimension.label]
446
+ uid: "shape",
447
+ type: "Dimension",
448
+ values: [shapeDimension.label]
449
449
  });
450
450
  }
451
451
  return res;
@@ -458,14 +458,14 @@ function getChartFeeds(chartDefinition: KPIChartDefinition): { uid: string; type
458
458
  case "Donut":
459
459
  res = [
460
460
  {
461
- "uid": "size",
462
- "type": "Measure",
463
- "values": filterMap(chartDefinition.measures)
461
+ uid: "size",
462
+ type: "Measure",
463
+ values: filterMap(chartDefinition.measures)
464
464
  },
465
465
  {
466
- "uid": "color",
467
- "type": "Dimension",
468
- "values": filterMap(chartDefinition.dimensions)
466
+ uid: "color",
467
+ type: "Dimension",
468
+ values: filterMap(chartDefinition.dimensions)
469
469
  }
470
470
  ];
471
471
  break;
@@ -478,24 +478,24 @@ function getChartFeeds(chartDefinition: KPIChartDefinition): { uid: string; type
478
478
  case "vertical_bullet":
479
479
  res = [
480
480
  {
481
- "uid": "actualValues",
482
- "type": "Measure",
483
- "values": filterMap(chartDefinition.measures, [undefined, "Axis1"])
481
+ uid: "actualValues",
482
+ type: "Measure",
483
+ values: filterMap(chartDefinition.measures, [undefined, "Axis1"])
484
484
  },
485
485
  {
486
- "uid": "targetValues",
487
- "type": "Measure",
488
- "values": filterMap(chartDefinition.measures, ["Axis2"])
486
+ uid: "targetValues",
487
+ type: "Measure",
488
+ values: filterMap(chartDefinition.measures, ["Axis2"])
489
489
  },
490
490
  {
491
- "uid": "categoryAxis",
492
- "type": "Dimension",
493
- "values": filterMap(chartDefinition.dimensions, [undefined, "Category"])
491
+ uid: "categoryAxis",
492
+ type: "Dimension",
493
+ values: filterMap(chartDefinition.dimensions, [undefined, "Category"])
494
494
  },
495
495
  {
496
- "uid": "color",
497
- "type": "Dimension",
498
- "values": filterMap(chartDefinition.dimensions, ["Series"])
496
+ uid: "color",
497
+ type: "Dimension",
498
+ values: filterMap(chartDefinition.dimensions, ["Series"])
499
499
  }
500
500
  ];
501
501
  break;
@@ -503,19 +503,19 @@ function getChartFeeds(chartDefinition: KPIChartDefinition): { uid: string; type
503
503
  default:
504
504
  res = [
505
505
  {
506
- "uid": "valueAxis",
507
- "type": "Measure",
508
- "values": filterMap(chartDefinition.measures)
506
+ uid: "valueAxis",
507
+ type: "Measure",
508
+ values: filterMap(chartDefinition.measures)
509
509
  },
510
510
  {
511
- "uid": "categoryAxis",
512
- "type": "Dimension",
513
- "values": filterMap(chartDefinition.dimensions, [undefined, "Category"])
511
+ uid: "categoryAxis",
512
+ type: "Dimension",
513
+ values: filterMap(chartDefinition.dimensions, [undefined, "Category"])
514
514
  },
515
515
  {
516
- "uid": "color",
517
- "type": "Dimension",
518
- "values": filterMap(chartDefinition.dimensions, ["Series"])
516
+ uid: "color",
517
+ type: "Dimension",
518
+ values: filterMap(chartDefinition.dimensions, ["Series"])
519
519
  }
520
520
  ];
521
521
  }
@@ -684,7 +684,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
684
684
 
685
685
  @methodOverride()
686
686
  public onInit(): void {
687
- this.aKPIDefinitions = (this.getView().getController() as ListReportController)._getPageModel()?.getProperty("/kpiDefinitions");
687
+ this.aKPIDefinitions = (this.getView().getController() as PageController)._getPageModel()?.getProperty("/kpiDefinitions");
688
688
 
689
689
  if (this.aKPIDefinitions && this.aKPIDefinitions.length) {
690
690
  const oView = this.getView();
@@ -6,19 +6,14 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
6
6
  "use strict";
7
7
 
8
8
  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2;
9
-
10
9
  var publicExtension = ClassSupport.publicExtension;
11
10
  var privateExtension = ClassSupport.privateExtension;
12
11
  var finalExtension = ClassSupport.finalExtension;
13
12
  var extensible = ClassSupport.extensible;
14
13
  var defineUI5Class = ClassSupport.defineUI5Class;
15
-
16
14
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
17
-
18
15
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
19
-
20
16
  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
21
-
22
17
  /**
23
18
  * @class Controller extension providing hooks for the mass edit in a table
24
19
  * @name sap.fe.core.controllerextensions.MassEdit
@@ -27,48 +22,41 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
27
22
  */
28
23
  var MassEdit = (_dec = defineUI5Class("sap.fe.core.controllerextensions.MassEdit"), _dec2 = publicExtension(), _dec3 = finalExtension(), _dec4 = publicExtension(), _dec5 = finalExtension(), _dec6 = privateExtension(), _dec7 = extensible(OverrideExecution.After), _dec(_class = (_class2 = /*#__PURE__*/function (_ControllerExtension) {
29
24
  _inheritsLoose(MassEdit, _ControllerExtension);
30
-
31
25
  function MassEdit() {
32
26
  return _ControllerExtension.apply(this, arguments) || this;
33
27
  }
34
-
35
28
  var _proto = MassEdit.prototype;
36
-
37
29
  _proto.getMessageDetailForNonEditable = function getMessageDetailForNonEditable(oResourceBundle, typeName, typeNamePlural) {
38
30
  var sHeader = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_HEADER"),
39
- sReasonGroup = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_REASON", [typeNamePlural]),
40
- sReasonDraft = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_REASON_DRAFT", [typeName]),
41
- sReasonNonEditable = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_REASON_NON_EDITABLE", [typeName]);
31
+ sReasonGroup = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_REASON", [typeNamePlural]),
32
+ sReasonDraft = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_REASON_DRAFT", [typeName]),
33
+ sReasonNonEditable = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE_DETAIL_REASON_NON_EDITABLE", [typeName]);
42
34
  return "<p><strong>".concat(sHeader, "</strong></p>\n") + (!!sReasonGroup && "<p>".concat(sReasonGroup, "</p>\n") + "<ul>" + (!!sReasonDraft && "<li>".concat(sReasonDraft, "</li>")) + (!!sReasonNonEditable && "<li>".concat(sReasonNonEditable, "</li>")) + "</ul>");
43
35
  };
44
-
45
36
  _proto.getResourceText = function getResourceText(exp, control) {
46
37
  var resolvedText = exp && CommonUtils.getTranslatedTextFromExpBindingString(exp, control);
47
38
  return resolvedText && resolvedText.toLocaleLowerCase();
48
39
  };
49
-
50
40
  _proto._openConfirmDialog = function _openConfirmDialog(oTable, aContexts, iSelectedContexts) {
51
41
  var _this = this;
52
-
53
42
  var iUpdatableContexts = (aContexts || []).length;
54
43
  var view = this.getView();
55
44
  return new Promise(function (resolve) {
56
45
  view.getModel("sap.fe.i18n").getResourceBundle().then(function (oResourceBundle) {
57
46
  var sEditButton = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_BUTTON_TEXT"),
58
- sCancelButton = oResourceBundle.getText("C_COMMON_OBJECT_PAGE_CANCEL"),
59
- iNonEditable = iSelectedContexts - iUpdatableContexts,
60
- entityTypePath = oTable.data("entityType"),
61
- metaModel = oTable.getModel().getMetaModel(),
62
- headerInfoAnno = metaModel.getObject("".concat(entityTypePath, "@com.sap.vocabularies.UI.v1.HeaderInfo")),
63
- typeName = _this.getResourceText(headerInfoAnno.TypeName, view) || oResourceBundle.getText("C_MASS_EDIT_DIALOG_DEFAULT_TYPENAME"),
64
- typeNamePlural = _this.getResourceText(headerInfoAnno.TypeNamePlural, view) || oResourceBundle.getText("C_MASS_EDIT_DIALOG_DEFAULT_TYPENAME_PLURAL"),
65
- sMessage = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE", [iNonEditable, iSelectedContexts, iUpdatableContexts, typeNamePlural]),
66
- sPath = oTable.data("targetCollectionPath"),
67
- oMetaModel = oTable.getModel().getMetaModel(),
68
- bIsDraft = ModelHelper.isDraftSupported(oMetaModel, sPath),
69
- bDisplayMode = oTable.data("displayModePropertyBinding") === "true",
70
- sMessageDetail = bIsDraft && bDisplayMode && _this.getMessageDetailForNonEditable(oResourceBundle, typeName, typeNamePlural);
71
-
47
+ sCancelButton = oResourceBundle.getText("C_COMMON_OBJECT_PAGE_CANCEL"),
48
+ iNonEditable = iSelectedContexts - iUpdatableContexts,
49
+ entityTypePath = oTable.data("entityType"),
50
+ metaModel = oTable.getModel().getMetaModel(),
51
+ headerInfoAnno = metaModel.getObject("".concat(entityTypePath, "@com.sap.vocabularies.UI.v1.HeaderInfo")),
52
+ typeName = _this.getResourceText(headerInfoAnno.TypeName, view) || oResourceBundle.getText("C_MASS_EDIT_DIALOG_DEFAULT_TYPENAME"),
53
+ typeNamePlural = _this.getResourceText(headerInfoAnno.TypeNamePlural, view) || oResourceBundle.getText("C_MASS_EDIT_DIALOG_DEFAULT_TYPENAME_PLURAL"),
54
+ sMessage = oResourceBundle.getText("C_MASS_EDIT_CONFIRM_MESSAGE", [iNonEditable, iSelectedContexts, iUpdatableContexts, typeNamePlural]),
55
+ sPath = oTable.data("targetCollectionPath"),
56
+ oMetaModel = oTable.getModel().getMetaModel(),
57
+ bIsDraft = ModelHelper.isDraftSupported(oMetaModel, sPath),
58
+ bDisplayMode = oTable.data("displayModePropertyBinding") === "true",
59
+ sMessageDetail = bIsDraft && bDisplayMode && _this.getMessageDetailForNonEditable(oResourceBundle, typeName, typeNamePlural);
72
60
  MessageBox.warning(sMessage, {
73
61
  details: sMessageDetail,
74
62
  actions: [sEditButton, sCancelButton],
@@ -76,14 +64,12 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
76
64
  contentWidth: "100px",
77
65
  onClose: function (sSelection) {
78
66
  var aContextsForEdit = [];
79
-
80
67
  if (sSelection === sEditButton) {
81
68
  Log.info("Mass Edit: Confirmed to edit ", iUpdatableContexts.toString(), " selections.");
82
69
  aContextsForEdit = aContexts;
83
70
  } else if (sSelection === sCancelButton) {
84
71
  Log.info("Mass Edit: Cancelled.");
85
72
  }
86
-
87
73
  resolve(aContextsForEdit);
88
74
  }
89
75
  });
@@ -92,18 +78,16 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
92
78
  });
93
79
  });
94
80
  };
95
-
96
81
  _proto._confirmContexts = function _confirmContexts(oTable, aContexts) {
97
82
  var oInternalModelContext = oTable.getBindingContext("internal"),
98
- iSelectedContexts = +oInternalModelContext.getProperty("numberOfSelectedContexts") || 0;
83
+ iSelectedContexts = +oInternalModelContext.getProperty("numberOfSelectedContexts") || 0;
99
84
  aContexts = aContexts || [];
100
-
101
85
  if (aContexts.length && aContexts.length !== iSelectedContexts) {
102
86
  return this._openConfirmDialog(oTable, aContexts, iSelectedContexts);
103
87
  }
104
-
105
88
  return Promise.resolve(aContexts);
106
89
  }
90
+
107
91
  /**
108
92
  * The following operations are performed by method openMassEditDialog:
109
93
  * => Opens the mass edit dialog.
@@ -114,12 +98,10 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
114
98
  * @param oTable Instance of the table
115
99
  * @returns A promise that resolves on open of the mass edit dialog.
116
100
  * @private
117
- */
118
- ;
119
-
101
+ */;
120
102
  _proto.openMassEditDialog = function openMassEditDialog(oTable) {
121
103
  var oController = this.getView().getController(),
122
- pContextsForEdit = this.fetchContextsForEdit(oTable);
104
+ pContextsForEdit = this.fetchContextsForEdit(oTable);
123
105
  return pContextsForEdit.then(this._confirmContexts.bind(this, oTable)).then(function (aContexts) {
124
106
  return aContexts && aContexts.length > 0 ? MassEditHelper.createDialog(oTable, aContexts, oController) : Promise.resolve();
125
107
  }).then(function (oDialog) {
@@ -131,6 +113,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
131
113
  Log.error("Mass Edit: Something went wrong in mass edit dialog creation.", oError);
132
114
  });
133
115
  }
116
+
134
117
  /**
135
118
  * Returns a promise that resolves to the contexts for mass edit.
136
119
  *
@@ -139,18 +122,15 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/
139
122
  * @alias sap.fe.core.contrllerextensions.MassEdit#fetchContextsForEdit
140
123
  * @returns A promise to be resolved with an array of context(s) which should be considered for mass edit.
141
124
  * @private
142
- */
143
- ;
144
-
125
+ */;
145
126
  _proto.fetchContextsForEdit = function fetchContextsForEdit(oTable) {
146
127
  //To be overridden by the application
147
128
  var oInternalModelContext = oTable.getBindingContext("internal"),
148
- aSelectedContexts = oInternalModelContext.getProperty("updatableContexts") || [];
129
+ aSelectedContexts = oInternalModelContext.getProperty("updatableContexts") || [];
149
130
  return Promise.resolve(aSelectedContexts);
150
131
  };
151
-
152
132
  return MassEdit;
153
133
  }(ControllerExtension), (_applyDecoratedDescriptor(_class2.prototype, "getMessageDetailForNonEditable", [_dec2, _dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "getMessageDetailForNonEditable"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "openMassEditDialog", [_dec4, _dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "openMassEditDialog"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "fetchContextsForEdit", [_dec6, _dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "fetchContextsForEdit"), _class2.prototype)), _class2)) || _class);
154
134
  return MassEdit;
155
135
  }, false);
156
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNYXNzRWRpdCIsImRlZmluZVVJNUNsYXNzIiwicHVibGljRXh0ZW5zaW9uIiwiZmluYWxFeHRlbnNpb24iLCJwcml2YXRlRXh0ZW5zaW9uIiwiZXh0ZW5zaWJsZSIsIk92ZXJyaWRlRXhlY3V0aW9uIiwiQWZ0ZXIiLCJnZXRNZXNzYWdlRGV0YWlsRm9yTm9uRWRpdGFibGUiLCJvUmVzb3VyY2VCdW5kbGUiLCJ0eXBlTmFtZSIsInR5cGVOYW1lUGx1cmFsIiwic0hlYWRlciIsImdldFRleHQiLCJzUmVhc29uR3JvdXAiLCJzUmVhc29uRHJhZnQiLCJzUmVhc29uTm9uRWRpdGFibGUiLCJnZXRSZXNvdXJjZVRleHQiLCJleHAiLCJjb250cm9sIiwicmVzb2x2ZWRUZXh0IiwiQ29tbW9uVXRpbHMiLCJnZXRUcmFuc2xhdGVkVGV4dEZyb21FeHBCaW5kaW5nU3RyaW5nIiwidG9Mb2NhbGVMb3dlckNhc2UiLCJfb3BlbkNvbmZpcm1EaWFsb2ciLCJvVGFibGUiLCJhQ29udGV4dHMiLCJpU2VsZWN0ZWRDb250ZXh0cyIsImlVcGRhdGFibGVDb250ZXh0cyIsImxlbmd0aCIsInZpZXciLCJnZXRWaWV3IiwiUHJvbWlzZSIsInJlc29sdmUiLCJnZXRNb2RlbCIsImdldFJlc291cmNlQnVuZGxlIiwidGhlbiIsInNFZGl0QnV0dG9uIiwic0NhbmNlbEJ1dHRvbiIsImlOb25FZGl0YWJsZSIsImVudGl0eVR5cGVQYXRoIiwiZGF0YSIsIm1ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsImhlYWRlckluZm9Bbm5vIiwiZ2V0T2JqZWN0IiwiVHlwZU5hbWUiLCJUeXBlTmFtZVBsdXJhbCIsInNNZXNzYWdlIiwic1BhdGgiLCJvTWV0YU1vZGVsIiwiYklzRHJhZnQiLCJNb2RlbEhlbHBlciIsImlzRHJhZnRTdXBwb3J0ZWQiLCJiRGlzcGxheU1vZGUiLCJzTWVzc2FnZURldGFpbCIsIk1lc3NhZ2VCb3giLCJ3YXJuaW5nIiwiZGV0YWlscyIsImFjdGlvbnMiLCJlbXBoYXNpemVkQWN0aW9uIiwiY29udGVudFdpZHRoIiwib25DbG9zZSIsInNTZWxlY3Rpb24iLCJhQ29udGV4dHNGb3JFZGl0IiwiTG9nIiwiaW5mbyIsInRvU3RyaW5nIiwiY2F0Y2giLCJlcnJvciIsIl9jb25maXJtQ29udGV4dHMiLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsImdldFByb3BlcnR5Iiwib3Blbk1hc3NFZGl0RGlhbG9nIiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwicENvbnRleHRzRm9yRWRpdCIsImZldGNoQ29udGV4dHNGb3JFZGl0IiwiYmluZCIsIk1hc3NFZGl0SGVscGVyIiwiY3JlYXRlRGlhbG9nIiwib0RpYWxvZyIsImFkZERlcGVuZGVudCIsIm9wZW4iLCJvRXJyb3IiLCJhU2VsZWN0ZWRDb250ZXh0cyIsIkNvbnRyb2xsZXJFeHRlbnNpb24iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk1hc3NFZGl0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBleHRlbnNpYmxlLCBmaW5hbEV4dGVuc2lvbiwgcHJpdmF0ZUV4dGVuc2lvbiwgcHVibGljRXh0ZW5zaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTWFzc0VkaXRIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWFzc0VkaXRIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCBNZXNzYWdlQm94IGZyb20gXCJzYXAvbS9NZXNzYWdlQm94XCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgT3ZlcnJpZGVFeGVjdXRpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9PdmVycmlkZUV4ZWN1dGlvblwiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvcmVzb3VyY2UvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCIuLi9Db21tb25VdGlsc1wiO1xuXG4vKipcbiAqIEBjbGFzcyBDb250cm9sbGVyIGV4dGVuc2lvbiBwcm92aWRpbmcgaG9va3MgZm9yIHRoZSBtYXNzIGVkaXQgaW4gYSB0YWJsZVxuICogQG5hbWUgc2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuTWFzc0VkaXRcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwcml2YXRlXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLk1hc3NFZGl0XCIpXG5jbGFzcyBNYXNzRWRpdCBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0Z2V0TWVzc2FnZURldGFpbEZvck5vbkVkaXRhYmxlKG9SZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGUsIHR5cGVOYW1lOiBzdHJpbmcsIHR5cGVOYW1lUGx1cmFsOiBzdHJpbmcpIHtcblx0XHRjb25zdCBzSGVhZGVyID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DT05GSVJNX01FU1NBR0VfREVUQUlMX0hFQURFUlwiKSxcblx0XHRcdHNSZWFzb25Hcm91cCA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19NQVNTX0VESVRfQ09ORklSTV9NRVNTQUdFX0RFVEFJTF9SRUFTT05cIiwgW3R5cGVOYW1lUGx1cmFsXSksXG5cdFx0XHRzUmVhc29uRHJhZnQgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUFTU19FRElUX0NPTkZJUk1fTUVTU0FHRV9ERVRBSUxfUkVBU09OX0RSQUZUXCIsIFt0eXBlTmFtZV0pLFxuXHRcdFx0c1JlYXNvbk5vbkVkaXRhYmxlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DT05GSVJNX01FU1NBR0VfREVUQUlMX1JFQVNPTl9OT05fRURJVEFCTEVcIiwgW3R5cGVOYW1lXSk7XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0YDxwPjxzdHJvbmc+JHtzSGVhZGVyfTwvc3Ryb25nPjwvcD5cXG5gICtcblx0XHRcdCghIXNSZWFzb25Hcm91cCAmJlxuXHRcdFx0XHRgPHA+JHtzUmVhc29uR3JvdXB9PC9wPlxcbmAgK1xuXHRcdFx0XHRcdGA8dWw+YCArXG5cdFx0XHRcdFx0KCEhc1JlYXNvbkRyYWZ0ICYmIGA8bGk+JHtzUmVhc29uRHJhZnR9PC9saT5gKSArXG5cdFx0XHRcdFx0KCEhc1JlYXNvbk5vbkVkaXRhYmxlICYmIGA8bGk+JHtzUmVhc29uTm9uRWRpdGFibGV9PC9saT5gKSArXG5cdFx0XHRcdFx0YDwvdWw+YClcblx0XHQpO1xuXHR9XG5cblx0Z2V0UmVzb3VyY2VUZXh0KGV4cDogc3RyaW5nLCBjb250cm9sOiBDb250cm9sKSB7XG5cdFx0Y29uc3QgcmVzb2x2ZWRUZXh0ID0gZXhwICYmIENvbW1vblV0aWxzLmdldFRyYW5zbGF0ZWRUZXh0RnJvbUV4cEJpbmRpbmdTdHJpbmcoZXhwLCBjb250cm9sKTtcblx0XHRyZXR1cm4gcmVzb2x2ZWRUZXh0ICYmIHJlc29sdmVkVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuXHR9XG5cblx0X29wZW5Db25maXJtRGlhbG9nKG9UYWJsZTogVGFibGUsIGFDb250ZXh0czogQ29udGV4dFtdLCBpU2VsZWN0ZWRDb250ZXh0czogbnVtYmVyKSB7XG5cdFx0Y29uc3QgaVVwZGF0YWJsZUNvbnRleHRzID0gKGFDb250ZXh0cyB8fCBbXSkubGVuZ3RoO1xuXHRcdGNvbnN0IHZpZXcgPSB0aGlzLmdldFZpZXcoKTtcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXHRcdFx0KCh2aWV3LmdldE1vZGVsKFwic2FwLmZlLmkxOG5cIikgYXMgUmVzb3VyY2VNb2RlbCkuZ2V0UmVzb3VyY2VCdW5kbGUoKSBhcyBQcm9taXNlPFJlc291cmNlQnVuZGxlPilcblx0XHRcdFx0LnRoZW4oKG9SZXNvdXJjZUJ1bmRsZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHNFZGl0QnV0dG9uID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DT05GSVJNX0JVVFRPTl9URVhUXCIpLFxuXHRcdFx0XHRcdFx0c0NhbmNlbEJ1dHRvbiA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19DT01NT05fT0JKRUNUX1BBR0VfQ0FOQ0VMXCIpLFxuXHRcdFx0XHRcdFx0aU5vbkVkaXRhYmxlID0gaVNlbGVjdGVkQ29udGV4dHMgLSBpVXBkYXRhYmxlQ29udGV4dHMsXG5cdFx0XHRcdFx0XHRlbnRpdHlUeXBlUGF0aCA9IG9UYWJsZS5kYXRhKFwiZW50aXR5VHlwZVwiKSxcblx0XHRcdFx0XHRcdG1ldGFNb2RlbCA9IG9UYWJsZS5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0XHRcdFx0aGVhZGVySW5mb0Fubm8gPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2VudGl0eVR5cGVQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJJbmZvYCksXG5cdFx0XHRcdFx0XHR0eXBlTmFtZSA9XG5cdFx0XHRcdFx0XHRcdHRoaXMuZ2V0UmVzb3VyY2VUZXh0KGhlYWRlckluZm9Bbm5vLlR5cGVOYW1lLCB2aWV3KSB8fFxuXHRcdFx0XHRcdFx0XHRvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUFTU19FRElUX0RJQUxPR19ERUZBVUxUX1RZUEVOQU1FXCIpLFxuXHRcdFx0XHRcdFx0dHlwZU5hbWVQbHVyYWwgPVxuXHRcdFx0XHRcdFx0XHR0aGlzLmdldFJlc291cmNlVGV4dChoZWFkZXJJbmZvQW5uby5UeXBlTmFtZVBsdXJhbCwgdmlldykgfHxcblx0XHRcdFx0XHRcdFx0b1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9ESUFMT0dfREVGQVVMVF9UWVBFTkFNRV9QTFVSQUxcIiksXG5cdFx0XHRcdFx0XHRzTWVzc2FnZSA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19NQVNTX0VESVRfQ09ORklSTV9NRVNTQUdFXCIsIFtcblx0XHRcdFx0XHRcdFx0aU5vbkVkaXRhYmxlLFxuXHRcdFx0XHRcdFx0XHRpU2VsZWN0ZWRDb250ZXh0cyxcblx0XHRcdFx0XHRcdFx0aVVwZGF0YWJsZUNvbnRleHRzLFxuXHRcdFx0XHRcdFx0XHR0eXBlTmFtZVBsdXJhbFxuXHRcdFx0XHRcdFx0XSksXG5cdFx0XHRcdFx0XHRzUGF0aCA9IG9UYWJsZS5kYXRhKFwidGFyZ2V0Q29sbGVjdGlvblBhdGhcIiksXG5cdFx0XHRcdFx0XHRvTWV0YU1vZGVsID0gb1RhYmxlLmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRcdFx0XHRiSXNEcmFmdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRTdXBwb3J0ZWQob01ldGFNb2RlbCwgc1BhdGgpLFxuXHRcdFx0XHRcdFx0YkRpc3BsYXlNb2RlID0gb1RhYmxlLmRhdGEoXCJkaXNwbGF5TW9kZVByb3BlcnR5QmluZGluZ1wiKSA9PT0gXCJ0cnVlXCIsXG5cdFx0XHRcdFx0XHRzTWVzc2FnZURldGFpbCA9XG5cdFx0XHRcdFx0XHRcdGJJc0RyYWZ0ICYmIGJEaXNwbGF5TW9kZSAmJiB0aGlzLmdldE1lc3NhZ2VEZXRhaWxGb3JOb25FZGl0YWJsZShvUmVzb3VyY2VCdW5kbGUsIHR5cGVOYW1lLCB0eXBlTmFtZVBsdXJhbCk7XG5cblx0XHRcdFx0XHRNZXNzYWdlQm94Lndhcm5pbmcoc01lc3NhZ2UsIHtcblx0XHRcdFx0XHRcdGRldGFpbHM6IHNNZXNzYWdlRGV0YWlsLFxuXHRcdFx0XHRcdFx0YWN0aW9uczogW3NFZGl0QnV0dG9uLCBzQ2FuY2VsQnV0dG9uXSxcblx0XHRcdFx0XHRcdGVtcGhhc2l6ZWRBY3Rpb246IHNFZGl0QnV0dG9uLFxuXHRcdFx0XHRcdFx0Y29udGVudFdpZHRoOiBcIjEwMHB4XCIsXG5cdFx0XHRcdFx0XHRvbkNsb3NlOiBmdW5jdGlvbiAoc1NlbGVjdGlvbjogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBhQ29udGV4dHNGb3JFZGl0OiBhbnlbXSA9IFtdO1xuXHRcdFx0XHRcdFx0XHRpZiAoc1NlbGVjdGlvbiA9PT0gc0VkaXRCdXR0b24pIHtcblx0XHRcdFx0XHRcdFx0XHRMb2cuaW5mbyhcIk1hc3MgRWRpdDogQ29uZmlybWVkIHRvIGVkaXQgXCIsIGlVcGRhdGFibGVDb250ZXh0cy50b1N0cmluZygpLCBcIiBzZWxlY3Rpb25zLlwiKTtcblx0XHRcdFx0XHRcdFx0XHRhQ29udGV4dHNGb3JFZGl0ID0gYUNvbnRleHRzO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHNTZWxlY3Rpb24gPT09IHNDYW5jZWxCdXR0b24pIHtcblx0XHRcdFx0XHRcdFx0XHRMb2cuaW5mbyhcIk1hc3MgRWRpdDogQ2FuY2VsbGVkLlwiKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKGFDb250ZXh0c0ZvckVkaXQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gYXMgYW55KTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuXHRcdFx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0X2NvbmZpcm1Db250ZXh0cyhvVGFibGU6IFRhYmxlLCBhQ29udGV4dHM6IENvbnRleHRbXSkge1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9UYWJsZS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdFx0aVNlbGVjdGVkQ29udGV4dHMgPSArb0ludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwibnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzXCIpIHx8IDA7XG5cblx0XHRhQ29udGV4dHMgPSBhQ29udGV4dHMgfHwgW107XG5cblx0XHRpZiAoYUNvbnRleHRzLmxlbmd0aCAmJiBhQ29udGV4dHMubGVuZ3RoICE9PSBpU2VsZWN0ZWRDb250ZXh0cykge1xuXHRcdFx0cmV0dXJuIHRoaXMuX29wZW5Db25maXJtRGlhbG9nKG9UYWJsZSwgYUNvbnRleHRzLCBpU2VsZWN0ZWRDb250ZXh0cyk7XG5cdFx0fVxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoYUNvbnRleHRzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgYXJlIHBlcmZvcm1lZCBieSBtZXRob2Qgb3Blbk1hc3NFZGl0RGlhbG9nOlxuXHQgKiA9PiBPcGVucyB0aGUgbWFzcyBlZGl0IGRpYWxvZy5cblx0ICogPT4gSW1wbGVtZW50cyB0aGUgc2F2ZSBhbmQgY2FuY2VsIGZ1bmN0aW9uYWxpdHkuXG5cdCAqID0+IFNldHMgdGhlIHJ1bnRpbWUgbW9kZWwgdG8gdGhlIGRpYWxvZy5cblx0ICogPT4gU2V0cyB0aGUgc3RhdGljIG1vZGVsJ3MgY29udGV4dCB0byB0aGUgZGlhbG9nLlxuXHQgKlxuXHQgKiBAcGFyYW0gb1RhYmxlIEluc3RhbmNlIG9mIHRoZSB0YWJsZVxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBvbiBvcGVuIG9mIHRoZSBtYXNzIGVkaXQgZGlhbG9nLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdG9wZW5NYXNzRWRpdERpYWxvZyhvVGFibGU6IFRhYmxlKSB7XG5cdFx0Y29uc3Qgb0NvbnRyb2xsZXIgPSB0aGlzLmdldFZpZXcoKS5nZXRDb250cm9sbGVyKCkgYXMgUGFnZUNvbnRyb2xsZXIsXG5cdFx0XHRwQ29udGV4dHNGb3JFZGl0ID0gdGhpcy5mZXRjaENvbnRleHRzRm9yRWRpdChvVGFibGUpO1xuXG5cdFx0cmV0dXJuIHBDb250ZXh0c0ZvckVkaXRcblx0XHRcdC50aGVuKHRoaXMuX2NvbmZpcm1Db250ZXh0cy5iaW5kKHRoaXMsIG9UYWJsZSkpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoYUNvbnRleHRzOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIGFDb250ZXh0cyAmJiBhQ29udGV4dHMubGVuZ3RoID4gMCA/IE1hc3NFZGl0SGVscGVyLmNyZWF0ZURpYWxvZyhvVGFibGUsIGFDb250ZXh0cywgb0NvbnRyb2xsZXIpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKG9EaWFsb2c/OiBhbnkpIHtcblx0XHRcdFx0aWYgKG9EaWFsb2cpIHtcblx0XHRcdFx0XHRvVGFibGUuYWRkRGVwZW5kZW50KG9EaWFsb2cpO1xuXHRcdFx0XHRcdG9EaWFsb2cub3BlbigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJNYXNzIEVkaXQ6IFNvbWV0aGluZyB3ZW50IHdyb25nIGluIG1hc3MgZWRpdCBkaWFsb2cgY3JlYXRpb24uXCIsIG9FcnJvcik7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjb250ZXh0cyBmb3IgbWFzcyBlZGl0LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQHBhcmFtIG9UYWJsZSBUYWJsZSBmb3IgbWFzcyBlZGl0LlxuXHQgKiBAYWxpYXMgc2FwLmZlLmNvcmUuY29udHJsbGVyZXh0ZW5zaW9ucy5NYXNzRWRpdCNmZXRjaENvbnRleHRzRm9yRWRpdFxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgdG8gYmUgcmVzb2x2ZWQgd2l0aCBhbiBhcnJheSBvZiBjb250ZXh0KHMpIHdoaWNoIHNob3VsZCBiZSBjb25zaWRlcmVkIGZvciBtYXNzIGVkaXQuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRAcHJpdmF0ZUV4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKE92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyKVxuXHRmZXRjaENvbnRleHRzRm9yRWRpdChvVGFibGU6IFRhYmxlKSB7XG5cdFx0Ly9UbyBiZSBvdmVycmlkZGVuIGJ5IHRoZSBhcHBsaWNhdGlvblxuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9UYWJsZS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdFx0YVNlbGVjdGVkQ29udGV4dHMgPSBvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJ1cGRhdGFibGVDb250ZXh0c1wiKSB8fCBbXTtcblxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoYVNlbGVjdGVkQ29udGV4dHMpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hc3NFZGl0O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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
136
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNYXNzRWRpdCIsImRlZmluZVVJNUNsYXNzIiwicHVibGljRXh0ZW5zaW9uIiwiZmluYWxFeHRlbnNpb24iLCJwcml2YXRlRXh0ZW5zaW9uIiwiZXh0ZW5zaWJsZSIsIk92ZXJyaWRlRXhlY3V0aW9uIiwiQWZ0ZXIiLCJnZXRNZXNzYWdlRGV0YWlsRm9yTm9uRWRpdGFibGUiLCJvUmVzb3VyY2VCdW5kbGUiLCJ0eXBlTmFtZSIsInR5cGVOYW1lUGx1cmFsIiwic0hlYWRlciIsImdldFRleHQiLCJzUmVhc29uR3JvdXAiLCJzUmVhc29uRHJhZnQiLCJzUmVhc29uTm9uRWRpdGFibGUiLCJnZXRSZXNvdXJjZVRleHQiLCJleHAiLCJjb250cm9sIiwicmVzb2x2ZWRUZXh0IiwiQ29tbW9uVXRpbHMiLCJnZXRUcmFuc2xhdGVkVGV4dEZyb21FeHBCaW5kaW5nU3RyaW5nIiwidG9Mb2NhbGVMb3dlckNhc2UiLCJfb3BlbkNvbmZpcm1EaWFsb2ciLCJvVGFibGUiLCJhQ29udGV4dHMiLCJpU2VsZWN0ZWRDb250ZXh0cyIsImlVcGRhdGFibGVDb250ZXh0cyIsImxlbmd0aCIsInZpZXciLCJnZXRWaWV3IiwiUHJvbWlzZSIsInJlc29sdmUiLCJnZXRNb2RlbCIsImdldFJlc291cmNlQnVuZGxlIiwidGhlbiIsInNFZGl0QnV0dG9uIiwic0NhbmNlbEJ1dHRvbiIsImlOb25FZGl0YWJsZSIsImVudGl0eVR5cGVQYXRoIiwiZGF0YSIsIm1ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsImhlYWRlckluZm9Bbm5vIiwiZ2V0T2JqZWN0IiwiVHlwZU5hbWUiLCJUeXBlTmFtZVBsdXJhbCIsInNNZXNzYWdlIiwic1BhdGgiLCJvTWV0YU1vZGVsIiwiYklzRHJhZnQiLCJNb2RlbEhlbHBlciIsImlzRHJhZnRTdXBwb3J0ZWQiLCJiRGlzcGxheU1vZGUiLCJzTWVzc2FnZURldGFpbCIsIk1lc3NhZ2VCb3giLCJ3YXJuaW5nIiwiZGV0YWlscyIsImFjdGlvbnMiLCJlbXBoYXNpemVkQWN0aW9uIiwiY29udGVudFdpZHRoIiwib25DbG9zZSIsInNTZWxlY3Rpb24iLCJhQ29udGV4dHNGb3JFZGl0IiwiTG9nIiwiaW5mbyIsInRvU3RyaW5nIiwiY2F0Y2giLCJlcnJvciIsIl9jb25maXJtQ29udGV4dHMiLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsImdldFByb3BlcnR5Iiwib3Blbk1hc3NFZGl0RGlhbG9nIiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwicENvbnRleHRzRm9yRWRpdCIsImZldGNoQ29udGV4dHNGb3JFZGl0IiwiYmluZCIsIk1hc3NFZGl0SGVscGVyIiwiY3JlYXRlRGlhbG9nIiwib0RpYWxvZyIsImFkZERlcGVuZGVudCIsIm9wZW4iLCJvRXJyb3IiLCJhU2VsZWN0ZWRDb250ZXh0cyIsIkNvbnRyb2xsZXJFeHRlbnNpb24iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk1hc3NFZGl0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBleHRlbnNpYmxlLCBmaW5hbEV4dGVuc2lvbiwgcHJpdmF0ZUV4dGVuc2lvbiwgcHVibGljRXh0ZW5zaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTWFzc0VkaXRIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWFzc0VkaXRIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCBNZXNzYWdlQm94IGZyb20gXCJzYXAvbS9NZXNzYWdlQm94XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ29udHJvbGxlckV4dGVuc2lvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJFeHRlbnNpb25cIjtcbmltcG9ydCBPdmVycmlkZUV4ZWN1dGlvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL092ZXJyaWRlRXhlY3V0aW9uXCI7XG5pbXBvcnQgdHlwZSBUYWJsZSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvcmVzb3VyY2UvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCIuLi9Db21tb25VdGlsc1wiO1xuXG4vKipcbiAqIEBjbGFzcyBDb250cm9sbGVyIGV4dGVuc2lvbiBwcm92aWRpbmcgaG9va3MgZm9yIHRoZSBtYXNzIGVkaXQgaW4gYSB0YWJsZVxuICogQG5hbWUgc2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuTWFzc0VkaXRcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwcml2YXRlXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLk1hc3NFZGl0XCIpXG5jbGFzcyBNYXNzRWRpdCBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0Z2V0TWVzc2FnZURldGFpbEZvck5vbkVkaXRhYmxlKG9SZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGUsIHR5cGVOYW1lOiBzdHJpbmcsIHR5cGVOYW1lUGx1cmFsOiBzdHJpbmcpIHtcblx0XHRjb25zdCBzSGVhZGVyID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DT05GSVJNX01FU1NBR0VfREVUQUlMX0hFQURFUlwiKSxcblx0XHRcdHNSZWFzb25Hcm91cCA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19NQVNTX0VESVRfQ09ORklSTV9NRVNTQUdFX0RFVEFJTF9SRUFTT05cIiwgW3R5cGVOYW1lUGx1cmFsXSksXG5cdFx0XHRzUmVhc29uRHJhZnQgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUFTU19FRElUX0NPTkZJUk1fTUVTU0FHRV9ERVRBSUxfUkVBU09OX0RSQUZUXCIsIFt0eXBlTmFtZV0pLFxuXHRcdFx0c1JlYXNvbk5vbkVkaXRhYmxlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DT05GSVJNX01FU1NBR0VfREVUQUlMX1JFQVNPTl9OT05fRURJVEFCTEVcIiwgW3R5cGVOYW1lXSk7XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0YDxwPjxzdHJvbmc+JHtzSGVhZGVyfTwvc3Ryb25nPjwvcD5cXG5gICtcblx0XHRcdCghIXNSZWFzb25Hcm91cCAmJlxuXHRcdFx0XHRgPHA+JHtzUmVhc29uR3JvdXB9PC9wPlxcbmAgK1xuXHRcdFx0XHRcdGA8dWw+YCArXG5cdFx0XHRcdFx0KCEhc1JlYXNvbkRyYWZ0ICYmIGA8bGk+JHtzUmVhc29uRHJhZnR9PC9saT5gKSArXG5cdFx0XHRcdFx0KCEhc1JlYXNvbk5vbkVkaXRhYmxlICYmIGA8bGk+JHtzUmVhc29uTm9uRWRpdGFibGV9PC9saT5gKSArXG5cdFx0XHRcdFx0YDwvdWw+YClcblx0XHQpO1xuXHR9XG5cblx0Z2V0UmVzb3VyY2VUZXh0KGV4cDogc3RyaW5nLCBjb250cm9sOiBDb250cm9sKSB7XG5cdFx0Y29uc3QgcmVzb2x2ZWRUZXh0ID0gZXhwICYmIENvbW1vblV0aWxzLmdldFRyYW5zbGF0ZWRUZXh0RnJvbUV4cEJpbmRpbmdTdHJpbmcoZXhwLCBjb250cm9sKTtcblx0XHRyZXR1cm4gcmVzb2x2ZWRUZXh0ICYmIHJlc29sdmVkVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuXHR9XG5cblx0X29wZW5Db25maXJtRGlhbG9nKG9UYWJsZTogVGFibGUsIGFDb250ZXh0czogQ29udGV4dFtdLCBpU2VsZWN0ZWRDb250ZXh0czogbnVtYmVyKSB7XG5cdFx0Y29uc3QgaVVwZGF0YWJsZUNvbnRleHRzID0gKGFDb250ZXh0cyB8fCBbXSkubGVuZ3RoO1xuXHRcdGNvbnN0IHZpZXcgPSB0aGlzLmdldFZpZXcoKTtcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXHRcdFx0KCh2aWV3LmdldE1vZGVsKFwic2FwLmZlLmkxOG5cIikgYXMgUmVzb3VyY2VNb2RlbCkuZ2V0UmVzb3VyY2VCdW5kbGUoKSBhcyBQcm9taXNlPFJlc291cmNlQnVuZGxlPilcblx0XHRcdFx0LnRoZW4oKG9SZXNvdXJjZUJ1bmRsZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHNFZGl0QnV0dG9uID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9DT05GSVJNX0JVVFRPTl9URVhUXCIpLFxuXHRcdFx0XHRcdFx0c0NhbmNlbEJ1dHRvbiA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19DT01NT05fT0JKRUNUX1BBR0VfQ0FOQ0VMXCIpLFxuXHRcdFx0XHRcdFx0aU5vbkVkaXRhYmxlID0gaVNlbGVjdGVkQ29udGV4dHMgLSBpVXBkYXRhYmxlQ29udGV4dHMsXG5cdFx0XHRcdFx0XHRlbnRpdHlUeXBlUGF0aCA9IG9UYWJsZS5kYXRhKFwiZW50aXR5VHlwZVwiKSxcblx0XHRcdFx0XHRcdG1ldGFNb2RlbCA9IG9UYWJsZS5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsLFxuXHRcdFx0XHRcdFx0aGVhZGVySW5mb0Fubm8gPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2VudGl0eVR5cGVQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJJbmZvYCksXG5cdFx0XHRcdFx0XHR0eXBlTmFtZSA9XG5cdFx0XHRcdFx0XHRcdHRoaXMuZ2V0UmVzb3VyY2VUZXh0KGhlYWRlckluZm9Bbm5vLlR5cGVOYW1lLCB2aWV3KSB8fFxuXHRcdFx0XHRcdFx0XHRvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfTUFTU19FRElUX0RJQUxPR19ERUZBVUxUX1RZUEVOQU1FXCIpLFxuXHRcdFx0XHRcdFx0dHlwZU5hbWVQbHVyYWwgPVxuXHRcdFx0XHRcdFx0XHR0aGlzLmdldFJlc291cmNlVGV4dChoZWFkZXJJbmZvQW5uby5UeXBlTmFtZVBsdXJhbCwgdmlldykgfHxcblx0XHRcdFx0XHRcdFx0b1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX01BU1NfRURJVF9ESUFMT0dfREVGQVVMVF9UWVBFTkFNRV9QTFVSQUxcIiksXG5cdFx0XHRcdFx0XHRzTWVzc2FnZSA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19NQVNTX0VESVRfQ09ORklSTV9NRVNTQUdFXCIsIFtcblx0XHRcdFx0XHRcdFx0aU5vbkVkaXRhYmxlLFxuXHRcdFx0XHRcdFx0XHRpU2VsZWN0ZWRDb250ZXh0cyxcblx0XHRcdFx0XHRcdFx0aVVwZGF0YWJsZUNvbnRleHRzLFxuXHRcdFx0XHRcdFx0XHR0eXBlTmFtZVBsdXJhbFxuXHRcdFx0XHRcdFx0XSksXG5cdFx0XHRcdFx0XHRzUGF0aCA9IG9UYWJsZS5kYXRhKFwidGFyZ2V0Q29sbGVjdGlvblBhdGhcIiksXG5cdFx0XHRcdFx0XHRvTWV0YU1vZGVsID0gb1RhYmxlLmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRcdFx0XHRiSXNEcmFmdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRTdXBwb3J0ZWQob01ldGFNb2RlbCwgc1BhdGgpLFxuXHRcdFx0XHRcdFx0YkRpc3BsYXlNb2RlID0gb1RhYmxlLmRhdGEoXCJkaXNwbGF5TW9kZVByb3BlcnR5QmluZGluZ1wiKSA9PT0gXCJ0cnVlXCIsXG5cdFx0XHRcdFx0XHRzTWVzc2FnZURldGFpbCA9XG5cdFx0XHRcdFx0XHRcdGJJc0RyYWZ0ICYmIGJEaXNwbGF5TW9kZSAmJiB0aGlzLmdldE1lc3NhZ2VEZXRhaWxGb3JOb25FZGl0YWJsZShvUmVzb3VyY2VCdW5kbGUsIHR5cGVOYW1lLCB0eXBlTmFtZVBsdXJhbCk7XG5cblx0XHRcdFx0XHRNZXNzYWdlQm94Lndhcm5pbmcoc01lc3NhZ2UsIHtcblx0XHRcdFx0XHRcdGRldGFpbHM6IHNNZXNzYWdlRGV0YWlsLFxuXHRcdFx0XHRcdFx0YWN0aW9uczogW3NFZGl0QnV0dG9uLCBzQ2FuY2VsQnV0dG9uXSxcblx0XHRcdFx0XHRcdGVtcGhhc2l6ZWRBY3Rpb246IHNFZGl0QnV0dG9uLFxuXHRcdFx0XHRcdFx0Y29udGVudFdpZHRoOiBcIjEwMHB4XCIsXG5cdFx0XHRcdFx0XHRvbkNsb3NlOiBmdW5jdGlvbiAoc1NlbGVjdGlvbjogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBhQ29udGV4dHNGb3JFZGl0OiBhbnlbXSA9IFtdO1xuXHRcdFx0XHRcdFx0XHRpZiAoc1NlbGVjdGlvbiA9PT0gc0VkaXRCdXR0b24pIHtcblx0XHRcdFx0XHRcdFx0XHRMb2cuaW5mbyhcIk1hc3MgRWRpdDogQ29uZmlybWVkIHRvIGVkaXQgXCIsIGlVcGRhdGFibGVDb250ZXh0cy50b1N0cmluZygpLCBcIiBzZWxlY3Rpb25zLlwiKTtcblx0XHRcdFx0XHRcdFx0XHRhQ29udGV4dHNGb3JFZGl0ID0gYUNvbnRleHRzO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHNTZWxlY3Rpb24gPT09IHNDYW5jZWxCdXR0b24pIHtcblx0XHRcdFx0XHRcdFx0XHRMb2cuaW5mbyhcIk1hc3MgRWRpdDogQ2FuY2VsbGVkLlwiKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKGFDb250ZXh0c0ZvckVkaXQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gYXMgYW55KTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuXHRcdFx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0X2NvbmZpcm1Db250ZXh0cyhvVGFibGU6IFRhYmxlLCBhQ29udGV4dHM6IENvbnRleHRbXSkge1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9UYWJsZS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdFx0aVNlbGVjdGVkQ29udGV4dHMgPSArb0ludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwibnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzXCIpIHx8IDA7XG5cblx0XHRhQ29udGV4dHMgPSBhQ29udGV4dHMgfHwgW107XG5cblx0XHRpZiAoYUNvbnRleHRzLmxlbmd0aCAmJiBhQ29udGV4dHMubGVuZ3RoICE9PSBpU2VsZWN0ZWRDb250ZXh0cykge1xuXHRcdFx0cmV0dXJuIHRoaXMuX29wZW5Db25maXJtRGlhbG9nKG9UYWJsZSwgYUNvbnRleHRzLCBpU2VsZWN0ZWRDb250ZXh0cyk7XG5cdFx0fVxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoYUNvbnRleHRzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgYXJlIHBlcmZvcm1lZCBieSBtZXRob2Qgb3Blbk1hc3NFZGl0RGlhbG9nOlxuXHQgKiA9PiBPcGVucyB0aGUgbWFzcyBlZGl0IGRpYWxvZy5cblx0ICogPT4gSW1wbGVtZW50cyB0aGUgc2F2ZSBhbmQgY2FuY2VsIGZ1bmN0aW9uYWxpdHkuXG5cdCAqID0+IFNldHMgdGhlIHJ1bnRpbWUgbW9kZWwgdG8gdGhlIGRpYWxvZy5cblx0ICogPT4gU2V0cyB0aGUgc3RhdGljIG1vZGVsJ3MgY29udGV4dCB0byB0aGUgZGlhbG9nLlxuXHQgKlxuXHQgKiBAcGFyYW0gb1RhYmxlIEluc3RhbmNlIG9mIHRoZSB0YWJsZVxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBvbiBvcGVuIG9mIHRoZSBtYXNzIGVkaXQgZGlhbG9nLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdG9wZW5NYXNzRWRpdERpYWxvZyhvVGFibGU6IFRhYmxlKSB7XG5cdFx0Y29uc3Qgb0NvbnRyb2xsZXIgPSB0aGlzLmdldFZpZXcoKS5nZXRDb250cm9sbGVyKCkgYXMgUGFnZUNvbnRyb2xsZXIsXG5cdFx0XHRwQ29udGV4dHNGb3JFZGl0ID0gdGhpcy5mZXRjaENvbnRleHRzRm9yRWRpdChvVGFibGUpO1xuXG5cdFx0cmV0dXJuIHBDb250ZXh0c0ZvckVkaXRcblx0XHRcdC50aGVuKHRoaXMuX2NvbmZpcm1Db250ZXh0cy5iaW5kKHRoaXMsIG9UYWJsZSkpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoYUNvbnRleHRzOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIGFDb250ZXh0cyAmJiBhQ29udGV4dHMubGVuZ3RoID4gMCA/IE1hc3NFZGl0SGVscGVyLmNyZWF0ZURpYWxvZyhvVGFibGUsIGFDb250ZXh0cywgb0NvbnRyb2xsZXIpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKG9EaWFsb2c/OiBhbnkpIHtcblx0XHRcdFx0aWYgKG9EaWFsb2cpIHtcblx0XHRcdFx0XHRvVGFibGUuYWRkRGVwZW5kZW50KG9EaWFsb2cpO1xuXHRcdFx0XHRcdG9EaWFsb2cub3BlbigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJNYXNzIEVkaXQ6IFNvbWV0aGluZyB3ZW50IHdyb25nIGluIG1hc3MgZWRpdCBkaWFsb2cgY3JlYXRpb24uXCIsIG9FcnJvcik7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjb250ZXh0cyBmb3IgbWFzcyBlZGl0LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQHBhcmFtIG9UYWJsZSBUYWJsZSBmb3IgbWFzcyBlZGl0LlxuXHQgKiBAYWxpYXMgc2FwLmZlLmNvcmUuY29udHJsbGVyZXh0ZW5zaW9ucy5NYXNzRWRpdCNmZXRjaENvbnRleHRzRm9yRWRpdFxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgdG8gYmUgcmVzb2x2ZWQgd2l0aCBhbiBhcnJheSBvZiBjb250ZXh0KHMpIHdoaWNoIHNob3VsZCBiZSBjb25zaWRlcmVkIGZvciBtYXNzIGVkaXQuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRAcHJpdmF0ZUV4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKE92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyKVxuXHRmZXRjaENvbnRleHRzRm9yRWRpdChvVGFibGU6IFRhYmxlKSB7XG5cdFx0Ly9UbyBiZSBvdmVycmlkZGVuIGJ5IHRoZSBhcHBsaWNhdGlvblxuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9UYWJsZS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdFx0YVNlbGVjdGVkQ29udGV4dHMgPSBvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJ1cGRhdGFibGVDb250ZXh0c1wiKSB8fCBbXTtcblxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoYVNlbGVjdGVkQ29udGV4dHMpO1xuXHR9XG59XG5cbmV4cG9ydCBk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
@@ -6,11 +6,12 @@ import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
6
6
  import ModelHelper from "sap/fe/core/helpers/ModelHelper";
7
7
  import type PageController from "sap/fe/core/PageController";
8
8
  import MessageBox from "sap/m/MessageBox";
9
- import Control from "sap/ui/core/Control";
9
+ import type Control from "sap/ui/core/Control";
10
10
  import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
11
11
  import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
12
12
  import type Table from "sap/ui/mdc/Table";
13
13
  import type Context from "sap/ui/model/Context";
14
+ import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
14
15
  import type ResourceModel from "sap/ui/model/resource/ResourceModel";
15
16
  import CommonUtils from "../CommonUtils";
16
17
 
@@ -57,7 +58,7 @@ class MassEdit extends ControllerExtension {
57
58
  sCancelButton = oResourceBundle.getText("C_COMMON_OBJECT_PAGE_CANCEL"),
58
59
  iNonEditable = iSelectedContexts - iUpdatableContexts,
59
60
  entityTypePath = oTable.data("entityType"),
60
- metaModel = oTable.getModel().getMetaModel(),
61
+ metaModel = oTable.getModel().getMetaModel() as ODataMetaModel,
61
62
  headerInfoAnno = metaModel.getObject(`${entityTypePath}@com.sap.vocabularies.UI.v1.HeaderInfo`),
62
63
  typeName =
63
64
  this.getResourceText(headerInfoAnno.TypeName, view) ||