@sapui5/sap.fe.core 1.100.0 → 1.101.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 -4
- package/src/sap/fe/core/.library +2 -3
- package/src/sap/fe/core/AnnotationHelper.js +43 -24
- package/src/sap/fe/core/AnnotationHelper.ts +43 -37
- package/src/sap/fe/core/AppComponent.js +20 -27
- package/src/sap/fe/core/AppComponent.ts +19 -25
- package/src/sap/fe/core/AppStateHandler.js +5 -5
- package/src/sap/fe/core/AppStateHandler.ts +2 -2
- package/src/sap/fe/core/BaseController.js +9 -9
- package/src/sap/fe/core/BaseController.ts +3 -4
- package/src/sap/fe/core/CommonUtils.js +74 -17
- package/src/sap/fe/core/CommonUtils.ts +181 -110
- package/src/sap/fe/core/ExtensionAPI.js +11 -10
- package/src/sap/fe/core/ExtensionAPI.ts +22 -30
- package/src/sap/fe/core/PageController.js +12 -11
- package/src/sap/fe/core/PageController.ts +34 -34
- package/src/sap/fe/core/RouterProxy.js +36 -24
- package/src/sap/fe/core/RouterProxy.ts +36 -22
- package/src/sap/fe/core/TemplateComponent.js +193 -118
- package/src/sap/fe/core/TemplateComponent.ts +105 -117
- package/src/sap/fe/core/TemplateModel.js +6 -8
- package/src/sap/fe/core/TemplateModel.ts +2 -2
- package/src/sap/fe/core/TransactionHelper.js +33 -18
- package/src/sap/fe/core/TransactionHelper.ts +172 -153
- package/src/sap/fe/core/actions/collaboration/ActivitySync.js +31 -17
- package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +52 -45
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +16 -6
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +13 -3
- package/src/sap/fe/core/actions/collaboration/Manage.js +9 -7
- package/src/sap/fe/core/actions/collaboration/Manage.ts +33 -31
- package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +53 -56
- package/src/sap/fe/core/actions/draft.js +308 -166
- package/src/sap/fe/core/actions/draft.ts +177 -74
- package/src/sap/fe/core/actions/messageHandling.js +25 -13
- package/src/sap/fe/core/actions/messageHandling.ts +49 -39
- package/src/sap/fe/core/actions/operations.js +4 -4
- package/src/sap/fe/core/actions/operations.ts +3 -2
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +60 -0
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +37 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +165 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +178 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +707 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +628 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +436 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +431 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +506 -245
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +395 -275
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +11 -11
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -7
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +15 -17
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +98 -96
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +15 -15
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +60 -53
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +94 -42
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +114 -91
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +14 -14
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -11
- package/src/sap/fe/core/controllerextensions/MassEdit.js +12 -12
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +8 -9
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +13 -25
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +18 -28
- package/src/sap/fe/core/controllerextensions/PageReady.js +25 -23
- package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -47
- package/src/sap/fe/core/controllerextensions/Paginator.js +13 -13
- package/src/sap/fe/core/controllerextensions/Paginator.ts +24 -18
- package/src/sap/fe/core/controllerextensions/Placeholder.js +10 -10
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
- package/src/sap/fe/core/controllerextensions/Routing.js +11 -11
- package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
- package/src/sap/fe/core/controllerextensions/Share.js +16 -16
- package/src/sap/fe/core/controllerextensions/Share.ts +32 -32
- package/src/sap/fe/core/controllerextensions/SideEffects.js +14 -14
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +62 -63
- package/src/sap/fe/core/controllerextensions/ViewState.js +17 -31
- package/src/sap/fe/core/controllerextensions/ViewState.ts +93 -102
- package/src/sap/fe/core/controls/Any.js +28 -0
- package/src/sap/fe/core/controls/Any.ts +30 -0
- package/src/sap/fe/core/controls/CommandExecution.js +38 -15
- package/src/sap/fe/core/controls/CommandExecution.ts +20 -20
- package/src/sap/fe/core/controls/ConditionalWrapper.js +136 -65
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +49 -58
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +366 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +278 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +73 -36
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +22 -32
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +44 -5
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +116 -66
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +121 -67
- package/src/sap/fe/core/controls/FieldWrapper.js +171 -87
- package/src/sap/fe/core/controls/FieldWrapper.ts +69 -80
- package/src/sap/fe/core/controls/FileWrapper.js +313 -0
- package/src/sap/fe/core/controls/FileWrapper.ts +169 -0
- package/src/sap/fe/core/controls/FilterBar.js +154 -119
- package/src/sap/fe/core/controls/FilterBar.ts +128 -123
- package/src/sap/fe/core/controls/FormElementWrapper.js +92 -37
- package/src/sap/fe/core/controls/FormElementWrapper.ts +32 -35
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +111 -89
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +86 -82
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -193
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +211 -204
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +152 -116
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +105 -105
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +2 -2
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +37 -42
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +7 -6
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +15 -14
- package/src/sap/fe/core/converters/ManifestSettings.js +2 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +5 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +1 -2
- package/src/sap/fe/core/converters/annotations/DataField.ts +3 -4
- package/src/sap/fe/core/converters/controls/Common/Action.js +10 -10
- package/src/sap/fe/core/converters/controls/Common/Action.ts +20 -19
- package/src/sap/fe/core/converters/controls/Common/Chart.js +8 -8
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +12 -11
- package/src/sap/fe/core/converters/controls/Common/Form.js +5 -5
- package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +2 -3
- package/src/sap/fe/core/converters/controls/Common/Table.js +245 -112
- package/src/sap/fe/core/converters/controls/Common/Table.ts +305 -193
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +5 -5
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +4 -7
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +72 -43
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +134 -100
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +6 -6
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +20 -18
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +5 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +4 -1
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +27 -24
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +49 -40
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +33 -22
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +77 -62
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +5 -5
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +3 -7
- package/src/sap/fe/core/formatters/KPIFormatter.js +3 -12
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -2
- package/src/sap/fe/core/formatters/TableFormatter.js +2 -2
- package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js +4 -4
- package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -7
- package/src/sap/fe/core/fpm/Component.js +46 -17
- package/src/sap/fe/core/fpm/Component.ts +11 -16
- package/src/sap/fe/core/helpers/AppStartupHelper.js +4 -4
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +3 -3
- package/src/sap/fe/core/helpers/ClassSupport.js +273 -256
- package/src/sap/fe/core/helpers/ClassSupport.ts +314 -237
- package/src/sap/fe/core/helpers/MassEditHelper.js +173 -39
- package/src/sap/fe/core/helpers/MassEditHelper.ts +236 -132
- package/src/sap/fe/core/helpers/ModelHelper.js +29 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
- package/src/sap/fe/core/helpers/PasteHelper.js +4 -4
- package/src/sap/fe/core/helpers/PasteHelper.ts +4 -3
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -3
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +3 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -7
- package/src/sap/fe/core/helpers/StableIdHelper.ts +0 -4
- package/src/sap/fe/core/jsx-runtime/jsx.js +35 -5
- package/src/sap/fe/core/jsx-runtime/jsx.ts +22 -8
- package/src/sap/fe/core/library.js +4 -5
- package/src/sap/fe/core/library.ts +17 -17
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -3
- package/src/sap/fe/core/messagebundle.properties +23 -8
- package/src/sap/fe/core/messagebundle_ar.properties +2 -0
- package/src/sap/fe/core/messagebundle_bg.properties +2 -0
- package/src/sap/fe/core/messagebundle_ca.properties +2 -0
- package/src/sap/fe/core/messagebundle_cs.properties +2 -0
- package/src/sap/fe/core/messagebundle_cy.properties +5 -3
- package/src/sap/fe/core/messagebundle_da.properties +2 -0
- package/src/sap/fe/core/messagebundle_de.properties +2 -0
- package/src/sap/fe/core/messagebundle_el.properties +2 -0
- package/src/sap/fe/core/messagebundle_en.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +2 -0
- package/src/sap/fe/core/messagebundle_es.properties +2 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +2 -0
- package/src/sap/fe/core/messagebundle_et.properties +2 -0
- package/src/sap/fe/core/messagebundle_fi.properties +2 -0
- package/src/sap/fe/core/messagebundle_fr.properties +4 -2
- package/src/sap/fe/core/messagebundle_fr_CA.properties +5 -3
- package/src/sap/fe/core/messagebundle_hi.properties +2 -0
- package/src/sap/fe/core/messagebundle_hr.properties +5 -3
- package/src/sap/fe/core/messagebundle_hu.properties +2 -0
- package/src/sap/fe/core/messagebundle_id.properties +2 -0
- package/src/sap/fe/core/messagebundle_it.properties +2 -0
- package/src/sap/fe/core/messagebundle_iw.properties +2 -0
- package/src/sap/fe/core/messagebundle_ja.properties +2 -0
- package/src/sap/fe/core/messagebundle_kk.properties +2 -0
- package/src/sap/fe/core/messagebundle_ko.properties +2 -0
- package/src/sap/fe/core/messagebundle_lt.properties +2 -0
- package/src/sap/fe/core/messagebundle_lv.properties +5 -3
- package/src/sap/fe/core/messagebundle_ms.properties +2 -0
- package/src/sap/fe/core/messagebundle_nl.properties +2 -0
- package/src/sap/fe/core/messagebundle_no.properties +2 -0
- package/src/sap/fe/core/messagebundle_pl.properties +5 -3
- package/src/sap/fe/core/messagebundle_pt.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +2 -0
- package/src/sap/fe/core/messagebundle_ro.properties +5 -3
- package/src/sap/fe/core/messagebundle_ru.properties +5 -3
- package/src/sap/fe/core/messagebundle_sh.properties +2 -0
- package/src/sap/fe/core/messagebundle_sk.properties +2 -0
- package/src/sap/fe/core/messagebundle_sl.properties +2 -0
- package/src/sap/fe/core/messagebundle_sv.properties +3 -1
- package/src/sap/fe/core/messagebundle_th.properties +2 -0
- package/src/sap/fe/core/messagebundle_tr.properties +2 -0
- package/src/sap/fe/core/messagebundle_uk.properties +2 -0
- package/src/sap/fe/core/messagebundle_vi.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +5 -3
- package/src/sap/fe/core/messagebundle_zh_TW.properties +5 -3
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +4 -4
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +5 -5
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +1 -2
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +7 -7
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +6 -5
- package/src/sap/fe/core/services/NavigationServiceFactory.js +4 -4
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -4
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js +98 -62
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +51 -42
- package/src/sap/fe/core/services/ShellServicesFactory.js +69 -29
- package/src/sap/fe/core/services/ShellServicesFactory.ts +26 -29
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +8 -8
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +6 -17
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +43 -5
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +6 -3
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.ts +0 -3
- package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -9
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +32 -38
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +23 -3
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +26 -5
- package/src/sap/fe/core/templating/PropertyHelper.js +15 -1
- package/src/sap/fe/core/templating/PropertyHelper.ts +30 -23
- package/src/sap/fe/core/templating/UIFormatters.js +121 -21
- package/src/sap/fe/core/templating/UIFormatters.ts +134 -49
- package/src/sap/fe/core/type/Email.js +26 -8
- package/src/sap/fe/core/type/Email.ts +8 -7
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +0 -78
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +0 -65
|
@@ -2,115 +2,165 @@
|
|
|
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/base/Log", "sap/ui/
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/ui/core/Fragment", "sap/ui/core/util/XMLPreprocessor", "sap/ui/core/XMLTemplateProcessor", "sap/ui/model/json/JSONModel"], function (Log, Fragment, XMLPreprocessor, XMLTemplateProcessor, JSONModel) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
9
|
|
|
10
|
+
var DraftDataLossOptions;
|
|
11
|
+
|
|
12
|
+
(function (DraftDataLossOptions) {
|
|
13
|
+
DraftDataLossOptions["Save"] = "draftDataLossOptionSave";
|
|
14
|
+
DraftDataLossOptions["Keep"] = "draftDataLossOptionKeep";
|
|
15
|
+
DraftDataLossOptions["Discard"] = "draftDataLossOptionDiscard";
|
|
16
|
+
})(DraftDataLossOptions || (DraftDataLossOptions = {}));
|
|
17
|
+
|
|
10
18
|
var fnOnDataLossConfirmed;
|
|
11
19
|
var fnOnDataLossCancel;
|
|
12
20
|
|
|
13
|
-
function fnDataLossConfirmation(
|
|
14
|
-
|
|
15
|
-
|
|
21
|
+
function fnDataLossConfirmation(onDataLossOk, onDataLossCancel, controller, skipBindingToView) {
|
|
22
|
+
// Open the data loss popup and after processing the selected function finally call
|
|
23
|
+
// onDataLossConfirmed which resolves the promise and leads to processing of the originally
|
|
24
|
+
// triggered action like e.g. a back navigation
|
|
25
|
+
var dataLossPopup;
|
|
26
|
+
fnOnDataLossConfirmed = onDataLossOk;
|
|
16
27
|
fnOnDataLossCancel = onDataLossCancel;
|
|
17
|
-
var
|
|
18
|
-
var
|
|
28
|
+
var fragmentName = "sap.fe.core.controls.DataLossOrDraftDiscard.DataLossDraft";
|
|
29
|
+
var view = controller.getView();
|
|
19
30
|
var fragmentController = {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
})
|
|
31
|
+
onDataLossOk: function () {
|
|
32
|
+
var selectedKey = getSelectedKey(dataLossPopup);
|
|
33
|
+
|
|
34
|
+
if (selectedKey === DraftDataLossOptions.Save) {
|
|
35
|
+
saveDocument(controller).then(fnOnDataLossConfirmed).catch(function (error) {
|
|
36
|
+
Log.error("Error while saving document", error);
|
|
37
|
+
});
|
|
38
|
+
dataLossPopup.close();
|
|
39
|
+
} else if (selectedKey === DraftDataLossOptions.Keep) {
|
|
40
|
+
fnOnDataLossConfirmed();
|
|
41
|
+
dataLossPopup.close();
|
|
42
|
+
} else if (selectedKey === DraftDataLossOptions.Discard) {
|
|
43
|
+
discardDraft(controller, skipBindingToView).then(fnOnDataLossConfirmed).catch(function (error) {
|
|
44
|
+
Log.error("Error while discarding draft", error);
|
|
45
|
+
});
|
|
46
|
+
dataLossPopup.close();
|
|
47
|
+
}
|
|
29
48
|
},
|
|
30
49
|
onDataLossCancel: function () {
|
|
31
|
-
oDataLossPopup.close();
|
|
32
50
|
fnOnDataLossCancel();
|
|
51
|
+
dataLossPopup.close();
|
|
52
|
+
},
|
|
53
|
+
setDataLossPopup: function (dataLossPopup) {
|
|
54
|
+
controller.dataLossPopup = dataLossPopup;
|
|
33
55
|
}
|
|
34
56
|
};
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
var oThis = new JSONModel({
|
|
41
|
-
id: oView.getId()
|
|
42
|
-
}),
|
|
43
|
-
oPreprocessorSettings = {
|
|
57
|
+
var i18nModel = view.getModel("sap.fe.i18n");
|
|
58
|
+
var localThisModel = new JSONModel({}),
|
|
59
|
+
preprocessorSettings = {
|
|
44
60
|
bindingContexts: {
|
|
45
|
-
"this":
|
|
61
|
+
"this": localThisModel.createBindingContext("/")
|
|
46
62
|
},
|
|
47
63
|
models: {
|
|
48
|
-
"this":
|
|
49
|
-
"
|
|
64
|
+
"this": localThisModel,
|
|
65
|
+
"i18n": i18nModel
|
|
50
66
|
}
|
|
51
67
|
};
|
|
52
|
-
var oPopoverFragment = XMLTemplateProcessor.loadTemplate(sFragmentname, "fragment");
|
|
53
68
|
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
69
|
+
if (controller.dataLossPopup) {
|
|
70
|
+
dataLossPopup = controller.dataLossPopup;
|
|
71
|
+
dataLossPopup.open();
|
|
72
|
+
selectAndFocusFirstEntry(dataLossPopup);
|
|
57
73
|
} else {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
74
|
+
var dialogFragment = XMLTemplateProcessor.loadTemplate(fragmentName, "fragment");
|
|
75
|
+
Promise.resolve(XMLPreprocessor.process(dialogFragment, {
|
|
76
|
+
name: fragmentName
|
|
77
|
+
}, preprocessorSettings)).then(function (fragment) {
|
|
61
78
|
return Fragment.load({
|
|
62
|
-
definition:
|
|
79
|
+
definition: fragment,
|
|
63
80
|
controller: fragmentController
|
|
64
81
|
});
|
|
65
|
-
}).then(function (
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
fragmentController.setDataLossPopup(oDataLossPopup);
|
|
74
|
-
}).catch(function (oError) {
|
|
75
|
-
Log.error("Error while opening the Discard Dialog fragment", oError);
|
|
82
|
+
}).then(function (popup) {
|
|
83
|
+
dataLossPopup = popup;
|
|
84
|
+
view.addDependent(dataLossPopup);
|
|
85
|
+
dataLossPopup.open();
|
|
86
|
+
selectAndFocusFirstEntry(dataLossPopup);
|
|
87
|
+
fragmentController.setDataLossPopup(dataLossPopup);
|
|
88
|
+
}).catch(function (error) {
|
|
89
|
+
Log.error("Error while opening the Discard Dialog fragment", error);
|
|
76
90
|
});
|
|
77
91
|
}
|
|
78
92
|
}
|
|
79
93
|
|
|
80
|
-
function
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
var oRet = fnProcessFunction(oContext);
|
|
88
|
-
resolve(oRet);
|
|
94
|
+
function performAfterDiscardorKeepDraft(processFunctionOnDatalossOk, processFunctionOnDatalossCancel, controller, skipBindingToView) {
|
|
95
|
+
// Depending on if the user closed the data loss popup with Ok or Cancel,
|
|
96
|
+
// execute the provided follow-up function and resolve or reject the promise
|
|
97
|
+
return new Promise(function (resolve, reject) {
|
|
98
|
+
var dataLossPopupOk = function (context) {
|
|
99
|
+
var returnValue = processFunctionOnDatalossOk(context);
|
|
100
|
+
resolve(returnValue);
|
|
89
101
|
};
|
|
90
102
|
|
|
91
|
-
var
|
|
92
|
-
|
|
103
|
+
var dataLossPopupCancel = function () {
|
|
104
|
+
processFunctionOnDatalossCancel();
|
|
93
105
|
reject();
|
|
94
106
|
};
|
|
95
107
|
|
|
96
|
-
|
|
108
|
+
fnDataLossConfirmation(dataLossPopupOk, dataLossPopupCancel, controller, skipBindingToView);
|
|
97
109
|
});
|
|
98
|
-
return oRet;
|
|
99
110
|
}
|
|
100
111
|
|
|
101
112
|
_exports.performAfterDiscardorKeepDraft = performAfterDiscardorKeepDraft;
|
|
102
113
|
|
|
103
|
-
function discardDraft(
|
|
104
|
-
var
|
|
105
|
-
var
|
|
114
|
+
function discardDraft(controller, skipBindingToView) {
|
|
115
|
+
var context = controller.getView().getBindingContext();
|
|
116
|
+
var params = {
|
|
106
117
|
skipBackNavigation: true,
|
|
107
118
|
skipDiscardPopover: true,
|
|
108
|
-
skipBindingToView:
|
|
119
|
+
skipBindingToView: skipBindingToView !== undefined ? skipBindingToView : true
|
|
109
120
|
};
|
|
110
|
-
return
|
|
121
|
+
return controller.editFlow.cancelDocument(context, params);
|
|
111
122
|
}
|
|
112
123
|
|
|
113
124
|
_exports.discardDraft = discardDraft;
|
|
125
|
+
|
|
126
|
+
function saveDocument(controller) {
|
|
127
|
+
var context = controller.getView().getBindingContext(); // We check if we are on the OP and then call the internal _saveDocument from the OP controller
|
|
128
|
+
// since here some special handling is done for creationRow before editFlow.saveDocument is called.
|
|
129
|
+
// In case of a custom controller we directly call saveDocument from the editFlow
|
|
130
|
+
|
|
131
|
+
if (controller.isA("sap.fe.templates.ObjectPage.ObjectPageController")) {
|
|
132
|
+
return controller._saveDocument(context);
|
|
133
|
+
} else {
|
|
134
|
+
controller.editFlow.saveDocument(context);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
_exports.saveDocument = saveDocument;
|
|
139
|
+
|
|
140
|
+
function getSelectedKey(dataLossPopup) {
|
|
141
|
+
// For not using control IDs we introduced customData in the fragment and
|
|
142
|
+
// use it here for finding the correct list in the dialog and for
|
|
143
|
+
// determining the selected option from the list
|
|
144
|
+
var dataLossOptionsList = dataLossPopup.getContent().find(function (element) {
|
|
145
|
+
return element.data("listIdentifier") === "draftDataLossOptionsList";
|
|
146
|
+
});
|
|
147
|
+
return dataLossOptionsList.getSelectedItem().data("itemKey");
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
_exports.getSelectedKey = getSelectedKey;
|
|
151
|
+
|
|
152
|
+
function selectAndFocusFirstEntry(dataLossPopup) {
|
|
153
|
+
// For not using control IDs we introduced customData in the fragment and
|
|
154
|
+
// use it here for finding the correct list in the dialog.
|
|
155
|
+
var dataLossOptionsList = dataLossPopup.getContent().find(function (element) {
|
|
156
|
+
return element.data("listIdentifier") === "draftDataLossOptionsList";
|
|
157
|
+
});
|
|
158
|
+
var firstListItemOption = dataLossOptionsList.getItems()[0];
|
|
159
|
+
dataLossOptionsList.setSelectedItem(firstListItemOption);
|
|
160
|
+
firstListItemOption.focus();
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
_exports.selectAndFocusFirstEntry = selectAndFocusFirstEntry;
|
|
114
164
|
return _exports;
|
|
115
165
|
}, false);
|
|
116
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyLnRzIl0sIm5hbWVzIjpbImZuT25EYXRhTG9zc0NvbmZpcm1lZCIsImZuT25EYXRhTG9zc0NhbmNlbCIsImZuRGF0YUxvc3NDb25maXJtYXRpb24iLCJvbkRhdGFMb3NzQ29uZmlybWVkIiwib25EYXRhTG9zc0NhbmNlbCIsIm9Db250cm9sbGVyIiwiYlNraXBCaW5kaW5nVG9WaWV3Iiwib0RhdGFMb3NzUG9wdXAiLCJzRnJhZ21lbnRuYW1lIiwib1ZpZXciLCJnZXRWaWV3IiwiZnJhZ21lbnRDb250cm9sbGVyIiwib25EYXRhTG9zc0tlZXBEcmFmdCIsImNsb3NlIiwib25EYXRhTG9zc0Rpc2NhcmREcmFmdCIsImRpc2NhcmREcmFmdCIsInRoZW4iLCJjYXRjaCIsIm9FcnJvciIsIkxvZyIsImVycm9yIiwic2V0RGF0YUxvc3NQb3B1cCIsImRhdGFMb3NzUG9wdXAiLCJvVGhpcyIsIkpTT05Nb2RlbCIsImlkIiwiZ2V0SWQiLCJvUHJlcHJvY2Vzc29yU2V0dGluZ3MiLCJiaW5kaW5nQ29udGV4dHMiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsIm1vZGVscyIsImdldE1vZGVsIiwib1BvcG92ZXJGcmFnbWVudCIsIlhNTFRlbXBsYXRlUHJvY2Vzc29yIiwibG9hZFRlbXBsYXRlIiwib3BlbiIsIlByb21pc2UiLCJyZXNvbHZlIiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsIm5hbWUiLCJvRnJhZ21lbnQiLCJGcmFnbWVudCIsImxvYWQiLCJkZWZpbml0aW9uIiwiY29udHJvbGxlciIsIm9Qb3B1cCIsImFkZERlcGVuZGVudCIsIm9Nb2RlbCIsInNldE1vZGVsIiwib2kxOG5Nb2RlbCIsImZuUGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0SW1wbCIsImZuUG9zaXRpdmUiLCJmbk5lZ2F0aXZlIiwicGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0IiwiZm5Qcm9jZXNzRnVuY3Rpb24iLCJmbkNhbmNlbEZ1bmN0aW9uIiwib1JldCIsInJlamVjdCIsIm9Db250ZXh0Iiwib1BhcmFtc0NvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsIm1QYXJhbXMiLCJza2lwQmFja05hdmlnYXRpb24iLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJza2lwQmluZGluZ1RvVmlldyIsInVuZGVmaW5lZCIsImVkaXRGbG93IiwiY2FuY2VsRG9jdW1lbnQiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztBQUtBLE1BQUlBLHFCQUFKO0FBQ0EsTUFBSUMsa0JBQUo7O0FBQ0EsV0FBU0Msc0JBQVQsQ0FBZ0NDLG1CQUFoQyxFQUEwREMsZ0JBQTFELEVBQWlGQyxXQUFqRixFQUFtR0Msa0JBQW5HLEVBQTRIO0FBQzNILFFBQUlDLGNBQUo7QUFDQVAsSUFBQUEscUJBQXFCLEdBQUdHLG1CQUF4QjtBQUNBRixJQUFBQSxrQkFBa0IsR0FBR0csZ0JBQXJCO0FBQ0EsUUFBTUksYUFBYSxHQUFHLDJEQUF0QjtBQUNBLFFBQU1DLEtBQUssR0FBR0osV0FBVyxDQUFDSyxPQUFaLEVBQWQ7QUFDQSxRQUFNQyxrQkFBdUIsR0FBRztBQUMvQkMsTUFBQUEsbUJBQW1CLEVBQUUsWUFBVztBQUMvQkwsUUFBQUEsY0FBYyxDQUFDTSxLQUFmO0FBQ0FiLFFBQUFBLHFCQUFxQjtBQUNyQixPQUo4QjtBQUsvQmMsTUFBQUEsc0JBQXNCLEVBQUUsWUFBVztBQUNsQ1AsUUFBQUEsY0FBYyxDQUFDTSxLQUFmO0FBQ0FFLFFBQUFBLFlBQVksQ0FBQ1YsV0FBRCxFQUFjQyxrQkFBZCxDQUFaLENBQ0VVLElBREYsQ0FDT2hCLHFCQURQLEVBRUVpQixLQUZGLENBRVEsVUFBU0MsTUFBVCxFQUFzQjtBQUM1QkMsVUFBQUEsR0FBRyxDQUFDQyxLQUFKLENBQVUsOEJBQVYsRUFBMENGLE1BQTFDO0FBQ0EsU0FKRjtBQUtBLE9BWjhCO0FBYS9CZCxNQUFBQSxnQkFBZ0IsRUFBRSxZQUFXO0FBQzVCRyxRQUFBQSxjQUFjLENBQUNNLEtBQWY7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SSxHQUFHRixpQkFBaUIsQ0FBQ0ksUUFBRCxDQUE5QjtBQUNBdEIsUUFBQUEsT0FBTyxDQUFDb0IsSUFBRCxDQUFQO0FBQ0EsT0FIRDs7QUFJQSxVQUFNSixVQUFVLEdBQUcsWUFBVztBQUM3QkcsUUFBQUEsZ0JBQWdCO0FBQ2hCRSxRQUFBQSxNQUFNO0FBQ04sT0FIRDs7QUFJQVAsTUFBQUEsb0NBQW9DLENBQUNDLFVBQUQsRUFBYUMsVUFBYixFQUF5QmhELFdBQXpCLEVBQXNDQyxrQkFBdEMsQ0FBcEM7QUFDQSxLQVZZLENBQWI7QUFXQSxXQUFPbUQsSUFBUDtBQUNBOzs7O0FBQ00sV0FBUzFDLFlBQVQsQ0FBc0JWLFdBQXRCLEVBQXdDQyxrQkFBeEMsRUFBaUU7QUFDdkUsUUFBTXNELGNBQWMsR0FBR3ZELFdBQVcsQ0FBQ0ssT0FBWixHQUFzQm1ELGlCQUF0QixFQUF2QjtBQUNBLFFBQU1DLE9BQU8sR0FBRztBQUNmQyxNQUFBQSxrQkFBa0IsRUFBRSxJQURMO0FBRWZDLE1BQUFBLGtCQUFrQixFQUFFLElBRkw7QUFHZkMsTUFBQUEsaUJBQWlCLEVBQUUzRCxrQkFBa0IsS0FBSzRELFNBQXZCLEdBQW1DNUQsa0JBQW5DLEdBQXdEO0FBSDVELEtBQWhCO0FBTUEsV0FBT0QsV0FBVyxDQUFDOEQsUUFBWixDQUFxQkMsY0FBckIsQ0FBb0NSLGNBQXBDLEVBQW9ERSxPQUFwRCxDQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgWE1MVGVtcGxhdGVQcm9jZXNzb3IgZnJvbSBcInNhcC91aS9jb3JlL1hNTFRlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgWE1MUHJlcHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS91dGlsL1hNTFByZXByb2Nlc3NvclwiO1xuaW1wb3J0IEZyYWdtZW50IGZyb20gXCJzYXAvdWkvY29yZS9GcmFnbWVudFwiO1xuaW1wb3J0IFBvcHVwIGZyb20gXCJzYXAvdWkvY29yZS9Qb3B1cFwiO1xuXG5sZXQgZm5PbkRhdGFMb3NzQ29uZmlybWVkOiBGdW5jdGlvbjtcbmxldCBmbk9uRGF0YUxvc3NDYW5jZWw6IEZ1bmN0aW9uO1xuZnVuY3Rpb24gZm5EYXRhTG9zc0NvbmZpcm1hdGlvbihvbkRhdGFMb3NzQ29uZmlybWVkOiBhbnksIG9uRGF0YUxvc3NDYW5jZWw6IGFueSwgb0NvbnRyb2xsZXI6IGFueSwgYlNraXBCaW5kaW5nVG9WaWV3OiBhbnkpIHtcblx0bGV0IG9EYXRhTG9zc1BvcHVwOiBQb3B1cDtcblx0Zm5PbkRhdGFMb3NzQ29uZmlybWVkID0gb25EYXRhTG9zc0NvbmZpcm1lZDtcblx0Zm5PbkRhdGFMb3NzQ2FuY2VsID0gb25EYXRhTG9zc0NhbmNlbDtcblx0Y29uc3Qgc0ZyYWdtZW50bmFtZSA9IFwic2FwLmZlLmNvcmUuY29udHJvbHMuRGF0YUxvc3NPckRyYWZ0RGlzY2FyZC5EYXRhTG9zc0RyYWZ0XCI7XG5cdGNvbnN0IG9WaWV3ID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHRjb25zdCBmcmFnbWVudENvbnRyb2xsZXI6IGFueSA9IHtcblx0XHRvbkRhdGFMb3NzS2VlcERyYWZ0OiBmdW5jdGlvbigpIHtcblx0XHRcdG9EYXRhTG9zc1BvcHVwLmNsb3NlKCk7XG5cdFx0XHRmbk9uRGF0YUxvc3NDb25maXJtZWQoKTtcblx0XHR9LFxuXHRcdG9uRGF0YUxvc3NEaXNjYXJkRHJhZnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0b0RhdGFMb3NzUG9wdXAuY2xvc2UoKTtcblx0XHRcdGRpc2NhcmREcmFmdChvQ29udHJvbGxlciwgYlNraXBCaW5kaW5nVG9WaWV3KVxuXHRcdFx0XHQudGhlbihmbk9uRGF0YUxvc3NDb25maXJtZWQpXG5cdFx0XHRcdC5jYXRjaChmdW5jdGlvbihvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGRpc2NhcmRpbmcgZHJhZnRcIiwgb0Vycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0fSxcblx0XHRvbkRhdGFMb3NzQ2FuY2VsOiBmdW5jdGlvbigpIHtcblx0XHRcdG9EYXRhTG9zc1BvcHVwLmNsb3NlKCk7XG5cdFx0XHRmbk9uRGF0YUxvc3NDYW5jZWwoKTtcblx0XHR9XG5cdH07XG5cdGZyYWdtZW50Q29udHJvbGxlci5zZXREYXRhTG9zc1BvcHVwID0gZnVuY3Rpb24ob0RhdGFMb3NzUG9wdXA6IFBvcHVwKSB7XG5cdFx0b0NvbnRyb2xsZXIuZGF0YUxvc3NQb3B1cCA9IG9EYXRhTG9zc1BvcHVwO1xuXHR9O1xuXG5cdGNvbnN0IG9UaGlzID0gbmV3IEpTT05Nb2RlbCh7XG5cdFx0XHRpZDogb1ZpZXcuZ2V0SWQoKVxuXHRcdH0pLFxuXHRcdG9QcmVwcm9jZXNzb3JTZXR0aW5ncyA9IHtcblx0XHRcdGJpbmRpbmdDb250ZXh0czoge1xuXHRcdFx0XHRcInRoaXNcIjogb1RoaXMuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpXG5cdFx0XHR9LFxuXHRcdFx0bW9kZWxzOiB7XG5cdFx0XHRcdFwidGhpc1wiOiBvVGhpcyxcblx0XHRcdFx0XCJ0aGlzLmkxOG5cIjogb1ZpZXcuZ2V0TW9kZWwoXCJzYXAuZmUuaTE4blwiKVxuXHRcdFx0fVxuXHRcdH07XG5cdGNvbnN0IG9Qb3BvdmVyRnJhZ21lbnQgPSBYTUxUZW1wbGF0ZVByb2Nlc3Nvci5sb2FkVGVtcGxhdGUoc0ZyYWdtZW50bmFtZSwgXCJmcmFnbWVudFwiKTtcblxuXHRpZiAob0NvbnRyb2xsZXIuZGF0YUxvc3NQb3B1cCkge1xuXHRcdG9EYXRhTG9zc1BvcHVwID0gb0NvbnRyb2xsZXIuZGF0YUxvc3NQb3B1cDtcblx0XHRvRGF0YUxvc3NQb3B1cC5vcGVuKCk7XG5cdH0gZWxzZSB7XG5cdFx0UHJvbWlzZS5yZXNvbHZlKFhNTFByZXByb2Nlc3Nvci5wcm9jZXNzKG9Qb3BvdmVyRnJhZ21lbnQsIHsgbmFtZTogc0ZyYWdtZW50bmFtZSB9LCBvUHJlcHJvY2Vzc29yU2V0dGluZ3MpKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24ob0ZyYWdtZW50OiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIEZyYWdtZW50LmxvYWQoeyBkZWZpbml0aW9uOiBvRnJhZ21lbnQsIGNvbnRyb2xsZXI6IGZyYWdtZW50Q29udHJvbGxlciB9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbihmdW5jdGlvbihvUG9wdXA6IGFueSkge1xuXHRcdFx0XHRvRGF0YUxvc3NQb3B1cCA9IG9Qb3B1cDtcblx0XHRcdFx0b1ZpZXcuYWRkRGVwZW5kZW50KG9EYXRhTG9zc1BvcHVwKTtcblx0XHRcdFx0Y29uc3Qgb01vZGVsID0gbmV3IEpTT05Nb2RlbCgpO1xuXHRcdFx0XHRvRGF0YUxvc3NQb3B1cC5zZXRNb2RlbChvTW9kZWwsIFwiZGF0YUxvc3NcIik7XG5cdFx0XHRcdGNvbnN0IG9pMThuTW9kZWwgPSBvQ29udHJvbGxlci5nZXRWaWV3KCkuZ2V0TW9kZWwoXCJzYXAuZmUuaTE4blwiKTtcblx0XHRcdFx0b0RhdGFMb3NzUG9wdXAuc2V0TW9kZWwob2kxOG5Nb2RlbCwgXCJpMThuXCIpO1xuXHRcdFx0XHRvRGF0YUxvc3NQb3B1cC5vcGVuKCk7XG5cdFx0XHRcdGZyYWdtZW50Q29udHJvbGxlci5zZXREYXRhTG9zc1BvcHVwKG9EYXRhTG9zc1BvcHVwKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24ob0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgb3BlbmluZyB0aGUgRGlzY2FyZCBEaWFsb2cgZnJhZ21lbnRcIiwgb0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9XG59XG5mdW5jdGlvbiBmblBlcmZvcm1BZnRlckRpc2NhcmRvcktlZXBEcmFmdEltcGwoZm5Qb3NpdGl2ZTogYW55LCBmbk5lZ2F0aXZlOiBhbnksIG9Db250cm9sbGVyOiBhbnksIGJTa2lwQmluZGluZ1RvVmlldzogYW55KSB7XG5cdGZuRGF0YUxvc3NDb25maXJtYXRpb24oZm5Qb3NpdGl2ZSwgZm5OZWdhdGl2ZSwgb0NvbnRyb2xsZXIsIGJTa2lwQmluZGluZ1RvVmlldyk7XG59XG5leHBvcnQgZnVuY3Rpb24gcGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0KGZuUHJvY2Vzc0Z1bmN0aW9uOiBhbnksIGZuQ2FuY2VsRnVuY3Rpb246IGFueSwgb0NvbnRyb2xsZXI6IGFueSwgYlNraXBCaW5kaW5nVG9WaWV3OiBhbnkpIHtcblx0Y29uc3Qgb1JldCA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmU6ICh2YWx1ZTogYW55KSA9PiB2b2lkLCByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQpIHtcblx0XHRjb25zdCBmblBvc2l0aXZlID0gZnVuY3Rpb24ob0NvbnRleHQ6IGFueSkge1xuXHRcdFx0Y29uc3Qgb1JldCA9IGZuUHJvY2Vzc0Z1bmN0aW9uKG9Db250ZXh0KTtcblx0XHRcdHJlc29sdmUob1JldCk7XG5cdFx0fTtcblx0XHRjb25zdCBmbk5lZ2F0aXZlID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRmbkNhbmNlbEZ1bmN0aW9uKCk7XG5cdFx0XHRyZWplY3QoKTtcblx0XHR9O1xuXHRcdGZuUGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0SW1wbChmblBvc2l0aXZlLCBmbk5lZ2F0aXZlLCBvQ29udHJvbGxlciwgYlNraXBCaW5kaW5nVG9WaWV3KTtcblx0fSk7XG5cdHJldHVybiBvUmV0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRpc2NhcmREcmFmdChvQ29udHJvbGxlcjogYW55LCBiU2tpcEJpbmRpbmdUb1ZpZXc6IGFueSkge1xuXHRjb25zdCBvUGFyYW1zQ29udGV4dCA9IG9Db250cm9sbGVyLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRjb25zdCBtUGFyYW1zID0ge1xuXHRcdHNraXBCYWNrTmF2aWdhdGlvbjogdHJ1ZSxcblx0XHRza2lwRGlzY2FyZFBvcG92ZXI6IHRydWUsXG5cdFx0c2tpcEJpbmRpbmdUb1ZpZXc6IGJTa2lwQmluZGluZ1RvVmlldyAhPT0gdW5kZWZpbmVkID8gYlNraXBCaW5kaW5nVG9WaWV3IDogdHJ1ZVxuXHR9O1xuXG5cdHJldHVybiBvQ29udHJvbGxlci5lZGl0Rmxvdy5jYW5jZWxEb2N1bWVudChvUGFyYW1zQ29udGV4dCwgbVBhcmFtcyk7XG59XG4iXX0=
|
|
166
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyLnRzIl0sIm5hbWVzIjpbIkRyYWZ0RGF0YUxvc3NPcHRpb25zIiwiZm5PbkRhdGFMb3NzQ29uZmlybWVkIiwiZm5PbkRhdGFMb3NzQ2FuY2VsIiwiZm5EYXRhTG9zc0NvbmZpcm1hdGlvbiIsIm9uRGF0YUxvc3NPayIsIm9uRGF0YUxvc3NDYW5jZWwiLCJjb250cm9sbGVyIiwic2tpcEJpbmRpbmdUb1ZpZXciLCJkYXRhTG9zc1BvcHVwIiwiZnJhZ21lbnROYW1lIiwidmlldyIsImdldFZpZXciLCJmcmFnbWVudENvbnRyb2xsZXIiLCJzZWxlY3RlZEtleSIsImdldFNlbGVjdGVkS2V5IiwiU2F2ZSIsInNhdmVEb2N1bWVudCIsInRoZW4iLCJjYXRjaCIsImVycm9yIiwiTG9nIiwiY2xvc2UiLCJLZWVwIiwiRGlzY2FyZCIsImRpc2NhcmREcmFmdCIsInNldERhdGFMb3NzUG9wdXAiLCJpMThuTW9kZWwiLCJnZXRNb2RlbCIsImxvY2FsVGhpc01vZGVsIiwiSlNPTk1vZGVsIiwicHJlcHJvY2Vzc29yU2V0dGluZ3MiLCJiaW5kaW5nQ29udGV4dHMiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsIm1vZGVscyIsIm9wZW4iLCJzZWxlY3RBbmRGb2N1c0ZpcnN0RW50cnkiLCJkaWFsb2dGcmFnbWVudCIsIlhNTFRlbXBsYXRlUHJvY2Vzc29yIiwibG9hZFRlbXBsYXRlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJYTUxQcmVwcm9jZXNzb3IiLCJwcm9jZXNzIiwibmFtZSIsImZyYWdtZW50IiwiRnJhZ21lbnQiLCJsb2FkIiwiZGVmaW5pdGlvbiIsInBvcHVwIiwiYWRkRGVwZW5kZW50IiwicGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0IiwicHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc09rIiwicHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc0NhbmNlbCIsInJlamVjdCIsImRhdGFMb3NzUG9wdXBPayIsImNvbnRleHQiLCJyZXR1cm5WYWx1ZSIsImRhdGFMb3NzUG9wdXBDYW5jZWwiLCJnZXRCaW5kaW5nQ29udGV4dCIsInBhcmFtcyIsInNraXBCYWNrTmF2aWdhdGlvbiIsInNraXBEaXNjYXJkUG9wb3ZlciIsInVuZGVmaW5lZCIsImVkaXRGbG93IiwiY2FuY2VsRG9jdW1lbnQiLCJpc0EiLCJfc2F2ZURvY3VtZW50IiwiZGF0YUxvc3NPcHRpb25zTGlzdCIsImdldENvbnRlbnQiLCJmaW5kIiwiZWxlbWVudCIsImRhdGEiLCJnZXRTZWxlY3RlZEl0ZW0iLCJmaXJzdExpc3RJdGVtT3B0aW9uIiwiZ2V0SXRlbXMiLCJzZXRTZWxlY3RlZEl0ZW0iLCJmb2N1cyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O01BT0tBLG9COzthQUFBQSxvQjtBQUFBQSxJQUFBQSxvQjtBQUFBQSxJQUFBQSxvQjtBQUFBQSxJQUFBQSxvQjtLQUFBQSxvQixLQUFBQSxvQjs7QUFNTCxNQUFJQyxxQkFBSjtBQUNBLE1BQUlDLGtCQUFKOztBQUNBLFdBQVNDLHNCQUFULENBQWdDQyxZQUFoQyxFQUFtREMsZ0JBQW5ELEVBQTBFQyxVQUExRSxFQUEyRkMsaUJBQTNGLEVBQW1IO0FBQ2xIO0FBQ0E7QUFDQTtBQUNBLFFBQUlDLGFBQUo7QUFDQVAsSUFBQUEscUJBQXFCLEdBQUdHLFlBQXhCO0FBQ0FGLElBQUFBLGtCQUFrQixHQUFHRyxnQkFBckI7QUFDQSxRQUFNSSxZQUFZLEdBQUcsMkRBQXJCO0FBQ0EsUUFBTUMsSUFBSSxHQUFHSixVQUFVLENBQUNLLE9BQVgsRUFBYjtBQUNBLFFBQU1DLGtCQUF1QixHQUFHO0FBQy9CUixNQUFBQSxZQUFZLEVBQUUsWUFBWTtBQUN6QixZQUFNUyxXQUFXLEdBQUdDLGNBQWMsQ0FBQ04sYUFBRCxDQUFsQzs7QUFDQSxZQUFJSyxXQUFXLEtBQUtiLG9CQUFvQixDQUFDZSxJQUF6QyxFQUErQztBQUM5Q0MsVUFBQUEsWUFBWSxDQUFDVixVQUFELENBQVosQ0FDRVcsSUFERixDQUNP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bXBvcnQgQ3VzdG9tTGlzdEl0ZW0gZnJvbSBcInNhcC9tL0N1c3RvbUxpc3RJdGVtXCI7XG5pbXBvcnQgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCBMaXN0IGZyb20gXCJzYXAvbS9MaXN0XCI7XG5pbXBvcnQgRnJhZ21lbnQgZnJvbSBcInNhcC91aS9jb3JlL0ZyYWdtZW50XCI7XG5pbXBvcnQgWE1MUHJlcHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS91dGlsL1hNTFByZXByb2Nlc3NvclwiO1xuaW1wb3J0IFhNTFRlbXBsYXRlUHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS9YTUxUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5cbmVudW0gRHJhZnREYXRhTG9zc09wdGlvbnMge1xuXHRTYXZlID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uU2F2ZVwiLFxuXHRLZWVwID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uS2VlcFwiLFxuXHREaXNjYXJkID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uRGlzY2FyZFwiXG59XG5cbmxldCBmbk9uRGF0YUxvc3NDb25maXJtZWQ6IEZ1bmN0aW9uO1xubGV0IGZuT25EYXRhTG9zc0NhbmNlbDogRnVuY3Rpb247XG5mdW5jdGlvbiBmbkRhdGFMb3NzQ29uZmlybWF0aW9uKG9uRGF0YUxvc3NPazogYW55LCBvbkRhdGFMb3NzQ2FuY2VsOiBhbnksIGNvbnRyb2xsZXI6IGFueSwgc2tpcEJpbmRpbmdUb1ZpZXc6IGFueSkge1xuXHQvLyBPcGVuIHRoZSBkYXRhIGxvc3MgcG9wdXAgYW5kIGFmdGVyIHByb2Nlc3NpbmcgdGhlIHNlbGVjdGVkIGZ1bmN0aW9uIGZpbmFsbHkgY2FsbFxuXHQvLyBvbkRhdGFMb3NzQ29uZmlybWVkIHdoaWNoIHJlc29sdmVzIHRoZSBwcm9taXNlIGFuZCBsZWFkcyB0byBwcm9jZXNzaW5nIG9mIHRoZSBvcmlnaW5hbGx5XG5cdC8vIHRyaWdnZXJlZCBhY3Rpb24gbGlrZSBlLmcuIGEgYmFjayBuYXZpZ2F0aW9uXG5cdGxldCBkYXRhTG9zc1BvcHVwOiBEaWFsb2c7XG5cdGZuT25EYXRhTG9zc0NvbmZpcm1lZCA9IG9uRGF0YUxvc3NPaztcblx0Zm5PbkRhdGFMb3NzQ2FuY2VsID0gb25EYXRhTG9zc0NhbmNlbDtcblx0Y29uc3QgZnJhZ21lbnROYW1lID0gXCJzYXAuZmUuY29yZS5jb250cm9scy5EYXRhTG9zc09yRHJhZnREaXNjYXJkLkRhdGFMb3NzRHJhZnRcIjtcblx0Y29uc3QgdmlldyA9IGNvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHRjb25zdCBmcmFnbWVudENvbnRyb2xsZXI6IGFueSA9IHtcblx0XHRvbkRhdGFMb3NzT2s6IGZ1bmN0aW9uICgpIHtcblx0XHRcdGNvbnN0IHNlbGVjdGVkS2V5ID0gZ2V0U2VsZWN0ZWRLZXkoZGF0YUxvc3NQb3B1cCk7XG5cdFx0XHRpZiAoc2VsZWN0ZWRLZXkgPT09IERyYWZ0RGF0YUxvc3NPcHRpb25zLlNhdmUpIHtcblx0XHRcdFx0c2F2ZURvY3VtZW50KGNvbnRyb2xsZXIpXG5cdFx0XHRcdFx0LnRoZW4oZm5PbkRhdGFMb3NzQ29uZmlybWVkKVxuXHRcdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgc2F2aW5nIGRvY3VtZW50XCIsIGVycm9yKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0ZGF0YUxvc3NQb3B1cC5jbG9zZSgpO1xuXHRcdFx0fSBlbHNlIGlmIChzZWxlY3RlZEtleSA9PT0gRHJhZnREYXRhTG9zc09wdGlvbnMuS2VlcCkge1xuXHRcdFx0XHRmbk9uRGF0YUxvc3NDb25maXJtZWQoKTtcblx0XHRcdFx0ZGF0YUxvc3NQb3B1cC5jbG9zZSgpO1xuXHRcdFx0fSBlbHNlIGlmIChzZWxlY3RlZEtleSA9PT0gRHJhZnREYXRhTG9zc09wdGlvbnMuRGlzY2FyZCkge1xuXHRcdFx0XHRkaXNjYXJkRHJhZnQoY29udHJvbGxlciwgc2tpcEJpbmRpbmdUb1ZpZXcpXG5cdFx0XHRcdFx0LnRoZW4oZm5PbkRhdGFMb3NzQ29uZmlybWVkKVxuXHRcdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZGlzY2FyZGluZyBkcmFmdFwiLCBlcnJvcik7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdGRhdGFMb3NzUG9wdXAuY2xvc2UoKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdG9uRGF0YUxvc3NDYW5jZWw6IGZ1bmN0aW9uICgpIHtcblx0XHRcdGZuT25EYXRhTG9zc0NhbmNlbCgpO1xuXHRcdFx0ZGF0YUxvc3NQb3B1cC5jbG9zZSgpO1xuXHRcdH0sXG5cdFx0c2V0RGF0YUxvc3NQb3B1cDogZnVuY3Rpb24gKGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHRcdFx0Y29udHJvbGxlci5kYXRhTG9zc1BvcHVwID0gZGF0YUxvc3NQb3B1cDtcblx0XHR9XG5cdH07XG5cblx0Y29uc3QgaTE4bk1vZGVsID0gdmlldy5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpO1xuXHRjb25zdCBsb2NhbFRoaXNNb2RlbCA9IG5ldyBKU09OTW9kZWwoe30pLFxuXHRcdHByZXByb2Nlc3NvclNldHRpbmdzID0ge1xuXHRcdFx0YmluZGluZ0NvbnRleHRzOiB7XG5cdFx0XHRcdFwidGhpc1wiOiBsb2NhbFRoaXNNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIilcblx0XHRcdH0sXG5cdFx0XHRtb2RlbHM6IHtcblx0XHRcdFx0XCJ0aGlzXCI6IGxvY2FsVGhpc01vZGVsLFxuXHRcdFx0XHRcImkxOG5cIjogaTE4bk1vZGVsXG5cdFx0XHR9XG5cdFx0fTtcblxuXHRpZiAoY29udHJvbGxlci5kYXRhTG9zc1BvcHVwKSB7XG5cdFx0ZGF0YUxvc3NQb3B1cCA9IGNvbnRyb2xsZXIuZGF0YUxvc3NQb3B1cDtcblx0XHRkYXRhTG9zc1BvcHVwLm9wZW4oKTtcblx0XHRzZWxlY3RBbmRGb2N1c0ZpcnN0RW50cnkoZGF0YUxvc3NQb3B1cCk7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgZGlhbG9nRnJhZ21lbnQgPSBYTUxUZW1wbGF0ZVByb2Nlc3Nvci5sb2FkVGVtcGxhdGUoZnJhZ21lbnROYW1lLCBcImZyYWdtZW50XCIpO1xuXHRcdFByb21pc2UucmVzb2x2ZShYTUxQcmVwcm9jZXNzb3IucHJvY2VzcyhkaWFsb2dGcmFnbWVudCwgeyBuYW1lOiBmcmFnbWVudE5hbWUgfSwgcHJlcHJvY2Vzc29yU2V0dGluZ3MpKVxuXHRcdFx0LnRoZW4oKGZyYWdtZW50KSA9PiB7XG5cdFx0XHRcdHJldHVybiBGcmFnbWVudC5sb2FkKHsgZGVmaW5pdGlvbjogZnJhZ21lbnQsIGNvbnRyb2xsZXI6IGZyYWdtZW50Q29udHJvbGxlciB9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigocG9wdXA6IGFueSkgPT4ge1xuXHRcdFx0XHRkYXRhTG9zc1BvcHVwID0gcG9wdXA7XG5cdFx0XHRcdHZpZXcuYWRkRGVwZW5kZW50KGRhdGFMb3NzUG9wdXApO1xuXHRcdFx0XHRkYXRhTG9zc1BvcHVwLm9wZW4oKTtcblx0XHRcdFx0c2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5KGRhdGFMb3NzUG9wdXApO1xuXHRcdFx0XHRmcmFnbWVudENvbnRyb2xsZXIuc2V0RGF0YUxvc3NQb3B1cChkYXRhTG9zc1BvcHVwKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgb3BlbmluZyB0aGUgRGlzY2FyZCBEaWFsb2cgZnJhZ21lbnRcIiwgZXJyb3IpO1xuXHRcdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlcmZvcm1BZnRlckRpc2NhcmRvcktlZXBEcmFmdChcblx0cHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc09rOiBhbnksXG5cdHByb2Nlc3NGdW5jdGlvbk9uRGF0YWxvc3NDYW5jZWw6IGFueSxcblx0Y29udHJvbGxlcjogYW55LFxuXHRza2lwQmluZGluZ1RvVmlldzogYW55XG4pIHtcblx0Ly8gRGVwZW5kaW5nIG9uIGlmIHRoZSB1c2VyIGNsb3NlZCB0aGUgZGF0YSBsb3NzIHBvcHVwIHdpdGggT2sgb3IgQ2FuY2VsLFxuXHQvLyBleGVjdXRlIHRoZSBwcm92aWRlZCBmb2xsb3ctdXAgZnVuY3Rpb24gYW5kIHJlc29sdmUgb3IgcmVqZWN0IHRoZSBwcm9taXNlXG5cdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZTogKHZhbHVlOiBhbnkpID0+IHZvaWQsIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZCkge1xuXHRcdGNvbnN0IGRhdGFMb3NzUG9wdXBPayA9IGZ1bmN0aW9uIChjb250ZXh0OiBhbnkpIHtcblx0XHRcdGNvbnN0IHJldHVyblZhbHVlID0gcHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc09rKGNvbnRleHQpO1xuXHRcdFx0cmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG5cdFx0fTtcblx0XHRjb25zdCBkYXRhTG9zc1BvcHVwQ2FuY2VsID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc0NhbmNlbCgpO1xuXHRcdFx0cmVqZWN0KCk7XG5cdFx0fTtcblx0XHRmbkRhdGFMb3NzQ29uZmlybWF0aW9uKGRhdGFMb3NzUG9wdXBPaywgZGF0YUxvc3NQb3B1cENhbmNlbCwgY29udHJvbGxlciwgc2tpcEJpbmRpbmdUb1ZpZXcpO1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc2NhcmREcmFmdChjb250cm9sbGVyOiBhbnksIHNraXBCaW5kaW5nVG9WaWV3OiBhbnkpIHtcblx0Y29uc3QgY29udGV4dCA9IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdGNvbnN0IHBhcmFtcyA9IHtcblx0XHRza2lwQmFja05hdmlnYXRpb246IHRydWUsXG5cdFx0c2tpcERpc2NhcmRQb3BvdmVyOiB0cnVlLFxuXHRcdHNraXBCaW5kaW5nVG9WaWV3OiBza2lwQmluZGluZ1RvVmlldyAhPT0gdW5kZWZpbmVkID8gc2tpcEJpbmRpbmdUb1ZpZXcgOiB0cnVlXG5cdH07XG5cdHJldHVybiBjb250cm9sbGVyLmVkaXRGbG93LmNhbmNlbERvY3VtZW50KGNvbnRleHQsIHBhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlRG9jdW1lbnQoY29udHJvbGxlcjogYW55KSB7XG5cdGNvbnN0IGNvbnRleHQgPSBjb250cm9sbGVyLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHQvLyBXZSBjaGVjayBpZiB3ZSBhcmUgb24gdGhlIE9QIGFuZCB0aGVuIGNhbGwgdGhlIGludGVybmFsIF9zYXZlRG9jdW1lbnQgZnJvbSB0aGUgT1AgY29udHJvbGxlclxuXHQvLyBzaW5jZSBoZXJlIHNvbWUgc3BlY2lhbCBoYW5kbGluZyBpcyBkb25lIGZvciBjcmVhdGlvblJvdyBiZWZvcmUgZWRpdEZsb3cuc2F2ZURvY3VtZW50IGlzIGNhbGxlZC5cblx0Ly8gSW4gY2FzZSBvZiBhIGN1c3RvbSBjb250cm9sbGVyIHdlIGRpcmVjdGx5IGNhbGwgc2F2ZURvY3VtZW50IGZyb20gdGhlIGVkaXRGbG93XG5cdGlmIChjb250cm9sbGVyLmlzQShcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiKSkge1xuXHRcdHJldHVybiBjb250cm9sbGVyLl9zYXZlRG9jdW1lbnQoY29udGV4dCk7XG5cdH0gZWxzZSB7XG5cdFx0Y29udHJvbGxlci5lZGl0Rmxvdy5zYXZlRG9jdW1lbnQoY29udGV4dCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGVkS2V5KGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHQvLyBGb3Igbm90IHVzaW5nIGNvbnRyb2wgSURzIHdlIGludHJvZHVjZWQgY3VzdG9tRGF0YSBpbiB0aGUgZnJhZ21lbnQgYW5kXG5cdC8vIHVzZSBpdCBoZXJlIGZvciBmaW5kaW5nIHRoZSBjb3JyZWN0IGxpc3QgaW4gdGhlIGRpYWxvZyBhbmQgZm9yXG5cdC8vIGRldGVybWluaW5nIHRoZSBzZWxlY3RlZCBvcHRpb24gZnJvbSB0aGUgbGlzdFxuXHRjb25zdCBkYXRhTG9zc09wdGlvbnNMaXN0OiBMaXN0ID0gZGF0YUxvc3NQb3B1cFxuXHRcdC5nZXRDb250ZW50KClcblx0XHQuZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5kYXRhKFwibGlzdElkZW50aWZpZXJcIikgPT09IFwiZHJhZnREYXRhTG9zc09wdGlvbnNMaXN0XCIpIGFzIExpc3Q7XG5cdHJldHVybiBkYXRhTG9zc09wdGlvbnNMaXN0LmdldFNlbGVjdGVkSXRlbSgpLmRhdGEoXCJpdGVtS2V5XCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5KGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHQvLyBGb3Igbm90IHVzaW5nIGNvbnRyb2wgSURzIHdlIGludHJvZHVjZWQgY3VzdG9tRGF0YSBpbiB0aGUgZnJhZ21lbnQgYW5kXG5cdC8vIHVzZSBpdCBoZXJlIGZvciBmaW5kaW5nIHRoZSBjb3JyZWN0IGxpc3QgaW4gdGhlIGRpYWxvZy5cblx0Y29uc3QgZGF0YUxvc3NPcHRpb25zTGlzdDogTGlzdCA9IGRhdGFMb3NzUG9wdXBcblx0XHQuZ2V0Q29udGVudCgpXG5cdFx0LmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuZGF0YShcImxpc3RJZGVudGlmaWVyXCIpID09PSBcImRyYWZ0RGF0YUxvc3NPcHRpb25zTGlzdFwiKSBhcyBMaXN0O1xuXHRjb25zdCBmaXJzdExpc3RJdGVtT3B0aW9uOiBDdXN0b21MaXN0SXRlbSA9IGRhdGFMb3NzT3B0aW9uc0xpc3QuZ2V0SXRlbXMoKVswXSBhcyBDdXN0b21MaXN0SXRlbTtcblx0ZGF0YUxvc3NPcHRpb25zTGlzdC5zZXRTZWxlY3RlZEl0ZW0oZmlyc3RMaXN0SXRlbU9wdGlvbik7XG5cdGZpcnN0TGlzdEl0ZW1PcHRpb24uZm9jdXMoKTtcbn1cbiJdfQ==
|
|
@@ -1,101 +1,155 @@
|
|
|
1
1
|
import Log from "sap/base/Log";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
2
|
+
import CustomListItem from "sap/m/CustomListItem";
|
|
3
|
+
import Dialog from "sap/m/Dialog";
|
|
4
|
+
import List from "sap/m/List";
|
|
5
5
|
import Fragment from "sap/ui/core/Fragment";
|
|
6
|
-
import
|
|
6
|
+
import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
|
|
7
|
+
import XMLTemplateProcessor from "sap/ui/core/XMLTemplateProcessor";
|
|
8
|
+
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
9
|
+
|
|
10
|
+
enum DraftDataLossOptions {
|
|
11
|
+
Save = "draftDataLossOptionSave",
|
|
12
|
+
Keep = "draftDataLossOptionKeep",
|
|
13
|
+
Discard = "draftDataLossOptionDiscard"
|
|
14
|
+
}
|
|
7
15
|
|
|
8
16
|
let fnOnDataLossConfirmed: Function;
|
|
9
17
|
let fnOnDataLossCancel: Function;
|
|
10
|
-
function fnDataLossConfirmation(
|
|
11
|
-
|
|
12
|
-
|
|
18
|
+
function fnDataLossConfirmation(onDataLossOk: any, onDataLossCancel: any, controller: any, skipBindingToView: any) {
|
|
19
|
+
// Open the data loss popup and after processing the selected function finally call
|
|
20
|
+
// onDataLossConfirmed which resolves the promise and leads to processing of the originally
|
|
21
|
+
// triggered action like e.g. a back navigation
|
|
22
|
+
let dataLossPopup: Dialog;
|
|
23
|
+
fnOnDataLossConfirmed = onDataLossOk;
|
|
13
24
|
fnOnDataLossCancel = onDataLossCancel;
|
|
14
|
-
const
|
|
15
|
-
const
|
|
25
|
+
const fragmentName = "sap.fe.core.controls.DataLossOrDraftDiscard.DataLossDraft";
|
|
26
|
+
const view = controller.getView();
|
|
16
27
|
const fragmentController: any = {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
onDataLossOk: function () {
|
|
29
|
+
const selectedKey = getSelectedKey(dataLossPopup);
|
|
30
|
+
if (selectedKey === DraftDataLossOptions.Save) {
|
|
31
|
+
saveDocument(controller)
|
|
32
|
+
.then(fnOnDataLossConfirmed)
|
|
33
|
+
.catch(function (error: any) {
|
|
34
|
+
Log.error("Error while saving document", error);
|
|
35
|
+
});
|
|
36
|
+
dataLossPopup.close();
|
|
37
|
+
} else if (selectedKey === DraftDataLossOptions.Keep) {
|
|
38
|
+
fnOnDataLossConfirmed();
|
|
39
|
+
dataLossPopup.close();
|
|
40
|
+
} else if (selectedKey === DraftDataLossOptions.Discard) {
|
|
41
|
+
discardDraft(controller, skipBindingToView)
|
|
42
|
+
.then(fnOnDataLossConfirmed)
|
|
43
|
+
.catch(function (error: any) {
|
|
44
|
+
Log.error("Error while discarding draft", error);
|
|
45
|
+
});
|
|
46
|
+
dataLossPopup.close();
|
|
47
|
+
}
|
|
28
48
|
},
|
|
29
|
-
onDataLossCancel: function() {
|
|
30
|
-
oDataLossPopup.close();
|
|
49
|
+
onDataLossCancel: function () {
|
|
31
50
|
fnOnDataLossCancel();
|
|
51
|
+
dataLossPopup.close();
|
|
52
|
+
},
|
|
53
|
+
setDataLossPopup: function (dataLossPopup: Dialog) {
|
|
54
|
+
controller.dataLossPopup = dataLossPopup;
|
|
32
55
|
}
|
|
33
56
|
};
|
|
34
|
-
fragmentController.setDataLossPopup = function(oDataLossPopup: Popup) {
|
|
35
|
-
oController.dataLossPopup = oDataLossPopup;
|
|
36
|
-
};
|
|
37
57
|
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
oPreprocessorSettings = {
|
|
58
|
+
const i18nModel = view.getModel("sap.fe.i18n");
|
|
59
|
+
const localThisModel = new JSONModel({}),
|
|
60
|
+
preprocessorSettings = {
|
|
42
61
|
bindingContexts: {
|
|
43
|
-
"this":
|
|
62
|
+
"this": localThisModel.createBindingContext("/")
|
|
44
63
|
},
|
|
45
64
|
models: {
|
|
46
|
-
"this":
|
|
47
|
-
"
|
|
65
|
+
"this": localThisModel,
|
|
66
|
+
"i18n": i18nModel
|
|
48
67
|
}
|
|
49
68
|
};
|
|
50
|
-
const oPopoverFragment = XMLTemplateProcessor.loadTemplate(sFragmentname, "fragment");
|
|
51
69
|
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
|
|
70
|
+
if (controller.dataLossPopup) {
|
|
71
|
+
dataLossPopup = controller.dataLossPopup;
|
|
72
|
+
dataLossPopup.open();
|
|
73
|
+
selectAndFocusFirstEntry(dataLossPopup);
|
|
55
74
|
} else {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
75
|
+
const dialogFragment = XMLTemplateProcessor.loadTemplate(fragmentName, "fragment");
|
|
76
|
+
Promise.resolve(XMLPreprocessor.process(dialogFragment, { name: fragmentName }, preprocessorSettings))
|
|
77
|
+
.then((fragment) => {
|
|
78
|
+
return Fragment.load({ definition: fragment, controller: fragmentController });
|
|
59
79
|
})
|
|
60
|
-
.then(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
oDataLossPopup.setModel(oi18nModel, "i18n");
|
|
67
|
-
oDataLossPopup.open();
|
|
68
|
-
fragmentController.setDataLossPopup(oDataLossPopup);
|
|
80
|
+
.then((popup: any) => {
|
|
81
|
+
dataLossPopup = popup;
|
|
82
|
+
view.addDependent(dataLossPopup);
|
|
83
|
+
dataLossPopup.open();
|
|
84
|
+
selectAndFocusFirstEntry(dataLossPopup);
|
|
85
|
+
fragmentController.setDataLossPopup(dataLossPopup);
|
|
69
86
|
})
|
|
70
|
-
.catch(function(
|
|
71
|
-
Log.error("Error while opening the Discard Dialog fragment",
|
|
87
|
+
.catch(function (error: any) {
|
|
88
|
+
Log.error("Error while opening the Discard Dialog fragment", error);
|
|
72
89
|
});
|
|
73
90
|
}
|
|
74
91
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
92
|
+
|
|
93
|
+
export function performAfterDiscardorKeepDraft(
|
|
94
|
+
processFunctionOnDatalossOk: any,
|
|
95
|
+
processFunctionOnDatalossCancel: any,
|
|
96
|
+
controller: any,
|
|
97
|
+
skipBindingToView: any
|
|
98
|
+
) {
|
|
99
|
+
// Depending on if the user closed the data loss popup with Ok or Cancel,
|
|
100
|
+
// execute the provided follow-up function and resolve or reject the promise
|
|
101
|
+
return new Promise(function (resolve: (value: any) => void, reject: (reason?: any) => void) {
|
|
102
|
+
const dataLossPopupOk = function (context: any) {
|
|
103
|
+
const returnValue = processFunctionOnDatalossOk(context);
|
|
104
|
+
resolve(returnValue);
|
|
83
105
|
};
|
|
84
|
-
const
|
|
85
|
-
|
|
106
|
+
const dataLossPopupCancel = function () {
|
|
107
|
+
processFunctionOnDatalossCancel();
|
|
86
108
|
reject();
|
|
87
109
|
};
|
|
88
|
-
|
|
110
|
+
fnDataLossConfirmation(dataLossPopupOk, dataLossPopupCancel, controller, skipBindingToView);
|
|
89
111
|
});
|
|
90
|
-
return oRet;
|
|
91
112
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const
|
|
113
|
+
|
|
114
|
+
export function discardDraft(controller: any, skipBindingToView: any) {
|
|
115
|
+
const context = controller.getView().getBindingContext();
|
|
116
|
+
const params = {
|
|
95
117
|
skipBackNavigation: true,
|
|
96
118
|
skipDiscardPopover: true,
|
|
97
|
-
skipBindingToView:
|
|
119
|
+
skipBindingToView: skipBindingToView !== undefined ? skipBindingToView : true
|
|
98
120
|
};
|
|
121
|
+
return controller.editFlow.cancelDocument(context, params);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export function saveDocument(controller: any) {
|
|
125
|
+
const context = controller.getView().getBindingContext();
|
|
126
|
+
// We check if we are on the OP and then call the internal _saveDocument from the OP controller
|
|
127
|
+
// since here some special handling is done for creationRow before editFlow.saveDocument is called.
|
|
128
|
+
// In case of a custom controller we directly call saveDocument from the editFlow
|
|
129
|
+
if (controller.isA("sap.fe.templates.ObjectPage.ObjectPageController")) {
|
|
130
|
+
return controller._saveDocument(context);
|
|
131
|
+
} else {
|
|
132
|
+
controller.editFlow.saveDocument(context);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export function getSelectedKey(dataLossPopup: Dialog) {
|
|
137
|
+
// For not using control IDs we introduced customData in the fragment and
|
|
138
|
+
// use it here for finding the correct list in the dialog and for
|
|
139
|
+
// determining the selected option from the list
|
|
140
|
+
const dataLossOptionsList: List = dataLossPopup
|
|
141
|
+
.getContent()
|
|
142
|
+
.find((element) => element.data("listIdentifier") === "draftDataLossOptionsList") as List;
|
|
143
|
+
return dataLossOptionsList.getSelectedItem().data("itemKey");
|
|
144
|
+
}
|
|
99
145
|
|
|
100
|
-
|
|
146
|
+
export function selectAndFocusFirstEntry(dataLossPopup: Dialog) {
|
|
147
|
+
// For not using control IDs we introduced customData in the fragment and
|
|
148
|
+
// use it here for finding the correct list in the dialog.
|
|
149
|
+
const dataLossOptionsList: List = dataLossPopup
|
|
150
|
+
.getContent()
|
|
151
|
+
.find((element) => element.data("listIdentifier") === "draftDataLossOptionsList") as List;
|
|
152
|
+
const firstListItemOption: CustomListItem = dataLossOptionsList.getItems()[0] as CustomListItem;
|
|
153
|
+
dataLossOptionsList.setSelectedItem(firstListItemOption);
|
|
154
|
+
firstListItemOption.focus();
|
|
101
155
|
}
|