@sapui5/sap.fe.core 1.141.2 → 1.143.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 (217) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +4 -1
  3. package/src/sap/fe/core/ActionRuntime.js +78 -23
  4. package/src/sap/fe/core/ActionRuntime.ts +91 -35
  5. package/src/sap/fe/core/AppComponent.js +76 -6
  6. package/src/sap/fe/core/AppComponent.ts +91 -8
  7. package/src/sap/fe/core/AppStateHandler.js +7 -7
  8. package/src/sap/fe/core/AppStateHandler.ts +9 -8
  9. package/src/sap/fe/core/BaseController.js +8 -5
  10. package/src/sap/fe/core/BaseController.ts +6 -1
  11. package/src/sap/fe/core/CommonUtils.js +4 -123
  12. package/src/sap/fe/core/CommonUtils.ts +3 -172
  13. package/src/sap/fe/core/ExtensionAPI.js +3 -11
  14. package/src/sap/fe/core/ExtensionAPI.ts +3 -16
  15. package/src/sap/fe/core/PageController.js +64 -43
  16. package/src/sap/fe/core/PageController.ts +62 -47
  17. package/src/sap/fe/core/TemplateComponent.js +12 -1
  18. package/src/sap/fe/core/TemplateComponent.ts +16 -2
  19. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +37 -24
  20. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +47 -31
  21. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +1 -1
  22. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +4 -0
  23. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +4 -1
  24. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +3 -0
  25. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +5 -3
  26. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +5 -2
  27. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +7 -5
  28. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +22 -2
  29. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +82 -44
  30. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +92 -59
  31. package/src/sap/fe/core/controllerextensions/EditFlow.js +74 -48
  32. package/src/sap/fe/core/controllerextensions/EditFlow.ts +87 -50
  33. package/src/sap/fe/core/controllerextensions/InlineEditFlow.js +9 -7
  34. package/src/sap/fe/core/controllerextensions/InlineEditFlow.ts +17 -5
  35. package/src/sap/fe/core/controllerextensions/InternalRouting.js +37 -18
  36. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +49 -17
  37. package/src/sap/fe/core/controllerextensions/KPIManagement.js +30 -15
  38. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +32 -14
  39. package/src/sap/fe/core/controllerextensions/MessageHandler.js +9 -10
  40. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +10 -9
  41. package/src/sap/fe/core/controllerextensions/Paginator.js +2 -2
  42. package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -1
  43. package/src/sap/fe/core/controllerextensions/Placeholder.js +10 -2
  44. package/src/sap/fe/core/controllerextensions/Placeholder.ts +5 -1
  45. package/src/sap/fe/core/controllerextensions/Recommendations.js +3 -3
  46. package/src/sap/fe/core/controllerextensions/Recommendations.ts +2 -2
  47. package/src/sap/fe/core/controllerextensions/Routing.js +4 -4
  48. package/src/sap/fe/core/controllerextensions/Routing.ts +3 -6
  49. package/src/sap/fe/core/controllerextensions/Share.js +5 -5
  50. package/src/sap/fe/core/controllerextensions/Share.ts +4 -4
  51. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  52. package/src/sap/fe/core/controllerextensions/SideEffects.ts +17 -2
  53. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +2 -2
  54. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +1 -1
  55. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +3 -3
  56. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +3 -2
  57. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +49 -21
  58. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +64 -24
  59. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +37 -3
  60. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +41 -8
  61. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +10 -4
  62. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +6 -1
  63. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.js +6 -7
  64. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.ts +5 -5
  65. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.js +2 -2
  66. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.ts +1 -1
  67. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationMessage.js +2 -1
  68. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationMessage.ts +1 -0
  69. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.js +2 -1
  70. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.ts +1 -0
  71. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +21 -15
  72. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +18 -15
  73. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +7 -6
  74. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +8 -5
  75. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.js +9 -4
  76. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.tsx +10 -4
  77. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.js +3 -2
  78. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.tsx +2 -1
  79. package/src/sap/fe/core/converters/ManifestSettings.js +7 -1
  80. package/src/sap/fe/core/converters/ManifestSettings.ts +37 -0
  81. package/src/sap/fe/core/converters/ManifestWrapper.js +29 -9
  82. package/src/sap/fe/core/converters/ManifestWrapper.ts +29 -11
  83. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  84. package/src/sap/fe/core/converters/MetaModelConverter.ts +1 -1
  85. package/src/sap/fe/core/converters/annotations/DataField.js +46 -19
  86. package/src/sap/fe/core/converters/annotations/DataField.ts +93 -19
  87. package/src/sap/fe/core/converters/common/AnnotationConverter.js +118 -39
  88. package/src/sap/fe/core/converters/controls/Common/Action.js +58 -21
  89. package/src/sap/fe/core/converters/controls/Common/Action.ts +72 -22
  90. package/src/sap/fe/core/converters/controls/Common/Chart.js +13 -3
  91. package/src/sap/fe/core/converters/controls/Common/Chart.ts +20 -4
  92. package/src/sap/fe/core/converters/controls/Common/Form.js +18 -3
  93. package/src/sap/fe/core/converters/controls/Common/Form.ts +23 -1
  94. package/src/sap/fe/core/converters/controls/Common/Table.js +87 -22
  95. package/src/sap/fe/core/converters/controls/Common/Table.ts +112 -21
  96. package/src/sap/fe/core/converters/controls/Common/filter/FilterRestrictions.js +243 -0
  97. package/src/sap/fe/core/converters/controls/Common/filter/FilterRestrictions.ts +309 -0
  98. package/src/sap/fe/core/converters/controls/Common/table/Columns.js +142 -58
  99. package/src/sap/fe/core/converters/controls/Common/table/Columns.ts +174 -79
  100. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +7 -16
  101. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +6 -17
  102. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +16 -5
  103. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +16 -5
  104. package/src/sap/fe/core/converters/helpers/Aggregation.js +12 -2
  105. package/src/sap/fe/core/converters/helpers/Aggregation.ts +11 -1
  106. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +27 -3
  107. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +28 -1
  108. package/src/sap/fe/core/converters/helpers/ID.js +3 -1
  109. package/src/sap/fe/core/converters/helpers/ID.ts +1 -0
  110. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +10 -5
  111. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +13 -1
  112. package/src/sap/fe/core/converters/templates/ListReportConverter.js +11 -3
  113. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +12 -4
  114. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +19 -8
  115. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +18 -7
  116. package/src/sap/fe/core/designtime/AnnotationBasedChanges.js +8 -3
  117. package/src/sap/fe/core/designtime/AnnotationBasedChanges.ts +7 -2
  118. package/src/sap/fe/core/flexibility/AppComponent.flexibility.js +55 -0
  119. package/src/sap/fe/core/flexibility/AppComponent.flexibility.ts +65 -0
  120. package/src/sap/fe/core/flexibility/XMLTools.js +71 -0
  121. package/src/sap/fe/core/flexibility/XMLTools.ts +61 -0
  122. package/src/sap/fe/core/fpm/manifest.json +2 -2
  123. package/src/sap/fe/core/helpers/AppStartupHelper.js +79 -25
  124. package/src/sap/fe/core/helpers/AppStartupHelper.ts +92 -32
  125. package/src/sap/fe/core/helpers/DeleteHelper.js +13 -13
  126. package/src/sap/fe/core/helpers/DeleteHelper.ts +17 -15
  127. package/src/sap/fe/core/helpers/ManifestHelper.js +6 -3
  128. package/src/sap/fe/core/helpers/ManifestHelper.ts +3 -0
  129. package/src/sap/fe/core/helpers/MetaModelFunction.js +12 -3
  130. package/src/sap/fe/core/helpers/MetaModelFunction.ts +11 -3
  131. package/src/sap/fe/core/helpers/ModelHelper.js +47 -11
  132. package/src/sap/fe/core/helpers/ModelHelper.ts +62 -15
  133. package/src/sap/fe/core/helpers/PasteHelper.js +6 -2
  134. package/src/sap/fe/core/helpers/PasteHelper.ts +5 -7
  135. package/src/sap/fe/core/helpers/TypeGuards.js +12 -2
  136. package/src/sap/fe/core/helpers/TypeGuards.ts +10 -1
  137. package/src/sap/fe/core/helpers/WebSocket.js +6 -7
  138. package/src/sap/fe/core/helpers/WebSocket.ts +10 -6
  139. package/src/sap/fe/core/library.js +33 -3
  140. package/src/sap/fe/core/library.ts +31 -1
  141. package/src/sap/fe/core/messagebundle.properties +8 -1
  142. package/src/sap/fe/core/messagebundle_ar.properties +8 -1
  143. package/src/sap/fe/core/messagebundle_bg.properties +10 -3
  144. package/src/sap/fe/core/messagebundle_ca.properties +7 -0
  145. package/src/sap/fe/core/messagebundle_cnr.properties +7 -0
  146. package/src/sap/fe/core/messagebundle_cs.properties +7 -0
  147. package/src/sap/fe/core/messagebundle_cy.properties +8 -1
  148. package/src/sap/fe/core/messagebundle_da.properties +7 -0
  149. package/src/sap/fe/core/messagebundle_de.properties +7 -0
  150. package/src/sap/fe/core/messagebundle_el.properties +7 -0
  151. package/src/sap/fe/core/messagebundle_en.properties +8 -1
  152. package/src/sap/fe/core/messagebundle_en_GB.properties +7 -0
  153. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +8 -1
  154. package/src/sap/fe/core/messagebundle_es.properties +8 -1
  155. package/src/sap/fe/core/messagebundle_es_MX.properties +7 -0
  156. package/src/sap/fe/core/messagebundle_et.properties +7 -0
  157. package/src/sap/fe/core/messagebundle_fi.properties +7 -0
  158. package/src/sap/fe/core/messagebundle_fr.properties +16 -9
  159. package/src/sap/fe/core/messagebundle_fr_CA.properties +7 -0
  160. package/src/sap/fe/core/messagebundle_hi.properties +8 -1
  161. package/src/sap/fe/core/messagebundle_hr.properties +7 -0
  162. package/src/sap/fe/core/messagebundle_hu.properties +7 -0
  163. package/src/sap/fe/core/messagebundle_id.properties +7 -0
  164. package/src/sap/fe/core/messagebundle_it.properties +7 -0
  165. package/src/sap/fe/core/messagebundle_iw.properties +7 -0
  166. package/src/sap/fe/core/messagebundle_ja.properties +8 -1
  167. package/src/sap/fe/core/messagebundle_kk.properties +7 -0
  168. package/src/sap/fe/core/messagebundle_ko.properties +7 -0
  169. package/src/sap/fe/core/messagebundle_lt.properties +7 -0
  170. package/src/sap/fe/core/messagebundle_lv.properties +7 -0
  171. package/src/sap/fe/core/messagebundle_mk.properties +7 -0
  172. package/src/sap/fe/core/messagebundle_ms.properties +7 -0
  173. package/src/sap/fe/core/messagebundle_nl.properties +7 -0
  174. package/src/sap/fe/core/messagebundle_no.properties +9 -2
  175. package/src/sap/fe/core/messagebundle_pl.properties +7 -0
  176. package/src/sap/fe/core/messagebundle_pt.properties +7 -0
  177. package/src/sap/fe/core/messagebundle_pt_PT.properties +7 -0
  178. package/src/sap/fe/core/messagebundle_ro.properties +7 -0
  179. package/src/sap/fe/core/messagebundle_ru.properties +7 -0
  180. package/src/sap/fe/core/messagebundle_sh.properties +7 -0
  181. package/src/sap/fe/core/messagebundle_sk.properties +7 -0
  182. package/src/sap/fe/core/messagebundle_sl.properties +7 -0
  183. package/src/sap/fe/core/messagebundle_sr.properties +7 -0
  184. package/src/sap/fe/core/messagebundle_sv.properties +7 -0
  185. package/src/sap/fe/core/messagebundle_th.properties +7 -0
  186. package/src/sap/fe/core/messagebundle_tr.properties +7 -0
  187. package/src/sap/fe/core/messagebundle_uk.properties +7 -0
  188. package/src/sap/fe/core/messagebundle_vi.properties +7 -0
  189. package/src/sap/fe/core/messagebundle_zh_CN.properties +8 -1
  190. package/src/sap/fe/core/messagebundle_zh_TW.properties +7 -0
  191. package/src/sap/fe/core/rootView/Fcl.controller.js +21 -7
  192. package/src/sap/fe/core/rootView/Fcl.controller.ts +22 -5
  193. package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
  194. package/src/sap/fe/core/rootView/NavContainer.controller.ts +2 -1
  195. package/src/sap/fe/core/rootView/RootViewBaseController.js +96 -88
  196. package/src/sap/fe/core/rootView/RootViewBaseController.ts +106 -96
  197. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +1 -1
  198. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.ts +9 -9
  199. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +14 -10
  200. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +15 -10
  201. package/src/sap/fe/core/services/RoutingServiceFactory.js +9 -4
  202. package/src/sap/fe/core/services/RoutingServiceFactory.ts +13 -6
  203. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +9 -7
  204. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +13 -8
  205. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +57 -5
  206. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +69 -10
  207. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +33 -15
  208. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +31 -11
  209. package/src/sap/fe/core/templating/DisplayModeFormatter.js +4 -5
  210. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +4 -6
  211. package/src/sap/fe/core/templating/UIFormatters.js +17 -2
  212. package/src/sap/fe/core/templating/UIFormatters.ts +25 -1
  213. package/src/sap/fe/core/types/sap.fe.core-auto-ext.d.js +10 -0
  214. package/src/sap/fe/core/types/sap.fe.core-auto-ext.d.ts +369 -0
  215. package/src/sap/fe/core/types/sap.fe.core-manual-ext.d.js +9 -0
  216. package/src/sap/fe/core/types/sap.fe.core-manual-ext.d.ts +49 -0
  217. package/ui5.yaml +2 -0
