@sapui5/sap.fe.core 1.99.0 → 1.100.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 (246) hide show
  1. package/package.json +4 -2
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AnnotationHelper.js +1 -69
  4. package/src/sap/fe/core/AnnotationHelper.ts +0 -70
  5. package/src/sap/fe/core/AppComponent.js +388 -399
  6. package/src/sap/fe/core/AppComponent.ts +403 -0
  7. package/src/sap/fe/core/AppStateHandler.js +127 -158
  8. package/src/sap/fe/core/BaseController.js +82 -58
  9. package/src/sap/fe/core/BaseController.ts +68 -0
  10. package/src/sap/fe/core/CommonUtils.js +111 -20
  11. package/src/sap/fe/core/CommonUtils.ts +131 -32
  12. package/src/sap/fe/core/ExtensionAPI.js +278 -274
  13. package/src/sap/fe/core/ExtensionAPI.ts +250 -0
  14. package/src/sap/fe/core/PageController.js +157 -29
  15. package/src/sap/fe/core/PageController.ts +60 -32
  16. package/src/sap/fe/core/RouterProxy.js +694 -756
  17. package/src/sap/fe/core/RouterProxy.ts +11 -9
  18. package/src/sap/fe/core/Synchronization.js +21 -31
  19. package/src/sap/fe/core/TemplateComponent.js +1 -1
  20. package/src/sap/fe/core/TemplateComponent.ts +10 -3
  21. package/src/sap/fe/core/TemplateModel.js +20 -38
  22. package/src/sap/fe/core/TemplateModel.ts +1 -1
  23. package/src/sap/fe/core/TransactionHelper.js +1354 -1370
  24. package/src/sap/fe/core/TransactionHelper.ts +33 -22
  25. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +392 -0
  26. package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
  27. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +136 -0
  28. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
  29. package/src/sap/fe/core/actions/collaboration/Manage.js +262 -0
  30. package/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
  31. package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
  32. package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
  33. package/src/sap/fe/core/actions/draft.js +30 -68
  34. package/src/sap/fe/core/actions/draft.ts +44 -71
  35. package/src/sap/fe/core/actions/messageHandling.js +55 -36
  36. package/src/sap/fe/core/actions/messageHandling.ts +66 -46
  37. package/src/sap/fe/core/actions/operations.js +34 -15
  38. package/src/sap/fe/core/actions/operations.ts +48 -18
  39. package/src/sap/fe/core/actions/sticky.js +17 -4
  40. package/src/sap/fe/core/actions/sticky.ts +21 -4
  41. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +69 -66
  42. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
  43. package/src/sap/fe/core/controllerextensions/EditFlow.js +1593 -1669
  44. package/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
  45. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +79 -54
  46. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
  47. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +718 -779
  48. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
  49. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +796 -816
  50. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
  51. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1004 -1005
  52. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
  53. package/src/sap/fe/core/controllerextensions/KPIManagement.js +487 -521
  54. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -2
  55. package/src/sap/fe/core/controllerextensions/MassEdit.js +141 -169
  56. package/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
  57. package/src/sap/fe/core/controllerextensions/MessageHandler.js +233 -244
  58. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
  59. package/src/sap/fe/core/controllerextensions/PageReady.js +301 -336
  60. package/src/sap/fe/core/controllerextensions/PageReady.ts +12 -10
  61. package/src/sap/fe/core/controllerextensions/Paginator.js +188 -175
  62. package/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
  63. package/src/sap/fe/core/controllerextensions/Placeholder.js +157 -149
  64. package/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
  65. package/src/sap/fe/core/controllerextensions/Routing.js +144 -125
  66. package/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
  67. package/src/sap/fe/core/controllerextensions/RoutingListener.js +7 -6
  68. package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
  69. package/src/sap/fe/core/controllerextensions/Share.js +230 -268
  70. package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
  71. package/src/sap/fe/core/controllerextensions/SideEffects.js +592 -633
  72. package/src/sap/fe/core/controllerextensions/SideEffects.ts +8 -7
  73. package/src/sap/fe/core/controllerextensions/ViewState.js +788 -806
  74. package/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
  75. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
  76. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
  77. package/src/sap/fe/core/controls/CommandExecution.js +67 -66
  78. package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
  79. package/src/sap/fe/core/controls/ConditionalWrapper.js +90 -75
  80. package/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
  81. package/src/sap/fe/core/controls/CustomQuickViewPage.js +130 -125
  82. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
  83. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +103 -112
  84. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
  85. package/src/sap/fe/core/controls/FieldWrapper.js +122 -135
  86. package/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
  87. package/src/sap/fe/core/controls/FilterBar.js +162 -159
  88. package/src/sap/fe/core/controls/FilterBar.ts +143 -0
  89. package/src/sap/fe/core/controls/FormElementWrapper.js +45 -39
  90. package/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
  91. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +37 -42
  92. package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
  93. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +126 -116
  94. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
  95. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +241 -255
  96. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
  97. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +150 -141
  98. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
  99. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +335 -322
  100. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
  101. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +74 -74
  102. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
  103. package/src/sap/fe/core/converters/ConverterContext.js +348 -379
  104. package/src/sap/fe/core/converters/ConverterContext.ts +19 -16
  105. package/src/sap/fe/core/converters/ManifestSettings.js +12 -1
  106. package/src/sap/fe/core/converters/ManifestSettings.ts +12 -1
  107. package/src/sap/fe/core/converters/ManifestWrapper.js +354 -378
  108. package/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
  109. package/src/sap/fe/core/converters/MetaModelConverter.js +6 -4
  110. package/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
  111. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  112. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  113. package/src/sap/fe/core/converters/annotations/DataField.js +26 -12
  114. package/src/sap/fe/core/converters/annotations/DataField.ts +37 -13
  115. package/src/sap/fe/core/converters/controls/Common/Form.js +2 -2
  116. package/src/sap/fe/core/converters/controls/Common/Form.ts +4 -2
  117. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  118. package/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -2
  119. package/src/sap/fe/core/converters/controls/Common/Table.js +130 -23
  120. package/src/sap/fe/core/converters/controls/Common/Table.ts +134 -29
  121. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +118 -53
  122. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +156 -93
  123. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +161 -207
  124. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +148 -206
  125. package/src/sap/fe/core/converters/helpers/Aggregation.js +115 -133
  126. package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
  127. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
  128. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
  129. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
  130. package/src/sap/fe/core/converters/helpers/Key.js +42 -57
  131. package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  132. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +25 -4
  133. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +20 -3
  134. package/src/sap/fe/core/converters/templates/ListReportConverter.js +10 -4
  135. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +15 -4
  136. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +7 -5
  137. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
  138. package/src/sap/fe/core/designtime/AppComponent.designtime.js +92 -98
  139. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
  140. package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
  141. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
  142. package/src/sap/fe/core/formatters/TableFormatter.js +53 -2
  143. package/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
  144. package/src/sap/fe/core/fpm/Component.js +50 -54
  145. package/src/sap/fe/core/fpm/Component.ts +48 -0
  146. package/src/sap/fe/core/helpers/AppStartupHelper.js +323 -309
  147. package/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
  148. package/src/sap/fe/core/helpers/BindingExpression.js +7 -7
  149. package/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
  150. package/src/sap/fe/core/helpers/ClassSupport.js +186 -62
  151. package/src/sap/fe/core/helpers/ClassSupport.ts +168 -52
  152. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +5 -4
  153. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
  154. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  155. package/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
  156. package/src/sap/fe/core/helpers/MassEditHelper.js +601 -684
  157. package/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
  158. package/src/sap/fe/core/helpers/ModelHelper.js +25 -1
  159. package/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
  160. package/src/sap/fe/core/helpers/SemanticDateOperators.js +5 -1
  161. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +4 -0
  162. package/src/sap/fe/core/library.js +426 -451
  163. package/src/sap/fe/core/library.support.js +22 -33
  164. package/src/sap/fe/core/library.support.ts +23 -0
  165. package/src/sap/fe/core/library.ts +420 -0
  166. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -3
  167. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -1
  168. package/src/sap/fe/core/messagebundle.properties +22 -5
  169. package/src/sap/fe/core/messagebundle_ar.properties +27 -7
  170. package/src/sap/fe/core/messagebundle_bg.properties +27 -7
  171. package/src/sap/fe/core/messagebundle_ca.properties +27 -7
  172. package/src/sap/fe/core/messagebundle_cs.properties +27 -7
  173. package/src/sap/fe/core/messagebundle_cy.properties +27 -7
  174. package/src/sap/fe/core/messagebundle_da.properties +27 -7
  175. package/src/sap/fe/core/messagebundle_de.properties +27 -7
  176. package/src/sap/fe/core/messagebundle_el.properties +27 -7
  177. package/src/sap/fe/core/messagebundle_en.properties +27 -7
  178. package/src/sap/fe/core/messagebundle_en_GB.properties +27 -7
  179. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -7
  180. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +27 -7
  181. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +27 -7
  182. package/src/sap/fe/core/messagebundle_es.properties +27 -7
  183. package/src/sap/fe/core/messagebundle_es_MX.properties +27 -7
  184. package/src/sap/fe/core/messagebundle_et.properties +27 -7
  185. package/src/sap/fe/core/messagebundle_fi.properties +28 -8
  186. package/src/sap/fe/core/messagebundle_fr.properties +28 -8
  187. package/src/sap/fe/core/messagebundle_fr_CA.properties +29 -9
  188. package/src/sap/fe/core/messagebundle_hi.properties +27 -7
  189. package/src/sap/fe/core/messagebundle_hr.properties +27 -7
  190. package/src/sap/fe/core/messagebundle_hu.properties +27 -7
  191. package/src/sap/fe/core/messagebundle_id.properties +27 -7
  192. package/src/sap/fe/core/messagebundle_it.properties +27 -7
  193. package/src/sap/fe/core/messagebundle_iw.properties +27 -7
  194. package/src/sap/fe/core/messagebundle_ja.properties +26 -6
  195. package/src/sap/fe/core/messagebundle_kk.properties +27 -7
  196. package/src/sap/fe/core/messagebundle_ko.properties +27 -7
  197. package/src/sap/fe/core/messagebundle_lt.properties +27 -7
  198. package/src/sap/fe/core/messagebundle_lv.properties +28 -8
  199. package/src/sap/fe/core/messagebundle_ms.properties +27 -7
  200. package/src/sap/fe/core/messagebundle_nl.properties +27 -7
  201. package/src/sap/fe/core/messagebundle_no.properties +27 -7
  202. package/src/sap/fe/core/messagebundle_pl.properties +27 -7
  203. package/src/sap/fe/core/messagebundle_pt.properties +28 -8
  204. package/src/sap/fe/core/messagebundle_pt_PT.properties +27 -7
  205. package/src/sap/fe/core/messagebundle_ro.properties +27 -7
  206. package/src/sap/fe/core/messagebundle_ru.properties +27 -7
  207. package/src/sap/fe/core/messagebundle_sh.properties +27 -7
  208. package/src/sap/fe/core/messagebundle_sk.properties +27 -7
  209. package/src/sap/fe/core/messagebundle_sl.properties +27 -7
  210. package/src/sap/fe/core/messagebundle_sv.properties +27 -7
  211. package/src/sap/fe/core/messagebundle_th.properties +26 -6
  212. package/src/sap/fe/core/messagebundle_tr.properties +30 -10
  213. package/src/sap/fe/core/messagebundle_uk.properties +27 -7
  214. package/src/sap/fe/core/messagebundle_vi.properties +27 -7
  215. package/src/sap/fe/core/messagebundle_zh_CN.properties +27 -7
  216. package/src/sap/fe/core/messagebundle_zh_TW.properties +27 -7
  217. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +45 -71
  218. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +154 -192
  219. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +4 -4
  220. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +66 -92
  221. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +1 -1
  222. package/src/sap/fe/core/services/NavigationServiceFactory.js +284 -339
  223. package/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -13
  224. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +67 -102
  225. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +5 -2
  226. package/src/sap/fe/core/services/RoutingServiceFactory.js +754 -814
  227. package/src/sap/fe/core/services/RoutingServiceFactory.ts +13 -13
  228. package/src/sap/fe/core/services/ShellServicesFactory.js +649 -736
  229. package/src/sap/fe/core/services/ShellServicesFactory.ts +7 -4
  230. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +567 -592
  231. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +22 -3
  232. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +354 -386
  233. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +21 -14
  234. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
  235. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
  236. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  237. package/src/sap/fe/core/support/CommonHelper.ts +1 -1
  238. package/src/sap/fe/core/support/Diagnostics.js +36 -48
  239. package/src/sap/fe/core/templating/DataModelPathHelper.js +93 -85
  240. package/src/sap/fe/core/templating/DataModelPathHelper.ts +104 -95
  241. package/src/sap/fe/core/templating/FilterHelper.js +25 -32
  242. package/src/sap/fe/core/templating/FilterHelper.ts +36 -35
  243. package/src/sap/fe/core/templating/PropertyHelper.js +2 -2
  244. package/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
  245. package/src/sap/fe/core/templating/UIFormatters.js +32 -26
  246. package/src/sap/fe/core/templating/UIFormatters.ts +37 -24
