@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
@@ -0,0 +1,250 @@
1
+ import BaseObject from "sap/ui/base/Object";
2
+ import CommonUtils from "sap/fe/core/CommonUtils";
3
+ import Log from "sap/base/Log";
4
+ import Element from "sap/ui/core/Element";
5
+ import Component from "sap/ui/core/Component";
6
+ import JSONModel from "sap/ui/model/json/JSONModel";
7
+ import Metadata from "sap/ui/base/Metadata";
8
+ import { Property, UI5Class } from "./helpers/ClassSupport";
9
+ import EditFlow from "sap/fe/core/controllerextensions/EditFlow";
10
+ import Routing from "sap/fe/core/controllerextensions/Routing";
11
+ import View from "sap/ui/core/mvc/View";
12
+ import PageController from "sap/fe/core/PageController";
13
+ import InternalRouting from "sap/fe/core/controllerextensions/InternalRouting";
14
+ import Control from "sap/ui/core/Control";
15
+ import Context from "sap/ui/model/Context";
16
+ import Model from "sap/ui/model/Model";
17
+ import TemplateComponent from "sap/fe/core/TemplateComponent";
18
+ import IntentBasedNavigation from "sap/fe/core/controllerextensions/IntentBasedNavigation";
19
+
20
+ /**
21
+ * Common Extension API for all pages of SAP Fiori elements for OData V4.
22
+ * @alias sap.fe.core.ExtensionAPI
23
+ * @public
24
+ * @hideconstructor
25
+ * @extends sap.ui.base.Object
26
+ * @since 1.79.0
27
+ */
28
+ @UI5Class("sap.fe.core.ExtensionAPI", Metadata)
29
+ class ExtensionAPI extends BaseObject {
30
+ /**
31
+ * A controller extension offering hooks into the edit flow of the application.
32
+ * @public
33
+ */
34
+ @Property({ type: "sap/fe/core/controllerextensions/EditFlow" })
35
+ editFlow: EditFlow;
36
+ /**
37
+ * A controller extension offering hooks into the routing flow of the application.
38
+ * @public
39
+ */
40
+ @Property({ type: "sap/fe/core/controllerextensions/Routing" })
41
+ routing: Routing;
42
+ /**
43
+ * ExtensionAPI for intent-based navigation
44
+ * @public
45
+ */
46
+ @Property({ type: "sap/fe/core/controllerextensions/IntentBasedNavigation" })
47
+ intentBasedNavigation: IntentBasedNavigation;
48
+
49
+ private _controller: PageController;
50
+ private _view: View;
51
+ private _routing: InternalRouting;
52
+ private _prefix?: string;
53
+ private extension: any;
54
+
55
+ constructor(oController: PageController, sId?: string) {
56
+ super();
57
+ this._controller = oController;
58
+ this._view = oController.getView();
59
+ this.extension = (this._controller as any).extension;
60
+ this.editFlow = this._controller.editFlow;
61
+ this.routing = this._controller.routing;
62
+ this._routing = this._controller._routing;
63
+ this.intentBasedNavigation = this._controller.intentBasedNavigation;
64
+ this._prefix = sId;
65
+ }
66
+ destroy() {
67
+ // delete this._controller;
68
+ // delete this._view;
69
+ // delete this.editFlow._controller;
70
+ // delete this.intentBasedNavigation._controller;
71
+ }
72
+
73
+ /**
74
+ * Access any control by ID.
75
+ *
76
+ * @alias sap.fe.core.ExtensionAPI#byId
77
+ * @param {string} sId ID of the control without the view prefix. Either the ID prefixed by SAP Fiori elements
78
+ * (for example with the section) or the control ID only. The latter works only for an extension running in
79
+ * the same context (like in the same section). You can use the prefix for SAP Fiori elements to also access other controls located in different sections.
80
+ * @returns {sap.ui.core.Control} The requested control, if found in the view.
81
+ *
82
+ * @private
83
+ */
84
+ byId(sId: string) {
85
+ let oControl = this._view.byId(sId);
86
+
87
+ if (!oControl && this._prefix) {
88
+ // give it a try with the prefix
89
+ oControl = this._view.byId(this._prefix + "--" + sId);
90
+ }
91
+
92
+ if (oControl) {
93
+ return oControl;
94
+ }
95
+ }
96
+
97
+ /**
98
+ * Get access to models managed by SAP Fiori elements.<br>
99
+ * The following models can be accessed:
100
+ * <ul>
101
+ * <li>undefined: the undefined model returns the SAPUI5 OData V4 model bound to this page</li>
102
+ * <li>i18n / further data models defined in the manifest</li>
103
+ * <li>ui: returns a SAPUI5 JSON model containing UI information.
104
+ * Only the following properties are public and supported:
105
+ * <ul>
106
+ * <li>editMode: contains either 'Editable' or 'Display'</li>
107
+ * </ul>
108
+ * </li>
109
+ * </ul>.
110
+ *
111
+ * @alias sap.fe.core.ExtensionAPI#getModel
112
+ * @param {string} sModelName Name of the model
113
+ * @returns {sap.ui.model.Model} The required model
114
+ *
115
+ * @public
116
+ */
117
+ getModel(sModelName?: string): Model | undefined {
118
+ let oAppComponent;
119
+
120
+ if (sModelName && sModelName !== "ui") {
121
+ oAppComponent = CommonUtils.getAppComponent(this._view);
122
+ if (!oAppComponent.getManifestEntry("sap.ui5").models[sModelName]) {
123
+ // don't allow access to our internal models
124
+ return undefined;
125
+ }
126
+ }
127
+
128
+ return this._view.getModel(sModelName);
129
+ }
130
+
131
+ /**
132
+ * Add any control as a dependent control to this SAP Fiori elements page.
133
+ *
134
+ * @alias sap.fe.core.ExtensionAPI#addDependent
135
+ * @param {sap.ui.core.Control} oControl Control to be added as a dependent control
136
+ *
137
+ * @public
138
+ */
139
+ addDependent(oControl: Control) {
140
+ this._view.addDependent(oControl);
141
+ }
142
+
143
+ /**
144
+ * Remove a dependent control from this SAP Fiori elements page.
145
+ *
146
+ * @alias sap.fe.core.ExtensionAPI#removeDependent
147
+ * @param {sap.ui.core.Control} oControl Control to be added as a dependent control
148
+ *
149
+ * @public
150
+ */
151
+ removeDependent(oControl: Control) {
152
+ this._view.removeDependent(oControl);
153
+ }
154
+
155
+ /**
156
+ * Navigate to another target.
157
+ *
158
+ * @alias sap.fe.core.ExtensionAPI#navigateToTarget
159
+ * @param {string} sTarget Name of the target route
160
+ * @param {sap.ui.model.Context} [oContext] Context instance
161
+ * @returns {void}
162
+ * @public
163
+ */
164
+ navigateToTarget(sTarget: string, oContext: Context): void {
165
+ return this._controller._routing.navigateToTarget(oContext, sTarget);
166
+ }
167
+
168
+ /**
169
+ * Load a fragment and go through the template preprocessor with the current page context.
170
+ *
171
+ * @alias sap.fe.core.ExtensionAPI#loadFragment
172
+ * @param {object} mSettings The settings object
173
+ * @param {string} mSettings.id The ID of the fragment itself
174
+ * @param {string} mSettings.name The name of the fragment to be loaded
175
+ * @param {object} mSettings.controller The controller to be attached to the fragment
176
+ * @param {string} mSettings.contextPath The contextPath to be used for the templating process
177
+ * @param {sap.ui.model.Context} mSettings.initialBindingContext The initial binding context
178
+ * @returns {Promise<Element[]|sap.ui.core.Element[]>} The fragment definition
179
+ *
180
+ * @public
181
+ */
182
+ loadFragment(mSettings: {
183
+ id: string;
184
+ name: string;
185
+ controller: object;
186
+ contextPath: string;
187
+ initialBindingContext: Context;
188
+ }): Promise<Element | Element[]> {
189
+ const oTemplateComponent = Component.getOwnerComponentFor(this._view) as typeof TemplateComponent;
190
+ const oPageModel = this._view.getModel("_pageModel");
191
+ const oMetaModel = this.getModel()?.getMetaModel();
192
+ const mViewData = oTemplateComponent.getViewData();
193
+ const oViewDataModel = new JSONModel(mViewData),
194
+ oPreprocessorSettings = {
195
+ bindingContexts: {
196
+ "contextPath": oMetaModel?.createBindingContext(mSettings.contextPath || "/" + oTemplateComponent.getEntitySet()),
197
+ converterContext: oPageModel.createBindingContext("/", undefined, { noResolve: true }),
198
+ viewData: mViewData ? oViewDataModel.createBindingContext("/") : null
199
+ },
200
+ models: {
201
+ "contextPath": oMetaModel,
202
+ converterContext: oPageModel,
203
+ metaModel: oMetaModel,
204
+ viewData: oViewDataModel
205
+ },
206
+ appComponent: CommonUtils.getAppComponent(this._view)
207
+ };
208
+ const oTemplatePromise = CommonUtils.templateControlFragment(mSettings.name, oPreprocessorSettings, {
209
+ controller: mSettings.controller || this,
210
+ isXML: false,
211
+ id: mSettings.id
212
+ });
213
+ oTemplatePromise
214
+ .then((oFragment: any) => {
215
+ if (mSettings.initialBindingContext !== undefined) {
216
+ oFragment.setBindingContext(mSettings.initialBindingContext);
217
+ }
218
+ this.addDependent(oFragment);
219
+ })
220
+ .catch(function(oError: any) {
221
+ Log.error(oError);
222
+ });
223
+ return oTemplatePromise;
224
+ }
225
+
226
+ /**
227
+ * Triggers an update of the app state.
228
+ * Should be called if the state of a control, or any other state-relevant information, was changed.
229
+ *
230
+ * @alias sap.fe.core.ExtensionAPI#updateAppState
231
+ * @returns {Promise} A promise that resolves with the new app state object.
232
+ *
233
+ * @public
234
+ */
235
+ updateAppState(): Promise<void> | undefined {
236
+ if (
237
+ !this._controller
238
+ .getAppComponent()
239
+ .getModel("internal")
240
+ .getProperty("/uiAdaptation")
241
+ ) {
242
+ return this._controller
243
+ .getAppComponent()
244
+ .getAppStateHandler()
245
+ .createAppState();
246
+ }
247
+ }
248
+ }
249
+
250
+ export default ExtensionAPI;
@@ -2,34 +2,85 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/BaseController", "sap/fe/core/ExtensionAPI", "sap/fe/core/controllerextensions/InternalEditFlow", "sap/fe/core/controllerextensions/InternalIntentBasedNavigation", "sap/fe/core/controllerextensions/InternalRouting", "sap/fe/core/controllerextensions/MassEdit", "sap/fe/core/controllerextensions/Placeholder", "sap/fe/core/controllerextensions/Routing", "sap/fe/core/controllerextensions/EditFlow", "sap/fe/core/controllerextensions/PageReady", "sap/fe/core/controllerextensions/MessageHandler", "sap/fe/core/controllerextensions/IntentBasedNavigation", "sap/fe/core/controllerextensions/Share", "sap/fe/core/controllerextensions/ViewState", "sap/fe/core/controllerextensions/Paginator", "sap/fe/core/controllerextensions/SideEffects"], function (Controller, ExtensionAPI, InternalEditFlow, InternalIntentBasedNavigation, InternalRouting, MassEdit, Placeholder, Routing, EditFlow, PageReady, MessageHandler, IntentBasedNavigation, Share, ViewState, Paginator, SideEffects) {
5
+ sap.ui.define(["sap/fe/core/BaseController", "sap/fe/core/ExtensionAPI", "sap/fe/core/controllerextensions/Routing", "sap/fe/core/controllerextensions/EditFlow", "sap/fe/core/controllerextensions/PageReady", "sap/fe/core/controllerextensions/MessageHandler", "sap/fe/core/controllerextensions/IntentBasedNavigation", "sap/fe/core/controllerextensions/Share", "sap/fe/core/controllerextensions/ViewState", "sap/fe/core/controllerextensions/Paginator", "sap/fe/core/controllerextensions/SideEffects", "sap/fe/core/controllerextensions/InternalRouting", "sap/fe/core/controllerextensions/InternalEditFlow", "sap/fe/core/controllerextensions/InternalIntentBasedNavigation", "sap/fe/core/controllerextensions/Placeholder", "sap/fe/core/controllerextensions/MassEdit", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/mvc/ControllerMetadata"], function (BaseController, ExtensionAPI, Routing, EditFlow, PageReady, MessageHandler, IntentBasedNavigation, Share, ViewState, Paginator, SideEffects, InternalRouting, InternalEditFlow, InternalIntentBasedNavigation, Placeholder, MassEdit, ClassSupport, ControllerMetadata) {
6
6
  "use strict";
7
7
 
8
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14;
9
+
10
+ var UsingExtension = ClassSupport.UsingExtension;
11
+ var UI5Class = ClassSupport.UI5Class;
12
+ var Public = ClassSupport.Public;
13
+
14
+ function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
15
+
16
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
17
+
18
+ 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); }
19
+
20
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
21
+
22
+ 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; }
23
+
24
+ function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
25
+
8
26
  /**
9
- * @class Base controller class for your custom page used inside an SAP Fiori elements application.
27
+ * Base controller class for your custom page used inside an SAP Fiori elements application.
10
28
  *
11
29
  * This controller provides preconfigured extensions that will ensure you have the basic functionalities required to use the building blocks.
12
30
  *
13
31
  * @hideconstructor
14
32
  * @public
15
- * @name sap.fe.core.PageController
16
33
  * @since 1.88.0
17
34
  */