@@ -22,7 +22,7 @@ sap.ui.define(["sap/base/util/deepClone", "sap/base/util/merge", "sap/fe/core/bu
22
22
  let BuildingBlockTemplatingBase = /*#__PURE__*/function () {
23
23
  function BuildingBlockTemplatingBase(props, _controlConfiguration, _visitorSettings) {
24
24
  this.isPublic = false;
25
- this.getConverterContext = function (dataModelObjectPath, contextPath, settings, extraParams) {
25
+ this.getConverterContext = function (dataModelObjectPath, contextPath, settings, extraParams, cleanupViewData) {
26
26
  const appComponent = settings.appComponent;
27
27
  const originalViewData = settings.models.viewData?.getData();
28
28
  let viewData = Object.assign({}, originalViewData);
@@ -37,7 +37,9 @@ sap.ui.define(["sap/base/util/deepClone", "sap/base/util/merge", "sap/fe/core/bu
37
37
  if (relativePath === originalViewData?.contextPath || relativePath === `/${originalViewData?.entitySet}` || entitySetName === originalViewData?.entitySet) {
38
38
  controlConfiguration = viewData.controlConfiguration;
39
39
  }
40
- viewData.controlConfiguration = merge(controlConfiguration, extraParams || {});
40
+ viewData.controlConfiguration = merge({}, extraParams ?? {}, controlConfiguration);
41
+ // Mostly for the table case to remove columns added through one path
42
+ cleanupViewData?.(viewData);
41
43
  return ConverterContext.createConverterContextForMacro(dataModelObjectPath.startingEntitySet.name, settings.models.metaModel, appComponent?.getDiagnostics(), merge, dataModelObjectPath.contextLocation, new ManifestWrapper(viewData, appComponent));
42
44
  };
43
45
  Object.keys(props).forEach(propName => {
@@ -141,4 +143,4 @@ sap.ui.define(["sap/base/util/deepClone", "sap/base/util/merge", "sap/fe/core/bu
141
143
  _exports = BuildingBlockTemplatingBase;
142
144
  return _exports;
143
145
  }, false);
144
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UiLCJwcm9wcyIsIl9jb250cm9sQ29uZmlndXJhdGlvbiIsIl92aXNpdG9yU2V0dGluZ3MiLCJpc1B1YmxpYyIsImdldENvbnZlcnRlckNvbnRleHQiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwiY29udGV4dFBhdGgiLCJzZXR0aW5ncyIsImV4dHJhUGFyYW1zIiwiYXBwQ29tcG9uZW50Iiwib3JpZ2luYWxWaWV3RGF0YSIsIm1vZGVscyIsInZpZXdEYXRhIiwiZ2V0RGF0YSIsIk9iamVjdCIsImFzc2lnbiIsInJlc291cmNlTW9kZWwiLCJkZWVwQ2xvbmUiLCJjb250cm9sQ29uZmlndXJhdGlvbiIsInJlbGF0aXZlUGF0aCIsImdldFRhcmdldE9iamVjdFBhdGgiLCJjb250ZXh0TG9jYXRpb24iLCJlbnRpdHlTZXROYW1lIiwidGFyZ2V0RW50aXR5U2V0IiwibmFtZSIsImVudGl0eVNldCIsIm1lcmdlIiwiQ29udmVydGVyQ29udGV4dCIsImNyZWF0ZUNvbnZlcnRlckNvbnRleHRGb3JNYWNybyIsInN0YXJ0aW5nRW50aXR5U2V0IiwibWV0YU1vZGVsIiwiZ2V0RGlhZ25vc3RpY3MiLCJNYW5pZmVzdFdyYXBwZXIiLCJrZXlzIiwiZm9yRWFjaCIsInByb3BOYW1lIiwiX2V4cG9ydHMiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJjcmVhdGVJZCIsImlkIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInN0cmluZ1BhcnRzIiwiQXJyYXkiLCJfa2V5IiwiZ2VuZXJhdGUiLCJ1bmRlZmluZWQiLCJnZXRDb250ZW50SWQiLCJidWlsZGluZ0Jsb2NrSWQiLCJnZXRUcmFuc2xhdGVkVGV4dCIsInRleHRJRCIsInBhcmFtZXRlcnMiLCJtZXRhUGF0aCIsImdldFRleHQiLCJnZXRQcm9wZXJ0aWVzIiwiYWxsUHJvcGVydGllcyIsIm9JbnN0YW5jZUtleSIsImhhc093blByb3BlcnR5IiwicmVnaXN0ZXIiLCJyZWdpc3RlckJ1aWxkaW5nQmxvY2siLCJ1bnJlZ2lzdGVyIiwidW5yZWdpc3RlckJ1aWxkaW5nQmxvY2siLCJhZGRDb25kaXRpb25hbGx5IiwiY29uZGl0aW9uIiwicGFydFRvQWRkIiwiYWRkQ29uZGl0aW9uYWxseVRvWE1MIiwiYXR0ciIsImF0dHJpYnV0ZU5hbWUiLCJ2YWx1ZSIsImFkZEF0dHJpYnV0ZVRvWE1MIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwiZ2V0IiwiaW50ZXJuYWxNZXRhZGF0YSIsInNldCIsIm5ld1ZhbHVlIiwiaXNSdW50aW1lIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlZXBDbG9uZSBmcm9tIFwic2FwL2Jhc2UvdXRpbC9kZWVwQ2xvbmVcIjtcbmltcG9ydCBtZXJnZSBmcm9tIFwic2FwL2Jhc2UvdXRpbC9tZXJnZVwiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBCdWlsZGluZ0Jsb2NrTWV0YWRhdGEsIE9iamVjdFZhbHVlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHtcblx0VGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncyxcblx0WE1MUHJvY2Vzc29yVHlwZVZhbHVlXG59IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IHtcblx0YWRkQXR0cmlidXRlVG9YTUwsXG5cdGFkZENvbmRpdGlvbmFsbHlUb1hNTCxcblx0cmVnaXN0ZXJCdWlsZGluZ0Jsb2NrLFxuXHR1bnJlZ2lzdGVyQnVpbGRpbmdCbG9ja1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCBNYW5pZmVzdFdyYXBwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgdHlwZSB7IFBhZ2VDb250ZXh0UGF0aFRhcmdldCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL1RlbXBsYXRlQ29udmVydGVyXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBidWlsZGluZyBibG9ja3NcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIHtcblx0cHJpdmF0ZSBzdGF0aWMgaW50ZXJuYWxNZXRhZGF0YTogQnVpbGRpbmdCbG9ja01ldGFkYXRhO1xuXG5cdHB1YmxpYyBzdGF0aWMgZ2V0IG1ldGFkYXRhKCk6IEJ1aWxkaW5nQmxvY2tNZXRhZGF0YSB7XG5cdFx0cmV0dXJuIHRoaXMuaW50ZXJuYWxNZXRhZGF0YTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgc2V0IG1ldGFkYXRhKG5ld1ZhbHVlOiBCdWlsZGluZ0Jsb2NrTWV0YWRhdGEpIHtcblx0XHR0aGlzLmludGVybmFsTWV0YWRhdGEgPSBuZXdWYWx1ZTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgaXNSdW50aW1lOiBib29sZWFuID0gZmFsc2U7XG5cblx0cHJvdGVjdGVkIGlzUHVibGljID0gZmFsc2U7XG5cblx0cHJpdmF0ZSByZXNvdXJjZU1vZGVsPzogUmVzb3VyY2VNb2RlbDtcblxuXHRwdWJsaWMgaWQ/OiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IocHJvcHM6ICRDb250cm9sU2V0dGluZ3MsIF9jb250cm9sQ29uZmlndXJhdGlvbj86IHVua25vd24sIF92aXNpdG9yU2V0dGluZ3M/OiBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzKSB7XG5cdFx0T2JqZWN0LmtleXMocHJvcHMpLmZvckVhY2goKHByb3BOYW1lKSA9PiB7XG5cdFx0XHR0aGlzW3Byb3BOYW1lIGFzIGtleW9mIHRoaXNdID0gcHJvcHNbcHJvcE5hbWUgYXMga2V5b2YgJENvbnRyb2xTZXR0aW5nc10gYXMgbmV2ZXI7XG5cdFx0fSk7XG5cblx0XHR0aGlzLnJlc291cmNlTW9kZWwgPSBfdmlzaXRvclNldHRpbmdzPy5tb2RlbHM/LltcInNhcC5mZS5pMThuXCJdO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9ubHkgdXNlZCBpbnRlcm5hbGx5XG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0VGVtcGxhdGU/KG9Ob2RlPzogRWxlbWVudCk6IHN0cmluZyB8IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQ29udmVydCB0aGUgZ2l2ZW4gbG9jYWwgZWxlbWVudCBJRCB0byBhIGdsb2JhbGx5IHVuaXF1ZSBJRCBieSBwcmVmaXhpbmcgd2l0aCB0aGUgQnVpbGRpbmcgQmxvY2sgSUQuXG5cdCAqIEBwYXJhbSBzdHJpbmdQYXJ0c1xuXHQgKiBAcmV0dXJucyBFaXRoZXIgdGhlIGdsb2JhbCBJRCBvciB1bmRlZmluZWQgaWYgdGhlIEJ1aWxkaW5nIEJsb2NrIGRvZXNuJ3QgaGF2ZSBhbiBJRFxuXHQgKi9cblx0cHJvdGVjdGVkIGNyZWF0ZUlkKC4uLnN0cmluZ1BhcnRzOiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gSWYgdGhlIGNoaWxkIGluc3RhbmNlIGhhcyBhbiBJRCBwcm9wZXJ0eSB1c2UgaXQgb3RoZXJ3aXNlIHJldHVybiB1bmRlZmluZWRcblx0XHRpZiAodGhpcy5pZCkge1xuXHRcdFx0cmV0dXJuIGdlbmVyYXRlKFt0aGlzLmlkLCAuLi5zdHJpbmdQYXJ0c10pO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgSUQgb2YgdGhlIGNvbnRlbnQgY29udHJvbC5cblx0ICogQHBhcmFtIGJ1aWxkaW5nQmxvY2tJZFxuXHQgKiBAcmV0dXJucyBSZXR1cm4gdGhlIElEXG5cdCAqL1xuXHRwcm90ZWN0ZWQgZ2V0Q29udGVudElkKGJ1aWxkaW5nQmxvY2tJZDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYCR7YnVpbGRpbmdCbG9ja0lkfS1jb250ZW50YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRyYW5zbGF0ZWQgdGV4dCBmb3IgYSBnaXZlbiByZXNvdXJjZSBrZXkuXG5cdCAqIEBwYXJhbSB0ZXh0SUQgSUQgb2YgdGhlIFRleHRcblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgQXJyYXkgb2YgcGFyYW1ldGVycyB0aGF0IGFyZSB1c2VkIHRvIGNyZWF0ZSB0aGUgdGV4dFxuXHQgKiBAcGFyYW0gbWV0YVBhdGggRW50aXR5IHNldCBuYW1lIG9yIGFjdGlvbiBuYW1lIHRvIG92ZXJsb2FkIGEgdGV4dFxuXHQgKiBAcmV0dXJucyBEZXRlcm1pbmVkIHRleHRcblx0ICovXG5cdGdldFRyYW5zbGF0ZWRUZXh0KHRleHRJRDogc3RyaW5nLCBwYXJhbWV0ZXJzPzogdW5rbm93bltdLCBtZXRhUGF0aD86IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMucmVzb3VyY2VNb2RlbD8uZ2V0VGV4dCh0ZXh0SUQsIHBhcmFtZXRlcnMsIG1ldGFQYXRoKSB8fCB0ZXh0SUQ7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZ2V0Q29udmVydGVyQ29udGV4dCA9IGZ1bmN0aW9uIChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPHVua25vd24+LFxuXHRcdGNvbnRleHRQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdFx0c2V0dGluZ3M6IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MsXG5cdFx0ZXh0cmFQYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXHQpOiBDb252ZXJ0ZXJDb250ZXh0PFBhZ2VDb250ZXh0UGF0aFRhcmdldD4ge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IHNldHRpbmdzLmFwcENvbXBvbmVudDtcblx0XHRjb25zdCBvcmlnaW5hbFZpZXdEYXRhID0gc2V0dGluZ3MubW9kZWxzLnZpZXdEYXRhPy5nZXREYXRhKCk7XG5cdFx0bGV0IHZpZXdEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgb3JpZ2luYWxWaWV3RGF0YSk7XG5cdFx0ZGVsZXRlIHZpZXdEYXRhLnJlc291cmNlTW9kZWw7XG5cdFx0ZGVsZXRlIHZpZXdEYXRhLmFwcENvbXBvbmVudDtcblx0XHR2aWV3RGF0YSA9IGRlZXBDbG9uZSh2aWV3RGF0YSk7XG5cdFx0bGV0IGNvbnRyb2xDb25maWd1cmF0aW9uID0ge307XG5cblx0XHQvLyBPbmx5IG1lcmdlIGluIHBhZ2UgY29udHJvbCBjb25maWd1cmF0aW9uIGlmIHRoZSBidWlsZGluZyBibG9jayBpcyBvbiB0aGUgc2FtZSBjb250ZXh0XG5cdFx0Y29uc3QgcmVsYXRpdmVQYXRoID0gZ2V0VGFyZ2V0T2JqZWN0UGF0aChkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbiA/PyBkYXRhTW9kZWxPYmplY3RQYXRoKTtcblx0XHRjb25zdCBlbnRpdHlTZXROYW1lID0gZGF0YU1vZGVsT2JqZWN0UGF0aC5jb250ZXh0TG9jYXRpb24/LnRhcmdldEVudGl0eVNldD8ubmFtZSA/PyBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVNldD8ubmFtZTtcblx0XHRpZiAoXG5cdFx0XHRyZWxhdGl2ZVBhdGggPT09IG9yaWdpbmFsVmlld0RhdGE/LmNvbnRleHRQYXRoIHx8XG5cdFx0XHRyZWxhdGl2ZVBhdGggPT09IGAvJHtvcmlnaW5hbFZpZXdEYXRhPy5lbnRpdHlTZXR9YCB8fFxuXHRcdFx0ZW50aXR5U2V0TmFtZSA9PT0gb3JpZ2luYWxWaWV3RGF0YT8uZW50aXR5U2V0XG5cdFx0KSB7XG5cdFx0XHRjb250cm9sQ29uZmlndXJhdGlvbiA9IHZpZXdEYXRhLmNvbnRyb2xDb25maWd1cmF0aW9uO1xuXHRcdH1cblx0XHR2aWV3RGF0YS5jb250cm9sQ29uZmlndXJhdGlvbiA9IG1lcmdlKGNvbnRyb2xDb25maWd1cmF0aW9uLCBleHRyYVBhcmFtcyB8fCB7fSk7XG5cdFx0cmV0dXJuIENvbnZlcnRlckNvbnRleHQuY3JlYXRlQ29udmVydGVyQ29udGV4dEZvck1hY3JvKFxuXHRcdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldC5uYW1lLFxuXHRcdFx0c2V0dGluZ3MubW9kZWxzLm1ldGFNb2RlbCxcblx0XHRcdGFwcENvbXBvbmVudD8uZ2V0RGlhZ25vc3RpY3MoKSxcblx0XHRcdG1lcmdlLFxuXHRcdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC5jb250ZXh0TG9jYXRpb24sXG5cdFx0XHRuZXcgTWFuaWZlc3RXcmFwcGVyKHZpZXdEYXRhLCBhcHBDb21wb25lbnQpXG5cdFx0KTtcblx0fTtcblxuXHQvKipcblx0ICogT25seSB1c2VkIGludGVybmFsbHkuXG5cdCAqIEByZXR1cm5zIEFsbCB0aGUgcHJvcGVydGllcyBkZWZpbmVkIG9uIHRoZSBvYmplY3Qgd2l0aCB0aGVpciB2YWx1ZXNcblx0ICovXG5cdHB1YmxpYyBnZXRQcm9wZXJ0aWVzKCk6IFJlY29yZDxzdHJpbmcsIE9iamVjdFZhbHVlPiB7XG5cdFx0Y29uc3QgYWxsUHJvcGVydGllczogUmVjb3JkPHN0cmluZywgT2JqZWN0VmFsdWU+ID0ge307XG5cdFx0Zm9yIChjb25zdCBvSW5zdGFuY2VLZXkgaW4gdGhpcykge1xuXHRcdFx0aWYgKHRoaXMuaGFzT3duUHJvcGVydHkob0luc3RhbmNlS2V5KSkge1xuXHRcdFx0XHRhbGxQcm9wZXJ0aWVzW29JbnN0YW5jZUtleV0gPSB0aGlzW29JbnN0YW5jZUtleV0gYXMgdW5rbm93biBhcyBPYmplY3RWYWx1ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGFsbFByb3BlcnRpZXM7XG5cdH1cblxuXHRzdGF0aWMgcmVnaXN0ZXIoKTogdm9pZCB7XG5cdFx0cmVnaXN0ZXJCdWlsZGluZ0Jsb2NrKHRoaXMpO1xuXHR9XG5cblx0c3RhdGljIHVucmVnaXN0ZXIoKTogdm9pZCB7XG5cdFx0dW5yZWdpc3RlckJ1aWxkaW5nQmxvY2sodGhpcyk7XG5cdH1cblxuXHQvKipcblx0ICogQWRkIGEgcGFydCBvZiBzdHJpbmcgYmFzZWQgb24gdGhlIGNvbmRpdGlvbi5cblx0ICogQHBhcmFtIGNvbmRpdGlvblxuXHQgKiBAcGFyYW0gcGFydFRvQWRkXG5cdCAqIEByZXR1cm5zIFRoZSBwYXJ0IHRvIGFkZCBpZiB0aGUgY29uZGl0aW9uIGlzIHRydWUsIG90aGVyd2lzZSBhbiBlbXB0eSBzdHJpbmdcblx0ICovXG5cdHByb3RlY3RlZCBhZGRDb25kaXRpb25hbGx5KGNvbmRpdGlvbjogYm9vbGVhbiwgcGFydFRvQWRkOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiBhZGRDb25kaXRpb25hbGx5VG9YTUwoY29uZGl0aW9uLCBwYXJ0VG9BZGQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZCBhbiBhdHRyaWJ1dGUgZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS5cblx0ICogSWYgaXQncyB1bmRlZmluZWQgdGhlIGF0dHJpYnV0ZSBpcyBub3QgYWRkZWQuXG5cdCAqIEBwYXJhbSBhdHRyaWJ1dGVOYW1lXG5cdCAqIEBwYXJhbSB2YWx1ZVxuXHQgKiBAcmV0dXJucyBUaGUgYXR0cmlidXRlIHRvIGFkZCBpZiB0aGUgdmFsdWUgaXMgbm90IHVuZGVmaW5lZCwgb3RoZXJ3aXNlIGFuIGVtcHR5IHN0cmluZ1xuXHQgKi9cblx0cHJvdGVjdGVkIGF0dHIoYXR0cmlidXRlTmFtZTogc3RyaW5nLCB2YWx1ZT86IFhNTFByb2Nlc3NvclR5cGVWYWx1ZSk6ICgpID0+IHN0cmluZyB7XG5cdFx0cmV0dXJuIGFkZEF0dHJpYnV0ZVRvWE1MKGF0dHJpYnV0ZU5hbWUsIHZhbHVlKTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFzQkE7QUFDQTtBQUNBO0VBRkEsSUFHcUJBLDJCQUEyQjtJQW1CL0MsU0FBQUEsNEJBQVlDLEtBQXVCLEVBQUVDLHFCQUErQixFQUFFQyxnQkFBNEMsRUFBRTtNQUFBLEtBTjFHQyxRQUFRLEdBQUcsS0FBSztNQUFBLEtBcURoQkMsbUJBQW1CLEdBQUcsVUFDL0JDLG1CQUFpRCxFQUNqREMsV0FBK0IsRUFDL0JDLFFBQW1DLEVBQ25DQyxXQUFxQyxFQUNLO1FBQzFDLE1BQU1DLFlBQVksR0FBR0YsUUFBUSxDQUFDRSxZQUFZO1FBQzFDLE1BQU1DLGdCQUFnQixHQUFHSCxRQUFRLENBQUNJLE1BQU0sQ0FBQ0MsUUFBUSxFQUFFQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxJQUFJRCxRQUFRLEdBQUdFLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFTCxnQkFBZ0IsQ0FBQztRQUNsRCxPQUFPRSxRQUFRLENBQUNJLGFBQWE7UUFDN0IsT0FBT0osUUFBUSxDQUFDSCxZQUFZO1FBQzVCRyxRQUFRLEdBQUdLLFNBQVMsQ0FBQ0wsUUFBUSxDQUFDO1FBQzlCLElBQUlNLG9CQUFvQixHQUFHLENBQUMsQ0FBQzs7UUFFN0I7UUFDQSxNQUFN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
146
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UiLCJwcm9wcyIsIl9jb250cm9sQ29uZmlndXJhdGlvbiIsIl92aXNpdG9yU2V0dGluZ3MiLCJpc1B1YmxpYyIsImdldENvbnZlcnRlckNvbnRleHQiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwiY29udGV4dFBhdGgiLCJzZXR0aW5ncyIsImV4dHJhUGFyYW1zIiwiY2xlYW51cFZpZXdEYXRhIiwiYXBwQ29tcG9uZW50Iiwib3JpZ2luYWxWaWV3RGF0YSIsIm1vZGVscyIsInZpZXdEYXRhIiwiZ2V0RGF0YSIsIk9iamVjdCIsImFzc2lnbiIsInJlc291cmNlTW9kZWwiLCJkZWVwQ2xvbmUiLCJjb250cm9sQ29uZmlndXJhdGlvbiIsInJlbGF0aXZlUGF0aCIsImdldFRhcmdldE9iamVjdFBhdGgiLCJjb250ZXh0TG9jYXRpb24iLCJlbnRpdHlTZXROYW1lIiwidGFyZ2V0RW50aXR5U2V0IiwibmFtZSIsImVudGl0eVNldCIsIm1lcmdlIiwiQ29udmVydGVyQ29udGV4dCIsImNyZWF0ZUNvbnZlcnRlckNvbnRleHRGb3JNYWNybyIsInN0YXJ0aW5nRW50aXR5U2V0IiwibWV0YU1vZGVsIiwiZ2V0RGlhZ25vc3RpY3MiLCJNYW5pZmVzdFdyYXBwZXIiLCJrZXlzIiwiZm9yRWFjaCIsInByb3BOYW1lIiwiX2V4cG9ydHMiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJjcmVhdGVJZCIsImlkIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInN0cmluZ1BhcnRzIiwiQXJyYXkiLCJfa2V5IiwiZ2VuZXJhdGUiLCJ1bmRlZmluZWQiLCJnZXRDb250ZW50SWQiLCJidWlsZGluZ0Jsb2NrSWQiLCJnZXRUcmFuc2xhdGVkVGV4dCIsInRleHRJRCIsInBhcmFtZXRlcnMiLCJtZXRhUGF0aCIsImdldFRleHQiLCJnZXRQcm9wZXJ0aWVzIiwiYWxsUHJvcGVydGllcyIsIm9JbnN0YW5jZUtleSIsImhhc093blByb3BlcnR5IiwicmVnaXN0ZXIiLCJyZWdpc3RlckJ1aWxkaW5nQmxvY2siLCJ1bnJlZ2lzdGVyIiwidW5yZWdpc3RlckJ1aWxkaW5nQmxvY2siLCJhZGRDb25kaXRpb25hbGx5IiwiY29uZGl0aW9uIiwicGFydFRvQWRkIiwiYWRkQ29uZGl0aW9uYWxseVRvWE1MIiwiYXR0ciIsImF0dHJpYnV0ZU5hbWUiLCJ2YWx1ZSIsImFkZEF0dHJpYnV0ZVRvWE1MIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwiZ2V0IiwiaW50ZXJuYWxNZXRhZGF0YSIsInNldCIsIm5ld1ZhbHVlIiwiaXNSdW50aW1lIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlZXBDbG9uZSBmcm9tIFwic2FwL2Jhc2UvdXRpbC9kZWVwQ2xvbmVcIjtcbmltcG9ydCBtZXJnZSBmcm9tIFwic2FwL2Jhc2UvdXRpbC9tZXJnZVwiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBCdWlsZGluZ0Jsb2NrTWV0YWRhdGEsIE9iamVjdFZhbHVlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHtcblx0VGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncyxcblx0WE1MUHJvY2Vzc29yVHlwZVZhbHVlXG59IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IHtcblx0YWRkQXR0cmlidXRlVG9YTUwsXG5cdGFkZENvbmRpdGlvbmFsbHlUb1hNTCxcblx0cmVnaXN0ZXJCdWlsZGluZ0Jsb2NrLFxuXHR1bnJlZ2lzdGVyQnVpbGRpbmdCbG9ja1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCBNYW5pZmVzdFdyYXBwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgdHlwZSB7IFBhZ2VDb250ZXh0UGF0aFRhcmdldCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL1RlbXBsYXRlQ29udmVydGVyXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBidWlsZGluZyBibG9ja3NcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIHtcblx0cHJpdmF0ZSBzdGF0aWMgaW50ZXJuYWxNZXRhZGF0YTogQnVpbGRpbmdCbG9ja01ldGFkYXRhO1xuXG5cdHB1YmxpYyBzdGF0aWMgZ2V0IG1ldGFkYXRhKCk6IEJ1aWxkaW5nQmxvY2tNZXRhZGF0YSB7XG5cdFx0cmV0dXJuIHRoaXMuaW50ZXJuYWxNZXRhZGF0YTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgc2V0IG1ldGFkYXRhKG5ld1ZhbHVlOiBCdWlsZGluZ0Jsb2NrTWV0YWRhdGEpIHtcblx0XHR0aGlzLmludGVybmFsTWV0YWRhdGEgPSBuZXdWYWx1ZTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgaXNSdW50aW1lOiBib29sZWFuID0gZmFsc2U7XG5cblx0cHJvdGVjdGVkIGlzUHVibGljID0gZmFsc2U7XG5cblx0cHJpdmF0ZSByZXNvdXJjZU1vZGVsPzogUmVzb3VyY2VNb2RlbDtcblxuXHRwdWJsaWMgaWQ/OiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IocHJvcHM6ICRDb250cm9sU2V0dGluZ3MsIF9jb250cm9sQ29uZmlndXJhdGlvbj86IHVua25vd24sIF92aXNpdG9yU2V0dGluZ3M/OiBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzKSB7XG5cdFx0T2JqZWN0LmtleXMocHJvcHMpLmZvckVhY2goKHByb3BOYW1lKSA9PiB7XG5cdFx0XHR0aGlzW3Byb3BOYW1lIGFzIGtleW9mIHRoaXNdID0gcHJvcHNbcHJvcE5hbWUgYXMga2V5b2YgJENvbnRyb2xTZXR0aW5nc10gYXMgbmV2ZXI7XG5cdFx0fSk7XG5cblx0XHR0aGlzLnJlc291cmNlTW9kZWwgPSBfdmlzaXRvclNldHRpbmdzPy5tb2RlbHM/LltcInNhcC5mZS5pMThuXCJdO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9ubHkgdXNlZCBpbnRlcm5hbGx5XG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0VGVtcGxhdGU/KG9Ob2RlPzogRWxlbWVudCk6IHN0cmluZyB8IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQ29udmVydCB0aGUgZ2l2ZW4gbG9jYWwgZWxlbWVudCBJRCB0byBhIGdsb2JhbGx5IHVuaXF1ZSBJRCBieSBwcmVmaXhpbmcgd2l0aCB0aGUgQnVpbGRpbmcgQmxvY2sgSUQuXG5cdCAqIEBwYXJhbSBzdHJpbmdQYXJ0c1xuXHQgKiBAcmV0dXJucyBFaXRoZXIgdGhlIGdsb2JhbCBJRCBvciB1bmRlZmluZWQgaWYgdGhlIEJ1aWxkaW5nIEJsb2NrIGRvZXNuJ3QgaGF2ZSBhbiBJRFxuXHQgKi9cblx0cHJvdGVjdGVkIGNyZWF0ZUlkKC4uLnN0cmluZ1BhcnRzOiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gSWYgdGhlIGNoaWxkIGluc3RhbmNlIGhhcyBhbiBJRCBwcm9wZXJ0eSB1c2UgaXQgb3RoZXJ3aXNlIHJldHVybiB1bmRlZmluZWRcblx0XHRpZiAodGhpcy5pZCkge1xuXHRcdFx0cmV0dXJuIGdlbmVyYXRlKFt0aGlzLmlkLCAuLi5zdHJpbmdQYXJ0c10pO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgSUQgb2YgdGhlIGNvbnRlbnQgY29udHJvbC5cblx0ICogQHBhcmFtIGJ1aWxkaW5nQmxvY2tJZFxuXHQgKiBAcmV0dXJucyBSZXR1cm4gdGhlIElEXG5cdCAqL1xuXHRwcm90ZWN0ZWQgZ2V0Q29udGVudElkKGJ1aWxkaW5nQmxvY2tJZDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYCR7YnVpbGRpbmdCbG9ja0lkfS1jb250ZW50YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRyYW5zbGF0ZWQgdGV4dCBmb3IgYSBnaXZlbiByZXNvdXJjZSBrZXkuXG5cdCAqIEBwYXJhbSB0ZXh0SUQgSUQgb2YgdGhlIFRleHRcblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgQXJyYXkgb2YgcGFyYW1ldGVycyB0aGF0IGFyZSB1c2VkIHRvIGNyZWF0ZSB0aGUgdGV4dFxuXHQgKiBAcGFyYW0gbWV0YVBhdGggRW50aXR5IHNldCBuYW1lIG9yIGFjdGlvbiBuYW1lIHRvIG92ZXJsb2FkIGEgdGV4dFxuXHQgKiBAcmV0dXJucyBEZXRlcm1pbmVkIHRleHRcblx0ICovXG5cdGdldFRyYW5zbGF0ZWRUZXh0KHRleHRJRDogc3RyaW5nLCBwYXJhbWV0ZXJzPzogdW5rbm93bltdLCBtZXRhUGF0aD86IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMucmVzb3VyY2VNb2RlbD8uZ2V0VGV4dCh0ZXh0SUQsIHBhcmFtZXRlcnMsIG1ldGFQYXRoKSB8fCB0ZXh0SUQ7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZ2V0Q29udmVydGVyQ29udGV4dCA9IGZ1bmN0aW9uIChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPHVua25vd24+LFxuXHRcdGNvbnRleHRQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdFx0c2V0dGluZ3M6IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MsXG5cdFx0ZXh0cmFQYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcblx0XHRjbGVhbnVwVmlld0RhdGE/OiBGdW5jdGlvblxuXHQpOiBDb252ZXJ0ZXJDb250ZXh0PFBhZ2VDb250ZXh0UGF0aFRhcmdldD4ge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IHNldHRpbmdzLmFwcENvbXBvbmVudDtcblx0XHRjb25zdCBvcmlnaW5hbFZpZXdEYXRhID0gc2V0dGluZ3MubW9kZWxzLnZpZXdEYXRhPy5nZXREYXRhKCk7XG5cdFx0bGV0IHZpZXdEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgb3JpZ2luYWxWaWV3RGF0YSk7XG5cdFx0ZGVsZXRlIHZpZXdEYXRhLnJlc291cmNlTW9kZWw7XG5cdFx0ZGVsZXRlIHZpZXdEYXRhLmFwcENvbXBvbmVudDtcblx0XHR2aWV3RGF0YSA9IGRlZXBDbG9uZSh2aWV3RGF0YSk7XG5cdFx0bGV0IGNvbnRyb2xDb25maWd1cmF0aW9uID0ge307XG5cblx0XHQvLyBPbmx5IG1lcmdlIGluIHBhZ2UgY29udHJvbCBjb25maWd1cmF0aW9uIGlmIHRoZSBidWlsZGluZyBibG9jayBpcyBvbiB0aGUgc2FtZSBjb250ZXh0XG5cdFx0Y29uc3QgcmVsYXRpdmVQYXRoID0gZ2V0VGFyZ2V0T2JqZWN0UGF0aChkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbiA/PyBkYXRhTW9kZWxPYmplY3RQYXRoKTtcblx0XHRjb25zdCBlbnRpdHlTZXROYW1lID0gZGF0YU1vZGVsT2JqZWN0UGF0aC5jb250ZXh0TG9jYXRpb24/LnRhcmdldEVudGl0eVNldD8ubmFtZSA/PyBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVNldD8ubmFtZTtcblx0XHRpZiAoXG5cdFx0XHRyZWxhdGl2ZVBhdGggPT09IG9yaWdpbmFsVmlld0RhdGE/LmNvbnRleHRQYXRoIHx8XG5cdFx0XHRyZWxhdGl2ZVBhdGggPT09IGAvJHtvcmlnaW5hbFZpZXdEYXRhPy5lbnRpdHlTZXR9YCB8fFxuXHRcdFx0ZW50aXR5U2V0TmFtZSA9PT0gb3JpZ2luYWxWaWV3RGF0YT8uZW50aXR5U2V0XG5cdFx0KSB7XG5cdFx0XHRjb250cm9sQ29uZmlndXJhdGlvbiA9IHZpZXdEYXRhLmNvbnRyb2xDb25maWd1cmF0aW9uO1xuXHRcdH1cblx0XHR2aWV3RGF0YS5jb250cm9sQ29uZmlndXJhdGlvbiA9IG1lcmdlKHt9LCBleHRyYVBhcmFtcyA/PyB7fSwgY29udHJvbENvbmZpZ3VyYXRpb24pO1xuXHRcdC8vIE1vc3RseSBmb3IgdGhlIHRhYmxlIGNhc2UgdG8gcmVtb3ZlIGNvbHVtbnMgYWRkZWQgdGhyb3VnaCBvbmUgcGF0aFxuXHRcdGNsZWFudXBWaWV3RGF0YT8uKHZpZXdEYXRhKTtcblx0XHRyZXR1cm4gQ29udmVydGVyQ29udGV4dC5jcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8oXG5cdFx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0Lm5hbWUsXG5cdFx0XHRzZXR0aW5ncy5tb2RlbHMubWV0YU1vZGVsLFxuXHRcdFx0YXBwQ29tcG9uZW50Py5nZXREaWFnbm9zdGljcygpLFxuXHRcdFx0bWVyZ2UsXG5cdFx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbixcblx0XHRcdG5ldyBNYW5pZmVzdFdyYXBwZXIodmlld0RhdGEsIGFwcENvbXBvbmVudClcblx0XHQpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBPbmx5IHVzZWQgaW50ZXJuYWxseS5cblx0ICogQHJldHVybnMgQWxsIHRoZSBwcm9wZXJ0aWVzIGRlZmluZWQgb24gdGhlIG9iamVjdCB3aXRoIHRoZWlyIHZhbHVlc1xuXHQgKi9cblx0cHVibGljIGdldFByb3BlcnRpZXMoKTogUmVjb3JkPHN0cmluZywgT2JqZWN0VmFsdWU+IHtcblx0XHRjb25zdCBhbGxQcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RWYWx1ZT4gPSB7fTtcblx0XHRmb3IgKGNvbnN0IG9JbnN0YW5jZUtleSBpbiB0aGlzKSB7XG5cdFx0XHRpZiAodGhpcy5oYXNPd25Qcm9wZXJ0eShvSW5zdGFuY2VLZXkpKSB7XG5cdFx0XHRcdGFsbFByb3BlcnRpZXNbb0luc3RhbmNlS2V5XSA9IHRoaXNbb0luc3RhbmNlS2V5XSBhcyB1bmtub3duIGFzIE9iamVjdFZhbHVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gYWxsUHJvcGVydGllcztcblx0fVxuXG5cdHN0YXRpYyByZWdpc3RlcigpOiB2b2lkIHtcblx0XHRyZWdpc3RlckJ1aWxkaW5nQmxvY2sodGhpcyk7XG5cdH1cblxuXHRzdGF0aWMgdW5yZWdpc3RlcigpOiB2b2lkIHtcblx0XHR1bnJlZ2lzdGVyQnVpbGRpbmdCbG9jayh0aGlzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGQgYSBwYXJ0IG9mIHN0cmluZyBiYXNlZCBvbiB0aGUgY29uZGl0aW9uLlxuXHQgKiBAcGFyYW0gY29uZGl0aW9uXG5cdCAqIEBwYXJhbSBwYXJ0VG9BZGRcblx0ICogQHJldHVybnMgVGhlIHBhcnQgdG8gYWRkIGlmIHRoZSBjb25kaXRpb24gaXMgdHJ1ZSwgb3RoZXJ3aXNlIGFuIGVtcHR5IHN0cmluZ1xuXHQgKi9cblx0cHJvdGVjdGVkIGFkZENvbmRpdGlvbmFsbHkoY29uZGl0aW9uOiBib29sZWFuLCBwYXJ0VG9BZGQ6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGFkZENvbmRpdGlvbmFsbHlUb1hNTChjb25kaXRpb24sIHBhcnRUb0FkZCk7XG5cdH1cblxuXHQvKipcblx0ICogQWRkIGFuIGF0dHJpYnV0ZSBkZXBlbmRpbmcgb24gdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHByb3BlcnR5LlxuXHQgKiBJZiBpdCdzIHVuZGVmaW5lZCB0aGUgYXR0cmlidXRlIGlzIG5vdCBhZGRlZC5cblx0ICogQHBhcmFtIGF0dHJpYnV0ZU5hbWVcblx0ICogQHBhcmFtIHZhbHVlXG5cdCAqIEByZXR1cm5zIFRoZSBhdHRyaWJ1dGUgdG8gYWRkIGlmIHRoZSB2YWx1ZSBpcyBub3QgdW5kZWZpbmVkLCBvdGhlcndpc2UgYW4gZW1wdHkgc3RyaW5nXG5cdCAqL1xuXHRwcm90ZWN0ZWQgYXR0cihhdHRyaWJ1dGVOYW1lOiBzdHJpbmcsIHZhbHVlPzogWE1MUHJvY2Vzc29yVHlwZVZhbHVlKTogKCkgPT4gc3RyaW5nIHtcblx0XHRyZXR1cm4gYWRkQXR0cmlidXRlVG9YTUwoYXR0cmlidXRlTmFtZSwgdmFsdWUpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXNCQTtBQUNBO0FBQ0E7RUFGQSxJQUdxQkEsMkJBQTJCO0lBbUIvQyxTQUFBQSw0QkFBWUMsS0FBdUIsRUFBRUMscUJBQStCLEVBQUVDLGdCQUE0QyxFQUFFO01BQUEsS0FOMUdDLFFBQVEsR0FBRyxLQUFLO01BQUEsS0FxRGhCQyxtQkFBbUIsR0FBRyxVQUMvQkMsbUJBQWlELEVBQ2pEQyxXQUErQixFQUMvQkMsUUFBbUMsRUFDbkNDLFdBQXFDLEVBQ3JDQyxlQUEwQixFQUNnQjtRQUMxQyxNQUFNQyxZQUFZLEdBQUdILFFBQVEsQ0FBQ0csWUFBWTtRQUMxQyxNQUFNQyxnQkFBZ0IsR0FBR0osUUFBUSxDQUFDSyxNQUFNLENBQUNDLFFBQVEsRUFBRUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsSUFBSUQsUUFBUSxHQUFHRSxNQUFNLENBQUNDLE1BQU0s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
@@ -93,7 +93,8 @@ export default class BuildingBlockTemplatingBase {
93
93
  dataModelObjectPath: DataModelObjectPath<unknown>,
94
94
  contextPath: string | undefined,
95
95
  settings: TemplateProcessorSettings,
96
- extraParams?: Record<string, unknown>
96
+ extraParams?: Record<string, unknown>,
97
+ cleanupViewData?: Function
97
98
  ): ConverterContext<PageContextPathTarget> {
98
99
  const appComponent = settings.appComponent;
99
100
  const originalViewData = settings.models.viewData?.getData();
@@ -113,7 +114,9 @@ export default class BuildingBlockTemplatingBase {
113
114
  ) {
114
115
  controlConfiguration = viewData.controlConfiguration;
115
116
  }
116
- viewData.controlConfiguration = merge(controlConfiguration, extraParams || {});
117
+ viewData.controlConfiguration = merge({}, extraParams ?? {}, controlConfiguration);
118
+ // Mostly for the table case to remove columns added through one path
119
+ cleanupViewData?.(viewData);
117
120
  return ConverterContext.createConverterContextForMacro(
118
121
  dataModelObjectPath.startingEntitySet.name,
119
122
  settings.models.metaModel,
@@ -5,7 +5,7 @@
5
5
  sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension"], function (ClassSupport, ControllerExtension) {
6
6
  "use strict";
7
7
 
8
- var _dec, _class;
8
+ var _dec, _class, _BaseControllerExtension;
9
9
  var _exports = {};
10
10
  var defineUI5Class = ClassSupport.defineUI5Class;
11
11
  function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
@@ -15,7 +15,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension"
15
15
  * @public
16
16
  * @since 1.118.0
17
17
  */
18
- let BaseControllerExtension = (_dec = defineUI5Class("sap.fe.core.controllerextensions.BaseControllerExtension"), _dec(_class = /*#__PURE__*/function (_ControllerExtension) {
18
+ let BaseControllerExtension = (_dec = defineUI5Class("sap.fe.core.controllerextensions.BaseControllerExtension"), _dec(_class = (_BaseControllerExtension = /*#__PURE__*/function (_ControllerExtension) {
19
19
  function BaseControllerExtension() {
20
20
  var _this;
21
21
  _this = _ControllerExtension.call(this) || this;
@@ -25,7 +25,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension"
25
25
 
26
26
  /**
27
27
  * This method is called when the controller extension is instantiated.
28
- * We need to override it for the specific handling for BeforeAsync and AfterAsync methods, otherwise the last level of extension just replace our implementation.
28
+ * We need to override it for the specific handling for the BeforeAsync and AfterAsync methods, otherwise the last level of the extension replaces our implementation.
29
29
  * @returns The interface for this controller extension
30
30
  */
31
31
  _exports = BaseControllerExtension;
@@ -68,8 +68,10 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension"
68
68
  return interfaceObj;
69
69
  };
70
70
  return BaseControllerExtension;
71
- }(ControllerExtension)) || _class);
71
+ }(ControllerExtension), _BaseControllerExtension.createExtensionOverrides = function (overrides) {
72
+ return overrides;
73
+ }, _BaseControllerExtension)) || _class);
72
74
  _exports = BaseControllerExtension;
73
75
  return _exports;
74
76
  }, false);
75
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29udHJvbGxlckV4dGVuc2lvbiIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9jbGFzcyIsIl9Db250cm9sbGVyRXh0ZW5zaW9uIiwiX3RoaXMiLCJjYWxsIiwiaW5pdCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRJbnRlcmZhY2UiLCJfdGhpczIiLCJpbnRlcmZhY2VPYmoiLCJtZXRhZGF0YSIsImdldE1ldGFkYXRhIiwiYWxsTWV0aG9kcyIsImdldEFsbE1ldGhvZHMiLCJtZXRob2RIb2xkZXIiLCJtZXRob2ROYW1lIiwibWV0aG9kIiwib3ZlcnJpZGVFeGVjdXRpb24iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsInNldCIsInYiLCJwdXNoIiwiZ2V0IiwibWV0aG9kQXJyYXlzIiwicmV2ZXJzZSIsInJlc3VsdCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiYXJnIiwiYXBwbHkiLCJDb250cm9sbGVyRXh0ZW5zaW9uIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCYXNlQ29udHJvbGxlckV4dGVuc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyTWV0YWRhdGEgZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyTWV0YWRhdGFcIjtcbi8qKlxuICogQSBiYXNlIGltcGxlbWVudGF0aW9uIGZvciBjb250cm9sbGVyIGV4dGVuc2lvbiB1c2VkIGludGVybmFsbHkgaW4gc2FwLmZlIGZvciBjZW50cmFsIGZ1bmN0aW9uYWxpdGllcy5cbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjExOC4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLkJhc2VDb250cm9sbGVyRXh0ZW5zaW9uXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYXNlQ29udHJvbGxlckV4dGVuc2lvbiBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdCh0aGlzIGFzIHVua25vd24gYXMgeyBpbml0OiBGdW5jdGlvbiB9KS5pbml0KCk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIGlzIGluc3RhbnRpYXRlZC5cblx0ICogV2UgbmVlZCB0byBvdmVycmlkZSBpdCBmb3IgdGhlIHNwZWNpZmljIGhhbmRsaW5nIGZvciBCZWZvcmVBc3luYyBhbmQgQWZ0ZXJBc3luYyBtZXRob2RzLCBvdGhlcndpc2UgdGhlIGxhc3QgbGV2ZWwgb2YgZXh0ZW5zaW9uIGp1c3QgcmVwbGFjZSBvdXIgaW1wbGVtZW50YXRpb24uXG5cdCAqIEByZXR1cm5zIFRoZSBpbnRlcmZhY2UgZm9yIHRoaXMgY29udHJvbGxlciBleHRlbnNpb25cblx0ICovXG5cdGdldEludGVyZmFjZSgpOiBCYXNlT2JqZWN0IHtcblx0XHRjb25zdCBpbnRlcmZhY2VPYmogPSBzdXBlci5nZXRJbnRlcmZhY2UoKTtcblx0XHRjb25zdCBtZXRhZGF0YSA9IHRoaXMuZ2V0TWV0YWRhdGEoKSBhcyBDb250cm9sbGVyTWV0YWRhdGE7XG5cdFx0Y29uc3QgYWxsTWV0aG9kcyA9IG1ldGFkYXRhLmdldEFsbE1ldGhvZHMoKTtcblx0XHRjb25zdCBtZXRob2RIb2xkZXI6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uW10+ID0ge307XG5cblx0XHRmb3IgKGNvbnN0IG1ldGhvZE5hbWUgaW4gYWxsTWV0aG9kcykge1xuXHRcdFx0Y29uc3QgbWV0aG9kID0gYWxsTWV0aG9kc1ttZXRob2ROYW1lXTtcblx0XHRcdGlmIChtZXRob2Qub3ZlcnJpZGVFeGVjdXRpb24gJiYgKG1ldGhvZC5vdmVycmlkZUV4ZWN1dGlvbiA9PT0gXCJBZnRlckFzeW5jXCIgfHwgbWV0aG9kLm92ZXJyaWRlRXhlY3V0aW9uID09PSBcIkJlZm9yZUFzeW5jXCIpKSB7XG5cdFx0XHRcdG1ldGhvZEhvbGRlclttZXRob2ROYW1lXSA9IFsoaW50ZXJmYWNlT2JqIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+KVttZXRob2ROYW1lXV07XG5cdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnRlcmZhY2VPYmosIG1ldGhvZE5hbWUsIHtcblx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdFx0c2V0OiAodjogRnVuY3Rpb24pID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBtZXRob2RIb2xkZXJbbWV0aG9kTmFtZV0ucHVzaCh2KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGFzeW5jICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgbWV0aG9kQXJyYXlzID0gbWV0aG9kSG9sZGVyW21ldGhvZE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRpZiAobWV0aG9kLm92ZXJyaWRlRXhlY3V0aW9uID09PSBcIkJlZm9yZUFzeW5jXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRtZXRob2RBcnJheXMucmV2ZXJzZSgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGxldCByZXN1bHQ7XG5cdFx0XHRcdFx0XHRcdGZvciAoY29uc3QgYXJnIG9mIG1ldGhvZEFycmF5cykge1xuXHRcdFx0XHRcdFx0XHRcdHJlc3VsdCA9IGF3YWl0IGFyZy5hcHBseSh0aGlzLCBhcmdzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBpbnRlcmZhY2VPYmo7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0VBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBLElBTXFCQSx1QkFBdUIsSUFBQUMsSUFBQSxHQUQzQ0MsY0FBYyxDQUFDLDBEQUEwRCxDQUFDLEVBQUFELElBQUEsQ0FBQUUsTUFBQSwwQkFBQUMsb0JBQUE7SUFFMUUsU0FBQUosd0JBQUEsRUFBYztNQUFBLElBQUFLLEtBQUE7TUFDYkEsS0FBQSxHQUFBRCxvQkFBQSxDQUFBRSxJQUFBLEtBQU0sQ0FBQztNQUNQRCxLQUFBLENBQXdDRSxJQUFJLENBQUMsQ0FBQztNQUFDLE9BQUFGLEtBQUE7SUFDaEQ7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtJQUpDRyxRQUFBLEdBQUFSLHVCQUFBO0lBQUFTLGNBQUEsQ0FBQVQsdUJBQUEsRUFBQUksb0JBQUE7SUFBQSxJQUFBTSxNQUFBLEdBQUFWLHVCQUFBLENBQUFXLFNBQUE7SUFBQUQsTUFBQSxDQUtBRSxZQUFZLEdBQVosU0FBQUEsWUFBWUEsQ0FBQSxFQUFlO01BQUEsSUFBQUMsTUFBQTtNQUMxQixNQUFNQyxZQUFZLEdBQUFWLG9CQUFBLENBQUFPLFNBQUEsQ0FBU0MsWUFBWSxDQUFBTixJQUFBLE1BQUU7TUFDekMsTUFBTVMsUUFBUSxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLENBQXVCO01BQ3pELE1BQU1DLFVBQVUsR0FBR0YsUUFBUSxDQUFDRyxhQUFhLENBQUMsQ0FBQztNQUMzQyxNQUFNQyxZQUF3QyxHQUFHLENBQUMsQ0FBQztNQUVuRCxLQUFLLE1BQU1DLFVBQVUsSUFBSUgsVUFBVSxFQUFFO1FBQ3BDLE1BQU1JLE1BQU0sR0FBR0osVUFBVSxDQUFDRyxVQUFVLENBQUM7UUFDckMsSUFBSUMsTUFBTSxDQUFDQyxpQkFBaUIsS0FBS0QsTUFBTSxDQUFDQyxpQkFBaUIsS0FBSyxZQUFZLElBQUlELE1BQU0sQ0FBQ0MsaUJBQWlCLEtBQUssYUFBYSxDQUFDLEVBQUU7VUFDMUhILFlBQVksQ0FBQ0MsVUFBVSxDQUFDLEdBQUcsQ0FBRU4sWUFBWSxDQUF5Q00sVUFBVSxDQUFDLENBQUM7VUFDOUZHLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDVixZQUFZLEVBQUVNLFVBQVUsRUFBRTtZQUMvQ0ssWUFBWSxFQUFFLElBQUk7WUFDbEJDLEdBQUcsRUFBR0MsQ0FBVyxJQUFLO2NBQ3JCLE9BQU9SLFlBQVksQ0FBQ0MsVUFBVSxDQUFDLENBQUNRLElBQUksQ0FBQ0QsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFDREUsR0FBRyxFQUFFQSxDQUFBLEtBQU07Y0FDVixPQUFPLGtCQUE4QjtnQkFDcEMsTUFBTUMsWUFBWSxHQUFHWCxZQUFZLENBQUNDLFVBQVUsQ0FBQztnQkFDN0MsSUFBSUMsTUFBTSxDQUFDQyxpQkFBaUIsS0FBSyxhQUFhLEVBQUU7a0JBQy9DUSxZQUFZLENBQUNDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QjtnQkFDQSxJQUFJQyxNQUFNO2dCQUFDLFNBQUFDLElBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBTEtDLElBQUksT0FBQUMsS0FBQSxDQUFBSixJQUFBLEdBQUFLLElBQUEsTUFBQUEsSUFBQSxHQUFBTCxJQUFBLEVBQUFLLElBQUE7a0JBQUpGLElBQUksQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJLElBQUE7Z0JBQUE7Z0JBTXBCLEtBQUssTUFBTUMsR0FBRyxJQUFJVCxZQUFZLEVBQUU7a0JBQy9CRSxNQUFNLEdBQUcsTUFBTU8sR0FBRyxDQUFDQyxLQUFLLENBQUMzQixNQUFJLEVBQUV1QixJQUFJLENBQUM7Z0JBQ3JDO2dCQUNBLE9BQU9KLE1BQU07Y0FDZCxDQUFDO1lBQ0Y7VUFDRCxDQUFDLENBQUM7UUFDSDtNQUNEO01BRUEsT0FBT2xCLFlBQVk7SUFDcEIsQ0FBQztJQUFBLE9BQUFkLHVCQUFBO0VBQUEsRUE1Q21EeUMsbUJBQW1CLE1BQUF0QyxNQUFBO0VBQUFLLFFBQUEsR0FBQVIsdUJBQUE7RUFBQSxPQUFBUSxRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29udHJvbGxlckV4dGVuc2lvbiIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9jbGFzcyIsIl9CYXNlQ29udHJvbGxlckV4dGVuc2lvbiIsIl9Db250cm9sbGVyRXh0ZW5zaW9uIiwiX3RoaXMiLCJjYWxsIiwiaW5pdCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRJbnRlcmZhY2UiLCJfdGhpczIiLCJpbnRlcmZhY2VPYmoiLCJtZXRhZGF0YSIsImdldE1ldGFkYXRhIiwiYWxsTWV0aG9kcyIsImdldEFsbE1ldGhvZHMiLCJtZXRob2RIb2xkZXIiLCJtZXRob2ROYW1lIiwibWV0aG9kIiwib3ZlcnJpZGVFeGVjdXRpb24iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsInNldCIsInYiLCJwdXNoIiwiZ2V0IiwibWV0aG9kQXJyYXlzIiwicmV2ZXJzZSIsInJlc3VsdCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiYXJnIiwiYXBwbHkiLCJDb250cm9sbGVyRXh0ZW5zaW9uIiwiY3JlYXRlRXh0ZW5zaW9uT3ZlcnJpZGVzIiwib3ZlcnJpZGVzIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCYXNlQ29udHJvbGxlckV4dGVuc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIFBhZ2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9QYWdlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgQmFzZU9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvT2JqZWN0XCI7XG5pbXBvcnQgQ29udHJvbGxlckV4dGVuc2lvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJFeHRlbnNpb25cIjtcbmltcG9ydCB0eXBlIENvbnRyb2xsZXJNZXRhZGF0YSBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJNZXRhZGF0YVwiO1xuLyoqXG4gKiBBIGJhc2UgaW1wbGVtZW50YXRpb24gZm9yIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIHVzZWQgaW50ZXJuYWxseSBpbiBzYXAuZmUgZm9yIGNlbnRyYWwgZnVuY3Rpb25hbGl0aWVzLlxuICogQHB1YmxpY1xuICogQHNpbmNlIDEuMTE4LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuQmFzZUNvbnRyb2xsZXJFeHRlbnNpb25cIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhc2VDb250cm9sbGVyRXh0ZW5zaW9uPFQgZXh0ZW5kcyBQYWdlQ29udHJvbGxlciA9IFBhZ2VDb250cm9sbGVyPiBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHQvLyBTZXQgYnkgVUk1XG5cdC8qKlxuXHQgKiBUaGUgY29udHJvbGxlciBpbnN0YW5jZSB0aGF0IGlzIGV4dGVuZGVkIGJ5IHRoaXMgY29udHJvbGxlciBleHRlbnNpb24uXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHByb3RlY3RlZCBiYXNlITogVDtcblxuXHQvKipcblx0ICogQ3JlYXRlIHRoZSBvdmVycmlkZXMgZm9yIHRoZSBjb250cm9sbGVyIGV4dGVuc2lvbi5cblx0ICpcblx0ICogVGhpcyBtZXRob2QgaXMgYSBoZWxwZXIgdG8gZ2V0IHRoZSBjb3JyZWN0IHR5cGluZyB3aGVuIGltcGxlbWVudGluZyB5b3VyIG93biBjb250cm9sbGVyIGV4dGVuc2lvbi5cblx0ICogQHBhcmFtIG92ZXJyaWRlcyBUaGUgb3ZlcnJpZGVzIHRvIGFwcGx5XG5cdCAqIEByZXR1cm5zIFRoZSBvdmVycmlkZXMgcGFzc2VkIGluIGFzIHBhcmFtZXRlciB3aXRoIGNvcnJlY3QgdHlwaW5nXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgY3JlYXRlRXh0ZW5zaW9uT3ZlcnJpZGVzID0gZnVuY3Rpb24gKG92ZXJyaWRlczogb2JqZWN0KTogb2JqZWN0IHtcblx0XHRyZXR1cm4gb3ZlcnJpZGVzO1xuXHR9O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0KHRoaXMgYXMgdW5rbm93biBhcyB7IGluaXQ6IEZ1bmN0aW9uIH0pLmluaXQoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgY29udHJvbGxlciBleHRlbnNpb24gaXMgaW5zdGFudGlhdGVkLlxuXHQgKiBXZSBuZWVkIHRvIG92ZXJyaWRlIGl0IGZvciB0aGUgc3BlY2lmaWMgaGFuZGxpbmcgZm9yIHRoZSBCZWZvcmVBc3luYyBhbmQgQWZ0ZXJBc3luYyBtZXRob2RzLCBvdGhlcndpc2UgdGhlIGxhc3QgbGV2ZWwgb2YgdGhlIGV4dGVuc2lvbiByZXBsYWNlcyBvdXIgaW1wbGVtZW50YXRpb24uXG5cdCAqIEByZXR1cm5zIFRoZSBpbnRlcmZhY2UgZm9yIHRoaXMgY29udHJvbGxlciBleHRlbnNpb25cblx0ICovXG5cdGdldEludGVyZmFjZSgpOiBCYXNlT2JqZWN0IHtcblx0XHRjb25zdCBpbnRlcmZhY2VPYmogPSBzdXBlci5nZXRJbnRlcmZhY2UoKTtcblx0XHRjb25zdCBtZXRhZGF0YSA9IHRoaXMuZ2V0TWV0YWRhdGEoKSBhcyBDb250cm9sbGVyTWV0YWRhdGE7XG5cdFx0Y29uc3QgYWxsTWV0aG9kcyA9IG1ldGFkYXRhLmdldEFsbE1ldGhvZHMoKTtcblx0XHRjb25zdCBtZXRob2RIb2xkZXI6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uW10+ID0ge307XG5cblx0XHRmb3IgKGNvbnN0IG1ldGhvZE5hbWUgaW4gYWxsTWV0aG9kcykge1xuXHRcdFx0Y29uc3QgbWV0aG9kID0gYWxsTWV0aG9kc1ttZXRob2ROYW1lXTtcblx0XHRcdGlmIChtZXRob2Qub3ZlcnJpZGVFeGVjdXRpb24gJiYgKG1ldGhvZC5vdmVycmlkZUV4ZWN1dGlvbiA9PT0gXCJBZnRlckFzeW5jXCIgfHwgbWV0aG9kLm92ZXJyaWRlRXhlY3V0aW9uID09PSBcIkJlZm9yZUFzeW5jXCIpKSB7XG5cdFx0XHRcdG1ldGhvZEhvbGRlclttZXRob2ROYW1lXSA9IFsoaW50ZXJmYWNlT2JqIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+KVttZXRob2ROYW1lXV07XG5cdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnRlcmZhY2VPYmosIG1ldGhvZE5hbWUsIHtcblx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdFx0c2V0OiAodjogRnVuY3Rpb24pID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBtZXRob2RIb2xkZXJbbWV0aG9kTmFtZV0ucHVzaCh2KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGFzeW5jICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgbWV0aG9kQXJyYXlzID0gbWV0aG9kSG9sZGVyW21ldGhvZE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRpZiAobWV0aG9kLm92ZXJyaWRlRXhlY3V0aW9uID09PSBcIkJlZm9yZUFzeW5jXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRtZXRob2RBcnJheXMucmV2ZXJzZSgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGxldCByZXN1bHQ7XG5cdFx0XHRcdFx0XHRcdGZvciAoY29uc3QgYXJnIG9mIG1ldGhvZEFycmF5cykge1xuXHRcdFx0XHRcdFx0XHRcdHJlc3VsdCA9IGF3YWl0IGFyZy5hcHBseSh0aGlzLCBhcmdzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJl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
@@ -1,4 +1,5 @@
1
1
  import { defineUI5Class } from "sap/fe/base/ClassSupport";
2
+ import type PageController from "sap/fe/core/PageController";
2
3
  import type BaseObject from "sap/ui/base/Object";
3
4
  import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
4
5
  import type ControllerMetadata from "sap/ui/core/mvc/ControllerMetadata";
@@ -8,7 +9,26 @@ import type ControllerMetadata from "sap/ui/core/mvc/ControllerMetadata";
8
9
  * @since 1.118.0
9
10
  */
10
11
  @defineUI5Class("sap.fe.core.controllerextensions.BaseControllerExtension")
11
- export default class BaseControllerExtension extends ControllerExtension {
12
+ export default class BaseControllerExtension<T extends PageController = PageController> extends ControllerExtension {
13
+ // Set by UI5
14
+ /**
15
+ * The controller instance that is extended by this controller extension.
16
+ * @public
17
+ */
18
+ protected base!: T;
19
+
20
+ /**
21
+ * Create the overrides for the controller extension.
22
+ *
23
+ * This method is a helper to get the correct typing when implementing your own controller extension.
24
+ * @param overrides The overrides to apply
25
+ * @returns The overrides passed in as parameter with correct typing
26
+ * @public
27
+ */
28
+ public static createExtensionOverrides = function (overrides: object): object {
29
+ return overrides;
30
+ };
31
+
12
32
  constructor() {
13
33
  super();
14
34
  (this as unknown as { init: Function }).init();
@@ -16,7 +36,7 @@ export default class BaseControllerExtension extends ControllerExtension {
16
36
 
17
37
  /**
18
38
  * This method is called when the controller extension is instantiated.
19
- * We need to override it for the specific handling for BeforeAsync and AfterAsync methods, otherwise the last level of extension just replace our implementation.
39
+ * We need to override it for the specific handling for the BeforeAsync and AfterAsync methods, otherwise the last level of the extension replaces our implementation.
20
40
  * @returns The interface for this controller extension
21
41
  */
22
42
  getInterface(): BaseObject {