@sapui5/sap.fe.core 1.127.2 → 1.129.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +3 -9
- package/src/sap/fe/core/ActionRuntime.ts +3 -7
- package/src/sap/fe/core/AppComponent.js +9 -19
- package/src/sap/fe/core/AppComponent.ts +2 -12
- package/src/sap/fe/core/AppStateHandler.js +3 -11
- package/src/sap/fe/core/AppStateHandler.ts +0 -7
- package/src/sap/fe/core/BaseController.js +4 -8
- package/src/sap/fe/core/BaseController.ts +0 -5
- package/src/sap/fe/core/CommonUtils.js +1 -9
- package/src/sap/fe/core/CommonUtils.ts +4 -8
- package/src/sap/fe/core/ExtensionAPI.js +10 -25
- package/src/sap/fe/core/ExtensionAPI.ts +4 -19
- package/src/sap/fe/core/InsightsFormattersExtension.js +5 -3
- package/src/sap/fe/core/PageController.js +7 -10
- package/src/sap/fe/core/PageController.ts +0 -3
- package/src/sap/fe/core/ResourceModel.js +3 -5
- package/src/sap/fe/core/ResourceModel.ts +0 -2
- package/src/sap/fe/core/ReuseComponent.js +8 -14
- package/src/sap/fe/core/ReuseComponent.ts +0 -6
- package/src/sap/fe/core/TemplateComponent.js +37 -9
- package/src/sap/fe/core/TemplateComponent.ts +3 -2
- package/src/sap/fe/core/TemplateModel.js +5 -5
- package/src/sap/fe/core/TemplateModel.ts +0 -1
- package/src/sap/fe/core/UIProvider.js +1 -1
- package/src/sap/fe/core/UIProvider.ts +44 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +7 -12
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +0 -5
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +61 -65
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +60 -63
- package/src/sap/fe/core/buildingBlocks/templating/AttributeModel.js +3 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockFormatter.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +21 -5
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +0 -4
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +6 -18
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +3 -20
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +5 -11
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +0 -6
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlock.js +3 -3
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +11 -10
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +0 -1
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +5 -7
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +0 -1
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +3 -10
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +0 -7
- package/src/sap/fe/core/controllerextensions/ContextSharing.js +5 -8
- package/src/sap/fe/core/controllerextensions/ContextSharing.ts +0 -2
- package/src/sap/fe/core/controllerextensions/EditFlow.js +225 -155
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +248 -164
- package/src/sap/fe/core/controllerextensions/Feedback.js +1 -3
- package/src/sap/fe/core/controllerextensions/Feedback.ts +0 -2
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +4 -7
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +0 -3
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -25
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +2 -21
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +22 -34
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +25 -31
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +8 -21
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +4 -15
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +68 -31
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +78 -32
- package/src/sap/fe/core/controllerextensions/PageReady.js +4 -4
- package/src/sap/fe/core/controllerextensions/Paginator.js +4 -8
- package/src/sap/fe/core/controllerextensions/Paginator.ts +0 -4
- package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -4
- package/src/sap/fe/core/controllerextensions/Recommendations.js +15 -24
- package/src/sap/fe/core/controllerextensions/Recommendations.ts +13 -20
- package/src/sap/fe/core/controllerextensions/Routing.js +4 -10
- package/src/sap/fe/core/controllerextensions/Routing.ts +0 -6
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +17 -11
- package/src/sap/fe/core/controllerextensions/Share.ts +10 -5
- package/src/sap/fe/core/controllerextensions/SideEffects.js +49 -45
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +54 -41
- package/src/sap/fe/core/controllerextensions/Telemetry.js +4 -4
- package/src/sap/fe/core/controllerextensions/ViewState.js +10 -34
- package/src/sap/fe/core/controllerextensions/ViewState.ts +3 -49
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +6 -8
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +0 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -2
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +0 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +4 -3
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +1 -1
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +16 -12
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +4 -1
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +126 -74
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +158 -91
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -22
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +0 -20
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +10 -20
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +11 -17
- package/src/sap/fe/core/controllerextensions/editFlow/editFlowConstants.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +191 -767
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +277 -1024
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -6
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +0 -5
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +381 -250
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +467 -301
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +2 -6
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +0 -5
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +2 -6
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.ts +4 -6
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +1 -6
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.ts +0 -4
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +4 -41
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +1 -37
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +0 -1
- package/src/sap/fe/core/controls/Any.js +1 -2
- package/src/sap/fe/core/controls/Any.ts +0 -1
- package/src/sap/fe/core/controls/AnyElement.js +1 -2
- package/src/sap/fe/core/controls/AnyElement.ts +0 -1
- package/src/sap/fe/core/controls/CommandExecution.js +3 -3
- package/src/sap/fe/core/controls/ComponentLoader.js +23 -10
- package/src/sap/fe/core/controls/ComponentLoader.ts +0 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +10 -13
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +0 -6
- package/src/sap/fe/core/controls/EventDelegateHook.js +8 -9
- package/src/sap/fe/core/controls/FormElementWrapper.js +7 -7
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -1
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +140 -24
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +141 -10
- package/src/sap/fe/core/converters/ConverterContext.js +8 -30
- package/src/sap/fe/core/converters/ConverterContext.ts +7 -29
- package/src/sap/fe/core/converters/ManifestSettings.js +37 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +12 -3
- package/src/sap/fe/core/converters/ManifestWrapper.js +12 -40
- package/src/sap/fe/core/converters/ManifestWrapper.ts +13 -46
- package/src/sap/fe/core/converters/MetaModelConverter.js +44 -48
- package/src/sap/fe/core/converters/MetaModelConverter.ts +50 -48
- package/src/sap/fe/core/converters/TemplateConverter.js +3 -2
- package/src/sap/fe/core/converters/TemplateConverter.ts +0 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +1 -28
- package/src/sap/fe/core/converters/annotations/DataField.ts +0 -26
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +24 -19
- package/src/sap/fe/core/converters/controls/Common/Action.js +13 -26
- package/src/sap/fe/core/converters/controls/Common/Action.ts +13 -31
- package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -6
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +0 -5
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +2 -4
- package/src/sap/fe/core/converters/controls/Common/Criticality.ts +1 -2
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -5
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +0 -4
- package/src/sap/fe/core/converters/controls/Common/Form.js +3 -2
- package/src/sap/fe/core/converters/controls/Common/Form.ts +2 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -7
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +11 -6
- package/src/sap/fe/core/converters/controls/Common/Table.js +159 -141
- package/src/sap/fe/core/converters/controls/Common/Table.ts +166 -122
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +5 -30
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +3 -29
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +43 -55
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +43 -47
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -4
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +0 -3
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -8
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +2 -7
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -11
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +0 -9
- package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -10
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +0 -9
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -7
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +0 -6
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -9
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +0 -8
- package/src/sap/fe/core/converters/helpers/ID.js +1 -2
- package/src/sap/fe/core/converters/helpers/ID.ts +0 -1
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +1 -2
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +0 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/Key.js +1 -5
- package/src/sap/fe/core/converters/helpers/Key.ts +0 -4
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -2
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +0 -1
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -7
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +0 -6
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +6 -27
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +9 -26
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -16
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +0 -15
- package/src/sap/fe/core/definition/FEDefinition.js +2550 -0
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +11 -12
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +9 -10
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +8 -2
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +0 -2
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -2
- package/src/sap/fe/core/formatters/FPMFormatter.ts +0 -1
- package/src/sap/fe/core/formatters/FiscalFormat.js +9 -14
- package/src/sap/fe/core/formatters/FiscalFormat.ts +0 -11
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -4
- package/src/sap/fe/core/formatters/KPIFormatter.ts +0 -3
- package/src/sap/fe/core/formatters/StandardFormatter.js +6 -3
- package/src/sap/fe/core/formatters/StandardFormatter.ts +6 -2
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -4
- package/src/sap/fe/core/formatters/ValueFormatter.ts +0 -3
- package/src/sap/fe/core/fpm/Component.js +14 -17
- package/src/sap/fe/core/fpm/Component.ts +7 -10
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +3 -10
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.ts +0 -9
- package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -13
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +0 -11
- package/src/sap/fe/core/helpers/BindingHelper.js +1 -4
- package/src/sap/fe/core/helpers/BindingHelper.ts +0 -3
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +1 -2
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +0 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js +61 -32
- package/src/sap/fe/core/helpers/DeleteHelper.ts +79 -33
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -2
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +0 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -1
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -2
- package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +0 -1
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -2
- package/src/sap/fe/core/helpers/FPMHelper.ts +0 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -8
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +0 -7
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +7 -1
- package/src/sap/fe/core/helpers/LoaderUtils.js +1 -1
- package/src/sap/fe/core/helpers/ManifestHelper.js +1 -3
- package/src/sap/fe/core/helpers/ManifestHelper.ts +0 -2
- package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
- package/src/sap/fe/core/helpers/MetaModelFunction.js +3 -8
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +0 -5
- package/src/sap/fe/core/helpers/MetaPath.js +1 -7
- package/src/sap/fe/core/helpers/MetaPath.ts +0 -6
- package/src/sap/fe/core/helpers/ModelHelper.js +55 -35
- package/src/sap/fe/core/helpers/ModelHelper.ts +64 -38
- package/src/sap/fe/core/helpers/PasteHelper.js +77 -24
- package/src/sap/fe/core/helpers/PasteHelper.ts +105 -23
- package/src/sap/fe/core/helpers/PromiseKeeper.js +1 -3
- package/src/sap/fe/core/helpers/PromiseKeeper.ts +0 -2
- package/src/sap/fe/core/helpers/RecommendationHelper.js +1 -4
- package/src/sap/fe/core/helpers/RecommendationHelper.ts +0 -3
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -3
- package/src/sap/fe/core/helpers/ResourceModelHelper.ts +3 -4
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -2
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +0 -1
- package/src/sap/fe/core/helpers/SizeHelper.js +1 -2
- package/src/sap/fe/core/helpers/SizeHelper.ts +0 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js +7 -17
- package/src/sap/fe/core/helpers/StableIdHelper.ts +7 -17
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +1 -12
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +0 -11
- package/src/sap/fe/core/helpers/Synchronization.js +1 -1
- package/src/sap/fe/core/helpers/TitleHelper.js +1 -10
- package/src/sap/fe/core/helpers/TitleHelper.ts +0 -9
- package/src/sap/fe/core/helpers/ToES6Promise.js +1 -2
- package/src/sap/fe/core/helpers/ToES6Promise.ts +0 -1
- package/src/sap/fe/core/helpers/TypeGuards.js +1 -15
- package/src/sap/fe/core/helpers/TypeGuards.ts +0 -14
- package/src/sap/fe/core/helpers/WebSocket.js +1 -1
- package/src/sap/fe/core/library.js +10 -44
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/library.ts +8 -45
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -6
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -5
- package/src/sap/fe/core/messagebundle.properties +12 -1
- package/src/sap/fe/core/messagebundle_ar.properties +8 -0
- package/src/sap/fe/core/messagebundle_bg.properties +8 -0
- package/src/sap/fe/core/messagebundle_ca.properties +8 -0
- package/src/sap/fe/core/messagebundle_cnr.properties +8 -0
- package/src/sap/fe/core/messagebundle_cs.properties +9 -1
- package/src/sap/fe/core/messagebundle_cy.properties +8 -0
- package/src/sap/fe/core/messagebundle_da.properties +8 -0
- package/src/sap/fe/core/messagebundle_de.properties +8 -0
- package/src/sap/fe/core/messagebundle_el.properties +8 -0
- package/src/sap/fe/core/messagebundle_en.properties +8 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +8 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +144 -65
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +8 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +273 -194
- package/src/sap/fe/core/messagebundle_es.properties +9 -1
- package/src/sap/fe/core/messagebundle_es_MX.properties +8 -0
- package/src/sap/fe/core/messagebundle_et.properties +8 -0
- package/src/sap/fe/core/messagebundle_fi.properties +8 -0
- package/src/sap/fe/core/messagebundle_fr.properties +8 -0
- package/src/sap/fe/core/messagebundle_fr_CA.properties +8 -0
- package/src/sap/fe/core/messagebundle_hi.properties +9 -1
- package/src/sap/fe/core/messagebundle_hr.properties +8 -0
- package/src/sap/fe/core/messagebundle_hu.properties +8 -0
- package/src/sap/fe/core/messagebundle_id.properties +12 -4
- package/src/sap/fe/core/messagebundle_it.properties +8 -0
- package/src/sap/fe/core/messagebundle_iw.properties +8 -0
- package/src/sap/fe/core/messagebundle_ja.properties +8 -0
- package/src/sap/fe/core/messagebundle_kk.properties +8 -0
- package/src/sap/fe/core/messagebundle_ko.properties +8 -0
- package/src/sap/fe/core/messagebundle_lt.properties +8 -0
- package/src/sap/fe/core/messagebundle_lv.properties +8 -0
- package/src/sap/fe/core/messagebundle_mk.properties +8 -0
- package/src/sap/fe/core/messagebundle_ms.properties +8 -0
- package/src/sap/fe/core/messagebundle_nl.properties +16 -8
- package/src/sap/fe/core/messagebundle_no.properties +8 -0
- package/src/sap/fe/core/messagebundle_pl.properties +8 -0
- package/src/sap/fe/core/messagebundle_pt.properties +8 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +8 -0
- package/src/sap/fe/core/messagebundle_ro.properties +8 -0
- package/src/sap/fe/core/messagebundle_ru.properties +8 -0
- package/src/sap/fe/core/messagebundle_sh.properties +8 -0
- package/src/sap/fe/core/messagebundle_sk.properties +8 -0
- package/src/sap/fe/core/messagebundle_sl.properties +8 -0
- package/src/sap/fe/core/messagebundle_sr.properties +8 -0
- package/src/sap/fe/core/messagebundle_sv.properties +8 -0
- package/src/sap/fe/core/messagebundle_th.properties +12 -4
- package/src/sap/fe/core/messagebundle_tr.properties +8 -0
- package/src/sap/fe/core/messagebundle_uk.properties +10 -2
- package/src/sap/fe/core/messagebundle_vi.properties +8 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +8 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +8 -0
- package/src/sap/fe/core/operationsHelper.js +22 -7
- package/src/sap/fe/core/operationsHelper.ts +24 -5
- package/src/sap/fe/core/rootView/Fcl.controller.js +7 -27
- package/src/sap/fe/core/rootView/Fcl.controller.ts +0 -18
- package/src/sap/fe/core/rootView/NavContainer.controller.js +7 -12
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +0 -5
- package/src/sap/fe/core/rootView/RootViewBaseController.js +10 -24
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +3 -16
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -3
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +3 -3
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +4 -4
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +3 -3
- package/src/sap/fe/core/services/ContextSharingServiceFactory.js +3 -4
- package/src/sap/fe/core/services/ContextSharingServiceFactory.ts +0 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +13 -20
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +11 -17
- package/src/sap/fe/core/services/NavigationServiceFactory.js +11 -21
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +4 -17
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +7 -19
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +0 -12
- package/src/sap/fe/core/services/ShellServicesFactory.js +8 -44
- package/src/sap/fe/core/services/ShellServicesFactory.ts +1 -41
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +19 -60
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +14 -57
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +6 -14
- package/src/sap/fe/core/services/TelemetryServiceFactory.ts +2 -10
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +17 -7
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +17 -3
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +11 -24
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +0 -19
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +3 -31
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +0 -27
- package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.js +1 -4
- package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.ts +0 -3
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +7 -7
- package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.js +4 -1
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
- package/src/sap/fe/core/templating/ActionHelper.js +1 -2
- package/src/sap/fe/core/templating/ActionHelper.ts +0 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +1 -2
- package/src/sap/fe/core/templating/CommonFormatters.ts +0 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -6
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +0 -5
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -2
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +0 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -18
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +0 -17
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +6 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js +1 -4
- package/src/sap/fe/core/templating/EntitySetHelper.ts +0 -3
- package/src/sap/fe/core/templating/EntityTypeHelper.js +4 -5
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +3 -4
- package/src/sap/fe/core/templating/FieldControlHelper.js +4 -9
- package/src/sap/fe/core/templating/FieldControlHelper.ts +3 -9
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js +1 -31
- package/src/sap/fe/core/templating/PropertyHelper.ts +0 -30
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +1 -7
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +0 -6
- package/src/sap/fe/core/templating/UIFormatters.js +18 -14
- package/src/sap/fe/core/templating/UIFormatters.ts +30 -18
- package/src/sap/fe/core/type/Date.js +3 -6
- package/src/sap/fe/core/type/Date.ts +0 -3
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -3
- package/src/sap/fe/core/type/EDM.js +1 -1
- package/src/sap/fe/core/type/Email.js +3 -3
- package/src/sap/fe/core/type/FiscalDate.js +3 -9
- package/src/sap/fe/core/type/FiscalDate.ts +0 -6
- package/src/sap/fe/core/type/InputMask.js +3 -7
- package/src/sap/fe/core/type/InputMask.ts +0 -4
|
@@ -7,8 +7,8 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
7
7
|
|
|
8
8
|
var _dec, _class;
|
|
9
9
|
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
10
|
-
function _inheritsLoose(
|
|
11
|
-
function _setPrototypeOf(
|
|
10
|
+
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
|
|
11
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
12
12
|
const NavType = library.NavType;
|
|
13
13
|
const SKIP_MERGE_KEY = "skipMerge";
|
|
14
14
|
const REPLACE_COMPLETE_APPSTATE = "REPLACE_COMPLETE_APPSTATE";
|
|
@@ -32,7 +32,6 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* Get view specific appstate.
|
|
35
|
-
*
|
|
36
35
|
* @param innerAppState Overall appstate
|
|
37
36
|
* @param stateIdentifier State identifier. Id of the local view
|
|
38
37
|
* @returns Inner appstate
|
|
@@ -51,7 +50,6 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
51
50
|
|
|
52
51
|
/**
|
|
53
52
|
* Add appstate in hash.
|
|
54
|
-
*
|
|
55
53
|
* @param appStateKey Appstate key
|
|
56
54
|
* @param stateIdentifier State identifier. Id of the local view
|
|
57
55
|
*/;
|
|
@@ -71,7 +69,6 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
71
69
|
|
|
72
70
|
/**
|
|
73
71
|
* Create Appstate Key.
|
|
74
|
-
*
|
|
75
72
|
* @param appStateData Appstate
|
|
76
73
|
* @param stateIdentifier State identifier. Id of the local view
|
|
77
74
|
* @returns Appstate Key
|
|
@@ -94,7 +91,6 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
94
91
|
|
|
95
92
|
/**
|
|
96
93
|
* Creates appstate info.
|
|
97
|
-
*
|
|
98
94
|
* @param innerAppState
|
|
99
95
|
* @param createAppParameters Parameters for creating new appstate
|
|
100
96
|
* @param createAppParameters.replaceHash Boolean which determines to replace the hash with the new generated key
|
|
@@ -143,7 +139,6 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
143
139
|
/**
|
|
144
140
|
* Creates or updates the appstate.
|
|
145
141
|
* Replaces the hash with the new appstate based on replaceHash.
|
|
146
|
-
*
|
|
147
142
|
* @param createAppParameters Parameters for creating new appstate
|
|
148
143
|
* @param createAppParameters.replaceHash Boolean which determines to replace the hash with the new generated key
|
|
149
144
|
* @param createAppParameters.skipMerge Boolean which determines to skip the key user shine through
|
|
@@ -210,7 +205,6 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
210
205
|
}
|
|
211
206
|
//the record opened is not the last seen one : no need to persist the changes, reset to default instead
|
|
212
207
|
}
|
|
213
|
-
|
|
214
208
|
return false;
|
|
215
209
|
};
|
|
216
210
|
_proto._getAppStateData = function _getAppStateData(oAppData, viewId, navType) {
|
|
@@ -234,7 +228,6 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
234
228
|
|
|
235
229
|
/**
|
|
236
230
|
* Applies an appstate by fetching appdata and passing it to _applyAppstateToPage.
|
|
237
|
-
*
|
|
238
231
|
* @param viewId
|
|
239
232
|
* @param view
|
|
240
233
|
* @returns A promise for async handling
|
|
@@ -303,7 +296,6 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
303
296
|
|
|
304
297
|
/**
|
|
305
298
|
* To check is route is changed by change in the iAPPState.
|
|
306
|
-
*
|
|
307
299
|
* @returns `true` if the route has chnaged
|
|
308
300
|
*/;
|
|
309
301
|
_proto.checkIfRouteChangedByIApp = function checkIfRouteChangedByIApp() {
|
|
@@ -325,4 +317,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
325
317
|
*/
|
|
326
318
|
return AppStateHandler;
|
|
327
319
|
}, true);
|
|
328
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIlNLSVBfTUVSR0VfS0VZIiwiUkVQTEFDRV9DT01QTEVURV9BUFBTVEFURSIsIkFwcFN0YXRlSGFuZGxlciIsImRlZmluZVVJNUNsYXNzIiwib0FwcENvbXBvbmVudCIsIl9tQ3VycmVudEFwcFN0YXRlIiwic0lkIiwiZ2V0SWQiLCJzaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0IiwiYk5vUm91dGVDaGFuZ2UiLCJMb2ciLCJpbmZvIiwiX2dldElubmVyQXBwU3RhdGVGb3JWaWV3IiwiaW5uZXJBcHBTdGF0ZSIsInN0YXRlSWRlbnRpZmllciIsIl9hZGRBcHBTdGF0ZUluSGFzaCIsImFwcFN0YXRlS2V5IiwiYXBwQ29tcG9uZW50IiwibmF2aWdhdGlvblNlcnZpY2UiLCJnZXROYXZpZ2F0aW9uU2VydmljZSIsInJvdXRlclByb3h5IiwiZ2V0Um91dGVyUHJveHkiLCJoYXNoIiwiZ2V0SGFzaCIsImlzU3RpY2t5TW9kZSIsIk1vZGVsSGVscGVyIiwiaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZ2V0TWV0YU1vZGVsIiwibmV3SGFzaCIsInJlcGxhY2VJbm5lckFwcFN0YXRlS2V5IiwibmF2VG9IYXNoIiwidW5kZWZpbmVkIiwiX2NyZWF0ZUFwcFN0YXRlS2V5IiwiYXBwU3RhdGVEYXRhIiwic3RvcmVJbm5lckFwcFN0YXRlQXN5bmMiLCJfZ2V0QXBwU3RhdGVJbmZvIiwiY3JlYXRlQXBwUGFyYW1ldGVycyIsInJlcGxhY2VIYXNoIiwidmlld0lkIiwiYXBwU3RhdGUiLCJjdXJyZW50U3RhdGVUb1VwZGF0ZSIsImRlZXBFcXVhbCIsIm9FcnJvciIsImVycm9yIiwiZmluZEFwcFN0YXRlSW5IYXNoIiwiY3JlYXRlQXBwU3RhdGUiLCJnZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcyIsImdldENhcGFiaWxpdGllcyIsIkFwcFN0YXRlIiwiQnVzeUxvY2tlciIsImlzTG9ja2VkIiwic2tpcE1lcmdlIiwicm9vdENvbnRyb2xsZXIiLCJnZXRSb290Q29udHJvbCIsImdldENvbnRyb2xsZXIiLCJ2aWV3U3RhdGUiLCJFcnJvciIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsInJvdXRpbmdJc0NvbXBsZXRlIiwicmV0cmlldmVWaWV3U3RhdGUiLCJfY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMiLCJvQXBwRGF0YSIsInNOYXZUeXBlIiwiT2JqZWN0IiwiYXNzaWduIiwic2VsZWN0aW9uVmFyaWFudERlZmF1bHRzIiwib0RlZmF1bHRlZFNlbGVjdGlvblZhcmlhbnQiLCJzZWxlY3Rpb25WYXJpYW50Iiwib1NlbGVjdGlvblZhcmlhbnQiLCJyZXF1aXJlc1N0YW5kYXJkVmFyaWFudCIsImJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHkiLCJuYXZpZ2F0aW9uVHlwZSIsIl9jaGVja0lmTGFzdFNlZW5SZWNvcmQiLCJ2aWV3IiwiaW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsImdldFByb3BlcnR5IiwidGVjaG5pY2FsS2V5c09iamVjdCIsImJpbmRpbmdDb250ZXh0IiwicGF0aCIsImdldFBhdGgiLCJtZXRhTW9kZWwiLCJnZXRNb2RlbCIsIm1ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJ0ZWNobmljYWxLZXlzIiwiZ2V0T2JqZWN0IiwiZWxlbWVudCIsImtleVZhbHVlIiwic2V0UHJvcGVydHkiLCJfZ2V0QXBwU3RhdGVEYXRhIiwibmF2VHlwZSIsImtleSIsImkiLCJoeWJyaWQiLCJpQXBwU3RhdGUiLCJrZXlzIiwibGVuZ3RoIiwiYXBwbHlBcHBTdGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2hlY2tJZkxhc3RTZWVuUmVjb3JkIiwibG9jayIsIm9OYXZpZ2F0aW9uU2VydmljZSIsInRvRVM2UHJvbWlzZSIsInBhcnNlTmF2aWdhdGlvbiIsImNhdGNoIiwiYUVycm9yRGF0YSIsIndhcm5pbmciLCJ0aGVuIiwiYVJlc3VsdHMiLCJpbml0aWFsIiwib1Jvb3RDb250cm9sbGVyIiwic2hvdWxkQXBwbHlTdGF0ZSIsIl9pc1N0YXRlRW1wdHlGb3JJQXBwU3RhdGVOYXZUeXBlIiwiX2dldEluaXRpYWxTdGF0ZUFwcGxpZWQiLCJfc2V0SW5pdGlhbFN0YXRlQXBwbGllZCIsImFwcGx5Vmlld1N0YXRlIiwiZmluYWxseSIsInVubG9jayIsImNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAiLCJyZXNldFJvdXRlQ2hhbmdlZEJ5SUFwcCIsIkJhc2VPYmplY3QiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkFwcFN0YXRlSGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcEVxdWFsXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IE5hdmlnYXRpb25QYXJhbWV0ZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvVmlld1N0YXRlXCI7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB0b0VTNlByb21pc2UgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVG9FUzZQcm9taXNlXCI7XG5pbXBvcnQgdHlwZSB7IElubmVyQXBwRGF0YSB9IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9OYXZpZ2F0aW9uSGFuZGxlclwiO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBsaWJyYXJ5IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgQmFzZU9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCBCdXN5TG9ja2VyIGZyb20gXCIuL2NvbnRyb2xsZXJleHRlbnNpb25zL0J1c3lMb2NrZXJcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwiLi9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5cbmNvbnN0IE5hdlR5cGUgPSBsaWJyYXJ5Lk5hdlR5cGU7XG50eXBlIEFwcFN0YXRlID0ge1xuXHRza2lwTWVyZ2U/OiBib29sZWFuO1xuXHRba2V5OiBzdHJpbmddOiB1bmtub3duO1xufTtcbmV4cG9ydCB0eXBlIEFwcERhdGEgPSB7XG5cdG9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50OiBTZWxlY3Rpb25WYXJpYW50O1xuXHRvU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudDtcblx0Yk5hdlNlbFZhckhhc0RlZmF1bHRzT25seTogYm9vbGVhbjtcblx0YXBwU3RhdGU6IEFwcFN0YXRlO1xuXHRpQXBwU3RhdGU/OiB7XG5cdFx0YXBwU3RhdGU6IEFwcFN0YXRlO1xuXHR9O1xufTtcbmNvbnN0IFNLSVBfTUVSR0VfS0VZID0gXCJza2lwTWVyZ2VcIjtcbmV4cG9ydCB0eXBlIElBcHBTdGF0ZSA9IHtcblx0YXBwU3RhdGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufTtcblxuZXhwb3J0IHR5cGUgQXBwRGF0YUluZm8gPSB7XG5cdGFwcFN0YXRlRGF0YTogeyBhcHBTdGF0ZTogb2JqZWN0IHwgdW5kZWZpbmVkIH07XG5cdGFwcFN0YXRlS2V5OiBzdHJpbmcgfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlQXBwUGFyYW1ldGVycyA9IHtcblx0cmVwbGFjZUhhc2g/OiBib29sZWFuO1xuXHRza2lwTWVyZ2U/OiBib29sZWFuO1xuXHR2aWV3SWQ/OiBzdHJpbmc7XG59O1xuXG5jb25zdCBSRVBMQUNFX0NPTVBMRVRFX0FQUFNUQVRFID0gXCJSRVBMQUNFX0NPTVBMRVRFX0FQUFNUQVRFXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLkFwcFN0YXRlSGFuZGxlclwiKVxuY2xhc3MgQXBwU3RhdGVIYW5kbGVyIGV4dGVuZHMgQmFzZU9iamVjdCB7XG5cdHB1YmxpYyBzSWQ6IHN0cmluZztcblxuXHRwdWJsaWMgb0FwcENvbXBvbmVudDogQXBwQ29tcG9uZW50O1xuXG5cdHB1YmxpYyBiTm9Sb3V0ZUNoYW5nZTogYm9vbGVhbjtcblxuXHRwcml2YXRlIF9tQ3VycmVudEFwcFN0YXRlPzogQXBwU3RhdGUgPSB7fTtcblxuXHRzaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuXG5cdGNvbnN0cnVjdG9yKG9BcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5vQXBwQ29tcG9uZW50ID0gb0FwcENvbXBvbmVudDtcblx0XHR0aGlzLnNJZCA9IGAke29BcHBDb21wb25lbnQuZ2V0SWQoKX0vQXBwU3RhdGVIYW5kbGVyYDtcblx0XHR0aGlzLnNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3QgPSB7fTtcblx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gZmFsc2U7XG5cdFx0TG9nLmluZm8oXCJBUFBTVEFURSA6IEFwcHN0YXRlIGhhbmRsZXIgaW5pdGlhbGl6ZWRcIik7XG5cdH1cblxuXHRnZXRJZCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnNJZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdmlldyBzcGVjaWZpYyBhcHBzdGF0ZS5cblx0ICpcblx0ICogQHBhcmFtIGlubmVyQXBwU3RhdGUgT3ZlcmFsbCBhcHBzdGF0ZVxuXHQgKiBAcGFyYW0gc3RhdGVJZGVudGlmaWVyIFN0YXRlIGlkZW50aWZpZXIuIElkIG9mIHRoZSBsb2NhbCB2aWV3XG5cdCAqIEByZXR1cm5zIElubmVyIGFwcHN0YXRlXG5cdCAqL1xuXHRfZ2V0SW5uZXJBcHBTdGF0ZUZvclZpZXcoaW5uZXJBcHBTdGF0ZTogSW5uZXJBcHBEYXRhIHwgdW5kZWZpbmVkLCBzdGF0ZUlkZW50aWZpZXI6IHN0cmluZyk6IElubmVyQXBwRGF0YSB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHN0YXRlSWRlbnRpZmllciA9PT0gUkVQTEFDRV9DT01QTEVURV9BUFBTVEFURSB8fCAhaW5uZXJBcHBTdGF0ZSkge1xuXHRcdFx0Ly8gb3ZlcmFsbCBhcHAgc3RhdGUgbmVlZHMgdG8gYmUgY29uc2lkZXJlZC5cblx0XHRcdHJldHVybiBpbm5lckFwcFN0YXRlO1xuXHRcdH1cblxuXHRcdC8vIHdlIHRha2UgdGhlIHN1YnNldCBvZiB0aGUgYXBwIHN0YXRlIHdydCB0byB0aGUgbG9jYWwgdmlldyBpZC5cblx0XHRyZXR1cm4ge1xuXHRcdFx0W3N0YXRlSWRlbnRpZmllcl06IGlubmVyQXBwU3RhdGVbc3RhdGVJZGVudGlmaWVyIGFzIGtleW9mIHR5cGVvZiBpbm5lckFwcFN0YXRlXSB8fCB7fVxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQWRkIGFwcHN0YXRlIGluIGhhc2guXG5cdCAqXG5cdCAqIEBwYXJhbSBhcHBTdGF0ZUtleSBBcHBzdGF0ZSBrZXlcblx0ICogQHBhcmFtIHN0YXRlSWRlbnRpZmllciBTdGF0ZSBpZGVudGlmaWVyLiBJZCBvZiB0aGUgbG9jYWwgdmlld1xuXHQgKi9cblx0X2FkZEFwcFN0YXRlSW5IYXNoKGFwcFN0YXRlS2V5OiBzdHJpbmcsIHN0YXRlSWRlbnRpZmllcjogc3RyaW5nKTogdm9pZCB7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gdGhpcy5vQXBwQ29tcG9uZW50LFxuXHRcdFx0bmF2aWdhdGlvblNlcnZpY2UgPSBhcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKSxcblx0XHRcdHJvdXRlclByb3h5ID0gYXBwQ29tcG9uZW50LmdldFJvdXRlclByb3h5KCksXG5cdFx0XHRoYXNoID0gcm91dGVyUHJveHkuZ2V0SGFzaCgpLFxuXHRcdFx0aXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKGFwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSksXG5cdFx0XHRuZXdIYXNoID0gbmF2aWdhdGlvblNlcnZpY2UucmVwbGFjZUlubmVyQXBwU3RhdGVLZXkocm91dGVyUHJveHkuZ2V0SGFzaCgpLCBhcHBTdGF0ZUtleSk7XG5cblx0XHRpZiAobmV3SGFzaCAmJiB0aGlzLnNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3Rbc3RhdGVJZGVudGlmaWVyXSA9PT0gMCAmJiBuZXdIYXNoICE9PSBoYXNoKSB7XG5cdFx0XHRyb3V0ZXJQcm94eS5uYXZUb0hhc2gobmV3SGFzaCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgIWlzU3RpY2t5TW9kZSk7XG5cdFx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gdHJ1ZTtcblx0XHR9XG5cdFx0TG9nLmluZm8oXCJBUFBTVEFURTogbmF2VG9IYXNoXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBBcHBzdGF0ZSBLZXkuXG5cdCAqXG5cdCAqIEBwYXJhbSBhcHBTdGF0ZURhdGEgQXBwc3RhdGVcblx0ICogQHBhcmFtIHN0YXRlSWRlbnRpZmllciBTdGF0ZSBpZGVudGlmaWVyLiBJZCBvZiB0aGUgbG9jYWwgdmlld1xuXHQgKiBAcmV0dXJucyBBcHBzdGF0ZSBLZXlcblx0ICovXG5cdGFzeW5jIF9jcmVhdGVBcHBTdGF0ZUtleShhcHBTdGF0ZURhdGE6IElubmVyQXBwRGF0YSwgc3RhdGVJZGVudGlmaWVyOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IHRoaXMub0FwcENvbXBvbmVudCxcblx0XHRcdG5hdmlnYXRpb25TZXJ2aWNlID0gYXBwQ29tcG9uZW50LmdldE5hdmlnYXRpb25TZXJ2aWNlKCk7XG5cblx0XHRpZiAodGhpcy5zaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0W3N0YXRlSWRlbnRpZmllcl0pIHtcblx0XHRcdC8vIGFueSBvdGhlciB2YWx1ZVxuXHRcdFx0dGhpcy5zaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0W3N0YXRlSWRlbnRpZmllcl0rKztcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gMCBvciB1bmRlZmluZWRcblx0XHRcdHRoaXMuc2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdFtzdGF0ZUlkZW50aWZpZXJdID0gMTtcblx0XHR9XG5cblx0XHRjb25zdCBhcHBTdGF0ZUtleSA9IGF3YWl0IG5hdmlnYXRpb25TZXJ2aWNlLnN0b3JlSW5uZXJBcHBTdGF0ZUFzeW5jKGFwcFN0YXRlRGF0YSwgdHJ1ZSwgdHJ1ZSk7XG5cblx0XHR0aGlzLnNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3Rbc3RhdGVJZGVudGlmaWVyXS0tO1xuXG5cdFx0TG9nLmluZm8oXCJBUFBTVEFURTogQXBwc3RhdGUgc3RvcmVkXCIpO1xuXHRcdHJldHVybiBhcHBTdGF0ZUtleTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFwcHN0YXRlIGluZm8uXG5cdCAqXG5cdCAqIEBwYXJhbSBpbm5lckFwcFN0YXRlXG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzIFBhcmFtZXRlcnMgZm9yIGNyZWF0aW5nIG5ldyBhcHBzdGF0ZVxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycy5yZXBsYWNlSGFzaCBCb29sZWFuIHdoaWNoIGRldGVybWluZXMgdG8gcmVwbGFjZSB0aGUgaGFzaCB3aXRoIHRoZSBuZXcgZ2VuZXJhdGVkIGtleVxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycy52aWV3SWQgSWQgb2YgdGhlIHZpZXcgZm9yIHdoaWNoIHdlIG5lZWQgdG8gY3JlYXRlIHRoZSBhcHAgc3RhdGUuIFRoaXMgaXMgdG8gY3JlYXRlIG9yIHVwZGF0ZSB2aWV3IHNwZWNpZmljIGFwcHN0YXRlLlxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRoZSBzdG9yZWQgZGF0YSBvciBhcHBzdGF0ZSBrZXlcblx0ICovXG5cdGFzeW5jIF9nZXRBcHBTdGF0ZUluZm8oaW5uZXJBcHBTdGF0ZTogSW5uZXJBcHBEYXRhIHwgdW5kZWZpbmVkLCBjcmVhdGVBcHBQYXJhbWV0ZXJzPzogQ3JlYXRlQXBwUGFyYW1ldGVycyk6IFByb21pc2U8QXBwRGF0YUluZm8+IHtcblx0XHRjb25zdCBhcHBDb21wb25lbnQgPSB0aGlzLm9BcHBDb21wb25lbnQ7XG5cdFx0Y29uc3QgeyByZXBsYWNlSGFzaCA9IHRydWUsIHZpZXdJZDogc3RhdGVJZGVudGlmaWVyID0gUkVQTEFDRV9DT01QTEVURV9BUFBTVEFURSB9ID0gY3JlYXRlQXBwUGFyYW1ldGVycyA/PyB7fTtcblxuXHRcdGxldCBhcHBTdGF0ZUtleTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cdFx0bGV0IGFwcFN0YXRlRGF0YSA9IHsgYXBwU3RhdGU6IHRoaXMuX21DdXJyZW50QXBwU3RhdGUgfTtcblxuXHRcdGNvbnN0IGN1cnJlbnRTdGF0ZVRvVXBkYXRlID0gdGhpcy5fZ2V0SW5uZXJBcHBTdGF0ZUZvclZpZXcodGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSwgc3RhdGVJZGVudGlmaWVyKTtcblx0XHRpZiAoaW5uZXJBcHBTdGF0ZSAmJiAhZGVlcEVxdWFsKGN1cnJlbnRTdGF0ZVRvVXBkYXRlLCBpbm5lckFwcFN0YXRlKSkge1xuXHRcdFx0Ly9cblx0XHRcdHRoaXMuX21DdXJyZW50QXBwU3RhdGUgPSB7IC4uLnRoaXMuX21DdXJyZW50QXBwU3RhdGUsIC4uLihpbm5lckFwcFN0YXRlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB9O1xuXHRcdFx0YXBwU3RhdGVEYXRhID0geyBhcHBTdGF0ZTogdGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSB9O1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0YXBwU3RhdGVLZXkgPSBhd2FpdCB0aGlzLl9jcmVhdGVBcHBTdGF0ZUtleShhcHBTdGF0ZURhdGEsIHN0YXRlSWRlbnRpZmllcik7XG5cdFx0XHRcdGlmIChyZXBsYWNlSGFzaCA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdHRoaXMuX2FkZEFwcFN0YXRlSW5IYXNoKGFwcFN0YXRlS2V5LCBzdGF0ZUlkZW50aWZpZXIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIChvRXJyb3I6IHVua25vd24pIHtcblx0XHRcdFx0TG9nLmVycm9yKG9FcnJvciBhcyBzdHJpbmcpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCByb3V0ZXJQcm94eSA9IGFwcENvbXBvbmVudC5nZXRSb3V0ZXJQcm94eSgpLFxuXHRcdFx0XHRoYXNoID0gcm91dGVyUHJveHkuZ2V0SGFzaCgpO1xuXHRcdFx0YXBwU3RhdGVLZXkgPSByb3V0ZXJQcm94eS5maW5kQXBwU3RhdGVJbkhhc2goaGFzaCkgYXMgc3RyaW5nO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0YXBwU3RhdGVEYXRhLFxuXHRcdFx0YXBwU3RhdGVLZXlcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgb3IgdXBkYXRlcyB0aGUgYXBwc3RhdGUuXG5cdCAqIFJlcGxhY2VzIHRoZSBoYXNoIHdpdGggdGhlIG5ldyBhcHBzdGF0ZSBiYXNlZCBvbiByZXBsYWNlSGFzaC5cblx0ICpcblx0ICogQHBhcmFtIGNyZWF0ZUFwcFBhcmFtZXRlcnMgUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgbmV3IGFwcHN0YXRlXG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzLnJlcGxhY2VIYXNoIEJvb2xlYW4gd2hpY2ggZGV0ZXJtaW5lcyB0byByZXBsYWNlIHRoZSBoYXNoIHdpdGggdGhlIG5ldyBnZW5lcmF0ZWQga2V5XG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzLnNraXBNZXJnZSBCb29sZWFuIHdoaWNoIGRldGVybWluZXMgdG8gc2tpcCB0aGUga2V5IHVzZXIgc2hpbmUgdGhyb3VnaFxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycy52aWV3SWQgSWQgb2YgdGhlIHZpZXcgZm9yIHdoaWNoIHdlIG5lZWQgdG8gY3JlYXRlIHRoZSBhcHAgc3RhdGUuIFRoaXMgaXMgdG8gY3JlYXRlIG9yIHVwZGF0ZSB2aWV3IHNwZWNpZmljIGFwcHN0YXRlXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdGhlIHN0b3JlZCBkYXRhIG9yIGFwcHN0YXRlIGtleVxuXHQgKi9cblx0YXN5bmMgY3JlYXRlQXBwU3RhdGUoY3JlYXRlQXBwUGFyYW1ldGVycz86IENyZWF0ZUFwcFBhcmFtZXRlcnMpOiBQcm9taXNlPHZvaWQgfCBBcHBEYXRhSW5mbz4ge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IHRoaXMub0FwcENvbXBvbmVudDtcblx0XHRpZiAoIWFwcENvbXBvbmVudC5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpLmdldENhcGFiaWxpdGllcygpLkFwcFN0YXRlIHx8IEJ1c3lMb2NrZXIuaXNMb2NrZWQodGhpcykpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgeyBza2lwTWVyZ2UgPSBmYWxzZSwgdmlld0lkOiBzdGF0ZUlkZW50aWZpZXIgPSBSRVBMQUNFX0NPTVBMRVRFX0FQUFNUQVRFIH0gPSBjcmVhdGVBcHBQYXJhbWV0ZXJzID8/IHt9LFxuXHRcdFx0cm9vdENvbnRyb2xsZXIgPSBhcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCk7XG5cblx0XHRpZiAoIXJvb3RDb250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGB2aWV3U3RhdGUgY29udHJvbGxlciBleHRlbnNpb24gbm90IGF2YWlsYWJsZSBmb3IgY29udHJvbGxlcjogJHtyb290Q29udHJvbGxlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKX1gKTtcblx0XHR9XG5cblx0XHQvLyBJbiBjYXNlLCBvbiBsb2FkIG9mIEZDTCBhcHAgd2UgaGF2ZSBtdWx0aXBsZSB2aWV3cyhMUiwgT1AsIHN1Yi1PUC4uLikgYW5kIHVybCBoYXMgaUFwcFN0YXRlKDEpLlxuXHRcdC8vIFRoZSBMUiB2aWV3IGxvYWRzIHdpdGggYXBwbGllZCBpQXBwU3RhdGUoMSkgYW5kIGNhbGxzIGNyZWF0ZUFwcFN0YXRlKGV4YW1wbGU6IG9uU2VhcmNoIGV2ZW50IGluIExSKSBiZWZvcmUgT1AgaXMgbG9hZGVkLlxuXHRcdC8vIFRoaXMgY3JlYXRlcyBpQXBwU3RhdGUoMikgYmVmb3JlIGlBcHBTdGF0ZSgxKSBpcyBhcHBsaWVkIHRvIE9QLlxuXHRcdC8vIFNvLCB3ZSB0cnkgdG8gd2FpdCB0aWxsIHRoZSByb3V0aW5nIGlzIGNvbXBsZXRlLlxuXHRcdGF3YWl0IHJvb3RDb250cm9sbGVyLnJvdXRpbmdJc0NvbXBsZXRlKCk7XG5cblx0XHQvLyBHZXQgYXBwU3RhdGUgdG8gdXBkYXRlXG5cdFx0bGV0IGlubmVyQXBwU3RhdGUgPSAoYXdhaXQgcm9vdENvbnRyb2xsZXIudmlld1N0YXRlLnJldHJpZXZlVmlld1N0YXRlKCkpIGFzIElubmVyQXBwRGF0YSB8IHVuZGVmaW5lZDtcblx0XHRpbm5lckFwcFN0YXRlID0gdGhpcy5fZ2V0SW5uZXJBcHBTdGF0ZUZvclZpZXcoaW5uZXJBcHBTdGF0ZSwgc3RhdGVJZGVudGlmaWVyKTtcblx0XHRpZiAoc2tpcE1lcmdlKSB7XG5cdFx0XHRpbm5lckFwcFN0YXRlID0geyAuLi5pbm5lckFwcFN0YXRlLCAuLi57IHNraXBNZXJnZSB9IH07XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuX2dldEFwcFN0YXRlSW5mbyhpbm5lckFwcFN0YXRlLCBjcmVhdGVBcHBQYXJhbWV0ZXJzKTtcblx0fVxuXG5cdF9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyhvQXBwRGF0YTogQXBwRGF0YSwgc05hdlR5cGU6IHN0cmluZyk6IE5hdmlnYXRpb25QYXJhbWV0ZXIge1xuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBvQXBwRGF0YSwge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudERlZmF1bHRzOiBvQXBwRGF0YS5vRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdHNlbGVjdGlvblZhcmlhbnQ6IG9BcHBEYXRhLm9TZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0cmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6ICFvQXBwRGF0YS5iTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5LFxuXHRcdFx0bmF2aWdhdGlvblR5cGU6IHNOYXZUeXBlXG5cdFx0fSk7XG5cdH1cblxuXHRfY2hlY2tJZkxhc3RTZWVuUmVjb3JkKHZpZXc/OiBWaWV3KTogYm9vbGVhbiB7XG5cdFx0Ly9nZXR0aW5nIHRoZSBpbnRlcm5hbCBtb2RlbCBjb250ZXh0IGluIG9yZGVyIHRvIGZldGNoIHRoZSB0ZWNobmljYWxrZXlzIG9mIGxhc3Qgc2VlbiByZWNvcmQgYW5kIGNsb3NlIGNvbHVtbiBmbGFnIHNldCBpbiB0aGUgaW50ZXJuYWxyb3V0aW5nIGZvciByZXRhaW5pbmcgc2V0dGluZ3MgaW4gcGVyc2lzdGVuY2UgbW9kZVxuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldyAmJiAodmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0KTtcblx0XHRpZiAoaW50ZXJuYWxNb2RlbENvbnRleHQgJiYgaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJmY2xDb2x1bW5DbG9zZWRcIikgPT09IHRydWUpIHtcblx0XHRcdGNvbnN0IHRlY2huaWNhbEtleXNPYmplY3QgPSBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcInRlY2huaWNhbEtleXNPZkxhc3RTZWVuUmVjb3JkXCIpO1xuXHRcdFx0Y29uc3QgYmluZGluZ0NvbnRleHQgPSB2aWV3Py5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQ7XG5cdFx0XHRjb25zdCBwYXRoID0gKGJpbmRpbmdDb250ZXh0ICYmIGJpbmRpbmdDb250ZXh0LmdldFBhdGgoKSkgfHwgXCJcIjtcblx0XHRcdGNvbnN0IG1ldGFNb2RlbCA9IGJpbmRpbmdDb250ZXh0Py5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpO1xuXHRcdFx0Y29uc3QgbWV0YVBhdGggPSBtZXRhTW9kZWw/LmdldE1ldGFQYXRoKHBhdGgpO1xuXHRcdFx0Y29uc3QgdGVjaG5pY2FsS2V5cyA9IG1ldGFNb2RlbD8uZ2V0T2JqZWN0KGAke21ldGFQYXRofS8kVHlwZS8kS2V5YCk7XG5cdFx0XHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGVjaG5pY2FsS2V5cykge1xuXHRcdFx0XHRjb25zdCBrZXlWYWx1ZSA9IGJpbmRpbmdDb250ZXh0LmdldE9iamVjdCgpW2VsZW1lbnRdO1xuXHRcdFx0XHRpZiAoa2V5VmFsdWUgIT09IHRlY2huaWNhbEtleXNPYmplY3RbZWxlbWVudF0pIHtcblx0XHRcdFx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImZjbENvbHVtbkNsb3NlZFwiLCBmYWxzZSk7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vdGhlIHJlY29yZCBvcGVuZWQgaXMgbm90IHRoZSBsYXN0IHNlZW4gb25lIDogbm8gbmVlZCB0byBwZXJzaXN0IHRoZSBjaGFuZ2VzLCByZXNldCB0byBkZWZhdWx0IGluc3RlYWRcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0X2dldEFwcFN0YXRlRGF0YShvQXBwRGF0YTogQXBwRGF0YSwgdmlld0lkPzogc3RyaW5nLCBuYXZUeXBlPzogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQge1xuXHRcdGxldCBrZXkgPSBcIlwiLFxuXHRcdFx0aSA9IDA7XG5cdFx0Y29uc3QgYXBwU3RhdGVEYXRhID0gbmF2VHlwZSA9PT0gTmF2VHlwZS5oeWJyaWQgPyBvQXBwRGF0YS5pQXBwU3RhdGUgOiBvQXBwRGF0YTtcblxuXHRcdGlmIChhcHBTdGF0ZURhdGE/LmFwcFN0YXRlKSB7XG5cdFx0XHRmb3IgKGk7IGkgPCBPYmplY3Qua2V5cyhhcHBTdGF0ZURhdGEuYXBwU3RhdGUpLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChPYmplY3Qua2V5cyhhcHBTdGF0ZURhdGEuYXBwU3RhdGUpW2ldID09PSB2aWV3SWQpIHtcblx0XHRcdFx0XHRrZXkgPSBPYmplY3Qua2V5cyhhcHBTdGF0ZURhdGEuYXBwU3RhdGUpW2ldO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChhcHBTdGF0ZURhdGE/LmFwcFN0YXRlKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRbT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKVtpXV06IGFwcFN0YXRlRGF0YS5hcHBTdGF0ZVtrZXldIHx8IHt9XG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBBcHBsaWVzIGFuIGFwcHN0YXRlIGJ5IGZldGNoaW5nIGFwcGRhdGEgYW5kIHBhc3NpbmcgaXQgdG8gX2FwcGx5QXBwc3RhdGVUb1BhZ2UuXG5cdCAqXG5cdCAqIEBwYXJhbSB2aWV3SWRcblx0ICogQHBhcmFtIHZpZXdcblx0ICogQHJldHVybnMgQSBwcm9taXNlIGZvciBhc3luYyBoYW5kbGluZ1xuXHQgKi9cblx0YXN5bmMgYXBwbHlBcHBTdGF0ZSh2aWV3SWQ/OiBzdHJpbmcsIHZpZXc/OiBWaWV3KTogUHJvbWlzZTx2b2lkIHwge30+IHtcblx0XHRpZiAoIXRoaXMub0FwcENvbXBvbmVudC5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpLmdldENhcGFiaWxpdGllcygpLkFwcFN0YXRlIHx8IEJ1c3lMb2NrZXIuaXNMb2NrZWQodGhpcykpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cblx0XHRjb25zdCBjaGVja0lmTGFzdFNlZW5SZWNvcmQgPSB0aGlzLl9jaGVja0lmTGFzdFNlZW5SZWNvcmQodmlldyk7XG5cdFx0aWYgKGNoZWNrSWZMYXN0U2VlblJlY29yZCA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzKTtcblx0XHQvLyBEb25lIGZvciBidXN5IGluZGljYXRvclxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKSk7XG5cdFx0Y29uc3Qgb05hdmlnYXRpb25TZXJ2aWNlID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldE5hdmlnYXRpb25TZXJ2aWNlKCk7XG5cdFx0Ly8gVE9ETyBvTmF2aWdhdGlvblNlcnZpY2UucGFyc2VOYXZpZ2F0aW9uKCkgc2hvdWxkIHJldHVybiBFUzYgcHJvbWlzZSBpbnN0ZWFkIGpRdWVyeS5wcm9taXNlXG5cdFx0cmV0dXJuIHRvRVM2UHJvbWlzZTx1bmtub3duW10+KG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoYUVycm9yRGF0YTogdW5rbm93bltdKSB7XG5cdFx0XHRcdGlmICghYUVycm9yRGF0YSkge1xuXHRcdFx0XHRcdGFFcnJvckRhdGEgPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRMb2cud2FybmluZyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGZhaWxlZFwiLCBhRXJyb3JEYXRhWzBdIGFzIHN0cmluZyk7XG5cdFx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0LyogYXBwIGRhdGEgKi9cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGFFcnJvckRhdGFbMV0sXG5cdFx0XHRcdFx0YUVycm9yRGF0YVsyXVxuXHRcdFx0XHRdO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKGFzeW5jIChhUmVzdWx0czogdW5rbm93bltdKSA9PiB7XG5cdFx0XHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IFBhcnNlIE5hdmlnYXRpb24gZG9uZVwiKTtcblxuXHRcdFx0XHQvLyBhUmVzdWx0c1sxXSA9PiBvU3RhcnR1cFBhcmFtZXRlcnMgKG5vdCBldmFsdWF0ZWQpXG5cdFx0XHRcdGNvbnN0IG9BcHBEYXRhID0gKGFSZXN1bHRzWzBdIHx8IHt9KSBhcyBBcHBEYXRhLFxuXHRcdFx0XHRcdHNOYXZUeXBlID0gKGFSZXN1bHRzWzJdIGFzIHN0cmluZykgfHwgTmF2VHlwZS5pbml0aWFsLFxuXHRcdFx0XHRcdG9Sb290Q29udHJvbGxlciA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKTtcblx0XHRcdFx0Ly8gYXBwbHkgdGhlIGFwcHN0YXRlIGRlcGVuZGluZyB1cG9uIHRoZSB2aWV3IChMUi9PUClcblx0XHRcdFx0Y29uc3QgYXBwU3RhdGVEYXRhID0gdGhpcy5fZ2V0QXBwU3RhdGVEYXRhKG9BcHBEYXRhLCB2aWV3SWQsIHNOYXZUeXBlKTtcblx0XHRcdFx0Ly8gZmV0Y2ggdGhlIHNraXBNZXJnZSBmbGFnIGZyb20gYXBwU3RhdGUgZm9yIHNhdmUgYXMgdGlsZVxuXHRcdFx0XHRjb25zdCBza2lwTWVyZ2U6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBvQXBwRGF0YT8uYXBwU3RhdGU/LltTS0lQX01FUkdFX0tFWV07XG5cdFx0XHRcdHRoaXMuX21DdXJyZW50QXBwU3RhdGUgPVxuXHRcdFx0XHRcdHNOYXZUeXBlID09PSBOYXZUeXBlLmlBcHBTdGF0ZSB8fCBzTmF2VHlwZSA9PT0gTmF2VHlwZS5oeWJyaWQgPyB7IC4uLnRoaXMuX21DdXJyZW50QXBwU3RhdGUsIC4uLmFwcFN0YXRlRGF0YSB9IDoge307XG5cdFx0XHRcdGxldCBzaG91bGRBcHBseVN0YXRlID0gdHJ1ZTtcblxuXHRcdFx0XHRpZiAoIW9Sb290Q29udHJvbGxlci52aWV3U3RhdGUpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHZpZXdTdGF0ZSBleHRlbnNpb24gcmVxdWlyZWQgZm9yIGNvbnRyb2xsZXIgJHtvUm9vdENvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCl9YCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9Sb290Q29udHJvbGxlci52aWV3U3RhdGUuX2lzU3RhdGVFbXB0eUZvcklBcHBTdGF0ZU5hdlR5cGUob0FwcERhdGEsIHNOYXZUeXBlKSkge1xuXHRcdFx0XHRcdGlmICghb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZS5fZ2V0SW5pdGlhbFN0YXRlQXBwbGllZCgpKSB7XG5cdFx0XHRcdFx0XHRvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLl9zZXRJbml0aWFsU3RhdGVBcHBsaWVkKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHNob3VsZEFwcGx5U3RhdGUgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBhcHBseVZpZXdTdGF0ZSA9IGF3YWl0IG9Sb290Q29udHJvbGxlci52aWV3U3RhdGUuYXBwbHlWaWV3U3RhdGUoXG5cdFx0XHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcblx0XHRcdFx0XHR0aGlzLl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyhvQXBwRGF0YSwgc05hdlR5cGUpLFxuXHRcdFx0XHRcdHNraXBNZXJnZVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpZiAoIXNob3VsZEFwcGx5U3RhdGUpIHtcblx0XHRcdFx0XHRyZXR1cm4ge307XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGFwcGx5Vmlld1N0YXRlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IHVua25vd24pIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiYXBwU3RhdGUgY291bGQgbm90IGJlIGFwcGxpZWRcIiwgb0Vycm9yIGFzIHN0cmluZyk7XG5cdFx0XHRcdHRocm93IG9FcnJvcjtcblx0XHRcdH0pXG5cdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMpO1xuXHRcdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKSk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUbyBjaGVjayBpcyByb3V0ZSBpcyBjaGFuZ2VkIGJ5IGNoYW5nZSBpbiB0aGUgaUFQUFN0YXRlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHJvdXRlIGhhcyBjaG5hZ2VkXG5cdCAqL1xuXHRjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmJOb1JvdXRlQ2hhbmdlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlc2V0IHRoZSByb3V0ZSBjaGFuZ2VkIGJ5IGlBUFBTdGF0ZS5cblx0ICovXG5cdHJlc2V0Um91dGVDaGFuZ2VkQnlJQXBwKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmJOb1JvdXRlQ2hhbmdlKSB7XG5cdFx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gZmFsc2U7XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCBBcHBTdGF0ZUhhbmRsZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7O0VBZ0JBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDRCxPQUFPO0VBYy9CLE1BQU1FLGNBQWMsR0FBRyxXQUFXO0VBZ0JsQyxNQUFNQyx5QkFBeUIsR0FBRywyQkFBMkI7RUFBQyxJQUd4REMsZUFBZSxXQURwQkMsY0FBYyxDQUFDLDZCQUE2QixDQUFDO0lBQUE7SUFZN0MseUJBQVlDLGFBQTJCLEVBQUU7TUFBQTtNQUN4Qyw4QkFBTztNQUFDLE1BTERDLGlCQUFpQixHQUFjLENBQUMsQ0FBQztNQU14QyxNQUFLRCxhQUFhLEdBQUdBLGFBQWE7TUFDbEMsTUFB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
|
|
320
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIlNLSVBfTUVSR0VfS0VZIiwiUkVQTEFDRV9DT01QTEVURV9BUFBTVEFURSIsIkFwcFN0YXRlSGFuZGxlciIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9jbGFzcyIsIl9CYXNlT2JqZWN0IiwiX2luaGVyaXRzTG9vc2UiLCJvQXBwQ29tcG9uZW50IiwiX3RoaXMiLCJjYWxsIiwiX21DdXJyZW50QXBwU3RhdGUiLCJzSWQiLCJnZXRJZCIsInNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3QiLCJiTm9Sb3V0ZUNoYW5nZSIsIkxvZyIsImluZm8iLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJfZ2V0SW5uZXJBcHBTdGF0ZUZvclZpZXciLCJpbm5lckFwcFN0YXRlIiwic3RhdGVJZGVudGlmaWVyIiwiX2FkZEFwcFN0YXRlSW5IYXNoIiwiYXBwU3RhdGVLZXkiLCJhcHBDb21wb25lbnQiLCJuYXZpZ2F0aW9uU2VydmljZSIsImdldE5hdmlnYXRpb25TZXJ2aWNlIiwicm91dGVyUHJveHkiLCJnZXRSb3V0ZXJQcm94eSIsImhhc2giLCJnZXRIYXNoIiwiaXNTdGlja3lNb2RlIiwiTW9kZWxIZWxwZXIiLCJpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRNZXRhTW9kZWwiLCJuZXdIYXNoIiwicmVwbGFjZUlubmVyQXBwU3RhdGVLZXkiLCJuYXZUb0hhc2giLCJ1bmRlZmluZWQiLCJfY3JlYXRlQXBwU3RhdGVLZXkiLCJhcHBTdGF0ZURhdGEiLCJzdG9yZUlubmVyQXBwU3RhdGVBc3luYyIsIl9nZXRBcHBTdGF0ZUluZm8iLCJjcmVhdGVBcHBQYXJhbWV0ZXJzIiwicmVwbGFjZUhhc2giLCJ2aWV3SWQiLCJhcHBTdGF0ZSIsImN1cnJlbnRTdGF0ZVRvVXBkYXRlIiwiZGVlcEVxdWFsIiwib0Vycm9yIiwiZXJyb3IiLCJmaW5kQXBwU3RhdGVJbkhhc2giLCJjcmVhdGVBcHBTdGF0ZSIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0Q2FwYWJpbGl0aWVzIiwiQXBwU3RhdGUiLCJCdXN5TG9ja2VyIiwiaXNMb2NrZWQiLCJza2lwTWVyZ2UiLCJyb290Q29udHJvbGxlciIsImdldFJvb3RDb250cm9sIiwiZ2V0Q29udHJvbGxlciIsInZpZXdTdGF0ZSIsIkVycm9yIiwiZ2V0TWV0YWRhdGEiLCJnZXROYW1lIiwicm91dGluZ0lzQ29tcGxldGUiLCJyZXRyaWV2ZVZpZXdTdGF0ZSIsIl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm9BcHBEYXRhIiwic05hdlR5cGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJvRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCIsInNlbGVjdGlvblZhcmlhbnQiLCJvU2VsZWN0aW9uVmFyaWFudCIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSIsIm5hdmlnYXRpb25UeXBlIiwiX2NoZWNrSWZMYXN0U2VlblJlY29yZCIsInZpZXciLCJpbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiZ2V0UHJvcGVydHkiLCJ0ZWNobmljYWxLZXlzT2JqZWN0IiwiYmluZGluZ0NvbnRleHQiLCJwYXRoIiwiZ2V0UGF0aCIsIm1ldGFNb2RlbCIsImdldE1vZGVsIiwibWV0YVBhdGgiLCJnZXRNZXRhUGF0aCIsInRlY2huaWNhbEtleXMiLCJnZXRPYmplY3QiLCJlbGVtZW50Iiwia2V5VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIl9nZXRBcHBTdGF0ZURhdGEiLCJuYXZUeXBlIiwia2V5IiwiaSIsImh5YnJpZCIsImlBcHBTdGF0ZSIsImtleXMiLCJsZW5ndGgiLCJhcHBseUFwcFN0YXRlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjaGVja0lmTGFzdFNlZW5SZWNvcmQiLCJsb2NrIiwib05hdmlnYXRpb25TZXJ2aWNlIiwidG9FUzZQcm9taXNlIiwicGFyc2VOYXZpZ2F0aW9uIiwiY2F0Y2giLCJhRXJyb3JEYXRhIiwid2FybmluZyIsInRoZW4iLCJhUmVzdWx0cyIsIl9vQXBwRGF0YSRhcHBTdGF0ZSIsImluaXRpYWwiLCJvUm9vdENvbnRyb2xsZXIiLCJzaG91bGRBcHBseVN0YXRlIiwiX2lzU3RhdGVFbXB0eUZvcklBcHBTdGF0ZU5hdlR5cGUiLCJfZ2V0SW5pdGlhbFN0YXRlQXBwbGllZCIsIl9zZXRJbml0aWFsU3RhdGVBcHBsaWVkIiwiYXBwbHlWaWV3U3RhdGUiLCJmaW5hbGx5IiwidW5sb2NrIiwiY2hlY2tJZlJvdXRlQ2hhbmdlZEJ5SUFwcCIsInJlc2V0Um91dGVDaGFuZ2VkQnlJQXBwIiwiQmFzZU9iamVjdCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQXBwU3RhdGVIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9kZWVwRXF1YWxcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgTmF2aWdhdGlvblBhcmFtZXRlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9WaWV3U3RhdGVcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHRvRVM2UHJvbWlzZSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Ub0VTNlByb21pc2VcIjtcbmltcG9ydCB0eXBlIHsgSW5uZXJBcHBEYXRhIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdGlvblZhcmlhbnQgfSBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vU2VsZWN0aW9uVmFyaWFudFwiO1xuaW1wb3J0IGxpYnJhcnkgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL2xpYnJhcnlcIjtcbmltcG9ydCBCYXNlT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9PYmplY3RcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcIi4vY29udHJvbGxlcmV4dGVuc2lvbnMvQnVzeUxvY2tlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCIuL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcblxuY29uc3QgTmF2VHlwZSA9IGxpYnJhcnkuTmF2VHlwZTtcbnR5cGUgQXBwU3RhdGUgPSB7XG5cdHNraXBNZXJnZT86IGJvb2xlYW47XG5cdFtrZXk6IHN0cmluZ106IHVua25vd247XG59O1xuZXhwb3J0IHR5cGUgQXBwRGF0YSA9IHtcblx0b0RlZmF1bHRlZFNlbGVjdGlvblZhcmlhbnQ6IFNlbGVjdGlvblZhcmlhbnQ7XG5cdG9TZWxlY3Rpb25WYXJpYW50OiBTZWxlY3Rpb25WYXJpYW50O1xuXHRiTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5OiBib29sZWFuO1xuXHRhcHBTdGF0ZTogQXBwU3RhdGU7XG5cdGlBcHBTdGF0ZT86IHtcblx0XHRhcHBTdGF0ZTogQXBwU3RhdGU7XG5cdH07XG59O1xuY29uc3QgU0tJUF9NRVJHRV9LRVkgPSBcInNraXBNZXJnZVwiO1xuZXhwb3J0IHR5cGUgSUFwcFN0YXRlID0ge1xuXHRhcHBTdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuXG5leHBvcnQgdHlwZSBBcHBEYXRhSW5mbyA9IHtcblx0YXBwU3RhdGVEYXRhOiB7IGFwcFN0YXRlOiBvYmplY3QgfCB1bmRlZmluZWQgfTtcblx0YXBwU3RhdGVLZXk6IHN0cmluZyB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVBcHBQYXJhbWV0ZXJzID0ge1xuXHRyZXBsYWNlSGFzaD86IGJvb2xlYW47XG5cdHNraXBNZXJnZT86IGJvb2xlYW47XG5cdHZpZXdJZD86IHN0cmluZztcbn07XG5cbmNvbnN0IFJFUExBQ0VfQ09NUExFVEVfQVBQU1RBVEUgPSBcIlJFUExBQ0VfQ09NUExFVEVfQVBQU1RBVEVcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXCIpXG5jbGFzcyBBcHBTdGF0ZUhhbmRsZXIgZXh0ZW5kcyBCYXNlT2JqZWN0IHtcblx0cHVibGljIHNJZDogc3RyaW5nO1xuXG5cdHB1YmxpYyBvQXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQ7XG5cblx0cHVibGljIGJOb1JvdXRlQ2hhbmdlOiBib29sZWFuO1xuXG5cdHByaXZhdGUgX21DdXJyZW50QXBwU3RhdGU/OiBBcHBTdGF0ZSA9IHt9O1xuXG5cdHNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3Q6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG5cblx0Y29uc3RydWN0b3Iob0FwcENvbXBvbmVudDogQXBwQ29tcG9uZW50KSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm9BcHBDb21wb25lbnQgPSBvQXBwQ29tcG9uZW50O1xuXHRcdHRoaXMuc0lkID0gYCR7b0FwcENvbXBvbmVudC5nZXRJZCgpfS9BcHBTdGF0ZUhhbmRsZXJgO1xuXHRcdHRoaXMuc2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdCA9IHt9O1xuXHRcdHRoaXMuYk5vUm91dGVDaGFuZ2UgPSBmYWxzZTtcblx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFIDogQXBwc3RhdGUgaGFuZGxlciBpbml0aWFsaXplZFwiKTtcblx0fVxuXG5cdGdldElkKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuc0lkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB2aWV3IHNwZWNpZmljIGFwcHN0YXRlLlxuXHQgKiBAcGFyYW0gaW5uZXJBcHBTdGF0ZSBPdmVyYWxsIGFwcHN0YXRlXG5cdCAqIEBwYXJhbSBzdGF0ZUlkZW50aWZpZXIgU3RhdGUgaWRlbnRpZmllci4gSWQgb2YgdGhlIGxvY2FsIHZpZXdcblx0ICogQHJldHVybnMgSW5uZXIgYXBwc3RhdGVcblx0ICovXG5cdF9nZXRJbm5lckFwcFN0YXRlRm9yVmlldyhpbm5lckFwcFN0YXRlOiBJbm5lckFwcERhdGEgfCB1bmRlZmluZWQsIHN0YXRlSWRlbnRpZmllcjogc3RyaW5nKTogSW5uZXJBcHBEYXRhIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoc3RhdGVJZGVudGlmaWVyID09PSBSRVBMQUNFX0NPTVBMRVRFX0FQUFNUQVRFIHx8ICFpbm5lckFwcFN0YXRlKSB7XG5cdFx0XHQvLyBvdmVyYWxsIGFwcCBzdGF0ZSBuZWVkcyB0byBiZSBjb25zaWRlcmVkLlxuXHRcdFx0cmV0dXJuIGlubmVyQXBwU3RhdGU7XG5cdFx0fVxuXG5cdFx0Ly8gd2UgdGFrZSB0aGUgc3Vic2V0IG9mIHRoZSBhcHAgc3RhdGUgd3J0IHRvIHRoZSBsb2NhbCB2aWV3IGlkLlxuXHRcdHJldHVybiB7XG5cdFx0XHRbc3RhdGVJZGVudGlmaWVyXTogaW5uZXJBcHBTdGF0ZVtzdGF0ZUlkZW50aWZpZXIgYXMga2V5b2YgdHlwZW9mIGlubmVyQXBwU3RhdGVdIHx8IHt9XG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGQgYXBwc3RhdGUgaW4gaGFzaC5cblx0ICogQHBhcmFtIGFwcFN0YXRlS2V5IEFwcHN0YXRlIGtleVxuXHQgKiBAcGFyYW0gc3RhdGVJZGVudGlmaWVyIFN0YXRlIGlkZW50aWZpZXIuIElkIG9mIHRoZSBsb2NhbCB2aWV3XG5cdCAqL1xuXHRfYWRkQXBwU3RhdGVJbkhhc2goYXBwU3RhdGVLZXk6IHN0cmluZywgc3RhdGVJZGVudGlmaWVyOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBhcHBDb21wb25lbnQgPSB0aGlzLm9BcHBDb21wb25lbnQsXG5cdFx0XHRuYXZpZ2F0aW9uU2VydmljZSA9IGFwcENvbXBvbmVudC5nZXROYXZpZ2F0aW9uU2VydmljZSgpLFxuXHRcdFx0cm91dGVyUHJveHkgPSBhcHBDb21wb25lbnQuZ2V0Um91dGVyUHJveHkoKSxcblx0XHRcdGhhc2ggPSByb3V0ZXJQcm94eS5nZXRIYXNoKCksXG5cdFx0XHRpc1N0aWNreU1vZGUgPSBNb2RlbEhlbHBlci5pc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQoYXBwQ29tcG9uZW50LmdldE1ldGFNb2RlbCgpKSxcblx0XHRcdG5ld0hhc2ggPSBuYXZpZ2F0aW9uU2VydmljZS5yZXBsYWNlSW5uZXJBcHBTdGF0ZUtleShyb3V0ZXJQcm94eS5nZXRIYXNoKCksIGFwcFN0YXRlS2V5KTtcblxuXHRcdGlmIChuZXdIYXNoICYmIHRoaXMuc2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdFtzdGF0ZUlkZW50aWZpZXJdID09PSAwICYmIG5ld0hhc2ggIT09IGhhc2gpIHtcblx0XHRcdHJvdXRlclByb3h5Lm5hdlRvSGFzaChuZXdIYXNoLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAhaXNTdGlja3lNb2RlKTtcblx0XHRcdHRoaXMuYk5vUm91dGVDaGFuZ2UgPSB0cnVlO1xuXHRcdH1cblx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBuYXZUb0hhc2hcIik7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlIEFwcHN0YXRlIEtleS5cblx0ICogQHBhcmFtIGFwcFN0YXRlRGF0YSBBcHBzdGF0ZVxuXHQgKiBAcGFyYW0gc3RhdGVJZGVudGlmaWVyIFN0YXRlIGlkZW50aWZpZXIuIElkIG9mIHRoZSBsb2NhbCB2aWV3XG5cdCAqIEByZXR1cm5zIEFwcHN0YXRlIEtleVxuXHQgKi9cblx0YXN5bmMgX2NyZWF0ZUFwcFN0YXRlS2V5KGFwcFN0YXRlRGF0YTogSW5uZXJBcHBEYXRhLCBzdGF0ZUlkZW50aWZpZXI6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gdGhpcy5vQXBwQ29tcG9uZW50LFxuXHRcdFx0bmF2aWdhdGlvblNlcnZpY2UgPSBhcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKTtcblxuXHRcdGlmICh0aGlzLnNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3Rbc3RhdGVJZGVudGlmaWVyXSkge1xuXHRcdFx0Ly8gYW55IG90aGVyIHZhbHVlXG5cdFx0XHR0aGlzLnNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3Rbc3RhdGVJZGVudGlmaWVyXSsrO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyAwIG9yIHVuZGVmaW5lZFxuXHRcdFx0dGhpcy5zaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0W3N0YXRlSWRlbnRpZmllcl0gPSAxO1xuXHRcdH1cblxuXHRcdGNvbnN0IGFwcFN0YXRlS2V5ID0gYXdhaXQgbmF2aWdhdGlvblNlcnZpY2Uuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMoYXBwU3RhdGVEYXRhLCB0cnVlLCB0cnVlKTtcblxuXHRcdHRoaXMuc2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdFtzdGF0ZUlkZW50aWZpZXJdLS07XG5cblx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBBcHBzdGF0ZSBzdG9yZWRcIik7XG5cdFx0cmV0dXJuIGFwcFN0YXRlS2V5O1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYXBwc3RhdGUgaW5mby5cblx0ICogQHBhcmFtIGlubmVyQXBwU3RhdGVcblx0ICogQHBhcmFtIGNyZWF0ZUFwcFBhcmFtZXRlcnMgUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgbmV3IGFwcHN0YXRlXG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzLnJlcGxhY2VIYXNoIEJvb2xlYW4gd2hpY2ggZGV0ZXJtaW5lcyB0byByZXBsYWNlIHRoZSBoYXNoIHdpdGggdGhlIG5ldyBnZW5lcmF0ZWQga2V5XG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzLnZpZXdJZCBJZCBvZiB0aGUgdmlldyBmb3Igd2hpY2ggd2UgbmVlZCB0byBjcmVhdGUgdGhlIGFwcCBzdGF0ZS4gVGhpcyBpcyB0byBjcmVhdGUgb3IgdXBkYXRlIHZpZXcgc3BlY2lmaWMgYXBwc3RhdGUuXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdGhlIHN0b3JlZCBkYXRhIG9yIGFwcHN0YXRlIGtleVxuXHQgKi9cblx0YXN5bmMgX2dldEFwcFN0YXRlSW5mbyhpbm5lckFwcFN0YXRlOiBJbm5lckFwcERhdGEgfCB1bmRlZmluZWQsIGNyZWF0ZUFwcFBhcmFtZXRlcnM/OiBDcmVhdGVBcHBQYXJhbWV0ZXJzKTogUHJvbWlzZTxBcHBEYXRhSW5mbz4ge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IHRoaXMub0FwcENvbXBvbmVudDtcblx0XHRjb25zdCB7IHJlcGxhY2VIYXNoID0gdHJ1ZSwgdmlld0lkOiBzdGF0ZUlkZW50aWZpZXIgPSBSRVBMQUNFX0NPTVBMRVRFX0FQUFNUQVRFIH0gPSBjcmVhdGVBcHBQYXJhbWV0ZXJzID8/IHt9O1xuXG5cdFx0bGV0IGFwcFN0YXRlS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblx0XHRsZXQgYXBwU3RhdGVEYXRhID0geyBhcHBTdGF0ZTogdGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSB9O1xuXG5cdFx0Y29uc3QgY3VycmVudFN0YXRlVG9VcGRhdGUgPSB0aGlzLl9nZXRJbm5lckFwcFN0YXRlRm9yVmlldyh0aGlzLl9tQ3VycmVudEFwcFN0YXRlLCBzdGF0ZUlkZW50aWZpZXIpO1xuXHRcdGlmIChpbm5lckFwcFN0YXRlICYmICFkZWVwRXF1YWwoY3VycmVudFN0YXRlVG9VcGRhdGUsIGlubmVyQXBwU3RhdGUpKSB7XG5cdFx0XHQvL1xuXHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IHsgLi4udGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSwgLi4uKGlubmVyQXBwU3RhdGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIH07XG5cdFx0XHRhcHBTdGF0ZURhdGEgPSB7IGFwcFN0YXRlOiB0aGlzLl9tQ3VycmVudEFwcFN0YXRlIH07XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhcHBTdGF0ZUtleSA9IGF3YWl0IHRoaXMuX2NyZWF0ZUFwcFN0YXRlS2V5KGFwcFN0YXRlRGF0YSwgc3RhdGVJZGVudGlmaWVyKTtcblx0XHRcdFx0aWYgKHJlcGxhY2VIYXNoID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWRkQXBwU3RhdGVJbkhhc2goYXBwU3RhdGVLZXksIHN0YXRlSWRlbnRpZmllcik7XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2ggKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRMb2cuZXJyb3Iob0Vycm9yIGFzIHN0cmluZyk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHJvdXRlclByb3h5ID0gYXBwQ29tcG9uZW50LmdldFJvdXRlclByb3h5KCksXG5cdFx0XHRcdGhhc2ggPSByb3V0ZXJQcm94eS5nZXRIYXNoKCk7XG5cdFx0XHRhcHBTdGF0ZUtleSA9IHJvdXRlclByb3h5LmZpbmRBcHBTdGF0ZUluSGFzaChoYXNoKSBhcyBzdHJpbmc7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRhcHBTdGF0ZURhdGEsXG5cdFx0XHRhcHBTdGF0ZUtleVxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBvciB1cGRhdGVzIHRoZSBhcHBzdGF0ZS5cblx0ICogUmVwbGFjZXMgdGhlIGhhc2ggd2l0aCB0aGUgbmV3IGFwcHN0YXRlIGJhc2VkIG9uIHJlcGxhY2VIYXNoLlxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycyBQYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBuZXcgYXBwc3RhdGVcblx0ICogQHBhcmFtIGNyZWF0ZUFwcFBhcmFtZXRlcnMucmVwbGFjZUhhc2ggQm9vbGVhbiB3aGljaCBkZXRlcm1pbmVzIHRvIHJlcGxhY2UgdGhlIGhhc2ggd2l0aCB0aGUgbmV3IGdlbmVyYXRlZCBrZXlcblx0ICogQHBhcmFtIGNyZWF0ZUFwcFBhcmFtZXRlcnMuc2tpcE1lcmdlIEJvb2xlYW4gd2hpY2ggZGV0ZXJtaW5lcyB0byBza2lwIHRoZSBrZXkgdXNlciBzaGluZSB0aHJvdWdoXG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzLnZpZXdJZCBJZCBvZiB0aGUgdmlldyBmb3Igd2hpY2ggd2UgbmVlZCB0byBjcmVhdGUgdGhlIGFwcCBzdGF0ZS4gVGhpcyBpcyB0byBjcmVhdGUgb3IgdXBkYXRlIHZpZXcgc3BlY2lmaWMgYXBwc3RhdGVcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0aGUgc3RvcmVkIGRhdGEgb3IgYXBwc3RhdGUga2V5XG5cdCAqL1xuXHRhc3luYyBjcmVhdGVBcHBTdGF0ZShjcmVhdGVBcHBQYXJhbWV0ZXJzPzogQ3JlYXRlQXBwUGFyYW1ldGVycyk6IFByb21pc2U8dm9pZCB8IEFwcERhdGFJbmZvPiB7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gdGhpcy5vQXBwQ29tcG9uZW50O1xuXHRcdGlmICghYXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuQXBwU3RhdGUgfHwgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB7IHNraXBNZXJnZSA9IGZhbHNlLCB2aWV3SWQ6IHN0YXRlSWRlbnRpZmllciA9IFJFUExBQ0VfQ09NUExFVEVfQVBQU1RBVEUgfSA9IGNyZWF0ZUFwcFBhcmFtZXRlcnMgPz8ge30sXG5cdFx0XHRyb290Q29udHJvbGxlciA9IGFwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKTtcblxuXHRcdGlmICghcm9vdENvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHZpZXdTdGF0ZSBjb250cm9sbGVyIGV4dGVuc2lvbiBub3QgYXZhaWxhYmxlIGZvciBjb250cm9sbGVyOiAke3Jvb3RDb250cm9sbGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpfWApO1xuXHRcdH1cblxuXHRcdC8vIEluIGNhc2UsIG9uIGxvYWQgb2YgRkNMIGFwcCB3ZSBoYXZlIG11bHRpcGxlIHZpZXdzKExSLCBPUCwgc3ViLU9QLi4uKSBhbmQgdXJsIGhhcyBpQXBwU3RhdGUoMSkuXG5cdFx0Ly8gVGhlIExSIHZpZXcgbG9hZHMgd2l0aCBhcHBsaWVkIGlBcHBTdGF0ZSgxKSBhbmQgY2FsbHMgY3JlYXRlQXBwU3RhdGUoZXhhbXBsZTogb25TZWFyY2ggZXZlbnQgaW4gTFIpIGJlZm9yZSBPUCBpcyBsb2FkZWQuXG5cdFx0Ly8gVGhpcyBjcmVhdGVzIGlBcHBTdGF0ZSgyKSBiZWZvcmUgaUFwcFN0YXRlKDEpIGlzIGFwcGxpZWQgdG8gT1AuXG5cdFx0Ly8gU28sIHdlIHRyeSB0byB3YWl0IHRpbGwgdGhlIHJvdXRpbmcgaXMgY29tcGxldGUuXG5cdFx0YXdhaXQgcm9vdENvbnRyb2xsZXIucm91dGluZ0lzQ29tcGxldGUoKTtcblxuXHRcdC8vIEdldCBhcHBTdGF0ZSB0byB1cGRhdGVcblx0XHRsZXQgaW5uZXJBcHBTdGF0ZSA9IChhd2FpdCByb290Q29udHJvbGxlci52aWV3U3RhdGUucmV0cmlldmVWaWV3U3RhdGUoKSkgYXMgSW5uZXJBcHBEYXRhIHwgdW5kZWZpbmVkO1xuXHRcdGlubmVyQXBwU3RhdGUgPSB0aGlzLl9nZXRJbm5lckFwcFN0YXRlRm9yVmlldyhpbm5lckFwcFN0YXRlLCBzdGF0ZUlkZW50aWZpZXIpO1xuXHRcdGlmIChza2lwTWVyZ2UpIHtcblx0XHRcdGlubmVyQXBwU3RhdGUgPSB7IC4uLmlubmVyQXBwU3RhdGUsIC4uLnsgc2tpcE1lcmdlIH0gfTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5fZ2V0QXBwU3RhdGVJbmZvKGlubmVyQXBwU3RhdGUsIGNyZWF0ZUFwcFBhcmFtZXRlcnMpO1xuXHR9XG5cblx0X2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzKG9BcHBEYXRhOiBBcHBEYXRhLCBzTmF2VHlwZTogc3RyaW5nKTogTmF2aWdhdGlvblBhcmFtZXRlciB7XG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIG9BcHBEYXRhLCB7XG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHM6IG9BcHBEYXRhLm9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0c2VsZWN0aW9uVmFyaWFudDogb0FwcERhdGEub1NlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRyZXF1aXJlc1N0YW5kYXJkVmFyaWFudDogIW9BcHBEYXRhLmJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHksXG5cdFx0XHRuYXZpZ2F0aW9uVHlwZTogc05hdlR5cGVcblx0XHR9KTtcblx0fVxuXG5cdF9jaGVja0lmTGFzdFNlZW5SZWNvcmQodmlldz86IFZpZXcpOiBib29sZWFuIHtcblx0XHQvL2dldHRpbmcgdGhlIGludGVybmFsIG1vZGVsIGNvbnRleHQgaW4gb3JkZXIgdG8gZmV0Y2ggdGhlIHRlY2huaWNhbGtleXMgb2YgbGFzdCBzZWVuIHJlY29yZCBhbmQgY2xvc2UgY29sdW1uIGZsYWcgc2V0IGluIHRoZSBpbnRlcm5hbHJvdXRpbmcgZm9yIHJldGFpbmluZyBzZXR0aW5ncyBpbiBwZXJzaXN0ZW5jZSBtb2RlXG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB2aWV3ICYmICh2aWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQpO1xuXHRcdGlmIChpbnRlcm5hbE1vZGVsQ29udGV4dCAmJiBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcImZjbENvbHVtbkNsb3NlZFwiKSA9PT0gdHJ1ZSkge1xuXHRcdFx0Y29uc3QgdGVjaG5pY2FsS2V5c09iamVjdCA9IGludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwidGVjaG5pY2FsS2V5c09mTGFzdFNlZW5SZWNvcmRcIik7XG5cdFx0XHRjb25zdCBiaW5kaW5nQ29udGV4dCA9IHZpZXc/LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0XHRcdGNvbnN0IHBhdGggPSAoYmluZGluZ0NvbnRleHQgJiYgYmluZGluZ0NvbnRleHQuZ2V0UGF0aCgpKSB8fCBcIlwiO1xuXHRcdFx0Y29uc3QgbWV0YU1vZGVsID0gYmluZGluZ0NvbnRleHQ/LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0XHRjb25zdCBtZXRhUGF0aCA9IG1ldGFNb2RlbD8uZ2V0TWV0YVBhdGgocGF0aCk7XG5cdFx0XHRjb25zdCB0ZWNobmljYWxLZXlzID0gbWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7bWV0YVBhdGh9LyRUeXBlLyRLZXlgKTtcblx0XHRcdGZvciAoY29uc3QgZWxlbWVudCBvZiB0ZWNobmljYWxLZXlzKSB7XG5cdFx0XHRcdGNvbnN0IGtleVZhbHVlID0gYmluZGluZ0NvbnRleHQuZ2V0T2JqZWN0KClbZWxlbWVudF07XG5cdFx0XHRcdGlmIChrZXlWYWx1ZSAhPT0gdGVjaG5pY2FsS2V5c09iamVjdFtlbGVtZW50XSkge1xuXHRcdFx0XHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiZmNsQ29sdW1uQ2xvc2VkXCIsIGZhbHNlKTtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly90aGUgcmVjb3JkIG9wZW5lZCBpcyBub3QgdGhlIGxhc3Qgc2VlbiBvbmUgOiBubyBuZWVkIHRvIHBlcnNpc3QgdGhlIGNoYW5nZXMsIHJlc2V0IHRvIGRlZmF1bHQgaW5zdGVhZFxuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRfZ2V0QXBwU3RhdGVEYXRhKG9BcHBEYXRhOiBBcHBEYXRhLCB2aWV3SWQ/OiBzdHJpbmcsIG5hdlR5cGU/OiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IGtleSA9IFwiXCIsXG5cdFx0XHRpID0gMDtcblx0XHRjb25zdCBhcHBTdGF0ZURhdGEgPSBuYXZUeXBlID09PSBOYXZUeXBlLmh5YnJpZCA/IG9BcHBEYXRhLmlBcHBTdGF0ZSA6IG9BcHBEYXRhO1xuXG5cdFx0aWYgKGFwcFN0YXRlRGF0YT8uYXBwU3RhdGUpIHtcblx0XHRcdGZvciAoaTsgaSA8IE9iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSkubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKE9iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSlbaV0gPT09IHZpZXdJZCkge1xuXHRcdFx0XHRcdGtleSA9IE9iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSlbaV07XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGFwcFN0YXRlRGF0YT8uYXBwU3RhdGUpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFtPYmplY3Qua2V5cyhhcHBTdGF0ZURhdGEuYXBwU3RhdGUpW2ldXTogYXBwU3RhdGVEYXRhLmFwcFN0YXRlW2tleV0gfHwge31cblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEFwcGxpZXMgYW4gYXBwc3RhdGUgYnkgZmV0Y2hpbmcgYXBwZGF0YSBhbmQgcGFzc2luZyBpdCB0byBfYXBwbHlBcHBzdGF0ZVRvUGFnZS5cblx0ICogQHBhcmFtIHZpZXdJZFxuXHQgKiBAcGFyYW0gdmlld1xuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgZm9yIGFzeW5jIGhhbmRsaW5nXG5cdCAqL1xuXHRhc3luYyBhcHBseUFwcFN0YXRlKHZpZXdJZD86IHN0cmluZywgdmlldz86IFZpZXcpOiBQcm9taXNlPHZvaWQgfCB7fT4ge1xuXHRcdGlmICghdGhpcy5vQXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuQXBwU3RhdGUgfHwgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzKSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNoZWNrSWZMYXN0U2VlblJlY29yZCA9IHRoaXMuX2NoZWNrSWZMYXN0U2VlblJlY29yZCh2aWV3KTtcblx0XHRpZiAoY2hlY2tJZkxhc3RTZWVuUmVjb3JkID09PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXG5cdFx0QnVzeUxvY2tlci5sb2NrKHRoaXMpO1xuXHRcdC8vIERvbmUgZm9yIGJ1c3kgaW5kaWNhdG9yXG5cdFx0QnVzeUxvY2tlci5sb2NrKHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpKTtcblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKTtcblx0XHQvLyBUT0RPIG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSBzaG91bGQgcmV0dXJuIEVTNiBwcm9taXNlIGluc3RlYWQgalF1ZXJ5LnByb21pc2Vcblx0XHRyZXR1cm4gdG9FUzZQcm9taXNlPHVua25vd25bXT4ob05hdmlnYXRpb25TZXJ2aWNlLnBhcnNlTmF2aWdhdGlvbigpKVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChhRXJyb3JEYXRhOiB1bmtub3duW10pIHtcblx0XHRcdFx0aWYgKCFhRXJyb3JEYXRhKSB7XG5cdFx0XHRcdFx0YUVycm9yRGF0YSA9IFtdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdExvZy53YXJuaW5nKFwiQVBQU1RBVEU6IFBhcnNlIE5hdmlnYXRpb24gZmFpbGVkXCIsIGFFcnJvckRhdGFbMF0gYXMgc3RyaW5nKTtcblx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQvKiBhcHAgZGF0YSAqL1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0YUVycm9yRGF0YVsxXSxcblx0XHRcdFx0XHRhRXJyb3JEYXRhWzJdXG5cdFx0XHRcdF07XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oYXN5bmMgKGFSZXN1bHRzOiB1bmtub3duW10pID0+IHtcblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogUGFyc2UgTmF2aWdhdGlvbiBkb25lXCIpO1xuXG5cdFx0XHRcdC8vIGFSZXN1bHRzWzFdID0+IG9TdGFydHVwUGFyYW1ldGVycyAobm90IGV2YWx1YXRlZClcblx0XHRcdFx0Y29uc3Qgb0FwcERhdGEgPSAoYVJlc3VsdHNbMF0gfHwge30pIGFzIEFwcERhdGEsXG5cdFx0XHRcdFx0c05hdlR5cGUgPSAoYVJlc3VsdHNbMl0gYXMgc3RyaW5nKSB8fCBOYXZUeXBlLmluaXRpYWwsXG5cdFx0XHRcdFx0b1Jvb3RDb250cm9sbGVyID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkuZ2V0Q29udHJvbGxlcigpO1xuXHRcdFx0XHQvLyBhcHBseSB0aGUgYXBwc3RhdGUgZGVwZW5kaW5nIHVwb24gdGhlIHZpZXcgKExSL09QKVxuXHRcdFx0XHRjb25zdCBhcHBTdGF0ZURhdGEgPSB0aGlzLl9nZXRBcHBTdGF0ZURhdGEob0FwcERhdGEsIHZpZXdJZCwgc05hdlR5cGUpO1xuXHRcdFx0XHQvLyBmZXRjaCB0aGUgc2tpcE1lcmdlIGZsYWcgZnJvbSBhcHBTdGF0ZSBmb3Igc2F2ZSBhcyB0aWxlXG5cdFx0XHRcdGNvbnN0IHNraXBNZXJnZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IG9BcHBEYXRhPy5hcHBTdGF0ZT8uW1NLSVBfTUVSR0VfS0VZXTtcblx0XHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9XG5cdFx0XHRcdFx0c05hdlR5cGUgPT09IE5hdlR5cGUuaUFwcFN0YXRlIHx8IHNOYXZUeXBlID09PSBOYXZUeXBlLmh5YnJpZCA/IHsgLi4udGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSwgLi4uYXBwU3RhdGVEYXRhIH0gOiB7fTtcblx0XHRcdFx0bGV0IHNob3VsZEFwcGx5U3RhdGUgPSB0cnVlO1xuXG5cdFx0XHRcdGlmICghb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgdmlld1N0YXRlIGV4dGVuc2lvbiByZXF1aXJlZCBmb3IgY29udHJvbGxlciAke29Sb290Q29udHJvbGxlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKX1gKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZS5faXNTdGF0ZUVtcHR5Rm9ySUFwcFN0YXRlTmF2VHlwZShvQXBwRGF0YSwgc05hdlR5cGUpKSB7XG5cdFx0XHRcdFx0aWYgKCFvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLl9nZXRJbml0aWFsU3RhdGVBcHBsaWVkKCkpIHtcblx0XHRcdFx0XHRcdG9Sb290Q29udHJvbGxlci52aWV3U3RhdGUuX3NldEluaXRpYWxTdGF0ZUFwcGxpZWQoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0c2hvdWxkQXBwbHlTdGF0ZSA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGFwcGx5Vmlld1N0YXRlID0gYXdhaXQgb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZS5hcHBseVZpZXdTdGF0ZShcblx0XHRcdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuXHRcdFx0XHRcdHRoaXMuX2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzKG9BcHBEYXRhLCBzTmF2VHlwZSksXG5cdFx0XHRcdFx0c2tpcE1lcmdlXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlmICghc2hvdWxkQXBwbHlTdGF0ZSkge1xuXHRcdFx0XHRcdHJldHVybiB7fTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gYXBwbHlWaWV3U3RhdGU7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJhcHBTdGF0ZSBjb3VsZCBub3QgYmUgYXBwbGllZFwiLCBvRXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdFx0dGhyb3cgb0Vycm9yO1xuXHRcdFx0fSlcblx0XHRcdC5maW5hbGx5KCgpID0+IHtcblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcyk7XG5cdFx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpKTtcblx0XHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRvIGNoZWNrIGlzIHJvdXRlIGlzIGNoYW5nZWQgYnkgY2hhbmdlIGluIHRoZSBpQVBQU3RhdGUuXG5cdCAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcm91dGUgaGFzIGNobmFnZWRcblx0ICovXG5cdGNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuYk5vUm91dGVDaGFuZ2U7XG5cdH1cblxuXHQvKipcblx0ICogUmVzZXQgdGhlIHJvdXRlIGNoYW5nZWQgYnkgaUFQUFN0YXRlLlxuXHQgKi9cblx0cmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuYk5vUm91dGVDaGFuZ2UpIHtcblx0XHRcdHRoaXMuYk5vUm91dGVDaGFuZ2UgPSBmYWxzZTtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBAZ2xvYmFsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IEFwcFN0YXRlSGFuZGxlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7RUFnQkEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUNELE9BQU87RUFjL0IsTUFBTUUsY0FBYyxHQUFHLFdBQVc7RUFnQmxDLE1BQU1DLHlCQUF5QixHQUFHLDJCQUEyQjtFQUFDLElBR3hEQyxlQUFlLElBQUFDLElBQUEsR0FEcEJDLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFBRCxJQUFBLENBQUFFLE1BQUEsMEJBQUFDLFdBQUE7SUFBQUMsY0FBQSxDQUFBTCxlQUFB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
|
|
@@ -73,7 +73,6 @@ class AppStateHandler extends BaseObject {
|
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
75
|
* Get view specific appstate.
|
|
76
|
-
*
|
|
77
76
|
* @param innerAppState Overall appstate
|
|
78
77
|
* @param stateIdentifier State identifier. Id of the local view
|
|
79
78
|
* @returns Inner appstate
|
|
@@ -92,7 +91,6 @@ class AppStateHandler extends BaseObject {
|
|
|
92
91
|
|
|
93
92
|
/**
|
|
94
93
|
* Add appstate in hash.
|
|
95
|
-
*
|
|
96
94
|
* @param appStateKey Appstate key
|
|
97
95
|
* @param stateIdentifier State identifier. Id of the local view
|
|
98
96
|
*/
|
|
@@ -113,7 +111,6 @@ class AppStateHandler extends BaseObject {
|
|
|
113
111
|
|
|
114
112
|
/**
|
|
115
113
|
* Create Appstate Key.
|
|
116
|
-
*
|
|
117
114
|
* @param appStateData Appstate
|
|
118
115
|
* @param stateIdentifier State identifier. Id of the local view
|
|
119
116
|
* @returns Appstate Key
|
|
@@ -140,7 +137,6 @@ class AppStateHandler extends BaseObject {
|
|
|
140
137
|
|
|
141
138
|
/**
|
|
142
139
|
* Creates appstate info.
|
|
143
|
-
*
|
|
144
140
|
* @param innerAppState
|
|
145
141
|
* @param createAppParameters Parameters for creating new appstate
|
|
146
142
|
* @param createAppParameters.replaceHash Boolean which determines to replace the hash with the new generated key
|
|
@@ -181,7 +177,6 @@ class AppStateHandler extends BaseObject {
|
|
|
181
177
|
/**
|
|
182
178
|
* Creates or updates the appstate.
|
|
183
179
|
* Replaces the hash with the new appstate based on replaceHash.
|
|
184
|
-
*
|
|
185
180
|
* @param createAppParameters Parameters for creating new appstate
|
|
186
181
|
* @param createAppParameters.replaceHash Boolean which determines to replace the hash with the new generated key
|
|
187
182
|
* @param createAppParameters.skipMerge Boolean which determines to skip the key user shine through
|
|
@@ -269,7 +264,6 @@ class AppStateHandler extends BaseObject {
|
|
|
269
264
|
|
|
270
265
|
/**
|
|
271
266
|
* Applies an appstate by fetching appdata and passing it to _applyAppstateToPage.
|
|
272
|
-
*
|
|
273
267
|
* @param viewId
|
|
274
268
|
* @param view
|
|
275
269
|
* @returns A promise for async handling
|
|
@@ -350,7 +344,6 @@ class AppStateHandler extends BaseObject {
|
|
|
350
344
|
|
|
351
345
|
/**
|
|
352
346
|
* To check is route is changed by change in the iAPPState.
|
|
353
|
-
*
|
|
354
347
|
* @returns `true` if the route has chnaged
|
|
355
348
|
*/
|
|
356
349
|
checkIfRouteChangedByIApp(): boolean {
|
|
@@ -8,14 +8,13 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/ui/co
|
|
|
8
8
|
var _dec, _dec2, _class, _class2;
|
|
9
9
|
var publicExtension = ClassSupport.publicExtension;
|
|
10
10
|
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
11
|
-
function _inheritsLoose(
|
|
12
|
-
function _setPrototypeOf(
|
|
13
|
-
function _applyDecoratedDescriptor(
|
|
11
|
+
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
|
|
12
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
13
|
+
function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
|
|
14
14
|
/**
|
|
15
15
|
* Internal base controller class for SAP Fiori elements application.
|
|
16
16
|
*
|
|
17
17
|
* If you want to extend a base controller for your custom page, please use for sap.fe.core.PageController.
|
|
18
|
-
*
|
|
19
18
|
* @hideconstructor
|
|
20
19
|
* @public
|
|
21
20
|
* @since 1.90.0
|
|
@@ -28,7 +27,6 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/ui/co
|
|
|
28
27
|
var _proto = BaseController.prototype;
|
|
29
28
|
/**
|
|
30
29
|
* Returns the current app component.
|
|
31
|
-
*
|
|
32
30
|
* @returns The app component or, if not found, null
|
|
33
31
|
* @public
|
|
34
32
|
* @since 1.91.0
|
|
@@ -42,7 +40,6 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/ui/co
|
|
|
42
40
|
|
|
43
41
|
/**
|
|
44
42
|
* Convenience method provided by SAP Fiori elements to enable applications to include the view model by name into each controller.
|
|
45
|
-
*
|
|
46
43
|
* @public
|
|
47
44
|
* @param sName The model name
|
|
48
45
|
* @returns The model instance
|
|
@@ -53,7 +50,6 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/ui/co
|
|
|
53
50
|
|
|
54
51
|
/**
|
|
55
52
|
* Convenience method for setting the view model in every controller of the application.
|
|
56
|
-
*
|
|
57
53
|
* @public
|
|
58
54
|
* @param oModel The model instance
|
|
59
55
|
* @param sName The model name
|
|
@@ -72,4 +68,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/ui/co
|
|
|
72
68
|
}(Controller), (_applyDecoratedDescriptor(_class2.prototype, "getAppComponent", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "getAppComponent"), _class2.prototype)), _class2)) || _class);
|
|
73
69
|
return BaseController;
|
|
74
70
|
}, false);
|
|
75
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29udHJvbGxlciIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwicHVibGljRXh0ZW5zaW9uIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9Db250cm9sbGVyIiwiX2luaGVyaXRzTG9vc2UiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9wcm90byIsInByb3RvdHlwZSIsImdldEFwcENvbXBvbmVudCIsIl9vQXBwQ29tcG9uZW50IiwiQ29tbW9uVXRpbHMiLCJnZXRWaWV3IiwiZ2V0TW9kZWwiLCJzTmFtZSIsInNldE1vZGVsIiwib01vZGVsIiwiZ2V0UmVzb3VyY2VCdW5kbGUiLCJzSTE4bk1vZGVsTmFtZSIsIkNvbnRyb2xsZXIiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCYXNlQ29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBSZXNvdXJjZUJ1bmRsZSBmcm9tIFwic2FwL2Jhc2UvaTE4bi9SZXNvdXJjZUJ1bmRsZVwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIHB1YmxpY0V4dGVuc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIFJlc291cmNlTW9kZWwgZnJvbSBcInNhcC9mZS9jb3JlL1Jlc291cmNlTW9kZWxcIjtcbmltcG9ydCB0eXBlIFRlbXBsYXRlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZUNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBWaWV3RGF0YSB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9UZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBDb250cm9sbGVyIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIE1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvTW9kZWxcIjtcbmltcG9ydCB0eXBlIEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YVY0Q29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5cbi8qKlxuICogSW50ZXJuYWwgYmFzZSBjb250cm9sbGVyIGNsYXNzIGZvciBTQVAgRmlvcmkgZWxlbWVudHMgYXBwbGljYXRpb24uXG4gKlxuICogSWYgeW91IHdhbnQgdG8gZXh0ZW5kIGEgYmFzZSBjb250cm9sbGVyIGZvciB5b3VyIGN1c3RvbSBwYWdlLCBwbGVhc2UgdXNlIGZvciBzYXAuZmUuY29yZS5QYWdlQ29udHJvbGxlci5cbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjkwLjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQmFzZUNvbnRyb2xsZXJcIilcbmNsYXNzIEJhc2VDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlciB7XG5cdHByaXZhdGUgX29BcHBDb21wb25lbnQ/OiBBcHBDb21wb25lbnQ7XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgYXBwIGNvbXBvbmVudC5cblx0ICogQHJldHVybnMgVGhlIGFwcCBjb21wb25lbnQgb3IsIGlmIG5vdCBmb3VuZCwgbnVsbFxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjkxLjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRnZXRBcHBDb21wb25lbnQoKTogQXBwQ29tcG9uZW50IHtcblx0XHRpZiAoIXRoaXMuX29BcHBDb21wb25lbnQpIHtcblx0XHRcdHRoaXMuX29BcHBDb21wb25lbnQgPSBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQodGhpcy5nZXRWaWV3KCkpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5fb0FwcENvbXBvbmVudDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb252ZW5pZW5jZSBtZXRob2QgcHJvdmlkZWQgYnkgU0FQIEZpb3JpIGVsZW1lbnRzIHRvIGVuYWJsZSBhcHBsaWNhdGlvbnMgdG8gaW5jbHVkZSB0aGUgdmlldyBtb2RlbCBieSBuYW1lIGludG8gZWFjaCBjb250cm9sbGVyLlxuXHQgKiBAcHVibGljXG5cdCAqIEBwYXJhbSBzTmFtZSBUaGUgbW9kZWwgbmFtZVxuXHQgKiBAcmV0dXJucyBUaGUgbW9kZWwgaW5zdGFuY2Vcblx0ICovXG5cdGdldE1vZGVsKHNOYW1lPzogc3RyaW5nKTogTW9kZWwgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmdldFZpZXcoKS5nZXRNb2RlbChzTmFtZSk7XG5cdH1cblxuXHQvKipcblx0ICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBzZXR0aW5nIHRoZSB2aWV3IG1vZGVsIGluIGV2ZXJ5IGNvbnRyb2xsZXIgb2YgdGhlIGFwcGxpY2F0aW9uLlxuXHQgKiBAcHVibGljXG5cdCAqIEBwYXJhbSBvTW9kZWwgVGhlIG1vZGVsIGluc3RhbmNlXG5cdCAqIEBwYXJhbSBzTmFtZSBUaGUgbW9kZWwgbmFtZVxuXHQgKiBAcmV0dXJucyBUaGUgdmlldyBpbnN0YW5jZVxuXHQgKi9cblx0c2V0TW9kZWwob01vZGVsOiBNb2RlbCwgc05hbWU6IHN0cmluZyk6IFZpZXcge1xuXHRcdHJldHVybiB0aGlzLmdldFZpZXcoKS5zZXRNb2RlbChvTW9kZWwsIHNOYW1lKTtcblx0fVxuXG5cdGdldFJlc291cmNlQnVuZGxlKHNJMThuTW9kZWxOYW1lOiBzdHJpbmcpOiBSZXNvdXJjZUJ1bmRsZSB8IFByb21pc2U8UmVzb3VyY2VCdW5kbGU+IHtcblx0XHRpZiAoIXNJMThuTW9kZWxOYW1lKSB7XG5cdFx0XHRzSTE4bk1vZGVsTmFtZSA9IFwiaTE4blwiO1xuXHRcdH1cblx0XHRyZXR1cm4gKHRoaXMuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TW9kZWwoc0kxOG5Nb2RlbE5hbWUpIGFzIFJlc291cmNlTW9kZWwpLmdldFJlc291cmNlQnVuZGxlKCk7XG5cdH1cbn1cbmV4cG9ydCB0eXBlIEZFVmlldyA9IHtcblx0Z2V0TW9kZWwoKTogT0RhdGFNb2RlbDtcblx0Z2V0TW9kZWwobW9kZWxOYW1lOiBcInNhcC5mZS5pMThuXCIpOiBSZXNvdXJjZU1vZGVsO1xuXHRnZXRNb2RlbChtb2RlbE5hbWU6IFwidWlcIik6IEpTT05Nb2RlbDtcblx0Z2V0TW9kZWwobW9kZWxOYW1lOiBcImludGVybmFsXCIpOiBKU09OTW9kZWw7XG5cdGdldE1vZGVsKG1vZGVsTmFtZTogXCJfcGFnZU1vZGVsXCIpOiBKU09OTW9kZWw7XG5cdGdldE1vZGVsKG1vZGVsTmFtZTogXCJmY2xoZWxwZXJcIik6IEpTT05Nb2RlbDtcblx0Z2V0Q29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlcjtcblx0Z2V0QmluZGluZ0NvbnRleHQoKTogT0RhdGFWNENvbnRleHQ7XG5cdGdldFZpZXdEYXRhKCk6IFZpZXdEYXRhO1xufSAmIFZpZXc7XG5cbmludGVyZmFjZSBCYXNlQ29udHJvbGxlciB7XG5cdGdldE93bmVyQ29tcG9uZW50KCk6IFRlbXBsYXRlQ29tcG9uZW50O1xuXHRnZXRNb2RlbCgpOiBPRGF0YU1vZGVsO1xuXHRnZXRNb2RlbChtb2RlbE5hbWU6IFwidWlcIik6IEpTT05Nb2RlbDtcblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29udHJvbGxlci5cblx0ICogQHJldHVybnMgVmlldyBjb25uZWN0ZWQgdG8gdGhpcyBjb250cm9sbGVyLlxuXHQgKi9cblx0Z2V0VmlldygpOiBGRVZpZXc7XG59XG5leHBvcnQgZGVmYXVsdCBCYXNlQ29udHJvbGxlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztFQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFQQSxJQVNNQSxjQUFjLElBQUFDLElBQUEsR0FEbkJDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFBQyxLQUFBLEdBVTNDQyxlQUFlLENBQUMsQ0FBQyxFQUFBSCxJQUFBLENBQUFJLE1BQUEsSUFBQUMsT0FBQSwwQkFBQUMsV0FBQTtJQUFBQyxjQUFBLENBQUFSLGNBQUEsRUFBQU8sV0FBQTtJQUFBLFNBQUFQLGVBQUE7TUFBQSxPQUFBTyxXQUFBLENBQUFFLEtBQUEsT0FBQUMsU0FBQTtJQUFBO0lBQUEsSUFBQUMsTUFBQSxHQUFBWCxjQUFBLENBQUFZLFNBQUE7SUFObEI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBTENELE1BQUEsQ0FPQUUsZUFBZSxHQURmLFNBQUFBLGdCQUFBLEVBQ2dDO01BQy9CLElBQUksQ0FBQyxJQUFJLENBQUNDLGNBQWMsRUFBRTtRQUN6QixJQUFJLENBQUNBLGNBQWMsR0FBR0MsV0FBVyxDQUFDRixlQUFlLENBQUMsSUFBSSxDQUFDRyxPQUFPLENBQUMsQ0FBQyxDQUFDO01BQ2xFO01BQ0EsT0FBTyxJQUFJLENBQUNGLGNBQWM7SUFDM0I7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEM7SUFBQUgsTUFBQSxDQU1BTSxRQUFRLEdBQVIsU0FBQUEsU0FBU0MsS0FBYyxFQUFxQjtNQUMzQyxPQUFPLElBQUksQ0FBQ0YsT0FBTyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDQyxLQUFLLENBQUM7SUFDdEM7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FOQztJQUFBUCxNQUFBLENBT0FRLFFBQVEsR0FBUixTQUFBQSxTQUFTQyxNQUFhLEVBQUVGLEtBQWEsRUFBUTtNQUM1QyxPQUFPLElBQUksQ0FBQ0YsT0FBTyxDQUFDLENBQUMsQ0FBQ0csUUFBUSxDQUFDQyxNQUFNLEVBQUVGLEtBQUssQ0FBQztJQUM5QyxDQUFDO0lBQUFQLE1BQUEsQ0FFRFUsaUJBQWlCLEdBQWpCLFNBQUFBLGtCQUFrQkMsY0FBc0IsRUFBNEM7TUFDbkYsSUFBSSxDQUFDQSxjQUFjLEVBQUU7UUFDcEJBLGNBQWMsR0FBRyxNQUFNO01BQ3hCO01BQ0EsT0FBUSxJQUFJLENBQUNULGVBQWUsQ0FBQyxDQUFDLENBQUNJLFFBQVEsQ0FBQ0ssY0FBYyxDQUFDLENBQW1CRCxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFBQSxPQUFBckIsY0FBQTtFQUFBLEVBM0MyQnVCLFVBQVUsSUFBQUMseUJBQUEsQ0FBQWxCLE9BQUEsQ0FBQU0sU0FBQSxzQkFBQVQsS0FBQSxHQUFBc0IsTUFBQSxDQUFBQyx3QkFBQSxDQUFBcEIsT0FBQSxDQUFBTSxTQUFBLHNCQUFBTixPQUFBLENBQUFNLFNBQUEsSUFBQU4sT0FBQSxNQUFBRCxNQUFBO0VBQUEsT0FtRXhCTCxjQUFjO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -17,7 +17,6 @@ import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
|
17
17
|
* Internal base controller class for SAP Fiori elements application.
|
|
18
18
|
*
|
|
19
19
|
* If you want to extend a base controller for your custom page, please use for sap.fe.core.PageController.
|
|
20
|
-
*
|
|
21
20
|
* @hideconstructor
|
|
22
21
|
* @public
|
|
23
22
|
* @since 1.90.0
|
|
@@ -28,7 +27,6 @@ class BaseController extends Controller {
|
|
|
28
27
|
|
|
29
28
|
/**
|
|
30
29
|
* Returns the current app component.
|
|
31
|
-
*
|
|
32
30
|
* @returns The app component or, if not found, null
|
|
33
31
|
* @public
|
|
34
32
|
* @since 1.91.0
|
|
@@ -43,7 +41,6 @@ class BaseController extends Controller {
|
|
|
43
41
|
|
|
44
42
|
/**
|
|
45
43
|
* Convenience method provided by SAP Fiori elements to enable applications to include the view model by name into each controller.
|
|
46
|
-
*
|
|
47
44
|
* @public
|
|
48
45
|
* @param sName The model name
|
|
49
46
|
* @returns The model instance
|
|
@@ -54,7 +51,6 @@ class BaseController extends Controller {
|
|
|
54
51
|
|
|
55
52
|
/**
|
|
56
53
|
* Convenience method for setting the view model in every controller of the application.
|
|
57
|
-
*
|
|
58
54
|
* @public
|
|
59
55
|
* @param oModel The model instance
|
|
60
56
|
* @param sName The model name
|
|
@@ -89,7 +85,6 @@ interface BaseController {
|
|
|
89
85
|
getModel(modelName: "ui"): JSONModel;
|
|
90
86
|
/**
|
|
91
87
|
* Returns the view associated with this controller.
|
|
92
|
-
*
|
|
93
88
|
* @returns View connected to this controller.
|
|
94
89
|
*/
|
|
95
90
|
getView(): FEView;
|