@@ -1,153 +1,161 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- (c) Copyright 2009-2021 SAP SE. All rights reserved
4
-
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
5
4
  */
5
+ sap.ui.define(["sap/ui/core/mvc/ControllerExtension", "sap/base/util/UriParameters", "sap/base/util/ObjectPath", "sap/fe/placeholder/library", "sap/ui/core/Placeholder", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/controllerextensions/ControllerExtensionMetadata"], function (ControllerExtension, UriParameters, ObjectPath, _library, Placeholder, ClassSupport, ControllerExtensionMetadata) {
6
+ "use strict";
6
7
 
7
- sap.ui.define(
8
- [
9
- "sap/ui/core/mvc/ControllerExtension",
10
- "sap/base/util/UriParameters",
11
- "sap/base/util/ObjectPath",
12
- "sap/ui/core/Placeholder",
13
- "sap/fe/placeholder/library" // library dependency
14
- ],
15
- function(ControllerExtension, UriParameters, ObjectPath, Placeholder) {
16
- "use strict";
17
-
18
- /**
19
- * {@link sap.ui.core.mvc.ControllerExtension Controller extension} for Placeholder
20
- *
21
- * @namespace
22
- * @alias sap.fe.core.controllerextensions.Placeholder
23
- *
24
- **/
25
- var Extension = ControllerExtension.extend("sap.fe.core.controllerextensions.Placeholder", {
26
- attachHideCallback: function() {
27
- if (this.isPlaceholderEnabled()) {
28
- var oView = this.base.getView();
29
- var oPage = oView.getParent() && oView.getParent().oContainer;
30
- var oNavContainer = oPage && oPage.getParent();
31
-
32
- if (!oNavContainer) {
33
- return;
34
- }
35
- var _fnContainerDelegate = {
36
- onAfterShow: function(oEvent) {
37
- if (oEvent.isBackToPage) {
38
- oNavContainer.hidePlaceholder();
39
- } else if (
40
- UriParameters.fromQuery(window.location.hash.replace(/#.*\?/, "")).get("restoreHistory") === "true"
41
- ) {
42
- // in case we navigate to the listreport using the shell
43
- oNavContainer.hidePlaceholder();
44
- }
45
- }
46
- };
47
- oPage.addEventDelegate(_fnContainerDelegate);
48
-
49
- var oPageReady = oView.getController().pageReady;
50
- //In case of objectPage, the placeholder should be hidden when heroes requests are received
51
- // But for some scenario like "Create item", heroes requests are not sent .
52
- // The pageReady event is then used as fallback
53
-
54
- var aAttachEvents = ["pageReady"];
55
- if (oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController") {
56
- aAttachEvents.push("heroesBatchReceived");
57
- }
58
- aAttachEvents.forEach(function(sEvent) {
59
- oPageReady.attachEvent(
60
- sEvent,
61
- null,
62
- function() {
63
- oNavContainer.hidePlaceholder();
64
- },
65
- null
66
- );
67
- });
68
- }
69
- },
70
- attachRouteMatchers: function() {
71
- this._init();
72
- },
73
-
74
- _init: function() {
75
- this.oAppComponent = this.base.getAppComponent();
76
- this.oRouting = this.oAppComponent._oRouting;
77
- this.oRootContainer = this.oAppComponent.getRootContainer();
78
- this.oRouter = this.oAppComponent.getRouter();
79
- this.oPlaceholders = {};
80
-
81
- // eslint-disable-next-line no-constant-condition
82
- if (this.isPlaceholderEnabled()) {
83
- Placeholder.registerProvider(function(oConfig) {
84
- switch (oConfig.name) {
85
- case "sap.fe.templates.ListReport":
86
- return {
87
- html: "sap/fe/placeholder/view/PlaceholderLR.fragment.html",
88
- autoClose: false
89
- };
90
- case "sap.fe.templates.ObjectPage":
91
- return {
92
- html: "sap/fe/placeholder/view/PlaceholderOP.fragment.html",
93
- autoClose: false
94
- };
95
- default:
96
- return;
97
- }
98
- });
99
- }
100
- if (this.isPlaceholderDebugEnabled()) {
101
- this.initPlaceholderDebug();
102
- }
103
- },
104
-
105
- initPlaceholderDebug: function() {
106
- this.resetPlaceholderDebugStats();
107
- var that = this;
108
- var handler = {
109
- apply: function(target, thisArg, argumentsList) {
110
- if (that.oRootContainer._placeholder && that.oRootContainer._placeholder.placeholder) {
111
- that.debugStats.iHidePlaceholderTimestamp = Date.now();
112
- }
113
- return target.bind(that.oRootContainer)();
114
- }
115
- };
116
- // eslint-disable-next-line no-undef
117
- var proxy1 = new Proxy(this.oRootContainer.hidePlaceholder, handler);
118
- this.oRootContainer.hidePlaceholder = proxy1;
119
- },
120
- isPlaceholderDebugEnabled: function() {
121
- if (UriParameters.fromQuery(window.location.search).get("sap-ui-xx-placeholder-debug") === "true") {
122
- return true;
123
- }
124
- return false;
125
- },
126
-
127
- resetPlaceholderDebugStats: function() {
128
- this.debugStats = {
129
- iHidePlaceholderTimestamp: 0,
130
- iPageReadyEventTimestamp: 0,
131
- iHeroesBatchReceivedEventTimestamp: 0
132
- };
133
- },
134
-
135
- getPlaceholderDebugStats: function() {
136
- return this.debugStats;
137
- },
138
-
139
- isPlaceholderEnabled: function() {
140
- var bPlaceholderEnabledInFLP = ObjectPath.get("sap-ushell-config.apps.placeholder.enabled");
141
- if (bPlaceholderEnabledInFLP === false) {
142
- return false;
143
- }
144
-
145
- return sap.ui
146
- .getCore()
147
- .getConfiguration()
148
- .getPlaceholder();
149
- }
150
- });
151
- return Extension;
152
- }
153
- );
8
+ var _dec, _class, _class2;
9
+
10
+ var UI5Class = ClassSupport.UI5Class;
11
+ var Public = ClassSupport.Public;
12
+
13
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
14
+
15
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
16
+
17
+ 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; }
18
+
19
+ /**
20
+ * {@link sap.ui.core.mvc.ControllerExtension Controller extension} for Placeholder
21
+ *
22
+ * @namespace
23
+ * @alias sap.fe.core.controllerextensions.Placeholder
24
+ *
25
+ **/
26
+ var PlaceholderControllerExtension = (_dec = UI5Class("sap.fe.core.controllerextensions.Placeholder", ControllerExtensionMetadata), _dec(_class = (_class2 = /*#__PURE__*/function (_ControllerExtension) {
27
+ _inherits(PlaceholderControllerExtension, _ControllerExtension);
28
+
29
+ function PlaceholderControllerExtension() {
30
+ return _ControllerExtension.apply(this, arguments) || this;
31
+ }
32
+
33
+ var _proto = PlaceholderControllerExtension.prototype;
34
+
35
+ _proto.attachHideCallback = function attachHideCallback() {
36
+ if (this.isPlaceholderEnabled()) {
37
+ var oView = this.base.getView();
38
+ var oPage = oView.getParent() && oView.getParent().oContainer;
39
+ var oNavContainer = oPage && oPage.getParent();
40
+
41
+ if (!oNavContainer) {
42
+ return;
43
+ }
44
+
45
+ var _fnContainerDelegate = {
46
+ onAfterShow: function (oEvent) {
47
+ if (oEvent.isBackToPage) {
48
+ oNavContainer.hidePlaceholder();
49
+ } else if (UriParameters.fromQuery(window.location.hash.replace(/#.*\?/, "")).get("restoreHistory") === "true") {
50
+ // in case we navigate to the listreport using the shell
51
+ oNavContainer.hidePlaceholder();
52
+ }
53
+ }
54
+ };
55
+ oPage.addEventDelegate(_fnContainerDelegate);
56
+ var oPageReady = oView.getController().pageReady; //In case of objectPage, the placeholder should be hidden when heroes requests are received
57
+ // But for some scenario like "Create item", heroes requests are not sent .
58
+ // The pageReady event is then used as fallback
59
+
60
+ var aAttachEvents = ["pageReady"];
61
+
62
+ if (oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController") {
63
+ aAttachEvents.push("heroesBatchReceived");
64
+ }
65
+
66
+ aAttachEvents.forEach(function (sEvent) {
67
+ oPageReady.attachEvent(sEvent, null, function () {
68
+ oNavContainer.hidePlaceholder();
69
+ }, null);
70
+ });
71
+ }
72
+ };
73
+
74
+ _proto.attachRouteMatchers = function attachRouteMatchers() {
75
+ this._init();
76
+ };
77
+
78
+ _proto._init = function _init() {
79
+ this.oAppComponent = this.base.getAppComponent();
80
+ this.oRootContainer = this.oAppComponent.getRootContainer();
81
+ this.oPlaceholders = {}; // eslint-disable-next-line no-constant-condition
82
+
83
+ if (this.isPlaceholderEnabled()) {
84
+ Placeholder.registerProvider(function (oConfig) {
85
+ switch (oConfig.name) {
86
+ case "sap.fe.templates.ListReport":
87
+ return {
88
+ html: "sap/fe/placeholder/view/PlaceholderLR.fragment.html",
89
+ autoClose: false
90
+ };
91
+
92
+ case "sap.fe.templates.ObjectPage":
93
+ return {
94
+ html: "sap/fe/placeholder/view/PlaceholderOP.fragment.html",
95
+ autoClose: false
96
+ };
97
+
98
+ default:
99
+ return;
100
+ }
101
+ });
102
+ }
103
+
104
+ if (this.isPlaceholderDebugEnabled()) {
105
+ this.initPlaceholderDebug();
106
+ }
107
+ };
108
+
109
+ _proto.initPlaceholderDebug = function initPlaceholderDebug() {
110
+ var _this = this;
111
+
112
+ this.resetPlaceholderDebugStats();
113
+ var handler = {
114
+ apply: function (target) {
115
+ if (_this.oRootContainer._placeholder && _this.oRootContainer._placeholder.placeholder) {
116
+ _this.debugStats.iHidePlaceholderTimestamp = Date.now();
117
+ }
118
+
119
+ return target.bind(_this.oRootContainer)();
120
+ }
121
+ }; // eslint-disable-next-line no-undef
122
+
123
+ var proxy1 = new Proxy(this.oRootContainer.hidePlaceholder, handler);
124
+ this.oRootContainer.hidePlaceholder = proxy1;
125
+ };
126
+
127
+ _proto.isPlaceholderDebugEnabled = function isPlaceholderDebugEnabled() {
128
+ if (UriParameters.fromQuery(window.location.search).get("sap-ui-xx-placeholder-debug") === "true") {
129
+ return true;
130
+ }
131
+
132
+ return false;
133
+ };
134
+
135
+ _proto.resetPlaceholderDebugStats = function resetPlaceholderDebugStats() {
136
+ this.debugStats = {
137
+ iHidePlaceholderTimestamp: 0,
138
+ iPageReadyEventTimestamp: 0,
139
+ iHeroesBatchReceivedEventTimestamp: 0
140
+ };
141
+ };
142
+
143
+ _proto.getPlaceholderDebugStats = function getPlaceholderDebugStats() {
144
+ return this.debugStats;
145
+ };
146
+
147
+ _proto.isPlaceholderEnabled = function isPlaceholderEnabled() {
148
+ var bPlaceholderEnabledInFLP = ObjectPath.get("sap-ushell-config.apps.placeholder.enabled");
149
+
150
+ if (bPlaceholderEnabledInFLP === false) {
151
+ return false;
152
+ }
153
+
154
+ return sap.ui.getCore().getConfiguration().getPlaceholder();
155
+ };
156
+
157
+ return PlaceholderControllerExtension;
158
+ }(ControllerExtension), (_applyDecoratedDescriptor(_class2.prototype, "attachHideCallback", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "attachHideCallback"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "attachRouteMatchers", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "attachRouteMatchers"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "initPlaceholderDebug", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "initPlaceholderDebug"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isPlaceholderDebugEnabled", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "isPlaceholderDebugEnabled"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "resetPlaceholderDebugStats", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "resetPlaceholderDebugStats"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "getPlaceholderDebugStats", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "getPlaceholderDebugStats"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isPlaceholderEnabled", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "isPlaceholderEnabled"), _class2.prototype)), _class2)) || _class);
159
+ return PlaceholderControllerExtension;
160
+ }, false);
161
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlBsYWNlaG9sZGVyLnRzIl0sIm5hbWVzIjpbIlBsYWNlaG9sZGVyQ29udHJvbGxlckV4dGVuc2lvbiIsIlVJNUNsYXNzIiwiQ29udHJvbGxlckV4dGVuc2lvbk1ldGFkYXRhIiwiYXR0YWNoSGlkZUNhbGxiYWNrIiwiaXNQbGFjZWhvbGRlckVuYWJsZWQiLCJvVmlldyIsImJhc2UiLCJnZXRWaWV3Iiwib1BhZ2UiLCJnZXRQYXJlbnQiLCJvQ29udGFpbmVyIiwib05hdkNvbnRhaW5lciIsIl9mbkNvbnRhaW5lckRlbGVnYXRlIiwib25BZnRlclNob3ciLCJvRXZlbnQiLCJpc0JhY2tUb1BhZ2UiLCJoaWRlUGxhY2Vob2xkZXIiLCJVcmlQYXJhbWV0ZXJzIiwiZnJvbVF1ZXJ5Iiwid2luZG93IiwibG9jYXRpb24iLCJoYXNoIiwicmVwbGFjZSIsImdldCIsImFkZEV2ZW50RGVsZWdhdGUiLCJvUGFnZVJlYWR5IiwiZ2V0Q29udHJvbGxlciIsInBhZ2VSZWFkeSIsImFBdHRhY2hFdmVudHMiLCJnZXRDb250cm9sbGVyTmFtZSIsInB1c2giLCJmb3JFYWNoIiwic0V2ZW50IiwiYXR0YWNoRXZlbnQiLCJhdHRhY2hSb3V0ZU1hdGNoZXJzIiwiX2luaXQiLCJvQXBwQ29tcG9uZW50IiwiZ2V0QXBwQ29tcG9uZW50Iiwib1Jvb3RDb250YWluZXIiLCJnZXRSb290Q29udGFpbmVyIiwib1BsYWNlaG9sZGVycyIsIlBsYWNlaG9sZGVyIiwicmVnaXN0ZXJQcm92aWRlciIsIm9Db25maWciLCJuYW1lIiwiaHRtbCIsImF1dG9DbG9zZSIsImlzUGxhY2Vob2xkZXJEZWJ1Z0VuYWJsZWQiLCJpbml0UGxhY2Vob2xkZXJEZWJ1ZyIsInJlc2V0UGxhY2Vob2xkZXJEZWJ1Z1N0YXRzIiwiaGFuZGxlciIsImFwcGx5IiwidGFyZ2V0IiwiX3BsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJkZWJ1Z1N0YXRzIiwiaUhpZGVQbGFjZWhvbGRlclRpbWVzdGFtcCIsIkRhdGUiLCJub3ciLCJiaW5kIiwicHJveHkxIiwiUHJveHkiLCJzZWFyY2giLCJpUGFnZVJlYWR5RXZlbnRUaW1lc3RhbXAiLCJpSGVyb2VzQmF0Y2hSZWNlaXZlZEV2ZW50VGltZXN0YW1wIiwiZ2V0UGxhY2Vob2xkZXJEZWJ1Z1N0YXRzIiwiYlBsYWNlaG9sZGVyRW5hYmxlZEluRkxQIiwiT2JqZWN0UGF0aCIsInNhcCIsInVpIiwiZ2V0Q29yZSIsImdldENvbmZpZ3VyYXRpb24iLCJnZXRQbGFjZWhvbGRlciIsIkNvbnRyb2xsZXJFeHRlbnNpb24iLCJQdWJsaWMiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7OztBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO01BRU1BLDhCLFdBRExDLFFBQVEsQ0FBQyw4Q0FBRCxFQUFpREMsMkJBQWpELEM7Ozs7Ozs7OztXQVNEQyxrQixHQURQLDhCQUM0QjtBQUMzQixVQUFJLEtBQUtDLG9CQUFMLEVBQUosRUFBaUM7QUFDaEMsWUFBTUMsS0FBSyxHQUFHLEtBQUtDLElBQUwsQ0FBVUMsT0FBVixFQUFkO0FBQ0EsWUFBTUMsS0FBSyxHQUFHSCxLQUFLLENBQUNJLFNBQU4sTUFBc0JKLEtBQUssQ0FBQ0ksU0FBTixFQUFELENBQTJCQyxVQUE5RDtBQUNBLFlBQU1DLGFBQWEsR0FBR0gsS0FBSyxJQUFJQSxLQUFLLENBQUNDLFNBQU4sRUFBL0I7O0FBRUEsWUFBSSxDQUFDRSxhQUFMLEVBQW9CO0FBQ25CO0FBQ0E7O0FBQ0QsWUFBTUMsb0JBQW9CLEdBQUc7QUFDNUJDLFVBQUFBLFdBQVcsRUFBRSxVQUFTQyxNQUFULEVBQXNCO0FBQ2xDLGdCQUFJQSxNQUFNLENBQUNDLFlBQVgsRUFBeUI7QUFDeEJKLGNBQUFBLGFBQWEsQ0FBQ0ssZUFBZDtBQUNBLGFBRkQsTUFFTyxJQUFJQyxhQUFhLENBQUNDLFNBQWQsQ0FBd0JDLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQkMsSUFBaEIsQ0FBcUJDLE9BQXJCLENBQTZCLE9BQTdCLEVBQXNDLEVB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QUFQO0FBQ0E7O0FBQ0QsYUFBTyxLQUFQO0FBQ0EsSzs7V0FHRDBCLDBCLEdBREEsc0NBQzZCO0FBQzVCLFdBQUtNLFVBQUwsR0FBa0I7QUFDakJDLFFBQUFBLHlCQUF5QixFQUFFLENBRFY7QUFFakJPLFFBQUFBLHdCQUF3QixFQUFFLENBRlQ7QUFHakJDLFFBQUFBLGtDQUFrQyxFQUFFO0FBSG5CLE9BQWxCO0FBS0EsSzs7V0FFREMsd0IsR0FEQSxvQ0FDMkI7QUFDMUIsYUFBTyxLQUFLVixVQUFaO0FBQ0EsSzs7V0FFRG5ELG9CLEdBREEsZ0NBQ3VCO0FBQ3RCLFVBQU04RCx3QkFBd0IsR0FBR0MsVUFBVSxDQUFDNUMsR0FBWCxDQUFlLDRDQUFmLENBQWpDOztBQUNBLFVBQUkyQyx3QkFBd0IsS0FBSyxLQUFqQyxFQUF3QztBQUN2QyxlQUFPLEtBQVA7QUFDQTs7QUFFRCxhQUFPRSxHQUFHLENBQUNDLEVBQUosQ0FDTEMsT0FESyxHQUVMQyxnQkFGSyxHQUdMQyxjQUhLLEVBQVA7QUFJQSxLOzs7SUFsSTJDQyxtQix3RUFPM0NDLE0sc0tBMkNBQSxNLHdLQWtDQUEsTSw4S0FlQUEsTSxvTEFRQUEsTSxtTEFRQUEsTSw2S0FJQUEsTTtTQWNhMUUsOEIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb250cm9sbGVyRXh0ZW5zaW9uIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlckV4dGVuc2lvblwiO1xuaW1wb3J0IFVyaVBhcmFtZXRlcnMgZnJvbSBcInNhcC9iYXNlL3V0aWwvVXJpUGFyYW1ldGVyc1wiO1xuaW1wb3J0IE9iamVjdFBhdGggZnJvbSBcInNhcC9iYXNlL3V0aWwvT2JqZWN0UGF0aFwiO1xuaW1wb3J0IFwic2FwL2ZlL3BsYWNlaG9sZGVyL2xpYnJhcnlcIjtcbmltcG9ydCBQbGFjZWhvbGRlciBmcm9tIFwic2FwL3VpL2NvcmUvUGxhY2Vob2xkZXJcIjtcbmltcG9ydCB7IFB1YmxpYywgVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBDb250cm9sbGVyRXh0ZW5zaW9uTWV0YWRhdGEgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0NvbnRyb2xsZXJFeHRlbnNpb25NZXRhZGF0YVwiO1xuaW1wb3J0IFBhZ2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9QYWdlQ29udHJvbGxlclwiO1xuaW1wb3J0IEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG4vKipcbiAqIHtAbGluayBzYXAudWkuY29yZS5tdmMuQ29udHJvbGxlckV4dGVuc2lvbiBDb250cm9sbGVyIGV4dGVuc2lvbn0gZm9yIFBsYWNlaG9sZGVyXG4gKlxuICogQG5hbWVzcGFjZVxuICogQGFsaWFzIHNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLlBsYWNlaG9sZGVyXG4gKlxuICoqL1xuQFVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuUGxhY2Vob2xkZXJcIiwgQ29udHJvbGxlckV4dGVuc2lvbk1ldGFkYXRhKVxuY2xhc3MgUGxhY2Vob2xkZXJDb250cm9sbGVyRXh0ZW5zaW9uIGV4dGVuZHMgQ29udHJvbGxlckV4dGVuc2lvbiB7XG5cdHByaXZhdGUgYmFzZSE6IFBhZ2VDb250cm9sbGVyO1xuXHRwcml2YXRlIG9BcHBDb21wb25lbnQhOiBBcHBDb21wb25lbnQ7XG5cdHByaXZhdGUgb1Jvb3RDb250YWluZXI6IGFueTtcblx0cHJpdmF0ZSBvUGxhY2Vob2xkZXJzOiBhbnk7XG5cdHByaXZhdGUgZGVidWdTdGF0czogYW55O1xuXG5cdEBQdWJsaWNcblx0cHVibGljIGF0dGFjaEhpZGVDYWxsYmFjaygpIHtcblx0XHRpZiAodGhpcy5pc1BsYWNlaG9sZGVyRW5hYmxlZCgpKSB7XG5cdFx0XHRjb25zdCBvVmlldyA9IHRoaXMuYmFzZS5nZXRWaWV3KCk7XG5cdFx0XHRjb25zdCBvUGFnZSA9IG9WaWV3LmdldFBhcmVudCgpICYmIChvVmlldy5nZXRQYXJlbnQoKSBhcyBhbnkpLm9Db250YWluZXI7XG5cdFx0XHRjb25zdCBvTmF2Q29udGFpbmVyID0gb1BhZ2UgJiYgb1BhZ2UuZ2V0UGFyZW50KCk7XG5cblx0XHRcdGlmICghb05hdkNvbnRhaW5lcikge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBfZm5Db250YWluZXJEZWxlZ2F0ZSA9IHtcblx0XHRcdFx0b25BZnRlclNob3c6IGZ1bmN0aW9uKG9FdmVudDogYW55KSB7XG5cdFx0XHRcdFx0aWYgKG9FdmVudC5pc0JhY2tUb1BhZ2UpIHtcblx0XHRcdFx0XHRcdG9OYXZDb250YWluZXIuaGlkZVBsYWNlaG9sZGVyKCk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChVcmlQYXJhbWV0ZXJzLmZyb21RdWVyeSh3aW5kb3cubG9jYXRpb24uaGFzaC5yZXBsYWNlKC8jLipcXD8vLCBcIlwiKSkuZ2V0KFwicmVzdG9yZUhpc3RvcnlcIikgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHRcdFx0XHQvLyBpbiBjYXNlIHdlIG5hdmlnYXRlIHRvIHRoZSBsaXN0cmVwb3J0IHVzaW5nIHRoZSBzaGVsbFxuXHRcdFx0XHRcdFx0b05hdkNvbnRhaW5lci5oaWRlUGxhY2Vob2xkZXIoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRvUGFnZS5hZGRFdmVudERlbGVnYXRlKF9mbkNvbnRhaW5lckRlbGVnYXRlKTtcblxuXHRcdFx0Y29uc3Qgb1BhZ2VSZWFkeSA9IChvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgUGFnZUNvbnRyb2xsZXIpLnBhZ2VSZWFkeTtcblx0XHRcdC8vSW4gY2FzZSBvZiBvYmplY3RQYWdlLCB0aGUgcGxhY2Vob2xkZXIgc2hvdWxkIGJlIGhpZGRlbiB3aGVuIGhlcm9lcyByZXF1ZXN0cyBhcmUgcmVjZWl2ZWRcblx0XHRcdC8vIEJ1dCBmb3Igc29tZSBzY2VuYXJpbyBsaWtlIFwiQ3JlYXRlIGl0ZW1cIiwgaGVyb2VzIHJlcXVlc3RzIGFyZSBub3Qgc2VudCAuXG5cdFx0XHQvLyBUaGUgcGFnZVJlYWR5IGV2ZW50IGlzIHRoZW4gdXNlZCBhcyBmYWxsYmFja1xuXG5cdFx0XHRjb25zdCBhQXR0YWNoRXZlbnRzID0gW1wicGFnZVJlYWR5XCJdO1xuXHRcdFx0aWYgKG9WaWV3LmdldENvbnRyb2xsZXJOYW1lKCkgPT09IFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLk9iamVjdFBhZ2VDb250cm9sbGVyXCIpIHtcblx0XHRcdFx0YUF0dGFjaEV2ZW50cy5wdXNoKFwiaGVyb2VzQmF0Y2hSZWNlaXZlZFwiKTtcblx0XHRcdH1cblx0XHRcdGFBdHRhY2hFdmVudHMuZm9yRWFjaChmdW5jdGlvbihzRXZlbnQ6IHN0cmluZykge1xuXHRcdFx0XHRvUGFnZVJlYWR5LmF0dGFjaEV2ZW50KFxuXHRcdFx0XHRcdHNFdmVudCxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0b05hdkNvbnRhaW5lci5oaWRlUGxhY2Vob2xkZXIoKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG51bGxcblx0XHRcdFx0KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXHRAUHVibGljXG5cdGF0dGFjaFJvdXRlTWF0Y2hlcnMoKSB7XG5cdFx0dGhpcy5faW5pdCgpO1xuXHR9XG5cblx0X2luaXQoKSB7XG5cdFx0dGhpcy5vQXBwQ29tcG9uZW50ID0gdGhpcy5iYXNlLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdHRoaXMub1Jvb3RDb250YWluZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRhaW5lcigpO1xuXHRcdHRoaXMub1BsYWNlaG9sZGVycyA9IHt9O1xuXG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuXHRcdGlmICh0aGlzLmlzUGxhY2Vob2xkZXJFbmFibGVkKCkpIHtcblx0XHRcdFBsYWNlaG9sZGVyLnJlZ2lzdGVyUHJvdmlkZXIoZnVuY3Rpb24ob0NvbmZpZzogYW55KSB7XG5cdFx0XHRcdHN3aXRjaCAob0NvbmZpZy5uYW1lKSB7XG5cdFx0XHRcdFx0Y2FzZSBcInNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydFwiOlxuXHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0aHRtbDogXCJzYXAvZmUvcGxhY2Vob2xkZXIvdmlldy9QbGFjZWhvbGRlckxSLmZyYWdtZW50Lmh0bWxcIixcblx0XHRcdFx0XHRcdFx0YXV0b0Nsb3NlOiBmYWxzZVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRjYXNlIFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlXCI6XG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRodG1sOiBcInNhcC9mZS9wbGFjZWhvbGRlci92aWV3L1BsYWNlaG9sZGVyT1AuZnJhZ21lbnQuaHRtbFwiLFxuXHRcdFx0XHRcdFx0XHRhdXRvQ2xvc2U6IGZhbHNlXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHRpZiAodGhpcy5pc1BsYWNlaG9sZGVyRGVidWdFbmFibGVkKCkpIHtcblx0XHRcdHRoaXMuaW5pdFBsYWNlaG9sZGVyRGVidWcoKTtcblx0XHR9XG5cdH1cblxuXHRAUHVibGljXG5cdGluaXRQbGFjZWhvbGRlckRlYnVnKCkge1xuXHRcdHRoaXMucmVzZXRQbGFjZWhvbGRlckRlYnVnU3RhdHMoKTtcblx0XHRjb25zdCBoYW5kbGVyID0ge1xuXHRcdFx0YXBwbHk6ICh0YXJnZXQ6IGFueSkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5vUm9vdENvbnRhaW5lci5fcGxhY2Vob2xkZXIgJiYgdGhpcy5vUm9vdENvbnRhaW5lci5fcGxhY2Vob2xkZXIucGxhY2Vob2xkZXIpIHtcblx0XHRcdFx0XHR0aGlzLmRlYnVnU3RhdHMuaUhpZGVQbGFjZWhvbGRlclRpbWVzdGFtcCA9IERhdGUubm93KCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRhcmdldC5iaW5kKHRoaXMub1Jvb3RDb250YWluZXIpKCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcblx0XHRjb25zdCBwcm94eTEgPSBuZXcgUHJveHkodGhpcy5vUm9vdENvbnRhaW5lci5oaWRlUGxhY2Vob2xkZXIsIGhhbmRsZXIpO1xuXHRcdHRoaXMub1Jvb3RDb250YWluZXIuaGlkZVBsYWNlaG9sZGVyID0gcHJveHkxO1xuXHR9XG5cdEBQdWJsaWNcblx0aXNQbGFjZWhvbGRlckRlYnVnRW5hYmxlZCgpIHtcblx0XHRpZiAoVXJpUGFyYW1ldGVycy5mcm9tUXVlcnkod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwic2FwLXVpLXh4LXBsYWNlaG9sZGVyLWRlYnVnXCIpID09PSBcInRydWVcIikge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdEBQdWJsaWNcblx0cmVzZXRQbGFjZWhvbGRlckRlYnVnU3RhdHMoKSB7XG5cdFx0dGhpcy5kZWJ1Z1N0YXRzID0ge1xuXHRcdFx0aUhpZGVQbGFjZWhvbGRlclRpbWVzdGFtcDogMCxcblx0XHRcdGlQYWdlUmVhZHlFdmVudFRpbWVzdGFtcDogMCxcblx0XHRcdGlIZXJvZXNCYXRjaFJlY2VpdmVkRXZlbnRUaW1lc3RhbXA6IDBcblx0XHR9O1xuXHR9XG5cdEBQdWJsaWNcblx0Z2V0UGxhY2Vob2xkZXJEZWJ1Z1N0YXRzKCkge1xuXHRcdHJldHVybiB0aGlzLmRlYnVnU3RhdHM7XG5cdH1cblx0QFB1YmxpY1xuXHRpc1BsYWNlaG9sZGVyRW5hYmxlZCgpIHtcblx0XHRjb25zdCBiUGxhY2Vob2xkZXJFbmFibGVkSW5GTFAgPSBPYmplY3RQYXRoLmdldChcInNhcC11c2hlbGwtY29uZmlnLmFwcHMucGxhY2Vob2xkZXIuZW5hYmxlZFwiKTtcblx0XHRpZiAoYlBsYWNlaG9sZGVyRW5hYmxlZEluRkxQID09PSBmYWxzZSkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiBzYXAudWlcblx0XHRcdC5nZXRDb3JlKClcblx0XHRcdC5nZXRDb25maWd1cmF0aW9uKClcblx0XHRcdC5nZXRQbGFjZWhvbGRlcigpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBsYWNlaG9sZGVyQ29udHJvbGxlckV4dGVuc2lvbjtcbiJdfQ==
@@ -0,0 +1,151 @@
1
+ import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
2
+ import UriParameters from "sap/base/util/UriParameters";
3
+ import ObjectPath from "sap/base/util/ObjectPath";
4
+ import "sap/fe/placeholder/library";
5
+ import Placeholder from "sap/ui/core/Placeholder";
6
+ import { Public, UI5Class } from "sap/fe/core/helpers/ClassSupport";
7
+ import ControllerExtensionMetadata from "sap/fe/core/controllerextensions/ControllerExtensionMetadata";
8
+ import PageController from "sap/fe/core/PageController";
9
+ import AppComponent from "sap/fe/core/AppComponent";
10
+ /**
11
+ * {@link sap.ui.core.mvc.ControllerExtension Controller extension} for Placeholder
12
+ *
13
+ * @namespace
14
+ * @alias sap.fe.core.controllerextensions.Placeholder
15
+ *
16
+ **/
17
+ @UI5Class("sap.fe.core.controllerextensions.Placeholder", ControllerExtensionMetadata)
18
+ class PlaceholderControllerExtension extends ControllerExtension {
19
+ private base!: PageController;
20
+ private oAppComponent!: AppComponent;
21
+ private oRootContainer: any;
22
+ private oPlaceholders: any;
23
+ private debugStats: any;
24
+
25
+ @Public
26
+ public attachHideCallback() {
27
+ if (this.isPlaceholderEnabled()) {
28
+ const oView = this.base.getView();
29
+ const oPage = oView.getParent() && (oView.getParent() as any).oContainer;
30
+ const oNavContainer = oPage && oPage.getParent();
31
+
32
+ if (!oNavContainer) {
33
+ return;
34
+ }
35
+ const _fnContainerDelegate = {
36
+ onAfterShow: function(oEvent: any) {
37
+ if (oEvent.isBackToPage) {
38
+ oNavContainer.hidePlaceholder();
39
+ } else if (UriParameters.fromQuery(window.location.hash.replace(/#.*\?/, "")).get("restoreHistory") === "true") {
40
+ // in case we navigate to the listreport using the shell
41
+ oNavContainer.hidePlaceholder();
42
+ }
43
+ }
44
+ };
45
+ oPage.addEventDelegate(_fnContainerDelegate);
46
+
47
+ const oPageReady = (oView.getController() as PageController).pageReady;
48
+ //In case of objectPage, the placeholder should be hidden when heroes requests are received
49
+ // But for some scenario like "Create item", heroes requests are not sent .
50
+ // The pageReady event is then used as fallback
51
+
52
+ const aAttachEvents = ["pageReady"];
53
+ if (oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController") {
54
+ aAttachEvents.push("heroesBatchReceived");
55
+ }
56
+ aAttachEvents.forEach(function(sEvent: string) {
57
+ oPageReady.attachEvent(
58
+ sEvent,
59
+ null,
60
+ function() {
61
+ oNavContainer.hidePlaceholder();
62
+ },
63
+ null
64
+ );
65
+ });
66
+ }
67
+ }
68
+ @Public
69
+ attachRouteMatchers() {
70
+ this._init();
71
+ }
72
+
73
+ _init() {
74
+ this.oAppComponent = this.base.getAppComponent();
75
+ this.oRootContainer = this.oAppComponent.getRootContainer();
76
+ this.oPlaceholders = {};
77
+
78
+ // eslint-disable-next-line no-constant-condition
79
+ if (this.isPlaceholderEnabled()) {
80
+ Placeholder.registerProvider(function(oConfig: any) {
81
+ switch (oConfig.name) {
82
+ case "sap.fe.templates.ListReport":
83
+ return {
84
+ html: "sap/fe/placeholder/view/PlaceholderLR.fragment.html",
85
+ autoClose: false
86
+ };
87
+ case "sap.fe.templates.ObjectPage":
88
+ return {
89
+ html: "sap/fe/placeholder/view/PlaceholderOP.fragment.html",
90
+ autoClose: false
91
+ };
92
+ default:
93
+ return;
94
+ }
95
+ });
96
+ }
97
+ if (this.isPlaceholderDebugEnabled()) {
98
+ this.initPlaceholderDebug();
99
+ }
100
+ }
101
+
102
+ @Public
103
+ initPlaceholderDebug() {
104
+ this.resetPlaceholderDebugStats();
105
+ const handler = {
106
+ apply: (target: any) => {
107
+ if (this.oRootContainer._placeholder && this.oRootContainer._placeholder.placeholder) {
108
+ this.debugStats.iHidePlaceholderTimestamp = Date.now();
109
+ }
110
+ return target.bind(this.oRootContainer)();
111
+ }
112
+ };
113
+ // eslint-disable-next-line no-undef
114
+ const proxy1 = new Proxy(this.oRootContainer.hidePlaceholder, handler);
115
+ this.oRootContainer.hidePlaceholder = proxy1;
116
+ }
117
+ @Public
118
+ isPlaceholderDebugEnabled() {
119
+ if (UriParameters.fromQuery(window.location.search).get("sap-ui-xx-placeholder-debug") === "true") {
120
+ return true;
121
+ }
122
+ return false;
123
+ }
124
+
125
+ @Public
126
+ resetPlaceholderDebugStats() {
127
+ this.debugStats = {
128
+ iHidePlaceholderTimestamp: 0,
129
+ iPageReadyEventTimestamp: 0,
130
+ iHeroesBatchReceivedEventTimestamp: 0
131
+ };
132
+ }
133
+ @Public
134
+ getPlaceholderDebugStats() {
135
+ return this.debugStats;
136
+ }
137
+ @Public
138
+ isPlaceholderEnabled() {
139
+ const bPlaceholderEnabledInFLP = ObjectPath.get("sap-ushell-config.apps.placeholder.enabled");
140
+ if (bPlaceholderEnabledInFLP === false) {
141
+ return false;
142
+ }
143
+
144
+ return sap.ui
145
+ .getCore()
146
+ .getConfiguration()
147
+ .getPlaceholder();
148
+ }
149
+ }
150
+
151
+ export default PlaceholderControllerExtension;