@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,128 +1,133 @@
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
  */
6
- sap.ui.define(
7
- ["sap/m/QuickViewPage", "sap/m/Button", "sap/fe/core/CommonUtils", "sap/fe/macros/DelegateUtil", "sap/fe/core/helpers/KeepAliveHelper"],
8
- function(QuickViewPage, Button, CommonUtils, DelegateUtil, KeepAliveHelper) {
9
- "use strict";
10
-
11
- return QuickViewPage.extend("sap.fe.core.controls.CustomQuickViewPage", {
12
- metadata: {
13
- defaultAggregation: "groups",
14
- aggregations: {
15
- customContent: {
16
- type: "sap.ui.core.Control",
17
- multiple: true,
18
- bindable: "bindable"
19
- },
20
- groups: { type: "sap.m.QuickViewGroup", multiple: true, singularName: "group", bindable: "bindable" }
21
- },
22
- publicMethods: []
23
- },
24
- renderer: {},
25
- onAfterRendering: function() {
26
- QuickViewPage.prototype.onAfterRendering.apply(this, arguments);
27
- },
28
- onBeforeRendering: function() {
29
- if (
30
- this.getParent() &&
31
- this.getParent().isA("sap.fe.core.controls.ConditionalWrapper") &&
32
- this.getParent().getProperty("condition") === true
33
- ) {
34
- this.setCrossAppNavCallback(
35
- function() {
36
- var sQuickViewPageTitleLinkHref = DelegateUtil.getCustomData(this, "titleLink");
37
- var oView = sap.ui.fl.Utils.getViewForControl(this);
38
- var oAppComponent = CommonUtils.getAppComponent(oView);
39
- var oShellServiceHelper = oAppComponent.getShellServices();
40
- var oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkHref);
41
- var oNavArgs = {
42
- target: {
43
- semanticObject: oShellHash.semanticObject,
44
- action: oShellHash.action
45
- },
46
- params: oShellHash.params
47
- };
48
- var sQuickViewPageTitleLinkIntent = oNavArgs.target.semanticObject + "-" + oNavArgs.target.action;
49
-
50
- if (
51
- sQuickViewPageTitleLinkIntent &&
52
- this.oCrossAppNavigator &&
53
- this.oCrossAppNavigator.isNavigationSupported([sQuickViewPageTitleLinkIntent])
54
- ) {
55
- if (sQuickViewPageTitleLinkIntent && sQuickViewPageTitleLinkIntent !== "") {
56
- if (typeof sQuickViewPageTitleLinkIntent === "string" && sQuickViewPageTitleLinkIntent !== "") {
57
- var sTargetHref;
58
- var oLinkControl = this.getParent();
59
- while (oLinkControl && !oLinkControl.isA("sap.ui.mdc.Link")) {
60
- oLinkControl = oLinkControl.getParent();
61
- }
62
- var _aLinks = oLinkControl.getModel("$sapuimdcLink").getProperty("/linkItems");
63
- if (_aLinks) {
64
- if (_aLinks.length > 0) {
65
- for (var i = 0; i < _aLinks.length; i++) {
66
- if (_aLinks[i].key === sQuickViewPageTitleLinkIntent) {
67
- sTargetHref = _aLinks[i].href;
68
- break;
69
- }
70
- }
71
- if (sTargetHref) {
72
- oShellHash = oShellServiceHelper.parseShellHash(sTargetHref);
73
- } else {
74
- oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
75
- }
76
- }
77
- } else {
78
- oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
79
- }
80
- KeepAliveHelper.storeControlRefreshStrategyForHash(oView, oShellHash);
81
- return {
82
- target: {
83
- semanticObject: oShellHash.semanticObject,
84
- action: oShellHash.action
85
- },
86
- params: oShellHash.params
87
- };
88
- }
89
- }
90
- } else {
91
- var oCurrentShellHash = oShellServiceHelper.parseShellHash(window.location.hash);
92
- KeepAliveHelper.storeControlRefreshStrategyForHash(oView, oCurrentShellHash);
93
-
94
- return {
95
- target: {
96
- semanticObject: oCurrentShellHash.semanticObject,
97
- action: oCurrentShellHash.action,
98
- appSpecificRoute: oCurrentShellHash.appSpecificRoute
99
- },
100
- params: oCurrentShellHash.params
101
- };
102
- }
103
- }.bind(this)
104
- );
105
- }
106
- QuickViewPage.prototype.onBeforeRendering.apply(this, arguments);
107
- var oPageContent = this.getPageContent();
108
- var oForm = oPageContent.form;
109
- if (oForm) {
110
- var _aContent = this.getAggregation("customContent");
111
- if (_aContent && _aContent.length > 0) {
112
- _aContent.forEach(
113
- function(_oContent) {
114
- var _oContentClone = _oContent.clone();
115
- _oContentClone.setModel(this.getModel());
116
- _oContentClone.setBindingContext(this.getBindingContext());
117
- oForm.addContent(_oContentClone);
118
- }.bind(this)
119
- );
120
- setTimeout(function() {
121
- oForm.rerender();
122
- }, 0);
123
- }
124
- }
125
- }
126
- });
127
- }
128
- );
5
+ sap.ui.define(["sap/m/QuickViewPage", "sap/fe/core/CommonUtils", "sap/fe/macros/DelegateUtil", "sap/fe/core/helpers/KeepAliveHelper", "sap/ui/fl/Utils"], function (QuickViewPage, CommonUtils, DelegateUtil, KeepAliveHelper, Utils) {
6
+ "use strict";
7
+
8
+ var CustomQuickViewPage = QuickViewPage.extend("sap.fe.core.controls.CustomQuickViewPage", {
9
+ metadata: {
10
+ defaultAggregation: "groups",
11
+ aggregations: {
12
+ customContent: {
13
+ type: "sap.ui.core.Control",
14
+ multiple: true,
15
+ bindable: "bindable"
16
+ },
17
+ groups: {
18
+ type: "sap.m.QuickViewGroup",
19
+ multiple: true,
20
+ singularName: "group",
21
+ bindable: "bindable"
22
+ }
23
+ },
24
+ publicMethods: []
25
+ },
26
+ renderer: {},
27
+ onAfterRendering: function (oEvent) {
28
+ QuickViewPage.prototype.onAfterRendering.apply(this, [oEvent]);
29
+ },
30
+ onBeforeRendering: function (oEvent) {
31
+ var _this = this;
32
+
33
+ if (this.getParent() && this.getParent().isA("sap.fe.core.controls.ConditionalWrapper") && this.getParent().getProperty("condition") === true) {
34
+ this.setCrossAppNavCallback(function () {
35
+ var sQuickViewPageTitleLinkHref = DelegateUtil.getCustomData(_this, "titleLink");
36
+ var oView = Utils.getViewForControl(_this);
37
+ var oAppComponent = CommonUtils.getAppComponent(oView);
38
+ var oShellServiceHelper = oAppComponent.getShellServices();
39
+ var oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkHref);
40
+ var oNavArgs = {
41
+ target: {
42
+ semanticObject: oShellHash.semanticObject,
43
+ action: oShellHash.action
44
+ },
45
+ params: oShellHash.params
46
+ };
47
+ var sQuickViewPageTitleLinkIntent = oNavArgs.target.semanticObject + "-" + oNavArgs.target.action;
48
+
49
+ if (sQuickViewPageTitleLinkIntent && _this.oCrossAppNavigator && _this.oCrossAppNavigator.isNavigationSupported([sQuickViewPageTitleLinkIntent])) {
50
+ if (sQuickViewPageTitleLinkIntent && sQuickViewPageTitleLinkIntent !== "") {
51
+ if (typeof sQuickViewPageTitleLinkIntent === "string" && sQuickViewPageTitleLinkIntent !== "") {
52
+ var sTargetHref;
53
+
54
+ var oLinkControl = _this.getParent();
55
+
56
+ while (oLinkControl && !oLinkControl.isA("sap.ui.mdc.Link")) {
57
+ oLinkControl = oLinkControl.getParent();
58
+ }
59
+
60
+ var _aLinks = oLinkControl.getModel("$sapuimdcLink").getProperty("/linkItems");
61
+
62
+ if (_aLinks) {
63
+ if (_aLinks.length > 0) {
64
+ for (var i = 0; i < _aLinks.length; i++) {
65
+ if (_aLinks[i].key === sQuickViewPageTitleLinkIntent) {
66
+ sTargetHref = _aLinks[i].href;
67
+ break;
68
+ }
69
+ }
70
+
71
+ if (sTargetHref) {
72
+ oShellHash = oShellServiceHelper.parseShellHash(sTargetHref);
73
+ } else {
74
+ oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
75
+ }
76
+ }
77
+ } else {
78
+ oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
79
+ }
80
+
81
+ KeepAliveHelper.storeControlRefreshStrategyForHash(oView, oShellHash);
82
+ return {
83
+ target: {
84
+ semanticObject: oShellHash.semanticObject,
85
+ action: oShellHash.action
86
+ },
87
+ params: oShellHash.params
88
+ };
89
+ }
90
+ }
91
+ } else {
92
+ var oCurrentShellHash = oShellServiceHelper.parseShellHash(window.location.hash);
93
+ KeepAliveHelper.storeControlRefreshStrategyForHash(oView, oCurrentShellHash);
94
+ return {
95
+ target: {
96
+ semanticObject: oCurrentShellHash.semanticObject,
97
+ action: oCurrentShellHash.action,
98
+ appSpecificRoute: oCurrentShellHash.appSpecificRoute
99
+ },
100
+ params: oCurrentShellHash.params
101
+ };
102
+ }
103
+ });
104
+ }
105
+
106
+ QuickViewPage.prototype.onBeforeRendering.apply(this, [oEvent]);
107
+ var oPageContent = this.getPageContent();
108
+ var oForm = oPageContent.form;
109
+
110
+ if (oForm) {
111
+ var _aContent = this.getCustomContent();
112
+
113
+ if (_aContent && _aContent.length > 0) {
114
+ _aContent.forEach(function (_oContent) {
115
+ var _oContentClone = _oContent.clone();
116
+
117
+ _oContentClone.setModel(_this.getModel());
118
+
119
+ _oContentClone.setBindingContext(_this.getBindingContext());
120
+
121
+ oForm.addContent(_oContentClone);
122
+ });
123
+
124
+ setTimeout(function () {
125
+ oForm.rerender();
126
+ }, 0);
127
+ }
128
+ }
129
+ }
130
+ });
131
+ return CustomQuickViewPage;
132
+ }, false);
133
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkN1c3RvbVF1aWNrVmlld1BhZ2UudHMiXSwibmFtZXMiOlsiQ3VzdG9tUXVpY2tWaWV3UGFnZSIsIlF1aWNrVmlld1BhZ2UiLCJleHRlbmQiLCJtZXRhZGF0YSIsImRlZmF1bHRBZ2dyZWdhdGlvbiIsImFnZ3JlZ2F0aW9ucyIsImN1c3RvbUNvbnRlbnQiLCJ0eXBlIiwibXVsdGlwbGUiLCJiaW5kYWJsZSIsImdyb3VwcyIsInNpbmd1bGFyTmFtZSIsInB1YmxpY01ldGhvZHMiLCJyZW5kZXJlciIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJvRXZlbnQiLCJwcm90b3R5cGUiLCJhcHBseSIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiZ2V0UGFyZW50IiwiaXNBIiwiZ2V0UHJvcGVydHkiLCJzZXRDcm9zc0FwcE5hdkNhbGxiYWNrIiwic1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtIcmVmIiwiRGVsZWdhdGVVdGlsIiwiZ2V0Q3VzdG9tRGF0YSIsIm9WaWV3IiwiVXRpbHMiLCJnZXRWaWV3Rm9yQ29udHJvbCIsIm9BcHBDb21wb25lbnQiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsIm9TaGVsbFNlcnZpY2VIZWxwZXIiLCJnZXRTaGVsbFNlcnZpY2VzIiwib1NoZWxsSGFzaCIsInBhcnNlU2hlbGxIYXNoIiwib05hdkFyZ3MiLCJ0YXJnZXQiLCJzZW1hbnRpY09iamVjdCIsImFjdGlvbiIsInBhcmFtcyIsInNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50Iiwib0Nyb3NzQXBwTmF2aWdhdG9yIiwiaXNOYXZpZ2F0aW9uU3VwcG9ydGVkIiwic1RhcmdldEhyZWYiLCJvTGlua0NvbnRyb2wiLCJfYUxpbmtzIiwiZ2V0TW9kZWwiLCJsZW5ndGgiLCJpIiwia2V5IiwiaHJlZiIsIktlZXBBbGl2ZUhlbHBlciIsInN0b3JlQ29udHJvbFJlZnJlc2hTdHJhdGVneUZvckhhc2giLCJvQ3VycmVudFNoZWxsSGFzaCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaGFzaCIsImFwcFNwZWNpZmljUm91dGUiLCJvUGFnZUNvbnRlbnQiLCJnZXRQYWdlQ29udGVudCIsIm9Gb3JtIiwiZm9ybSIsIl9hQ29udGVudCIsImdldEN1c3RvbUNvbnRlbnQiLCJmb3JFYWNoIiwiX29Db250ZW50IiwiX29Db250ZW50Q2xvbmUiLCJjbG9uZSIsInNldE1vZGVsIiwic2V0QmluZGluZ0NvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsImFkZENvbnRlbnQiLCJzZXRUaW1lb3V0IiwicmVyZW5kZXIiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFVQSxNQUFNQSxtQkFBbUIsR0FBR0MsYUFBYSxDQUFDQyxNQUFkLENBQXFCLDBDQUFyQixFQUFpRTtBQUM1RkMsSUFBQUEsUUFBUSxFQUFFO0FBQ1RDLE1BQUFBLGtCQUFrQixFQUFFLFFBRFg7QUFFVEMsTUFBQUEsWUFBWSxFQUFFO0FBQ2JDLFFBQUFBLGFBQWEsRUFBRTtBQUNkQyxVQUFBQSxJQUFJLEVBQUUscUJBRFE7QUFFZEMsVUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZEMsVUFBQUEsUUFBUSxFQUFFO0FBSEksU0FERjtBQU1iQyxRQUFBQSxNQUFNLEVBQUU7QUFBRUgsVUFBQUEsSUFBSSxFQUFFLHNCQUFSO0FBQWdDQyxVQUFBQSxRQUFRLEVBQUUsSUFBMUM7QUFBZ0RHLFVBQUFBLFlBQVksRUFBRSxPQUE5RDtBQUF1RUYsVUFBQUEsUUFBUSxFQUFFO0FBQWpGO0FBTkssT0FGTDtBQVVURyxNQUFBQSxhQUFhLEVBQUU7QUFWTixLQURrRjtBQWE1RkMsSUFBQUEsUUFBUSxFQUFFLEVBYmtGO0FBYzVGQyxJQUFBQSxnQkFBZ0IsRUFBRSxVQUFTQyxNQUFULEVBQXNCO0FBQ3ZDZCxNQUFBQSxhQUFhLENBQUNlLFNBQWQsQ0FBd0JGLGdCQUF4QixDQUF5Q0csS0FBekMsQ0FBK0MsSUFBL0MsRUFBcUQsQ0FBQ0YsTUFBRCxDQUFyRDtBQUNBLEtBaEIyRjtBQWlCNUZHLElBQUFBLGlCQUFpQixFQUFFLFVBQXdDSCxNQUF4QyxF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TUFBVixHQUFtQixDQUFwQyxFQUF1QztBQUN0Q2UsVUFBQUEsU0FBUyxDQUFDRSxPQUFWLENBQWtCLFVBQUNDLFNBQUQsRUFBb0I7QUFDckMsZ0JBQU1DLGNBQWMsR0FBR0QsU0FBUyxDQUFDRSxLQUFWLEVBQXZCOztBQUNBRCxZQUFBQSxjQUFjLENBQUNFLFFBQWYsQ0FBd0IsS0FBSSxDQUFDdEIsUUFBTCxFQUF4Qjs7QUFDQW9CLFlBQUFBLGNBQWMsQ0FBQ0csaUJBQWYsQ0FBaUMsS0FBSSxDQUFDQyxpQkFBTCxFQUFqQzs7QUFDQVYsWUFBQUEsS0FBSyxDQUFDVyxVQUFOLENBQWlCTCxjQUFqQjtBQUNBLFdBTEQ7O0FBTUFNLFVBQUFBLFVBQVUsQ0FBQyxZQUFXO0FBQ3JCWixZQUFBQSxLQUFLLENBQUNhLFFBQU47QUFDQSxXQUZTLEVBRVAsQ0FGTyxDQUFWO0FBR0E7QUFDRDtBQUNEO0FBOUcyRixHQUFqRSxDQUE1QjtTQWlIZTFFLG1CIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUXVpY2tWaWV3UGFnZSBmcm9tIFwic2FwL20vUXVpY2tWaWV3UGFnZVwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHsgRGVsZWdhdGVVdGlsIH0gZnJvbSBcInNhcC9mZS9tYWNyb3NcIjtcbmltcG9ydCBLZWVwQWxpdmVIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvS2VlcEFsaXZlSGVscGVyXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSBcInNhcC91aS9mbC9VdGlsc1wiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcblxudHlwZSBDdXN0b21RdWlja1ZpZXdQYWdlVHlwZSA9IFF1aWNrVmlld1BhZ2UgJiB7XG5cdG9Dcm9zc0FwcE5hdmlnYXRvcjogYW55O1xuXHRnZXRDdXN0b21Db250ZW50KCk6IENvbnRyb2xbXTtcblx0Z2V0UGFnZUNvbnRlbnQoKTogYW55O1xufTtcbmNvbnN0IEN1c3RvbVF1aWNrVmlld1BhZ2UgPSBRdWlja1ZpZXdQYWdlLmV4dGVuZChcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkN1c3RvbVF1aWNrVmlld1BhZ2VcIiwge1xuXHRtZXRhZGF0YToge1xuXHRcdGRlZmF1bHRBZ2dyZWdhdGlvbjogXCJncm91cHNcIixcblx0XHRhZ2dyZWdhdGlvbnM6IHtcblx0XHRcdGN1c3RvbUNvbnRlbnQ6IHtcblx0XHRcdFx0dHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiaW5kYWJsZTogXCJiaW5kYWJsZVwiXG5cdFx0XHR9LFxuXHRcdFx0Z3JvdXBzOiB7IHR5cGU6IFwic2FwLm0uUXVpY2tWaWV3R3JvdXBcIiwgbXVsdGlwbGU6IHRydWUsIHNpbmd1bGFyTmFtZTogXCJncm91cFwiLCBiaW5kYWJsZTogXCJiaW5kYWJsZVwiIH1cblx0XHR9LFxuXHRcdHB1YmxpY01ldGhvZHM6IFtdXG5cdH0sXG5cdHJlbmRlcmVyOiB7fSxcblx0b25BZnRlclJlbmRlcmluZzogZnVuY3Rpb24ob0V2ZW50OiBhbnkpIHtcblx0XHRRdWlja1ZpZXdQYWdlLnByb3RvdHlwZS5vbkFmdGVyUmVuZGVyaW5nLmFwcGx5KHRoaXMsIFtvRXZlbnRdKTtcblx0fSxcblx0b25CZWZvcmVSZW5kZXJpbmc6IGZ1bmN0aW9uKHRoaXM6IEN1c3RvbVF1aWNrVmlld1BhZ2VUeXBlLCBvRXZlbnQ6IGFueSkge1xuXHRcdGlmIChcblx0XHRcdHRoaXMuZ2V0UGFyZW50KCkgJiZcblx0XHRcdHRoaXMuZ2V0UGFyZW50KCkuaXNBKFwic2FwLmZlLmNvcmUuY29udHJvbHMuQ29uZGl0aW9uYWxXcmFwcGVyXCIpICYmXG5cdFx0XHR0aGlzLmdldFBhcmVudCgpLmdldFByb3BlcnR5KFwiY29uZGl0aW9uXCIpID09PSB0cnVlXG5cdFx0KSB7XG5cdFx0XHR0aGlzLnNldENyb3NzQXBwTmF2Q2FsbGJhY2soKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0hyZWYgPSAoRGVsZWdhdGVVdGlsLmdldEN1c3RvbURhdGEgYXMgYW55KSh0aGlzLCBcInRpdGxlTGlua1wiKTtcblx0XHRcdFx0Y29uc3Qgb1ZpZXcgPSBVdGlscy5nZXRWaWV3Rm9yQ29udHJvbCh0aGlzKTtcblx0XHRcdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudChvVmlldyk7XG5cdFx0XHRcdGNvbnN0IG9TaGVsbFNlcnZpY2VIZWxwZXIgPSBvQXBwQ29tcG9uZW50LmdldFNoZWxsU2VydmljZXMoKTtcblx0XHRcdFx0bGV0IG9TaGVsbEhhc2ggPSBvU2hlbGxTZXJ2aWNlSGVscGVyLnBhcnNlU2hlbGxIYXNoKHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSHJlZik7XG5cdFx0XHRcdGNvbnN0IG9OYXZBcmdzID0ge1xuXHRcdFx0XHRcdHRhcmdldDoge1xuXHRcdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IG9TaGVsbEhhc2guc2VtYW50aWNPYmplY3QsXG5cdFx0XHRcdFx0XHRhY3Rpb246IG9TaGVsbEhhc2guYWN0aW9uXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRwYXJhbXM6IG9TaGVsbEhhc2gucGFyYW1zXG5cdFx0XHRcdH07XG5cdFx0XHRcdGNvbnN0IHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50ID0gb05hdkFyZ3MudGFyZ2V0LnNlbWFudGljT2JqZWN0ICsgXCItXCIgKyBvTmF2QXJncy50YXJnZXQuYWN0aW9uO1xuXG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAmJlxuXHRcdFx0XHRcdHRoaXMub0Nyb3NzQXBwTmF2aWdhdG9yICYmXG5cdFx0XHRcdFx0dGhpcy5vQ3Jvc3NBcHBOYXZpZ2F0b3IuaXNOYXZpZ2F0aW9uU3VwcG9ydGVkKFtzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudF0pXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGlmIChzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAmJiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAhPT0gXCJcIikge1xuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCA9PT0gXCJzdHJpbmdcIiAmJiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAhPT0gXCJcIikge1xuXHRcdFx0XHRcdFx0XHRsZXQgc1RhcmdldEhyZWY7XG5cdFx0XHRcdFx0XHRcdGxldCBvTGlua0NvbnRyb2wgPSB0aGlzLmdldFBhcmVudCgpO1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAob0xpbmtDb250cm9sICYmICFvTGlua0NvbnRyb2wuaXNBKFwic2FwLnVpLm1kYy5MaW5rXCIpKSB7XG5cdFx0XHRcdFx0XHRcdFx0b0xpbmtDb250cm9sID0gb0xpbmtDb250cm9sLmdldFBhcmVudCgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGNvbnN0IF9hTGlua3MgPSBvTGlua0NvbnRyb2wuZ2V0TW9kZWwoXCIkc2FwdWltZGNMaW5rXCIpLmdldFByb3BlcnR5KFwiL2xpbmtJdGVtc1wiKTtcblx0XHRcdFx0XHRcdFx0aWYgKF9hTGlua3MpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoX2FMaW5rcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IF9hTGlua3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKF9hTGlua3NbaV0ua2V5ID09PSBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHNUYXJnZXRIcmVmID0gX2FMaW5rc1tpXS5ocmVmO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoc1RhcmdldEhyZWYpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0b1NoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2goc1RhcmdldEhyZWYpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0b1NoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2goc1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtJbnRlbnQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRvU2hlbGxIYXNoID0gb1NoZWxsU2VydmljZUhlbHBlci5wYXJzZVNoZWxsSGFzaChzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0S2VlcEFsaXZlSGVscGVyLnN0b3JlQ29udHJvbFJlZnJlc2hTdHJhdGVneUZvckhhc2gob1ZpZXcsIG9TaGVsbEhhc2gpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdHRhcmdldDoge1xuXHRcdFx0XHRcdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IG9TaGVsbEhhc2guc2VtYW50aWNPYmplY3QsXG5cdFx0XHRcdFx0XHRcdFx0XHRhY3Rpb246IG9TaGVsbEhhc2guYWN0aW9uXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IG9TaGVsbEhhc2gucGFyYW1zXG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnN0IG9DdXJyZW50U2hlbGxIYXNoID0gb1NoZWxsU2VydmljZUhlbHBlci5wYXJzZVNoZWxsSGFzaCh3aW5kb3cubG9jYXRpb24uaGFzaCk7XG5cdFx0XHRcdFx0S2VlcEFsaXZlSGVscGVyLnN0b3JlQ29udHJvbFJlZnJlc2hTdHJhdGVneUZvckhhc2gob1ZpZXcsIG9DdXJyZW50U2hlbGxIYXNoKTtcblxuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHR0YXJnZXQ6IHtcblx0XHRcdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IG9DdXJyZW50U2hlbGxIYXNoLnNlbWFudGljT2JqZWN0LFxuXHRcdFx0XHRcdFx0XHRhY3Rpb246IG9DdXJyZW50U2hlbGxIYXNoLmFjdGlvbixcblx0XHRcdFx0XHRcdFx0YXBwU3BlY2lmaWNSb3V0ZTogb0N1cnJlbnRTaGVsbEhhc2guYXBwU3BlY2lmaWNSb3V0ZVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHBhcmFtczogb0N1cnJlbnRTaGVsbEhhc2gucGFyYW1zXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdFF1aWNrVmlld1BhZ2UucHJvdG90eXBlLm9uQmVmb3JlUmVuZGVyaW5nLmFwcGx5KHRoaXMsIFtvRXZlbnRdKTtcblx0XHRjb25zdCBvUGFnZUNvbnRlbnQgPSB0aGlzLmdldFBhZ2VDb250ZW50KCk7XG5cdFx0Y29uc3Qgb0Zvcm0gPSBvUGFnZUNvbnRlbnQuZm9ybTtcblx0XHRpZiAob0Zvcm0pIHtcblx0XHRcdGNvbnN0IF9hQ29udGVudCA9IHRoaXMuZ2V0Q3VzdG9tQ29udGVudCgpO1xuXHRcdFx0aWYgKF9hQ29udGVudCAmJiBfYUNvbnRlbnQubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRfYUNvbnRlbnQuZm9yRWFjaCgoX29Db250ZW50OiBhbnkpID0+IHtcblx0XHRcdFx0XHRjb25zdCBfb0NvbnRlbnRDbG9uZSA9IF9vQ29udGVudC5jbG9uZSgpO1xuXHRcdFx0XHRcdF9vQ29udGVudENsb25lLnNldE1vZGVsKHRoaXMuZ2V0TW9kZWwoKSk7XG5cdFx0XHRcdFx0X29Db250ZW50Q2xvbmUuc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpKTtcblx0XHRcdFx0XHRvRm9ybS5hZGRDb250ZW50KF9vQ29udGVudENsb25lKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0b0Zvcm0ucmVyZW5kZXIoKTtcblx0XHRcdFx0fSwgMCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQ3VzdG9tUXVpY2tWaWV3UGFnZTtcbiJdfQ==
@@ -0,0 +1,126 @@
1
+ import QuickViewPage from "sap/m/QuickViewPage";
2
+ import CommonUtils from "sap/fe/core/CommonUtils";
3
+ import { DelegateUtil } from "sap/fe/macros";
4
+ import KeepAliveHelper from "sap/fe/core/helpers/KeepAliveHelper";
5
+ import Utils from "sap/ui/fl/Utils";
6
+ import Control from "sap/ui/core/Control";
7
+
8
+ type CustomQuickViewPageType = QuickViewPage & {
9
+ oCrossAppNavigator: any;
10
+ getCustomContent(): Control[];
11
+ getPageContent(): any;
12
+ };
13
+ const CustomQuickViewPage = QuickViewPage.extend("sap.fe.core.controls.CustomQuickViewPage", {
14
+ metadata: {
15
+ defaultAggregation: "groups",
16
+ aggregations: {
17
+ customContent: {
18
+ type: "sap.ui.core.Control",
19
+ multiple: true,
20
+ bindable: "bindable"
21
+ },
22
+ groups: { type: "sap.m.QuickViewGroup", multiple: true, singularName: "group", bindable: "bindable" }
23
+ },
24
+ publicMethods: []
25
+ },
26
+ renderer: {},
27
+ onAfterRendering: function(oEvent: any) {
28
+ QuickViewPage.prototype.onAfterRendering.apply(this, [oEvent]);
29
+ },
30
+ onBeforeRendering: function(this: CustomQuickViewPageType, oEvent: any) {
31
+ if (
32
+ this.getParent() &&
33
+ this.getParent().isA("sap.fe.core.controls.ConditionalWrapper") &&
34
+ this.getParent().getProperty("condition") === true
35
+ ) {
36
+ this.setCrossAppNavCallback(() => {
37
+ const sQuickViewPageTitleLinkHref = (DelegateUtil.getCustomData as any)(this, "titleLink");
38
+ const oView = Utils.getViewForControl(this);
39
+ const oAppComponent = CommonUtils.getAppComponent(oView);
40
+ const oShellServiceHelper = oAppComponent.getShellServices();
41
+ let oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkHref);
42
+ const oNavArgs = {
43
+ target: {
44
+ semanticObject: oShellHash.semanticObject,
45
+ action: oShellHash.action
46
+ },
47
+ params: oShellHash.params
48
+ };
49
+ const sQuickViewPageTitleLinkIntent = oNavArgs.target.semanticObject + "-" + oNavArgs.target.action;
50
+
51
+ if (
52
+ sQuickViewPageTitleLinkIntent &&
53
+ this.oCrossAppNavigator &&
54
+ this.oCrossAppNavigator.isNavigationSupported([sQuickViewPageTitleLinkIntent])
55
+ ) {
56
+ if (sQuickViewPageTitleLinkIntent && sQuickViewPageTitleLinkIntent !== "") {
57
+ if (typeof sQuickViewPageTitleLinkIntent === "string" && sQuickViewPageTitleLinkIntent !== "") {
58
+ let sTargetHref;
59
+ let oLinkControl = this.getParent();
60
+ while (oLinkControl && !oLinkControl.isA("sap.ui.mdc.Link")) {
61
+ oLinkControl = oLinkControl.getParent();
62
+ }
63
+ const _aLinks = oLinkControl.getModel("$sapuimdcLink").getProperty("/linkItems");
64
+ if (_aLinks) {
65
+ if (_aLinks.length > 0) {
66
+ for (let i = 0; i < _aLinks.length; i++) {
67
+ if (_aLinks[i].key === sQuickViewPageTitleLinkIntent) {
68
+ sTargetHref = _aLinks[i].href;
69
+ break;
70
+ }
71
+ }
72
+ if (sTargetHref) {
73
+ oShellHash = oShellServiceHelper.parseShellHash(sTargetHref);
74
+ } else {
75
+ oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
76
+ }
77
+ }
78
+ } else {
79
+ oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
80
+ }
81
+ KeepAliveHelper.storeControlRefreshStrategyForHash(oView, oShellHash);
82
+ return {
83
+ target: {
84
+ semanticObject: oShellHash.semanticObject,
85
+ action: oShellHash.action
86
+ },
87
+ params: oShellHash.params
88
+ };
89
+ }
90
+ }
91
+ } else {
92
+ const oCurrentShellHash = oShellServiceHelper.parseShellHash(window.location.hash);
93
+ KeepAliveHelper.storeControlRefreshStrategyForHash(oView, oCurrentShellHash);
94
+
95
+ return {
96
+ target: {
97
+ semanticObject: oCurrentShellHash.semanticObject,
98
+ action: oCurrentShellHash.action,
99
+ appSpecificRoute: oCurrentShellHash.appSpecificRoute
100
+ },
101
+ params: oCurrentShellHash.params
102
+ };
103
+ }
104
+ });
105
+ }
106
+ QuickViewPage.prototype.onBeforeRendering.apply(this, [oEvent]);
107
+ const oPageContent = this.getPageContent();
108
+ const oForm = oPageContent.form;
109
+ if (oForm) {
110
+ const _aContent = this.getCustomContent();
111
+ if (_aContent && _aContent.length > 0) {
112
+ _aContent.forEach((_oContent: any) => {
113
+ const _oContentClone = _oContent.clone();
114
+ _oContentClone.setModel(this.getModel());
115
+ _oContentClone.setBindingContext(this.getBindingContext());
116
+ oForm.addContent(_oContentClone);
117
+ });
118
+ setTimeout(function() {
119
+ oForm.rerender();
120
+ }, 0);
121
+ }
122
+ }
123
+ }
124
+ });
125
+
126
+ export default CustomQuickViewPage;