@sapui5/sap.fe.core 1.98.0 → 1.99.2

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 (231) hide show
  1. package/package.json +3 -2
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AnnotationHelper.js +377 -405
  4. package/src/sap/fe/core/AnnotationHelper.ts +385 -0
  5. package/src/sap/fe/core/AppComponent.js +3 -2
  6. package/src/sap/fe/core/AppStateHandler.js +229 -181
  7. package/src/sap/fe/core/AppStateHandler.ts +171 -0
  8. package/src/sap/fe/core/BaseController.js +3 -2
  9. package/src/sap/fe/core/BusyLocker.js +105 -121
  10. package/src/sap/fe/core/BusyLocker.ts +98 -0
  11. package/src/sap/fe/core/CommonUtils.js +2073 -2399
  12. package/src/sap/fe/core/CommonUtils.ts +2078 -0
  13. package/src/sap/fe/core/ExtensionAPI.js +3 -2
  14. package/src/sap/fe/core/PageController.js +84 -125
  15. package/src/sap/fe/core/PageController.ts +101 -0
  16. package/src/sap/fe/core/RouterProxy.js +986 -823
  17. package/src/sap/fe/core/RouterProxy.ts +838 -0
  18. package/src/sap/fe/core/Synchronization.js +51 -35
  19. package/src/sap/fe/core/Synchronization.ts +29 -0
  20. package/src/sap/fe/core/TemplateComponent.js +173 -164
  21. package/src/sap/fe/core/TemplateComponent.ts +166 -0
  22. package/src/sap/fe/core/TemplateModel.js +97 -54
  23. package/src/sap/fe/core/TemplateModel.ts +64 -0
  24. package/src/sap/fe/core/TransactionHelper.js +1576 -1664
  25. package/src/sap/fe/core/TransactionHelper.ts +1706 -0
  26. package/src/sap/fe/core/actions/draft.js +561 -608
  27. package/src/sap/fe/core/actions/draft.ts +595 -0
  28. package/src/sap/fe/core/actions/messageHandling.js +545 -514
  29. package/src/sap/fe/core/actions/messageHandling.ts +532 -0
  30. package/src/sap/fe/core/actions/nonDraft.js +17 -19
  31. package/src/sap/fe/core/actions/nonDraft.ts +12 -0
  32. package/src/sap/fe/core/actions/operations.js +1074 -1215
  33. package/src/sap/fe/core/actions/operations.ts +1162 -0
  34. package/src/sap/fe/core/actions/sticky.js +102 -105
  35. package/src/sap/fe/core/actions/sticky.ts +102 -0
  36. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +3 -2
  37. package/src/sap/fe/core/controllerextensions/EditFlow.js +170 -392
  38. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +3 -2
  39. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +279 -11
  40. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -6
  41. package/src/sap/fe/core/controllerextensions/InternalRouting.js +52 -47
  42. package/src/sap/fe/core/controllerextensions/KPIManagement.js +2 -3
  43. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +29 -26
  44. package/src/sap/fe/core/controllerextensions/MassEdit.js +101 -8
  45. package/src/sap/fe/core/controllerextensions/MessageHandler.js +17 -8
  46. package/src/sap/fe/core/controllerextensions/PageReady.js +2 -2
  47. package/src/sap/fe/core/controllerextensions/PageReady.ts +12 -8
  48. package/src/sap/fe/core/controllerextensions/Paginator.js +3 -2
  49. package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -2
  50. package/src/sap/fe/core/controllerextensions/Routing.js +9 -4
  51. package/src/sap/fe/core/controllerextensions/RoutingListener.js +3 -2
  52. package/src/sap/fe/core/controllerextensions/Share.js +3 -2
  53. package/src/sap/fe/core/controllerextensions/SideEffects.js +3 -3
  54. package/src/sap/fe/core/controllerextensions/SideEffects.ts +18 -18
  55. package/src/sap/fe/core/controllerextensions/ViewState.js +3 -2
  56. package/src/sap/fe/core/controls/CommandExecution.js +3 -2
  57. package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -2
  58. package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -2
  59. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -2
  60. package/src/sap/fe/core/controls/FieldWrapper.js +11 -22
  61. package/src/sap/fe/core/controls/FilterBar.js +3 -2
  62. package/src/sap/fe/core/controls/FormElementWrapper.js +3 -2
  63. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -2
  64. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
  65. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +3 -2
  66. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +5 -4
  67. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -2
  68. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -2
  69. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +3 -2
  70. package/src/sap/fe/core/converters/ConverterContext.js +2 -2
  71. package/src/sap/fe/core/converters/ConverterContext.ts +4 -3
  72. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  73. package/src/sap/fe/core/converters/ManifestSettings.ts +1 -0
  74. package/src/sap/fe/core/converters/ManifestWrapper.js +39 -26
  75. package/src/sap/fe/core/converters/ManifestWrapper.ts +9 -0
  76. package/src/sap/fe/core/converters/MetaModelConverter.js +11 -8
  77. package/src/sap/fe/core/converters/MetaModelConverter.ts +16 -16
  78. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  79. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -2
  80. package/src/sap/fe/core/converters/common/AnnotationConverter.js +17 -13
  81. package/src/sap/fe/core/converters/controls/Common/Action.js +2 -2
  82. package/src/sap/fe/core/converters/controls/Common/Action.ts +2 -2
  83. package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -3
  84. package/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
  85. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -3
  86. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
  87. package/src/sap/fe/core/converters/controls/Common/Form.js +4 -2
  88. package/src/sap/fe/core/converters/controls/Common/Form.ts +16 -2
  89. package/src/sap/fe/core/converters/controls/Common/Table.js +250 -146
  90. package/src/sap/fe/core/converters/controls/Common/Table.ts +300 -167
  91. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +115 -56
  92. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +120 -74
  93. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +467 -32
  94. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +483 -54
  95. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +6 -6
  96. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +9 -15
  97. package/src/sap/fe/core/converters/helpers/Aggregation.js +13 -5
  98. package/src/sap/fe/core/converters/helpers/Aggregation.ts +20 -5
  99. package/src/sap/fe/core/converters/helpers/IssueManager.js +4 -1
  100. package/src/sap/fe/core/converters/helpers/IssueManager.ts +3 -0
  101. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +4 -4
  102. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +3 -3
  103. package/src/sap/fe/core/converters/templates/ListReportConverter.js +13 -6
  104. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +26 -15
  105. package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -2
  106. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  107. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
  108. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  109. package/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
  110. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
  111. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
  112. package/src/sap/fe/core/formatters/TableFormatter.js +39 -28
  113. package/src/sap/fe/core/formatters/TableFormatter.ts +43 -28
  114. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  115. package/src/sap/fe/core/formatters/ValueFormatter.ts +7 -6
  116. package/src/sap/fe/core/fpm/Component.js +3 -2
  117. package/src/sap/fe/core/helpers/AppStartupHelper.js +2 -2
  118. package/src/sap/fe/core/helpers/AppStartupHelper.ts +7 -4
  119. package/src/sap/fe/core/helpers/BindingExpression.js +314 -355
  120. package/src/sap/fe/core/helpers/BindingExpression.ts +317 -391
  121. package/src/sap/fe/core/helpers/ClassSupport.js +27 -15
  122. package/src/sap/fe/core/helpers/ClassSupport.ts +31 -20
  123. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +63 -59
  124. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +56 -0
  125. package/src/sap/fe/core/helpers/EditState.js +81 -84
  126. package/src/sap/fe/core/helpers/EditState.ts +81 -0
  127. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +62 -48
  128. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
  129. package/src/sap/fe/core/helpers/FPMHelper.js +52 -56
  130. package/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
  131. package/src/sap/fe/core/helpers/KeepAliveHelper.js +3 -4
  132. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +9 -9
  133. package/src/sap/fe/core/helpers/MassEditHelper.js +27 -18
  134. package/src/sap/fe/core/helpers/ModelHelper.js +229 -225
  135. package/src/sap/fe/core/helpers/ModelHelper.ts +227 -0
  136. package/src/sap/fe/core/helpers/PasteHelper.js +210 -132
  137. package/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
  138. package/src/sap/fe/core/helpers/SemanticDateOperators.js +332 -313
  139. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +330 -0
  140. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +66 -67
  141. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
  142. package/src/sap/fe/core/helpers/StableIdHelper.js +4 -7
  143. package/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
  144. package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
  145. package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
  146. package/src/sap/fe/core/library.js +4 -3
  147. package/src/sap/fe/core/library.support.js +3 -2
  148. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  149. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +1 -1
  150. package/src/sap/fe/core/messagebundle.properties +23 -10
  151. package/src/sap/fe/core/messagebundle_ar.properties +9 -0
  152. package/src/sap/fe/core/messagebundle_bg.properties +9 -0
  153. package/src/sap/fe/core/messagebundle_ca.properties +9 -0
  154. package/src/sap/fe/core/messagebundle_cs.properties +10 -1
  155. package/src/sap/fe/core/messagebundle_cy.properties +9 -0
  156. package/src/sap/fe/core/messagebundle_da.properties +9 -0
  157. package/src/sap/fe/core/messagebundle_de.properties +9 -0
  158. package/src/sap/fe/core/messagebundle_el.properties +9 -0
  159. package/src/sap/fe/core/messagebundle_en.properties +9 -0
  160. package/src/sap/fe/core/messagebundle_en_GB.properties +9 -0
  161. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +9 -0
  162. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -0
  163. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +9 -0
  164. package/src/sap/fe/core/messagebundle_es.properties +9 -0
  165. package/src/sap/fe/core/messagebundle_es_MX.properties +9 -0
  166. package/src/sap/fe/core/messagebundle_et.properties +9 -0
  167. package/src/sap/fe/core/messagebundle_fi.properties +9 -0
  168. package/src/sap/fe/core/messagebundle_fr.properties +13 -4
  169. package/src/sap/fe/core/messagebundle_fr_CA.properties +15 -6
  170. package/src/sap/fe/core/messagebundle_hi.properties +15 -6
  171. package/src/sap/fe/core/messagebundle_hr.properties +15 -6
  172. package/src/sap/fe/core/messagebundle_hu.properties +9 -0
  173. package/src/sap/fe/core/messagebundle_id.properties +10 -1
  174. package/src/sap/fe/core/messagebundle_it.properties +9 -0
  175. package/src/sap/fe/core/messagebundle_iw.properties +9 -0
  176. package/src/sap/fe/core/messagebundle_ja.properties +9 -0
  177. package/src/sap/fe/core/messagebundle_kk.properties +15 -6
  178. package/src/sap/fe/core/messagebundle_ko.properties +9 -0
  179. package/src/sap/fe/core/messagebundle_lt.properties +9 -0
  180. package/src/sap/fe/core/messagebundle_lv.properties +15 -6
  181. package/src/sap/fe/core/messagebundle_ms.properties +14 -5
  182. package/src/sap/fe/core/messagebundle_nl.properties +9 -0
  183. package/src/sap/fe/core/messagebundle_no.properties +9 -0
  184. package/src/sap/fe/core/messagebundle_pl.properties +9 -0
  185. package/src/sap/fe/core/messagebundle_pt.properties +9 -0
  186. package/src/sap/fe/core/messagebundle_pt_PT.properties +9 -0
  187. package/src/sap/fe/core/messagebundle_ro.properties +9 -0
  188. package/src/sap/fe/core/messagebundle_ru.properties +9 -0
  189. package/src/sap/fe/core/messagebundle_sh.properties +11 -2
  190. package/src/sap/fe/core/messagebundle_sk.properties +9 -0
  191. package/src/sap/fe/core/messagebundle_sl.properties +15 -6
  192. package/src/sap/fe/core/messagebundle_sv.properties +9 -0
  193. package/src/sap/fe/core/messagebundle_th.properties +9 -0
  194. package/src/sap/fe/core/messagebundle_tr.properties +9 -0
  195. package/src/sap/fe/core/messagebundle_uk.properties +9 -0
  196. package/src/sap/fe/core/messagebundle_vi.properties +9 -0
  197. package/src/sap/fe/core/messagebundle_zh_CN.properties +9 -0
  198. package/src/sap/fe/core/messagebundle_zh_TW.properties +15 -6
  199. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
  200. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  201. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +269 -202
  202. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
  203. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  204. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +7 -6
  205. package/src/sap/fe/core/services/NavigationServiceFactory.js +406 -300
  206. package/src/sap/fe/core/services/NavigationServiceFactory.ts +316 -0
  207. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +149 -81
  208. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +80 -0
  209. package/src/sap/fe/core/services/RoutingServiceFactory.js +987 -899
  210. package/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
  211. package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  212. package/src/sap/fe/core/services/ShellServicesFactory.ts +15 -10
  213. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +35 -81
  214. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +46 -94
  215. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +461 -487
  216. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +453 -0
  217. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +10 -8
  218. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
  219. package/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
  220. package/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
  221. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
  222. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
  223. package/src/sap/fe/core/templating/FieldControlHelper.js +8 -8
  224. package/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
  225. package/src/sap/fe/core/templating/FilterHelper.js +138 -72
  226. package/src/sap/fe/core/templating/FilterHelper.ts +139 -71
  227. package/src/sap/fe/core/templating/UIFormatters.js +31 -1
  228. package/src/sap/fe/core/templating/UIFormatters.ts +33 -2
  229. package/src/sap/fe/core/type/Email.js +1 -1
  230. package/src/sap/fe/core/type/Email.ts +4 -6
  231. package/ui5.yaml +0 -3
