@sapui5/sap.fe.core 1.113.0 → 1.115.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 +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime-dbg.js +68 -5
- package/src/sap/fe/core/ActionRuntime.js +1 -1
- package/src/sap/fe/core/ActionRuntime.js.map +1 -1
- package/src/sap/fe/core/ActionRuntime.ts +120 -4
- package/src/sap/fe/core/AppComponent-dbg.js +8 -2
- package/src/sap/fe/core/AppComponent.js +1 -1
- package/src/sap/fe/core/AppComponent.js.map +1 -1
- package/src/sap/fe/core/AppComponent.ts +19 -3
- package/src/sap/fe/core/AppStateHandler-dbg.js +14 -10
- package/src/sap/fe/core/AppStateHandler.js +1 -1
- package/src/sap/fe/core/AppStateHandler.js.map +1 -1
- package/src/sap/fe/core/AppStateHandler.ts +17 -11
- package/src/sap/fe/core/BaseController-dbg.js +1 -1
- package/src/sap/fe/core/BaseController.ts +13 -2
- package/src/sap/fe/core/CommonUtils-dbg.js +74 -317
- package/src/sap/fe/core/CommonUtils.js +1 -1
- package/src/sap/fe/core/CommonUtils.js.map +1 -1
- package/src/sap/fe/core/CommonUtils.ts +96 -473
- package/src/sap/fe/core/ExtensionAPI-dbg.js +1 -1
- package/src/sap/fe/core/ExtensionAPI.ts +2 -2
- package/src/sap/fe/core/StateFilterToSelectionVariant-dbg.js +263 -0
- package/src/sap/fe/core/StateFilterToSelectionVariant.js +6 -0
- package/src/sap/fe/core/StateFilterToSelectionVariant.js.map +1 -0
- package/src/sap/fe/core/StateFilterToSelectionVariant.ts +316 -0
- package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +6 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +10 -3
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +8 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +8 -8
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.ts +7 -7
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +68 -36
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +83 -43
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +12 -11
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +17 -21
- package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +233 -133
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +260 -145
- package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +3 -3
- package/src/sap/fe/core/controllerextensions/Routing-dbg.js +5 -3
- package/src/sap/fe/core/controllerextensions/Routing.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/Routing.ts +5 -4
- package/src/sap/fe/core/controllerextensions/Share-dbg.js +3 -2
- package/src/sap/fe/core/controllerextensions/Share.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/Share.ts +2 -1
- package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +19 -14
- package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +25 -18
- package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +40 -26
- package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.ts +59 -33
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +8 -8
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +23 -25
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +7 -45
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +5 -48
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +7 -3
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +73 -90
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +88 -101
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +26 -4
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +29 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +13 -10
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +7 -20
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +64 -4
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +91 -8
- package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +2 -4
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +3 -5
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +9 -9
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +8 -8
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -0
- package/src/sap/fe/core/controls/CommandExecution-dbg.js +4 -9
- package/src/sap/fe/core/controls/CommandExecution.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
- package/src/sap/fe/core/controls/CommandExecution.ts +0 -8
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block-dbg.js +335 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +6 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js.map +1 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +336 -0
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +3 -28
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +8 -29
- package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters-dbg.js +435 -0
- package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters.js +6 -0
- package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters.ts +532 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +30 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +38 -0
- package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +7 -5
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +36 -4
- package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.ts +45 -4
- package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -3
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +1 -6
- package/src/sap/fe/core/converters/annotations/DataField-dbg.js +18 -3
- package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.ts +18 -2
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +679 -676
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +32 -20
- package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +30 -18
- package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +4 -5
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +6 -37
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +100 -72
- package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.ts +146 -99
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +37 -10
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +49 -16
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +47 -18
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +74 -20
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +26 -9
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +24 -8
- package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +28 -2
- package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +28 -9
- package/src/sap/fe/core/converters/helpers/InsightsHelpers-dbg.js +39 -0
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +6 -0
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +45 -0
- package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +13 -15
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +18 -54
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +12 -12
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +16 -11
- package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +17 -33
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +27 -22
- package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -11
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -25
- package/src/sap/fe/core/fpm/Component-dbg.js +3 -1
- package/src/sap/fe/core/fpm/Component.js +1 -1
- package/src/sap/fe/core/fpm/Component.js.map +1 -1
- package/src/sap/fe/core/fpm/Component.ts +3 -1
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +74 -26
- package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.ts +116 -33
- package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +82 -37
- package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.ts +109 -56
- package/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +7 -5
- package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +13 -3
- package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.ts +28 -18
- package/src/sap/fe/core/helpers/MessageStrip-dbg.js +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.ts +2 -1
- package/src/sap/fe/core/helpers/ModelHelper-dbg.js +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +3 -3
- package/src/sap/fe/core/helpers/RecommendationHelper-dbg.js +71 -0
- package/src/sap/fe/core/helpers/RecommendationHelper.js +6 -0
- package/src/sap/fe/core/helpers/RecommendationHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/RecommendationHelper.ts +94 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +5 -2
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
- package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/ResourceModelHelper.ts +5 -0
- package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +24 -2
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.ts +23 -1
- package/src/sap/fe/core/helpers/TitleHelper-dbg.js +239 -0
- package/src/sap/fe/core/helpers/TitleHelper.js +6 -0
- package/src/sap/fe/core/helpers/TitleHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/TitleHelper.ts +295 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +4 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +1 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +3 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +41 -17
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +45 -21
- package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +8 -4
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +7 -2
- package/src/sap/fe/core/library-dbg.js +4 -3
- package/src/sap/fe/core/library-preload.js +91 -74
- package/src/sap/fe/core/library-preload.js.map +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/library.js.map +1 -1
- package/src/sap/fe/core/library.ts +1 -1
- package/src/sap/fe/core/manifest.json +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +4 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +3 -2
- package/src/sap/fe/core/messagebundle.properties +12 -8
- package/src/sap/fe/core/messagebundle_ar.properties +7 -5
- package/src/sap/fe/core/messagebundle_bg.properties +7 -5
- package/src/sap/fe/core/messagebundle_ca.properties +7 -5
- package/src/sap/fe/core/messagebundle_cs.properties +7 -5
- package/src/sap/fe/core/messagebundle_cy.properties +7 -5
- package/src/sap/fe/core/messagebundle_da.properties +7 -5
- package/src/sap/fe/core/messagebundle_de.properties +7 -5
- package/src/sap/fe/core/messagebundle_el.properties +7 -5
- package/src/sap/fe/core/messagebundle_en.properties +7 -5
- package/src/sap/fe/core/messagebundle_en_GB.properties +6 -4
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +7 -4
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +6 -4
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +7 -4
- package/src/sap/fe/core/messagebundle_es.properties +7 -5
- package/src/sap/fe/core/messagebundle_es_MX.properties +7 -5
- package/src/sap/fe/core/messagebundle_et.properties +7 -5
- package/src/sap/fe/core/messagebundle_fi.properties +7 -5
- package/src/sap/fe/core/messagebundle_fr.properties +7 -5
- package/src/sap/fe/core/messagebundle_fr_CA.properties +8 -6
- package/src/sap/fe/core/messagebundle_hi.properties +7 -5
- package/src/sap/fe/core/messagebundle_hr.properties +7 -5
- package/src/sap/fe/core/messagebundle_hu.properties +7 -5
- package/src/sap/fe/core/messagebundle_id.properties +7 -5
- package/src/sap/fe/core/messagebundle_it.properties +8 -6
- package/src/sap/fe/core/messagebundle_iw.properties +7 -5
- package/src/sap/fe/core/messagebundle_ja.properties +7 -5
- package/src/sap/fe/core/messagebundle_kk.properties +7 -5
- package/src/sap/fe/core/messagebundle_ko.properties +7 -5
- package/src/sap/fe/core/messagebundle_lt.properties +7 -5
- package/src/sap/fe/core/messagebundle_lv.properties +7 -5
- package/src/sap/fe/core/messagebundle_ms.properties +7 -5
- package/src/sap/fe/core/messagebundle_nl.properties +7 -5
- package/src/sap/fe/core/messagebundle_no.properties +7 -5
- package/src/sap/fe/core/messagebundle_pl.properties +7 -5
- package/src/sap/fe/core/messagebundle_pt.properties +7 -5
- package/src/sap/fe/core/messagebundle_pt_PT.properties +7 -5
- package/src/sap/fe/core/messagebundle_ro.properties +7 -5
- package/src/sap/fe/core/messagebundle_ru.properties +7 -5
- package/src/sap/fe/core/messagebundle_sh.properties +7 -5
- package/src/sap/fe/core/messagebundle_sk.properties +7 -5
- package/src/sap/fe/core/messagebundle_sl.properties +7 -5
- package/src/sap/fe/core/messagebundle_sv.properties +7 -5
- package/src/sap/fe/core/messagebundle_th.properties +7 -5
- package/src/sap/fe/core/messagebundle_tr.properties +7 -5
- package/src/sap/fe/core/messagebundle_uk.properties +7 -5
- package/src/sap/fe/core/messagebundle_vi.properties +7 -5
- package/src/sap/fe/core/messagebundle_zh_CN.properties +7 -5
- package/src/sap/fe/core/messagebundle_zh_TW.properties +7 -5
- package/src/sap/fe/core/operationsHelper-dbg.js +1 -1
- package/src/sap/fe/core/operationsHelper.ts +1 -1
- package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +8 -2
- package/src/sap/fe/core/rootView/Fcl.controller.js +1 -1
- package/src/sap/fe/core/rootView/Fcl.controller.js.map +1 -1
- package/src/sap/fe/core/rootView/Fcl.controller.ts +8 -1
- package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +8 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
- package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +10 -3
- package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +16 -6
- package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +10 -4
- package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +54 -5
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +52 -6
- package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +31 -14
- package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +15 -1
- package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +10 -4
- package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +29 -7
- package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +5 -2
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +9 -5
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +1 -2
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +2 -18
- package/src/sap/fe/core/templating/CommonFormatters-dbg.js +8 -8
- package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.ts +9 -9
- package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +1 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
- package/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +38 -2
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataFieldFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +40 -0
- package/src/sap/fe/core/templating/FieldControlHelper-dbg.js +5 -6
- package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
- package/src/sap/fe/core/templating/FieldControlHelper.js.map +1 -1
- package/src/sap/fe/core/templating/FieldControlHelper.ts +13 -11
- package/src/sap/fe/core/templating/FilterHelper-dbg.js +13 -1
- package/src/sap/fe/core/templating/FilterHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
- package/src/sap/fe/core/templating/FilterHelper.ts +13 -1
- package/src/sap/fe/core/templating/PropertyHelper-dbg.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.ts +7 -7
- package/src/sap/fe/core/templating/UIFormatters-dbg.js +5 -6
- package/src/sap/fe/core/templating/UIFormatters.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/UIFormatters.ts +6 -7
- package/src/sap/fe/core/type/TypeUtil-dbg.js +2 -2
- package/src/sap/fe/core/type/TypeUtil.js +1 -1
- package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
- package/src/sap/fe/core/type/TypeUtil.ts +2 -2
- package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +0 -243
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +0 -6
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +0 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +0 -283
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +0 -121
- package/src/sap/fe/core/controllerextensions/collaboration/UserDetails.fragment.xml +0 -11
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +0 -59
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +0 -171
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +0 -6
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +0 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +0 -184
package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
|
-
*/
|
|
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
|
-
"use strict";
|
|
7
|
-
|
|
8
|
-
var _exports = {};
|
|
9
|
-
var DraftDataLossOptions;
|
|
10
|
-
(function (DraftDataLossOptions) {
|
|
11
|
-
DraftDataLossOptions["Save"] = "draftDataLossOptionSave";
|
|
12
|
-
DraftDataLossOptions["Keep"] = "draftDataLossOptionKeep";
|
|
13
|
-
DraftDataLossOptions["Discard"] = "draftDataLossOptionDiscard";
|
|
14
|
-
})(DraftDataLossOptions || (DraftDataLossOptions = {}));
|
|
15
|
-
let onDataLossConfirmedFollowUpFunction;
|
|
16
|
-
let onDataLossCancelFollowUpFunction;
|
|
17
|
-
function fnDataLossConfirmation(fnOnDataLossOk, fnOnDataLossCancel, controller, skipBindingToView) {
|
|
18
|
-
// Open the data loss popup and after processing the selected function finally call
|
|
19
|
-
// onDataLossConfirmed which resolves the promise and leads to processing of the originally
|
|
20
|
-
// triggered action like e.g. a back navigation
|
|
21
|
-
let dataLossPopup;
|
|
22
|
-
onDataLossConfirmedFollowUpFunction = fnOnDataLossOk;
|
|
23
|
-
onDataLossCancelFollowUpFunction = fnOnDataLossCancel;
|
|
24
|
-
const fragmentName = "sap.fe.core.controls.DataLossOrDraftDiscard.DataLossDraft";
|
|
25
|
-
const view = controller.getView();
|
|
26
|
-
const fragmentController = {
|
|
27
|
-
onDataLossOk: function () {
|
|
28
|
-
handleDataLossOk(dataLossPopup, controller, onDataLossConfirmedFollowUpFunction, skipBindingToView);
|
|
29
|
-
},
|
|
30
|
-
onDataLossCancel: function () {
|
|
31
|
-
onDataLossCancelFollowUpFunction();
|
|
32
|
-
dataLossPopup.close();
|
|
33
|
-
},
|
|
34
|
-
setDataLossPopup: function (inDataLossPopup) {
|
|
35
|
-
controller.dataLossPopup = inDataLossPopup;
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
const localThisModel = new JSONModel({}),
|
|
39
|
-
preprocessorSettings = {
|
|
40
|
-
bindingContexts: {
|
|
41
|
-
this: localThisModel.createBindingContext("/")
|
|
42
|
-
},
|
|
43
|
-
models: {
|
|
44
|
-
this: localThisModel
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
if (controller.dataLossPopup) {
|
|
48
|
-
dataLossPopup = controller.dataLossPopup;
|
|
49
|
-
dataLossPopup.open();
|
|
50
|
-
selectAndFocusFirstEntry(dataLossPopup);
|
|
51
|
-
} else {
|
|
52
|
-
const dialogFragment = XMLTemplateProcessor.loadTemplate(fragmentName, "fragment");
|
|
53
|
-
Promise.resolve(XMLPreprocessor.process(dialogFragment, {
|
|
54
|
-
name: fragmentName
|
|
55
|
-
}, preprocessorSettings)).then(fragment => {
|
|
56
|
-
return Fragment.load({
|
|
57
|
-
definition: fragment,
|
|
58
|
-
controller: fragmentController
|
|
59
|
-
});
|
|
60
|
-
}).then(popup => {
|
|
61
|
-
dataLossPopup = popup;
|
|
62
|
-
selectAndFocusFirstEntry(dataLossPopup);
|
|
63
|
-
const dataLossOptionsList = dataLossPopup.getContent().find(element => element.data("listIdentifier") === "draftDataLossOptionsList");
|
|
64
|
-
dataLossOptionsList.addEventDelegate({
|
|
65
|
-
onsapenter: function () {
|
|
66
|
-
handleDataLossOk(dataLossPopup, controller, onDataLossConfirmedFollowUpFunction, skipBindingToView);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
view.addDependent(dataLossPopup);
|
|
70
|
-
dataLossPopup.open();
|
|
71
|
-
fragmentController.setDataLossPopup(dataLossPopup);
|
|
72
|
-
}).catch(function (error) {
|
|
73
|
-
Log.error("Error while opening the Discard Dialog fragment", error);
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
function performAfterDiscardorKeepDraft(processFunctionOnDatalossOk, processFunctionOnDatalossCancel, controller, skipBindingToView) {
|
|
78
|
-
// Depending on if the user closed the data loss popup with Ok or Cancel,
|
|
79
|
-
// execute the provided follow-up function and resolve or reject the promise
|
|
80
|
-
return new Promise(function (resolve, reject) {
|
|
81
|
-
const dataLossPopupOk = function (context) {
|
|
82
|
-
const returnValue = processFunctionOnDatalossOk(context);
|
|
83
|
-
resolve(returnValue);
|
|
84
|
-
};
|
|
85
|
-
const dataLossPopupCancel = function () {
|
|
86
|
-
processFunctionOnDatalossCancel();
|
|
87
|
-
reject();
|
|
88
|
-
};
|
|
89
|
-
fnDataLossConfirmation(dataLossPopupOk, dataLossPopupCancel, controller, skipBindingToView);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
_exports.performAfterDiscardorKeepDraft = performAfterDiscardorKeepDraft;
|
|
93
|
-
function discardDraft(controller, skipBindingToView) {
|
|
94
|
-
const context = controller.getView().getBindingContext();
|
|
95
|
-
const params = {
|
|
96
|
-
skipBackNavigation: true,
|
|
97
|
-
skipDiscardPopover: true,
|
|
98
|
-
skipBindingToView: skipBindingToView !== undefined ? skipBindingToView : true
|
|
99
|
-
};
|
|
100
|
-
return controller.editFlow.cancelDocument(context, params);
|
|
101
|
-
}
|
|
102
|
-
_exports.discardDraft = discardDraft;
|
|
103
|
-
function saveDocument(controller) {
|
|
104
|
-
const context = controller.getView().getBindingContext();
|
|
105
|
-
// We check if we are on the OP and then call the internal _saveDocument from the OP controller
|
|
106
|
-
// since here some special handling is done for creationRow before editFlow.saveDocument is called.
|
|
107
|
-
// In case of a custom controller we directly call saveDocument from the editFlow
|
|
108
|
-
if (controller.isA("sap.fe.templates.ObjectPage.ObjectPageController")) {
|
|
109
|
-
return controller._saveDocument(context);
|
|
110
|
-
} else {
|
|
111
|
-
return controller.editFlow.saveDocument(context);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
_exports.saveDocument = saveDocument;
|
|
115
|
-
function getSelectedKey(dataLossPopup) {
|
|
116
|
-
// For not using control IDs we introduced customData in the fragment and
|
|
117
|
-
// use it here for finding the correct list in the dialog and for
|
|
118
|
-
// determining the selected option from the list
|
|
119
|
-
const dataLossOptionsList = dataLossPopup.getContent().find(element => element.data("listIdentifier") === "draftDataLossOptionsList");
|
|
120
|
-
return dataLossOptionsList.getSelectedItem().data("itemKey");
|
|
121
|
-
}
|
|
122
|
-
_exports.getSelectedKey = getSelectedKey;
|
|
123
|
-
function selectAndFocusFirstEntry(dataLossPopup) {
|
|
124
|
-
// For not using control IDs we introduced customData in the fragment and
|
|
125
|
-
// use it here for finding the correct list in the dialog.
|
|
126
|
-
const dataLossOptionsList = dataLossPopup.getContent().find(element => element.data("listIdentifier") === "draftDataLossOptionsList");
|
|
127
|
-
// Preselect the first entry in the list
|
|
128
|
-
const firstListItemOption = dataLossOptionsList.getItems()[0];
|
|
129
|
-
dataLossOptionsList.setSelectedItem(firstListItemOption);
|
|
130
|
-
// By default set the focus on the first list item of the dialog
|
|
131
|
-
// We do not set the focus on the button, but catch the ENTER key in the dialog
|
|
132
|
-
// and process it as Ok, since focusing the button was reported as an ACC issue
|
|
133
|
-
firstListItemOption === null || firstListItemOption === void 0 ? void 0 : firstListItemOption.focus();
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Executes the logic when the data loss dialog is confirmed.
|
|
138
|
-
*
|
|
139
|
-
* @param dataLossPopup Reference to the data loss dialog
|
|
140
|
-
* @param controller Reference to the controller
|
|
141
|
-
* @param dataLossConfirmationFollowUpFunction The action to be performed after the selected option has been executed
|
|
142
|
-
* @param skipBindingToView Forwarded to discardDraft
|
|
143
|
-
*/
|
|
144
|
-
_exports.selectAndFocusFirstEntry = selectAndFocusFirstEntry;
|
|
145
|
-
function handleDataLossOk(dataLossPopup, controller, dataLossConfirmationFollowUpFunction, skipBindingToView) {
|
|
146
|
-
const selectedKey = getSelectedKey(dataLossPopup);
|
|
147
|
-
if (selectedKey === DraftDataLossOptions.Save) {
|
|
148
|
-
saveDocument(controller).then(dataLossConfirmationFollowUpFunction).catch(function (error) {
|
|
149
|
-
Log.error("Error while saving document", error);
|
|
150
|
-
});
|
|
151
|
-
dataLossPopup.close();
|
|
152
|
-
} else if (selectedKey === DraftDataLossOptions.Keep) {
|
|
153
|
-
dataLossConfirmationFollowUpFunction();
|
|
154
|
-
dataLossPopup.close();
|
|
155
|
-
} else if (selectedKey === DraftDataLossOptions.Discard) {
|
|
156
|
-
discardDraft(controller, skipBindingToView).then(dataLossConfirmationFollowUpFunction).catch(function (error) {
|
|
157
|
-
Log.error("Error while discarding draft", error);
|
|
158
|
-
});
|
|
159
|
-
dataLossPopup.close();
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
_exports.handleDataLossOk = handleDataLossOk;
|
|
163
|
-
return {
|
|
164
|
-
performAfterDiscardorKeepDraft,
|
|
165
|
-
discardDraft,
|
|
166
|
-
saveDocument,
|
|
167
|
-
getSelectedKey,
|
|
168
|
-
selectAndFocusFirstEntry
|
|
169
|
-
};
|
|
170
|
-
}, false);
|
|
171
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEcmFmdERhdGFMb3NzT3B0aW9ucyIsIm9uRGF0YUxvc3NDb25maXJtZWRGb2xsb3dVcEZ1bmN0aW9uIiwib25EYXRhTG9zc0NhbmNlbEZvbGxvd1VwRnVuY3Rpb24iLCJmbkRhdGFMb3NzQ29uZmlybWF0aW9uIiwiZm5PbkRhdGFMb3NzT2siLCJmbk9uRGF0YUxvc3NDYW5jZWwiLCJjb250cm9sbGVyIiwic2tpcEJpbmRpbmdUb1ZpZXciLCJkYXRhTG9zc1BvcHVwIiwiZnJhZ21lbnROYW1lIiwidmlldyIsImdldFZpZXciLCJmcmFnbWVudENvbnRyb2xsZXIiLCJvbkRhdGFMb3NzT2siLCJoYW5kbGVEYXRhTG9zc09rIiwib25EYXRhTG9zc0NhbmNlbCIsImNsb3NlIiwic2V0RGF0YUxvc3NQb3B1cCIsImluRGF0YUxvc3NQb3B1cCIsImxvY2FsVGhpc01vZGVsIiwiSlNPTk1vZGVsIiwicHJlcHJvY2Vzc29yU2V0dGluZ3MiLCJiaW5kaW5nQ29udGV4dHMiLCJ0aGlzIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJtb2RlbHMiLCJvcGVuIiwic2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5IiwiZGlhbG9nRnJhZ21lbnQiLCJYTUxUZW1wbGF0ZVByb2Nlc3NvciIsImxvYWRUZW1wbGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsIm5hbWUiLCJ0aGVuIiwiZnJhZ21lbnQiLCJGcmFnbWVudCIsImxvYWQiLCJkZWZpbml0aW9uIiwicG9wdXAiLCJkYXRhTG9zc09wdGlvbnNMaXN0IiwiZ2V0Q29udGVudCIsImZpbmQiLCJlbGVtZW50IiwiZGF0YSIsImFkZEV2ZW50RGVsZWdhdGUiLCJvbnNhcGVudGVyIiwiYWRkRGVwZW5kZW50IiwiY2F0Y2giLCJlcnJvciIsIkxvZyIsInBlcmZvcm1BZnRlckRpc2NhcmRvcktlZXBEcmFmdCIsInByb2Nlc3NGdW5jdGlvbk9uRGF0YWxvc3NPayIsInByb2Nlc3NGdW5jdGlvbk9uRGF0YWxvc3NDYW5jZWwiLCJyZWplY3QiLCJkYXRhTG9zc1BvcHVwT2siLCJjb250ZXh0IiwicmV0dXJuVmFsdWUiLCJkYXRhTG9zc1BvcHVwQ2FuY2VsIiwiZGlzY2FyZERyYWZ0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJwYXJhbXMiLCJza2lwQmFja05hdmlnYXRpb24iLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJ1bmRlZmluZWQiLCJlZGl0RmxvdyIsImNhbmNlbERvY3VtZW50Iiwic2F2ZURvY3VtZW50IiwiaXNBIiwiX3NhdmVEb2N1bWVudCIsImdldFNlbGVjdGVkS2V5IiwiZ2V0U2VsZWN0ZWRJdGVtIiwiZmlyc3RMaXN0SXRlbU9wdGlvbiIsImdldEl0ZW1zIiwic2V0U2VsZWN0ZWRJdGVtIiwiZm9jdXMiLCJkYXRhTG9zc0NvbmZpcm1hdGlvbkZvbGxvd1VwRnVuY3Rpb24iLCJzZWxlY3RlZEtleSIsIlNhdmUiLCJLZWVwIiwiRGlzY2FyZCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBDdXN0b21MaXN0SXRlbSBmcm9tIFwic2FwL20vQ3VzdG9tTGlzdEl0ZW1cIjtcbmltcG9ydCB0eXBlIERpYWxvZyBmcm9tIFwic2FwL20vRGlhbG9nXCI7XG5pbXBvcnQgdHlwZSBMaXN0IGZyb20gXCJzYXAvbS9MaXN0XCI7XG5pbXBvcnQgRnJhZ21lbnQgZnJvbSBcInNhcC91aS9jb3JlL0ZyYWdtZW50XCI7XG5pbXBvcnQgWE1MUHJlcHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS91dGlsL1hNTFByZXByb2Nlc3NvclwiO1xuaW1wb3J0IFhNTFRlbXBsYXRlUHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS9YTUxUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5cbmVudW0gRHJhZnREYXRhTG9zc09wdGlvbnMge1xuXHRTYXZlID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uU2F2ZVwiLFxuXHRLZWVwID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uS2VlcFwiLFxuXHREaXNjYXJkID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uRGlzY2FyZFwiXG59XG5cbmxldCBvbkRhdGFMb3NzQ29uZmlybWVkRm9sbG93VXBGdW5jdGlvbjogRnVuY3Rpb247XG5sZXQgb25EYXRhTG9zc0NhbmNlbEZvbGxvd1VwRnVuY3Rpb246IEZ1bmN0aW9uO1xuZnVuY3Rpb24gZm5EYXRhTG9zc0NvbmZpcm1hdGlvbihmbk9uRGF0YUxvc3NPazogYW55LCBmbk9uRGF0YUxvc3NDYW5jZWw6IGFueSwgY29udHJvbGxlcjogYW55LCBza2lwQmluZGluZ1RvVmlldzogYW55KSB7XG5cdC8vIE9wZW4gdGhlIGRhdGEgbG9zcyBwb3B1cCBhbmQgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgc2VsZWN0ZWQgZnVuY3Rpb24gZmluYWxseSBjYWxsXG5cdC8vIG9uRGF0YUxvc3NDb25maXJtZWQgd2hpY2ggcmVzb2x2ZXMgdGhlIHByb21pc2UgYW5kIGxlYWRzIHRvIHByb2Nlc3Npbmcgb2YgdGhlIG9yaWdpbmFsbHlcblx0Ly8gdHJpZ2dlcmVkIGFjdGlvbiBsaWtlIGUuZy4gYSBiYWNrIG5hdmlnYXRpb25cblx0bGV0IGRhdGFMb3NzUG9wdXA6IERpYWxvZztcblx0b25EYXRhTG9zc0NvbmZpcm1lZEZvbGxvd1VwRnVuY3Rpb24gPSBmbk9uRGF0YUxvc3NPaztcblx0b25EYXRhTG9zc0NhbmNlbEZvbGxvd1VwRnVuY3Rpb24gPSBmbk9uRGF0YUxvc3NDYW5jZWw7XG5cdGNvbnN0IGZyYWdtZW50TmFtZSA9IFwic2FwLmZlLmNvcmUuY29udHJvbHMuRGF0YUxvc3NPckRyYWZ0RGlzY2FyZC5EYXRhTG9zc0RyYWZ0XCI7XG5cdGNvbnN0IHZpZXcgPSBjb250cm9sbGVyLmdldFZpZXcoKTtcblx0Y29uc3QgZnJhZ21lbnRDb250cm9sbGVyOiBhbnkgPSB7XG5cdFx0b25EYXRhTG9zc09rOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRoYW5kbGVEYXRhTG9zc09rKGRhdGFMb3NzUG9wdXAsIGNvbnRyb2xsZXIsIG9uRGF0YUxvc3NDb25maXJtZWRGb2xsb3dVcEZ1bmN0aW9uLCBza2lwQmluZGluZ1RvVmlldyk7XG5cdFx0fSxcblx0XHRvbkRhdGFMb3NzQ2FuY2VsOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRvbkRhdGFMb3NzQ2FuY2VsRm9sbG93VXBGdW5jdGlvbigpO1xuXHRcdFx0ZGF0YUxvc3NQb3B1cC5jbG9zZSgpO1xuXHRcdH0sXG5cdFx0c2V0RGF0YUxvc3NQb3B1cDogZnVuY3Rpb24gKGluRGF0YUxvc3NQb3B1cDogRGlhbG9nKSB7XG5cdFx0XHRjb250cm9sbGVyLmRhdGFMb3NzUG9wdXAgPSBpbkRhdGFMb3NzUG9wdXA7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGxvY2FsVGhpc01vZGVsID0gbmV3IEpTT05Nb2RlbCh7fSksXG5cdFx0cHJlcHJvY2Vzc29yU2V0dGluZ3MgPSB7XG5cdFx0XHRiaW5kaW5nQ29udGV4dHM6IHtcblx0XHRcdFx0dGhpczogbG9jYWxUaGlzTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpXG5cdFx0XHR9LFxuXHRcdFx0bW9kZWxzOiB7XG5cdFx0XHRcdHRoaXM6IGxvY2FsVGhpc01vZGVsXG5cdFx0XHR9XG5cdFx0fTtcblxuXHRpZiAoY29udHJvbGxlci5kYXRhTG9zc1BvcHVwKSB7XG5cdFx0ZGF0YUxvc3NQb3B1cCA9IGNvbnRyb2xsZXIuZGF0YUxvc3NQb3B1cDtcblx0XHRkYXRhTG9zc1BvcHVwLm9wZW4oKTtcblx0XHRzZWxlY3RBbmRGb2N1c0ZpcnN0RW50cnkoZGF0YUxvc3NQb3B1cCk7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgZGlhbG9nRnJhZ21lbnQgPSBYTUxUZW1wbGF0ZVByb2Nlc3Nvci5sb2FkVGVtcGxhdGUoZnJhZ21lbnROYW1lLCBcImZyYWdtZW50XCIpO1xuXHRcdFByb21pc2UucmVzb2x2ZShYTUxQcmVwcm9jZXNzb3IucHJvY2VzcyhkaWFsb2dGcmFnbWVudCwgeyBuYW1lOiBmcmFnbWVudE5hbWUgfSwgcHJlcHJvY2Vzc29yU2V0dGluZ3MpKVxuXHRcdFx0LnRoZW4oKGZyYWdtZW50KSA9PiB7XG5cdFx0XHRcdHJldHVybiBGcmFnbWVudC5sb2FkKHsgZGVmaW5pdGlvbjogZnJhZ21lbnQsIGNvbnRyb2xsZXI6IGZyYWdtZW50Q29udHJvbGxlciB9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigocG9wdXA6IGFueSkgPT4ge1xuXHRcdFx0XHRkYXRhTG9zc1BvcHVwID0gcG9wdXA7XG5cdFx0XHRcdHNlbGVjdEFuZEZvY3VzRmlyc3RFbnRyeShkYXRhTG9zc1BvcHVwKTtcblx0XHRcdFx0Y29uc3QgZGF0YUxvc3NPcHRpb25zTGlzdDogTGlzdCA9IGRhdGFMb3NzUG9wdXBcblx0XHRcdFx0XHQuZ2V0Q29udGVudCgpXG5cdFx0XHRcdFx0LmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuZGF0YShcImxpc3RJZGVudGlmaWVyXCIpID09PSBcImRyYWZ0RGF0YUxvc3NPcHRpb25zTGlzdFwiKSBhcyBMaXN0O1xuXHRcdFx0XHRkYXRhTG9zc09wdGlvbnNMaXN0LmFkZEV2ZW50RGVsZWdhdGUoe1xuXHRcdFx0XHRcdG9uc2FwZW50ZXI6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdGhhbmRsZURhdGFMb3NzT2soZGF0YUxvc3NQb3B1cCwgY29udHJvbGxlciwgb25EYXRhTG9zc0NvbmZpcm1lZEZvbGxvd1VwRnVuY3Rpb24sIHNraXBCaW5kaW5nVG9WaWV3KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHR2aWV3LmFkZERlcGVuZGVudChkYXRhTG9zc1BvcHVwKTtcblx0XHRcdFx0ZGF0YUxvc3NQb3B1cC5vcGVuKCk7XG5cdFx0XHRcdGZyYWdtZW50Q29udHJvbGxlci5zZXREYXRhTG9zc1BvcHVwKGRhdGFMb3NzUG9wdXApO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBvcGVuaW5nIHRoZSBEaXNjYXJkIERpYWxvZyBmcmFnbWVudFwiLCBlcnJvcik7XG5cdFx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0KFxuXHRwcm9jZXNzRnVuY3Rpb25PbkRhdGFsb3NzT2s6IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc0NhbmNlbDogYW55LFxuXHRjb250cm9sbGVyOiBhbnksXG5cdHNraXBCaW5kaW5nVG9WaWV3OiBhbnlcbikge1xuXHQvLyBEZXBlbmRpbmcgb24gaWYgdGhlIHVzZXIgY2xvc2VkIHRoZSBkYXRhIGxvc3MgcG9wdXAgd2l0aCBPayBvciBDYW5jZWwsXG5cdC8vIGV4ZWN1dGUgdGhlIHByb3ZpZGVkIGZvbGxvdy11cCBmdW5jdGlvbiBhbmQgcmVzb2x2ZSBvciByZWplY3QgdGhlIHByb21pc2Vcblx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCwgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkKSB7XG5cdFx0Y29uc3QgZGF0YUxvc3NQb3B1cE9rID0gZnVuY3Rpb24gKGNvbnRleHQ6IGFueSkge1xuXHRcdFx0Y29uc3QgcmV0dXJuVmFsdWUgPSBwcm9jZXNzRnVuY3Rpb25PbkRhdGFsb3NzT2soY29udGV4dCk7XG5cdFx0XHRyZXNvbHZlKHJldHVyblZhbHVlKTtcblx0XHR9O1xuXHRcdGNvbnN0IGRhdGFMb3NzUG9wdXBDYW5jZWwgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25PbkRhdGFsb3NzQ2FuY2VsKCk7XG5cdFx0XHRyZWplY3QoKTtcblx0XHR9O1xuXHRcdGZuRGF0YUxvc3NDb25maXJtYXRpb24oZGF0YUxvc3NQb3B1cE9rLCBkYXRhTG9zc1BvcHVwQ2FuY2VsLCBjb250cm9sbGVyLCBza2lwQmluZGluZ1RvVmlldyk7XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzY2FyZERyYWZ0KGNvbnRyb2xsZXI6IGFueSwgc2tpcEJpbmRpbmdUb1ZpZXc6IGFueSkge1xuXHRjb25zdCBjb250ZXh0ID0gY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0Y29uc3QgcGFyYW1zID0ge1xuXHRcdHNraXBCYWNrTmF2aWdhdGlvbjogdHJ1ZSxcblx0XHRza2lwRGlzY2FyZFBvcG92ZXI6IHRydWUsXG5cdFx0c2tpcEJpbmRpbmdUb1ZpZXc6IHNraXBCaW5kaW5nVG9WaWV3ICE9PSB1bmRlZmluZWQgPyBza2lwQmluZGluZ1RvVmlldyA6IHRydWVcblx0fTtcblx0cmV0dXJuIGNvbnRyb2xsZXIuZWRpdEZsb3cuY2FuY2VsRG9jdW1lbnQoY29udGV4dCwgcGFyYW1zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVEb2N1bWVudChjb250cm9sbGVyOiBhbnkpIHtcblx0Y29uc3QgY29udGV4dCA9IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdC8vIFdlIGNoZWNrIGlmIHdlIGFyZSBvbiB0aGUgT1AgYW5kIHRoZW4gY2FsbCB0aGUgaW50ZXJuYWwgX3NhdmVEb2N1bWVudCBmcm9tIHRoZSBPUCBjb250cm9sbGVyXG5cdC8vIHNpbmNlIGhlcmUgc29tZSBzcGVjaWFsIGhhbmRsaW5nIGlzIGRvbmUgZm9yIGNyZWF0aW9uUm93IGJlZm9yZSBlZGl0Rmxvdy5zYXZlRG9jdW1lbnQgaXMgY2FsbGVkLlxuXHQvLyBJbiBjYXNlIG9mIGEgY3VzdG9tIGNvbnRyb2xsZXIgd2UgZGlyZWN0bHkgY2FsbCBzYXZlRG9jdW1lbnQgZnJvbSB0aGUgZWRpdEZsb3dcblx0aWYgKGNvbnRyb2xsZXIuaXNBKFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLk9iamVjdFBhZ2VDb250cm9sbGVyXCIpKSB7XG5cdFx0cmV0dXJuIGNvbnRyb2xsZXIuX3NhdmVEb2N1bWVudChjb250ZXh0KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gY29udHJvbGxlci5lZGl0Rmxvdy5zYXZlRG9jdW1lbnQoY29udGV4dCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGVkS2V5KGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHQvLyBGb3Igbm90IHVzaW5nIGNvbnRyb2wgSURzIHdlIGludHJvZHVjZWQgY3VzdG9tRGF0YSBpbiB0aGUgZnJhZ21lbnQgYW5kXG5cdC8vIHVzZSBpdCBoZXJlIGZvciBmaW5kaW5nIHRoZSBjb3JyZWN0IGxpc3QgaW4gdGhlIGRpYWxvZyBhbmQgZm9yXG5cdC8vIGRldGVybWluaW5nIHRoZSBzZWxlY3RlZCBvcHRpb24gZnJvbSB0aGUgbGlzdFxuXHRjb25zdCBkYXRhTG9zc09wdGlvbnNMaXN0OiBMaXN0ID0gZGF0YUxvc3NQb3B1cFxuXHRcdC5nZXRDb250ZW50KClcblx0XHQuZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5kYXRhKFwibGlzdElkZW50aWZpZXJcIikgPT09IFwiZHJhZnREYXRhTG9zc09wdGlvbnNMaXN0XCIpIGFzIExpc3Q7XG5cdHJldHVybiBkYXRhTG9zc09wdGlvbnNMaXN0LmdldFNlbGVjdGVkSXRlbSgpLmRhdGEoXCJpdGVtS2V5XCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5KGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHQvLyBGb3Igbm90IHVzaW5nIGNvbnRyb2wgSURzIHdlIGludHJvZHVjZWQgY3VzdG9tRGF0YSBpbiB0aGUgZnJhZ21lbnQgYW5kXG5cdC8vIHVzZSBpdCBoZXJlIGZvciBmaW5kaW5nIHRoZSBjb3JyZWN0IGxpc3QgaW4gdGhlIGRpYWxvZy5cblx0Y29uc3QgZGF0YUxvc3NPcHRpb25zTGlzdDogTGlzdCA9IGRhdGFMb3NzUG9wdXBcblx0XHQuZ2V0Q29udGVudCgpXG5cdFx0LmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuZGF0YShcImxpc3RJZGVudGlmaWVyXCIpID09PSBcImRyYWZ0RGF0YUxvc3NPcHRpb25zTGlzdFwiKSBhcyBMaXN0O1xuXHQvLyBQcmVzZWxlY3QgdGhlIGZpcnN0IGVudHJ5IGluIHRoZSBsaXN0XG5cdGNvbnN0IGZpcnN0TGlzdEl0ZW1PcHRpb246IEN1c3RvbUxpc3RJdGVtID0gZGF0YUxvc3NPcHRpb25zTGlzdC5nZXRJdGVtcygpWzBdIGFzIEN1c3RvbUxpc3RJdGVtO1xuXHRkYXRhTG9zc09wdGlvbnNMaXN0LnNldFNlbGVjdGVkSXRlbShmaXJzdExpc3RJdGVtT3B0aW9uKTtcblx0Ly8gQnkgZGVmYXVsdCBzZXQgdGhlIGZvY3VzIG9uIHRoZSBmaXJzdCBsaXN0IGl0ZW0gb2YgdGhlIGRpYWxvZ1xuXHQvLyBXZSBkbyBub3Qgc2V0IHRoZSBmb2N1cyBvbiB0aGUgYnV0dG9uLCBidXQgY2F0Y2ggdGhlIEVOVEVSIGtleSBpbiB0aGUgZGlhbG9nXG5cdC8vIGFuZCBwcm9jZXNzIGl0IGFzIE9rLCBzaW5jZSBmb2N1c2luZyB0aGUgYnV0dG9uIHdhcyByZXBvcnRlZCBhcyBhbiBBQ0MgaXNzdWVcblx0Zmlyc3RMaXN0SXRlbU9wdGlvbj8uZm9jdXMoKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyB0aGUgbG9naWMgd2hlbiB0aGUgZGF0YSBsb3NzIGRpYWxvZyBpcyBjb25maXJtZWQuXG4gKlxuICogQHBhcmFtIGRhdGFMb3NzUG9wdXAgUmVmZXJlbmNlIHRvIHRoZSBkYXRhIGxvc3MgZGlhbG9nXG4gKiBAcGFyYW0gY29udHJvbGxlciBSZWZlcmVuY2UgdG8gdGhlIGNvbnRyb2xsZXJcbiAqIEBwYXJhbSBkYXRhTG9zc0NvbmZpcm1hdGlvbkZvbGxvd1VwRnVuY3Rpb24gVGhlIGFjdGlvbiB0byBiZSBwZXJmb3JtZWQgYWZ0ZXIgdGhlIHNlbGVjdGVkIG9wdGlvbiBoYXMgYmVlbiBleGVjdXRlZFxuICogQHBhcmFtIHNraXBCaW5kaW5nVG9WaWV3IEZvcndhcmRlZCB0byBkaXNjYXJkRHJhZnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZURhdGFMb3NzT2soXG5cdGRhdGFMb3NzUG9wdXA6IERpYWxvZyxcblx0Y29udHJvbGxlcjogYW55LFxuXHRkYXRhTG9zc0NvbmZpcm1hdGlvbkZvbGxvd1VwRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRza2lwQmluZGluZ1RvVmlldzogYm9vbGVhblxuKSB7XG5cdGNvbnN0IHNlbGVjdGVkS2V5ID0gZ2V0U2VsZWN0ZWRLZXkoZGF0YUxvc3NQb3B1cCk7XG5cdGlmIChzZWxlY3RlZEtleSA9PT0gRHJhZnREYXRhTG9zc09wdGlvbnMuU2F2ZSkge1xuXHRcdHNhdmVEb2N1bWVudChjb250cm9sbGVyKVxuXHRcdFx0LnRoZW4oZGF0YUxvc3NDb25maXJtYXRpb25Gb2xsb3dVcEZ1bmN0aW9uKVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIHNhdmluZyBkb2N1bWVudFwiLCBlcnJvcik7XG5cdFx0XHR9KTtcblx0XHRkYXRhTG9zc1BvcHVwLmNsb3NlKCk7XG5cdH0gZWxzZSBpZiAoc2VsZWN0ZWRLZXkgPT09IERyYWZ0RGF0YUxvc3NPcHRpb25zLktlZXApIHtcblx0XHRkYXRhTG9zc0NvbmZpcm1hdGlvbkZvbGxvd1VwRnVuY3Rpb24oKTtcblx0XHRkYXRhTG9zc1BvcHVwLmNsb3NlKCk7XG5cdH0gZWxzZSBpZiAoc2VsZWN0ZWRLZXkgPT09IERyYWZ0RGF0YUxvc3NPcHRpb25zLkRpc2NhcmQpIHtcblx0XHRkaXNjYXJkRHJhZnQoY29udHJvbGxlciwgc2tpcEJpbmRpbmdUb1ZpZXcpXG5cdFx0XHQudGhlbihkYXRhTG9zc0NvbmZpcm1hdGlvbkZvbGxvd1VwRnVuY3Rpb24pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZGlzY2FyZGluZyBkcmFmdFwiLCBlcnJvcik7XG5cdFx0XHR9KTtcblx0XHRkYXRhTG9zc1BvcHVwLmNsb3NlKCk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgeyBwZXJmb3JtQWZ0ZXJEaXNjYXJkb3JLZWVwRHJhZnQsIGRpc2NhcmREcmFmdCwgc2F2ZURvY3VtZW50LCBnZXRTZWxlY3RlZEtleSwgc2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5IH07XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7O01BU0tBLG9CQUFvQjtFQUFBLFdBQXBCQSxvQkFBb0I7SUFBcEJBLG9CQUFvQjtJQUFwQkEsb0JBQW9CO0lBQXBCQSxvQkFBb0I7RUFBQSxHQUFwQkEsb0JBQW9CLEtBQXBCQSxvQkFBb0I7RUFNekIsSUFBSUMsbUNBQTZDO0VBQ2pELElBQUlDLGdDQUEwQztFQUM5QyxTQUFTQyxzQkFBc0IsQ0FBQ0MsY0FBbUIsRUFBRUMsa0JBQXVCLEVBQUVDLFVBQWUsRUFBRUMsaUJBQXNCLEVBQUU7SUFDdEg7SUFDQTtJQUNBO0lBQ0EsSUFBSUMsYUFBcUI7SUFDekJQLG1DQUFtQyxHQUFHRyxjQUFjO0lBQ3BERixnQ0FBZ0MsR0FBR0csa0JBQWtCO0lBQ3JELE1BQU1JLFlBQVksR0FBRywyREFBMkQ7SUFDaEYsTUFBTUMsSUFBSSxHQUFHSixVQUFVLENBQUNLLE9BQU8sRUFBRTtJQUNqQyxNQUFNQyxrQkFBdUIsR0FBRztNQUMvQkMsWUFBWSxFQUFFLFlBQVk7UUFDekJDLGdCQUFnQixDQUFDTixhQUFhLEVBQUVGLFVBQVUsRUFBRUwsbUNBQW1DLEVBQUVNLGlCQUFpQixDQUFDO01BQ3BHLENBQUM7TUFDRFEsZ0JBQWdCLEVBQUUsWUFBWTtRQUM3QmIsZ0NBQWdDLEVBQUU7UUFDbENNLGFBQWEsQ0FBQ1EsS0FBSyxFQUFFO01BQ3RCLENBQUM7TUFDREMsZ0JBQWdCLEVBQUUsVUFBVUMsZUFBdUIsRUFBRTtRQUNwRFosVUFBVSxDQUFDRSxh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
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
|
-
*/
|
|
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(e,t,n,o,s){"use strict";var a={};var i;(function(e){e["Save"]="draftDataLossOptionSave";e["Keep"]="draftDataLossOptionKeep";e["Discard"]="draftDataLossOptionDiscard"})(i||(i={}));let r;let c;function d(a,i,d,f){let u;r=a;c=i;const l="sap.fe.core.controls.DataLossOrDraftDiscard.DataLossDraft";const p=d.getView();const m={onDataLossOk:function(){g(u,d,r,f)},onDataLossCancel:function(){c();u.close()},setDataLossPopup:function(e){d.dataLossPopup=e}};const L=new s({}),v={bindingContexts:{this:L.createBindingContext("/")},models:{this:L}};if(d.dataLossPopup){u=d.dataLossPopup;u.open();D(u)}else{const s=o.loadTemplate(l,"fragment");Promise.resolve(n.process(s,{name:l},v)).then(e=>t.load({definition:e,controller:m})).then(e=>{u=e;D(u);const t=u.getContent().find(e=>e.data("listIdentifier")==="draftDataLossOptionsList");t.addEventDelegate({onsapenter:function(){g(u,d,r,f)}});p.addDependent(u);u.open();m.setDataLossPopup(u)}).catch(function(t){e.error("Error while opening the Discard Dialog fragment",t)})}}function f(e,t,n,o){return new Promise(function(s,a){const i=function(t){const n=e(t);s(n)};const r=function(){t();a()};d(i,r,n,o)})}a.performAfterDiscardorKeepDraft=f;function u(e,t){const n=e.getView().getBindingContext();const o={skipBackNavigation:true,skipDiscardPopover:true,skipBindingToView:t!==undefined?t:true};return e.editFlow.cancelDocument(n,o)}a.discardDraft=u;function l(e){const t=e.getView().getBindingContext();if(e.isA("sap.fe.templates.ObjectPage.ObjectPageController")){return e._saveDocument(t)}else{return e.editFlow.saveDocument(t)}}a.saveDocument=l;function p(e){const t=e.getContent().find(e=>e.data("listIdentifier")==="draftDataLossOptionsList");return t.getSelectedItem().data("itemKey")}a.getSelectedKey=p;function D(e){const t=e.getContent().find(e=>e.data("listIdentifier")==="draftDataLossOptionsList");const n=t.getItems()[0];t.setSelectedItem(n);n===null||n===void 0?void 0:n.focus()}a.selectAndFocusFirstEntry=D;function g(t,n,o,s){const a=p(t);if(a===i.Save){l(n).then(o).catch(function(t){e.error("Error while saving document",t)});t.close()}else if(a===i.Keep){o();t.close()}else if(a===i.Discard){u(n,s).then(o).catch(function(t){e.error("Error while discarding draft",t)});t.close()}}a.handleDataLossOk=g;return{performAfterDiscardorKeepDraft:f,discardDraft:u,saveDocument:l,getSelectedKey:p,selectAndFocusFirstEntry:D}},false);
|
|
6
|
-
//# sourceMappingURL=DataLossOrDraftDiscardHandler.js.map
|
package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DataLossOrDraftDiscardHandler.js","names":["sap","ui","define","Log","Fragment","XMLPreprocessor","XMLTemplateProcessor","JSONModel","_exports","DraftDataLossOptions","onDataLossConfirmedFollowUpFunction","onDataLossCancelFollowUpFunction","fnDataLossConfirmation","fnOnDataLossOk","fnOnDataLossCancel","controller","skipBindingToView","dataLossPopup","fragmentName","view","getView","fragmentController","onDataLossOk","handleDataLossOk","onDataLossCancel","close","setDataLossPopup","inDataLossPopup","localThisModel","preprocessorSettings","bindingContexts","this","createBindingContext","models","open","selectAndFocusFirstEntry","dialogFragment","loadTemplate","Promise","resolve","process","name","then","fragment","load","definition","popup","dataLossOptionsList","getContent","find","element","data","addEventDelegate","onsapenter","addDependent","catch","error","performAfterDiscardorKeepDraft","processFunctionOnDatalossOk","processFunctionOnDatalossCancel","reject","dataLossPopupOk","context","returnValue","dataLossPopupCancel","discardDraft","getBindingContext","params","skipBackNavigation","skipDiscardPopover","undefined","editFlow","cancelDocument","saveDocument","isA","_saveDocument","getSelectedKey","getSelectedItem","firstListItemOption","getItems","setSelectedItem","focus","dataLossConfirmationFollowUpFunction","selectedKey","Save","Keep","Discard"],"sources":["DataLossOrDraftDiscardHandler-dbg.js"],"mappings":"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"}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import Log from "sap/base/Log";
|
|
2
|
-
import type CustomListItem from "sap/m/CustomListItem";
|
|
3
|
-
import type Dialog from "sap/m/Dialog";
|
|
4
|
-
import type List from "sap/m/List";
|
|
5
|
-
import Fragment from "sap/ui/core/Fragment";
|
|
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
|
-
}
|
|
15
|
-
|
|
16
|
-
let onDataLossConfirmedFollowUpFunction: Function;
|
|
17
|
-
let onDataLossCancelFollowUpFunction: Function;
|
|
18
|
-
function fnDataLossConfirmation(fnOnDataLossOk: any, fnOnDataLossCancel: 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
|
-
onDataLossConfirmedFollowUpFunction = fnOnDataLossOk;
|
|
24
|
-
onDataLossCancelFollowUpFunction = fnOnDataLossCancel;
|
|
25
|
-
const fragmentName = "sap.fe.core.controls.DataLossOrDraftDiscard.DataLossDraft";
|
|
26
|
-
const view = controller.getView();
|
|
27
|
-
const fragmentController: any = {
|
|
28
|
-
onDataLossOk: function () {
|
|
29
|
-
handleDataLossOk(dataLossPopup, controller, onDataLossConfirmedFollowUpFunction, skipBindingToView);
|
|
30
|
-
},
|
|
31
|
-
onDataLossCancel: function () {
|
|
32
|
-
onDataLossCancelFollowUpFunction();
|
|
33
|
-
dataLossPopup.close();
|
|
34
|
-
},
|
|
35
|
-
setDataLossPopup: function (inDataLossPopup: Dialog) {
|
|
36
|
-
controller.dataLossPopup = inDataLossPopup;
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const localThisModel = new JSONModel({}),
|
|
41
|
-
preprocessorSettings = {
|
|
42
|
-
bindingContexts: {
|
|
43
|
-
this: localThisModel.createBindingContext("/")
|
|
44
|
-
},
|
|
45
|
-
models: {
|
|
46
|
-
this: localThisModel
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
if (controller.dataLossPopup) {
|
|
51
|
-
dataLossPopup = controller.dataLossPopup;
|
|
52
|
-
dataLossPopup.open();
|
|
53
|
-
selectAndFocusFirstEntry(dataLossPopup);
|
|
54
|
-
} else {
|
|
55
|
-
const dialogFragment = XMLTemplateProcessor.loadTemplate(fragmentName, "fragment");
|
|
56
|
-
Promise.resolve(XMLPreprocessor.process(dialogFragment, { name: fragmentName }, preprocessorSettings))
|
|
57
|
-
.then((fragment) => {
|
|
58
|
-
return Fragment.load({ definition: fragment, controller: fragmentController });
|
|
59
|
-
})
|
|
60
|
-
.then((popup: any) => {
|
|
61
|
-
dataLossPopup = popup;
|
|
62
|
-
selectAndFocusFirstEntry(dataLossPopup);
|
|
63
|
-
const dataLossOptionsList: List = dataLossPopup
|
|
64
|
-
.getContent()
|
|
65
|
-
.find((element) => element.data("listIdentifier") === "draftDataLossOptionsList") as List;
|
|
66
|
-
dataLossOptionsList.addEventDelegate({
|
|
67
|
-
onsapenter: function () {
|
|
68
|
-
handleDataLossOk(dataLossPopup, controller, onDataLossConfirmedFollowUpFunction, skipBindingToView);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
view.addDependent(dataLossPopup);
|
|
72
|
-
dataLossPopup.open();
|
|
73
|
-
fragmentController.setDataLossPopup(dataLossPopup);
|
|
74
|
-
})
|
|
75
|
-
.catch(function (error: any) {
|
|
76
|
-
Log.error("Error while opening the Discard Dialog fragment", error);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export function performAfterDiscardorKeepDraft(
|
|
82
|
-
processFunctionOnDatalossOk: any,
|
|
83
|
-
processFunctionOnDatalossCancel: any,
|
|
84
|
-
controller: any,
|
|
85
|
-
skipBindingToView: any
|
|
86
|
-
) {
|
|
87
|
-
// Depending on if the user closed the data loss popup with Ok or Cancel,
|
|
88
|
-
// execute the provided follow-up function and resolve or reject the promise
|
|
89
|
-
return new Promise(function (resolve: (value: any) => void, reject: (reason?: any) => void) {
|
|
90
|
-
const dataLossPopupOk = function (context: any) {
|
|
91
|
-
const returnValue = processFunctionOnDatalossOk(context);
|
|
92
|
-
resolve(returnValue);
|
|
93
|
-
};
|
|
94
|
-
const dataLossPopupCancel = function () {
|
|
95
|
-
processFunctionOnDatalossCancel();
|
|
96
|
-
reject();
|
|
97
|
-
};
|
|
98
|
-
fnDataLossConfirmation(dataLossPopupOk, dataLossPopupCancel, controller, skipBindingToView);
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export function discardDraft(controller: any, skipBindingToView: any) {
|
|
103
|
-
const context = controller.getView().getBindingContext();
|
|
104
|
-
const params = {
|
|
105
|
-
skipBackNavigation: true,
|
|
106
|
-
skipDiscardPopover: true,
|
|
107
|
-
skipBindingToView: skipBindingToView !== undefined ? skipBindingToView : true
|
|
108
|
-
};
|
|
109
|
-
return controller.editFlow.cancelDocument(context, params);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export function saveDocument(controller: any) {
|
|
113
|
-
const context = controller.getView().getBindingContext();
|
|
114
|
-
// We check if we are on the OP and then call the internal _saveDocument from the OP controller
|
|
115
|
-
// since here some special handling is done for creationRow before editFlow.saveDocument is called.
|
|
116
|
-
// In case of a custom controller we directly call saveDocument from the editFlow
|
|
117
|
-
if (controller.isA("sap.fe.templates.ObjectPage.ObjectPageController")) {
|
|
118
|
-
return controller._saveDocument(context);
|
|
119
|
-
} else {
|
|
120
|
-
return controller.editFlow.saveDocument(context);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export function getSelectedKey(dataLossPopup: Dialog) {
|
|
125
|
-
// For not using control IDs we introduced customData in the fragment and
|
|
126
|
-
// use it here for finding the correct list in the dialog and for
|
|
127
|
-
// determining the selected option from the list
|
|
128
|
-
const dataLossOptionsList: List = dataLossPopup
|
|
129
|
-
.getContent()
|
|
130
|
-
.find((element) => element.data("listIdentifier") === "draftDataLossOptionsList") as List;
|
|
131
|
-
return dataLossOptionsList.getSelectedItem().data("itemKey");
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
export function selectAndFocusFirstEntry(dataLossPopup: Dialog) {
|
|
135
|
-
// For not using control IDs we introduced customData in the fragment and
|
|
136
|
-
// use it here for finding the correct list in the dialog.
|
|
137
|
-
const dataLossOptionsList: List = dataLossPopup
|
|
138
|
-
.getContent()
|
|
139
|
-
.find((element) => element.data("listIdentifier") === "draftDataLossOptionsList") as List;
|
|
140
|
-
// Preselect the first entry in the list
|
|
141
|
-
const firstListItemOption: CustomListItem = dataLossOptionsList.getItems()[0] as CustomListItem;
|
|
142
|
-
dataLossOptionsList.setSelectedItem(firstListItemOption);
|
|
143
|
-
// By default set the focus on the first list item of the dialog
|
|
144
|
-
// We do not set the focus on the button, but catch the ENTER key in the dialog
|
|
145
|
-
// and process it as Ok, since focusing the button was reported as an ACC issue
|
|
146
|
-
firstListItemOption?.focus();
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Executes the logic when the data loss dialog is confirmed.
|
|
151
|
-
*
|
|
152
|
-
* @param dataLossPopup Reference to the data loss dialog
|
|
153
|
-
* @param controller Reference to the controller
|
|
154
|
-
* @param dataLossConfirmationFollowUpFunction The action to be performed after the selected option has been executed
|
|
155
|
-
* @param skipBindingToView Forwarded to discardDraft
|
|
156
|
-
*/
|
|
157
|
-
export function handleDataLossOk(
|
|
158
|
-
dataLossPopup: Dialog,
|
|
159
|
-
controller: any,
|
|
160
|
-
dataLossConfirmationFollowUpFunction: Function,
|
|
161
|
-
skipBindingToView: boolean
|
|
162
|
-
) {
|
|
163
|
-
const selectedKey = getSelectedKey(dataLossPopup);
|
|
164
|
-
if (selectedKey === DraftDataLossOptions.Save) {
|
|
165
|
-
saveDocument(controller)
|
|
166
|
-
.then(dataLossConfirmationFollowUpFunction)
|
|
167
|
-
.catch(function (error: any) {
|
|
168
|
-
Log.error("Error while saving document", error);
|
|
169
|
-
});
|
|
170
|
-
dataLossPopup.close();
|
|
171
|
-
} else if (selectedKey === DraftDataLossOptions.Keep) {
|
|
172
|
-
dataLossConfirmationFollowUpFunction();
|
|
173
|
-
dataLossPopup.close();
|
|
174
|
-
} else if (selectedKey === DraftDataLossOptions.Discard) {
|
|
175
|
-
discardDraft(controller, skipBindingToView)
|
|
176
|
-
.then(dataLossConfirmationFollowUpFunction)
|
|
177
|
-
.catch(function (error: any) {
|
|
178
|
-
Log.error("Error while discarding draft", error);
|
|
179
|
-
});
|
|
180
|
-
dataLossPopup.close();
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
export default { performAfterDiscardorKeepDraft, discardDraft, saveDocument, getSelectedKey, selectAndFocusFirstEntry };
|