18
- return Controller.extend("sap.fe.core.PageController", {
19
- routing: Routing,
20
- _routing: InternalRouting,
21
- editFlow: EditFlow,
22
- _editFlow: InternalEditFlow,
23
- intentBasedNavigation: IntentBasedNavigation,
24
- _intentBasedNavigation: InternalIntentBasedNavigation,
25
- pageReady: PageReady,
26
- messageHandler: MessageHandler,
27
- share: Share,
28
- paginator: Paginator,
29
- viewState: ViewState,
30
- placeholder: Placeholder,
31
- _sideEffects: SideEffects,
32
- massEdit: MassEdit,
35
+ var PageController = (_dec = UI5Class("sap.fe.core.PageController", ControllerMetadata, {}), _dec2 = UsingExtension(Routing), _dec3 = UsingExtension(InternalRouting), _dec4 = UsingExtension(EditFlow), _dec5 = UsingExtension(InternalEditFlow), _dec6 = UsingExtension(IntentBasedNavigation), _dec7 = UsingExtension(InternalIntentBasedNavigation), _dec8 = UsingExtension(PageReady), _dec9 = UsingExtension(MessageHandler), _dec10 = UsingExtension(Share), _dec11 = UsingExtension(Paginator), _dec12 = UsingExtension(ViewState), _dec13 = UsingExtension(Placeholder), _dec14 = UsingExtension(SideEffects), _dec15 = UsingExtension(MassEdit), _dec(_class = (_class2 = /*#__PURE__*/function (_BaseController) {
36
+ _inherits(PageController, _BaseController);
37
+
38
+ function PageController() {
39
+ var _this;
40
+
41
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
42
+ args[_key] = arguments[_key];
43
+ }
44
+
45
+ _this = _BaseController.call.apply(_BaseController, [this].concat(args)) || this;
46
+
47
+ _initializerDefineProperty(_this, "routing", _descriptor, _assertThisInitialized(_this));
48
+
49
+ _initializerDefineProperty(_this, "_routing", _descriptor2, _assertThisInitialized(_this));
50
+
51
+ _initializerDefineProperty(_this, "editFlow", _descriptor3, _assertThisInitialized(_this));
52
+
53
+ _initializerDefineProperty(_this, "_editFlow", _descriptor4, _assertThisInitialized(_this));
54
+
55
+ _initializerDefineProperty(_this, "intentBasedNavigation", _descriptor5, _assertThisInitialized(_this));
56
+
57
+ _initializerDefineProperty(_this, "_intentBasedNavigation", _descriptor6, _assertThisInitialized(_this));
58
+
59
+ _initializerDefineProperty(_this, "pageReady", _descriptor7, _assertThisInitialized(_this));
60
+
61
+ _initializerDefineProperty(_this, "messageHandler", _descriptor8, _assertThisInitialized(_this));
62
+
63
+ _initializerDefineProperty(_this, "share", _descriptor9, _assertThisInitialized(_this));
64
+
65
+ _initializerDefineProperty(_this, "paginator", _descriptor10, _assertThisInitialized(_this));
66
+
67
+ _initializerDefineProperty(_this, "viewState", _descriptor11, _assertThisInitialized(_this));
68
+
69
+ _initializerDefineProperty(_this, "placeholder", _descriptor12, _assertThisInitialized(_this));
70
+
71
+ _initializerDefineProperty(_this, "_sideEffects", _descriptor13, _assertThisInitialized(_this));
72
+
73
+ _initializerDefineProperty(_this, "massEdit", _descriptor14, _assertThisInitialized(_this));
74
+
75
+ return _this;
76
+ }
77
+
78
+ var _proto = PageController.prototype;
79
+
80
+ // @Public
81
+ // getView(): { getController(): PageController } & View {
82
+ // return super.getView() as any;
83
+ // }
33
84
 
34
85
  /**
35
86
  * @private
@@ -42,7 +93,7 @@ sap.ui.define(["sap/fe/core/BaseController", "sap/fe/core/ExtensionAPI", "sap/fe
42
93
  * @name sap.fe.core.PageController.extend
43
94
  * @function
44
95
  */
45
- onInit: function () {
96
+ _proto.onInit = function onInit() {
46
97
  var oUIModel = this.getAppComponent().getModel("ui"),
47
98
  oInternalModel = this.getAppComponent().getModel("internal"),
48
99
  sPath = "/pages/" + this.getView().getId();
@@ -50,7 +101,8 @@ sap.ui.define(["sap/fe/core/BaseController", "sap/fe/core/ExtensionAPI", "sap/fe
50
101
  controls: {}
51
102
  });
52
103
  oInternalModel.setProperty(sPath, {
53
- controls: {}
104
+ controls: {},
105
+ collaboration: {}
54
106
  });
55
107
  this.getView().bindElement({
56
108
  path: sPath,
@@ -70,23 +122,99 @@ sap.ui.define(["sap/fe/core/BaseController", "sap/fe/core/ExtensionAPI", "sap/fe
70
122
 
71
123
  this.getView().setModel(oUIModel, "ui");
72
124
  this.getView().setModel(oInternalModel, "internal");
73
- },
74
- onBeforeRendering: function () {
125
+ };
126
+
127
+ _proto.onBeforeRendering = function onBeforeRendering() {
75
128
  if (this.placeholder.attachHideCallback) {
76
129
  this.placeholder.attachHideCallback();
77
130
  }
78
- },
79
- getExtensionAPI: function () {
131
+ };
132
+
133
+ _proto.getExtensionAPI = function getExtensionAPI() {
80
134
  if (!this.extensionAPI) {
81
135
  this.extensionAPI = new ExtensionAPI(this);
82
136
  }
83
137
 
84
138
  return this.extensionAPI;
85
- },
86
- onPageReady: function () {
139
+ };
140
+
141
+ _proto.onPageReady = function onPageReady() {
87
142
  // Apply app state only after the page is ready with the first section selected
88
143
  this.getAppComponent().getAppStateHandler().applyAppState();
89
- }
90
- });
144
+ };
145
+
146
+ return PageController;
147
+ }(BaseController), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "routing", [_dec2], {
148
+ configurable: true,
149
+ enumerable: true,
150
+ writable: true,
151
+ initializer: null
152
+ }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "_routing", [_dec3], {
153
+ configurable: true,
154
+ enumerable: true,
155
+ writable: true,
156
+ initializer: null
157
+ }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "editFlow", [_dec4], {
158
+ configurable: true,
159
+ enumerable: true,
160
+ writable: true,
161
+ initializer: null
162
+ }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "_editFlow", [_dec5], {
163
+ configurable: true,
164
+ enumerable: true,
165
+ writable: true,
166
+ initializer: null
167
+ }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "intentBasedNavigation", [_dec6], {
168
+ configurable: true,
169
+ enumerable: true,
170
+ writable: true,
171
+ initializer: null
172
+ }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "_intentBasedNavigation", [_dec7], {
173
+ configurable: true,
174
+ enumerable: true,
175
+ writable: true,
176
+ initializer: null
177
+ }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "pageReady", [_dec8], {
178
+ configurable: true,
179
+ enumerable: true,
180
+ writable: true,
181
+ initializer: null
182
+ }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "messageHandler", [_dec9], {
183
+ configurable: true,
184
+ enumerable: true,
185
+ writable: true,
186
+ initializer: null
187
+ }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "share", [_dec10], {
188
+ configurable: true,
189
+ enumerable: true,
190
+ writable: true,
191
+ initializer: null
192
+ }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "paginator", [_dec11], {
193
+ configurable: true,
194
+ enumerable: true,
195
+ writable: true,
196
+ initializer: null
197
+ }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "viewState", [_dec12], {
198
+ configurable: true,
199
+ enumerable: true,
200
+ writable: true,
201
+ initializer: null
202
+ }), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "placeholder", [_dec13], {
203
+ configurable: true,
204
+ enumerable: true,
205
+ writable: true,
206
+ initializer: null
207
+ }), _descriptor13 = _applyDecoratedDescriptor(_class2.prototype, "_sideEffects", [_dec14], {
208
+ configurable: true,
209
+ enumerable: true,
210
+ writable: true,
211
+ initializer: null
212
+ }), _descriptor14 = _applyDecoratedDescriptor(_class2.prototype, "massEdit", [_dec15], {
213
+ configurable: true,
214
+ enumerable: true,
215
+ writable: true,
216
+ initializer: null
217
+ }), _applyDecoratedDescriptor(_class2.prototype, "onInit", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "onInit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onBeforeRendering", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeRendering"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "getExtensionAPI", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "getExtensionAPI"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onPageReady", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "onPageReady"), _class2.prototype)), _class2)) || _class);
218
+ return PageController;
91
219
  }, false);
