@sapui5/sap.fe.core 1.110.0 → 1.111.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/README.md +0 -4
- package/package.json +2 -23
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime-dbg.js +182 -0
- package/src/sap/fe/core/ActionRuntime.js +3 -181
- package/src/sap/fe/core/ActionRuntime.js.map +1 -0
- package/src/sap/fe/core/ActionRuntime.ts +3 -5
- package/src/sap/fe/core/AppComponent-dbg.js +435 -0
- package/src/sap/fe/core/AppComponent.js +3 -439
- package/src/sap/fe/core/AppComponent.js.map +1 -0
- package/src/sap/fe/core/AppComponent.ts +0 -3
- package/src/sap/fe/core/AppStateHandler-dbg.js +200 -0
- package/src/sap/fe/core/AppStateHandler.js +3 -227
- package/src/sap/fe/core/AppStateHandler.js.map +1 -0
- package/src/sap/fe/core/BaseController-dbg.js +76 -0
- package/src/sap/fe/core/BaseController.js +3 -73
- package/src/sap/fe/core/BaseController.js.map +1 -0
- package/src/sap/fe/core/CommonUtils-dbg.js +2135 -0
- package/src/sap/fe/core/CommonUtils.js +3 -2296
- package/src/sap/fe/core/CommonUtils.js.map +1 -0
- package/src/sap/fe/core/CommonUtils.ts +34 -28
- package/src/sap/fe/core/ExtensionAPI-dbg.js +273 -0
- package/src/sap/fe/core/ExtensionAPI.js +3 -280
- package/src/sap/fe/core/ExtensionAPI.js.map +1 -0
- package/src/sap/fe/core/PageController-dbg.js +203 -0
- package/src/sap/fe/core/PageController.js +3 -200
- package/src/sap/fe/core/PageController.js.map +1 -0
- package/src/sap/fe/core/TemplateComponent-dbg.js +218 -0
- package/src/sap/fe/core/TemplateComponent.js +3 -216
- package/src/sap/fe/core/TemplateComponent.js.map +1 -0
- package/src/sap/fe/core/TemplateModel-dbg.js +75 -0
- package/src/sap/fe/core/TemplateModel.js +3 -72
- package/src/sap/fe/core/TemplateModel.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +57 -0
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +3 -54
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +410 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +11 -355
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +118 -52
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter-dbg.js +14 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +3 -11
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +44 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +3 -40
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +3 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +932 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +16 -1292
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +40 -42
- package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +434 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +3 -481
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -5
- package/src/sap/fe/core/controllerextensions/BusyLocker-dbg.js +92 -0
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +3 -89
- package/src/sap/fe/core/controllerextensions/BusyLocker.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1659 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +3 -1868
- package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +180 -125
- package/src/sap/fe/core/controllerextensions/Feedback-dbg.js +70 -0
- package/src/sap/fe/core/controllerextensions/Feedback.js +3 -67
- package/src/sap/fe/core/controllerextensions/Feedback.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +83 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +3 -84
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -8
- package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +711 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +3 -707
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +79 -48
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +791 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +3 -696
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +107 -7
- package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +984 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +3 -996
- package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +43 -23
- package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1013 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +3 -1011
- package/src/sap/fe/core/controllerextensions/KPIManagement.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -10
- package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +135 -0
- package/src/sap/fe/core/controllerextensions/MassEdit.js +3 -133
- package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +221 -0
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +3 -224
- package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +254 -0
- package/src/sap/fe/core/controllerextensions/PageReady.js +3 -279
- package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/PageReady.ts +2 -2
- package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +169 -0
- package/src/sap/fe/core/controllerextensions/Paginator.js +3 -174
- package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Paginator.ts +4 -5
- package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +132 -0
- package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -130
- package/src/sap/fe/core/controllerextensions/Placeholder.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Routing-dbg.js +138 -0
- package/src/sap/fe/core/controllerextensions/Routing.js +3 -135
- package/src/sap/fe/core/controllerextensions/Routing.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +10 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +3 -7
- package/src/sap/fe/core/controllerextensions/RoutingListener.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Share-dbg.js +317 -0
- package/src/sap/fe/core/controllerextensions/Share.js +3 -356
- package/src/sap/fe/core/controllerextensions/Share.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/Share.ts +6 -1
- package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +553 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.js +3 -651
- package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +411 -553
- package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +903 -0
- package/src/sap/fe/core/controllerextensions/ViewState.js +3 -967
- package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/ViewState.ts +90 -41
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +99 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +3 -96
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +314 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +3 -336
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +152 -0
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +3 -161
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +243 -0
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +3 -302
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +252 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +6 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +188 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +1196 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +3 -1479
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +239 -289
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +689 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +3 -785
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +134 -142
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +236 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +3 -287
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +1422 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +3 -1598
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +40 -24
- package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +185 -0
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +3 -214
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +4 -5
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +1219 -0
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +3 -1213
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +304 -0
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +3 -339
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason-dbg.js +15 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +6 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.ts +6 -0
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +798 -0
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +3 -799
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -0
- package/src/sap/fe/core/controls/Any-dbg.js +32 -0
- package/src/sap/fe/core/controls/Any.js +3 -29
- package/src/sap/fe/core/controls/Any.js.map +1 -0
- package/src/sap/fe/core/controls/AnyElement-dbg.js +29 -0
- package/src/sap/fe/core/controls/AnyElement.js +3 -26
- package/src/sap/fe/core/controls/AnyElement.js.map +1 -0
- package/src/sap/fe/core/controls/CommandExecution-dbg.js +72 -0
- package/src/sap/fe/core/controls/CommandExecution.js +3 -69
- package/src/sap/fe/core/controls/CommandExecution.js.map +1 -0
- package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +151 -0
- package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -148
- package/src/sap/fe/core/controls/ConditionalWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +330 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +3 -328
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +126 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -124
- package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +1 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +170 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -171
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -0
- package/src/sap/fe/core/controls/FieldWrapper-dbg.js +194 -0
- package/src/sap/fe/core/controls/FieldWrapper.js +3 -191
- package/src/sap/fe/core/controls/FieldWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/FileWrapper-dbg.js +280 -0
- package/src/sap/fe/core/controls/FileWrapper.js +3 -277
- package/src/sap/fe/core/controls/FileWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/FilterBar-dbg.js +167 -0
- package/src/sap/fe/core/controls/FilterBar.js +3 -166
- package/src/sap/fe/core/controls/FilterBar.js.map +1 -0
- package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +92 -0
- package/src/sap/fe/core/controls/FormElementWrapper.js +3 -89
- package/src/sap/fe/core/controls/FormElementWrapper.js.map +1 -0
- package/src/sap/fe/core/controls/MassEditSelect-dbg.js +33 -0
- package/src/sap/fe/core/controls/MassEditSelect.js +3 -30
- package/src/sap/fe/core/controls/MassEditSelect.js.map +1 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate-dbg.js +37 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -34
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +119 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +3 -121
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +267 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +3 -264
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +150 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -150
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +310 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -307
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +1 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +491 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +3 -504
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +2 -2
- package/src/sap/fe/core/converters/ConverterContext-dbg.js +403 -0
- package/src/sap/fe/core/converters/ConverterContext.js +3 -406
- package/src/sap/fe/core/converters/ConverterContext.js.map +1 -0
- package/src/sap/fe/core/converters/ManifestSettings-dbg.js +88 -0
- package/src/sap/fe/core/converters/ManifestSettings.js +3 -84
- package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -0
- package/src/sap/fe/core/converters/ManifestSettings.ts +3 -1
- package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +402 -0
- package/src/sap/fe/core/converters/ManifestWrapper.js +3 -406
- package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -0
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +1161 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +3 -1225
- package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -0
- package/src/sap/fe/core/converters/MetaModelConverter.ts +193 -199
- package/src/sap/fe/core/converters/TemplateConverter-dbg.js +89 -0
- package/src/sap/fe/core/converters/TemplateConverter.js +3 -86
- package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -0
- package/src/sap/fe/core/converters/annotations/DataField-dbg.js +396 -0
- package/src/sap/fe/core/converters/annotations/DataField.js +3 -394
- package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -0
- package/src/sap/fe/core/converters/annotations/DataField.ts +5 -5
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1948 -0
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +3 -1868
- package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +424 -0
- package/src/sap/fe/core/converters/controls/Common/Action.js +3 -446
- package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Action.ts +31 -14
- package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +276 -0
- package/src/sap/fe/core/converters/controls/Common/Chart.js +3 -260
- package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +52 -7
- package/src/sap/fe/core/converters/controls/Common/Criticality-dbg.js +42 -0
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -39
- package/src/sap/fe/core/converters/controls/Common/Criticality.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +247 -0
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -242
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +229 -0
- package/src/sap/fe/core/converters/controls/Common/Form.js +3 -234
- package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +374 -0
- package/src/sap/fe/core/converters/controls/Common/KPI.js +3 -371
- package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +2596 -0
- package/src/sap/fe/core/converters/controls/Common/Table.js +3 -2527
- package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/Table.ts +214 -77
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +522 -0
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +3 -527
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -0
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +51 -50
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +786 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +3 -845
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +0 -64
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +291 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +3 -316
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +30 -12
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +56 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +3 -53
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +438 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -431
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +597 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +3 -630
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +204 -0
- package/src/sap/fe/core/converters/helpers/Aggregation.js +3 -204
- package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +100 -0
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -99
- package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +199 -0
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +3 -199
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +143 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +3 -140
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +2 -1
- package/src/sap/fe/core/converters/helpers/ID-dbg.js +92 -0
- package/src/sap/fe/core/converters/helpers/ID.js +3 -89
- package/src/sap/fe/core/converters/helpers/ID.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +62 -0
- package/src/sap/fe/core/converters/helpers/IssueManager.js +3 -59
- package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/Key-dbg.js +62 -0
- package/src/sap/fe/core/converters/helpers/Key.js +3 -59
- package/src/sap/fe/core/converters/helpers/Key.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper-dbg.js +80 -0
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +3 -77
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js.map +1 -0
- package/src/sap/fe/core/converters/objectPage/FormMenuActions-dbg.js +142 -0
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +3 -139
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js.map +1 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +406 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +3 -422
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +132 -111
- package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +557 -0
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +3 -589
- package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -0
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +474 -0
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +3 -477
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -0
- package/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +103 -0
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -100
- package/src/sap/fe/core/designtime/AppComponent.designtime.js.map +1 -0
- package/src/sap/fe/core/designtime/library-preload.designtime.js +7 -0
- package/src/sap/fe/core/designtime/library-preload.designtime.js.map +1 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +95 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +3 -92
- package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +46 -0
- package/src/sap/fe/core/formatters/FPMFormatter.js +3 -44
- package/src/sap/fe/core/formatters/FPMFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/FPMFormatter.ts +3 -2
- package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +343 -0
- package/src/sap/fe/core/formatters/FiscalFormat.js +6 -0
- package/src/sap/fe/core/formatters/FiscalFormat.js.map +1 -0
- package/src/sap/fe/core/formatters/FiscalFormat.ts +319 -0
- package/src/sap/fe/core/formatters/KPIFormatter-dbg.js +86 -0
- package/src/sap/fe/core/formatters/KPIFormatter.js +3 -83
- package/src/sap/fe/core/formatters/KPIFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/StandardFormatter-dbg.js +80 -0
- package/src/sap/fe/core/formatters/StandardFormatter.js +3 -78
- package/src/sap/fe/core/formatters/StandardFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/TableFormatter-dbg.js +276 -0
- package/src/sap/fe/core/formatters/TableFormatter.js +3 -275
- package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/TableFormatterTypes-dbg.js +20 -0
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +3 -17
- package/src/sap/fe/core/formatters/TableFormatterTypes.js.map +1 -0
- package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +172 -0
- package/src/sap/fe/core/formatters/ValueFormatter.js +3 -161
- package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -0
- package/src/sap/fe/core/formatters/ValueFormatter.ts +25 -8
- package/src/sap/fe/core/fpm/Component-dbg.js +94 -0
- package/src/sap/fe/core/fpm/Component.js +3 -91
- package/src/sap/fe/core/fpm/Component.js.map +1 -0
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AnnotationEnum-dbg.js +30 -0
- package/src/sap/fe/core/helpers/AnnotationEnum.js +3 -36
- package/src/sap/fe/core/helpers/AnnotationEnum.js.map +1 -0
- package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +334 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.js +3 -335
- package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +1739 -0
- package/src/sap/fe/core/helpers/BindingToolkit.js +3 -1611
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -0
- package/src/sap/fe/core/helpers/BindingToolkit.ts +277 -97
- package/src/sap/fe/core/helpers/ClassSupport-dbg.js +421 -0
- package/src/sap/fe/core/helpers/ClassSupport.js +3 -420
- package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -0
- package/src/sap/fe/core/helpers/ClassSupport.ts +13 -15
- package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +526 -0
- package/src/sap/fe/core/helpers/DeleteHelper.js +3 -618
- package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/DeleteHelper.ts +116 -134
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +55 -0
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +3 -52
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/EditState-dbg.js +80 -0
- package/src/sap/fe/core/helpers/EditState.js +3 -77
- package/src/sap/fe/core/helpers/EditState.js.map +1 -0
- package/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +55 -0
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +3 -52
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/FPMHelper-dbg.js +55 -0
- package/src/sap/fe/core/helpers/FPMHelper.js +3 -52
- package/src/sap/fe/core/helpers/FPMHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +180 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +3 -177
- package/src/sap/fe/core/helpers/KeepAliveHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +28 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +3 -25
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js.map +1 -0
- package/src/sap/fe/core/helpers/LoaderUtils-dbg.js +29 -0
- package/src/sap/fe/core/helpers/LoaderUtils.js +3 -30
- package/src/sap/fe/core/helpers/LoaderUtils.js.map +1 -0
- package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +1229 -0
- package/src/sap/fe/core/helpers/MassEditHelper.js +3 -1309
- package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/MassEditHelper.ts +6 -6
- package/src/sap/fe/core/helpers/MessageStrip-dbg.js +65 -0
- package/src/sap/fe/core/helpers/MessageStrip.js +3 -62
- package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -0
- package/src/sap/fe/core/helpers/ModelHelper-dbg.js +489 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +3 -503
- package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/ModelHelper.ts +13 -36
- package/src/sap/fe/core/helpers/PasteHelper-dbg.js +174 -0
- package/src/sap/fe/core/helpers/PasteHelper.js +3 -185
- package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +371 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -368
- package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +70 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -67
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +141 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +3 -137
- package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper.ts +3 -2
- package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +204 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +3 -208
- package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/Synchronization-dbg.js +35 -0
- package/src/sap/fe/core/helpers/Synchronization.js +3 -33
- package/src/sap/fe/core/helpers/Synchronization.js.map +1 -0
- package/src/sap/fe/core/helpers/ToES6Promise-dbg.js +29 -0
- package/src/sap/fe/core/helpers/ToES6Promise.js +3 -26
- package/src/sap/fe/core/helpers/ToES6Promise.js.map +1 -0
- package/src/sap/fe/core/helpers/TypeGuards-dbg.js +20 -0
- package/src/sap/fe/core/helpers/TypeGuards.js +3 -19
- package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -0
- package/src/sap/fe/core/helpers/TypeGuards.ts +5 -1
- package/src/sap/fe/core/jsx-runtime/Fragment-dbg.js +14 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +3 -11
- package/src/sap/fe/core/jsx-runtime/Fragment.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +76 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +3 -86
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +124 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +3 -98
- package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +43 -17
- package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +41 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml-dbg.js +94 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +3 -90
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.js +3 -28
- package/src/sap/fe/core/jsx-runtime/jsx.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/jsx.ts +19 -1
- package/src/sap/fe/core/jsx-runtime/jsxs-dbg.js +10 -0
- package/src/sap/fe/core/jsx-runtime/jsxs.js +3 -7
- package/src/sap/fe/core/jsx-runtime/jsxs.js.map +1 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +154 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +3 -153
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -0
- package/src/sap/fe/core/library-dbg.js +437 -0
- package/src/sap/fe/core/library-preload.js +900 -0
- package/src/sap/fe/core/library-preload.js.map +1 -0
- package/src/sap/fe/core/library-preload.support.js +177 -0
- package/src/sap/fe/core/library-preload.support.js.map +1 -0
- package/src/sap/fe/core/library.js +3 -461
- package/src/sap/fe/core/library.js.map +1 -0
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/library.ts +12 -25
- package/src/sap/fe/core/manifest.json +100 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +99 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -96
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -0
- package/src/sap/fe/core/messagebundle.properties +6 -0
- package/src/sap/fe/core/messagebundle_ar.properties +22 -0
- package/src/sap/fe/core/messagebundle_bg.properties +22 -0
- package/src/sap/fe/core/messagebundle_ca.properties +22 -0
- package/src/sap/fe/core/messagebundle_cs.properties +22 -0
- package/src/sap/fe/core/messagebundle_cy.properties +22 -0
- package/src/sap/fe/core/messagebundle_da.properties +22 -0
- package/src/sap/fe/core/messagebundle_de.properties +22 -0
- package/src/sap/fe/core/messagebundle_el.properties +22 -0
- package/src/sap/fe/core/messagebundle_en.properties +22 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +22 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +22 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +4 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +4 -0
- package/src/sap/fe/core/messagebundle_es.properties +22 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +22 -0
- package/src/sap/fe/core/messagebundle_et.properties +22 -0
- package/src/sap/fe/core/messagebundle_fi.properties +22 -0
- package/src/sap/fe/core/messagebundle_fr.properties +22 -0
- package/src/sap/fe/core/messagebundle_fr_CA.properties +22 -0
- package/src/sap/fe/core/messagebundle_hi.properties +22 -0
- package/src/sap/fe/core/messagebundle_hr.properties +23 -1
- package/src/sap/fe/core/messagebundle_hu.properties +22 -0
- package/src/sap/fe/core/messagebundle_id.properties +22 -0
- package/src/sap/fe/core/messagebundle_it.properties +22 -0
- package/src/sap/fe/core/messagebundle_iw.properties +22 -0
- package/src/sap/fe/core/messagebundle_ja.properties +22 -0
- package/src/sap/fe/core/messagebundle_kk.properties +22 -0
- package/src/sap/fe/core/messagebundle_ko.properties +22 -0
- package/src/sap/fe/core/messagebundle_lt.properties +22 -0
- package/src/sap/fe/core/messagebundle_lv.properties +22 -0
- package/src/sap/fe/core/messagebundle_ms.properties +22 -0
- package/src/sap/fe/core/messagebundle_nl.properties +22 -0
- package/src/sap/fe/core/messagebundle_no.properties +22 -0
- package/src/sap/fe/core/messagebundle_pl.properties +22 -0
- package/src/sap/fe/core/messagebundle_pt.properties +22 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +22 -0
- package/src/sap/fe/core/messagebundle_ro.properties +22 -0
- package/src/sap/fe/core/messagebundle_ru.properties +22 -0
- package/src/sap/fe/core/messagebundle_sh.properties +22 -0
- package/src/sap/fe/core/messagebundle_sk.properties +22 -0
- package/src/sap/fe/core/messagebundle_sl.properties +22 -0
- package/src/sap/fe/core/messagebundle_sv.properties +22 -0
- package/src/sap/fe/core/messagebundle_th.properties +22 -0
- package/src/sap/fe/core/messagebundle_tr.properties +22 -0
- package/src/sap/fe/core/messagebundle_uk.properties +22 -0
- package/src/sap/fe/core/messagebundle_vi.properties +22 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +22 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +22 -0
- package/src/sap/fe/core/operationsHelper-dbg.js +155 -0
- package/src/sap/fe/core/operationsHelper.js +3 -205
- package/src/sap/fe/core/operationsHelper.js.map +1 -0
- package/src/sap/fe/core/operationsHelper.ts +14 -68
- package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +837 -0
- package/src/sap/fe/core/rootView/Fcl.controller.js +3 -855
- package/src/sap/fe/core/rootView/Fcl.controller.js.map +1 -0
- package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +190 -0
- package/src/sap/fe/core/rootView/NavContainer.controller.js +3 -190
- package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -0
- package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +506 -0
- package/src/sap/fe/core/rootView/RootViewBaseController.js +3 -538
- package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -0
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +3 -4
- package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +60 -0
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -60
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +196 -0
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +3 -219
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +80 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +3 -82
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +320 -0
- package/src/sap/fe/core/services/NavigationServiceFactory.js +3 -320
- package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +91 -0
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -89
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +817 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.js +3 -847
- package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +6 -3
- package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +732 -0
- package/src/sap/fe/core/services/ShellServicesFactory.js +3 -752
- package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +569 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +3 -599
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +3 -3
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +355 -0
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +3 -387
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -0
- package/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +37 -0
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +3 -34
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js.map +1 -0
- package/src/sap/fe/core/support/AnnotationIssue.support.js +4 -4
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +3 -3
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +3 -3
- package/src/sap/fe/core/support/CommonHelper-dbg.js +63 -0
- package/src/sap/fe/core/support/CommonHelper.js +3 -60
- package/src/sap/fe/core/support/CommonHelper.js.map +1 -0
- package/src/sap/fe/core/support/Diagnostics-dbg.js +44 -0
- package/src/sap/fe/core/support/Diagnostics.js +3 -49
- package/src/sap/fe/core/support/Diagnostics.js.map +1 -0
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +3 -3
- package/src/sap/fe/core/templating/CommonFormatters-dbg.js +70 -0
- package/src/sap/fe/core/templating/CommonFormatters.js +3 -66
- package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/CommonFormatters.ts +9 -3
- package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +136 -0
- package/src/sap/fe/core/templating/CriticalityFormatters.js +3 -133
- package/src/sap/fe/core/templating/CriticalityFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +58 -0
- package/src/sap/fe/core/templating/DataFieldFormatters.js +3 -55
- package/src/sap/fe/core/templating/DataFieldFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +363 -0
- package/src/sap/fe/core/templating/DataModelPathHelper.js +3 -372
- package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -0
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +17 -8
- package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +56 -0
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +3 -124
- package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -0
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +0 -47
- package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +68 -0
- package/src/sap/fe/core/templating/EntitySetHelper.js +3 -81
- package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -0
- package/src/sap/fe/core/templating/FieldControlHelper-dbg.js +77 -0
- package/src/sap/fe/core/templating/FieldControlHelper.js +3 -74
- package/src/sap/fe/core/templating/FieldControlHelper.js.map +1 -0
- package/src/sap/fe/core/templating/FilterHelper-dbg.js +346 -0
- package/src/sap/fe/core/templating/FilterHelper.js +3 -339
- package/src/sap/fe/core/templating/FilterHelper.js.map +1 -0
- package/src/sap/fe/core/templating/FilterHelper.ts +2 -21
- package/src/sap/fe/core/templating/FilterTemplating-dbg.js +62 -0
- package/src/sap/fe/core/templating/FilterTemplating.js +3 -59
- package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -0
- package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +93 -0
- package/src/sap/fe/core/templating/PropertyFormatters.js +3 -90
- package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/PropertyHelper-dbg.js +340 -0
- package/src/sap/fe/core/templating/PropertyHelper.js +3 -337
- package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper-dbg.js +91 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +3 -43
- package/src/sap/fe/core/templating/SemanticObjectHelper.js.map +1 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +45 -1
- package/src/sap/fe/core/templating/UIFormatters-dbg.js +498 -0
- package/src/sap/fe/core/templating/UIFormatters.js +3 -544
- package/src/sap/fe/core/templating/UIFormatters.js.map +1 -0
- package/src/sap/fe/core/templating/UIFormatters.ts +60 -110
- package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +35 -0
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -33
- package/src/sap/fe/core/type/DateTimeWithTimezone.js.map +1 -0
- package/src/sap/fe/core/type/EDM-dbg.js +84 -0
- package/src/sap/fe/core/type/EDM.js +6 -0
- package/src/sap/fe/core/type/EDM.js.map +1 -0
- package/src/sap/fe/core/type/EDM.ts +70 -0
- package/src/sap/fe/core/type/Email-dbg.js +29 -0
- package/src/sap/fe/core/type/Email.js +3 -26
- package/src/sap/fe/core/type/Email.js.map +1 -0
- package/src/sap/fe/core/type/FiscalDate-dbg.js +174 -0
- package/src/sap/fe/core/type/FiscalDate.js +6 -0
- package/src/sap/fe/core/type/FiscalDate.js.map +1 -0
- package/src/sap/fe/core/type/FiscalDate.ts +179 -0
- package/src/sap/fe/core/type/TypeUtil-dbg.js +58 -0
- package/src/sap/fe/core/type/TypeUtil.js +3 -55
- package/src/sap/fe/core/type/TypeUtil.js.map +1 -0
- package/src/sap/fe/core/type/TypeUtil.ts +1 -0
- package/src/.eslintrc +0 -7
|
@@ -0,0 +1,236 @@
|
|
|
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/fe/core/controllerextensions/collaboration/ActivitySync", "sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler", "sap/fe/core/helpers/EditState"], function (Log, ActivitySync, DataLossOrDraftDiscardHandler, EditState) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
/* Enum for navigation types */
|
|
9
|
+
var NavigationType;
|
|
10
|
+
/**
|
|
11
|
+
* The method checks whether an optional parameter in the manifest is set to silently keep the draft in case a forward navigation is triggered.
|
|
12
|
+
*
|
|
13
|
+
* @param pageController The reference to the current PageController instance
|
|
14
|
+
* @returns Boolean value with true or false to silently keep the draft
|
|
15
|
+
*/
|
|
16
|
+
(function (NavigationType) {
|
|
17
|
+
NavigationType["BackNavigation"] = "BackNavigation";
|
|
18
|
+
NavigationType["ForwardNavigation"] = "ForwardNavigation";
|
|
19
|
+
})(NavigationType || (NavigationType = {}));
|
|
20
|
+
function silentlyKeepDraftOnForwardNavigation(pageController) {
|
|
21
|
+
var _oManifest$sapFe, _oManifest$sapFe$app;
|
|
22
|
+
let rbSilentlyKeep = false;
|
|
23
|
+
const oManifest = pageController.getAppComponent().getManifest();
|
|
24
|
+
rbSilentlyKeep = (oManifest === null || oManifest === void 0 ? void 0 : (_oManifest$sapFe = oManifest["sap.fe"]) === null || _oManifest$sapFe === void 0 ? void 0 : (_oManifest$sapFe$app = _oManifest$sapFe.app) === null || _oManifest$sapFe$app === void 0 ? void 0 : _oManifest$sapFe$app.silentlyKeepDraftOnForwardNavigation) || false;
|
|
25
|
+
return rbSilentlyKeep;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Logic to process the fcl mode.
|
|
30
|
+
*
|
|
31
|
+
* @param draftAdminData Admin data
|
|
32
|
+
* @param fnCancelFunction The cancel function
|
|
33
|
+
* @param oController The current controller referenced
|
|
34
|
+
* @param processFunctionForDrafts The functon to process the handler
|
|
35
|
+
* @param bSkipBindingToView The optional parameter to skip the binding to the view
|
|
36
|
+
*/
|
|
37
|
+
async function processFclMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, bSkipBindingToView) {
|
|
38
|
+
// The application is running in FCL mode so in this case we fall back to
|
|
39
|
+
// the old logic since the dirty state handling is not properly working
|
|
40
|
+
// for FCL.
|
|
41
|
+
if (draftAdminData.CreationDateTime !== draftAdminData.LastChangeDateTime) {
|
|
42
|
+
DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
|
|
43
|
+
} else {
|
|
44
|
+
processFunctionForDrafts();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Logic to process the mode with no active entity.
|
|
50
|
+
*
|
|
51
|
+
* @param draftAdminData Admin data
|
|
52
|
+
* @param fnCancelFunction The cancel function
|
|
53
|
+
* @param oController The current controller referenced
|
|
54
|
+
* @param processFunctionForDrafts The functon to process the handler
|
|
55
|
+
* @param navigationType The navigation type for which the function should be called
|
|
56
|
+
* @param bSilentlyKeepDraftOnForwardNavigation The parameter to determine whether to skip the popup appearance in forward case
|
|
57
|
+
* @param bSkipBindingToView The optional parameter to skip the binding to the view
|
|
58
|
+
*/
|
|
59
|
+
async function processNoActiveEntityMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView) {
|
|
60
|
+
// There is no active entity so we are editing either newly created data or
|
|
61
|
+
// a draft which has never been saved to active version
|
|
62
|
+
// Since we want to react differently in the two situations, we have to check the
|
|
63
|
+
// dirty state
|
|
64
|
+
if (EditState.isEditStateDirty()) {
|
|
65
|
+
if (draftAdminData.CreationDateTime === draftAdminData.LastChangeDateTime && navigationType === NavigationType.BackNavigation) {
|
|
66
|
+
// in case we have untouched changes for the draft and a "back"
|
|
67
|
+
// navigation we can silently discard the draft again
|
|
68
|
+
// eslint-disable-next-line promise/no-nesting
|
|
69
|
+
try {
|
|
70
|
+
await DataLossOrDraftDiscardHandler.discardDraft(oController, bSkipBindingToView);
|
|
71
|
+
processFunctionForDrafts();
|
|
72
|
+
} catch (error) {
|
|
73
|
+
Log.error("Error while canceling the document", error);
|
|
74
|
+
}
|
|
75
|
+
} else if (navigationType === NavigationType.ForwardNavigation && bSilentlyKeepDraftOnForwardNavigation) {
|
|
76
|
+
// In case we have a "forward navigation" and an additional parameter set in the manifest
|
|
77
|
+
// we "silently" keep the draft
|
|
78
|
+
processFunctionForDrafts();
|
|
79
|
+
} else {
|
|
80
|
+
// In this case data is being changed or a forward navigation is triggered
|
|
81
|
+
// and we always want to show the dataloss dialog on navigation
|
|
82
|
+
DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
|
|
83
|
+
}
|
|
84
|
+
} else {
|
|
85
|
+
// We are editing a draft which has been created earlier but never saved to active
|
|
86
|
+
// version and since the edit state is not dirty, there have been no user changes
|
|
87
|
+
// so in this case we want to silently navigate and do nothing
|
|
88
|
+
processFunctionForDrafts();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Logic to process the draft editing for existing entity.
|
|
93
|
+
*
|
|
94
|
+
* @param oController The current controller referenced.
|
|
95
|
+
* @param oContext The context of the current call
|
|
96
|
+
* @param processFunctionForDrafts The functon to process the handler
|
|
97
|
+
* @param navigationType The navigation type for which the function should be called
|
|
98
|
+
*/
|
|
99
|
+
async function processEditingDraftForExistingEntity(oController, oContext, processFunctionForDrafts, navigationType) {
|
|
100
|
+
// We are editing a draft for an existing active entity
|
|
101
|
+
// The CreationDateTime and LastChangeDateTime are equal, so this draft was
|
|
102
|
+
// never saved before, hence we're currently editing a newly created draft for
|
|
103
|
+
// an existing active entity for the first time.
|
|
104
|
+
// Also there have so far been no changes made to the draft and in this
|
|
105
|
+
// case we want to silently navigate and delete the draftin case of a back
|
|
106
|
+
// navigation but in case of a forward navigation we want to silently keep it!
|
|
107
|
+
if (navigationType === NavigationType.BackNavigation) {
|
|
108
|
+
const mParameters = {
|
|
109
|
+
skipDiscardPopover: true
|
|
110
|
+
};
|
|
111
|
+
try {
|
|
112
|
+
await oController.editFlow.cancelDocument(oContext, mParameters);
|
|
113
|
+
processFunctionForDrafts();
|
|
114
|
+
} catch (error) {
|
|
115
|
+
Log.error("Error while canceling the document", error);
|
|
116
|
+
}
|
|
117
|
+
} else {
|
|
118
|
+
// In case of a forward navigation we silently keep the draft and only
|
|
119
|
+
// execute the followup function.
|
|
120
|
+
processFunctionForDrafts();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Logic to process the edit state dirty.
|
|
126
|
+
*
|
|
127
|
+
* @param oController The current controller referenced.
|
|
128
|
+
* @param fnCancelFunction The cancel function
|
|
129
|
+
* @param processFunctionForDrafts The functon to process the handler
|
|
130
|
+
* @param navigationType The navigation type for which the function should be called
|
|
131
|
+
* @param bSilentlyKeepDraftOnForwardNavigation The parameter to determine whether to skip the popup appearance in forward case
|
|
132
|
+
* @param bSkipBindingToView The optional parameter to skip the binding to the view.
|
|
133
|
+
*/
|
|
134
|
+
async function processEditStateDirty(oController, fnCancelFunction, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView) {
|
|
135
|
+
if (navigationType === NavigationType.ForwardNavigation && bSilentlyKeepDraftOnForwardNavigation) {
|
|
136
|
+
// In case we have a "forward navigation" and an additional parameter set in the manifest
|
|
137
|
+
// we "silently" keep the draft
|
|
138
|
+
processFunctionForDrafts();
|
|
139
|
+
} else {
|
|
140
|
+
// The CreationDateTime and LastChangeDateTime are NOT equal, so we are currently editing
|
|
141
|
+
// an existing draft and need to distinguish depending on if any changes
|
|
142
|
+
// have been made in the current editing session or not
|
|
143
|
+
// Changes have been made in the current editing session so we want
|
|
144
|
+
// to show the dataloss dialog and let the user decide
|
|
145
|
+
DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Logic to process the admin data.
|
|
151
|
+
*
|
|
152
|
+
* @param draftAdminData Admin data
|
|
153
|
+
* @param fnProcessFunction The functon to process the handler
|
|
154
|
+
* @param fnCancelFunction The cancel function
|
|
155
|
+
* @param oContext The context of the current call
|
|
156
|
+
* @param oController The current controller referenced
|
|
157
|
+
* @param bSkipBindingToView The optional parameter to skip the binding to the view
|
|
158
|
+
* @param navigationType The navigation type for which the function should be called
|
|
159
|
+
*/
|
|
160
|
+
async function processDraftAdminData(draftAdminData, fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView) {
|
|
161
|
+
let navigationType = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : NavigationType.BackNavigation;
|
|
162
|
+
const collaborationConnected = ActivitySync.isConnected(oController.getView());
|
|
163
|
+
const processFunctionForDrafts = !collaborationConnected ? fnProcessFunction : function () {
|
|
164
|
+
ActivitySync.disconnect(oController.getView());
|
|
165
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
166
|
+
args[_key] = arguments[_key];
|
|
167
|
+
}
|
|
168
|
+
fnProcessFunction.apply(null, ...args);
|
|
169
|
+
};
|
|
170
|
+
const bSilentlyKeepDraftOnForwardNavigation = silentlyKeepDraftOnForwardNavigation(oController);
|
|
171
|
+
if (draftAdminData) {
|
|
172
|
+
if (oController.getAppComponent().getRootViewController().isFclEnabled()) {
|
|
173
|
+
await processFclMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, bSkipBindingToView);
|
|
174
|
+
} else if (!oContext.getObject().HasActiveEntity) {
|
|
175
|
+
processNoActiveEntityMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView);
|
|
176
|
+
} else if (draftAdminData.CreationDateTime === draftAdminData.LastChangeDateTime) {
|
|
177
|
+
processEditingDraftForExistingEntity(oController, oContext, processFunctionForDrafts, navigationType);
|
|
178
|
+
} else if (EditState.isEditStateDirty()) {
|
|
179
|
+
processEditStateDirty(oController, fnCancelFunction, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView);
|
|
180
|
+
} else {
|
|
181
|
+
// The user started editing the existing draft but did not make any changes
|
|
182
|
+
// in the current editing session, so in this case we do not want
|
|
183
|
+
// to show the dataloss dialog but just keep the draft
|
|
184
|
+
processFunctionForDrafts();
|
|
185
|
+
}
|
|
186
|
+
} else {
|
|
187
|
+
fnProcessFunction();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* The general handler in which the individual steps are called.
|
|
193
|
+
*
|
|
194
|
+
* @param fnProcessFunction
|
|
195
|
+
* @param fnCancelFunction
|
|
196
|
+
* @param oContext
|
|
197
|
+
* @param oController
|
|
198
|
+
* @param bSkipBindingToView
|
|
199
|
+
* @param navigationType
|
|
200
|
+
*/
|
|
201
|
+
async function processDataLossOrDraftDiscardConfirmation(fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView) {
|
|
202
|
+
let navigationType = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : NavigationType.BackNavigation;
|
|
203
|
+
const oView = oController.getView();
|
|
204
|
+
const oModel = oContext.getModel();
|
|
205
|
+
const oMetaModel = oModel.getMetaModel();
|
|
206
|
+
const sEntitySet = oView.getViewData().entitySet ?? "";
|
|
207
|
+
const oDraftRoot = sEntitySet && oMetaModel.getObject("/" + sEntitySet + "@com.sap.vocabularies.Common.v1.DraftRoot");
|
|
208
|
+
const oUIModel = oView.getModel("ui");
|
|
209
|
+
const bIsEditable = oUIModel.getProperty("/isEditable");
|
|
210
|
+
const draftDataContext = oModel.bindContext(`${oContext.getPath()}/DraftAdministrativeData`).getBoundContext();
|
|
211
|
+
|
|
212
|
+
// Shouldn't display data loss popover on shell back navigation from sub-object pages
|
|
213
|
+
// and when object page is in display mode
|
|
214
|
+
if (oContext && oContext.getObject() && (!oDraftRoot && navigationType === NavigationType.BackNavigation || !bIsEditable)) {
|
|
215
|
+
fnProcessFunction();
|
|
216
|
+
} else {
|
|
217
|
+
try {
|
|
218
|
+
const draftAdminData = await draftDataContext.requestObject();
|
|
219
|
+
await processDraftAdminData(draftAdminData, fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView, navigationType);
|
|
220
|
+
} catch (oError) {
|
|
221
|
+
Log.error("Cannot retrieve draftDataContext information", oError);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
const draftDataLossPopup = {
|
|
226
|
+
processDataLossOrDraftDiscardConfirmation: processDataLossOrDraftDiscardConfirmation,
|
|
227
|
+
silentlyKeepDraftOnForwardNavigation: silentlyKeepDraftOnForwardNavigation,
|
|
228
|
+
NavigationType: NavigationType,
|
|
229
|
+
processFclMode: processFclMode,
|
|
230
|
+
processNoActiveEntityMode: processNoActiveEntityMode,
|
|
231
|
+
processEditingDraftForExistingEntity: processEditingDraftForExistingEntity,
|
|
232
|
+
processEditStateDirty: processEditStateDirty
|
|
233
|
+
};
|
|
234
|
+
return draftDataLossPopup;
|
|
235
|
+
}, false);
|
|
236
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uVHlwZSIsInNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiIsInBhZ2VDb250cm9sbGVyIiwicmJTaWxlbnRseUtlZXAiLCJvTWFuaWZlc3QiLCJnZXRBcHBDb21wb25lbnQiLCJnZXRNYW5pZmVzdCIsImFwcCIsInByb2Nlc3NGY2xNb2RlIiwiZHJhZnRBZG1pbkRhdGEiLCJmbkNhbmNlbEZ1bmN0aW9uIiwib0NvbnRyb2xsZXIiLCJwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMiLCJiU2tpcEJpbmRpbmdUb1ZpZXciLCJDcmVhdGlvbkRhdGVUaW1lIiwiTGFzdENoYW5nZURhdGVUaW1lIiwiRGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIiLCJwZXJmb3JtQWZ0ZXJEaXNjYXJkb3JLZWVwRHJhZnQiLCJwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlIiwibmF2aWdhdGlvblR5cGUiLCJiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIiwiRWRpdFN0YXRlIiwiaXNFZGl0U3RhdGVEaXJ0eSIsIkJhY2tOYXZpZ2F0aW9uIiwiZGlzY2FyZERyYWZ0IiwiZXJyb3IiLCJMb2ciLCJGb3J3YXJkTmF2aWdhdGlvbiIsInByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eSIsIm9Db250ZXh0IiwibVBhcmFtZXRlcnMiLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJlZGl0RmxvdyIsImNhbmNlbERvY3VtZW50IiwicHJvY2Vzc0VkaXRTdGF0ZURpcnR5IiwicHJvY2Vzc0RyYWZ0QWRtaW5EYXRhIiwiZm5Qcm9jZXNzRnVuY3Rpb24iLCJjb2xsYWJvcmF0aW9uQ29ubmVjdGVkIiwiQWN0aXZpdHlTeW5jIiwiaXNDb25uZWN0ZWQiLCJnZXRWaWV3IiwiZGlzY29ubmVjdCIsImFyZ3MiLCJhcHBseSIsImdldFJvb3RWaWV3Q29udHJvbGxlciIsImlzRmNsRW5hYmxlZCIsImdldE9iamVjdCIsIkhhc0FjdGl2ZUVudGl0eSIsInByb2Nlc3NEYXRhTG9zc09yRHJhZnREaXNjYXJkQ29uZmlybWF0aW9uIiwib1ZpZXciLCJvTW9kZWwiLCJnZXRNb2RlbCIsIm9NZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJzRW50aXR5U2V0IiwiZ2V0Vmlld0RhdGEiLCJlbnRpdHlTZXQiLCJvRHJhZnRSb290Iiwib1VJTW9kZWwiLCJiSXNFZGl0YWJsZSIsImdldFByb3BlcnR5IiwiZHJhZnREYXRhQ29udGV4dCIsImJpbmRDb250ZXh0IiwiZ2V0UGF0aCIsImdldEJvdW5kQ29udGV4dCIsInJlcXVlc3RPYmplY3QiLCJvRXJyb3IiLCJkcmFmdERhdGFMb3NzUG9wdXAiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbImRyYWZ0RGF0YUxvc3NQb3B1cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBBY3Rpdml0eVN5bmMgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQWN0aXZpdHlTeW5jXCI7XG5pbXBvcnQgRGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xzL0RhdGFMb3NzT3JEcmFmdERpc2NhcmQvRGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXJcIjtcbmltcG9ydCBFZGl0U3RhdGUgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvRWRpdFN0YXRlXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwiLi4vLi4vUGFnZUNvbnRyb2xsZXJcIjtcblxuLyogRW51bSBmb3IgbmF2aWdhdGlvbiB0eXBlcyAqL1xuZW51bSBOYXZpZ2F0aW9uVHlwZSB7XG5cdEJhY2tOYXZpZ2F0aW9uID0gXCJCYWNrTmF2aWdhdGlvblwiLFxuXHRGb3J3YXJkTmF2aWdhdGlvbiA9IFwiRm9yd2FyZE5hdmlnYXRpb25cIlxufVxuXG4vKipcbiAqIFRoZSBtZXRob2QgY2hlY2tzIHdoZXRoZXIgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIGluIHRoZSBtYW5pZmVzdCBpcyBzZXQgdG8gc2lsZW50bHkga2VlcCB0aGUgZHJhZnQgaW4gY2FzZSBhIGZvcndhcmQgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWQuXG4gKlxuICogQHBhcmFtIHBhZ2VDb250cm9sbGVyIFRoZSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgUGFnZUNvbnRyb2xsZXIgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEJvb2xlYW4gdmFsdWUgd2l0aCB0cnVlIG9yIGZhbHNlIHRvIHNpbGVudGx5IGtlZXAgdGhlIGRyYWZ0XG4gKi9cbmZ1bmN0aW9uIHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbihwYWdlQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIpIHtcblx0bGV0IHJiU2lsZW50bHlLZWVwID0gZmFsc2U7XG5cdGNvbnN0IG9NYW5pZmVzdCA9IHBhZ2VDb250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpLmdldE1hbmlmZXN0KCkgYXMgYW55O1xuXHRyYlNpbGVudGx5S2VlcCA9IG9NYW5pZmVzdD8uW1wic2FwLmZlXCJdPy5hcHA/LnNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiB8fCBmYWxzZTtcblx0cmV0dXJuIHJiU2lsZW50bHlLZWVwO1xufVxuXG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIGZjbCBtb2RlLlxuICpcbiAqIEBwYXJhbSBkcmFmdEFkbWluRGF0YSBBZG1pbiBkYXRhXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdG9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXcgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGY2xNb2RlKFxuXHRkcmFmdEFkbWluRGF0YTogYW55LFxuXHRmbkNhbmNlbEZ1bmN0aW9uOiBhbnksXG5cdG9Db250cm9sbGVyOiBhbnksXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogYW55LFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuXG4pIHtcblx0Ly8gVGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgaW4gRkNMIG1vZGUgc28gaW4gdGhpcyBjYXNlIHdlIGZhbGwgYmFjayB0b1xuXHQvLyB0aGUgb2xkIGxvZ2ljIHNpbmNlIHRoZSBkaXJ0eSBzdGF0ZSBoYW5kbGluZyBpcyBub3QgcHJvcGVybHkgd29ya2luZ1xuXHQvLyBmb3IgRkNMLlxuXHRpZiAoZHJhZnRBZG1pbkRhdGEuQ3JlYXRpb25EYXRlVGltZSAhPT0gZHJhZnRBZG1pbkRhdGEuTGFzdENoYW5nZURhdGVUaW1lKSB7XG5cdFx0RGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIucGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0KFxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3XG5cdFx0KTtcblx0fSBlbHNlIHtcblx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0fVxufVxuXG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIG1vZGUgd2l0aCBubyBhY3RpdmUgZW50aXR5LlxuICpcbiAqIEBwYXJhbSBkcmFmdEFkbWluRGF0YSBBZG1pbiBkYXRhXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdG9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICogQHBhcmFtIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gVGhlIHBhcmFtZXRlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBza2lwIHRoZSBwb3B1cCBhcHBlYXJhbmNlIGluIGZvcndhcmQgY2FzZVxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXdcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZShcblx0ZHJhZnRBZG1pbkRhdGE6IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IGFueSxcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlLFxuXHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uOiBib29sZWFuLFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuXG4pIHtcblx0Ly8gVGhlcmUgaXMgbm8gYWN0aXZlIGVudGl0eSBzbyB3ZSBhcmUgZWRpdGluZyBlaXRoZXIgbmV3bHkgY3JlYXRlZCBkYXRhIG9yXG5cdC8vIGEgZHJhZnQgd2hpY2ggaGFzIG5ldmVyIGJlZW4gc2F2ZWQgdG8gYWN0aXZlIHZlcnNpb25cblx0Ly8gU2luY2Ugd2Ugd2FudCB0byByZWFjdCBkaWZmZXJlbnRseSBpbiB0aGUgdHdvIHNpdHVhdGlvbnMsIHdlIGhhdmUgdG8gY2hlY2sgdGhlXG5cdC8vIGRpcnR5IHN0YXRlXG5cdGlmIChFZGl0U3RhdGUuaXNFZGl0U3RhdGVEaXJ0eSgpKSB7XG5cdFx0aWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgPT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSAmJiBuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb24pIHtcblx0XHRcdC8vIGluIGNhc2Ugd2UgaGF2ZSB1bnRvdWNoZWQgY2hhbmdlcyBmb3IgdGhlIGRyYWZ0IGFuZCBhIFwiYmFja1wiXG5cdFx0XHQvLyBuYXZpZ2F0aW9uIHdlIGNhbiBzaWxlbnRseSBkaXNjYXJkIHRoZSBkcmFmdCBhZ2FpblxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2Uvbm8tbmVzdGluZ1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0YXdhaXQgRGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIuZGlzY2FyZERyYWZ0KG9Db250cm9sbGVyLCBiU2tpcEJpbmRpbmdUb1ZpZXcpO1xuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgY2FuY2VsaW5nIHRoZSBkb2N1bWVudFwiLCBlcnJvcik7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuRm9yd2FyZE5hdmlnYXRpb24gJiYgYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbikge1xuXHRcdFx0Ly8gSW4gY2FzZSB3ZSBoYXZlIGEgXCJmb3J3YXJkIG5hdmlnYXRpb25cIiBhbmQgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgc2V0IGluIHRoZSBtYW5pZmVzdFxuXHRcdFx0Ly8gd2UgXCJzaWxlbnRseVwiIGtlZXAgdGhlIGRyYWZ0XG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gSW4gdGhpcyBjYXNlIGRhdGEgaXMgYmVpbmcgY2hhbmdlZCBvciBhIGZvcndhcmQgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWRcblx0XHRcdC8vIGFuZCB3ZSBhbHdheXMgd2FudCB0byBzaG93IHRoZSBkYXRhbG9zcyBkaWFsb2cgb24gbmF2aWdhdGlvblxuXHRcdFx0RGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIucGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0KFxuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHRcdCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdC8vIFdlIGFyZSBlZGl0aW5nIGEgZHJhZnQgd2hpY2ggaGFzIGJlZW4gY3JlYXRlZCBlYXJsaWVyIGJ1dCBuZXZlciBzYXZlZCB0byBhY3RpdmVcblx0XHQvLyB2ZXJzaW9uIGFuZCBzaW5jZSB0aGUgZWRpdCBzdGF0ZSBpcyBub3QgZGlydHksIHRoZXJlIGhhdmUgYmVlbiBubyB1c2VyIGNoYW5nZXNcblx0XHQvLyBzbyBpbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBzaWxlbnRseSBuYXZpZ2F0ZSBhbmQgZG8gbm90aGluZ1xuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9XG59XG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIGRyYWZ0IGVkaXRpbmcgZm9yIGV4aXN0aW5nIGVudGl0eS5cbiAqXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkLlxuICogQHBhcmFtIG9Db250ZXh0IFRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IGNhbGxcbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0b24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eShcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0b0NvbnRleHQ6IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzOiBhbnksXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZVxuKSB7XG5cdC8vIFdlIGFyZSBlZGl0aW5nIGEgZHJhZnQgZm9yIGFuIGV4aXN0aW5nIGFjdGl2ZSBlbnRpdHlcblx0Ly8gVGhlIENyZWF0aW9uRGF0ZVRpbWUgYW5kIExhc3RDaGFuZ2VEYXRlVGltZSBhcmUgZXF1YWwsIHNvIHRoaXMgZHJhZnQgd2FzXG5cdC8vIG5ldmVyIHNhdmVkIGJlZm9yZSwgaGVuY2Ugd2UncmUgY3VycmVudGx5IGVkaXRpbmcgYSBuZXdseSBjcmVhdGVkIGRyYWZ0IGZvclxuXHQvLyBhbiBleGlzdGluZyBhY3RpdmUgZW50aXR5IGZvciB0aGUgZmlyc3QgdGltZS5cblx0Ly8gQWxzbyB0aGVyZSBoYXZlIHNvIGZhciBiZWVuIG5vIGNoYW5nZXMgbWFkZSB0byB0aGUgZHJhZnQgYW5kIGluIHRoaXNcblx0Ly8gY2FzZSB3ZSB3YW50IHRvIHNpbGVudGx5IG5hdmlnYXRlIGFuZCBkZWxldGUgdGhlIGRyYWZ0aW4gY2FzZSBvZiBhIGJhY2tcblx0Ly8gbmF2aWdhdGlvbiBidXQgaW4gY2FzZSBvZiBhIGZvcndhcmQgbmF2aWdhdGlvbiB3ZSB3YW50IHRvIHNpbGVudGx5IGtlZXAgaXQhXG5cdGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb24pIHtcblx0XHRjb25zdCBtUGFyYW1ldGVycyA9IHtcblx0XHRcdHNraXBEaXNjYXJkUG9wb3ZlcjogdHJ1ZVxuXHRcdH07XG5cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgb0NvbnRyb2xsZXIuZWRpdEZsb3cuY2FuY2VsRG9jdW1lbnQob0NvbnRleHQsIG1QYXJhbWV0ZXJzKTtcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGNhbmNlbGluZyB0aGUgZG9jdW1lbnRcIiwgZXJyb3IpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHQvLyBJbiBjYXNlIG9mIGEgZm9yd2FyZCBuYXZpZ2F0aW9uIHdlIHNpbGVudGx5IGtlZXAgdGhlIGRyYWZ0IGFuZCBvbmx5XG5cdFx0Ly8gZXhlY3V0ZSB0aGUgZm9sbG93dXAgZnVuY3Rpb24uXG5cdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBlZGl0IHN0YXRlIGRpcnR5LlxuICpcbiAqIEBwYXJhbSBvQ29udHJvbGxlciBUaGUgY3VycmVudCBjb250cm9sbGVyIHJlZmVyZW5jZWQuXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdG9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICogQHBhcmFtIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gVGhlIHBhcmFtZXRlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBza2lwIHRoZSBwb3B1cCBhcHBlYXJhbmNlIGluIGZvcndhcmQgY2FzZVxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXcuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NFZGl0U3RhdGVEaXJ0eShcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IGFueSxcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlLFxuXHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uOiBib29sZWFuLFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuXG4pIHtcblx0aWYgKG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5Gb3J3YXJkTmF2aWdhdGlvbiAmJiBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uKSB7XG5cdFx0Ly8gSW4gY2FzZSB3ZSBoYXZlIGEgXCJmb3J3YXJkIG5hdmlnYXRpb25cIiBhbmQgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgc2V0IGluIHRoZSBtYW5pZmVzdFxuXHRcdC8vIHdlIFwic2lsZW50bHlcIiBrZWVwIHRoZSBkcmFmdFxuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIFRoZSBDcmVhdGlvbkRhdGVUaW1lIGFuZCBMYXN0Q2hhbmdlRGF0ZVRpbWUgYXJlIE5PVCBlcXVhbCwgc28gd2UgYXJlIGN1cnJlbnRseSBlZGl0aW5nXG5cdFx0Ly8gYW4gZXhpc3RpbmcgZHJhZnQgYW5kIG5lZWQgdG8gZGlzdGluZ3Vpc2ggZGVwZW5kaW5nIG9uIGlmIGFueSBjaGFuZ2VzXG5cdFx0Ly8gaGF2ZSBiZWVuIG1hZGUgaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uIG9yIG5vdFxuXHRcdC8vIENoYW5nZXMgaGF2ZSBiZWVuIG1hZGUgaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uIHNvIHdlIHdhbnRcblx0XHQvLyB0byBzaG93IHRoZSBkYXRhbG9zcyBkaWFsb2cgYW5kIGxldCB0aGUgdXNlciBkZWNpZGVcblx0XHREYXRhTG9zc09yRHJhZnREaXNjYXJkSGFuZGxlci5wZXJmb3JtQWZ0ZXJEaXNjYXJkb3JLZWVwRHJhZnQoXG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0b0NvbnRyb2xsZXIsXG5cdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHQpO1xuXHR9XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgYWRtaW4gZGF0YS5cbiAqXG4gKiBAcGFyYW0gZHJhZnRBZG1pbkRhdGEgQWRtaW4gZGF0YVxuICogQHBhcmFtIGZuUHJvY2Vzc0Z1bmN0aW9uIFRoZSBmdW5jdG9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udGV4dCBUaGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBjYWxsXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NEcmFmdEFkbWluRGF0YShcblx0ZHJhZnRBZG1pbkRhdGE6IGFueSxcblx0Zm5Qcm9jZXNzRnVuY3Rpb246IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udGV4dDogYW55LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUgPSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvblxuKSB7XG5cdGNvbnN0IGNvbGxhYm9yYXRpb25Db25uZWN0ZWQgPSBBY3Rpdml0eVN5bmMuaXNDb25uZWN0ZWQob0NvbnRyb2xsZXIuZ2V0VmlldygpKTtcblx0Y29uc3QgcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzID0gIWNvbGxhYm9yYXRpb25Db25uZWN0ZWRcblx0XHQ/IGZuUHJvY2Vzc0Z1bmN0aW9uXG5cdFx0OiBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcblx0XHRcdFx0QWN0aXZpdHlTeW5jLmRpc2Nvbm5lY3Qob0NvbnRyb2xsZXIuZ2V0VmlldygpKTtcblx0XHRcdFx0Zm5Qcm9jZXNzRnVuY3Rpb24uYXBwbHkobnVsbCwgLi4uYXJncyk7XG5cdFx0ICB9O1xuXG5cdGNvbnN0IGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gPSBzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24ob0NvbnRyb2xsZXIpO1xuXG5cdGlmIChkcmFmdEFkbWluRGF0YSkge1xuXHRcdGlmIChvQ29udHJvbGxlci5nZXRBcHBDb21wb25lbnQoKS5nZXRSb290Vmlld0NvbnRyb2xsZXIoKS5pc0ZjbEVuYWJsZWQoKSkge1xuXHRcdFx0YXdhaXQgcHJvY2Vzc0ZjbE1vZGUoZHJhZnRBZG1pbkRhdGEsIGZuQ2FuY2VsRnVuY3Rpb24sIG9Db250cm9sbGVyLCBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsIGJTa2lwQmluZGluZ1RvVmlldyk7XG5cdFx0fSBlbHNlIGlmICghb0NvbnRleHQuZ2V0T2JqZWN0KCkuSGFzQWN0aXZlRW50aXR5KSB7XG5cdFx0XHRwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlKFxuXHRcdFx0XHRkcmFmdEFkbWluRGF0YSxcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0b0NvbnRyb2xsZXIsXG5cdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0bmF2aWdhdGlvblR5cGUsXG5cdFx0XHRcdGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24sXG5cdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlld1xuXHRcdFx0KTtcblx0XHR9IGVsc2UgaWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgPT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSkge1xuXHRcdFx0cHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5KG9Db250cm9sbGVyLCBvQ29udGV4dCwgcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLCBuYXZpZ2F0aW9uVHlwZSk7XG5cdFx0fSBlbHNlIGlmIChFZGl0U3RhdGUuaXNFZGl0U3RhdGVEaXJ0eSgpKSB7XG5cdFx0XHRwcm9jZXNzRWRpdFN0YXRlRGlydHkoXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlLFxuXHRcdFx0XHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIFRoZSB1c2VyIHN0YXJ0ZWQgZWRpdGluZyB0aGUgZXhpc3RpbmcgZHJhZnQgYnV0IGRpZCBub3QgbWFrZSBhbnkgY2hhbmdlc1xuXHRcdFx0Ly8gaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uLCBzbyBpbiB0aGlzIGNhc2Ugd2UgZG8gbm90IHdhbnRcblx0XHRcdC8vIHRvIHNob3cgdGhlIGRhdGFsb3NzIGRpYWxvZyBidXQganVzdCBrZWVwIHRoZSBkcmFmdFxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGZuUHJvY2Vzc0Z1bmN0aW9uKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBUaGUgZ2VuZXJhbCBoYW5kbGVyIGluIHdoaWNoIHRoZSBpbmRpdmlkdWFsIHN0ZXBzIGFyZSBjYWxsZWQuXG4gKlxuICogQHBhcmFtIGZuUHJvY2Vzc0Z1bmN0aW9uXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvblxuICogQHBhcmFtIG9Db250ZXh0XG4gKiBAcGFyYW0gb0NvbnRyb2xsZXJcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXdcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZVxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRGF0YUxvc3NPckRyYWZ0RGlzY2FyZENvbmZpcm1hdGlvbihcblx0Zm5Qcm9jZXNzRnVuY3Rpb246IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udGV4dDogYW55LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUgPSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvblxuKSB7XG5cdGNvbnN0IG9WaWV3ID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHRjb25zdCBvTW9kZWwgPSBvQ29udGV4dC5nZXRNb2RlbCgpO1xuXHRjb25zdCBvTWV0YU1vZGVsID0gb01vZGVsLmdldE1ldGFNb2RlbCgpO1xuXHRjb25zdCBzRW50aXR5U2V0ID0gb1ZpZXcuZ2V0Vmlld0RhdGEoKS5lbnRpdHlTZXQgPz8gXCJcIjtcblx0Y29uc3Qgb0RyYWZ0Um9vdCA9IHNFbnRpdHlTZXQgJiYgb01ldGFNb2RlbC5nZXRPYmplY3QoXCIvXCIgKyBzRW50aXR5U2V0ICsgXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Um9vdFwiKTtcblx0Y29uc3Qgb1VJTW9kZWwgPSBvVmlldy5nZXRNb2RlbChcInVpXCIpO1xuXHRjb25zdCBiSXNFZGl0YWJsZSA9IG9VSU1vZGVsLmdldFByb3BlcnR5KFwiL2lzRWRpdGFibGVcIik7XG5cdGNvbnN0IGRyYWZ0RGF0YUNvbnRleHQgPSBvTW9kZWwuYmluZENvbnRleHQoYCR7b0NvbnRleHQuZ2V0UGF0aCgpfS9EcmFmdEFkbWluaXN0cmF0aXZlRGF0YWApLmdldEJvdW5kQ29udGV4dCgpO1xuXG5cdC8vIFNob3VsZG4ndCBkaXNwbGF5IGRhdGEgbG9zcyBwb3BvdmVyIG9uIHNoZWxsIGJhY2sgbmF2aWdhdGlvbiBmcm9tIHN1Yi1vYmplY3QgcGFnZXNcblx0Ly8gYW5kIHdoZW4gb2JqZWN0IHBhZ2UgaXMgaW4gZGlzcGxheSBtb2RlXG5cdGlmIChvQ29udGV4dCAmJiBvQ29udGV4dC5nZXRPYmplY3QoKSAmJiAoKCFvRHJhZnRSb290ICYmIG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvbikgfHwgIWJJc0VkaXRhYmxlKSkge1xuXHRcdGZuUHJvY2Vzc0Z1bmN0aW9uKCk7XG5cdH0gZWxzZSB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGRyYWZ0QWRtaW5EYXRhID0gYXdhaXQgZHJhZnREYXRhQ29udGV4dC5yZXF1ZXN0T2JqZWN0KCk7XG5cdFx0XHRhd2FpdCBwcm9jZXNzRHJhZnRBZG1pbkRhdGEoXG5cdFx0XHRcdGRyYWZ0QWRtaW5EYXRhLFxuXHRcdFx0XHRmblByb2Nlc3NGdW5jdGlvbixcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0b0NvbnRleHQsXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXcsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKG9FcnJvcjogYW55KSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgcmV0cmlldmUgZHJhZnREYXRhQ29udGV4dCBpbmZvcm1hdGlvblwiLCBvRXJyb3IpO1xuXHRcdH1cblx0fVxufVxuXG5jb25zdCBkcmFmdERhdGFMb3NzUG9wdXAgPSB7XG5cdHByb2Nlc3NEYXRhTG9zc09yRHJhZnREaXNjYXJkQ29uZmlybWF0aW9uOiBwcm9jZXNzRGF0YUxvc3NPckRyYWZ0RGlzY2FyZENvbmZpcm1hdGlvbixcblx0c2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uOiBzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24sXG5cdE5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSxcblx0cHJvY2Vzc0ZjbE1vZGU6IHByb2Nlc3NGY2xNb2RlLFxuXHRwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlOiBwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlLFxuXHRwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHk6IHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eSxcblx0cHJvY2Vzc0VkaXRTdGF0ZURpcnR5OiBwcm9jZXNzRWRpdFN0YXRlRGlydHlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGRyYWZ0RGF0YUxvc3NQb3B1cDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQU1BO0VBQUEsSUFDS0EsY0FBYztFQUtuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQSxXQUxLQSxjQUFjO0lBQWRBLGNBQWM7SUFBZEEsY0FBYztFQUFBLEdBQWRBLGNBQWMsS0FBZEEsY0FBYztFQVduQixTQUFTQyxvQ0FBb0MsQ0FBQ0MsY0FBOEIsRUFBRTtJQUFBO0lBQzdFLElBQUlDLGNBQWMsR0FBRyxLQUFLO0lBQzFCLE1BQU1DLFNBQVMsR0FBR0YsY0FBYyxDQUFDRyxlQUFlLEVBQUUsQ0FBQ0MsV0FBVyxFQUFTO0lBQ3ZFSCxjQUFjLEdBQUcsQ0FBQUMsU0FBUyxhQUFUQSxTQUFTLDJDQUFUQSxTQUFTLENBQUcsUUFBUSxDQUFDLDZFQUFyQixpQkFBdUJHLEdBQUcseURBQTFCLHFCQUE0Qk4sb0NBQW9DLEtBQUksS0FBSztJQUMxRixPQUFPRSxjQUFjO0VBQ3RCOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FB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
|
|
@@ -1,290 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log",
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
function _catch(body, recover) {
|
|
9
|
-
try {
|
|
10
|
-
var result = body();
|
|
11
|
-
} catch (e) {
|
|
12
|
-
return recover(e);
|
|
13
|
-
}
|
|
14
|
-
if (result && result.then) {
|
|
15
|
-
return result.then(void 0, recover);
|
|
16
|
-
}
|
|
17
|
-
return result;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* The general handler in which the individual steps are called.
|
|
21
|
-
*
|
|
22
|
-
* @param fnProcessFunction
|
|
23
|
-
* @param fnCancelFunction
|
|
24
|
-
* @param oContext
|
|
25
|
-
* @param oController
|
|
26
|
-
* @param bSkipBindingToView
|
|
27
|
-
* @param navigationType
|
|
28
|
-
*/
|
|
29
|
-
var processDataLossOrDraftDiscardConfirmation = function (fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView, navigationType) {
|
|
30
|
-
try {
|
|
31
|
-
var _oView$getViewData$en;
|
|
32
|
-
if (navigationType === undefined) navigationType = NavigationType.BackNavigation;
|
|
33
|
-
var oView = oController.getView();
|
|
34
|
-
var oModel = oContext.getModel();
|
|
35
|
-
var oMetaModel = oModel.getMetaModel();
|
|
36
|
-
var sEntitySet = (_oView$getViewData$en = oView.getViewData().entitySet) !== null && _oView$getViewData$en !== void 0 ? _oView$getViewData$en : "";
|
|
37
|
-
var oDraftRoot = sEntitySet && oMetaModel.getObject("/" + sEntitySet + "@com.sap.vocabularies.Common.v1.DraftRoot");
|
|
38
|
-
var oUIModel = oView.getModel("ui");
|
|
39
|
-
var bIsEditable = oUIModel.getProperty("/isEditable");
|
|
40
|
-
var draftDataContext = oModel.bindContext("".concat(oContext.getPath(), "/DraftAdministrativeData")).getBoundContext();
|
|
41
|
-
|
|
42
|
-
// Shouldn't display data loss popover on shell back navigation from sub-object pages
|
|
43
|
-
// and when object page is in display mode
|
|
44
|
-
var _temp17 = function () {
|
|
45
|
-
if (oContext && oContext.getObject() && (!oDraftRoot && navigationType === NavigationType.BackNavigation || !bIsEditable)) {
|
|
46
|
-
fnProcessFunction();
|
|
47
|
-
} else {
|
|
48
|
-
var _temp18 = _catch(function () {
|
|
49
|
-
return Promise.resolve(draftDataContext.requestObject()).then(function (draftAdminData) {
|
|
50
|
-
return Promise.resolve(processDraftAdminData(draftAdminData, fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView, navigationType)).then(function () {});
|
|
51
|
-
});
|
|
52
|
-
}, function (oError) {
|
|
53
|
-
Log.error("Cannot retrieve draftDataContext information", oError);
|
|
54
|
-
});
|
|
55
|
-
if (_temp18 && _temp18.then) return _temp18.then(function () {});
|
|
56
|
-
}
|
|
57
|
-
}();
|
|
58
|
-
return Promise.resolve(_temp17 && _temp17.then ? _temp17.then(function () {}) : void 0);
|
|
59
|
-
} catch (e) {
|
|
60
|
-
return Promise.reject(e);
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Logic to process the admin data.
|
|
65
|
-
*
|
|
66
|
-
* @param draftAdminData Admin data
|
|
67
|
-
* @param fnProcessFunction The functon to process the handler
|
|
68
|
-
* @param fnCancelFunction The cancel function
|
|
69
|
-
* @param oContext The context of the current call
|
|
70
|
-
* @param oController The current controller referenced
|
|
71
|
-
* @param bSkipBindingToView The optional parameter to skip the binding to the view
|
|
72
|
-
* @param navigationType The navigation type for which the function should be called
|
|
73
|
-
*/
|
|
74
|
-
var processDraftAdminData = function (draftAdminData, fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView, navigationType) {
|
|
75
|
-
try {
|
|
76
|
-
if (navigationType === undefined) navigationType = NavigationType.BackNavigation;
|
|
77
|
-
var collaborationConnected = ActivitySync.isConnected(oController.getView());
|
|
78
|
-
var processFunctionForDrafts = !collaborationConnected ? fnProcessFunction : function () {
|
|
79
|
-
ActivitySync.disconnect(oController.getView());
|
|
80
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
81
|
-
args[_key] = arguments[_key];
|
|
82
|
-
}
|
|
83
|
-
fnProcessFunction.apply.apply(fnProcessFunction, [null].concat(args));
|
|
84
|
-
};
|
|
85
|
-
var bSilentlyKeepDraftOnForwardNavigation = silentlyKeepDraftOnForwardNavigation(oController);
|
|
86
|
-
var _temp13 = function () {
|
|
87
|
-
if (draftAdminData) {
|
|
88
|
-
var _temp14 = function () {
|
|
89
|
-
if (oController.getAppComponent().getRootViewController().isFclEnabled()) {
|
|
90
|
-
return Promise.resolve(processFclMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, bSkipBindingToView)).then(function () {});
|
|
91
|
-
} else if (!oContext.getObject().HasActiveEntity) {
|
|
92
|
-
processNoActiveEntityMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView);
|
|
93
|
-
} else if (draftAdminData.CreationDateTime === draftAdminData.LastChangeDateTime) {
|
|
94
|
-
processEditingDraftForExistingEntity(oController, oContext, processFunctionForDrafts, navigationType);
|
|
95
|
-
} else if (EditState.isEditStateDirty()) {
|
|
96
|
-
processEditStateDirty(oController, fnCancelFunction, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView);
|
|
97
|
-
} else {
|
|
98
|
-
// The user started editing the existing draft but did not make any changes
|
|
99
|
-
// in the current editing session, so in this case we do not want
|
|
100
|
-
// to show the dataloss dialog but just keep the draft
|
|
101
|
-
processFunctionForDrafts();
|
|
102
|
-
}
|
|
103
|
-
}();
|
|
104
|
-
if (_temp14 && _temp14.then) return _temp14.then(function () {});
|
|
105
|
-
} else {
|
|
106
|
-
fnProcessFunction();
|
|
107
|
-
}
|
|
108
|
-
}();
|
|
109
|
-
return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(function () {}) : void 0);
|
|
110
|
-
} catch (e) {
|
|
111
|
-
return Promise.reject(e);
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
/**
|
|
115
|
-
* Logic to process the edit state dirty.
|
|
116
|
-
*
|
|
117
|
-
* @param oController The current controller referenced.
|
|
118
|
-
* @param fnCancelFunction The cancel function
|
|
119
|
-
* @param processFunctionForDrafts The functon to process the handler
|
|
120
|
-
* @param navigationType The navigation type for which the function should be called
|
|
121
|
-
* @param bSilentlyKeepDraftOnForwardNavigation The parameter to determine whether to skip the popup appearance in forward case
|
|
122
|
-
* @param bSkipBindingToView The optional parameter to skip the binding to the view.
|
|
123
|
-
*/
|
|
124
|
-
var processEditStateDirty = function (oController, fnCancelFunction, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView) {
|
|
125
|
-
try {
|
|
126
|
-
if (navigationType === NavigationType.ForwardNavigation && bSilentlyKeepDraftOnForwardNavigation) {
|
|
127
|
-
// In case we have a "forward navigation" and an additional parameter set in the manifest
|
|
128
|
-
// we "silently" keep the draft
|
|
129
|
-
processFunctionForDrafts();
|
|
130
|
-
} else {
|
|
131
|
-
// The CreationDateTime and LastChangeDateTime are NOT equal, so we are currently editing
|
|
132
|
-
// an existing draft and need to distinguish depending on if any changes
|
|
133
|
-
// have been made in the current editing session or not
|
|
134
|
-
// Changes have been made in the current editing session so we want
|
|
135
|
-
// to show the dataloss dialog and let the user decide
|
|
136
|
-
DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
|
|
137
|
-
}
|
|
138
|
-
return Promise.resolve();
|
|
139
|
-
} catch (e) {
|
|
140
|
-
return Promise.reject(e);
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
/**
|
|
144
|
-
* Logic to process the draft editing for existing entity.
|
|
145
|
-
*
|
|
146
|
-
* @param oController The current controller referenced.
|
|
147
|
-
* @param oContext The context of the current call
|
|
148
|
-
* @param processFunctionForDrafts The functon to process the handler
|
|
149
|
-
* @param navigationType The navigation type for which the function should be called
|
|
150
|
-
*/
|
|
151
|
-
var processEditingDraftForExistingEntity = function (oController, oContext, processFunctionForDrafts, navigationType) {
|
|
152
|
-
try {
|
|
153
|
-
var _temp9 = function () {
|
|
154
|
-
if (navigationType === NavigationType.BackNavigation) {
|
|
155
|
-
var mParameters = {
|
|
156
|
-
skipDiscardPopover: true
|
|
157
|
-
};
|
|
158
|
-
var _temp10 = _catch(function () {
|
|
159
|
-
return Promise.resolve(oController.editFlow.cancelDocument(oContext, mParameters)).then(function () {
|
|
160
|
-
processFunctionForDrafts();
|
|
161
|
-
});
|
|
162
|
-
}, function (error) {
|
|
163
|
-
Log.error("Error while canceling the document", error);
|
|
164
|
-
});
|
|
165
|
-
if (_temp10 && _temp10.then) return _temp10.then(function () {});
|
|
166
|
-
} else {
|
|
167
|
-
// In case of a forward navigation we silently keep the draft and only
|
|
168
|
-
// execute the followup function.
|
|
169
|
-
processFunctionForDrafts();
|
|
170
|
-
}
|
|
171
|
-
}();
|
|
172
|
-
// We are editing a draft for an existing active entity
|
|
173
|
-
// The CreationDateTime and LastChangeDateTime are equal, so this draft was
|
|
174
|
-
// never saved before, hence we're currently editing a newly created draft for
|
|
175
|
-
// an existing active entity for the first time.
|
|
176
|
-
// Also there have so far been no changes made to the draft and in this
|
|
177
|
-
// case we want to silently navigate and delete the draftin case of a back
|
|
178
|
-
// navigation but in case of a forward navigation we want to silently keep it!
|
|
179
|
-
return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
|
|
180
|
-
} catch (e) {
|
|
181
|
-
return Promise.reject(e);
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
/**
|
|
185
|
-
* Logic to process the mode with no active entity.
|
|
186
|
-
*
|
|
187
|
-
* @param draftAdminData Admin data
|
|
188
|
-
* @param fnCancelFunction The cancel function
|
|
189
|
-
* @param oController The current controller referenced
|
|
190
|
-
* @param processFunctionForDrafts The functon to process the handler
|
|
191
|
-
* @param navigationType The navigation type for which the function should be called
|
|
192
|
-
* @param bSilentlyKeepDraftOnForwardNavigation The parameter to determine whether to skip the popup appearance in forward case
|
|
193
|
-
* @param bSkipBindingToView The optional parameter to skip the binding to the view
|
|
194
|
-
*/
|
|
195
|
-
var processNoActiveEntityMode = function (draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView) {
|
|
196
|
-
try {
|
|
197
|
-
var _temp4 = function () {
|
|
198
|
-
if (EditState.isEditStateDirty()) {
|
|
199
|
-
var _temp5 = function () {
|
|
200
|
-
if (draftAdminData.CreationDateTime === draftAdminData.LastChangeDateTime && navigationType === NavigationType.BackNavigation) {
|
|
201
|
-
var _temp6 = _catch(function () {
|
|
202
|
-
return Promise.resolve(DataLossOrDraftDiscardHandler.discardDraft(oController, bSkipBindingToView)).then(function () {
|
|
203
|
-
processFunctionForDrafts();
|
|
204
|
-
});
|
|
205
|
-
}, function (error) {
|
|
206
|
-
Log.error("Error while canceling the document", error);
|
|
207
|
-
});
|
|
208
|
-
if (_temp6 && _temp6.then) return _temp6.then(function () {});
|
|
209
|
-
} else if (navigationType === NavigationType.ForwardNavigation && bSilentlyKeepDraftOnForwardNavigation) {
|
|
210
|
-
// In case we have a "forward navigation" and an additional parameter set in the manifest
|
|
211
|
-
// we "silently" keep the draft
|
|
212
|
-
processFunctionForDrafts();
|
|
213
|
-
} else {
|
|
214
|
-
// In this case data is being changed or a forward navigation is triggered
|
|
215
|
-
// and we always want to show the dataloss dialog on navigation
|
|
216
|
-
DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
|
|
217
|
-
}
|
|
218
|
-
}();
|
|
219
|
-
if (_temp5 && _temp5.then) return _temp5.then(function () {});
|
|
220
|
-
} else {
|
|
221
|
-
// We are editing a draft which has been created earlier but never saved to active
|
|
222
|
-
// version and since the edit state is not dirty, there have been no user changes
|
|
223
|
-
// so in this case we want to silently navigate and do nothing
|
|
224
|
-
processFunctionForDrafts();
|
|
225
|
-
}
|
|
226
|
-
}();
|
|
227
|
-
// There is no active entity so we are editing either newly created data or
|
|
228
|
-
// a draft which has never been saved to active version
|
|
229
|
-
// Since we want to react differently in the two situations, we have to check the
|
|
230
|
-
// dirty state
|
|
231
|
-
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
|
|
232
|
-
} catch (e) {
|
|
233
|
-
return Promise.reject(e);
|
|
234
|
-
}
|
|
235
|
-
};
|
|
236
|
-
/**
|
|
237
|
-
* Logic to process the fcl mode.
|
|
238
|
-
*
|
|
239
|
-
* @param draftAdminData Admin data
|
|
240
|
-
* @param fnCancelFunction The cancel function
|
|
241
|
-
* @param oController The current controller referenced
|
|
242
|
-
* @param processFunctionForDrafts The functon to process the handler
|
|
243
|
-
* @param bSkipBindingToView The optional parameter to skip the binding to the view
|
|
244
|
-
*/
|
|
245
|
-
var processFclMode = function (draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, bSkipBindingToView) {
|
|
246
|
-
try {
|
|
247
|
-
// The application is running in FCL mode so in this case we fall back to
|
|
248
|
-
// the old logic since the dirty state handling is not properly working
|
|
249
|
-
// for FCL.
|
|
250
|
-
if (draftAdminData.CreationDateTime !== draftAdminData.LastChangeDateTime) {
|
|
251
|
-
DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
|
|
252
|
-
} else {
|
|
253
|
-
processFunctionForDrafts();
|
|
254
|
-
}
|
|
255
|
-
return Promise.resolve();
|
|
256
|
-
} catch (e) {
|
|
257
|
-
return Promise.reject(e);
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
/* Enum for navigation types */
|
|
261
|
-
var NavigationType;
|
|
262
|
-
/**
|
|
263
|
-
* The method checks whether an optional parameter in the manifest is set to silently keep the draft in case a forward navigation is triggered.
|
|
264
|
-
*
|
|
265
|
-
* @param pageController The reference to the current PageController instance
|
|
266
|
-
* @returns Boolean value with true or false to silently keep the draft
|
|
267
|
-
*/
|
|
268
|
-
(function (NavigationType) {
|
|
269
|
-
NavigationType["BackNavigation"] = "BackNavigation";
|
|
270
|
-
NavigationType["ForwardNavigation"] = "ForwardNavigation";
|
|
271
|
-
})(NavigationType || (NavigationType = {}));
|
|
272
|
-
function silentlyKeepDraftOnForwardNavigation(pageController) {
|
|
273
|
-
var _oManifest$sapFe, _oManifest$sapFe$app;
|
|
274
|
-
var rbSilentlyKeep = false;
|
|
275
|
-
var oManifest = pageController.getAppComponent().getManifest();
|
|
276
|
-
rbSilentlyKeep = (oManifest === null || oManifest === void 0 ? void 0 : (_oManifest$sapFe = oManifest["sap.fe"]) === null || _oManifest$sapFe === void 0 ? void 0 : (_oManifest$sapFe$app = _oManifest$sapFe.app) === null || _oManifest$sapFe$app === void 0 ? void 0 : _oManifest$sapFe$app.silentlyKeepDraftOnForwardNavigation) || false;
|
|
277
|
-
return rbSilentlyKeep;
|
|
278
|
-
}
|
|
279
|
-
var draftDataLossPopup = {
|
|
280
|
-
processDataLossOrDraftDiscardConfirmation: processDataLossOrDraftDiscardConfirmation,
|
|
281
|
-
silentlyKeepDraftOnForwardNavigation: silentlyKeepDraftOnForwardNavigation,
|
|
282
|
-
NavigationType: NavigationType,
|
|
283
|
-
processFclMode: processFclMode,
|
|
284
|
-
processNoActiveEntityMode: processNoActiveEntityMode,
|
|
285
|
-
processEditingDraftForExistingEntity: processEditingDraftForExistingEntity,
|
|
286
|
-
processEditStateDirty: processEditStateDirty
|
|
287
|
-
};
|
|
288
|
-
return draftDataLossPopup;
|
|
289
|
-
}, false);
|
|
290
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwicHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24iLCJmblByb2Nlc3NGdW5jdGlvbiIsImZuQ2FuY2VsRnVuY3Rpb24iLCJvQ29udGV4dCIsIm9Db250cm9sbGVyIiwiYlNraXBCaW5kaW5nVG9WaWV3IiwibmF2aWdhdGlvblR5cGUiLCJOYXZpZ2F0aW9uVHlwZSIsIkJhY2tOYXZpZ2F0aW9uIiwib1ZpZXciLCJnZXRWaWV3Iiwib01vZGVsIiwiZ2V0TW9kZWwiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwic0VudGl0eVNldCIsImdldFZpZXdEYXRhIiwiZW50aXR5U2V0Iiwib0RyYWZ0Um9vdCIsImdldE9iamVjdCIsIm9VSU1vZGVsIiwiYklzRWRpdGFibGUiLCJnZXRQcm9wZXJ0eSIsImRyYWZ0RGF0YUNvbnRleHQiLCJiaW5kQ29udGV4dCIsImdldFBhdGgiLCJnZXRCb3VuZENvbnRleHQiLCJyZXF1ZXN0T2JqZWN0IiwiZHJhZnRBZG1pbkRhdGEiLCJwcm9jZXNzRHJhZnRBZG1pbkRhdGEiLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsImNvbGxhYm9yYXRpb25Db25uZWN0ZWQiLCJBY3Rpdml0eVN5bmMiLCJpc0Nvbm5lY3RlZCIsInByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyIsImRpc2Nvbm5lY3QiLCJhcmdzIiwiYXBwbHkiLCJiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIiwic2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0Um9vdFZpZXdDb250cm9sbGVyIiwiaXNGY2xFbmFibGVkIiwicHJvY2Vzc0ZjbE1vZGUiLCJIYXNBY3RpdmVFbnRpdHkiLCJwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlIiwiQ3JlYXRpb25EYXRlVGltZSIsIkxhc3RDaGFuZ2VEYXRlVGltZSIsInByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eSIsIkVkaXRTdGF0ZSIsImlzRWRpdFN0YXRlRGlydHkiLCJwcm9jZXNzRWRpdFN0YXRlRGlydHkiLCJGb3J3YXJkTmF2aWdhdGlvbiIsIkRhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyIiwicGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0IiwibVBhcmFtZXRlcnMiLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJlZGl0RmxvdyIsImNhbmNlbERvY3VtZW50IiwiZGlzY2FyZERyYWZ0IiwicGFnZUNvbnRyb2xsZXIiLCJyYlNpbGVudGx5S2VlcCIsIm9NYW5pZmVzdCIsImdldE1hbmlmZXN0IiwiYXBwIiwiZHJhZnREYXRhTG9zc1BvcHVwIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJkcmFmdERhdGFMb3NzUG9wdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQWN0aXZpdHlTeW5jIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0FjdGl2aXR5U3luY1wiO1xuaW1wb3J0IERhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9scy9EYXRhTG9zc09yRHJhZnREaXNjYXJkL0RhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyXCI7XG5pbXBvcnQgRWRpdFN0YXRlIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0VkaXRTdGF0ZVwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uLy4uL1BhZ2VDb250cm9sbGVyXCI7XG5cbi8qIEVudW0gZm9yIG5hdmlnYXRpb24gdHlwZXMgKi9cbmVudW0gTmF2aWdhdGlvblR5cGUge1xuXHRCYWNrTmF2aWdhdGlvbiA9IFwiQmFja05hdmlnYXRpb25cIixcblx0Rm9yd2FyZE5hdmlnYXRpb24gPSBcIkZvcndhcmROYXZpZ2F0aW9uXCJcbn1cblxuLyoqXG4gKiBUaGUgbWV0aG9kIGNoZWNrcyB3aGV0aGVyIGFuIG9wdGlvbmFsIHBhcmFtZXRlciBpbiB0aGUgbWFuaWZlc3QgaXMgc2V0IHRvIHNpbGVudGx5IGtlZXAgdGhlIGRyYWZ0IGluIGNhc2UgYSBmb3J3YXJkIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkLlxuICpcbiAqIEBwYXJhbSBwYWdlQ29udHJvbGxlciBUaGUgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IFBhZ2VDb250cm9sbGVyIGluc3RhbmNlXG4gKiBAcmV0dXJucyBCb29sZWFuIHZhbHVlIHdpdGggdHJ1ZSBvciBmYWxzZSB0byBzaWxlbnRseSBrZWVwIHRoZSBkcmFmdFxuICovXG5mdW5jdGlvbiBzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24ocGFnZUNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKSB7XG5cdGxldCByYlNpbGVudGx5S2VlcCA9IGZhbHNlO1xuXHRjb25zdCBvTWFuaWZlc3QgPSBwYWdlQ29udHJvbGxlci5nZXRBcHBDb21wb25lbnQoKS5nZXRNYW5pZmVzdCgpIGFzIGFueTtcblx0cmJTaWxlbnRseUtlZXAgPSBvTWFuaWZlc3Q/LltcInNhcC5mZVwiXT8uYXBwPy5zaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gfHwgZmFsc2U7XG5cdHJldHVybiByYlNpbGVudGx5S2VlcDtcbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBmY2wgbW9kZS5cbiAqXG4gKiBAcGFyYW0gZHJhZnRBZG1pbkRhdGEgQWRtaW4gZGF0YVxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGNhbmNlbCBmdW5jdGlvblxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZFxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3RvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRmNsTW9kZShcblx0ZHJhZnRBZG1pbkRhdGE6IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IGFueSxcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhblxuKSB7XG5cdC8vIFRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluIEZDTCBtb2RlIHNvIGluIHRoaXMgY2FzZSB3ZSBmYWxsIGJhY2sgdG9cblx0Ly8gdGhlIG9sZCBsb2dpYyBzaW5jZSB0aGUgZGlydHkgc3RhdGUgaGFuZGxpbmcgaXMgbm90IHByb3Blcmx5IHdvcmtpbmdcblx0Ly8gZm9yIEZDTC5cblx0aWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgIT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSkge1xuXHRcdERhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyLnBlcmZvcm1BZnRlckRpc2NhcmRvcktlZXBEcmFmdChcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdGJTa2lwQmluZGluZ1RvVmlld1xuXHRcdCk7XG5cdH0gZWxzZSB7XG5cdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBtb2RlIHdpdGggbm8gYWN0aXZlIGVudGl0eS5cbiAqXG4gKiBAcGFyYW0gZHJhZnRBZG1pbkRhdGEgQWRtaW4gZGF0YVxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGNhbmNlbCBmdW5jdGlvblxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZFxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3RvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gbmF2aWdhdGlvblR5cGUgVGhlIG5hdmlnYXRpb24gdHlwZSBmb3Igd2hpY2ggdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWRcbiAqIEBwYXJhbSBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIFRoZSBwYXJhbWV0ZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gc2tpcCB0aGUgcG9wdXAgYXBwZWFyYW5jZSBpbiBmb3J3YXJkIGNhc2VcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXcgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NOb0FjdGl2ZUVudGl0eU1vZGUoXG5cdGRyYWZ0QWRtaW5EYXRhOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzOiBhbnksXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSxcblx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogYm9vbGVhbixcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhblxuKSB7XG5cdC8vIFRoZXJlIGlzIG5vIGFjdGl2ZSBlbnRpdHkgc28gd2UgYXJlIGVkaXRpbmcgZWl0aGVyIG5ld2x5IGNyZWF0ZWQgZGF0YSBvclxuXHQvLyBhIGRyYWZ0IHdoaWNoIGhhcyBuZXZlciBiZWVuIHNhdmVkIHRvIGFjdGl2ZSB2ZXJzaW9uXG5cdC8vIFNpbmNlIHdlIHdhbnQgdG8gcmVhY3QgZGlmZmVyZW50bHkgaW4gdGhlIHR3byBzaXR1YXRpb25zLCB3ZSBoYXZlIHRvIGNoZWNrIHRoZVxuXHQvLyBkaXJ0eSBzdGF0ZVxuXHRpZiAoRWRpdFN0YXRlLmlzRWRpdFN0YXRlRGlydHkoKSkge1xuXHRcdGlmIChkcmFmdEFkbWluRGF0YS5DcmVhdGlvbkRhdGVUaW1lID09PSBkcmFmdEFkbWluRGF0YS5MYXN0Q2hhbmdlRGF0ZVRpbWUgJiYgbmF2aWdhdGlvblR5cGUgPT09IE5hdmlnYXRpb25UeXBlLkJhY2tOYXZpZ2F0aW9uKSB7XG5cdFx0XHQvLyBpbiBjYXNlIHdlIGhhdmUgdW50b3VjaGVkIGNoYW5nZXMgZm9yIHRoZSBkcmFmdCBhbmQgYSBcImJhY2tcIlxuXHRcdFx0Ly8gbmF2aWdhdGlvbiB3ZSBjYW4gc2lsZW50bHkgZGlzY2FyZCB0aGUgZHJhZnQgYWdhaW5cblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL25vLW5lc3Rpbmdcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGF3YWl0IERhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyLmRpc2NhcmREcmFmdChvQ29udHJvbGxlciwgYlNraXBCaW5kaW5nVG9WaWV3KTtcblx0XHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdFx0XHR9IGNhdGNoIChlcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGNhbmNlbGluZyB0aGUgZG9jdW1lbnRcIiwgZXJyb3IpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAobmF2aWdhdGlvblR5cGUgPT09IE5hdmlnYXRpb25UeXBlLkZvcndhcmROYXZpZ2F0aW9uICYmIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24pIHtcblx0XHRcdC8vIEluIGNhc2Ugd2UgaGF2ZSBhIFwiZm9yd2FyZCBuYXZpZ2F0aW9uXCIgYW5kIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHNldCBpbiB0aGUgbWFuaWZlc3Rcblx0XHRcdC8vIHdlIFwic2lsZW50bHlcIiBrZWVwIHRoZSBkcmFmdFxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIEluIHRoaXMgY2FzZSBkYXRhIGlzIGJlaW5nIGNoYW5nZWQgb3IgYSBmb3J3YXJkIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkXG5cdFx0XHQvLyBhbmQgd2UgYWx3YXlzIHdhbnQgdG8gc2hvdyB0aGUgZGF0YWxvc3MgZGlhbG9nIG9uIG5hdmlnYXRpb25cblx0XHRcdERhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyLnBlcmZvcm1BZnRlckRpc2NhcmRvcktlZXBEcmFmdChcblx0XHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3XG5cdFx0XHQpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHQvLyBXZSBhcmUgZWRpdGluZyBhIGRyYWZ0IHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgZWFybGllciBidXQgbmV2ZXIgc2F2ZWQgdG8gYWN0aXZlXG5cdFx0Ly8gdmVyc2lvbiBhbmQgc2luY2UgdGhlIGVkaXQgc3RhdGUgaXMgbm90IGRpcnR5LCB0aGVyZSBoYXZlIGJlZW4gbm8gdXNlciBjaGFuZ2VzXG5cdFx0Ly8gc28gaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gc2lsZW50bHkgbmF2aWdhdGUgYW5kIGRvIG5vdGhpbmdcblx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0fVxufVxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBkcmFmdCBlZGl0aW5nIGZvciBleGlzdGluZyBlbnRpdHkuXG4gKlxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZC5cbiAqIEBwYXJhbSBvQ29udGV4dCBUaGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBjYWxsXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdG9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHkoXG5cdG9Db250cm9sbGVyOiBhbnksXG5cdG9Db250ZXh0OiBhbnksXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogYW55LFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGVcbikge1xuXHQvLyBXZSBhcmUgZWRpdGluZyBhIGRyYWZ0IGZvciBhbiBleGlzdGluZyBhY3RpdmUgZW50aXR5XG5cdC8vIFRoZSBDcmVhdGlvbkRhdGVUaW1lIGFuZCBMYXN0Q2hhbmdlRGF0ZVRpbWUgYXJlIGVxdWFsLCBzbyB0aGlzIGRyYWZ0IHdhc1xuXHQvLyBuZXZlciBzYXZlZCBiZWZvcmUsIGhlbmNlIHdlJ3JlIGN1cnJlbnRseSBlZGl0aW5nIGEgbmV3bHkgY3JlYXRlZCBkcmFmdCBmb3Jcblx0Ly8gYW4gZXhpc3RpbmcgYWN0aXZlIGVudGl0eSBmb3IgdGhlIGZpcnN0IHRpbWUuXG5cdC8vIEFsc28gdGhlcmUgaGF2ZSBzbyBmYXIgYmVlbiBubyBjaGFuZ2VzIG1hZGUgdG8gdGhlIGRyYWZ0IGFuZCBpbiB0aGlzXG5cdC8vIGNhc2Ugd2Ugd2FudCB0byBzaWxlbnRseSBuYXZpZ2F0ZSBhbmQgZGVsZXRlIHRoZSBkcmFmdGluIGNhc2Ugb2YgYSBiYWNrXG5cdC8vIG5hdmlnYXRpb24gYnV0IGluIGNhc2Ugb2YgYSBmb3J3YXJkIG5hdmlnYXRpb24gd2Ugd2FudCB0byBzaWxlbnRseSBrZWVwIGl0IVxuXHRpZiAobmF2aWdhdGlvblR5cGUgPT09IE5hdmlnYXRpb25UeXBlLkJhY2tOYXZpZ2F0aW9uKSB7XG5cdFx0Y29uc3QgbVBhcmFtZXRlcnMgPSB7XG5cdFx0XHRza2lwRGlzY2FyZFBvcG92ZXI6IHRydWVcblx0XHR9O1xuXG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IG9Db250cm9sbGVyLmVkaXRGbG93LmNhbmNlbERvY3VtZW50KG9Db250ZXh0LCBtUGFyYW1ldGVycyk7XG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHR9IGNhdGNoIChlcnJvcjogYW55KSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBjYW5jZWxpbmcgdGhlIGRvY3VtZW50XCIsIGVycm9yKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gSW4gY2FzZSBvZiBhIGZvcndhcmQgbmF2aWdhdGlvbiB3ZSBzaWxlbnRseSBrZWVwIHRoZSBkcmFmdCBhbmQgb25seVxuXHRcdC8vIGV4ZWN1dGUgdGhlIGZvbGxvd3VwIGZ1bmN0aW9uLlxuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgZWRpdCBzdGF0ZSBkaXJ0eS5cbiAqXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkLlxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGNhbmNlbCBmdW5jdGlvblxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3RvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gbmF2aWdhdGlvblR5cGUgVGhlIG5hdmlnYXRpb24gdHlwZSBmb3Igd2hpY2ggdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWRcbiAqIEBwYXJhbSBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIFRoZSBwYXJhbWV0ZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gc2tpcCB0aGUgcG9wdXAgYXBwZWFyYW5jZSBpbiBmb3J3YXJkIGNhc2VcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXcgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3LlxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRWRpdFN0YXRlRGlydHkoXG5cdG9Db250cm9sbGVyOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzOiBhbnksXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSxcblx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogYm9vbGVhbixcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhblxuKSB7XG5cdGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuRm9yd2FyZE5hdmlnYXRpb24gJiYgYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbikge1xuXHRcdC8vIEluIGNhc2Ugd2UgaGF2ZSBhIFwiZm9yd2FyZCBuYXZpZ2F0aW9uXCIgYW5kIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHNldCBpbiB0aGUgbWFuaWZlc3Rcblx0XHQvLyB3ZSBcInNpbGVudGx5XCIga2VlcCB0aGUgZHJhZnRcblx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0fSBlbHNlIHtcblx0XHQvLyBUaGUgQ3JlYXRpb25EYXRlVGltZSBhbmQgTGFzdENoYW5nZURhdGVUaW1lIGFyZSBOT1QgZXF1YWwsIHNvIHdlIGFyZSBjdXJyZW50bHkgZWRpdGluZ1xuXHRcdC8vIGFuIGV4aXN0aW5nIGRyYWZ0IGFuZCBuZWVkIHRvIGRpc3Rpbmd1aXNoIGRlcGVuZGluZyBvbiBpZiBhbnkgY2hhbmdlc1xuXHRcdC8vIGhhdmUgYmVlbiBtYWRlIGluIHRoZSBjdXJyZW50IGVkaXRpbmcgc2Vzc2lvbiBvciBub3Rcblx0XHQvLyBDaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIGluIHRoZSBjdXJyZW50IGVkaXRpbmcgc2Vzc2lvbiBzbyB3ZSB3YW50XG5cdFx0Ly8gdG8gc2hvdyB0aGUgZGF0YWxvc3MgZGlhbG9nIGFuZCBsZXQgdGhlIHVzZXIgZGVjaWRlXG5cdFx0RGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIucGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0KFxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3XG5cdFx0KTtcblx0fVxufVxuXG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIGFkbWluIGRhdGEuXG4gKlxuICogQHBhcmFtIGRyYWZ0QWRtaW5EYXRhIEFkbWluIGRhdGFcbiAqIEBwYXJhbSBmblByb2Nlc3NGdW5jdGlvbiBUaGUgZnVuY3RvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcGFyYW0gb0NvbnRleHQgVGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgY2FsbFxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZFxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXdcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRHJhZnRBZG1pbkRhdGEoXG5cdGRyYWZ0QWRtaW5EYXRhOiBhbnksXG5cdGZuUHJvY2Vzc0Z1bmN0aW9uOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0b0NvbnRleHQ6IGFueSxcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlID0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb25cbikge1xuXHRjb25zdCBjb2xsYWJvcmF0aW9uQ29ubmVjdGVkID0gQWN0aXZpdHlTeW5jLmlzQ29ubmVjdGVkKG9Db250cm9sbGVyLmdldFZpZXcoKSk7XG5cdGNvbnN0IHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyA9ICFjb2xsYWJvcmF0aW9uQ29ubmVjdGVkXG5cdFx0PyBmblByb2Nlc3NGdW5jdGlvblxuXHRcdDogZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG5cdFx0XHRcdEFjdGl2aXR5U3luYy5kaXNjb25uZWN0KG9Db250cm9sbGVyLmdldFZpZXcoKSk7XG5cdFx0XHRcdGZuUHJvY2Vzc0Z1bmN0aW9uLmFwcGx5KG51bGwsIC4uLmFyZ3MpO1xuXHRcdCAgfTtcblxuXHRjb25zdCBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uID0gc2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uKG9Db250cm9sbGVyKTtcblxuXHRpZiAoZHJhZnRBZG1pbkRhdGEpIHtcblx0XHRpZiAob0NvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkuaXNGY2xFbmFibGVkKCkpIHtcblx0XHRcdGF3YWl0IHByb2Nlc3NGY2xNb2RlKGRyYWZ0QWRtaW5EYXRhLCBmbkNhbmNlbEZ1bmN0aW9uLCBvQ29udHJvbGxlciwgcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLCBiU2tpcEJpbmRpbmdUb1ZpZXcpO1xuXHRcdH0gZWxzZSBpZiAoIW9Db250ZXh0LmdldE9iamVjdCgpLkhhc0FjdGl2ZUVudGl0eSkge1xuXHRcdFx0cHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZShcblx0XHRcdFx0ZHJhZnRBZG1pbkRhdGEsXG5cdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlLFxuXHRcdFx0XHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmIChkcmFmdEFkbWluRGF0YS5DcmVhdGlvbkRhdGVUaW1lID09PSBkcmFmdEFkbWluRGF0YS5MYXN0Q2hhbmdlRGF0ZVRpbWUpIHtcblx0XHRcdHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eShvQ29udHJvbGxlciwgb0NvbnRleHQsIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cywgbmF2aWdhdGlvblR5cGUpO1xuXHRcdH0gZWxzZSBpZiAoRWRpdFN0YXRlLmlzRWRpdFN0YXRlRGlydHkoKSkge1xuXHRcdFx0cHJvY2Vzc0VkaXRTdGF0ZURpcnR5KFxuXHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0XHRuYXZpZ2F0aW9uVHlwZSxcblx0XHRcdFx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbixcblx0XHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3XG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUaGUgdXNlciBzdGFydGVkIGVkaXRpbmcgdGhlIGV4aXN0aW5nIGRyYWZ0IGJ1dCBkaWQgbm90IG1ha2UgYW55IGNoYW5nZXNcblx0XHRcdC8vIGluIHRoZSBjdXJyZW50IGVkaXRpbmcgc2Vzc2lvbiwgc28gaW4gdGhpcyBjYXNlIHdlIGRvIG5vdCB3YW50XG5cdFx0XHQvLyB0byBzaG93IHRoZSBkYXRhbG9zcyBkaWFsb2cgYnV0IGp1c3Qga2VlcCB0aGUgZHJhZnRcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRmblByb2Nlc3NGdW5jdGlvbigpO1xuXHR9XG59XG5cbi8qKlxuICogVGhlIGdlbmVyYWwgaGFuZGxlciBpbiB3aGljaCB0aGUgaW5kaXZpZHVhbCBzdGVwcyBhcmUgY2FsbGVkLlxuICpcbiAqIEBwYXJhbSBmblByb2Nlc3NGdW5jdGlvblxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udGV4dFxuICogQHBhcmFtIG9Db250cm9sbGVyXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3XG4gKiBAcGFyYW0gbmF2aWdhdGlvblR5cGVcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24oXG5cdGZuUHJvY2Vzc0Z1bmN0aW9uOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0b0NvbnRleHQ6IGFueSxcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlID0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb25cbikge1xuXHRjb25zdCBvVmlldyA9IG9Db250cm9sbGVyLmdldFZpZXcoKTtcblx0Y29uc3Qgb01vZGVsID0gb0NvbnRleHQuZ2V0TW9kZWwoKTtcblx0Y29uc3Qgb01ldGFNb2RlbCA9IG9Nb2RlbC5nZXRNZXRhTW9kZWwoKTtcblx0Y29uc3Qgc0VudGl0eVNldCA9IG9WaWV3LmdldFZpZXdEYXRhKCkuZW50aXR5U2V0ID8/IFwiXCI7XG5cdGNvbnN0IG9EcmFmdFJvb3QgPSBzRW50aXR5U2V0ICYmIG9NZXRhTW9kZWwuZ2V0T2JqZWN0KFwiL1wiICsgc0VudGl0eVNldCArIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdFJvb3RcIik7XG5cdGNvbnN0IG9VSU1vZGVsID0gb1ZpZXcuZ2V0TW9kZWwoXCJ1aVwiKTtcblx0Y29uc3QgYklzRWRpdGFibGUgPSBvVUlNb2RlbC5nZXRQcm9wZXJ0eShcIi9pc0VkaXRhYmxlXCIpO1xuXHRjb25zdCBkcmFmdERhdGFDb250ZXh0ID0gb01vZGVsLmJpbmRDb250ZXh0KGAke29Db250ZXh0LmdldFBhdGgoKX0vRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGFgKS5nZXRCb3VuZENvbnRleHQoKTtcblxuXHQvLyBTaG91bGRuJ3QgZGlzcGxheSBkYXRhIGxvc3MgcG9wb3ZlciBvbiBzaGVsbCBiYWNrIG5hdmlnYXRpb24gZnJvbSBzdWItb2JqZWN0IHBhZ2VzXG5cdC8vIGFuZCB3aGVuIG9iamVjdCBwYWdlIGlzIGluIGRpc3BsYXkgbW9kZVxuXHRpZiAob0NvbnRleHQgJiYgb0NvbnRleHQuZ2V0T2JqZWN0KCkgJiYgKCghb0RyYWZ0Um9vdCAmJiBuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb24pIHx8ICFiSXNFZGl0YWJsZSkpIHtcblx0XHRmblByb2Nlc3NGdW5jdGlvbigpO1xuXHR9IGVsc2Uge1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBkcmFmdEFkbWluRGF0YSA9IGF3YWl0IGRyYWZ0RGF0YUNvbnRleHQucmVxdWVzdE9iamVjdCgpO1xuXHRcdFx0YXdhaXQgcHJvY2Vzc0RyYWZ0QWRtaW5EYXRhKFxuXHRcdFx0XHRkcmFmdEFkbWluRGF0YSxcblx0XHRcdFx0Zm5Qcm9jZXNzRnVuY3Rpb24sXG5cdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdG9Db250ZXh0LFxuXHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3LFxuXHRcdFx0XHRuYXZpZ2F0aW9uVHlwZVxuXHRcdFx0KTtcblx0XHR9IGNhdGNoIChvRXJyb3I6IGFueSkge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IHJldHJpZXZlIGRyYWZ0RGF0YUNvbnRleHQgaW5mb3JtYXRpb25cIiwgb0Vycm9yKTtcblx0XHR9XG5cdH1cbn1cblxuY29uc3QgZHJhZnREYXRhTG9zc1BvcHVwID0ge1xuXHRwcm9jZXNzRGF0YUxvc3NPckRyYWZ0RGlzY2FyZENvbmZpcm1hdGlvbjogcHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24sXG5cdHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogc2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uLFxuXHROYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUsXG5cdHByb2Nlc3NGY2xNb2RlOiBwcm9jZXNzRmNsTW9kZSxcblx0cHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZTogcHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZSxcblx0cHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5OiBwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHksXG5cdHByb2Nlc3NFZGl0U3RhdGVEaXJ0eTogcHJvY2Vzc0VkaXRTdGF0ZURpcnR5XG59O1xuXG5leHBvcnQgZGVmYXVsdCBkcmFmdERhdGFMb3NzUG9wdXA7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFrakJPLGdCQUFnQkEsSUFBSSxFQUFFQyxPQUFPLEVBQUU7SUFDckMsSUFBSTtNQUNILElBQUlDLE1BQU0sR0FBR0YsSUFBSSxFQUFFO0lBQ3BCLENBQUMsQ0FBQyxPQUFNRyxDQUFDLEVBQUU7TUFDVixPQUFPRixPQUFPLENBQUNFLENBQUMsQ0FBQztJQUNsQjtJQUNBLElBQUlELE1BQU0sSUFBSUEsTUFBTSxDQUFDRSxJQUFJLEVBQUU7TUFDMUIsT0FBT0YsTUFBTSxDQUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUVILE9BQU8sQ0FBQztJQUNwQztJQUNBLE9BQU9DLE1BQU07RUFDZDtFQS9UQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVRBLElBVWVHLHlDQUF5QyxhQUN2REMsaUJBQXNCLEVBQ3RCQyxnQkFB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
|
|
5
|
+
sap.ui.define(["sap/base/Log","sap/fe/core/controllerextensions/collaboration/ActivitySync","sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler","sap/fe/core/helpers/EditState"],function(t,e,a,i){"use strict";var n;(function(t){t["BackNavigation"]="BackNavigation";t["ForwardNavigation"]="ForwardNavigation"})(n||(n={}));function o(t){var e,a;let i=false;const n=t.getAppComponent().getManifest();i=(n===null||n===void 0?void 0:(e=n["sap.fe"])===null||e===void 0?void 0:(a=e.app)===null||a===void 0?void 0:a.silentlyKeepDraftOnForwardNavigation)||false;return i}async function r(t,e,i,n,o){if(t.CreationDateTime!==t.LastChangeDateTime){a.performAfterDiscardorKeepDraft(n,e,i,o)}else{n()}}async function s(e,o,r,s,c,l,f){if(i.isEditStateDirty()){if(e.CreationDateTime===e.LastChangeDateTime&&c===n.BackNavigation){try{await a.discardDraft(r,f);s()}catch(e){t.error("Error while canceling the document",e)}}else if(c===n.ForwardNavigation&&l){s()}else{a.performAfterDiscardorKeepDraft(s,o,r,f)}}else{s()}}async function c(e,a,i,o){if(o===n.BackNavigation){const n={skipDiscardPopover:true};try{await e.editFlow.cancelDocument(a,n);i()}catch(e){t.error("Error while canceling the document",e)}}else{i()}}async function l(t,e,i,o,r,s){if(o===n.ForwardNavigation&&r){i()}else{a.performAfterDiscardorKeepDraft(i,e,t,s)}}async function f(t,a,f,d,g,p){let D=arguments.length>6&&arguments[6]!==undefined?arguments[6]:n.BackNavigation;const v=e.isConnected(g.getView());const u=!v?a:function(){e.disconnect(g.getView());for(var t=arguments.length,i=new Array(t),n=0;n<t;n++){i[n]=arguments[n]}a.apply(null,...i)};const y=o(g);if(t){if(g.getAppComponent().getRootViewController().isFclEnabled()){await r(t,f,g,u,p)}else if(!d.getObject().HasActiveEntity){s(t,f,g,u,D,y,p)}else if(t.CreationDateTime===t.LastChangeDateTime){c(g,d,u,D)}else if(i.isEditStateDirty()){l(g,f,u,D,y,p)}else{u()}}else{a()}}async function d(e,a,i,o,r){let s=arguments.length>5&&arguments[5]!==undefined?arguments[5]:n.BackNavigation;const c=o.getView();const l=i.getModel();const d=l.getMetaModel();const g=c.getViewData().entitySet??"";const p=g&&d.getObject("/"+g+"@com.sap.vocabularies.Common.v1.DraftRoot");const D=c.getModel("ui");const v=D.getProperty("/isEditable");const u=l.bindContext(`${i.getPath()}/DraftAdministrativeData`).getBoundContext();if(i&&i.getObject()&&(!p&&s===n.BackNavigation||!v)){e()}else{try{const t=await u.requestObject();await f(t,e,a,i,o,r,s)}catch(e){t.error("Cannot retrieve draftDataContext information",e)}}}const g={processDataLossOrDraftDiscardConfirmation:d,silentlyKeepDraftOnForwardNavigation:o,NavigationType:n,processFclMode:r,processNoActiveEntityMode:s,processEditingDraftForExistingEntity:c,processEditStateDirty:l};return g},false);
|
|
6
|
+
//# sourceMappingURL=draftDataLossPopup.js.map
|