@@ -1,37 +1,53 @@
1
1
  /*!
2
- * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/Log", "sap/ui/base/Object"], function(Log, BaseObject) {
6
- "use strict";
7
-
8
- return BaseObject.extend("sap.fe.core.Synchronization", {
9
- constructor: function() {
10
- this._fnResolve = null;
11
- this._isResolved = false;
12
-
13
- return BaseObject.apply(this, arguments);
14
- },
15
-
16
- waitFor: function() {
17
- var that = this;
18
-
19
- if (this._isResolved) {
20
- return Promise.resolve();
21
- } else {
22
- return new Promise(function(resolve, reject) {
23
- that._fnResolve = resolve;
24
- });
25
- }
26
- },
27
-
28
- resolve: function() {
29
- if (!this._isResolved) {
30
- this._isResolved = true;
31
- if (this._fnResolve) {
32
- this._fnResolve();
33
- }
34
- }
35
- }
36
- });
37
- });
5
+ sap.ui.define([], function () {
6
+ "use strict";
7
+
8
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
+
10
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
11
+
12
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
13
+
14
+ var Synchronization = /*#__PURE__*/function () {
15
+ function Synchronization() {
16
+ _classCallCheck(this, Synchronization);
17
+
18
+ this._fnResolve = null;
19
+ this._isResolved = false;
20
+ }
21
+
22
+ _createClass(Synchronization, [{
23
+ key: "waitFor",
24
+ value: function waitFor() {
25
+ var _this = this;
26
+
27
+ if (this._isResolved) {
28
+ return Promise.resolve();
29
+ } else {
30
+ return new Promise(function (resolve) {
31
+ _this._fnResolve = resolve;
32
+ });
33
+ }
34
+ }
35
+ }, {
36
+ key: "resolve",
37
+ value: function resolve() {
38
+ if (!this._isResolved) {
39
+ this._isResolved = true;
40
+
41
+ if (this._fnResolve) {
42
+ this._fnResolve();
43
+ }
44
+ }
45
+ }
46
+ }]);
47
+
48
+ return Synchronization;
49
+ }();
50
+
51
+ return Synchronization;
52
+ }, false);
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlN5bmNocm9uaXphdGlvbi50cyJdLCJuYW1lcyI6WyJTeW5jaHJvbml6YXRpb24iLCJfZm5SZXNvbHZlIiwiX2lzUmVzb2x2ZWQiLCJQcm9taXNlIiwicmVzb2x2ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7OztNQUZNQSxlO0FBR0wsK0JBQWM7QUFBQTs7QUFDYixXQUFLQyxVQUFMLEdBQWtCLElBQWxCO0FBQ0EsV0FBS0MsV0FBTCxHQUFtQixLQUFuQjtBQUNBOzs7O2FBRUQsbUJBQVU7QUFBQTs7QUFDVCxZQUFJLEtBQUtBLFdBQVQsRUFBc0I7QUFDckIsaUJBQU9DLE9BQU8sQ0FBQ0MsT0FBUixFQUFQO0FBQ0EsU0FGRCxNQUVPO0FBQ04saUJBQU8sSUFBSUQsT0FBSixDQUFZLFVBQUFDLE9BQU8sRUFBSTtBQUM3QixZQUFBLEtBQUksQ0FBQ0gsVUFBTCxHQUFrQkcsT0FBbEI7QUFDQSxXQUZNLENBQVA7QUFHQTtBQUNEOzs7YUFFRCxtQkFBVTtBQUNULFlBQUksQ0FBQyxLQUFLRixXQUFWLEVBQXVCO0FBQ3RCLGVBQUtBLFdBQUwsR0FBbUIsSUFBbkI7O0FBQ0EsY0FBSSxLQUFLRCxVQUFULEVBQXFCO0FBQ3BCLGlCQUFLQSxVQUFMO0FBQ0E7QUFDRDtBQUNEOzs7Ozs7U0FHYUQsZSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgU3luY2hyb25pemF0aW9uIHtcblx0cHJpdmF0ZSBfZm5SZXNvbHZlOiBGdW5jdGlvbiB8IG51bGw7XG5cdHByaXZhdGUgX2lzUmVzb2x2ZWQ6IGJvb2xlYW47XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuX2ZuUmVzb2x2ZSA9IG51bGw7XG5cdFx0dGhpcy5faXNSZXNvbHZlZCA9IGZhbHNlO1xuXHR9XG5cblx0d2FpdEZvcigpIHtcblx0XHRpZiAodGhpcy5faXNSZXNvbHZlZCkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG5cdFx0XHRcdHRoaXMuX2ZuUmVzb2x2ZSA9IHJlc29sdmU7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRyZXNvbHZlKCkge1xuXHRcdGlmICghdGhpcy5faXNSZXNvbHZlZCkge1xuXHRcdFx0dGhpcy5faXNSZXNvbHZlZCA9IHRydWU7XG5cdFx0XHRpZiAodGhpcy5fZm5SZXNvbHZlKSB7XG5cdFx0XHRcdHRoaXMuX2ZuUmVzb2x2ZSgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBTeW5jaHJvbml6YXRpb247XG4iXX0=
@@ -0,0 +1,29 @@
1
+ class Synchronization {
2
+ private _fnResolve: Function | null;
3
+ private _isResolved: boolean;
4
+ constructor() {
5
+ this._fnResolve = null;
6
+ this._isResolved = false;
7
+ }
8
+
9
+ waitFor() {
10
+ if (this._isResolved) {
11
+ return Promise.resolve();
12
+ } else {
13
+ return new Promise(resolve => {
14
+ this._fnResolve = resolve;
15
+ });
16
+ }
17
+ }
18
+
19
+ resolve() {
20
+ if (!this._isResolved) {
21
+ this._isResolved = true;
22
+ if (this._fnResolve) {
23
+ this._fnResolve();
24
+ }
25
+ }
26
+ }
27
+ }
28
+
29
+ export default Synchronization;
@@ -1,166 +1,175 @@
1
1
  /*!
2
- * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(
6
- ["sap/ui/core/UIComponent", "sap/fe/core/CommonUtils", "sap/ui/mdc/p13n/StateUtil", "sap/base/Log"],
7
- function(UIComponent, CommonUtils, StateUtil, Log) {
8
- "use strict";
9
-
10
- var TemplateComponent = UIComponent.extend("sap.fe.core.TemplateComponent", {
11
- metadata: {
12
- interfaces: ["sap.ui.core.IAsyncContentCreation"],
13
- properties: {
14
- /**
15
- * Name of the OData entity set
16
- */
17
- entitySet: {
18
- type: "string",
19
- defaultValue: null
20
- },
21
- /**
22
- * Context Path for rendering the template
23
- */
24
- contextPath: {
25
- type: "string",
26
- defaultValue: null
27
- },
28
- /**
29
- * The pattern for the binding context to be create based on the parameters from the navigation
30
- * If not provided we'll default to what was passed in the URL
31
- */
32
- bindingContextPattern: {
33
- type: "string"
34
- },
35
-
36
- /**
37
- * Map of used OData navigations and its routing targets
38
- */
39
- navigation: {
40
- type: "object"
41
- },
42
- /**
43
- * Enhance the i18n bundle used for this page with one or more app specific i18n resource bundles or resource models
44
- * or a combination of both. The last resource bundle/model is given highest priority
45
- */
46
- enhanceI18n: {
47
- type: "string[]"
48
- },
49
- /**
50
- * Define control related configuration settings
51
- */
52
- controlConfiguration: {
53
- type: "object"
54
- },
55
- /**
56
- * Adjusts the template content
57
- */
58
- content: {
59
- type: "object"
60
- },
61
- /**
62
- * Whether or not you can reach this page directly through semantic bookmarks
63
- */
64
- allowDeepLinking: {
65
- type: "boolean"
66
- },
67
- /**
68
- * Defines the context path on the component that is refreshed when the app is restored using keep alive mode
69
- */
70
- refreshStrategyOnAppRestore: {
71
- type: "object"
72
- }
73
- },
74
- events: {
75
- containerDefined: {
76
- container: { type: "sap.ui.base.ManagedObject" }
77
- },
78
- heroesBatchReceived: {
79
- element: { type: "sap.ui.base.ManagedObject" }
80
- },
81
- workersBatchReceived: {
82
- element: { type: "sap.ui.base.ManagedObject" }
83
- }
84
- },
85
- library: "sap.fe.core"
86
- },
87
-
88
- setContainer: function(oContainer) {
89
- UIComponent.prototype.setContainer.apply(this, arguments);
90
- this.fireContainerDefined({ container: oContainer });
91
- },
92
-
93
- init: function() {
94
- this.oAppComponent = CommonUtils.getAppComponent(this);
95
- UIComponent.prototype.init.apply(this, arguments);
96
- var oStateChangedHandler = function(oEvent) {
97
- var oControl = oEvent.getParameter("control");
98
- if (oControl.isA("sap.ui.mdc.Table") || oControl.isA("sap.ui.mdc.FilterBar")) {
99
- var oMacroAPI = oControl.getParent();
100
- oMacroAPI.fireStateChanged();
101
- }
102
- };
103
- StateUtil.detachStateChange(oStateChangedHandler);
104
- StateUtil.attachStateChange(oStateChangedHandler);
105
- },
106
-
107
- // This method is called by UI5 core to access to the component containing the customizing configuration.
108
- // as controller extensions are defined in the manifest for the app component and not for the
109
- // template component we return the app component.
110
- getExtensionComponent: function() {
111
- return this.oAppComponent;
112
- },
113
-
114
- onPageReady: function(mParameters) {
115
- if (this.getRootControl() && this.getRootControl().getController() && this.getRootControl().getController().onPageReady) {
116
- this.getRootControl()
117
- .getController()
118
- .onPageReady(mParameters);
119
- }
120
- },
121
-
122
- getNavigationConfiguration: function(sTargetPath) {
123
- var mNavigation = this.getNavigation();
124
- return mNavigation[sTargetPath];
125
- },
126
-
127
- getViewData: function() {
128
- var mProperties = this.getMetadata().getAllProperties();
129
- var oViewData = Object.keys(mProperties).reduce(
130
- function(mViewData, sPropertyName) {
131
- mViewData[sPropertyName] = mProperties[sPropertyName].get(this);
132
- return mViewData;
133
- }.bind(this),
134
- {}
135
- );
136
-
137
- // Access the internal _isFclEnabled which will be there
138
- oViewData.fclEnabled = this.oAppComponent._isFclEnabled();
139
-
140
- return oViewData;
141
- },
142
-
143
- _getPageTitleInformation: function() {
144
- if (
145
- this.getRootControl() &&
146
- this.getRootControl().getController() &&
147
- this.getRootControl().getController()._getPageTitleInformation
148
- ) {
149
- return this.getRootControl()
150
- .getController()
151
- ._getPageTitleInformation();
152
- } else {
153
- return {};
154
- }
155
- },
156
-
157
- getExtensionAPI: function() {
158
- return this.getRootControl()
159
- .getController()
160
- .getExtensionAPI();
161
- }
162
- });
163
- return TemplateComponent;
164
- },
165
- /* bExport= */ true
166
- );
5
+ sap.ui.define(["sap/ui/core/UIComponent", "sap/fe/core/CommonUtils", "sap/ui/mdc/p13n/StateUtil"], function (UIComponent, CommonUtils, StateUtil) {
6
+ "use strict";
7
+
8
+ var TemplateComponent = UIComponent.extend("sap.fe.core.TemplateComponent", {
9
+ metadata: {
10
+ interfaces: ["sap.ui.core.IAsyncContentCreation"],
11
+ properties: {
12
+ /**
13
+ * Name of the OData entity set
14
+ */
15
+ entitySet: {
16
+ type: "string",
17
+ defaultValue: null
18
+ },
19
+
20
+ /**
21
+ * Context Path for rendering the template
22
+ */
23
+ contextPath: {
24
+ type: "string",
25
+ defaultValue: null
26
+ },
27
+
28
+ /**
29
+ * The pattern for the binding context to be create based on the parameters from the navigation
30
+ * If not provided we'll default to what was passed in the URL
31
+ */
32
+ bindingContextPattern: {
33
+ type: "string"
34
+ },
35
+
36
+ /**
37
+ * Map of used OData navigations and its routing targets
38
+ */
39
+ navigation: {
40
+ type: "object"
41
+ },
42
+
43
+ /**
44
+ * Enhance the i18n bundle used for this page with one or more app specific i18n resource bundles or resource models
45
+ * or a combination of both. The last resource bundle/model is given highest priority
46
+ */
47
+ enhanceI18n: {
48
+ type: "string[]"
49
+ },
50
+
51
+ /**
52
+ * Define control related configuration settings
53
+ */
54
+ controlConfiguration: {
55
+ type: "object"
56
+ },
57
+
58
+ /**
59
+ * Adjusts the template content
60
+ */
61
+ content: {
62
+ type: "object"
63
+ },
64
+
65
+ /**
66
+ * Whether or not you can reach this page directly through semantic bookmarks
67
+ */
68
+ allowDeepLinking: {
69
+ type: "boolean"
70
+ },
71
+
72
+ /**
73
+ * Defines the context path on the component that is refreshed when the app is restored using keep alive mode
74
+ */
75
+ refreshStrategyOnAppRestore: {
76
+ type: "object"
77
+ }
78
+ },
79
+ events: {
80
+ containerDefined: {
81
+ container: {
82
+ type: "sap.ui.base.ManagedObject"
83
+ }
84
+ },
85
+ heroesBatchReceived: {
86
+ element: {
87
+ type: "sap.ui.base.ManagedObject"
88
+ }
89
+ },
90
+ workersBatchReceived: {
91
+ element: {
92
+ type: "sap.ui.base.ManagedObject"
93
+ }
94
+ }
95
+ },
96
+ library: "sap.fe.core"
97
+ },
98
+ setContainer: function (oContainer) {
99
+ var setContainerOutput = UIComponent.prototype.setContainer.apply(this, [oContainer]);
100
+ this.fireContainerDefined({
101
+ container: oContainer
102
+ });
103
+ return setContainerOutput;
104
+ },
105
+ init: function () {
106
+ this.oAppComponent = CommonUtils.getAppComponent(this);
107
+ UIComponent.prototype.init.apply(this);
108
+
109
+ var oStateChangedHandler = function (oEvent) {
110
+ var oControl = oEvent.getParameter("control");
111
+
112
+ if (oControl.isA("sap.ui.mdc.Table") || oControl.isA("sap.ui.mdc.FilterBar")) {
113
+ var oMacroAPI = oControl.getParent();
114
+ oMacroAPI.fireStateChanged();
115
+ }
116
+ };
117
+
118
+ StateUtil.detachStateChange(oStateChangedHandler);
119
+ StateUtil.attachStateChange(oStateChangedHandler);
120
+ },
121
+ // This method is called by UI5 core to access to the component containing the customizing configuration.
122
+ // as controller extensions are defined in the manifest for the app component and not for the
123
+ // template component we return the app component.
124
+ getExtensionComponent: function () {
125
+ return this.oAppComponent;
126
+ },
127
+ getRootController: function () {
128
+ var rootControl = this.getRootControl();
129
+ var rootController;
130
+
131
+ if (rootControl && rootControl.getController) {
132
+ rootController = rootControl.getController();
133
+ }
134
+
135
+ return rootController;
136
+ },
137
+ onPageReady: function (mParameters) {
138
+ var rootController = this.getRootController();
139
+
140
+ if (rootController && rootController.onPageReady) {
141
+ rootController.onPageReady(mParameters);
142
+ }
143
+ },
144
+ getNavigationConfiguration: function (sTargetPath) {
145
+ var mNavigation = this.getNavigation();
146
+ return mNavigation[sTargetPath];
147
+ },
148
+ getViewData: function () {
149
+ var _this = this;
150
+
151
+ var mProperties = this.getMetadata().getAllProperties();
152
+ var oViewData = Object.keys(mProperties).reduce(function (mViewData, sPropertyName) {
153
+ mViewData[sPropertyName] = mProperties[sPropertyName].get(_this);
154
+ return mViewData;
155
+ }, {}); // Access the internal _isFclEnabled which will be there
156
+
157
+ oViewData.fclEnabled = this.oAppComponent._isFclEnabled();
158
+ return oViewData;
159
+ },
160
+ _getPageTitleInformation: function () {
161
+ var rootControl = this.getRootControl();
162
+
163
+ if (rootControl && rootControl.getController() && rootControl.getController()._getPageTitleInformation) {
164
+ return rootControl.getController()._getPageTitleInformation();
165
+ } else {
166
+ return {};
167
+ }
168
+ },
169
+ getExtensionAPI: function () {
170
+ return this.getRootControl().getController().getExtensionAPI();
171
+ }
172
+ });
173
+ return TemplateComponent;
174
+ }, false);
175
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRlbXBsYXRlQ29tcG9uZW50LnRzIl0sIm5hbWVzIjpbIlRlbXBsYXRlQ29tcG9uZW50IiwiVUlDb21wb25lbnQiLCJleHRlbmQiLCJtZXRhZGF0YSIsImludGVyZmFjZXMiLCJwcm9wZXJ0aWVzIiwiZW50aXR5U2V0IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImNvbnRleHRQYXRoIiwiYmluZGluZ0NvbnRleHRQYXR0ZXJuIiwibmF2aWdhdGlvbiIsImVuaGFuY2VJMThuIiwiY29udHJvbENvbmZpZ3VyYXRpb24iLCJjb250ZW50IiwiYWxsb3dEZWVwTGlua2luZyIsInJlZnJlc2hTdHJhdGVneU9uQXBwUmVzdG9yZSIsImV2ZW50cyIsImNvbnRhaW5lckRlZmluZWQiLCJjb250YWluZXIiLCJoZXJvZXNCYXRjaFJlY2VpdmVkIiwiZWxlbWVudCIsIndvcmtlcnNCYXRjaFJlY2VpdmVkIiwibGlicmFyeSIsInNldENvbnRhaW5lciIsIm9Db250YWluZXIiLCJzZXRDb250YWluZXJPdXRwdXQiLCJwcm90b3R5cGUiLCJhcHBseSIsImZpcmVDb250YWluZXJEZWZpbmVkIiwiaW5pdCIsIm9BcHBDb21wb25lbnQiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsIm9TdGF0ZUNoYW5nZWRIYW5kbGVyIiwib0V2ZW50Iiwib0NvbnRyb2wiLCJnZXRQYXJhbWV0ZXIiLCJpc0EiLCJvTWFjcm9BUEkiLCJnZXRQYXJlbnQiLCJmaXJlU3RhdGVDaGFuZ2VkIiwiU3RhdGVVdGlsIiwiZGV0YWNoU3RhdGVDaGFuZ2UiLCJhdHRhY2hTdGF0ZUNoYW5nZSIsImdldEV4dGVuc2lvbkNvbXBvbmVudCIsImdldFJvb3RDb250cm9sbGVyIiwicm9vdENvbnRyb2wiLCJnZXRSb290Q29udHJvbCIsInJvb3RDb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsIm9uUGFnZVJlYWR5IiwibVBhcmFtZXRlcnMiLCJnZXROYXZpZ2F0aW9uQ29uZmlndXJhdGlvbiIsInNUYXJnZXRQYXRoIiwibU5hdmlnYXRpb24iLCJnZXROYXZpZ2F0aW9uIiwiZ2V0Vmlld0RhdGEiLCJtUHJvcGVydGllcyIsImdldE1ldGFkYXRhIiwiZ2V0QWxsUHJvcGVydGllcyIsIm9WaWV3RGF0YSIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJtVmlld0RhdGEiLCJzUHJvcGVydHlOYW1lIiwiZ2V0IiwiZmNsRW5hYmxlZCIsIl9pc0ZjbEVuYWJsZWQiLCJfZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24iLCJnZXRFeHRlbnNpb25BUEkiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFVQSxNQUFNQSxpQkFBaUIsR0FBR0MsV0FBVyxDQUFDQyxNQUFaLENBQW1CLCtCQUFuQixFQUFvRDtBQUM3RUMsSUFBQUEsUUFBUSxFQUFFO0FBQ1RDLE1BQUFBLFVBQVUsRUFBRSxDQUFDLG1DQUFELENBREg7QUFFVEMsTUFBQUEsVUFBVSxFQUFFO0FBQ1g7QUFDSDtBQUNBO0FBQ0dDLFFBQUFBLFNBQVMsRUFBRTtBQUNWQyxVQUFBQSxJQUFJLEVBQUUsUUFESTtBQUVWQyxVQUFBQSxZQUFZLEVBQUU7QUFGSixTQUpBOztBQVFYO0FBQ0g7QUFDQTtBQUNHQyxRQUFBQSxXQUFXLEVBQUU7QUFDWkYsVUFBQUEsSUFBSSxFQUFFLFFBRE07QUFFWkMsVUFBQUEsWUFBWSxFQUFFO0FBRkYsU0FYRjs7QUFlWDtBQUNIO0FBQ0E7QUFDQTtBQUNHRSxRQUFBQSxxQkFBcUIsRUFBRTtBQUN0QkgsVUFBQUEsSUFBSSxFQUFFO0FBRGdCLFNBbkJaOztBQXVCWDtBQUNIO0FBQ0E7QUFDR0ksUUFBQUEsVUFBVSxFQUFFO0FBQ1hKLFVBQUFBLElBQUksRUFBRTtBQURLLFNBMUJEOztBQTZCWDtBQUNIO0FBQ0E7QUFDQTtBQUNHSyxRQUFBQSxXQUFXLEVBQUU7QUFDWkwsVUFBQUEsSUFBSSxFQUFFO0FBRE0sU0FqQ0Y7O0FBb0NYO0FBQ0g7QUFDQTtBQUNHTSxRQUFBQSxvQkFBb0IsRUFBRTtBQUNyQk4sVUFBQUEsSUFBSSxF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QyxFQUFELENBQXlEcUIsZUFBekQsRUFBUDtBQUNBO0FBdEo0RSxHQUFwRCxDQUExQjtTQXlKZXZFLGlCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVUlDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL1VJQ29tcG9uZW50XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgU3RhdGVVdGlsIGZyb20gXCJzYXAvdWkvbWRjL3AxM24vU3RhdGVVdGlsXCI7XG5pbXBvcnQgQ29tcG9uZW50Q29udGFpbmVyIGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRDb250YWluZXJcIjtcbmltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gXCJzYXAvZmUvY29yZVwiO1xuaW1wb3J0IFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5cbnR5cGUgVGVtcGxhdGVDb21wb25lbnRUeXBlID0gVUlDb21wb25lbnQgJiB7XG5cdG9BcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudDtcblx0Z2V0TmF2aWdhdGlvbigpOiBhbnk7XG59O1xuY29uc3QgVGVtcGxhdGVDb21wb25lbnQgPSBVSUNvbXBvbmVudC5leHRlbmQoXCJzYXAuZmUuY29yZS5UZW1wbGF0ZUNvbXBvbmVudFwiLCB7XG5cdG1ldGFkYXRhOiB7XG5cdFx0aW50ZXJmYWNlczogW1wic2FwLnVpLmNvcmUuSUFzeW5jQ29udGVudENyZWF0aW9uXCJdLFxuXHRcdHByb3BlcnRpZXM6IHtcblx0XHRcdC8qKlxuXHRcdFx0ICogTmFtZSBvZiB0aGUgT0RhdGEgZW50aXR5IHNldFxuXHRcdFx0ICovXG5cdFx0XHRlbnRpdHlTZXQ6IHtcblx0XHRcdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRcdFx0ZGVmYXVsdFZhbHVlOiBudWxsXG5cdFx0XHR9LFxuXHRcdFx0LyoqXG5cdFx0XHQgKiBDb250ZXh0IFBhdGggZm9yIHJlbmRlcmluZyB0aGUgdGVtcGxhdGVcblx0XHRcdCAqL1xuXHRcdFx0Y29udGV4dFBhdGg6IHtcblx0XHRcdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRcdFx0ZGVmYXVsdFZhbHVlOiBudWxsXG5cdFx0XHR9LFxuXHRcdFx0LyoqXG5cdFx0XHQgKiBUaGUgcGF0dGVybiBmb3IgdGhlIGJpbmRpbmcgY29udGV4dCB0byBiZSBjcmVhdGUgYmFzZWQgb24gdGhlIHBhcmFtZXRlcnMgZnJvbSB0aGUgbmF2aWdhdGlvblxuXHRcdFx0ICogSWYgbm90IHByb3ZpZGVkIHdlJ2xsIGRlZmF1bHQgdG8gd2hhdCB3YXMgcGFzc2VkIGluIHRoZSBVUkxcblx0XHRcdCAqL1xuXHRcdFx0YmluZGluZ0NvbnRleHRQYXR0ZXJuOiB7XG5cdFx0XHRcdHR5cGU6IFwic3RyaW5nXCJcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogTWFwIG9mIHVzZWQgT0RhdGEgbmF2aWdhdGlvbnMgYW5kIGl0cyByb3V0aW5nIHRhcmdldHNcblx0XHRcdCAqL1xuXHRcdFx0bmF2aWdhdGlvbjoge1xuXHRcdFx0XHR0eXBlOiBcIm9iamVjdFwiXG5cdFx0XHR9LFxuXHRcdFx0LyoqXG5cdFx0XHQgKiBFbmhhbmNlIHRoZSBpMThuIGJ1bmRsZSB1c2VkIGZvciB0aGlzIHBhZ2Ugd2l0aCBvbmUgb3IgbW9yZSBhcHAgc3BlY2lmaWMgaTE4biByZXNvdXJjZSBidW5kbGVzIG9yIHJlc291cmNlIG1vZGVsc1xuXHRcdFx0ICogb3IgYSBjb21iaW5hdGlvbiBvZiBib3RoLiBUaGUgbGFzdCByZXNvdXJjZSBidW5kbGUvbW9kZWwgaXMgZ2l2ZW4gaGlnaGVzdCBwcmlvcml0eVxuXHRcdFx0ICovXG5cdFx0XHRlbmhhbmNlSTE4bjoge1xuXHRcdFx0XHR0eXBlOiBcInN0cmluZ1tdXCJcblx0XHRcdH0sXG5cdFx0XHQvKipcblx0XHRcdCAqIERlZmluZSBjb250cm9sIHJlbGF0ZWQgY29uZmlndXJhdGlvbiBzZXR0aW5nc1xuXHRcdFx0ICovXG5cdFx0XHRjb250cm9sQ29uZmlndXJhdGlvbjoge1xuXHRcdFx0XHR0eXBlOiBcIm9iamVjdFwiXG5cdFx0XHR9LFxuXHRcdFx0LyoqXG5cdFx0XHQgKiBBZGp1c3RzIHRoZSB0ZW1wbGF0ZSBjb250ZW50XG5cdFx0XHQgKi9cblx0XHRcdGNvbnRlbnQ6IHtcblx0XHRcdFx0dHlwZTogXCJvYmplY3RcIlxuXHRcdFx0fSxcblx0XHRcdC8qKlxuXHRcdFx0ICogV2hldGhlciBvciBub3QgeW91IGNhbiByZWFjaCB0aGlzIHBhZ2UgZGlyZWN0bHkgdGhyb3VnaCBzZW1hbnRpYyBib29rbWFya3Ncblx0XHRcdCAqL1xuXHRcdFx0YWxsb3dEZWVwTGlua2luZzoge1xuXHRcdFx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHRcdFx0fSxcblx0XHRcdC8qKlxuXHRcdFx0ICogRGVmaW5lcyB0aGUgY29udGV4dCBwYXRoIG9uIHRoZSBjb21wb25lbnQgdGhhdCBpcyByZWZyZXNoZWQgd2hlbiB0aGUgYXBwIGlzIHJlc3RvcmVkIHVzaW5nIGtlZXAgYWxpdmUgbW9kZVxuXHRcdFx0ICovXG5cdFx0XHRyZWZyZXNoU3RyYXRlZ3lPbkFwcFJlc3RvcmU6IHtcblx0XHRcdFx0dHlwZTogXCJvYmplY3RcIlxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0ZXZlbnRzOiB7XG5cdFx0XHRjb250YWluZXJEZWZpbmVkOiB7XG5cdFx0XHRcdGNvbnRhaW5lcjogeyB0eXBlOiBcInNhcC51aS5iYXNlLk1hbmFnZWRPYmplY3RcIiB9XG5cdFx0XHR9LFxuXHRcdFx0aGVyb2VzQmF0Y2hSZWNlaXZlZDoge1xuXHRcdFx0XHRlbGVtZW50OiB7IHR5cGU6IFwic2FwLnVpLmJhc2UuTWFuYWdlZE9iamVjdFwiIH1cblx0XHRcdH0sXG5cdFx0XHR3b3JrZXJzQmF0Y2hSZWNlaXZlZDoge1xuXHRcdFx0XHRlbGVtZW50OiB7IHR5cGU6IFwic2FwLnVpLmJhc2UuTWFuYWdlZE9iamVjdFwiIH1cblx0XHRcdH1cblx0XHR9LFxuXHRcdGxpYnJhcnk6IFwic2FwLmZlLmNvcmVcIlxuXHR9LFxuXG5cdHNldENvbnRhaW5lcjogZnVuY3Rpb24ob0NvbnRhaW5lcjogQ29tcG9uZW50Q29udGFpbmVyKTogVUlDb21wb25lbnQge1xuXHRcdGNvbnN0IHNldENvbnRhaW5lck91dHB1dCA9IFVJQ29tcG9uZW50LnByb3RvdHlwZS5zZXRDb250YWluZXIuYXBwbHkodGhpcywgW29Db250YWluZXJdKTtcblx0XHQodGhpcyBhcyBhbnkpLmZpcmVDb250YWluZXJEZWZpbmVkKHsgY29udGFpbmVyOiBvQ29udGFpbmVyIH0pO1xuXHRcdHJldHVybiBzZXRDb250YWluZXJPdXRwdXQ7XG5cdH0sXG5cblx0aW5pdDogZnVuY3Rpb24odGhpczogVGVtcGxhdGVDb21wb25lbnRUeXBlKSB7XG5cdFx0dGhpcy5vQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMpO1xuXHRcdFVJQ29tcG9uZW50LnByb3RvdHlwZS5pbml0LmFwcGx5KHRoaXMpO1xuXHRcdGNvbnN0IG9TdGF0ZUNoYW5nZWRIYW5kbGVyID0gZnVuY3Rpb24ob0V2ZW50OiBhbnkpIHtcblx0XHRcdGNvbnN0IG9Db250cm9sID0gb0V2ZW50LmdldFBhcmFtZXRlcihcImNvbnRyb2xcIik7XG5cdFx0XHRpZiAob0NvbnRyb2wuaXNBKFwic2FwLnVpLm1kYy5UYWJsZVwiKSB8fCBvQ29udHJvbC5pc0EoXCJzYXAudWkubWRjLkZpbHRlckJhclwiKSkge1xuXHRcdFx0XHRjb25zdCBvTWFjcm9BUEkgPSBvQ29udHJvbC5nZXRQYXJlbnQoKTtcblx0XHRcdFx0b01hY3JvQVBJLmZpcmVTdGF0ZUNoYW5nZWQoKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdFN0YXRlVXRpbC5kZXRhY2hTdGF0ZUNoYW5nZShvU3RhdGVDaGFuZ2VkSGFuZGxlcik7XG5cdFx0U3RhdGVVdGlsLmF0dGFjaFN0YXRlQ2hhbmdlKG9TdGF0ZUNoYW5nZWRIYW5kbGVyKTtcblx0fSxcblxuXHQvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgVUk1IGNvcmUgdG8gYWNjZXNzIHRvIHRoZSBjb21wb25lbnQgY29udGFpbmluZyB0aGUgY3VzdG9taXppbmcgY29uZmlndXJhdGlvbi5cblx0Ly8gYXMgY29udHJvbGxlciBleHRlbnNpb25zIGFyZSBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdCBmb3IgdGhlIGFwcCBjb21wb25lbnQgYW5kIG5vdCBmb3IgdGhlXG5cdC8vIHRlbXBsYXRlIGNvbXBvbmVudCB3ZSByZXR1cm4gdGhlIGFwcCBjb21wb25lbnQuXG5cdGdldEV4dGVuc2lvbkNvbXBvbmVudDogZnVuY3Rpb24odGhpczogVGVtcGxhdGVDb21wb25lbnRUeXBlKTogQXBwQ29tcG9uZW50IHtcblx0XHRyZXR1cm4gdGhpcy5vQXBwQ29tcG9uZW50O1xuXHR9LFxuXG5cdGdldFJvb3RDb250cm9sbGVyKCk6IGFueSB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgcm9vdENvbnRyb2w6IFZpZXcgPSB0aGlzLmdldFJvb3RDb250cm9sKCkgYXMgVmlldztcblx0XHRsZXQgcm9vdENvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyIHwgdW5kZWZpbmVkO1xuXHRcdGlmIChyb290Q29udHJvbCAmJiByb290Q29udHJvbC5nZXRDb250cm9sbGVyKSB7XG5cdFx0XHRyb290Q29udHJvbGxlciA9IHJvb3RDb250cm9sLmdldENvbnRyb2xsZXIoKSBhcyBQYWdlQ29udHJvbGxlcjtcblx0XHR9XG5cdFx0cmV0dXJuIHJvb3RDb250cm9sbGVyO1xuXHR9LFxuXG5cdG9uUGFnZVJlYWR5OiBmdW5jdGlvbihtUGFyYW1ldGVyczogYW55KSB7XG5cdFx0Y29uc3Qgcm9vdENvbnRyb2xsZXIgPSB0aGlzLmdldFJvb3RDb250cm9sbGVyKCk7XG5cdFx0aWYgKHJvb3RDb250cm9sbGVyICYmIHJvb3RDb250cm9sbGVyLm9uUGFnZVJlYWR5KSB7XG5cdFx0XHRyb290Q29udHJvbGxlci5vblBhZ2VSZWFkeShtUGFyYW1ldGVycyk7XG5cdFx0fVxuXHR9LFxuXG5cdGdldE5hdmlnYXRpb25Db25maWd1cmF0aW9uOiBmdW5jdGlvbih0aGlzOiBUZW1wbGF0ZUNvbXBvbmVudFR5cGUsIHNUYXJnZXRQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGNvbnN0IG1OYXZpZ2F0aW9uID0gdGhpcy5nZXROYXZpZ2F0aW9uKCk7XG5cdFx0cmV0dXJuIG1OYXZpZ2F0aW9uW3NUYXJnZXRQYXRoXTtcblx0fSxcblxuXHRnZXRWaWV3RGF0YTogZnVuY3Rpb24odGhpczogVGVtcGxhdGVDb21wb25lbnRUeXBlKSB7XG5cdFx0Y29uc3QgbVByb3BlcnRpZXMgPSB0aGlzLmdldE1ldGFkYXRhKCkuZ2V0QWxsUHJvcGVydGllcygpO1xuXHRcdGNvbnN0IG9WaWV3RGF0YSA9IE9iamVjdC5rZXlzKG1Qcm9wZXJ0aWVzKS5yZWR1Y2UoKG1WaWV3RGF0YTogYW55LCBzUHJvcGVydHlOYW1lOiBhbnkpID0+IHtcblx0XHRcdG1WaWV3RGF0YVtzUHJvcGVydHlOYW1lXSA9IChtUHJvcGVydGllc1tzUHJvcGVydHlOYW1lXSBhcyBhbnkpLmdldCh0aGlzKTtcblx0XHRcdHJldHVybiBtVmlld0RhdGE7XG5cdFx0fSwge30pO1xuXG5cdFx0Ly8gQWNjZXNzIHRoZSBpbnRlcm5hbCBfaXNGY2xFbmFibGVkIHdoaWNoIHdpbGwgYmUgdGhlcmVcblx0XHRvVmlld0RhdGEuZmNsRW5hYmxlZCA9IHRoaXMub0FwcENvbXBvbmVudC5faXNGY2xFbmFibGVkKCk7XG5cblx0XHRyZXR1cm4gb1ZpZXdEYXRhO1xuXHR9LFxuXG5cdF9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc3Qgcm9vdENvbnRyb2wgPSB0aGlzLmdldFJvb3RDb250cm9sKCkgYXMgVmlldztcblx0XHRpZiAocm9vdENvbnRyb2wgJiYgcm9vdENvbnRyb2wuZ2V0Q29udHJvbGxlcigpICYmIChyb290Q29udHJvbC5nZXRDb250cm9sbGVyKCkgYXMgYW55KS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24pIHtcblx0XHRcdHJldHVybiAocm9vdENvbnRyb2wuZ2V0Q29udHJvbGxlcigpIGFzIGFueSkuX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB7fTtcblx0XHR9XG5cdH0sXG5cblx0Z2V0RXh0ZW5zaW9uQVBJOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gKCh0aGlzLmdldFJvb3RDb250cm9sKCkgYXMgVmlldykuZ2V0Q29udHJvbGxlcigpIGFzIGFueSkuZ2V0RXh0ZW5zaW9uQVBJKCk7XG5cdH1cbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBUZW1wbGF0ZUNvbXBvbmVudDtcbiJdfQ==
@@ -0,0 +1,166 @@
1
+ import UIComponent from "sap/ui/core/UIComponent";
2
+ import CommonUtils from "sap/fe/core/CommonUtils";
3
+ import StateUtil from "sap/ui/mdc/p13n/StateUtil";
4
+ import ComponentContainer from "sap/ui/core/ComponentContainer";
5
+ import { AppComponent } from "sap/fe/core";
6
+ import View from "sap/ui/core/mvc/View";
7
+ import PageController from "sap/fe/core/PageController";
8
+
9
+ type TemplateComponentType = UIComponent & {
10
+ oAppComponent: AppComponent;
11
+ getNavigation(): any;
12
+ };
13
+ const TemplateComponent = UIComponent.extend("sap.fe.core.TemplateComponent", {
14
+ metadata: {
15
+ interfaces: ["sap.ui.core.IAsyncContentCreation"],
16
+ properties: {
17
+ /**
18
+ * Name of the OData entity set
19
+ */
20
+ entitySet: {
21
+ type: "string",
22
+ defaultValue: null
23
+ },
24
+ /**
25
+ * Context Path for rendering the template
26
+ */
27
+ contextPath: {
28
+ type: "string",
29
+ defaultValue: null
30
+ },
31
+ /**
32
+ * The pattern for the binding context to be create based on the parameters from the navigation
33
+ * If not provided we'll default to what was passed in the URL
34
+ */
35
+ bindingContextPattern: {
36
+ type: "string"
37
+ },
38
+
39
+ /**
40
+ * Map of used OData navigations and its routing targets
41
+ */
42
+ navigation: {
43
+ type: "object"
44
+ },
45
+ /**
46
+ * Enhance the i18n bundle used for this page with one or more app specific i18n resource bundles or resource models
47
+ * or a combination of both. The last resource bundle/model is given highest priority
48
+ */
49
+ enhanceI18n: {
50
+ type: "string[]"
51
+ },
52
+ /**
53
+ * Define control related configuration settings
54
+ */
55
+ controlConfiguration: {
56
+ type: "object"
57
+ },
58
+ /**
59
+ * Adjusts the template content
60
+ */
61
+ content: {
62
+ type: "object"
63
+ },
64
+ /**
65
+ * Whether or not you can reach this page directly through semantic bookmarks
66
+ */
67
+ allowDeepLinking: {
68
+ type: "boolean"
69
+ },
70
+ /**
71
+ * Defines the context path on the component that is refreshed when the app is restored using keep alive mode
72
+ */
73
+ refreshStrategyOnAppRestore: {
74
+ type: "object"
75
+ }
76
+ },
77
+ events: {
78
+ containerDefined: {
79
+ container: { type: "sap.ui.base.ManagedObject" }
80
+ },
81
+ heroesBatchReceived: {
82
+ element: { type: "sap.ui.base.ManagedObject" }
83
+ },
84
+ workersBatchReceived: {
85
+ element: { type: "sap.ui.base.ManagedObject" }
86
+ }
87
+ },
88
+ library: "sap.fe.core"
89
+ },
90
+
91
+ setContainer: function(oContainer: ComponentContainer): UIComponent {
92
+ const setContainerOutput = UIComponent.prototype.setContainer.apply(this, [oContainer]);
93
+ (this as any).fireContainerDefined({ container: oContainer });
94
+ return setContainerOutput;
95
+ },
96
+
97
+ init: function(this: TemplateComponentType) {
98
+ this.oAppComponent = CommonUtils.getAppComponent(this);
99
+ UIComponent.prototype.init.apply(this);
100
+ const oStateChangedHandler = function(oEvent: any) {
101
+ const oControl = oEvent.getParameter("control");
102
+ if (oControl.isA("sap.ui.mdc.Table") || oControl.isA("sap.ui.mdc.FilterBar")) {
103
+ const oMacroAPI = oControl.getParent();
104
+ oMacroAPI.fireStateChanged();
105
+ }
106
+ };
107
+ StateUtil.detachStateChange(oStateChangedHandler);
108
+ StateUtil.attachStateChange(oStateChangedHandler);
109
+ },
110
+
111
+ // This method is called by UI5 core to access to the component containing the customizing configuration.
112
+ // as controller extensions are defined in the manifest for the app component and not for the
113
+ // template component we return the app component.
114
+ getExtensionComponent: function(this: TemplateComponentType): AppComponent {
115
+ return this.oAppComponent;
116
+ },
117
+
118
+ getRootController(): any | undefined {
119
+ const rootControl: View = this.getRootControl() as View;
120
+ let rootController: PageController | undefined;
121
+ if (rootControl && rootControl.getController) {
122
+ rootController = rootControl.getController() as PageController;
123
+ }
124
+ return rootController;
125
+ },
126
+
127
+ onPageReady: function(mParameters: any) {
128
+ const rootController = this.getRootController();
129
+ if (rootController && rootController.onPageReady) {
130
+ rootController.onPageReady(mParameters);
131
+ }
132
+ },
133
+
134
+ getNavigationConfiguration: function(this: TemplateComponentType, sTargetPath: string): string {
135
+ const mNavigation = this.getNavigation();
136
+ return mNavigation[sTargetPath];
137
+ },
138
+
139
+ getViewData: function(this: TemplateComponentType) {
140
+ const mProperties = this.getMetadata().getAllProperties();
141
+ const oViewData = Object.keys(mProperties).reduce((mViewData: any, sPropertyName: any) => {
142
+ mViewData[sPropertyName] = (mProperties[sPropertyName] as any).get(this);
143
+ return mViewData;
144
+ }, {});
145
+
146
+ // Access the internal _isFclEnabled which will be there
147
+ oViewData.fclEnabled = this.oAppComponent._isFclEnabled();
148
+
149
+ return oViewData;
150
+ },
151
+
152
+ _getPageTitleInformation: function() {
153
+ const rootControl = this.getRootControl() as View;
154
+ if (rootControl && rootControl.getController() && (rootControl.getController() as any)._getPageTitleInformation) {
155
+ return (rootControl.getController() as any)._getPageTitleInformation();
156
+ } else {
157
+ return {};
158
+ }
159
+ },
160
+
161
+ getExtensionAPI: function() {
162
+ return ((this.getRootControl() as View).getController() as any).getExtensionAPI();
163
+ }
164
+ });
165
+
166
+ export default TemplateComponent;