92
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlBhZ2VDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIkNvbnRyb2xsZXIiLCJleHRlbmQiLCJyb3V0aW5nIiwiUm91dGluZyIsIl9yb3V0aW5nIiwiSW50ZXJuYWxSb3V0aW5nIiwiZWRpdEZsb3ciLCJFZGl0RmxvdyIsIl9lZGl0RmxvdyIsIkludGVybmFsRWRpdEZsb3ciLCJpbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJfaW50ZW50QmFzZWROYXZpZ2F0aW9uIiwiSW50ZXJuYWxJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwYWdlUmVhZHkiLCJQYWdlUmVhZHkiLCJtZXNzYWdlSGFuZGxlciIsIk1lc3NhZ2VIYW5kbGVyIiwic2hhcmUiLCJTaGFyZSIsInBhZ2luYXRvciIsIlBhZ2luYXRvciIsInZpZXdTdGF0ZSIsIlZpZXdTdGF0ZSIsInBsYWNlaG9sZGVyIiwiUGxhY2Vob2xkZXIiLCJfc2lkZUVmZmVjdHMiLCJTaWRlRWZmZWN0cyIsIm1hc3NFZGl0IiwiTWFzc0VkaXQiLCJvbkluaXQiLCJvVUlNb2RlbCIsImdldEFwcENvbXBvbmVudCIsImdldE1vZGVsIiwib0ludGVybmFsTW9kZWwiLCJzUGF0aCIsImdldFZpZXciLCJnZXRJZCIsInNldFByb3BlcnR5IiwiY29udHJvbHMiLCJiaW5kRWxlbWVudCIsInBhdGgiLCJtb2RlbCIsInNldE1vZGVsIiwib25CZWZvcmVSZW5kZXJpbmciLCJhdHRhY2hIaWRlQ2FsbGJhY2siLCJnZXRFeHRlbnNpb25BUEkiLCJleHRlbnNpb25BUEkiLCJFeHRlbnNpb25BUEkiLCJvblBhZ2VSZWFkeSIsImdldEFwcFN0YXRlSGFuZGxlciIsImFwcGx5QXBwU3RhdGUiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtTQUNlQSxVQUFVLENBQUNDLE1BQVgsQ0FBa0IsNEJBQWxCLEVB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YXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgQXBwQ29tcG9uZW50LCBFeHRlbnNpb25BUEkgfSBmcm9tIFwic2FwL2ZlL2NvcmVcIjtcbmltcG9ydCB7IEludGVybmFsRWRpdEZsb3csIEludGVybmFsSW50ZW50QmFzZWROYXZpZ2F0aW9uLCBJbnRlcm5hbFJvdXRpbmcsIE1hc3NFZGl0LCBQbGFjZWhvbGRlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9uc1wiO1xuaW1wb3J0IFJvdXRpbmcgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1JvdXRpbmdcIjtcbmltcG9ydCBFZGl0RmxvdyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvRWRpdEZsb3dcIjtcbmltcG9ydCBQYWdlUmVhZHkgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1BhZ2VSZWFkeVwiO1xuaW1wb3J0IE1lc3NhZ2VIYW5kbGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9NZXNzYWdlSGFuZGxlclwiO1xuaW1wb3J0IEludGVudEJhc2VkTmF2aWdhdGlvbiBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvSW50ZW50QmFzZWROYXZpZ2F0aW9uXCI7XG5pbXBvcnQgU2hhcmUgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NoYXJlXCI7XG5pbXBvcnQgVmlld1N0YXRlIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9WaWV3U3RhdGVcIjtcbmltcG9ydCBQYWdpbmF0b3IgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1BhZ2luYXRvclwiO1xuaW1wb3J0IFNpZGVFZmZlY3RzIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9TaWRlRWZmZWN0c1wiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5cbi8qKlxuICogQGNsYXNzIEJhc2UgY29udHJvbGxlciBjbGFzcyBmb3IgeW91ciBjdXN0b20gcGFnZSB1c2VkIGluc2lkZSBhbiBTQVAgRmlvcmkgZWxlbWVudHMgYXBwbGljYXRpb24uXG4gKlxuICogVGhpcyBjb250cm9sbGVyIHByb3ZpZGVzIHByZWNvbmZpZ3VyZWQgZXh0ZW5zaW9ucyB0aGF0IHdpbGwgZW5zdXJlIHlvdSBoYXZlIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXRpZXMgcmVxdWlyZWQgdG8gdXNlIHRoZSBidWlsZGluZyBibG9ja3MuXG4gKlxuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQHB1YmxpY1xuICogQG5hbWUgc2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXJcbiAqIEBzaW5jZSAxLjg4LjBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgQ29udHJvbGxlci5leHRlbmQoXCJzYXAuZmUuY29yZS5QYWdlQ29udHJvbGxlclwiLCB7XG5cdHJvdXRpbmc6IFJvdXRpbmcsXG5cdF9yb3V0aW5nOiBJbnRlcm5hbFJvdXRpbmcsXG5cdGVkaXRGbG93OiBFZGl0Rmxvdyxcblx0X2VkaXRGbG93OiBJbnRlcm5hbEVkaXRGbG93LFxuXHRpbnRlbnRCYXNlZE5hdmlnYXRpb246IEludGVudEJhc2VkTmF2aWdhdGlvbixcblx0X2ludGVudEJhc2VkTmF2aWdhdGlvbjogSW50ZXJuYWxJbnRlbnRCYXNlZE5hdmlnYXRpb24sXG5cdHBhZ2VSZWFkeTogUGFnZVJlYWR5LFxuXHRtZXNzYWdlSGFuZGxlcjogTWVzc2FnZUhhbmRsZXIsXG5cdHNoYXJlOiBTaGFyZSxcblx0cGFnaW5hdG9yOiBQYWdpbmF0b3IsXG5cdHZpZXdTdGF0ZTogVmlld1N0YXRlLFxuXHRwbGFjZWhvbGRlcjogUGxhY2Vob2xkZXIsXG5cdF9zaWRlRWZmZWN0czogU2lkZUVmZmVjdHMsXG5cdG1hc3NFZGl0OiBNYXNzRWRpdCxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXIuZ2V0TWV0YWRhdGFcblx0ICogQGZ1bmN0aW9uXG5cdCAqL1xuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXIuZXh0ZW5kXG5cdCAqIEBmdW5jdGlvblxuXHQgKi9cblxuXHRvbkluaXQ6IGZ1bmN0aW9uKCkge1xuXHRcdGNvbnN0IG9VSU1vZGVsID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKS5nZXRNb2RlbChcInVpXCIpIGFzIEpTT05Nb2RlbCxcblx0XHRcdG9JbnRlcm5hbE1vZGVsID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKS5nZXRNb2RlbChcImludGVybmFsXCIpIGFzIEpTT05Nb2RlbCxcblx0XHRcdHNQYXRoID0gXCIvcGFnZXMvXCIgKyB0aGlzLmdldFZpZXcoKS5nZXRJZCgpO1xuXG5cdFx0b1VJTW9kZWwuc2V0UHJvcGVydHkoc1BhdGgsIHtcblx0XHRcdGNvbnRyb2xzOiB7fVxuXHRcdH0pO1xuXHRcdG9JbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KHNQYXRoLCB7XG5cdFx0XHRjb250cm9sczoge31cblx0XHR9KTtcblx0XHR0aGlzLmdldFZpZXcoKS5iaW5kRWxlbWVudCh7XG5cdFx0XHRwYXRoOiBzUGF0aCxcblx0XHRcdG1vZGVsOiBcInVpXCJcblx0XHR9KTtcblx0XHR0aGlzLmdldFZpZXcoKS5iaW5kRWxlbWVudCh7XG5cdFx0XHRwYXRoOiBzUGF0aCxcblx0XHRcdG1vZGVsOiBcImludGVybmFsXCJcblx0XHR9KTtcblxuXHRcdC8vIGZvciB0aGUgdGltZSBiZWluZyBwcm92aWRlIGl0IGFsc28gcGFnZUludGVybmFsIGFzIHNvbWUgbWFjcm9zIGFjY2VzcyBpdCAtIHRvIGJlIHJlbW92ZWRcblx0XHR0aGlzLmdldFZpZXcoKS5iaW5kRWxlbWVudCh7XG5cdFx0XHRwYXRoOiBzUGF0aCxcblx0XHRcdG1vZGVsOiBcInBhZ2VJbnRlcm5hbFwiXG5cdFx0fSk7XG5cdFx0dGhpcy5nZXRWaWV3KCkuc2V0TW9kZWwob0ludGVybmFsTW9kZWwsIFwicGFnZUludGVybmFsXCIpO1xuXG5cdFx0Ly8gYXMgdGhlIG1vZGVsIHByb3BhZ2F0aW9uIGhhcHBlbnMgYWZ0ZXIgaW5pdCBidXQgd2UgYWN0dWFsbHkgd2FudCB0byBhY2Nlc3MgdGhlIGJpbmRpbmcgY29udGV4dCBpbiB0aGVcblx0XHQvLyBpbml0IHBoYXNlIGFscmVhZHkgc2V0dGluZyB0aGUgbW9kZWwgaGVyZVxuXHRcdHRoaXMuZ2V0VmlldygpLnNldE1vZGVsKG9VSU1vZGVsLCBcInVpXCIpO1xuXHRcdHRoaXMuZ2V0VmlldygpLnNldE1vZGVsKG9JbnRlcm5hbE1vZGVsLCBcImludGVybmFsXCIpO1xuXHR9LFxuXG5cdG9uQmVmb3JlUmVuZGVyaW5nOiBmdW5jdGlvbigpIHtcblx0XHRpZiAodGhpcy5wbGFjZWhvbGRlci5hdHRhY2hIaWRlQ2FsbGJhY2spIHtcblx0XHRcdHRoaXMucGxhY2Vob2xkZXIuYXR0YWNoSGlkZUNhbGxiYWNrKCk7XG5cdFx0fVxuXHR9LFxuXHRnZXRFeHRlbnNpb25BUEk6IGZ1bmN0aW9uKHRoaXM6IGFueSk6IEV4dGVuc2lvbkFQSSB7XG5cdFx0aWYgKCF0aGlzLmV4dGVuc2lvbkFQSSkge1xuXHRcdFx0dGhpcy5leHRlbnNpb25BUEkgPSBuZXcgRXh0ZW5zaW9uQVBJKHRoaXMpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5leHRlbnNpb25BUEk7XG5cdH0sXG5cblx0b25QYWdlUmVhZHk6IGZ1bmN0aW9uKCkge1xuXHRcdC8vIEFwcGx5IGFwcCBzdGF0ZSBvbmx5IGFmdGVyIHRoZSBwYWdlIGlzIHJlYWR5IHdpdGggdGhlIGZpcnN0IHNlY3Rpb24gc2VsZWN0ZWRcblx0XHQodGhpcy5nZXRBcHBDb21wb25lbnQoKSBhcyBBcHBDb21wb25lbnQpLmdldEFwcFN0YXRlSGFuZGxlcigpLmFwcGx5QXBwU3RhdGUoKTtcblx0fVxufSk7XG4iXX0=
220
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlBhZ2VDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIlBhZ2VDb250cm9sbGVyIiwiVUk1Q2xhc3MiLCJDb250cm9sbGVyTWV0YWRhdGEiLCJVc2luZ0V4dGVuc2lvbiIsIlJvdXRpbmciLCJJbnRlcm5hbFJvdXRpbmciLCJFZGl0RmxvdyIsIkludGVybmFsRWRpdEZsb3ciLCJJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJJbnRlcm5hbEludGVudEJhc2VkTmF2aWdhdGlvbiIsIlBhZ2VSZWFkeSIsIk1lc3NhZ2VIYW5kbGVyIiwiU2hhcmUiLCJQYWdpbmF0b3IiLCJWaWV3U3RhdGUiLCJQbGFjZWhvbGRlciIsIlNpZGVFZmZlY3RzIiwiTWFzc0VkaXQiLCJvbkluaXQiLCJvVUlNb2RlbCIsImdldEFwcENvbXBvbmVudCIsImdldE1vZGVsIiwib0ludGVybmFsTW9kZWwiLCJzUGF0aCIsImdldFZpZXciLCJnZXRJZCIsInNldFByb3BlcnR5IiwiY29udHJvbHMiLCJjb2xsYWJvcmF0aW9uIiwiYmluZEVsZW1lbnQiLCJwYXRoIiwibW9kZWwiLCJzZXRNb2RlbCIsIm9uQmVmb3JlUmVuZGVyaW5nIiwicGxhY2Vob2xkZXIiLCJhdHRhY2hIaWRlQ2FsbGJhY2siLCJnZXRFeHRlbnNpb25BUEkiLCJleHRlbnNpb25BUEkiLCJFeHRlbnNpb25BUEkiLCJvblBhZ2VSZWFkeSIsImdldEFwcFN0YXRlSGFuZGxlciIsImFwcGx5QXBwU3RhdGUiLCJCYXNlQ29udHJvbGxlciIsIlB1YmxpYyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUEsYyxXQURMQyxRQUFRLENBQUMsNEJBQUQsRUFBK0JDLGtCQUEvQixFQUFtRCxFQUFuRCxDLFVBRVBDLGNBQWMsQ0FBQ0MsT0FBRCxDLFVBRWRELGNBQWMsQ0FBQ0UsZUFBRCxDLFVBRWRGLGNBQWMs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c2FwL2ZlL2NvcmUvQmFzZUNvbnRyb2xsZXJcIjtcbmltcG9ydCBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IEV4dGVuc2lvbkFQSSBmcm9tIFwic2FwL2ZlL2NvcmUvRXh0ZW5zaW9uQVBJXCI7XG5pbXBvcnQgUm91dGluZyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUm91dGluZ1wiO1xuaW1wb3J0IEVkaXRGbG93IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9FZGl0Rmxvd1wiO1xuaW1wb3J0IFBhZ2VSZWFkeSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUGFnZVJlYWR5XCI7XG5pbXBvcnQgTWVzc2FnZUhhbmRsZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL01lc3NhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgSW50ZW50QmFzZWROYXZpZ2F0aW9uIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlbnRCYXNlZE5hdmlnYXRpb25cIjtcbmltcG9ydCBTaGFyZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvU2hhcmVcIjtcbmltcG9ydCBWaWV3U3RhdGUgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1ZpZXdTdGF0ZVwiO1xuaW1wb3J0IFBhZ2luYXRvciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUGFnaW5hdG9yXCI7XG5pbXBvcnQgU2lkZUVmZmVjdHMgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NpZGVFZmZlY3RzXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBJbnRlcm5hbFJvdXRpbmcgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVybmFsUm91dGluZ1wiO1xuaW1wb3J0IEludGVybmFsRWRpdEZsb3cgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVybmFsRWRpdEZsb3dcIjtcbmltcG9ydCBJbnRlcm5hbEludGVudEJhc2VkTmF2aWdhdGlvbiBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvSW50ZXJuYWxJbnRlbnRCYXNlZE5hdmlnYXRpb25cIjtcbmltcG9ydCBQbGFjZWhvbGRlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUGxhY2Vob2xkZXJcIjtcbmltcG9ydCBNYXNzRWRpdCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvTWFzc0VkaXRcIjtcbmltcG9ydCB7IFB1YmxpYywgVUk1Q2xhc3MsIFVzaW5nRXh0ZW5zaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29udHJvbGxlck1ldGFkYXRhIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlck1ldGFkYXRhXCI7XG5cbi8qKlxuICogQmFzZSBjb250cm9sbGVyIGNsYXNzIGZvciB5b3VyIGN1c3RvbSBwYWdlIHVzZWQgaW5zaWRlIGFuIFNBUCBGaW9yaSBlbGVtZW50cyBhcHBsaWNhdGlvbi5cbiAqXG4gKiBUaGlzIGNvbnRyb2xsZXIgcHJvdmlkZXMgcHJlY29uZmlndXJlZCBleHRlbnNpb25zIHRoYXQgd2lsbCBlbnN1cmUgeW91IGhhdmUgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdGllcyByZXF1aXJlZCB0byB1c2UgdGhlIGJ1aWxkaW5nIGJsb2Nrcy5cbiAqXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAcHVibGljXG4gKiBAc2luY2UgMS44OC4wXG4gKi9cbkBVSTVDbGFzcyhcInNhcC5mZS5jb3JlLlBhZ2VDb250cm9sbGVyXCIsIENvbnRyb2xsZXJNZXRhZGF0YSwge30pXG5jbGFzcyBQYWdlQ29udHJvbGxlciBleHRlbmRzIEJhc2VDb250cm9sbGVyIHtcblx0QFVzaW5nRXh0ZW5zaW9uKFJvdXRpbmcpXG5cdHJvdXRpbmchOiBSb3V0aW5nO1xuXHRAVXNpbmdFeHRlbnNpb24oSW50ZXJuYWxSb3V0aW5nKVxuXHRfcm91dGluZyE6IEludGVybmFsUm91dGluZztcblx0QFVzaW5nRXh0ZW5zaW9uKEVkaXRGbG93KVxuXHRlZGl0RmxvdyE6IEVkaXRGbG93O1xuXHRAVXNpbmdFeHRlbnNpb24oSW50ZXJuYWxFZGl0Rmxvdylcblx0X2VkaXRGbG93ITogSW50ZXJuYWxFZGl0Rmxvdztcblx0QFVzaW5nRXh0ZW5zaW9uKEludGVudEJhc2VkTmF2aWdhdGlvbilcblx0aW50ZW50QmFzZWROYXZpZ2F0aW9uITogSW50ZW50QmFzZWROYXZpZ2F0aW9uO1xuXHRAVXNpbmdFeHRlbnNpb24oSW50ZXJuYWxJbnRlbnRCYXNlZE5hdmlnYXRpb24pXG5cdF9pbnRlbnRCYXNlZE5hdmlnYXRpb24hOiBJbnRlcm5hbEludGVudEJhc2VkTmF2aWdhdGlvbjtcblx0QFVzaW5nRXh0ZW5zaW9uKFBhZ2VSZWFkeSlcblx0cGFnZVJlYWR5ITogUGFnZVJlYWR5O1xuXHRAVXNpbmdFeHRlbnNpb24oTWVzc2FnZUhhbmRsZXIpXG5cdG1lc3NhZ2VIYW5kbGVyITogTWVzc2FnZUhhbmRsZXI7XG5cdEBVc2luZ0V4dGVuc2lvbihTaGFyZSlcblx0c2hhcmUhOiBTaGFyZTtcblx0QFVzaW5nRXh0ZW5zaW9uKFBhZ2luYXRvcilcblx0cGFnaW5hdG9yITogUGFnaW5hdG9yO1xuXHRAVXNpbmdFeHRlbnNpb24oVmlld1N0YXRlKVxuXHR2aWV3U3RhdGUhOiBWaWV3U3RhdGU7XG5cdEBVc2luZ0V4dGVuc2lvbihQbGFjZWhvbGRlcilcblx0cGxhY2Vob2xkZXIhOiBQbGFjZWhvbGRlcjtcblx0QFVzaW5nRXh0ZW5zaW9uKFNpZGVFZmZlY3RzKVxuXHRfc2lkZUVmZmVjdHMhOiBTaWRlRWZmZWN0cztcblx0QFVzaW5nRXh0ZW5zaW9uKE1hc3NFZGl0KVxuXHRtYXNzRWRpdCE6IE1hc3NFZGl0O1xuXHQvLyBAUHVibGljXG5cdC8vIGdldFZpZXcoKTogeyBnZXRDb250cm9sbGVyKCk6IFBhZ2VDb250cm9sbGVyIH0gJiBWaWV3IHtcblx0Ly8gXHRyZXR1cm4gc3VwZXIuZ2V0VmlldygpIGFzIGFueTtcblx0Ly8gfVxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXIuZ2V0TWV0YWRhdGFcblx0ICogQGZ1bmN0aW9uXG5cdCAqL1xuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXIuZXh0ZW5kXG5cdCAqIEBmdW5jdGlvblxuXHQgKi9cblxuXHRAUHVibGljXG5cdG9uSW5pdCgpIHtcblx0XHRjb25zdCBvVUlNb2RlbCA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TW9kZWwoXCJ1aVwiKSBhcyBKU09OTW9kZWwsXG5cdFx0XHRvSW50ZXJuYWxNb2RlbCA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWwsXG5cdFx0XHRzUGF0aCA9IFwiL3BhZ2VzL1wiICsgdGhpcy5nZXRWaWV3KCkuZ2V0SWQoKTtcblxuXHRcdG9VSU1vZGVsLnNldFByb3BlcnR5KHNQYXRoLCB7XG5cdFx0XHRjb250cm9sczoge31cblx0XHR9KTtcblx0XHRvSW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShzUGF0aCwge1xuXHRcdFx0Y29udHJvbHM6IHt9LFxuXHRcdFx0Y29sbGFib3JhdGlvbjoge31cblx0XHR9KTtcblx0XHR0aGlzLmdldFZpZXcoKS5iaW5kRWxlbWVudCh7XG5cdFx0XHRwYXRoOiBzUGF0aCxcblx0XHRcdG1vZGVsOiBcInVpXCJcblx0XHR9KTtcblx0XHR0aGlzLmdldFZpZXcoKS5iaW5kRWxlbWVudCh7XG5cdFx0XHRwYXRoOiBzUGF0aCxcblx0XHRcdG1vZGVsOiBcImludGVybmFsXCJcblx0XHR9KTtcblxuXHRcdC8vIGZvciB0aGUgdGltZSBiZWluZyBwcm92aWRlIGl0IGFsc28gcGFnZUludGVybmFsIGFzIHNvbWUgbWFjcm9zIGFjY2VzcyBpdCAtIHRvIGJlIHJlbW92ZWRcblx0XHR0aGlzLmdldFZpZXcoKS5iaW5kRWxlbWVudCh7XG5cdFx0XHRwYXRoOiBzUGF0aCxcblx0XHRcdG1vZGVsOiBcInBhZ2VJbnRlcm5hbFwiXG5cdFx0fSk7XG5cdFx0dGhpcy5nZXRWaWV3KCkuc2V0TW9kZWwob0ludGVybmFsTW9kZWwsIFwicGFnZUludGVybmFsXCIpO1xuXG5cdFx0Ly8gYXMgdGhlIG1vZGVsIHByb3BhZ2F0aW9uIGhhcHBlbnMgYWZ0ZXIgaW5pdCBidXQgd2UgYWN0dWFsbHkgd2FudCB0byBhY2Nlc3MgdGhlIGJpbmRpbmcgY29udGV4dCBpbiB0aGVcblx0XHQvLyBpbml0IHBoYXNlIGFscmVhZHkgc2V0dGluZyB0aGUgbW9kZWwgaGVyZVxuXHRcdHRoaXMuZ2V0VmlldygpLnNldE1vZGVsKG9VSU1vZGVsLCBcInVpXCIpO1xuXHRcdHRoaXMuZ2V0VmlldygpLnNldE1vZGVsKG9JbnRlcm5hbE1vZGVsLCBcImludGVybmFsXCIpO1xuXHR9XG5cdEBQdWJsaWNcblx0b25CZWZvcmVSZW5kZXJpbmcoKSB7XG5cdFx0aWYgKHRoaXMucGxhY2Vob2xkZXIuYXR0YWNoSGlkZUNhbGxiYWNrKSB7XG5cdFx0XHR0aGlzLnBsYWNlaG9sZGVyLmF0dGFjaEhpZGVDYWxsYmFjaygpO1xuXHRcdH1cblx0fVxuXHRAUHVibGljXG5cdGdldEV4dGVuc2lvbkFQSSh0aGlzOiBhbnkpOiBFeHRlbnNpb25BUEkge1xuXHRcdGlmICghdGhpcy5leHRlbnNpb25BUEkpIHtcblx0XHRcdHRoaXMuZXh0ZW5zaW9uQVBJID0gbmV3IEV4dGVuc2lvbkFQSSh0aGlzKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZXh0ZW5zaW9uQVBJO1xuXHR9XG5cdEBQdWJsaWNcblx0b25QYWdlUmVhZHkoKSB7XG5cdFx0Ly8gQXBwbHkgYXBwIHN0YXRlIG9ubHkgYWZ0ZXIgdGhlIHBhZ2UgaXMgcmVhZHkgd2l0aCB0aGUgZmlyc3Qgc2VjdGlvbiBzZWxlY3RlZFxuXHRcdCh0aGlzLmdldEFwcENvbXBvbmVudCgpIGFzIEFwcENvbXBvbmVudCkuZ2V0QXBwU3RhdGVIYW5kbGVyKCkuYXBwbHlBcHBTdGF0ZSgpO1xuXHR9XG59XG5leHBvcnQgZGVmYXVsdCBQYWdlQ29udHJvbGxlcjtcbiJdfQ==
@@ -1,6 +1,6 @@
1
- import Controller from "sap/fe/core/BaseController";
2
- import { AppComponent, ExtensionAPI } from "sap/fe/core";
3
- import { InternalEditFlow, InternalIntentBasedNavigation, InternalRouting, MassEdit, Placeholder } from "sap/fe/core/controllerextensions";
1
+ import BaseController from "sap/fe/core/BaseController";
2
+ import AppComponent from "sap/fe/core/AppComponent";
3
+ import ExtensionAPI from "sap/fe/core/ExtensionAPI";
4
4
  import Routing from "sap/fe/core/controllerextensions/Routing";
