@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.
- package/package.json +4 -2
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +1 -69
- package/src/sap/fe/core/AnnotationHelper.ts +0 -70
- package/src/sap/fe/core/AppComponent.js +388 -399
- package/src/sap/fe/core/AppComponent.ts +403 -0
- package/src/sap/fe/core/AppStateHandler.js +127 -158
- package/src/sap/fe/core/BaseController.js +82 -58
- package/src/sap/fe/core/BaseController.ts +68 -0
- package/src/sap/fe/core/CommonUtils.js +111 -20
- package/src/sap/fe/core/CommonUtils.ts +131 -32
- package/src/sap/fe/core/ExtensionAPI.js +278 -274
- package/src/sap/fe/core/ExtensionAPI.ts +250 -0
- package/src/sap/fe/core/PageController.js +157 -29
- package/src/sap/fe/core/PageController.ts +60 -32
- package/src/sap/fe/core/RouterProxy.js +694 -756
- package/src/sap/fe/core/RouterProxy.ts +11 -9
- package/src/sap/fe/core/Synchronization.js +21 -31
- package/src/sap/fe/core/TemplateComponent.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +10 -3
- package/src/sap/fe/core/TemplateModel.js +20 -38
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/TransactionHelper.js +1354 -1370
- package/src/sap/fe/core/TransactionHelper.ts +33 -22
- package/src/sap/fe/core/actions/collaboration/ActivitySync.js +392 -0
- package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +136 -0
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
- package/src/sap/fe/core/actions/collaboration/Manage.js +262 -0
- package/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
- package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
- package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
- package/src/sap/fe/core/actions/draft.js +30 -68
- package/src/sap/fe/core/actions/draft.ts +44 -71
- package/src/sap/fe/core/actions/messageHandling.js +55 -36
- package/src/sap/fe/core/actions/messageHandling.ts +66 -46
- package/src/sap/fe/core/actions/operations.js +34 -15
- package/src/sap/fe/core/actions/operations.ts +48 -18
- package/src/sap/fe/core/actions/sticky.js +17 -4
- package/src/sap/fe/core/actions/sticky.ts +21 -4
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +69 -66
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1593 -1669
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +79 -54
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +718 -779
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +796 -816
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1004 -1005
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +487 -521
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -2
- package/src/sap/fe/core/controllerextensions/MassEdit.js +141 -169
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +233 -244
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
- package/src/sap/fe/core/controllerextensions/PageReady.js +301 -336
- package/src/sap/fe/core/controllerextensions/PageReady.ts +12 -10
- package/src/sap/fe/core/controllerextensions/Paginator.js +188 -175
- package/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
- package/src/sap/fe/core/controllerextensions/Placeholder.js +157 -149
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
- package/src/sap/fe/core/controllerextensions/Routing.js +144 -125
- package/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +7 -6
- package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
- package/src/sap/fe/core/controllerextensions/Share.js +230 -268
- package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.js +592 -633
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +8 -7
- package/src/sap/fe/core/controllerextensions/ViewState.js +788 -806
- package/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
- package/src/sap/fe/core/controls/CommandExecution.js +67 -66
- package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
- package/src/sap/fe/core/controls/ConditionalWrapper.js +90 -75
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +130 -125
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +103 -112
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
- package/src/sap/fe/core/controls/FieldWrapper.js +122 -135
- package/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
- package/src/sap/fe/core/controls/FilterBar.js +162 -159
- package/src/sap/fe/core/controls/FilterBar.ts +143 -0
- package/src/sap/fe/core/controls/FormElementWrapper.js +45 -39
- package/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +37 -42
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +126 -116
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +241 -255
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +150 -141
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +335 -322
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +74 -74
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
- package/src/sap/fe/core/converters/ConverterContext.js +348 -379
- package/src/sap/fe/core/converters/ConverterContext.ts +19 -16
- package/src/sap/fe/core/converters/ManifestSettings.js +12 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +12 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js +354 -378
- package/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +6 -4
- package/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +26 -12
- package/src/sap/fe/core/converters/annotations/DataField.ts +37 -13
- package/src/sap/fe/core/converters/controls/Common/Form.js +2 -2
- package/src/sap/fe/core/converters/controls/Common/Form.ts +4 -2
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +130 -23
- package/src/sap/fe/core/converters/controls/Common/Table.ts +134 -29
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +118 -53
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +156 -93
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +161 -207
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +148 -206
- package/src/sap/fe/core/converters/helpers/Aggregation.js +115 -133
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
- package/src/sap/fe/core/converters/helpers/Key.js +42 -57
- package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +25 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +20 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +10 -4
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +15 -4
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +7 -5
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +92 -98
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
- package/src/sap/fe/core/formatters/TableFormatter.js +53 -2
- package/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
- package/src/sap/fe/core/fpm/Component.js +50 -54
- package/src/sap/fe/core/fpm/Component.ts +48 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.js +323 -309
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
- package/src/sap/fe/core/helpers/BindingExpression.js +7 -7
- package/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
- package/src/sap/fe/core/helpers/ClassSupport.js +186 -62
- package/src/sap/fe/core/helpers/ClassSupport.ts +168 -52
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +5 -4
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js +601 -684
- package/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +25 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +5 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +4 -0
- package/src/sap/fe/core/library.js +426 -451
- package/src/sap/fe/core/library.support.js +22 -33
- package/src/sap/fe/core/library.support.ts +23 -0
- package/src/sap/fe/core/library.ts +420 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -1
- package/src/sap/fe/core/messagebundle.properties +22 -5
- package/src/sap/fe/core/messagebundle_ar.properties +27 -7
- package/src/sap/fe/core/messagebundle_bg.properties +27 -7
- package/src/sap/fe/core/messagebundle_ca.properties +27 -7
- package/src/sap/fe/core/messagebundle_cs.properties +27 -7
- package/src/sap/fe/core/messagebundle_cy.properties +27 -7
- package/src/sap/fe/core/messagebundle_da.properties +27 -7
- package/src/sap/fe/core/messagebundle_de.properties +27 -7
- package/src/sap/fe/core/messagebundle_el.properties +27 -7
- package/src/sap/fe/core/messagebundle_en.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_GB.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +27 -7
- package/src/sap/fe/core/messagebundle_es.properties +27 -7
- package/src/sap/fe/core/messagebundle_es_MX.properties +27 -7
- package/src/sap/fe/core/messagebundle_et.properties +27 -7
- package/src/sap/fe/core/messagebundle_fi.properties +28 -8
- package/src/sap/fe/core/messagebundle_fr.properties +28 -8
- package/src/sap/fe/core/messagebundle_fr_CA.properties +29 -9
- package/src/sap/fe/core/messagebundle_hi.properties +27 -7
- package/src/sap/fe/core/messagebundle_hr.properties +27 -7
- package/src/sap/fe/core/messagebundle_hu.properties +27 -7
- package/src/sap/fe/core/messagebundle_id.properties +27 -7
- package/src/sap/fe/core/messagebundle_it.properties +27 -7
- package/src/sap/fe/core/messagebundle_iw.properties +27 -7
- package/src/sap/fe/core/messagebundle_ja.properties +26 -6
- package/src/sap/fe/core/messagebundle_kk.properties +27 -7
- package/src/sap/fe/core/messagebundle_ko.properties +27 -7
- package/src/sap/fe/core/messagebundle_lt.properties +27 -7
- package/src/sap/fe/core/messagebundle_lv.properties +28 -8
- package/src/sap/fe/core/messagebundle_ms.properties +27 -7
- package/src/sap/fe/core/messagebundle_nl.properties +27 -7
- package/src/sap/fe/core/messagebundle_no.properties +27 -7
- package/src/sap/fe/core/messagebundle_pl.properties +27 -7
- package/src/sap/fe/core/messagebundle_pt.properties +28 -8
- package/src/sap/fe/core/messagebundle_pt_PT.properties +27 -7
- package/src/sap/fe/core/messagebundle_ro.properties +27 -7
- package/src/sap/fe/core/messagebundle_ru.properties +27 -7
- package/src/sap/fe/core/messagebundle_sh.properties +27 -7
- package/src/sap/fe/core/messagebundle_sk.properties +27 -7
- package/src/sap/fe/core/messagebundle_sl.properties +27 -7
- package/src/sap/fe/core/messagebundle_sv.properties +27 -7
- package/src/sap/fe/core/messagebundle_th.properties +26 -6
- package/src/sap/fe/core/messagebundle_tr.properties +30 -10
- package/src/sap/fe/core/messagebundle_uk.properties +27 -7
- package/src/sap/fe/core/messagebundle_vi.properties +27 -7
- package/src/sap/fe/core/messagebundle_zh_CN.properties +27 -7
- package/src/sap/fe/core/messagebundle_zh_TW.properties +27 -7
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +45 -71
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +154 -192
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +4 -4
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +66 -92
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js +284 -339
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -13
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +67 -102
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +5 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.js +754 -814
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +13 -13
- package/src/sap/fe/core/services/ShellServicesFactory.js +649 -736
- package/src/sap/fe/core/services/ShellServicesFactory.ts +7 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +567 -592
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +22 -3
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +354 -386
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +21 -14
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.ts +1 -1
- package/src/sap/fe/core/support/Diagnostics.js +36 -48
- package/src/sap/fe/core/templating/DataModelPathHelper.js +93 -85
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +104 -95
- package/src/sap/fe/core/templating/FilterHelper.js +25 -32
- package/src/sap/fe/core/templating/FilterHelper.ts +36 -35
- package/src/sap/fe/core/templating/PropertyHelper.js +2 -2
- package/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js +32 -26
- package/src/sap/fe/core/templating/UIFormatters.ts +37 -24
|
@@ -9,28 +9,10 @@ sap.ui.define(["sap/ui/base/Object", "sap/fe/navigation/library", "sap/base/Log"
|
|
|
9
9
|
|
|
10
10
|
var UI5Class = ClassSupport.UI5Class;
|
|
11
11
|
|
|
12
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
13
|
-
|
|
14
|
-
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); } }
|
|
15
|
-
|
|
16
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
17
|
-
|
|
18
12
|
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
13
|
|
|
20
14
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
21
15
|
|
|
22
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
23
|
-
|
|
24
|
-
function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
25
|
-
|
|
26
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
27
|
-
|
|
28
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
29
|
-
|
|
30
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
31
|
-
|
|
32
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
33
|
-
|
|
34
16
|
var NavType = library.NavType;
|
|
35
17
|
|
|
36
18
|
function _toES6Promise(oThenable) {
|
|
@@ -52,18 +34,12 @@ sap.ui.define(["sap/ui/base/Object", "sap/fe/navigation/library", "sap/base/Log"
|
|
|
52
34
|
var AppStateHandler = (_dec = UI5Class("sap.fe.core.AppStateHandler"), _dec(_class = /*#__PURE__*/function (_BaseObject) {
|
|
53
35
|
_inherits(AppStateHandler, _BaseObject);
|
|
54
36
|
|
|
55
|
-
var _super = _createSuper(AppStateHandler);
|
|
56
|
-
|
|
57
37
|
// AppComponent
|
|
58
38
|
function AppStateHandler(oAppComponent) {
|
|
59
39
|
var _this;
|
|
60
40
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
_this = _super.call(this);
|
|
64
|
-
|
|
65
|
-
_defineProperty(_assertThisInitialized(_this), "_mCurrentAppState", {});
|
|
66
|
-
|
|
41
|
+
_this = _BaseObject.call(this) || this;
|
|
42
|
+
_this._mCurrentAppState = {};
|
|
67
43
|
_this.oAppComponent = oAppComponent;
|
|
68
44
|
_this.sId = oAppComponent.getId() + "/AppStateHandler";
|
|
69
45
|
_this.bNoRouteChange = false;
|
|
@@ -71,154 +47,147 @@ sap.ui.define(["sap/ui/base/Object", "sap/fe/navigation/library", "sap/base/Log"
|
|
|
71
47
|
return _this;
|
|
72
48
|
}
|
|
73
49
|
|
|
74
|
-
|
|
75
|
-
key: "getId",
|
|
76
|
-
value: function getId() {
|
|
77
|
-
return this.sId;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Creates/updates the appstate.
|
|
81
|
-
*
|
|
82
|
-
* @returns {Promise} A promise resolving the stored data
|
|
83
|
-
* @ui5-restricted
|
|
84
|
-
*/
|
|
85
|
-
|
|
86
|
-
}, {
|
|
87
|
-
key: "createAppState",
|
|
88
|
-
value: function createAppState() {
|
|
89
|
-
var _this2 = this;
|
|
90
|
-
|
|
91
|
-
if (BusyLocker.isLocked(this)) {
|
|
92
|
-
return Promise.resolve();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
var oNavigationService = this.oAppComponent.getNavigationService(),
|
|
96
|
-
oRouterProxy = this.oAppComponent.getRouterProxy(),
|
|
97
|
-
sHash = oRouterProxy.getHash(),
|
|
98
|
-
oController = this.oAppComponent.getRootControl().getController(),
|
|
99
|
-
bIsStickyMode = ModelHelper.isStickySessionSupported(this.oAppComponent.getMetaModel());
|
|
100
|
-
|
|
101
|
-
if (!oController.viewState) {
|
|
102
|
-
return Promise.reject("viewState controller extension not available for controller: " + oController.getMetadata().getName());
|
|
103
|
-
}
|
|
50
|
+
var _proto = AppStateHandler.prototype;
|
|
104
51
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
52
|
+
_proto.getId = function getId() {
|
|
53
|
+
return this.sId;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Creates/updates the appstate.
|
|
57
|
+
*
|
|
58
|
+
* @returns {Promise} A promise resolving the stored data
|
|
59
|
+
* @ui5-restricted
|
|
60
|
+
*/
|
|
61
|
+
;
|
|
62
|
+
|
|
63
|
+
_proto.createAppState = function createAppState() {
|
|
64
|
+
var _this2 = this;
|
|
65
|
+
|
|
66
|
+
if (BusyLocker.isLocked(this)) {
|
|
67
|
+
return Promise.resolve();
|
|
68
|
+
}
|
|
109
69
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
var sNewHash = oNavigationService.replaceInnerAppStateKey(sHash, sAppStateKey);
|
|
70
|
+
var oNavigationService = this.oAppComponent.getNavigationService(),
|
|
71
|
+
oRouterProxy = this.oAppComponent.getRouterProxy(),
|
|
72
|
+
sHash = oRouterProxy.getHash(),
|
|
73
|
+
oController = this.oAppComponent.getRootControl().getController(),
|
|
74
|
+
bIsStickyMode = ModelHelper.isStickySessionSupported(this.oAppComponent.getMetaModel());
|
|
116
75
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
76
|
+
if (!oController.viewState) {
|
|
77
|
+
return Promise.reject("viewState controller extension not available for controller: " + oController.getMetadata().getName());
|
|
78
|
+
}
|
|
121
79
|
|
|
122
|
-
|
|
80
|
+
return oController.viewState.retrieveViewState().then(function (mInnerAppState) {
|
|
81
|
+
var oStoreData = {
|
|
82
|
+
appState: mInnerAppState
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
if (mInnerAppState && !deepEqual(_this2._mCurrentAppState, mInnerAppState)) {
|
|
86
|
+
_this2._mCurrentAppState = mInnerAppState;
|
|
87
|
+
var oAppState = oNavigationService.storeInnerAppStateWithImmediateReturn(oStoreData, true);
|
|
88
|
+
Log.info("APPSTATE: Appstate stored");
|
|
89
|
+
var sAppStateKey = oAppState.appStateKey;
|
|
90
|
+
var sNewHash = oNavigationService.replaceInnerAppStateKey(sHash, sAppStateKey);
|
|
91
|
+
|
|
92
|
+
if (sNewHash !== sHash) {
|
|
93
|
+
oRouterProxy.navToHash(sNewHash, null, null, null, !bIsStickyMode);
|
|
94
|
+
_this2.bNoRouteChange = true;
|
|
123
95
|
}
|
|
124
96
|
|
|
125
|
-
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
}, {
|
|
129
|
-
key: "_createNavigationParameters",
|
|
130
|
-
value: function _createNavigationParameters(oAppData, sNavType) {
|
|
131
|
-
return Object.assign({}, oAppData, {
|
|
132
|
-
selectionVariantDefaults: oAppData.oDefaultedSelectionVariant,
|
|
133
|
-
selectionVariant: oAppData.oSelectionVariant,
|
|
134
|
-
requiresStandardVariant: !oAppData.bNavSelVarHasDefaultsOnly,
|
|
135
|
-
navigationType: sNavType
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Applies an appstate by fetching appdata and passing it to _applyAppstateToPage.
|
|
140
|
-
*
|
|
141
|
-
* @function
|
|
142
|
-
* @static
|
|
143
|
-
* @memberof sap.fe.core.AppStateHandler
|
|
144
|
-
* @returns {Promise} A promise for async handling
|
|
145
|
-
* @private
|
|
146
|
-
* @ui5-restricted
|
|
147
|
-
**/
|
|
148
|
-
|
|
149
|
-
}, {
|
|
150
|
-
key: "applyAppState",
|
|
151
|
-
value: function applyAppState() {
|
|
152
|
-
var _this3 = this;
|
|
153
|
-
|
|
154
|
-
if (this.oAppComponent.getModel("internal").getProperty("/uiAdaptation") || BusyLocker.isLocked(this)) {
|
|
155
|
-
return Promise.resolve();
|
|
97
|
+
Log.info("APPSTATE: navToHash");
|
|
156
98
|
}
|
|
157
99
|
|
|
158
|
-
|
|
100
|
+
return oStoreData;
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
_proto._createNavigationParameters = function _createNavigationParameters(oAppData, sNavType) {
|
|
105
|
+
return Object.assign({}, oAppData, {
|
|
106
|
+
selectionVariantDefaults: oAppData.oDefaultedSelectionVariant,
|
|
107
|
+
selectionVariant: oAppData.oSelectionVariant,
|
|
108
|
+
requiresStandardVariant: !oAppData.bNavSelVarHasDefaultsOnly,
|
|
109
|
+
navigationType: sNavType
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Applies an appstate by fetching appdata and passing it to _applyAppstateToPage.
|
|
114
|
+
*
|
|
115
|
+
* @function
|
|
116
|
+
* @static
|
|
117
|
+
* @memberof sap.fe.core.AppStateHandler
|
|
118
|
+
* @returns {Promise} A promise for async handling
|
|
119
|
+
* @private
|
|
120
|
+
* @ui5-restricted
|
|
121
|
+
**/
|
|
122
|
+
;
|
|
123
|
+
|
|
124
|
+
_proto.applyAppState = function applyAppState() {
|
|
125
|
+
var _this3 = this;
|
|
126
|
+
|
|
127
|
+
if (this.oAppComponent.getModel("internal").getProperty("/uiAdaptation") || BusyLocker.isLocked(this)) {
|
|
128
|
+
return Promise.resolve();
|
|
129
|
+
}
|
|
159
130
|
|
|
160
|
-
|
|
161
|
-
var oNavigationService = this.oAppComponent.getNavigationService(); // TODO oNavigationService.parseNavigation() should return ES6 promise instead jQuery.promise
|
|
131
|
+
BusyLocker.lock(this); // Done for busy indicator
|
|
162
132
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
aErrorData = [];
|
|
166
|
-
}
|
|
133
|
+
BusyLocker.lock(this.oAppComponent.getRootControl());
|
|
134
|
+
var oNavigationService = this.oAppComponent.getNavigationService(); // TODO oNavigationService.parseNavigation() should return ES6 promise instead jQuery.promise
|
|
167
135
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}).then(function (aResults) {
|
|
173
|
-
Log.info("APPSTATE: Parse Navigation done"); // aResults[1] => oStartupParameters (not evaluated)
|
|
136
|
+
return _toES6Promise(oNavigationService.parseNavigation()).catch(function (aErrorData) {
|
|
137
|
+
if (!aErrorData) {
|
|
138
|
+
aErrorData = [];
|
|
139
|
+
}
|
|
174
140
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
141
|
+
Log.warning("APPSTATE: Parse Navigation failed", aErrorData[0]);
|
|
142
|
+
return [{
|
|
143
|
+
/* app data */
|
|
144
|
+
}, aErrorData[1], aErrorData[2]];
|
|
145
|
+
}).then(function (aResults) {
|
|
146
|
+
Log.info("APPSTATE: Parse Navigation done"); // aResults[1] => oStartupParameters (not evaluated)
|
|
178
147
|
|
|
179
|
-
|
|
148
|
+
var oAppData = aResults[0] || {},
|
|
149
|
+
sNavType = aResults[2] || NavType.initial,
|
|
150
|
+
oRootController = _this3.oAppComponent.getRootControl().getController();
|
|
180
151
|
|
|
181
|
-
|
|
182
|
-
throw new Error("viewState extension required for controller " + oRootController.getMetadata().getName());
|
|
183
|
-
}
|
|
152
|
+
_this3._mCurrentAppState = sNavType === NavType.iAppState ? oAppData && oAppData.appState : undefined;
|
|
184
153
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
throw oError;
|
|
188
|
-
});
|
|
189
|
-
}).finally(function () {
|
|
190
|
-
BusyLocker.unlock(_this3);
|
|
191
|
-
BusyLocker.unlock(_this3.oAppComponent.getRootControl());
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* To check is route is changed by change in the iAPPState.
|
|
196
|
-
*
|
|
197
|
-
* @returns {boolean}
|
|
198
|
-
**/
|
|
199
|
-
|
|
200
|
-
}, {
|
|
201
|
-
key: "checkIfRouteChangedByIApp",
|
|
202
|
-
value: function checkIfRouteChangedByIApp() {
|
|
203
|
-
return this.bNoRouteChange;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Reset the route changed by iAPPState.
|
|
207
|
-
**/
|
|
208
|
-
|
|
209
|
-
}, {
|
|
210
|
-
key: "resetRouteChangedByIApp",
|
|
211
|
-
value: function resetRouteChangedByIApp() {
|
|
212
|
-
if (this.bNoRouteChange) {
|
|
213
|
-
this.bNoRouteChange = false;
|
|
154
|
+
if (!oRootController.viewState) {
|
|
155
|
+
throw new Error("viewState extension required for controller " + oRootController.getMetadata().getName());
|
|
214
156
|
}
|
|
157
|
+
|
|
158
|
+
return oRootController.viewState.applyViewState(_this3._mCurrentAppState, _this3._createNavigationParameters(oAppData, sNavType)).catch(function (oError) {
|
|
159
|
+
Log.error("appState could not be applied", oError);
|
|
160
|
+
throw oError;
|
|
161
|
+
});
|
|
162
|
+
}).finally(function () {
|
|
163
|
+
BusyLocker.unlock(_this3);
|
|
164
|
+
BusyLocker.unlock(_this3.oAppComponent.getRootControl());
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* To check is route is changed by change in the iAPPState.
|
|
169
|
+
*
|
|
170
|
+
* @returns {boolean}
|
|
171
|
+
**/
|
|
172
|
+
;
|
|
173
|
+
|
|
174
|
+
_proto.checkIfRouteChangedByIApp = function checkIfRouteChangedByIApp() {
|
|
175
|
+
return this.bNoRouteChange;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Reset the route changed by iAPPState.
|
|
179
|
+
**/
|
|
180
|
+
;
|
|
181
|
+
|
|
182
|
+
_proto.resetRouteChangedByIApp = function resetRouteChangedByIApp() {
|
|
183
|
+
if (this.bNoRouteChange) {
|
|
184
|
+
this.bNoRouteChange = false;
|
|
215
185
|
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}]);
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
_proto._isListBasedComponent = function _isListBasedComponent(oComponent) {
|
|
189
|
+
return oComponent.isA("sap.fe.templates.ListComponent");
|
|
190
|
+
};
|
|
222
191
|
|
|
223
192
|
return AppStateHandler;
|
|
224
193
|
}(BaseObject)) || _class);
|
|
@@ -228,4 +197,4 @@ sap.ui.define(["sap/ui/base/Object", "sap/fe/navigation/library", "sap/base/Log"
|
|
|
228
197
|
|
|
229
198
|
return AppStateHandler;
|
|
230
199
|
}, true);
|
|
231
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcFN0YXRlSGFuZGxlci50cyJdLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIl90b0VTNlByb21pc2UiLCJvVGhlbmFibGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJhcmdzIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJzbGljZSIsImNhbGwiLCJjYXRjaCIsIkFwcFN0YXRlSGFuZGxlciIsIlVJNUNsYXNzIiwib0FwcENvbXBvbmVudCIsInNJZCIsImdldElkIiwiYk5vUm91dGVDaGFuZ2UiLCJMb2ciLCJpbmZvIiwiQnVzeUxvY2tlciIsImlzTG9ja2VkIiwib05hdmlnYXRpb25TZXJ2aWNlIiwiZ2V0TmF2aWdhdGlvblNlcnZpY2UiLCJvUm91dGVyUHJveHkiLCJnZXRSb3V0ZXJQcm94eSIsInNIYXNoIiwiZ2V0SGFzaCIsIm9Db250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2wiLCJnZXRDb250cm9sbGVyIiwiYklzU3RpY2t5TW9kZSIsIk1vZGVsSGVscGVyIiwiaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZ2V0TWV0YU1vZGVsIiwidmlld1N0YXRlIiwicmVqZWN0IiwiZ2V0TWV0YWRhdGEiLCJnZXROYW1lIiwicmV0cmlldmVWaWV3U3RhdGUiLCJtSW5uZXJBcHBTdGF0ZSIsIm9TdG9yZURhdGEiLCJhcHBTdGF0ZSIsImRlZXBFcXVhbCIsIl9tQ3VycmVudEFwcFN0YXRlIiwib0FwcFN0YXRlIiwic3RvcmVJbm5lckFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiIsInNBcHBTdGF0ZUtleSIsImFwcFN0YXRlS2V5Iiwic05ld0hhc2giLCJyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleSIsIm5hdlRvSGFzaCIsIm9BcHBEYXRhIiwic05hdlR5cGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJvRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCIsInNlbGVjdGlvblZhcmlhbnQiLCJvU2VsZWN0aW9uVmFyaWFudCIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSIsIm5hdmlnYXRpb25UeXBlIiwiZ2V0TW9kZWwiLCJnZXRQcm9wZXJ0eSIsImxvY2siLCJwYXJzZU5hdmlnYXRpb24iLCJhRXJyb3JEYXRhIiwid2FybmluZyIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsImlBcHBTdGF0ZSIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXBwbHlWaWV3U3RhdGUiLCJfY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMiLCJvRXJyb3IiLCJlcnJvciIsImZpbmFsbHkiLCJ1bmxvY2siLCJvQ29tcG9uZW50IiwiaXNBIiwiQmFzZU9iamVjdCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUNELE9BQXhCOztBQUNBLFdBQVNFLGFBQVQsQ0FBdUJDLFNBQXZCLEVBQXVDO0FBQ3RDLFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUNORixTQUFTLENBQ1BHLElBREYsQ0FDTyxZQUF5QjtBQUFBLHdDQUFiQyxJQUFhO0FBQWJBLFFBQUFBLElBQWE7QUFBQTs7QUFDOUIsYUFBT0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLENBQVA7QUFDQSxLQUhGLEVBSUVLLEtBSkYsQ0FJUSxZQUF5QjtBQUFBLHlDQUFiTCxJQUFhO0FBQWJBLFFBQUFBLElBQWE7QUFBQTs7QUFDL0IsYUFBT0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLENBQVA7QUFDQSxLQU5GLENBRE0sQ0FBUDtBQVNBOztNQUdLTSxlLFdBRExDLFFBQVEsQ0FBQyw2QkFBRCxDOzs7OztBQUdtQjtBQUczQiw2QkFBWUMsYUFBWixFQUFnQztBQUFBOztBQUFBOztBQUMvQjs7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QUFJLEtBQUtBLGNBQVQsRUFBeUI7QUFDeEIsZUFBS0EsY0FBTCxHQUFzQixLQUF0QjtBQUNBO0FBQ0Q7OzthQUNELCtCQUFzQmdFLFVBQXRCLEVBQXVDO0FBQ3RDLGVBQU9BLFVBQVUsQ0FBQ0MsR0FBWCxDQUFlLGdDQUFmLENBQVA7QUFDQTs7OztJQTlJNEJDLFU7QUFpSjlCO0FBQ0E7QUFDQTs7U0FDZXZFLGUiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9PYmplY3RcIjtcbmltcG9ydCBsaWJyYXJ5IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcEVxdWFsXCI7XG5pbXBvcnQgeyBVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcIi4vQnVzeUxvY2tlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCIuL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcblxuY29uc3QgTmF2VHlwZSA9IGxpYnJhcnkuTmF2VHlwZTtcbmZ1bmN0aW9uIF90b0VTNlByb21pc2Uob1RoZW5hYmxlOiBhbnkpIHtcblx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShcblx0XHRvVGhlbmFibGVcblx0XHRcdC50aGVuKGZ1bmN0aW9uKC4uLmFyZ3M6IGFueVtdKSB7XG5cdFx0XHRcdHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmdzKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcblx0XHRcdFx0cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpO1xuXHRcdFx0fSlcblx0KTtcbn1cblxuQFVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXCIpXG5jbGFzcyBBcHBTdGF0ZUhhbmRsZXIgZXh0ZW5kcyBCYXNlT2JqZWN0IHtcblx0cHVibGljIHNJZDogc3RyaW5nO1xuXHRwdWJsaWMgb0FwcENvbXBvbmVudDogYW55OyAvLyBBcHBDb21wb25lbnRcblx0cHVibGljIGJOb1JvdXRlQ2hhbmdlOiBib29sZWFuO1xuXHRwcml2YXRlIF9tQ3VycmVudEFwcFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cdGNvbnN0cnVjdG9yKG9BcHBDb21wb25lbnQ6IGFueSkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5vQXBwQ29tcG9uZW50ID0gb0FwcENvbXBvbmVudDtcblx0XHR0aGlzLnNJZCA9IG9BcHBDb21wb25lbnQuZ2V0SWQoKSArIFwiL0FwcFN0YXRlSGFuZGxlclwiO1xuXG5cdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdExvZy5pbmZvKFwiQVBQU1RBVEUgOiBBcHBzdGF0ZSBoYW5kbGVyIGluaXRpYWxpemVkXCIpO1xuXHR9XG5cdGdldElkKCkge1xuXHRcdHJldHVybiB0aGlzLnNJZDtcblx0fVxuXHQvKipcblx0ICogQ3JlYXRlcy91cGRhdGVzIHRoZSBhcHBzdGF0ZS5cblx0ICpcblx0ICogQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSByZXNvbHZpbmcgdGhlIHN0b3JlZCBkYXRhXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0Y3JlYXRlQXBwU3RhdGUoKSB7XG5cdFx0aWYgKEJ1c3lMb2NrZXIuaXNMb2NrZWQodGhpcykpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKSxcblx0XHRcdG9Sb3V0ZXJQcm94eSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb3V0ZXJQcm94eSgpLFxuXHRcdFx0c0hhc2ggPSBvUm91dGVyUHJveHkuZ2V0SGFzaCgpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCksXG5cdFx0XHRiSXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKHRoaXMub0FwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSk7XG5cblx0XHRpZiAoIW9Db250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KFwidmlld1N0YXRlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG5vdCBhdmFpbGFibGUgZm9yIGNvbnRyb2xsZXI6IFwiICsgb0NvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkpO1xuXHRcdH1cblxuXHRcdHJldHVybiBvQ29udHJvbGxlci52aWV3U3RhdGUucmV0cmlldmVWaWV3U3RhdGUoKS50aGVuKChtSW5uZXJBcHBTdGF0ZTogYW55KSA9PiB7XG5cdFx0XHRjb25zdCBvU3RvcmVEYXRhID0geyBhcHBTdGF0ZTogbUlubmVyQXBwU3RhdGUgfTtcblx0XHRcdGlmIChtSW5uZXJBcHBTdGF0ZSAmJiAhZGVlcEVxdWFsKHRoaXMuX21DdXJyZW50QXBwU3RhdGUsIG1Jbm5lckFwcFN0YXRlKSkge1xuXHRcdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlID0gbUlubmVyQXBwU3RhdGU7XG5cdFx0XHRcdGNvbnN0IG9BcHBTdGF0ZSA9IG9OYXZpZ2F0aW9uU2VydmljZS5zdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG9TdG9yZURhdGEsIHRydWUpO1xuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBBcHBzdGF0ZSBzdG9yZWRcIik7XG5cdFx0XHRcdGNvbnN0IHNBcHBTdGF0ZUtleSA9IG9BcHBTdGF0ZS5hcHBTdGF0ZUtleTtcblx0XHRcdFx0Y29uc3Qgc05ld0hhc2ggPSBvTmF2aWdhdGlvblNlcnZpY2UucmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0hhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdFx0XHRcdGlmIChzTmV3SGFzaCAhPT0gc0hhc2gpIHtcblx0XHRcdFx0XHRvUm91dGVyUHJveHkubmF2VG9IYXNoKHNOZXdIYXNoLCBudWxsLCBudWxsLCBudWxsLCAhYklzU3RpY2t5TW9kZSk7XG5cdFx0XHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogbmF2VG9IYXNoXCIpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG9TdG9yZURhdGE7XG5cdFx0fSk7XG5cdH1cblxuXHRfY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGE6IGFueSwgc05hdlR5cGU6IGFueSkge1xuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBvQXBwRGF0YSwge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudERlZmF1bHRzOiBvQXBwRGF0YS5vRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdHNlbGVjdGlvblZhcmlhbnQ6IG9BcHBEYXRhLm9TZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0cmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6ICFvQXBwRGF0YS5iTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5LFxuXHRcdFx0bmF2aWdhdGlvblR5cGU6IHNOYXZUeXBlXG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQXBwbGllcyBhbiBhcHBzdGF0ZSBieSBmZXRjaGluZyBhcHBkYXRhIGFuZCBwYXNzaW5nIGl0IHRvIF9hcHBseUFwcHN0YXRlVG9QYWdlLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQHN0YXRpY1xuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgZm9yIGFzeW5jIGhhbmRsaW5nXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiovXG5cdGFwcGx5QXBwU3RhdGUoKSB7XG5cdFx0aWYgKHRoaXMub0FwcENvbXBvbmVudC5nZXRNb2RlbChcImludGVybmFsXCIpLmdldFByb3BlcnR5KFwiL3VpQWRhcHRhdGlvblwiKSB8fCBCdXN5TG9ja2VyLmlzTG9ja2VkKHRoaXMpKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzKTtcblx0XHQvLyBEb25lIGZvciBidXN5IGluZGljYXRvclxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKSk7XG5cblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKTtcblx0XHQvLyBUT0RPIG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSBzaG91bGQgcmV0dXJuIEVTNiBwcm9taXNlIGluc3RlYWQgalF1ZXJ5LnByb21pc2Vcblx0XHRyZXR1cm4gX3RvRVM2UHJvbWlzZShvTmF2aWdhdGlvblNlcnZpY2UucGFyc2VOYXZpZ2F0aW9uKCkpXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24oYUVycm9yRGF0YTogYW55KSB7XG5cdFx0XHRcdGlmICghYUVycm9yRGF0YSkge1xuXHRcdFx0XHRcdGFFcnJvckRhdGEgPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRMb2cud2FybmluZyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGZhaWxlZFwiLCBhRXJyb3JEYXRhWzBdKTtcblx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQvKiBhcHAgZGF0YSAqL1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0YUVycm9yRGF0YVsxXSxcblx0XHRcdFx0XHRhRXJyb3JEYXRhWzJdXG5cdFx0XHRcdF07XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGFSZXN1bHRzOiBhbnkpID0+IHtcblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogUGFyc2UgTmF2aWdhdGlvbiBkb25lXCIpO1xuXG5cdFx0XHRcdC8vIGFSZXN1bHRzWzFdID0+IG9TdGFydHVwUGFyYW1ldGVycyAobm90IGV2YWx1YXRlZClcblx0XHRcdFx0Y29uc3Qgb0FwcERhdGEgPSBhUmVzdWx0c1swXSB8fCB7fSxcblx0XHRcdFx0XHRzTmF2VHlwZSA9IGFSZXN1bHRzWzJdIHx8IE5hdlR5cGUuaW5pdGlhbCxcblx0XHRcdFx0XHRvUm9vdENvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCk7XG5cblx0XHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IHNOYXZUeXBlID09PSBOYXZUeXBlLmlBcHBTdGF0ZSA/IG9BcHBEYXRhICYmIG9BcHBEYXRhLmFwcFN0YXRlIDogdW5kZWZpbmVkO1xuXG5cdFx0XHRcdGlmICghb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcInZpZXdTdGF0ZSBleHRlbnNpb24gcmVxdWlyZWQgZm9yIGNvbnRyb2xsZXIgXCIgKyBvUm9vdENvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIG9Sb290Q29udHJvbGxlci52aWV3U3RhdGVcblx0XHRcdFx0XHQuYXBwbHlWaWV3U3RhdGUodGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSwgdGhpcy5fY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGEsIHNOYXZUeXBlKSlcblx0XHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24ob0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0XHRcdExvZy5lcnJvcihcImFwcFN0YXRlIGNvdWxkIG5vdCBiZSBhcHBsaWVkXCIsIG9FcnJvcik7XG5cdFx0XHRcdFx0XHR0aHJvdyBvRXJyb3I7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmZpbmFsbHkoKCkgPT4ge1xuXHRcdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzKTtcblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkpO1xuXHRcdFx0fSk7XG5cdH1cblx0LyoqXG5cdCAqIFRvIGNoZWNrIGlzIHJvdXRlIGlzIGNoYW5nZWQgYnkgY2hhbmdlIGluIHRoZSBpQVBQU3RhdGUuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKiovXG5cdGNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAoKSB7XG5cdFx0cmV0dXJuIHRoaXMuYk5vUm91dGVDaGFuZ2U7XG5cdH1cblx0LyoqXG5cdCAqIFJlc2V0IHRoZSByb3V0ZSBjaGFuZ2VkIGJ5IGlBUFBTdGF0ZS5cblx0ICoqL1xuXHRyZXNldFJvdXRlQ2hhbmdlZEJ5SUFwcCgpIHtcblx0XHRpZiAodGhpcy5iTm9Sb3V0ZUNoYW5nZSkge1xuXHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdH1cblx0fVxuXHRfaXNMaXN0QmFzZWRDb21wb25lbnQob0NvbXBvbmVudDogYW55KSB7XG5cdFx0cmV0dXJuIG9Db21wb25lbnQuaXNBKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0Q29tcG9uZW50XCIpO1xuXHR9XG59XG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCBBcHBTdGF0ZUhhbmRsZXI7XG4iXX0=
|
|
200
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcFN0YXRlSGFuZGxlci50cyJdLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIl90b0VTNlByb21pc2UiLCJvVGhlbmFibGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJhcmdzIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJzbGljZSIsImNhbGwiLCJjYXRjaCIsIkFwcFN0YXRlSGFuZGxlciIsIlVJNUNsYXNzIiwib0FwcENvbXBvbmVudCIsIl9tQ3VycmVudEFwcFN0YXRlIiwic0lkIiwiZ2V0SWQiLCJiTm9Sb3V0ZUNoYW5nZSIsIkxvZyIsImluZm8iLCJjcmVhdGVBcHBTdGF0ZSIsIkJ1c3lMb2NrZXIiLCJpc0xvY2tlZCIsIm9OYXZpZ2F0aW9uU2VydmljZSIsImdldE5hdmlnYXRpb25TZXJ2aWNlIiwib1JvdXRlclByb3h5IiwiZ2V0Um91dGVyUHJveHkiLCJzSGFzaCIsImdldEhhc2giLCJvQ29udHJvbGxlciIsImdldFJvb3RDb250cm9sIiwiZ2V0Q29udHJvbGxlciIsImJJc1N0aWNreU1vZGUiLCJNb2RlbEhlbHBlciIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsImdldE1ldGFNb2RlbCIsInZpZXdTdGF0ZSIsInJlamVjdCIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsInJldHJpZXZlVmlld1N0YXRlIiwibUlubmVyQXBwU3RhdGUiLCJvU3RvcmVEYXRhIiwiYXBwU3RhdGUiLCJkZWVwRXF1YWwiLCJvQXBwU3RhdGUiLCJzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwic0FwcFN0YXRlS2V5IiwiYXBwU3RhdGVLZXkiLCJzTmV3SGFzaCIsInJlcGxhY2VJbm5lckFwcFN0YXRlS2V5IiwibmF2VG9IYXNoIiwiX2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzIiwib0FwcERhdGEiLCJzTmF2VHlwZSIsIk9iamVjdCIsImFzc2lnbiIsInNlbGVjdGlvblZhcmlhbnREZWZhdWx0cyIsIm9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50Iiwic2VsZWN0aW9uVmFyaWFudCIsIm9TZWxlY3Rpb25WYXJpYW50IiwicmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQiLCJiTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5IiwibmF2aWdhdGlvblR5cGUiLCJhcHBseUFwcFN0YXRlIiwiZ2V0TW9kZWwiLCJnZXRQcm9wZXJ0eSIsImxvY2siLCJwYXJzZU5hdmlnYXRpb24iLCJhRXJyb3JEYXRhIiwid2FybmluZyIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsImlBcHBTdGF0ZSIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXBwbHlWaWV3U3RhdGUiLCJvRXJyb3IiLCJlcnJvciIsImZpbmFsbHkiLCJ1bmxvY2siLCJjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwIiwicmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAiLCJfaXNMaXN0QmFzZWRDb21wb25lbnQiLCJvQ29tcG9uZW50IiwiaXNBIiwiQmFzZU9iamVjdCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBTUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUNELE9BQXhCOztBQUNBLFdBQVNFLGFBQVQsQ0FBdUJDLFNBQXZCLEVBQXVDO0FBQ3RDLFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUNORixTQUFTLENBQ1BHLElBREYsQ0FDTyxZQUF5QjtBQUFBLHdDQUFiQyxJQUFhO0FBQWJBLFFBQUFBLElBQWE7QUFBQTs7QUFDOUIsYUFBT0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLENBQVA7QUFDQSxLQUhGLEVBSUVLLEtBSkYsQ0FJUSxZQUF5QjtBQUFBLHlDQUFiTCxJQUFhO0FBQWJBLFFBQUFBLElBQWE7QUFBQTs7QUFDL0IsYUFBT0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLENBQVA7QUFDQSxLQU5GLENBRE0sQ0FB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QjtBQUNBLE9BdENLLENBQVA7QUF1Q0E7QUFDRDtBQUNEO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ29ELHlCLEdBQUEscUNBQTRCO0FBQzNCLGFBQU8sS0FBS2pFLGNBQVo7QUFDQTtBQUNEO0FBQ0Q7QUFDQTs7O1dBQ0NrRSx1QixHQUFBLG1DQUEwQjtBQUN6QixVQUFJLEtBQUtsRSxjQUFULEVBQXlCO0FBQ3hCLGFBQUtBLGNBQUwsR0FBc0IsS0FBdEI7QUFDQTtBQUNELEs7O1dBQ0RtRSxxQixHQUFBLCtCQUFzQkMsVUFBdEIsRUFBdUM7QUFDdEMsYUFBT0EsVUFBVSxDQUFDQyxHQUFYLENBQWUsZ0NBQWYsQ0FBUDtBQUNBLEs7OztJQTlJNEJDLFU7QUFpSjlCO0FBQ0E7QUFDQTs7U0FDZTVFLGUiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9PYmplY3RcIjtcbmltcG9ydCBsaWJyYXJ5IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcEVxdWFsXCI7XG5pbXBvcnQgeyBVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcIi4vQnVzeUxvY2tlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCIuL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcblxuY29uc3QgTmF2VHlwZSA9IGxpYnJhcnkuTmF2VHlwZTtcbmZ1bmN0aW9uIF90b0VTNlByb21pc2Uob1RoZW5hYmxlOiBhbnkpIHtcblx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShcblx0XHRvVGhlbmFibGVcblx0XHRcdC50aGVuKGZ1bmN0aW9uKC4uLmFyZ3M6IGFueVtdKSB7XG5cdFx0XHRcdHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmdzKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcblx0XHRcdFx0cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpO1xuXHRcdFx0fSlcblx0KTtcbn1cblxuQFVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXCIpXG5jbGFzcyBBcHBTdGF0ZUhhbmRsZXIgZXh0ZW5kcyBCYXNlT2JqZWN0IHtcblx0cHVibGljIHNJZDogc3RyaW5nO1xuXHRwdWJsaWMgb0FwcENvbXBvbmVudDogYW55OyAvLyBBcHBDb21wb25lbnRcblx0cHVibGljIGJOb1JvdXRlQ2hhbmdlOiBib29sZWFuO1xuXHRwcml2YXRlIF9tQ3VycmVudEFwcFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cdGNvbnN0cnVjdG9yKG9BcHBDb21wb25lbnQ6IGFueSkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5vQXBwQ29tcG9uZW50ID0gb0FwcENvbXBvbmVudDtcblx0XHR0aGlzLnNJZCA9IG9BcHBDb21wb25lbnQuZ2V0SWQoKSArIFwiL0FwcFN0YXRlSGFuZGxlclwiO1xuXG5cdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdExvZy5pbmZvKFwiQVBQU1RBVEUgOiBBcHBzdGF0ZSBoYW5kbGVyIGluaXRpYWxpemVkXCIpO1xuXHR9XG5cdGdldElkKCkge1xuXHRcdHJldHVybiB0aGlzLnNJZDtcblx0fVxuXHQvKipcblx0ICogQ3JlYXRlcy91cGRhdGVzIHRoZSBhcHBzdGF0ZS5cblx0ICpcblx0ICogQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSByZXNvbHZpbmcgdGhlIHN0b3JlZCBkYXRhXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0Y3JlYXRlQXBwU3RhdGUoKSB7XG5cdFx0aWYgKEJ1c3lMb2NrZXIuaXNMb2NrZWQodGhpcykpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKSxcblx0XHRcdG9Sb3V0ZXJQcm94eSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb3V0ZXJQcm94eSgpLFxuXHRcdFx0c0hhc2ggPSBvUm91dGVyUHJveHkuZ2V0SGFzaCgpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCksXG5cdFx0XHRiSXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKHRoaXMub0FwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSk7XG5cblx0XHRpZiAoIW9Db250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KFwidmlld1N0YXRlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG5vdCBhdmFpbGFibGUgZm9yIGNvbnRyb2xsZXI6IFwiICsgb0NvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkpO1xuXHRcdH1cblxuXHRcdHJldHVybiBvQ29udHJvbGxlci52aWV3U3RhdGUucmV0cmlldmVWaWV3U3RhdGUoKS50aGVuKChtSW5uZXJBcHBTdGF0ZTogYW55KSA9PiB7XG5cdFx0XHRjb25zdCBvU3RvcmVEYXRhID0geyBhcHBTdGF0ZTogbUlubmVyQXBwU3RhdGUgfTtcblx0XHRcdGlmIChtSW5uZXJBcHBTdGF0ZSAmJiAhZGVlcEVxdWFsKHRoaXMuX21DdXJyZW50QXBwU3RhdGUsIG1Jbm5lckFwcFN0YXRlKSkge1xuXHRcdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlID0gbUlubmVyQXBwU3RhdGU7XG5cdFx0XHRcdGNvbnN0IG9BcHBTdGF0ZSA9IG9OYXZpZ2F0aW9uU2VydmljZS5zdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG9TdG9yZURhdGEsIHRydWUpO1xuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBBcHBzdGF0ZSBzdG9yZWRcIik7XG5cdFx0XHRcdGNvbnN0IHNBcHBTdGF0ZUtleSA9IG9BcHBTdGF0ZS5hcHBTdGF0ZUtleTtcblx0XHRcdFx0Y29uc3Qgc05ld0hhc2ggPSBvTmF2aWdhdGlvblNlcnZpY2UucmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0hhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdFx0XHRcdGlmIChzTmV3SGFzaCAhPT0gc0hhc2gpIHtcblx0XHRcdFx0XHRvUm91dGVyUHJveHkubmF2VG9IYXNoKHNOZXdIYXNoLCBudWxsLCBudWxsLCBudWxsLCAhYklzU3RpY2t5TW9kZSk7XG5cdFx0XHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogbmF2VG9IYXNoXCIpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG9TdG9yZURhdGE7XG5cdFx0fSk7XG5cdH1cblxuXHRfY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGE6IGFueSwgc05hdlR5cGU6IGFueSkge1xuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBvQXBwRGF0YSwge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudERlZmF1bHRzOiBvQXBwRGF0YS5vRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdHNlbGVjdGlvblZhcmlhbnQ6IG9BcHBEYXRhLm9TZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0cmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6ICFvQXBwRGF0YS5iTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5LFxuXHRcdFx0bmF2aWdhdGlvblR5cGU6IHNOYXZUeXBlXG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQXBwbGllcyBhbiBhcHBzdGF0ZSBieSBmZXRjaGluZyBhcHBkYXRhIGFuZCBwYXNzaW5nIGl0IHRvIF9hcHBseUFwcHN0YXRlVG9QYWdlLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQHN0YXRpY1xuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgZm9yIGFzeW5jIGhhbmRsaW5nXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiovXG5cdGFwcGx5QXBwU3RhdGUoKSB7XG5cdFx0aWYgKHRoaXMub0FwcENvbXBvbmVudC5nZXRNb2RlbChcImludGVybmFsXCIpLmdldFByb3BlcnR5KFwiL3VpQWRhcHRhdGlvblwiKSB8fCBCdXN5TG9ja2VyLmlzTG9ja2VkKHRoaXMpKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzKTtcblx0XHQvLyBEb25lIGZvciBidXN5IGluZGljYXRvclxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKSk7XG5cblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKTtcblx0XHQvLyBUT0RPIG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSBzaG91bGQgcmV0dXJuIEVTNiBwcm9taXNlIGluc3RlYWQgalF1ZXJ5LnByb21pc2Vcblx0XHRyZXR1cm4gX3RvRVM2UHJvbWlzZShvTmF2aWdhdGlvblNlcnZpY2UucGFyc2VOYXZpZ2F0aW9uKCkpXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24oYUVycm9yRGF0YTogYW55KSB7XG5cdFx0XHRcdGlmICghYUVycm9yRGF0YSkge1xuXHRcdFx0XHRcdGFFcnJvckRhdGEgPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRMb2cud2FybmluZyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGZhaWxlZFwiLCBhRXJyb3JEYXRhWzBdKTtcblx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQvKiBhcHAgZGF0YSAqL1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0YUVycm9yRGF0YVsxXSxcblx0XHRcdFx0XHRhRXJyb3JEYXRhWzJdXG5cdFx0XHRcdF07XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGFSZXN1bHRzOiBhbnkpID0+IHtcblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogUGFyc2UgTmF2aWdhdGlvbiBkb25lXCIpO1xuXG5cdFx0XHRcdC8vIGFSZXN1bHRzWzFdID0+IG9TdGFydHVwUGFyYW1ldGVycyAobm90IGV2YWx1YXRlZClcblx0XHRcdFx0Y29uc3Qgb0FwcERhdGEgPSBhUmVzdWx0c1swXSB8fCB7fSxcblx0XHRcdFx0XHRzTmF2VHlwZSA9IGFSZXN1bHRzWzJdIHx8IE5hdlR5cGUuaW5pdGlhbCxcblx0XHRcdFx0XHRvUm9vdENvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCk7XG5cblx0XHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IHNOYXZUeXBlID09PSBOYXZUeXBlLmlBcHBTdGF0ZSA/IG9BcHBEYXRhICYmIG9BcHBEYXRhLmFwcFN0YXRlIDogdW5kZWZpbmVkO1xuXG5cdFx0XHRcdGlmICghb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcInZpZXdTdGF0ZSBleHRlbnNpb24gcmVxdWlyZWQgZm9yIGNvbnRyb2xsZXIgXCIgKyBvUm9vdENvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIG9Sb290Q29udHJvbGxlci52aWV3U3RhdGVcblx0XHRcdFx0XHQuYXBwbHlWaWV3U3RhdGUodGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSwgdGhpcy5fY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGEsIHNOYXZUeXBlKSlcblx0XHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24ob0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0XHRcdExvZy5lcnJvcihcImFwcFN0YXRlIGNvdWxkIG5vdCBiZSBhcHBsaWVkXCIsIG9FcnJvcik7XG5cdFx0XHRcdFx0XHR0aHJvdyBvRXJyb3I7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmZpbmFsbHkoKCkgPT4ge1xuXHRcdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzKTtcblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkpO1xuXHRcdFx0fSk7XG5cdH1cblx0LyoqXG5cdCAqIFRvIGNoZWNrIGlzIHJvdXRlIGlzIGNoYW5nZWQgYnkgY2hhbmdlIGluIHRoZSBpQVBQU3RhdGUuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKiovXG5cdGNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAoKSB7XG5cdFx0cmV0dXJuIHRoaXMuYk5vUm91dGVDaGFuZ2U7XG5cdH1cblx0LyoqXG5cdCAqIFJlc2V0IHRoZSByb3V0ZSBjaGFuZ2VkIGJ5IGlBUFBTdGF0ZS5cblx0ICoqL1xuXHRyZXNldFJvdXRlQ2hhbmdlZEJ5SUFwcCgpIHtcblx0XHRpZiAodGhpcy5iTm9Sb3V0ZUNoYW5nZSkge1xuXHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdH1cblx0fVxuXHRfaXNMaXN0QmFzZWRDb21wb25lbnQob0NvbXBvbmVudDogYW55KSB7XG5cdFx0cmV0dXJuIG9Db21wb25lbnQuaXNBKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0Q29tcG9uZW50XCIpO1xuXHR9XG59XG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCBBcHBTdGF0ZUhhbmRsZXI7XG4iXX0=
|
|
@@ -1,65 +1,89 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
5
4
|
*/
|
|
6
|
-
sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/CommonUtils"], function(Controller, CommonUtils) {
|
|
7
|
-
|
|
5
|
+
sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/mvc/ControllerMetadata"], function (Controller, CommonUtils, ClassSupport, ControllerMetadata) {
|
|
6
|
+
"use strict";
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
* @class Internal base controller class for SAP Fiori elements application.
|
|
11
|
-
*
|
|
12
|
-
* If you want to extend a base controller for your custom page, please use for sap.fe.core.PageController.
|
|
13
|
-
*
|
|
14
|
-
* @hideconstructor
|
|
15
|
-
* @public
|
|
16
|
-
* @name sap.fe.core.BaseController
|
|
17
|
-
* @since 1.90.0
|
|
18
|
-
*/
|
|
19
|
-
return Controller.extend("sap.fe.core.BaseController", {
|
|
20
|
-
/**
|
|
21
|
-
* Returns the current app component.
|
|
22
|
-
*
|
|
23
|
-
* @returns {sap.fe.core.AppComponent} The app component or, if not found, null
|
|
24
|
-
* @alias sap.fe.core.BaseController#getAppComponent
|
|
25
|
-
* @public
|
|
26
|
-
* @since 1.91.0
|
|
27
|
-
*/
|
|
28
|
-
getAppComponent: function() {
|
|
29
|
-
if (!this._oAppComponent) {
|
|
30
|
-
this._oAppComponent = CommonUtils.getAppComponent(this.getView());
|
|
31
|
-
}
|
|
32
|
-
return this._oAppComponent;
|
|
33
|
-
},
|
|
8
|
+
var _dec, _class, _class2;
|
|
34
9
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
* @public
|
|
38
|
-
* @param {string} sName The model name
|
|
39
|
-
* @returns {sap.ui.model.Model} The model instance
|
|
40
|
-
*/
|
|
41
|
-
getModel: function(sName) {
|
|
42
|
-
return this.getView().getModel(sName);
|
|
43
|
-
},
|
|
10
|
+
var UI5Class = ClassSupport.UI5Class;
|
|
11
|
+
var Public = ClassSupport.Public;
|
|
44
12
|
|
|
45
|
-
|
|
46
|
-
* Convenience method for setting the view model in every controller of the application.
|
|
47
|
-
* @public
|
|
48
|
-
* @param {sap.ui.model.Model} oModel The model instance
|
|
49
|
-
* @param {string} sName The model name
|
|
50
|
-
* @returns {sap.ui.mvc.View} The view instance
|
|
51
|
-
*/
|
|
52
|
-
setModel: function(oModel, sName) {
|
|
53
|
-
return this.getView().setModel(oModel, sName);
|
|
54
|
-
},
|
|
13
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
55
14
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
15
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
16
|
+
|
|
17
|
+
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Internal base controller class for SAP Fiori elements application.
|
|
21
|
+
*
|
|
22
|
+
* If you want to extend a base controller for your custom page, please use for sap.fe.core.PageController.
|
|
23
|
+
*
|
|
24
|
+
* @hideconstructor
|
|
25
|
+
* @public
|
|
26
|
+
* @name sap.fe.core.BaseController
|
|
27
|
+
* @since 1.90.0
|
|
28
|
+
*/
|
|
29
|
+
var BaseController = (_dec = UI5Class("sap.fe.core.BaseController", ControllerMetadata, {}), _dec(_class = (_class2 = /*#__PURE__*/function (_Controller) {
|
|
30
|
+
_inherits(BaseController, _Controller);
|
|
31
|
+
|
|
32
|
+
function BaseController() {
|
|
33
|
+
return _Controller.apply(this, arguments) || this;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
var _proto = BaseController.prototype;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Returns the current app component.
|
|
40
|
+
*
|
|
41
|
+
* @returns {sap.fe.core.AppComponent} The app component or, if not found, null
|
|
42
|
+
* @alias sap.fe.core.BaseController#getAppComponent
|
|
43
|
+
* @public
|
|
44
|
+
* @since 1.91.0
|
|
45
|
+
*/
|
|
46
|
+
_proto.getAppComponent = function getAppComponent() {
|
|
47
|
+
if (!this._oAppComponent) {
|
|
48
|
+
this._oAppComponent = CommonUtils.getAppComponent(this.getView());
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return this._oAppComponent;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Convenience method provided by SAP Fiori elements to enable applications to include the view model by name into each controller.
|
|
55
|
+
* @public
|
|
56
|
+
* @param {string} sName The model name
|
|
57
|
+
* @returns {sap.ui.model.Model} The model instance
|
|
58
|
+
*/
|
|
59
|
+
;
|
|
60
|
+
|
|
61
|
+
_proto.getModel = function getModel(sName) {
|
|
62
|
+
return this.getView().getModel(sName);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Convenience method for setting the view model in every controller of the application.
|
|
66
|
+
* @public
|
|
67
|
+
* @param {sap.ui.model.Model} oModel The model instance
|
|
68
|
+
* @param {string} sName The model name
|
|
69
|
+
* @returns {sap.ui.mvc.View} The view instance
|
|
70
|
+
*/
|
|
71
|
+
;
|
|
72
|
+
|
|
73
|
+
_proto.setModel = function setModel(oModel, sName) {
|
|
74
|
+
return this.getView().setModel(oModel, sName);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
_proto.getResourceBundle = function getResourceBundle(sI18nModelName) {
|
|
78
|
+
if (!sI18nModelName) {
|
|
79
|
+
sI18nModelName = "i18n";
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return this.getAppComponent().getModel(sI18nModelName).getResourceBundle();
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
return BaseController;
|
|
86
|
+
}(Controller), (_applyDecoratedDescriptor(_class2.prototype, "getAppComponent", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "getAppComponent"), _class2.prototype)), _class2)) || _class);
|
|
87
|
+
return BaseController;
|
|
88
|
+
}, false);
|
|
89
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhc2VDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIkJhc2VDb250cm9sbGVyIiwiVUk1Q2xhc3MiLCJDb250cm9sbGVyTWV0YWRhdGEiLCJnZXRBcHBDb21wb25lbnQiLCJfb0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0VmlldyIsImdldE1vZGVsIiwic05hbWUiLCJzZXRNb2RlbCIsIm9Nb2RlbCIsImdldFJlc291cmNlQnVuZGxlIiwic0kxOG5Nb2RlbE5hbWUiLCJDb250cm9sbGVyIiwiUHVibGljIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUVNQSxjLFdBRExDLFFBQVEsQ0FBQyw0QkFBRCxFQUErQkMsa0JBQS9CLEVBQW1ELEVBQW5ELEM7Ozs7Ozs7OztBQUdSO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7V0FFQ0MsZSxHQURBLDJCQUNnQztBQUMvQixVQUFJLENBQUMsS0FBS0MsY0FBVixFQUEwQjtBQUN6QixhQUFLQSxjQUFMLEdBQXNCQyxXQUFXLENBQUNGLGVBQVosQ0FBNEIsS0FBS0csT0FBTCxFQUE1QixDQUF0QjtBQUNBOztBQUNELGFBQU8sS0FBS0YsY0FBWjtBQUNBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ0csUSxHQUFBLGtCQUFTQyxLQUFULEVBQXlCO0FBQ3hCLGFBQU8sS0FBS0YsT0FBTCxHQUFlQyxRQUFmLENBQXdCQyxLQUF4QixDQUFQO0FBQ0E7QUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0NDLFEsR0FBQSxrQkFBU0MsTUFBVCxFQUF3QkYsS0FBeEIsRUFBNkM7QUFDNUMsYUFBTyxLQUFLRixPQUFMLEdBQWVHLFFBQWYsQ0FBd0JDLE1BQXhCLEVBQWdDRixLQUFoQyxDQUFQO0FBQ0EsSzs7V0FFREcsaUIsR0FBQSwyQkFBa0JDLGNBQWxCLEVBQXVDO0FBQ3RDLFVBQUksQ0FBQ0EsY0FBTCxFQUFxQjtBQUNwQkEsUUFBQUEsY0FBYyxHQUFHLE1BQWpCO0FBQ0E7O0FBQ0QsYUFBUSxLQUFLVCxlQUFMLEdBQXVCSSxRQUF2QixDQUFnQ0ssY0FBaEMsQ0FBRCxDQUFtRUQsaUJBQW5FLEVBQVA7QUFDQSxLOzs7SUE1QzJCRSxVLHFFQVUzQkMsTTtTQXFDYWQsYyIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbnRyb2xsZXIgZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgeyBQdWJsaWMsIFVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29udHJvbGxlck1ldGFkYXRhIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlck1ldGFkYXRhXCI7XG5pbXBvcnQgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvcmVzb3VyY2UvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9Nb2RlbFwiO1xuXG4vKipcbiAqIEludGVybmFsIGJhc2UgY29udHJvbGxlciBjbGFzcyBmb3IgU0FQIEZpb3JpIGVsZW1lbnRzIGFwcGxpY2F0aW9uLlxuICpcbiAqIElmIHlvdSB3YW50IHRvIGV4dGVuZCBhIGJhc2UgY29udHJvbGxlciBmb3IgeW91ciBjdXN0b20gcGFnZSwgcGxlYXNlIHVzZSBmb3Igc2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXIuXG4gKlxuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQHB1YmxpY1xuICogQG5hbWUgc2FwLmZlLmNvcmUuQmFzZUNvbnRyb2xsZXJcbiAqIEBzaW5jZSAxLjkwLjBcbiAqL1xuQFVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQmFzZUNvbnRyb2xsZXJcIiwgQ29udHJvbGxlck1ldGFkYXRhLCB7fSlcbmNsYXNzIEJhc2VDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlciB7XG5cdHByaXZhdGUgX29BcHBDb21wb25lbnQ/OiBBcHBDb21wb25lbnQ7XG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGFwcCBjb21wb25lbnQuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzYXAuZmUuY29yZS5BcHBDb21wb25lbnR9IFRoZSBhcHAgY29tcG9uZW50IG9yLCBpZiBub3QgZm91bmQsIG51bGxcblx0ICogQGFsaWFzIHNhcC5mZS5jb3JlLkJhc2VDb250cm9sbGVyI2dldEFwcENvbXBvbmVudFxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjkxLjBcblx0ICovXG5cdEBQdWJsaWNcblx0Z2V0QXBwQ29tcG9uZW50KCk6IEFwcENvbXBvbmVudCB7XG5cdFx0aWYgKCF0aGlzLl9vQXBwQ29tcG9uZW50KSB7XG5cdFx0XHR0aGlzLl9vQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuZ2V0VmlldygpKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX29BcHBDb21wb25lbnQgYXMgQXBwQ29tcG9uZW50O1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlbmllbmNlIG1ldGhvZCBwcm92aWRlZCBieSBTQVAgRmlvcmkgZWxlbWVudHMgdG8gZW5hYmxlIGFwcGxpY2F0aW9ucyB0byBpbmNsdWRlIHRoZSB2aWV3IG1vZGVsIGJ5IG5hbWUgaW50byBlYWNoIGNvbnRyb2xsZXIuXG5cdCAqIEBwdWJsaWNcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lIFRoZSBtb2RlbCBuYW1lXG5cdCAqIEByZXR1cm5zIHtzYXAudWkubW9kZWwuTW9kZWx9IFRoZSBtb2RlbCBpbnN0YW5jZVxuXHQgKi9cblx0Z2V0TW9kZWwoc05hbWU/OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRWaWV3KCkuZ2V0TW9kZWwoc05hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3Igc2V0dGluZyB0aGUgdmlldyBtb2RlbCBpbiBldmVyeSBjb250cm9sbGVyIG9mIHRoZSBhcHBsaWNhdGlvbi5cblx0ICogQHB1YmxpY1xuXHQgKiBAcGFyYW0ge3NhcC51aS5tb2RlbC5Nb2RlbH0gb01vZGVsIFRoZSBtb2RlbCBpbnN0YW5jZVxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc05hbWUgVGhlIG1vZGVsIG5hbWVcblx0ICogQHJldHVybnMge3NhcC51aS5tdmMuVmlld30gVGhlIHZpZXcgaW5zdGFuY2Vcblx0ICovXG5cdHNldE1vZGVsKG9Nb2RlbDogTW9kZWwsIHNOYW1lOiBzdHJpbmcpOiBWaWV3IHtcblx0XHRyZXR1cm4gdGhpcy5nZXRWaWV3KCkuc2V0TW9kZWwob01vZGVsLCBzTmFtZSk7XG5cdH1cblxuXHRnZXRSZXNvdXJjZUJ1bmRsZShzSTE4bk1vZGVsTmFtZTogYW55KSB7XG5cdFx0aWYgKCFzSTE4bk1vZGVsTmFtZSkge1xuXHRcdFx0c0kxOG5Nb2RlbE5hbWUgPSBcImkxOG5cIjtcblx0XHR9XG5cdFx0cmV0dXJuICh0aGlzLmdldEFwcENvbXBvbmVudCgpLmdldE1vZGVsKHNJMThuTW9kZWxOYW1lKSBhcyBSZXNvdXJjZU1vZGVsKS5nZXRSZXNvdXJjZUJ1bmRsZSgpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJhc2VDb250cm9sbGVyO1xuIl19
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import Controller from "sap/ui/core/mvc/Controller";
|
|
2
|
+
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
3
|
+
import { Public, UI5Class } from "sap/fe/core/helpers/ClassSupport";
|
|
4
|
+
import ControllerMetadata from "sap/ui/core/mvc/ControllerMetadata";
|
|
5
|
+
import AppComponent from "sap/fe/core/AppComponent";
|
|
6
|
+
import ResourceModel from "sap/ui/model/resource/ResourceModel";
|
|
7
|
+
import View from "sap/ui/core/mvc/View";
|
|
8
|
+
import Model from "sap/ui/model/Model";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Internal base controller class for SAP Fiori elements application.
|
|
12
|
+
*
|
|
13
|
+
* If you want to extend a base controller for your custom page, please use for sap.fe.core.PageController.
|
|
14
|
+
*
|
|
15
|
+
* @hideconstructor
|
|
16
|
+
* @public
|
|
17
|
+
* @name sap.fe.core.BaseController
|
|
18
|
+
* @since 1.90.0
|
|
19
|
+
*/
|
|
20
|
+
@UI5Class("sap.fe.core.BaseController", ControllerMetadata, {})
|
|
21
|
+
class BaseController extends Controller {
|
|
22
|
+
private _oAppComponent?: AppComponent;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the current app component.
|
|
25
|
+
*
|
|
26
|
+
* @returns {sap.fe.core.AppComponent} The app component or, if not found, null
|
|
27
|
+
* @alias sap.fe.core.BaseController#getAppComponent
|
|
28
|
+
* @public
|
|
29
|
+
* @since 1.91.0
|
|
30
|
+
*/
|
|
31
|
+
@Public
|
|
32
|
+
getAppComponent(): AppComponent {
|
|
33
|
+
if (!this._oAppComponent) {
|
|
34
|
+
this._oAppComponent = CommonUtils.getAppComponent(this.getView());
|
|
35
|
+
}
|
|
36
|
+
return this._oAppComponent as AppComponent;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Convenience method provided by SAP Fiori elements to enable applications to include the view model by name into each controller.
|
|
41
|
+
* @public
|
|
42
|
+
* @param {string} sName The model name
|
|
43
|
+
* @returns {sap.ui.model.Model} The model instance
|
|
44
|
+
*/
|
|
45
|
+
getModel(sName?: string) {
|
|
46
|
+
return this.getView().getModel(sName);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Convenience method for setting the view model in every controller of the application.
|
|
51
|
+
* @public
|
|
52
|
+
* @param {sap.ui.model.Model} oModel The model instance
|
|
53
|
+
* @param {string} sName The model name
|
|
54
|
+
* @returns {sap.ui.mvc.View} The view instance
|
|
55
|
+
*/
|
|
56
|
+
setModel(oModel: Model, sName: string): View {
|
|
57
|
+
return this.getView().setModel(oModel, sName);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
getResourceBundle(sI18nModelName: any) {
|
|
61
|
+
if (!sI18nModelName) {
|
|
62
|
+
sI18nModelName = "i18n";
|
|
63
|
+
}
|
|
64
|
+
return (this.getAppComponent().getModel(sI18nModelName) as ResourceModel).getResourceBundle();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export default BaseController;
|