5
5
  import EditFlow from "sap/fe/core/controllerextensions/EditFlow";
6
6
  import PageReady from "sap/fe/core/controllerextensions/PageReady";
@@ -11,33 +11,57 @@ import ViewState from "sap/fe/core/controllerextensions/ViewState";
11
11
  import Paginator from "sap/fe/core/controllerextensions/Paginator";
12
12
  import SideEffects from "sap/fe/core/controllerextensions/SideEffects";
13
13
  import JSONModel from "sap/ui/model/json/JSONModel";
14
+ import InternalRouting from "sap/fe/core/controllerextensions/InternalRouting";
15
+ import InternalEditFlow from "sap/fe/core/controllerextensions/InternalEditFlow";
16
+ import InternalIntentBasedNavigation from "sap/fe/core/controllerextensions/InternalIntentBasedNavigation";
17
+ import Placeholder from "sap/fe/core/controllerextensions/Placeholder";
18
+ import MassEdit from "sap/fe/core/controllerextensions/MassEdit";
19
+ import { Public, UI5Class, UsingExtension } from "sap/fe/core/helpers/ClassSupport";
20
+ import ControllerMetadata from "sap/ui/core/mvc/ControllerMetadata";
14
21
 
15
22
  /**
16
- * @class Base controller class for your custom page used inside an SAP Fiori elements application.
23
+ * Base controller class for your custom page used inside an SAP Fiori elements application.
17
24
  *
18
25
  * This controller provides preconfigured extensions that will ensure you have the basic functionalities required to use the building blocks.
19
26
  *
20
27
  * @hideconstructor
21
28
  * @public
22
- * @name sap.fe.core.PageController
23
29
  * @since 1.88.0
24
30
  */
25
- export default Controller.extend("sap.fe.core.PageController", {
26
- routing: Routing,
27
- _routing: InternalRouting,
28
- editFlow: EditFlow,
29
- _editFlow: InternalEditFlow,
30
- intentBasedNavigation: IntentBasedNavigation,
31
- _intentBasedNavigation: InternalIntentBasedNavigation,
32
- pageReady: PageReady,
33
- messageHandler: MessageHandler,
34
- share: Share,
35
- paginator: Paginator,
36
- viewState: ViewState,
37
- placeholder: Placeholder,
38
- _sideEffects: SideEffects,
39
- massEdit: MassEdit,
40
-
31
+ @UI5Class("sap.fe.core.PageController", ControllerMetadata, {})
32
+ class PageController extends BaseController {
33
+ @UsingExtension(Routing)
34
+ routing!: Routing;
35
+ @UsingExtension(InternalRouting)
36
+ _routing!: InternalRouting;
37
+ @UsingExtension(EditFlow)
38
+ editFlow!: EditFlow;
39
+ @UsingExtension(InternalEditFlow)
40
+ _editFlow!: InternalEditFlow;
41
+ @UsingExtension(IntentBasedNavigation)
42
+ intentBasedNavigation!: IntentBasedNavigation;
43
+ @UsingExtension(InternalIntentBasedNavigation)
44
+ _intentBasedNavigation!: InternalIntentBasedNavigation;
45
+ @UsingExtension(PageReady)
46
+ pageReady!: PageReady;
47
+ @UsingExtension(MessageHandler)
48
+ messageHandler!: MessageHandler;
49
+ @UsingExtension(Share)
50
+ share!: Share;
51
+ @UsingExtension(Paginator)
52
+ paginator!: Paginator;
53
+ @UsingExtension(ViewState)
54
+ viewState!: ViewState;
55
+ @UsingExtension(Placeholder)
56
+ placeholder!: Placeholder;
57
+ @UsingExtension(SideEffects)
58
+ _sideEffects!: SideEffects;
59
+ @UsingExtension(MassEdit)
60
+ massEdit!: MassEdit;
61
+ // @Public
62
+ // getView(): { getController(): PageController } & View {
63
+ // return super.getView() as any;
64
+ // }
41
65
  /**
42
66
  * @private
43
67
  * @name sap.fe.core.PageController.getMetadata
@@ -49,7 +73,8 @@ export default Controller.extend("sap.fe.core.PageController", {
49
73
  * @function
50
74
  */
51
75
 
52
- onInit: function() {
76
+ @Public
77
+ onInit() {
53
78
  const oUIModel = this.getAppComponent().getModel("ui") as JSONModel,
54
79
  oInternalModel = this.getAppComponent().getModel("internal") as JSONModel,
55
80
  sPath = "/pages/" + this.getView().getId();
@@ -58,7 +83,8 @@ export default Controller.extend("sap.fe.core.PageController", {
58
83
  controls: {}
59
84
  });
60
85
  oInternalModel.setProperty(sPath, {
61
- controls: {}
86
+ controls: {},
87
+ collaboration: {}
62
88
  });
63
89
  this.getView().bindElement({
64
90
  path: sPath,
@@ -80,22 +106,24 @@ export default Controller.extend("sap.fe.core.PageController", {
80
106
  // init phase already setting the model here
81
107
  this.getView().setModel(oUIModel, "ui");
82
108
  this.getView().setModel(oInternalModel, "internal");
83
- },
84
-
85
- onBeforeRendering: function() {
109
+ }
110
+ @Public
111
+ onBeforeRendering() {
86
112
  if (this.placeholder.attachHideCallback) {
87
113
  this.placeholder.attachHideCallback();
88
114
  }
89
- },
90
- getExtensionAPI: function(this: any): ExtensionAPI {
115
+ }
116
+ @Public
117
+ getExtensionAPI(this: any): ExtensionAPI {
91
118
  if (!this.extensionAPI) {
92
119
  this.extensionAPI = new ExtensionAPI(this);
93
120
  }
94
121
  return this.extensionAPI;
95
- },
96
-
97
- onPageReady: function() {
122
+ }
123
+ @Public
124
+ onPageReady() {
98
125
  // Apply app state only after the page is ready with the first section selected
99
126
  (this.getAppComponent() as AppComponent).getAppStateHandler().applyAppState();
100
127
  }
101
- });
128
+ }
129
+ export default PageController;