@sapui5/sap.fe.core 1.111.1 → 1.113.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime-dbg.js +6 -5
- package/src/sap/fe/core/ActionRuntime.js +1 -1
- package/src/sap/fe/core/ActionRuntime.js.map +1 -1
- package/src/sap/fe/core/ActionRuntime.ts +12 -11
- package/src/sap/fe/core/AppComponent-dbg.js +35 -9
- package/src/sap/fe/core/AppComponent.js +1 -1
- package/src/sap/fe/core/AppComponent.js.map +1 -1
- package/src/sap/fe/core/AppComponent.ts +66 -9
- package/src/sap/fe/core/AppStateHandler-dbg.js +5 -2
- package/src/sap/fe/core/AppStateHandler.js +1 -1
- package/src/sap/fe/core/AppStateHandler.js.map +1 -1
- package/src/sap/fe/core/AppStateHandler.ts +10 -1
- package/src/sap/fe/core/BaseController-dbg.js +1 -1
- package/src/sap/fe/core/BaseController.ts +2 -1
- package/src/sap/fe/core/CommonUtils-dbg.js +202 -533
- package/src/sap/fe/core/CommonUtils.js +1 -1
- package/src/sap/fe/core/CommonUtils.js.map +1 -1
- package/src/sap/fe/core/CommonUtils.ts +260 -681
- package/src/sap/fe/core/ExtensionAPI-dbg.js +4 -1
- package/src/sap/fe/core/ExtensionAPI.js +1 -1
- package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
- package/src/sap/fe/core/ExtensionAPI.ts +11 -1
- package/src/sap/fe/core/PageController-dbg.js +26 -31
- package/src/sap/fe/core/PageController.js +1 -1
- package/src/sap/fe/core/PageController.js.map +1 -1
- package/src/sap/fe/core/PageController.ts +17 -3
- package/src/sap/fe/core/ResourceModel-dbg.js +71 -0
- package/src/sap/fe/core/ResourceModel.js +6 -0
- package/src/sap/fe/core/ResourceModel.js.map +1 -0
- package/src/sap/fe/core/ResourceModel.ts +67 -0
- package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +1 -0
- package/src/sap/fe/core/TemplateModel-dbg.js +1 -1
- package/src/sap/fe/core/TemplateModel.ts +6 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +5 -7
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +6 -5
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +164 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +6 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +170 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +88 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +6 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +142 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +913 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +21 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/{BuildingBlockRuntime.ts → BuildingBlockTemplateProcessor.ts} +313 -373
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +79 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +15 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +68 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +162 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +6 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +183 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +4 -2
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -3
- package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +936 -231
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +1023 -255
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +48 -98
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +95 -129
- package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +14 -17
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +23 -17
- package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -0
- package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +3 -3
- package/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
- package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +2 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +2 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +2 -0
- package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +3 -5
- package/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.ts +26 -4
- package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +2 -1
- package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/Paginator.ts +7 -0
- package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +8 -0
- package/src/sap/fe/core/controllerextensions/Share-dbg.js +8 -1
- package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/Share.ts +11 -0
- package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +14 -13
- package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +27 -27
- package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +17 -8
- package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.ts +35 -14
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +6 -5
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +7 -4
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +285 -82
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +326 -89
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +23 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +32 -3
- package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +4 -4
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +4 -5
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +17 -3
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +65 -34
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +1 -1
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +33 -18
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +103 -0
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +124 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +78 -149
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +85 -160
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +49 -49
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +52 -63
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +82 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +123 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1508 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +1993 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +3 -1415
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +2 -1921
- package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +10 -18
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -22
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +53 -47
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +55 -61
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +12 -1
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +19 -0
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +78 -13
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +100 -13
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -1
- package/src/sap/fe/core/controls/CommandExecution-dbg.js +16 -5
- package/src/sap/fe/core/controls/CommandExecution.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
- package/src/sap/fe/core/controls/CommandExecution.ts +15 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +3 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +4 -1
- package/src/sap/fe/core/controls/FilterBar-dbg.js +1 -1
- package/src/sap/fe/core/controls/FilterBar.ts +5 -0
- package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +1 -1
- package/src/sap/fe/core/controls/FormElementWrapper.ts +3 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +1 -1
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +7 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +4 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +10 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +4 -3
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -2
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +0 -1
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +6 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +5 -0
- package/src/sap/fe/core/converters/ConverterContext-dbg.js +3 -5
- package/src/sap/fe/core/converters/ConverterContext.js +1 -1
- package/src/sap/fe/core/converters/ConverterContext.js.map +1 -1
- package/src/sap/fe/core/converters/ConverterContext.ts +4 -6
- package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -8
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +15 -6
- package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +21 -3
- package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper.ts +23 -1
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +67 -62
- package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.ts +75 -66
- package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -1
- package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
- package/src/sap/fe/core/converters/annotations/DataField-dbg.js +81 -20
- package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.ts +76 -22
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1027 -956
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +13 -19
- package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.ts +37 -40
- package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +95 -33
- package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +133 -49
- package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +99 -62
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +140 -75
- package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +7 -6
- package/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form.ts +8 -14
- package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +9 -9
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +17 -18
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +143 -93
- package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.ts +221 -177
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +23 -16
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +27 -23
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +138 -75
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +223 -110
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +38 -28
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +67 -47
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +6 -6
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +5 -8
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +54 -24
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +84 -37
- package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +12 -14
- package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +16 -11
- package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +8 -6
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +8 -6
- package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +7 -6
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +19 -10
- package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +1 -1
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +7 -2
- package/src/sap/fe/core/converters/helpers/ID-dbg.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +2 -1
- package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +11 -9
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +10 -8
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +22 -20
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +19 -16
- package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +32 -35
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +42 -37
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +12 -5
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +8 -2
- package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +2 -2
- package/src/sap/fe/core/formatters/FiscalFormat.ts +6 -1
- package/src/sap/fe/core/formatters/TableFormatter-dbg.js +3 -7
- package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.ts +2 -6
- package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +9 -5
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.ts +11 -4
- package/src/sap/fe/core/fpm/Component-dbg.js +1 -1
- package/src/sap/fe/core/fpm/Component.ts +1 -0
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
- package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +7 -6
- package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.ts +9 -9
- package/src/sap/fe/core/helpers/ClassSupport-dbg.js +1 -1
- package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -1
- package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
- package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +93 -62
- package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.ts +140 -185
- package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +23 -20
- package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.ts +26 -28
- package/src/sap/fe/core/helpers/MessageStrip-dbg.js +9 -9
- package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.ts +8 -8
- package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +517 -0
- package/src/sap/fe/core/helpers/MetaModelFunction.js +6 -0
- package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -0
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +610 -0
- package/src/sap/fe/core/helpers/ModelHelper-dbg.js +37 -73
- package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +47 -74
- package/src/sap/fe/core/helpers/PasteHelper-dbg.js +5 -5
- package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
- package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/PasteHelper.ts +6 -10
- package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +39 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +6 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper.ts +35 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +132 -23
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +109 -22
- package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +2 -2
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
- package/src/sap/fe/core/helpers/SizeHelper-dbg.js +53 -0
- package/src/sap/fe/core/helpers/SizeHelper.js +6 -0
- package/src/sap/fe/core/helpers/SizeHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SizeHelper.ts +51 -0
- package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +29 -25
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.ts +26 -24
- package/src/sap/fe/core/helpers/Synchronization-dbg.js +1 -1
- package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
- package/src/sap/fe/core/helpers/TypeGuards-dbg.js +151 -1
- package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.ts +162 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +2 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +6 -2
- package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +3 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +3 -3
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
- package/src/sap/fe/core/library-dbg.js +2 -2
- package/src/sap/fe/core/library-preload.js +156 -140
- package/src/sap/fe/core/library-preload.js.map +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/library.ts +7 -0
- package/src/sap/fe/core/manifest.json +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +67 -15
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -14
- package/src/sap/fe/core/messagebundle.properties +35 -0
- package/src/sap/fe/core/messagebundle_ar.properties +15 -12
- package/src/sap/fe/core/messagebundle_bg.properties +20 -17
- package/src/sap/fe/core/messagebundle_ca.properties +12 -9
- package/src/sap/fe/core/messagebundle_cs.properties +12 -9
- package/src/sap/fe/core/messagebundle_cy.properties +12 -9
- package/src/sap/fe/core/messagebundle_da.properties +12 -9
- package/src/sap/fe/core/messagebundle_de.properties +13 -10
- package/src/sap/fe/core/messagebundle_el.properties +14 -11
- package/src/sap/fe/core/messagebundle_en.properties +4 -1
- package/src/sap/fe/core/messagebundle_en_GB.properties +4 -1
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +21 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +23 -3
- package/src/sap/fe/core/messagebundle_es.properties +12 -9
- package/src/sap/fe/core/messagebundle_es_MX.properties +12 -9
- package/src/sap/fe/core/messagebundle_et.properties +12 -9
- package/src/sap/fe/core/messagebundle_fi.properties +12 -9
- package/src/sap/fe/core/messagebundle_fr.properties +12 -9
- package/src/sap/fe/core/messagebundle_fr_CA.properties +13 -10
- package/src/sap/fe/core/messagebundle_hi.properties +12 -9
- package/src/sap/fe/core/messagebundle_hr.properties +12 -9
- package/src/sap/fe/core/messagebundle_hu.properties +12 -9
- package/src/sap/fe/core/messagebundle_id.properties +13 -10
- package/src/sap/fe/core/messagebundle_it.properties +12 -9
- package/src/sap/fe/core/messagebundle_iw.properties +12 -9
- package/src/sap/fe/core/messagebundle_ja.properties +13 -10
- package/src/sap/fe/core/messagebundle_kk.properties +12 -9
- package/src/sap/fe/core/messagebundle_ko.properties +12 -9
- package/src/sap/fe/core/messagebundle_lt.properties +12 -9
- package/src/sap/fe/core/messagebundle_lv.properties +12 -9
- package/src/sap/fe/core/messagebundle_ms.properties +13 -10
- package/src/sap/fe/core/messagebundle_nl.properties +13 -10
- package/src/sap/fe/core/messagebundle_no.properties +12 -9
- package/src/sap/fe/core/messagebundle_pl.properties +12 -9
- package/src/sap/fe/core/messagebundle_pt.properties +12 -9
- package/src/sap/fe/core/messagebundle_pt_PT.properties +12 -9
- package/src/sap/fe/core/messagebundle_ro.properties +16 -13
- package/src/sap/fe/core/messagebundle_ru.properties +13 -10
- package/src/sap/fe/core/messagebundle_sh.properties +12 -9
- package/src/sap/fe/core/messagebundle_sk.properties +12 -9
- package/src/sap/fe/core/messagebundle_sl.properties +12 -9
- package/src/sap/fe/core/messagebundle_sv.properties +12 -9
- package/src/sap/fe/core/messagebundle_th.properties +12 -9
- package/src/sap/fe/core/messagebundle_tr.properties +12 -9
- package/src/sap/fe/core/messagebundle_uk.properties +12 -9
- package/src/sap/fe/core/messagebundle_vi.properties +13 -10
- package/src/sap/fe/core/messagebundle_zh_CN.properties +12 -9
- package/src/sap/fe/core/messagebundle_zh_TW.properties +12 -9
- package/src/sap/fe/core/operationsHelper-dbg.js +70 -44
- package/src/sap/fe/core/operationsHelper.js +1 -1
- package/src/sap/fe/core/operationsHelper.js.map +1 -1
- package/src/sap/fe/core/operationsHelper.ts +88 -63
- package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +1 -1
- package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -0
- package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +2 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
- package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +5 -3
- package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +10 -5
- package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +22 -8
- package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +15 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -1
- package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +9 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +19 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +2 -2
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +10 -3
- package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +9 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +35 -3
- package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +7 -1
- package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +24 -2
- package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +448 -279
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +497 -333
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +26 -6
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +54 -13
- package/src/sap/fe/core/support/Diagnostics-dbg.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.ts +5 -0
- package/src/sap/fe/core/templating/CommonFormatters-dbg.js +4 -3
- package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.ts +2 -2
- package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +195 -95
- package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +210 -96
- package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +5 -5
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -2
- package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +19 -29
- package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -26
- package/src/sap/fe/core/templating/EntityTypeHelper-dbg.js +48 -0
- package/src/sap/fe/core/templating/EntityTypeHelper.js +6 -0
- package/src/sap/fe/core/templating/EntityTypeHelper.js.map +1 -0
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +37 -0
- package/src/sap/fe/core/templating/FilterHelper-dbg.js +3 -3
- package/src/sap/fe/core/templating/FilterHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
- package/src/sap/fe/core/templating/FilterHelper.ts +5 -3
- package/src/sap/fe/core/templating/FilterTemplating-dbg.js +7 -8
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.ts +5 -8
- package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +1 -6
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.ts +0 -5
- package/src/sap/fe/core/templating/PropertyHelper-dbg.js +13 -46
- package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.ts +14 -43
- package/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
- package/src/sap/fe/core/templating/UIFormatters.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/UIFormatters.ts +47 -32
- package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +1 -1
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -0
- package/src/sap/fe/core/type/FiscalDate-dbg.js +2 -2
- package/src/sap/fe/core/type/FiscalDate.js.map +1 -1
- package/src/sap/fe/core/type/FiscalDate.ts +2 -1
- package/src/sap/fe/core/type/TypeUtil-dbg.js +5 -10
- package/src/sap/fe/core/type/TypeUtil.js +1 -1
- package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
- package/src/sap/fe/core/type/TypeUtil.ts +3 -6
- package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +0 -410
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +0 -15
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +0 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +0 -536
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +0 -44
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +0 -6
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +0 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +0 -14
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +0 -948
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +0 -19
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +0 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +0 -711
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +0 -6
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +0 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +0 -863
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +0 -91
- package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +0 -151
- package/src/sap/fe/core/controls/ConditionalWrapper.js +0 -6
- package/src/sap/fe/core/controls/ConditionalWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +0 -88
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +0 -330
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +0 -6
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -292
- package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +0 -126
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +0 -6
- package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +0 -1
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +0 -105
- package/src/sap/fe/core/controls/FieldWrapper-dbg.js +0 -194
- package/src/sap/fe/core/controls/FieldWrapper.js +0 -6
- package/src/sap/fe/core/controls/FieldWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/FieldWrapper.ts +0 -121
- package/src/sap/fe/core/controls/FileWrapper-dbg.js +0 -280
- package/src/sap/fe/core/controls/FileWrapper.js +0 -6
- package/src/sap/fe/core/controls/FileWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/FileWrapper.ts +0 -202
- package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +0 -141
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +0 -6
- package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +0 -1
- package/src/sap/fe/core/helpers/SideEffectsHelper.ts +0 -129
|
@@ -15,7 +15,7 @@ import { getSemanticObjectPath } from "sap/fe/core/converters/annotations/DataFi
|
|
|
15
15
|
import type { BaseAction, ConverterAction } from "sap/fe/core/converters/controls/Common/Action";
|
|
16
16
|
import type { CompiledBindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
|
|
17
17
|
import { compileExpression, equal, getExpressionFromAnnotation, ifElse, not, pathInModel } from "sap/fe/core/helpers/BindingToolkit";
|
|
18
|
-
import
|
|
18
|
+
import { isSingleton } from "sap/fe/core/helpers/TypeGuards";
|
|
19
19
|
import { getTargetEntitySetPath, getTargetObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
20
20
|
import { createIdForAnnotation } from "../../../helpers/StableIdHelper";
|
|
21
21
|
import type ConverterContext from "../../ConverterContext";
|
|
@@ -122,9 +122,9 @@ function getFormElementsFromAnnotations(facetDefinition: ReferenceFacetTypes, co
|
|
|
122
122
|
field.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAnnotation" &&
|
|
123
123
|
field.Target.$target.$Type === "com.sap.vocabularies.UI.v1.ConnectedFieldsType"
|
|
124
124
|
) {
|
|
125
|
-
const connectedFields = Object.values(field.Target.$target.Data).filter((connectedField:
|
|
126
|
-
connectedField?.hasOwnProperty("Value")
|
|
127
|
-
);
|
|
125
|
+
const connectedFields = Object.values(field.Target.$target.Data).filter((connectedField: unknown) =>
|
|
126
|
+
(connectedField as DataFieldAbstractTypes)?.hasOwnProperty("Value")
|
|
127
|
+
) as DataFieldAbstractTypes[];
|
|
128
128
|
(formElement as AnnotationFormElement).connectedFields = connectedFields.map((connnectedFieldElement) => {
|
|
129
129
|
return { semanticObjectPath: getSemanticObjectPath(converterContext, connnectedFieldElement) };
|
|
130
130
|
});
|
|
@@ -201,19 +201,13 @@ export function getFormContainer(
|
|
|
201
201
|
const isVisible = compileExpression(not(equal(true, getExpressionFromAnnotation(facetDefinition.annotations?.UI?.Hidden))));
|
|
202
202
|
let sEntitySetPath!: string;
|
|
203
203
|
// resolvedTarget doesn't have a entitySet in case Containments and Paramterized services.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
resolvedTarget.converterContext.getEntitySet() !== converterContext.getEntitySet()
|
|
207
|
-
) {
|
|
204
|
+
const entitySet = resolvedTarget.converterContext.getEntitySet();
|
|
205
|
+
if (entitySet && entitySet !== converterContext.getEntitySet()) {
|
|
208
206
|
sEntitySetPath = getTargetEntitySetPath(resolvedTarget.converterContext.getDataModelObjectPath());
|
|
209
207
|
} else if (resolvedTarget.converterContext.getDataModelObjectPath().targetObject?.containsTarget === true) {
|
|
210
208
|
sEntitySetPath = getTargetObjectPath(resolvedTarget.converterContext.getDataModelObjectPath(), false);
|
|
211
|
-
} else if (
|
|
212
|
-
|
|
213
|
-
!sEntitySetPath &&
|
|
214
|
-
ModelHelper.isSingleton(resolvedTarget.converterContext.getEntitySet())
|
|
215
|
-
) {
|
|
216
|
-
sEntitySetPath = resolvedTarget.converterContext.getEntitySet()?.fullyQualifiedName as string;
|
|
209
|
+
} else if (entitySet && !sEntitySetPath && isSingleton(entitySet)) {
|
|
210
|
+
sEntitySetPath = entitySet.fullyQualifiedName;
|
|
217
211
|
}
|
|
218
212
|
const aFormElements = insertCustomElements(
|
|
219
213
|
getFormElementsFromAnnotations(facetDefinition, converterContext),
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/converters/helpers/SelectionVariantHelper", "sap/fe/core/formatters/TableFormatterTypes", "sap/fe/core/
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/converters/helpers/SelectionVariantHelper", "sap/fe/core/formatters/TableFormatterTypes", "sap/fe/core/helpers/TypeGuards", "../../helpers/Aggregation", "../../helpers/ID", "./Criticality"], function (IssueManager, SelectionVariantHelper, TableFormatterTypes, TypeGuards, Aggregation, ID, Criticality) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
9
|
var getMessageTypeFromCriticalityType = Criticality.getMessageTypeFromCriticalityType;
|
|
10
10
|
var getKPIID = ID.getKPIID;
|
|
11
11
|
var AggregationHelper = Aggregation.AggregationHelper;
|
|
12
|
-
var
|
|
12
|
+
var isPathAnnotationExpression = TypeGuards.isPathAnnotationExpression;
|
|
13
|
+
var isAnnotationOfType = TypeGuards.isAnnotationOfType;
|
|
13
14
|
var MessageType = TableFormatterTypes.MessageType;
|
|
14
15
|
var getFilterDefinitionsFromSelectionVariant = SelectionVariantHelper.getFilterDefinitionsFromSelectionVariant;
|
|
15
16
|
var IssueType = IssueManager.IssueType;
|
|
@@ -84,7 +85,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
|
|
|
84
85
|
if ((_targetValueProperty$ = targetValueProperty.annotations.Measures) !== null && _targetValueProperty$ !== void 0 && _targetValueProperty$.ISOCurrency) {
|
|
85
86
|
var _targetValueProperty$2;
|
|
86
87
|
const currency = (_targetValueProperty$2 = targetValueProperty.annotations.Measures) === null || _targetValueProperty$2 === void 0 ? void 0 : _targetValueProperty$2.ISOCurrency;
|
|
87
|
-
if (
|
|
88
|
+
if (isPathAnnotationExpression(currency)) {
|
|
88
89
|
kpiDef.datapoint.unit = {
|
|
89
90
|
value: currency.$target.name,
|
|
90
91
|
isCurrency: true,
|
|
@@ -100,7 +101,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
|
|
|
100
101
|
} else if ((_targetValueProperty$3 = targetValueProperty.annotations.Measures) !== null && _targetValueProperty$3 !== void 0 && _targetValueProperty$3.Unit) {
|
|
101
102
|
var _targetValueProperty$4;
|
|
102
103
|
const unit = (_targetValueProperty$4 = targetValueProperty.annotations.Measures) === null || _targetValueProperty$4 === void 0 ? void 0 : _targetValueProperty$4.Unit;
|
|
103
|
-
if (
|
|
104
|
+
if (isPathAnnotationExpression(unit)) {
|
|
104
105
|
kpiDef.datapoint.unit = {
|
|
105
106
|
value: unit.$target.name,
|
|
106
107
|
isCurrency: false,
|
|
@@ -210,7 +211,6 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
|
|
|
210
211
|
}
|
|
211
212
|
function getNavigationInfoFromProperty(property) {
|
|
212
213
|
const annotations = property.annotations["Common"] || {};
|
|
213
|
-
|
|
214
214
|
// Look for the semanticObject annotation (if any)
|
|
215
215
|
let semanticObjectAnnotation;
|
|
216
216
|
Object.keys(annotations).forEach(annotationKey => {
|
|
@@ -267,7 +267,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
|
|
|
267
267
|
selectionVariantAnnotation = targetKPI.SelectionVariant;
|
|
268
268
|
presentationVariantAnnotation = (_targetKPI$Detail = targetKPI.Detail) === null || _targetKPI$Detail === void 0 ? void 0 : _targetKPI$Detail.DefaultPresentationVariant;
|
|
269
269
|
chartAnnotation = (_presentationVariantA3 = presentationVariantAnnotation) === null || _presentationVariantA3 === void 0 ? void 0 : (_presentationVariantA4 = _presentationVariantA3.Visualizations) === null || _presentationVariantA4 === void 0 ? void 0 : (_presentationVariantA5 = _presentationVariantA4.find(viz => {
|
|
270
|
-
return viz.$target
|
|
270
|
+
return isAnnotationOfType(viz.$target, "com.sap.vocabularies.UI.v1.ChartDefinitionType");
|
|
271
271
|
})) === null || _presentationVariantA5 === void 0 ? void 0 : _presentationVariantA5.$target;
|
|
272
272
|
if ((_targetKPI$Detail2 = targetKPI.Detail) !== null && _targetKPI$Detail2 !== void 0 && _targetKPI$Detail2.SemanticObject) {
|
|
273
273
|
var _targetKPI$Detail$Act;
|
|
@@ -288,10 +288,10 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
|
|
|
288
288
|
selectionVariantAnnotation = targetSPV.SelectionVariant;
|
|
289
289
|
presentationVariantAnnotation = targetSPV.PresentationVariant;
|
|
290
290
|
datapointAnnotation = (_presentationVariantA6 = presentationVariantAnnotation) === null || _presentationVariantA6 === void 0 ? void 0 : (_presentationVariantA7 = _presentationVariantA6.Visualizations) === null || _presentationVariantA7 === void 0 ? void 0 : (_presentationVariantA8 = _presentationVariantA7.find(viz => {
|
|
291
|
-
return viz.$target
|
|
291
|
+
return isAnnotationOfType(viz.$target, "com.sap.vocabularies.UI.v1.DataPointType");
|
|
292
292
|
})) === null || _presentationVariantA8 === void 0 ? void 0 : _presentationVariantA8.$target;
|
|
293
293
|
chartAnnotation = (_presentationVariantA9 = presentationVariantAnnotation) === null || _presentationVariantA9 === void 0 ? void 0 : (_presentationVariantA10 = _presentationVariantA9.Visualizations) === null || _presentationVariantA10 === void 0 ? void 0 : (_presentationVariantA11 = _presentationVariantA10.find(viz => {
|
|
294
|
-
return viz.$target
|
|
294
|
+
return isAnnotationOfType(viz.$target, "com.sap.vocabularies.UI.v1.ChartDefinitionType");
|
|
295
295
|
})) === null || _presentationVariantA11 === void 0 ? void 0 : _presentationVariantA11.$target;
|
|
296
296
|
} else {
|
|
297
297
|
// Couldn't find a KPI or a SPV annotation with the qualifier from the manifest
|
|
@@ -371,4 +371,4 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
|
|
|
371
371
|
_exports.getKPIDefinitions = getKPIDefinitions;
|
|
372
372
|
return _exports;
|
|
373
373
|
}, false);
|
|
374
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZXZpYXRpb25JbmRpY2F0b3JGcm9tVHJlbmRUeXBlIiwiS1BJQ2hhcnRUeXBlRnJvbVVJIiwiY29udmVydEtQSUNoYXJ0IiwiY2hhcnRBbm5vdGF0aW9uIiwicHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24iLCJNZWFzdXJlcyIsInVuZGVmaW5lZCIsImNoYXJEaW1lbnNpb25zIiwiRGltZW5zaW9ucyIsIm1hcCIsInByb3BlcnR5UGF0aCIsImRpbUF0dHJpYnV0ZSIsIkRpbWVuc2lvbkF0dHJpYnV0ZXMiLCJmaW5kIiwiYXR0cmlidXRlIiwiRGltZW5zaW9uIiwidmFsdWUiLCJuYW1lIiwibGFiZWwiLCIkdGFyZ2V0IiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJMYWJlbCIsInRvU3RyaW5nIiwicm9sZSIsIlJvbGUiLCJyZXBsYWNlIiwiY2hhcnRNZWFzdXJlcyIsIm1lYXN1cmVBdHRyaWJ1dGUiLCJNZWFzdXJlQXR0cmlidXRlcyIsIk1lYXN1cmUiLCJjaGFydFR5cGUiLCJDaGFydFR5cGUiLCJkaW1lbnNpb25zIiwibWVhc3VyZXMiLCJzb3J0T3JkZXIiLCJTb3J0T3JkZXIiLCJQcm9wZXJ0eSIsImRlc2NlbmRpbmciLCJEZXNjZW5kaW5nIiwibWF4SXRlbXMiLCJNYXhJdGVtcyIsInZhbHVlT2YiLCJ1cGRhdGVDdXJyZW5jeSIsImRhdGFwb2ludEFubm90YXRpb24iLCJrcGlEZWYiLCJ0YXJnZXRWYWx1ZVByb3BlcnR5IiwiVmFsdWUiLCJJU09DdXJyZW5jeSIsImN1cnJlbmN5IiwiaXNQYXRoRXhwcmVzc2lvbiIsImRhdGFwb2ludCIsInVuaXQiLCJpc0N1cnJlbmN5IiwiaXNQYXRoIiwiVW5pdCIsInVwZGF0ZUNyaXRpY2FsaXR5IiwiYWdncmVnYXRpb25IZWxwZXIiLCJDcml0aWNhbGl0eSIsImNyaXRpY2FsaXR5UHJvcGVydHkiLCJpc1Byb3BlcnR5QWdncmVnYXRhYmxlIiwiY3JpdGljYWxpdHlQYXRoIiwicGF0aCIsImNyaXRpY2FsaXR5VmFsdWUiLCJNZXNzYWdlVHlwZSIsIk5vbmUiLCJnZXRNZXNzYWdlVHlwZUZyb21Dcml0aWNhbGl0eVR5cGUiLCJDcml0aWNhbGl0eUNhbGN1bGF0aW9uIiwiY3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGUiLCJJbXByb3ZlbWVudERpcmVjdGlvbiIsImNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzIiwicHVzaCIsIkRldmlhdGlvblJhbmdlTG93VmFsdWUiLCJUb2xlcmFuY2VSYW5nZUxvd1ZhbHVlIiwiQWNjZXB0YW5jZVJhbmdlTG93VmFsdWUiLCJBY2NlcHRhbmNlUmFuZ2VIaWdoVmFsdWUiLCJUb2xlcmFuY2VSYW5nZUhpZ2hWYWx1ZSIsIkRldmlhdGlvblJhbmdlSGlnaFZhbHVlIiwidXBkYXRlVHJlbmQiLCJUcmVuZCIsInRyZW5kUHJvcGVydHkiLCJ0cmVuZFBhdGgiLCJ0cmVuZFZhbHVlIiwiVHJlbmRDYWxjdWxhdGlvbiIsInRyZW5kQ2FsY3VsYXRpb25Jc1JlbGF0aXZlIiwiSXNSZWxhdGl2ZURpZmZlcmVuY2UiLCJSZWZlcmVuY2VWYWx1ZSIsInJlZmVyZW5jZVByb3BlcnR5IiwidHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGgiLCJ0cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlVmFsdWUiLCJ0cmVuZENhbGN1bGF0aW9uVHJlc2hvbGRzIiwiU3Ryb25nRG93bkRpZmZlcmVuY2UiLCJEb3duRGlmZmVyZW5jZSIsIlVwRGlmZmVyZW5jZSIsIlN0cm9uZ1VwRGlmZmVyZW5jZSIsInVwZGF0ZVRhcmdldCIsIlRhcmdldFZhbHVlIiwidGFyZ2V0UHJvcGVydHkiLCJ0YXJnZXRQYXRoIiwidGFyZ2V0VmFsdWUiLCJnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eSIsInByb3BlcnR5Iiwic2VtYW50aWNPYmplY3RBbm5vdGF0aW9uIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJhbm5vdGF0aW9uS2V5IiwiYW5ub3RhdGlvbiIsInRlcm0iLCJxdWFsaWZpZXIiLCJyZXN1bHQiLCJzZW1hbnRpY09iamVjdCIsInVuYXZhaWxhYmxlQWN0aW9ucyIsImtleSIsImNyZWF0ZUtQSURlZmluaXRpb24iLCJrcGlOYW1lIiwia3BpQ29uZmlnIiwiY29udmVydGVyQ29udGV4dCIsImtwaUNvbnZlcnRlckNvbnRleHQiLCJnZXRDb252ZXJ0ZXJDb250ZXh0Rm9yIiwiZW50aXR5U2V0IiwiQWdncmVnYXRpb25IZWxwZXIiLCJnZXRFbnRpdHlUeXBlIiwiaXNBbmFseXRpY3NTdXBwb3J0ZWQiLCJnZXREaWFnbm9zdGljcyIsImFkZElzc3VlIiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJJc3N1ZVNldmVyaXR5IiwiTWVkaXVtIiwiSXNzdWVUeXBlIiwiS1BJX0lTU1VFUyIsIk5PX0FOQUxZVElDUyIsInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwibmF2aWdhdGlvbkluZm8iLCJhS1BJQW5ub3RhdGlvbnMiLCJnZXRBbm5vdGF0aW9uc0J5VGVybSIsInRhcmdldEtQSSIsImtwaSIsIkRhdGFQb2ludCIsIlNlbGVjdGlvblZhcmlhbnQiLCJEZXRhaWwiLCJEZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsIlZpc3VhbGl6YXRpb25zIiwidml6IiwiJFR5cGUiLCJTZW1hbnRpY09iamVjdCIsImFjdGlvbiIsIkFjdGlvbiIsImFTUFZBbm5vdGF0aW9ucyIsInRhcmdldFNQViIsInNwdiIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJLUElfTk9UX0ZPVU5EIiwiS1BJX0RFVEFJTF9OT1RfRk9VTkQiLCJkYXRhcG9pbnRQcm9wZXJ0eSIsIk1BSU5fUFJPUEVSVFlfTk9UX0FHR1JFR0FUQUJMRSIsImNoYXJ0RGVmIiwiaWQiLCJnZXRLUElJRCIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInRpdGxlIiwiVGl0bGUiLCJkZXNjcmlwdGlvbiIsIkRlc2NyaXB0aW9uIiwic2VsZWN0aW9uVmFyaWFudEZpbHRlckRlZmluaXRpb25zIiwiZ2V0RmlsdGVyRGVmaW5pdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudCIsImNoYXJ0IiwiZGV0YWlsTmF2aWdhdGlvbiIsIm91dGJvdW5kTmF2aWdhdGlvbiIsIm5hdmlnYXRpb24iLCJnZXRLUElEZWZpbml0aW9ucyIsImtwaUNvbmZpZ3MiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJnZXRLUElDb25maWd1cmF0aW9uIiwia3BpRGVmcyIsIm9EZWYiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIktQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFubm90YXRpb25UZXJtLCBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24sIFByb3BlcnR5LCBQcm9wZXJ0eVBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgU2VtYW50aWNPYmplY3QgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHsgQ29tbW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHtcblx0Q2hhcnQsXG5cdENyaXRpY2FsaXR5VHlwZSxcblx0RGF0YVBvaW50LFxuXHREYXRhUG9pbnRUeXBlLFxuXHRJbXByb3ZlbWVudERpcmVjdGlvblR5cGUsXG5cdEtQSSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQsXG5cdFNlbGVjdGlvblZhcmlhbnRUeXBlLFxuXHRUcmVuZFR5cGVcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVGVybXMsIFVJQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5LCBJc3N1ZVNldmVyaXR5LCBJc3N1ZVR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lzc3VlTWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJEZWZpbml0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9TZWxlY3Rpb25WYXJpYW50SGVscGVyXCI7XG5pbXBvcnQgeyBnZXRGaWx0ZXJEZWZpbml0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9TZWxlY3Rpb25WYXJpYW50SGVscGVyXCI7XG5pbXBvcnQgeyBNZXNzYWdlVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1RhYmxlRm9ybWF0dGVyVHlwZXNcIjtcbmltcG9ydCB7IGlzUGF0aEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25IZWxwZXIgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IHsgZ2V0S1BJSUQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9JRFwiO1xuaW1wb3J0IHR5cGUgeyBLUElDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGdldE1lc3NhZ2VUeXBlRnJvbUNyaXRpY2FsaXR5VHlwZSB9IGZyb20gXCIuL0NyaXRpY2FsaXR5XCI7XG5cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25JbmZvID0ge1xuXHRzZW1hbnRpY09iamVjdD86IHN0cmluZztcblx0YWN0aW9uPzogc3RyaW5nO1xuXHR1bmF2YWlsYWJsZUFjdGlvbnM/OiBzdHJpbmdbXTtcblx0b3V0Ym91bmROYXZpZ2F0aW9uPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgS1BJQ2hhcnREZWZpbml0aW9uID0ge1xuXHRjaGFydFR5cGU6IHN0cmluZztcblx0ZGltZW5zaW9uczogeyBuYW1lOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHJvbGU/OiBzdHJpbmcgfVtdO1xuXHRtZWFzdXJlczogeyBuYW1lOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHJvbGU/OiBzdHJpbmcgfVtdO1xuXHRzb3J0T3JkZXI/OiB7IG5hbWU6IHN0cmluZzsgZGVzY2VuZGluZzogYm9vbGVhbiB9W107XG5cdG1heEl0ZW1zPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgS1BJRGVmaW5pdGlvbiA9IHtcblx0aWQ6IHN0cmluZztcblx0ZW50aXR5U2V0OiBzdHJpbmc7XG5cdGRhdGFwb2ludDoge1xuXHRcdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdFx0cHJvcGVydHlQYXRoOiBzdHJpbmc7XG5cdFx0dW5pdD86IHtcblx0XHRcdHZhbHVlOiBzdHJpbmc7XG5cdFx0XHRpc1BhdGg6IGJvb2xlYW47XG5cdFx0XHRpc0N1cnJlbmN5OiBib29sZWFuO1xuXHRcdH07XG5cdFx0Y3JpdGljYWxpdHlQYXRoPzogc3RyaW5nO1xuXHRcdGNyaXRpY2FsaXR5VmFsdWU/OiBNZXNzYWdlVHlwZTtcblx0XHRjcml0aWNhbGl0eUNhbGN1bGF0aW9uTW9kZT86IEltcHJvdmVtZW50RGlyZWN0aW9uVHlwZTtcblx0XHRjcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcz86IChudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKVtdO1xuXHRcdHRpdGxlPzogc3RyaW5nO1xuXHRcdGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXHRcdHRyZW5kUGF0aD86IHN0cmluZztcblx0XHR0cmVuZFZhbHVlPzogc3RyaW5nO1xuXHRcdHRyZW5kQ2FsY3VsYXRpb25SZWZlcmVuY2VWYWx1ZT86IG51bWJlcjtcblx0XHR0cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlUGF0aD86IHN0cmluZztcblx0XHR0cmVuZENhbGN1bGF0aW9uVHJlc2hvbGRzPzogKG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwpW107XG5cdFx0dHJlbmRDYWxjdWxhdGlvbklzUmVsYXRpdmU/OiBib29sZWFuO1xuXHRcdHRhcmdldFZhbHVlPzogbnVtYmVyO1xuXHRcdHRhcmdldFBhdGg/OiBzdHJpbmc7XG5cdH07XG5cdGNoYXJ0OiBLUElDaGFydERlZmluaXRpb247XG5cdHNlbGVjdGlvblZhcmlhbnRGaWx0ZXJEZWZpbml0aW9ucz86IEZpbHRlckRlZmluaXRpb25bXTtcblx0bmF2aWdhdGlvbj86IE5hdmlnYXRpb25JbmZvO1xufTtcblxuY29uc3QgRGV2aWF0aW9uSW5kaWNhdG9yRnJvbVRyZW5kVHlwZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcblx0XCJVSS5UcmVuZFR5cGUvU3Ryb25nVXBcIjogXCJVcFwiLFxuXHRcIlVJLlRyZW5kVHlwZS9VcFwiOiBcIlVwXCIsXG5cdFwiVUkuVHJlbmRUeXBlL1N0cm9uZ0Rvd25cIjogXCJEb3duXCIsXG5cdFwiVUkuVHJlbmRUeXBlL0Rvd25cIjogXCJEb3duXCIsXG5cdFwiVUkuVHJlbmRUeXBlL1NpZGV3YXlzXCI6IFwiTm9uZVwiXG59O1xuXG5jb25zdCBLUElDaGFydFR5cGVGcm9tVUk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG5cdFwiVUkuQ2hhcnRUeXBlL0NvbHVtblN0YWNrZWRcIjogXCJTdGFja2VkQ29sdW1uXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0JhclN0YWNrZWRcIjogXCJTdGFja2VkQmFyXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0RvbnV0XCI6IFwiRG9udXRcIixcblx0XCJVSS5DaGFydFR5cGUvTGluZVwiOiBcIkxpbmVcIixcblx0XCJVSS5DaGFydFR5cGUvQnViYmxlXCI6IFwiYnViYmxlXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0NvbHVtblwiOiBcImNvbHVtblwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9CYXJcIjogXCJiYXJcIixcblx0XCJVSS5DaGFydFR5cGUvVmVydGljYWxCdWxsZXRcIjogXCJ2ZXJ0aWNhbF9idWxsZXRcIixcblx0XCJVSS5DaGFydFR5cGUvQ29tYmluYXRpb25cIjogXCJjb21iaW5hdGlvblwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9TY2F0dGVyXCI6IFwic2NhdHRlclwiXG59O1xuXG5mdW5jdGlvbiBjb252ZXJ0S1BJQ2hhcnQoY2hhcnRBbm5vdGF0aW9uOiBDaGFydCwgcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb246IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlKTogS1BJQ2hhcnREZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcblx0aWYgKGNoYXJ0QW5ub3RhdGlvbi5NZWFzdXJlcyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly8gV2UgbmVlZCBhdCBsZWFzdCAxIG1lYXN1cmUgKGJ1dCBubyBkaW1lbnNpb24gaXMgYWxsb3dlZCwgZS5nLiBmb3IgYnViYmxlIGNoYXJ0KVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRjb25zdCBjaGFyRGltZW5zaW9ucyA9IGNoYXJ0QW5ub3RhdGlvbi5EaW1lbnNpb25zXG5cdFx0PyBjaGFydEFubm90YXRpb24uRGltZW5zaW9ucy5tYXAoKHByb3BlcnR5UGF0aCkgPT4ge1xuXHRcdFx0XHRjb25zdCBkaW1BdHRyaWJ1dGUgPSBjaGFydEFubm90YXRpb24uRGltZW5zaW9uQXR0cmlidXRlcz8uZmluZCgoYXR0cmlidXRlKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIGF0dHJpYnV0ZS5EaW1lbnNpb24/LnZhbHVlID09PSBwcm9wZXJ0eVBhdGgudmFsdWU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdG5hbWU6IHByb3BlcnR5UGF0aC52YWx1ZSxcblx0XHRcdFx0XHRsYWJlbDogcHJvcGVydHlQYXRoLiR0YXJnZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5MYWJlbD8udG9TdHJpbmcoKSB8fCBwcm9wZXJ0eVBhdGgudmFsdWUsXG5cdFx0XHRcdFx0cm9sZTogZGltQXR0cmlidXRlPy5Sb2xlPy5yZXBsYWNlKFwiVUkuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9cIiwgXCJcIilcblx0XHRcdFx0fTtcblx0XHQgIH0pXG5cdFx0OiBbXTtcblxuXHRjb25zdCBjaGFydE1lYXN1cmVzID0gY2hhcnRBbm5vdGF0aW9uLk1lYXN1cmVzLm1hcCgocHJvcGVydHlQYXRoKSA9PiB7XG5cdFx0Y29uc3QgbWVhc3VyZUF0dHJpYnV0ZSA9IGNoYXJ0QW5ub3RhdGlvbi5NZWFzdXJlQXR0cmlidXRlcz8uZmluZCgoYXR0cmlidXRlKSA9PiB7XG5cdFx0XHRyZXR1cm4gYXR0cmlidXRlLk1lYXN1cmU/LnZhbHVlID09PSBwcm9wZXJ0eVBhdGgudmFsdWU7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdG5hbWU6IHByb3BlcnR5UGF0aC52YWx1ZSxcblx0XHRcdGxhYmVsOiBwcm9wZXJ0eVBhdGguJHRhcmdldC5hbm5vdGF0aW9ucy5Db21tb24/LkxhYmVsPy50b1N0cmluZygpIHx8IHByb3BlcnR5UGF0aC52YWx1ZSxcblx0XHRcdHJvbGU6IG1lYXN1cmVBdHRyaWJ1dGU/LlJvbGU/LnJlcGxhY2UoXCJVSS5DaGFydE1lYXN1cmVSb2xlVHlwZS9cIiwgXCJcIilcblx0XHR9O1xuXHR9KTtcblxuXHRyZXR1cm4ge1xuXHRcdGNoYXJ0VHlwZTogS1BJQ2hhcnRUeXBlRnJvbVVJW2NoYXJ0QW5ub3RhdGlvbi5DaGFydFR5cGVdIHx8IFwiTGluZVwiLFxuXHRcdGRpbWVuc2lvbnM6IGNoYXJEaW1lbnNpb25zLFxuXHRcdG1lYXN1cmVzOiBjaGFydE1lYXN1cmVzLFxuXHRcdHNvcnRPcmRlcjogcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/LlNvcnRPcmRlcj8ubWFwKChzb3J0T3JkZXIpID0+IHtcblx0XHRcdHJldHVybiB7IG5hbWU6IHNvcnRPcmRlci5Qcm9wZXJ0eT8udmFsdWUgfHwgXCJcIiwgZGVzY2VuZGluZzogISFzb3J0T3JkZXIuRGVzY2VuZGluZyB9O1xuXHRcdH0pLFxuXHRcdG1heEl0ZW1zOiBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbj8uTWF4SXRlbXM/LnZhbHVlT2YoKSBhcyBudW1iZXJcblx0fTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ3VycmVuY3koZGF0YXBvaW50QW5ub3RhdGlvbjogRGF0YVBvaW50VHlwZSwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGNvbnN0IHRhcmdldFZhbHVlUHJvcGVydHkgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlZhbHVlLiR0YXJnZXQgYXMgUHJvcGVydHk7XG5cdGlmICh0YXJnZXRWYWx1ZVByb3BlcnR5LmFubm90YXRpb25zLk1lYXN1cmVzPy5JU09DdXJyZW5jeSkge1xuXHRcdGNvbnN0IGN1cnJlbmN5ID0gdGFyZ2V0VmFsdWVQcm9wZXJ0eS5hbm5vdGF0aW9ucy5NZWFzdXJlcz8uSVNPQ3VycmVuY3k7XG5cdFx0aWYgKGlzUGF0aEV4cHJlc3Npb24oY3VycmVuY3kpKSB7XG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnVuaXQgPSB7XG5cdFx0XHRcdHZhbHVlOiAoY3VycmVuY3kuJHRhcmdldCBhcyB1bmtub3duIGFzIFByb3BlcnR5KS5uYW1lLFxuXHRcdFx0XHRpc0N1cnJlbmN5OiB0cnVlLFxuXHRcdFx0XHRpc1BhdGg6IHRydWVcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudW5pdCA9IHtcblx0XHRcdFx0dmFsdWU6IGN1cnJlbmN5LnRvU3RyaW5nKCksXG5cdFx0XHRcdGlzQ3VycmVuY3k6IHRydWUsXG5cdFx0XHRcdGlzUGF0aDogZmFsc2Vcblx0XHRcdH07XG5cdFx0fVxuXHR9IGVsc2UgaWYgKHRhcmdldFZhbHVlUHJvcGVydHkuYW5ub3RhdGlvbnMuTWVhc3VyZXM/LlVuaXQpIHtcblx0XHRjb25zdCB1bml0ID0gdGFyZ2V0VmFsdWVQcm9wZXJ0eS5hbm5vdGF0aW9ucy5NZWFzdXJlcz8uVW5pdDtcblx0XHRpZiAoaXNQYXRoRXhwcmVzc2lvbih1bml0KSkge1xuXHRcdFx0a3BpRGVmLmRhdGFwb2ludC51bml0ID0ge1xuXHRcdFx0XHR2YWx1ZTogKHVuaXQuJHRhcmdldCBhcyB1bmtub3duIGFzIFByb3BlcnR5KS5uYW1lLFxuXHRcdFx0XHRpc0N1cnJlbmN5OiBmYWxzZSxcblx0XHRcdFx0aXNQYXRoOiB0cnVlXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnVuaXQgPSB7XG5cdFx0XHRcdHZhbHVlOiB1bml0LnRvU3RyaW5nKCksXG5cdFx0XHRcdGlzQ3VycmVuY3k6IGZhbHNlLFxuXHRcdFx0XHRpc1BhdGg6IGZhbHNlXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiB1cGRhdGVDcml0aWNhbGl0eShkYXRhcG9pbnRBbm5vdGF0aW9uOiBEYXRhUG9pbnRUeXBlLCBhZ2dyZWdhdGlvbkhlbHBlcjogQWdncmVnYXRpb25IZWxwZXIsIGtwaURlZjogS1BJRGVmaW5pdGlvbik6IHZvaWQge1xuXHRpZiAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSkge1xuXHRcdGlmICh0eXBlb2YgZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSA9PT0gXCJvYmplY3RcIikge1xuXHRcdFx0Ly8gQ3JpdGljYWxpdHkgaXMgYSBwYXRoIC0tPiBjaGVjayBpZiB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBpcyBhZ2dyZWdhdGFibGVcblx0XHRcdGNvbnN0IGNyaXRpY2FsaXR5UHJvcGVydHkgPSAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSBhcyBhbnkgYXMgUHJvcGVydHlQYXRoKS4kdGFyZ2V0O1xuXHRcdFx0aWYgKGFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUoY3JpdGljYWxpdHlQcm9wZXJ0eSkpIHtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eVBhdGggPSAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSBhcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248Q3JpdGljYWxpdHlUeXBlPikucGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFRoZSBwcm9wZXJ0eSBpc24ndCBhZ2dyZWdhdGFibGUgLS0+IHdlIGlnbm9yZSBpdFxuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5Ob25lO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBDcml0aWNhbGl0eSBpcyBhbiBlbnVtIFZhbHVlIC0tPiBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGljIHZhbHVlXG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBnZXRNZXNzYWdlVHlwZUZyb21Dcml0aWNhbGl0eVR5cGUoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbikge1xuXHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGUgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uSW1wcm92ZW1lbnREaXJlY3Rpb247XG5cdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcyA9IFtdO1xuXHRcdHN3aXRjaCAoa3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uTW9kZSkge1xuXHRcdFx0Y2FzZSBcIlVJLkltcHJvdmVtZW50RGlyZWN0aW9uVHlwZS9UYXJnZXRcIjpcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5EZXZpYXRpb25SYW5nZUxvd1ZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUxvd1ZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5BY2NlcHRhbmNlUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlSGlnaFZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUhpZ2hWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VIaWdoVmFsdWUpO1xuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Y2FzZSBcIlVJLkltcHJvdmVtZW50RGlyZWN0aW9uVHlwZS9NaW5pbWl6ZVwiOlxuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkFjY2VwdGFuY2VSYW5nZUhpZ2hWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uVG9sZXJhbmNlUmFuZ2VIaWdoVmFsdWUpO1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkRldmlhdGlvblJhbmdlSGlnaFZhbHVlKTtcblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgXCJVSS5JbXByb3ZlbWVudERpcmVjdGlvblR5cGUvTWF4aW1pemVcIjpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uVG9sZXJhbmNlUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlTG93VmFsdWUpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5Ob25lO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVRyZW5kKGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUsIGFnZ3JlZ2F0aW9uSGVscGVyOiBBZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kKSB7XG5cdFx0aWYgKHR5cGVvZiBkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHQvLyBUcmVuZCBpcyBhIHBhdGggLS0+IGNoZWNrIGlmIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGlzIGFnZ3JlZ2F0YWJsZVxuXHRcdFx0Y29uc3QgdHJlbmRQcm9wZXJ0eSA9IChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kIGFzIGFueSBhcyBQcm9wZXJ0eVBhdGgpLiR0YXJnZXQ7XG5cdFx0XHRpZiAoYWdncmVnYXRpb25IZWxwZXIuaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSh0cmVuZFByb3BlcnR5KSkge1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kUGF0aCA9IChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kIGFzIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxUcmVuZFR5cGU+KS5wYXRoO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gVGhlIHByb3BlcnR5IGlzbid0IGFnZ3JlZ2F0YWJsZSAtLT4gd2UgaWdub3JlIGl0XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRWYWx1ZSA9IFwiTm9uZVwiO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUcmVuZCBpcyBhbiBlbnVtIFZhbHVlIC0tPiBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGljIHZhbHVlXG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kVmFsdWUgPSBEZXZpYXRpb25JbmRpY2F0b3JGcm9tVHJlbmRUeXBlW2RhdGFwb2ludEFubm90YXRpb24uVHJlbmRdIHx8IFwiTm9uZVwiO1xuXHRcdH1cblx0fSBlbHNlIGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24pIHtcblx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kQ2FsY3VsYXRpb25Jc1JlbGF0aXZlID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLklzUmVsYXRpdmVEaWZmZXJlbmNlID8gdHJ1ZSA6IGZhbHNlO1xuXHRcdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uUmVmZXJlbmNlVmFsdWUuJHRhcmdldCkge1xuXHRcdFx0Ly8gUmVmZXJlbmNlIHZhbHVlIGlzIGEgcGF0aCAtLT4gY2hlY2sgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlXG5cdFx0XHRjb25zdCByZWZlcmVuY2VQcm9wZXJ0eSA9IGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5SZWZlcmVuY2VWYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRcdFx0aWYgKGFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUocmVmZXJlbmNlUHJvcGVydHkpKSB7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGggPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uUmVmZXJlbmNlVmFsdWUucGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFRoZSBwcm9wZXJ0eSBpc24ndCBhZ2dyZWdhdGFibGUgLS0+IHdlIGlnbm9yZSBpdCBhbmQgc3dpdGNoIGJhY2sgdG8gdHJlbmQgJ05vbmUnXG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRWYWx1ZSA9IFwiTm9uZVwiO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBSZWZlcmVuY2UgdmFsdWUgaXMgYSBzdGF0aWMgdmFsdWVcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVZhbHVlID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlJlZmVyZW5jZVZhbHVlO1xuXHRcdH1cblx0XHRpZiAoa3BpRGVmLmRhdGFwb2ludC50cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlUGF0aCAhPT0gdW5kZWZpbmVkIHx8IGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblRyZXNob2xkcyA9IFtcblx0XHRcdFx0ZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlN0cm9uZ0Rvd25EaWZmZXJlbmNlLnZhbHVlT2YoKSBhcyBudW1iZXIsXG5cdFx0XHRcdGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5Eb3duRGlmZmVyZW5jZS52YWx1ZU9mKCkgYXMgbnVtYmVyLFxuXHRcdFx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uVXBEaWZmZXJlbmNlLnZhbHVlT2YoKSBhcyBudW1iZXIsXG5cdFx0XHRcdGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5TdHJvbmdVcERpZmZlcmVuY2UudmFsdWVPZigpIGFzIG51bWJlclxuXHRcdFx0XTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0a3BpRGVmLmRhdGFwb2ludC50cmVuZFZhbHVlID0gXCJOb25lXCI7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlVGFyZ2V0KGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUsIGFnZ3JlZ2F0aW9uSGVscGVyOiBBZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlKSB7XG5cdFx0aWYgKGRhdGFwb2ludEFubm90YXRpb24uVGFyZ2V0VmFsdWUuJHRhcmdldCkge1xuXHRcdFx0Ly8gVGFyZ2V0IHZhbHVlIGlzIGEgcGF0aCAtLT4gY2hlY2sgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlIChvdGhlcndpc2UgaWdub3JlKVxuXHRcdFx0Y29uc3QgdGFyZ2V0UHJvcGVydHkgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlLiR0YXJnZXQgYXMgUHJvcGVydHk7XG5cdFx0XHRpZiAoYWdncmVnYXRpb25IZWxwZXIuaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSh0YXJnZXRQcm9wZXJ0eSkpIHtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC50YXJnZXRQYXRoID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UYXJnZXRWYWx1ZS5wYXRoO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUYXJnZXQgdmFsdWUgaXMgYSBzdGF0aWMgdmFsdWVcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudGFyZ2V0VmFsdWUgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eShwcm9wZXJ0eTogUHJvcGVydHkpOiBOYXZpZ2F0aW9uSW5mbyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFubm90YXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBBbm5vdGF0aW9uVGVybTxhbnk+PiA9IHByb3BlcnR5LmFubm90YXRpb25zW1wiQ29tbW9uXCJdIHx8IHt9O1xuXG5cdC8vIExvb2sgZm9yIHRoZSBzZW1hbnRpY09iamVjdCBhbm5vdGF0aW9uIChpZiBhbnkpXG5cdGxldCBzZW1hbnRpY09iamVjdEFubm90YXRpb246IFNlbWFudGljT2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRPYmplY3Qua2V5cyhhbm5vdGF0aW9ucykuZm9yRWFjaCgoYW5ub3RhdGlvbktleSkgPT4ge1xuXHRcdGNvbnN0IGFubm90YXRpb24gPSBhbm5vdGF0aW9uc1thbm5vdGF0aW9uS2V5XTtcblx0XHRpZiAoYW5ub3RhdGlvbi50ZXJtID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuU2VtYW50aWNPYmplY3QpIHtcblx0XHRcdGlmICghYW5ub3RhdGlvbi5xdWFsaWZpZXIgfHwgIXNlbWFudGljT2JqZWN0QW5ub3RhdGlvbikge1xuXHRcdFx0XHQvLyBXZSBhbHdheXMgdGFrZSB0aGUgYW5ub3RhdGlvbiB3aXRob3V0IHF1YWxpZmllciBpZiB0aGVyZSdzIG9uZSwgb3RoZXJ3aXNlIHdlIHRha2UgdGhlIGZpcnN0IG9uZVxuXHRcdFx0XHRzZW1hbnRpY09iamVjdEFubm90YXRpb24gPSBhbm5vdGF0aW9uO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG5cblx0aWYgKHNlbWFudGljT2JqZWN0QW5ub3RhdGlvbikge1xuXHRcdGNvbnN0IHJlc3VsdCA9IHtcblx0XHRcdHNlbWFudGljT2JqZWN0OiBzZW1hbnRpY09iamVjdEFubm90YXRpb24udG9TdHJpbmcoKSxcblx0XHRcdHVuYXZhaWxhYmxlQWN0aW9uczogW11cblx0XHR9O1xuXG5cdFx0Ly8gTG9vayBmb3IgdGhlIHVuYXZhaWxhYmxlIGFjdGlvbnMgKGlmIGFueSlcblx0XHRjb25zdCBhbm5vdGF0aW9uS2V5ID0gT2JqZWN0LmtleXMoYW5ub3RhdGlvbnMpLmZpbmQoKGtleSkgPT4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0YW5ub3RhdGlvbnNba2V5XS50ZXJtID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuU2VtYW50aWNPYmplY3RVbmF2YWlsYWJsZUFjdGlvbnMgJiZcblx0XHRcdFx0YW5ub3RhdGlvbnNba2V5XS5xdWFsaWZpZXIgPT09IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvbj8ucXVhbGlmaWVyXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHRcdGlmIChhbm5vdGF0aW9uS2V5KSB7XG5cdFx0XHRyZXN1bHQudW5hdmFpbGFibGVBY3Rpb25zID0gYW5ub3RhdGlvbnNbYW5ub3RhdGlvbktleV07XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUtQSURlZmluaXRpb24oa3BpTmFtZTogc3RyaW5nLCBrcGlDb25maWc6IEtQSUNvbmZpZ3VyYXRpb24sIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBLUElEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcblx0Y29uc3Qga3BpQ29udmVydGVyQ29udGV4dCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihgLyR7a3BpQ29uZmlnLmVudGl0eVNldH1gKTtcblx0Y29uc3QgYWdncmVnYXRpb25IZWxwZXIgPSBuZXcgQWdncmVnYXRpb25IZWxwZXIoa3BpQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGtwaUNvbnZlcnRlckNvbnRleHQpO1xuXG5cdGlmICghYWdncmVnYXRpb25IZWxwZXIuaXNBbmFseXRpY3NTdXBwb3J0ZWQoKSkge1xuXHRcdC8vIFRoZSBlbnRpdHkgZG9lc24ndCBzdXBwb3J0IGFuYWx5dGljYWwgcXVlcmllc1xuXHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdC5nZXREaWFnbm9zdGljcygpXG5cdFx0XHQuYWRkSXNzdWUoSXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLCBJc3N1ZVNldmVyaXR5Lk1lZGl1bSwgSXNzdWVUeXBlLktQSV9JU1NVRVMuTk9fQU5BTFlUSUNTICsga3BpQ29uZmlnLmVudGl0eVNldCk7XG5cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0bGV0IHNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBTZWxlY3Rpb25WYXJpYW50VHlwZSB8IHVuZGVmaW5lZDtcblx0bGV0IGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUgfCB1bmRlZmluZWQ7XG5cdGxldCBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGUgfCB1bmRlZmluZWQ7XG5cdGxldCBjaGFydEFubm90YXRpb246IENoYXJ0IHwgdW5kZWZpbmVkO1xuXHRsZXQgbmF2aWdhdGlvbkluZm86IE5hdmlnYXRpb25JbmZvIHwgdW5kZWZpbmVkO1xuXG5cdC8vIFNlYXJjaCBmb3IgYSBLUEkgd2l0aCB0aGUgcXVhbGlmaWVyIGZybW8gdGhlIG1hbmlmZXN0XG5cdGNvbnN0IGFLUElBbm5vdGF0aW9ucyA9IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXCJVSVwiLCBVSUFubm90YXRpb25UZXJtcy5LUEkpIGFzIEtQSVtdO1xuXHRjb25zdCB0YXJnZXRLUEkgPSBhS1BJQW5ub3RhdGlvbnMuZmluZCgoa3BpKSA9PiB7XG5cdFx0cmV0dXJuIGtwaS5xdWFsaWZpZXIgPT09IGtwaUNvbmZpZy5xdWFsaWZpZXI7XG5cdH0pO1xuXHRpZiAodGFyZ2V0S1BJKSB7XG5cdFx0ZGF0YXBvaW50QW5ub3RhdGlvbiA9IHRhcmdldEtQSS5EYXRhUG9pbnQ7XG5cdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gPSB0YXJnZXRLUEkuU2VsZWN0aW9uVmFyaWFudDtcblx0XHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiA9IHRhcmdldEtQSS5EZXRhaWw/LkRlZmF1bHRQcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdGNoYXJ0QW5ub3RhdGlvbiA9IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uPy5WaXN1YWxpemF0aW9ucz8uZmluZCgodml6OiBhbnkpID0+IHtcblx0XHRcdHJldHVybiB2aXouJHRhcmdldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ2hhcnREZWZpbml0aW9uVHlwZTtcblx0XHR9KT8uJHRhcmdldCBhcyBDaGFydDtcblxuXHRcdGlmICh0YXJnZXRLUEkuRGV0YWlsPy5TZW1hbnRpY09iamVjdCkge1xuXHRcdFx0bmF2aWdhdGlvbkluZm8gPSB7XG5cdFx0XHRcdHNlbWFudGljT2JqZWN0OiB0YXJnZXRLUEkuRGV0YWlsLlNlbWFudGljT2JqZWN0LnRvU3RyaW5nKCksXG5cdFx0XHRcdGFjdGlvbjogdGFyZ2V0S1BJLkRldGFpbC5BY3Rpb24/LnRvU3RyaW5nKCksXG5cdFx0XHRcdHVuYXZhaWxhYmxlQWN0aW9uczogW11cblx0XHRcdH07XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdC8vIEZhbGxiYWNrOiB0cnkgdG8gZmluZCBhIFNQViB3aXRoIHRoZSBzYW1lIHF1YWxpZmllclxuXHRcdGNvbnN0IGFTUFZBbm5vdGF0aW9ucyA9IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXG5cdFx0XHRcIlVJXCIsXG5cdFx0XHRVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50XG5cdFx0KSBhcyBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50W107XG5cdFx0Y29uc3QgdGFyZ2V0U1BWID0gYVNQVkFubm90YXRpb25zLmZpbmQoKHNwdikgPT4ge1xuXHRcdFx0cmV0dXJuIHNwdi5xdWFsaWZpZXIgPT09IGtwaUNvbmZpZy5xdWFsaWZpZXI7XG5cdFx0fSk7XG5cdFx0aWYgKHRhcmdldFNQVikge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gPSB0YXJnZXRTUFYuU2VsZWN0aW9uVmFyaWFudDtcblx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gdGFyZ2V0U1BWLlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/LlZpc3VhbGl6YXRpb25zPy5maW5kKCh2aXo6IGFueSkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gdml6LiR0YXJnZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFQb2ludFR5cGU7XG5cdFx0XHR9KT8uJHRhcmdldCBhcyBEYXRhUG9pbnQ7XG5cdFx0XHRjaGFydEFubm90YXRpb24gPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbj8uVmlzdWFsaXphdGlvbnM/LmZpbmQoKHZpejogYW55KSA9PiB7XG5cdFx0XHRcdHJldHVybiB2aXouJHRhcmdldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ2hhcnREZWZpbml0aW9uVHlwZTtcblx0XHRcdH0pPy4kdGFyZ2V0IGFzIENoYXJ0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBDb3VsZG4ndCBmaW5kIGEgS1BJIG9yIGEgU1BWIGFubm90YXRpb24gd2l0aCB0aGUgcXVhbGlmaWVyIGZyb20gdGhlIG1hbmlmZXN0XG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdC5nZXREaWFnbm9zdGljcygpXG5cdFx0XHRcdC5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuS1BJX0lTU1VFUy5LUElfTk9UX0ZPVU5EICsga3BpQ29uZmlnLnF1YWxpZmllcik7XG5cblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCFwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiB8fCAhZGF0YXBvaW50QW5ub3RhdGlvbiB8fCAhY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0Ly8gQ291bGRuJ3QgZmluZCBhIGNoYXJ0IG9yIGRhdGFwb2ludCBkZWZpbml0aW9uXG5cdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdC5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuS1BJX0lTU1VFUy5LUElfREVUQUlMX05PVF9GT1VORCArIGtwaUNvbmZpZy5xdWFsaWZpZXIpO1xuXG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGNvbnN0IGRhdGFwb2ludFByb3BlcnR5ID0gZGF0YXBvaW50QW5ub3RhdGlvbi5WYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRpZiAoIWFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUoZGF0YXBvaW50UHJvcGVydHkpKSB7XG5cdFx0Ly8gVGhlIG1haW4gcHJvcGVydHkgb2YgdGhlIEtQSSBpcyBub3QgYWdncmVnYXRhYmxlIC0tPiBXZSBjYW4ndCBjYWxjdWxhdGUgaXRzIHZhbHVlIHNvIHdlIGlnbm9yZSB0aGUgS1BJXG5cdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdC5hZGRJc3N1ZShcblx0XHRcdFx0SXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRJc3N1ZVNldmVyaXR5Lk1lZGl1bSxcblx0XHRcdFx0SXNzdWVUeXBlLktQSV9JU1NVRVMuTUFJTl9QUk9QRVJUWV9OT1RfQUdHUkVHQVRBQkxFICsga3BpQ29uZmlnLnF1YWxpZmllclxuXHRcdFx0KTtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Ly8gQ2hhcnQgZGVmaW5pdGlvblxuXHRjb25zdCBjaGFydERlZiA9IGNvbnZlcnRLUElDaGFydChjaGFydEFubm90YXRpb24sIHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uKTtcblx0aWYgKCFjaGFydERlZikge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRjb25zdCBrcGlEZWY6IEtQSURlZmluaXRpb24gPSB7XG5cdFx0aWQ6IGdldEtQSUlEKGtwaU5hbWUpLFxuXHRcdGVudGl0eVNldDoga3BpQ29uZmlnLmVudGl0eVNldCxcblx0XHRkYXRhcG9pbnQ6IHtcblx0XHRcdHByb3BlcnR5UGF0aDogZGF0YXBvaW50QW5ub3RhdGlvbi5WYWx1ZS5wYXRoLFxuXHRcdFx0YW5ub3RhdGlvblBhdGg6IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhcG9pbnRBbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0XHR0aXRsZTogZGF0YXBvaW50QW5ub3RhdGlvbi5UaXRsZT8udG9TdHJpbmcoKSxcblx0XHRcdGRlc2NyaXB0aW9uOiBkYXRhcG9pbnRBbm5vdGF0aW9uLkRlc2NyaXB0aW9uPy50b1N0cmluZygpXG5cdFx0fSxcblx0XHRzZWxlY3Rpb25WYXJpYW50RmlsdGVyRGVmaW5pdGlvbnM6IHNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXG5cdFx0XHQ/IGdldEZpbHRlckRlZmluaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQoc2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24pXG5cdFx0XHQ6IHVuZGVmaW5lZCxcblx0XHRjaGFydDogY2hhcnREZWZcblx0fTtcblxuXHQvLyBOYXZpZ2F0aW9uXG5cdGlmICghbmF2aWdhdGlvbkluZm8pIHtcblx0XHQvLyBObyBuYXZpZ2F0aW9uSW5mbyB3YXMgZm91bmQgaW4gdGhlIEtQSSBhbm5vdGF0aW9uIC0tPiB0cnkgdGhlIG91dGJvdW5kIG5hdmlnYXRpb24gZnJvbSB0aGUgbWFuaWZlc3Rcblx0XHRpZiAoa3BpQ29uZmlnLmRldGFpbE5hdmlnYXRpb24pIHtcblx0XHRcdG5hdmlnYXRpb25JbmZvID0ge1xuXHRcdFx0XHRvdXRib3VuZE5hdmlnYXRpb246IGtwaUNvbmZpZy5kZXRhaWxOYXZpZ2F0aW9uXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBObyBvdXRib3VuZCBuYXZpZ2F0aW9uIGluIHRoZSBtYW5pZmVzdCAtLT4gdHJ5IHRoZSBzZW1hbnRpYyBvYmplY3Qgb24gdGhlIERhdGFwb2ludCB2YWx1ZVxuXHRcdFx0bmF2aWdhdGlvbkluZm8gPSBnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eShkYXRhcG9pbnRQcm9wZXJ0eSk7XG5cdFx0fVxuXHR9XG5cdGlmIChuYXZpZ2F0aW9uSW5mbykge1xuXHRcdGtwaURlZi5uYXZpZ2F0aW9uID0gbmF2aWdhdGlvbkluZm87XG5cdH1cblxuXHR1cGRhdGVDdXJyZW5jeShkYXRhcG9pbnRBbm5vdGF0aW9uLCBrcGlEZWYpO1xuXHR1cGRhdGVDcml0aWNhbGl0eShkYXRhcG9pbnRBbm5vdGF0aW9uLCBhZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmKTtcblx0dXBkYXRlVHJlbmQoZGF0YXBvaW50QW5ub3RhdGlvbiwgYWdncmVnYXRpb25IZWxwZXIsIGtwaURlZik7XG5cdHVwZGF0ZVRhcmdldChkYXRhcG9pbnRBbm5vdGF0aW9uLCBhZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmKTtcblxuXHRyZXR1cm4ga3BpRGVmO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIEtQSSBkZWZpbml0aW9ucyBmcm9tIHRoZSBtYW5pZmVzdCBhbmQgdGhlIGFubm90YXRpb25zLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dCBmb3IgdGhlIHBhZ2VcbiAqIEByZXR1cm5zIFJldHVybnMgYW4gYXJyYXkgb2YgS1BJIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRLUElEZWZpbml0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogS1BJRGVmaW5pdGlvbltdIHtcblx0Y29uc3Qga3BpQ29uZmlncyA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0S1BJQ29uZmlndXJhdGlvbigpLFxuXHRcdGtwaURlZnM6IEtQSURlZmluaXRpb25bXSA9IFtdO1xuXG5cdE9iamVjdC5rZXlzKGtwaUNvbmZpZ3MpLmZvckVhY2goKGtwaU5hbWUpID0+IHtcblx0XHRjb25zdCBvRGVmID0gY3JlYXRlS1BJRGVmaW5pdGlvbihrcGlOYW1lLCBrcGlDb25maWdzW2twaU5hbWVdLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHRpZiAob0RlZikge1xuXHRcdFx0a3BpRGVmcy5wdXNoKG9EZWYpO1xuXHRcdH1cblx0fSk7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
|
|
374
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZXZpYXRpb25JbmRpY2F0b3JGcm9tVHJlbmRUeXBlIiwiS1BJQ2hhcnRUeXBlRnJvbVVJIiwiY29udmVydEtQSUNoYXJ0IiwiY2hhcnRBbm5vdGF0aW9uIiwicHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24iLCJNZWFzdXJlcyIsInVuZGVmaW5lZCIsImNoYXJEaW1lbnNpb25zIiwiRGltZW5zaW9ucyIsIm1hcCIsInByb3BlcnR5UGF0aCIsImRpbUF0dHJpYnV0ZSIsIkRpbWVuc2lvbkF0dHJpYnV0ZXMiLCJmaW5kIiwiYXR0cmlidXRlIiwiRGltZW5zaW9uIiwidmFsdWUiLCJuYW1lIiwibGFiZWwiLCIkdGFyZ2V0IiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJMYWJlbCIsInRvU3RyaW5nIiwicm9sZSIsIlJvbGUiLCJyZXBsYWNlIiwiY2hhcnRNZWFzdXJlcyIsIm1lYXN1cmVBdHRyaWJ1dGUiLCJNZWFzdXJlQXR0cmlidXRlcyIsIk1lYXN1cmUiLCJjaGFydFR5cGUiLCJDaGFydFR5cGUiLCJkaW1lbnNpb25zIiwibWVhc3VyZXMiLCJzb3J0T3JkZXIiLCJTb3J0T3JkZXIiLCJQcm9wZXJ0eSIsImRlc2NlbmRpbmciLCJEZXNjZW5kaW5nIiwibWF4SXRlbXMiLCJNYXhJdGVtcyIsInZhbHVlT2YiLCJ1cGRhdGVDdXJyZW5jeSIsImRhdGFwb2ludEFubm90YXRpb24iLCJrcGlEZWYiLCJ0YXJnZXRWYWx1ZVByb3BlcnR5IiwiVmFsdWUiLCJJU09DdXJyZW5jeSIsImN1cnJlbmN5IiwiaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24iLCJkYXRhcG9pbnQiLCJ1bml0IiwiaXNDdXJyZW5jeSIsImlzUGF0aCIsIlVuaXQiLCJ1cGRhdGVDcml0aWNhbGl0eSIsImFnZ3JlZ2F0aW9uSGVscGVyIiwiQ3JpdGljYWxpdHkiLCJjcml0aWNhbGl0eVByb3BlcnR5IiwiaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSIsImNyaXRpY2FsaXR5UGF0aCIsInBhdGgiLCJjcml0aWNhbGl0eVZhbHVlIiwiTWVzc2FnZVR5cGUiLCJOb25lIiwiZ2V0TWVzc2FnZVR5cGVGcm9tQ3JpdGljYWxpdHlUeXBlIiwiQ3JpdGljYWxpdHlDYWxjdWxhdGlvbiIsImNyaXRpY2FsaXR5Q2FsY3VsYXRpb25Nb2RlIiwiSW1wcm92ZW1lbnREaXJlY3Rpb24iLCJjcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcyIsInB1c2giLCJEZXZpYXRpb25SYW5nZUxvd1ZhbHVlIiwiVG9sZXJhbmNlUmFuZ2VMb3dWYWx1ZSIsIkFjY2VwdGFuY2VSYW5nZUxvd1ZhbHVlIiwiQWNjZXB0YW5jZVJhbmdlSGlnaFZhbHVlIiwiVG9sZXJhbmNlUmFuZ2VIaWdoVmFsdWUiLCJEZXZpYXRpb25SYW5nZUhpZ2hWYWx1ZSIsInVwZGF0ZVRyZW5kIiwiVHJlbmQiLCJ0cmVuZFByb3BlcnR5IiwidHJlbmRQYXRoIiwidHJlbmRWYWx1ZSIsIlRyZW5kQ2FsY3VsYXRpb24iLCJ0cmVuZENhbGN1bGF0aW9uSXNSZWxhdGl2ZSIsIklzUmVsYXRpdmVEaWZmZXJlbmNlIiwiUmVmZXJlbmNlVmFsdWUiLCJyZWZlcmVuY2VQcm9wZXJ0eSIsInRyZW5kQ2FsY3VsYXRpb25SZWZlcmVuY2VQYXRoIiwidHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVZhbHVlIiwidHJlbmRDYWxjdWxhdGlvblRyZXNob2xkcyIsIlN0cm9uZ0Rvd25EaWZmZXJlbmNlIiwiRG93bkRpZmZlcmVuY2UiLCJVcERpZmZlcmVuY2UiLCJTdHJvbmdVcERpZmZlcmVuY2UiLCJ1cGRhdGVUYXJnZXQiLCJUYXJnZXRWYWx1ZSIsInRhcmdldFByb3BlcnR5IiwidGFyZ2V0UGF0aCIsInRhcmdldFZhbHVlIiwiZ2V0TmF2aWdhdGlvbkluZm9Gcm9tUHJvcGVydHkiLCJwcm9wZXJ0eSIsInNlbWFudGljT2JqZWN0QW5ub3RhdGlvbiIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiYW5ub3RhdGlvbktleSIsImFubm90YXRpb24iLCJ0ZXJtIiwicXVhbGlmaWVyIiwicmVzdWx0Iiwic2VtYW50aWNPYmplY3QiLCJ1bmF2YWlsYWJsZUFjdGlvbnMiLCJrZXkiLCJjcmVhdGVLUElEZWZpbml0aW9uIiwia3BpTmFtZSIsImtwaUNvbmZpZyIsImNvbnZlcnRlckNvbnRleHQiLCJrcGlDb252ZXJ0ZXJDb250ZXh0IiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImVudGl0eVNldCIsIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZ2V0RW50aXR5VHlwZSIsImlzQW5hbHl0aWNzU3VwcG9ydGVkIiwiZ2V0RGlhZ25vc3RpY3MiLCJhZGRJc3N1ZSIsIklzc3VlQ2F0ZWdvcnkiLCJBbm5vdGF0aW9uIiwiSXNzdWVTZXZlcml0eSIsIk1lZGl1bSIsIklzc3VlVHlwZSIsIktQSV9JU1NVRVMiLCJOT19BTkFMWVRJQ1MiLCJzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiIsIm5hdmlnYXRpb25JbmZvIiwiYUtQSUFubm90YXRpb25zIiwiZ2V0QW5ub3RhdGlvbnNCeVRlcm0iLCJ0YXJnZXRLUEkiLCJrcGkiLCJEYXRhUG9pbnQiLCJTZWxlY3Rpb25WYXJpYW50IiwiRGV0YWlsIiwiRGVmYXVsdFByZXNlbnRhdGlvblZhcmlhbnQiLCJWaXN1YWxpemF0aW9ucyIsInZpeiIsImlzQW5ub3RhdGlvbk9mVHlwZSIsIlNlbWFudGljT2JqZWN0IiwiYWN0aW9uIiwiQWN0aW9uIiwiYVNQVkFubm90YXRpb25zIiwidGFyZ2V0U1BWIiwic3B2IiwiUHJlc2VudGF0aW9uVmFyaWFudCIsIktQSV9OT1RfRk9VTkQiLCJLUElfREVUQUlMX05PVF9GT1VORCIsImRhdGFwb2ludFByb3BlcnR5IiwiTUFJTl9QUk9QRVJUWV9OT1RfQUdHUkVHQVRBQkxFIiwiY2hhcnREZWYiLCJpZCIsImdldEtQSUlEIiwiYW5ub3RhdGlvblBhdGgiLCJnZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwidGl0bGUiLCJUaXRsZSIsImRlc2NyaXB0aW9uIiwiRGVzY3JpcHRpb24iLCJzZWxlY3Rpb25WYXJpYW50RmlsdGVyRGVmaW5pdGlvbnMiLCJnZXRGaWx0ZXJEZWZpbml0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwiY2hhcnQiLCJkZXRhaWxOYXZpZ2F0aW9uIiwib3V0Ym91bmROYXZpZ2F0aW9uIiwibmF2aWdhdGlvbiIsImdldEtQSURlZmluaXRpb25zIiwia3BpQ29uZmlncyIsImdldE1hbmlmZXN0V3JhcHBlciIsImdldEtQSUNvbmZpZ3VyYXRpb24iLCJrcGlEZWZzIiwib0RlZiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiS1BJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF0aEFubm90YXRpb25FeHByZXNzaW9uLCBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBTZW1hbnRpY09iamVjdCB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgeyBDb21tb25Bbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHR5cGUge1xuXHRDaGFydCxcblx0Q3JpdGljYWxpdHlUeXBlLFxuXHREYXRhUG9pbnQsXG5cdERhdGFQb2ludFR5cGUsXG5cdEltcHJvdmVtZW50RGlyZWN0aW9uVHlwZSxcblx0S1BJLFxuXHRQcmVzZW50YXRpb25WYXJpYW50VHlwZSxcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCxcblx0U2VsZWN0aW9uVmFyaWFudFR5cGUsXG5cdFRyZW5kVHlwZVxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UZXJtcywgVUlBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IElzc3VlQ2F0ZWdvcnksIElzc3VlU2V2ZXJpdHksIElzc3VlVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSXNzdWVNYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSB7IEZpbHRlckRlZmluaXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL1NlbGVjdGlvblZhcmlhbnRIZWxwZXJcIjtcbmltcG9ydCB7IGdldEZpbHRlckRlZmluaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL1NlbGVjdGlvblZhcmlhbnRIZWxwZXJcIjtcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvVGFibGVGb3JtYXR0ZXJUeXBlc1wiO1xuaW1wb3J0IHsgaXNBbm5vdGF0aW9uT2ZUeXBlLCBpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uSGVscGVyIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvQWdncmVnYXRpb25cIjtcbmltcG9ydCB7IGdldEtQSUlEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB0eXBlIHsgS1BJQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBnZXRNZXNzYWdlVHlwZUZyb21Dcml0aWNhbGl0eVR5cGUgfSBmcm9tIFwiLi9Dcml0aWNhbGl0eVwiO1xuXG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uSW5mbyA9IHtcblx0c2VtYW50aWNPYmplY3Q/OiBzdHJpbmc7XG5cdGFjdGlvbj86IHN0cmluZztcblx0dW5hdmFpbGFibGVBY3Rpb25zPzogc3RyaW5nW107XG5cdG91dGJvdW5kTmF2aWdhdGlvbj86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEtQSUNoYXJ0RGVmaW5pdGlvbiA9IHtcblx0Y2hhcnRUeXBlOiBzdHJpbmc7XG5cdGRpbWVuc2lvbnM6IHsgbmFtZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyByb2xlPzogc3RyaW5nIH1bXTtcblx0bWVhc3VyZXM6IHsgbmFtZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyByb2xlPzogc3RyaW5nIH1bXTtcblx0c29ydE9yZGVyPzogeyBuYW1lOiBzdHJpbmc7IGRlc2NlbmRpbmc6IGJvb2xlYW4gfVtdO1xuXHRtYXhJdGVtcz86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEtQSURlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdGVudGl0eVNldDogc3RyaW5nO1xuXHRkYXRhcG9pbnQ6IHtcblx0XHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRcdHByb3BlcnR5UGF0aDogc3RyaW5nO1xuXHRcdHVuaXQ/OiB7XG5cdFx0XHR2YWx1ZTogc3RyaW5nO1xuXHRcdFx0aXNQYXRoOiBib29sZWFuO1xuXHRcdFx0aXNDdXJyZW5jeTogYm9vbGVhbjtcblx0XHR9O1xuXHRcdGNyaXRpY2FsaXR5UGF0aD86IHN0cmluZztcblx0XHRjcml0aWNhbGl0eVZhbHVlPzogTWVzc2FnZVR5cGU7XG5cdFx0Y3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGU/OiBJbXByb3ZlbWVudERpcmVjdGlvblR5cGU7XG5cdFx0Y3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHM/OiAobnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbClbXTtcblx0XHR0aXRsZT86IHN0cmluZztcblx0XHRkZXNjcmlwdGlvbj86IHN0cmluZztcblx0XHR0cmVuZFBhdGg/OiBzdHJpbmc7XG5cdFx0dHJlbmRWYWx1ZT86IHN0cmluZztcblx0XHR0cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlVmFsdWU/OiBudW1iZXI7XG5cdFx0dHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGg/OiBzdHJpbmc7XG5cdFx0dHJlbmRDYWxjdWxhdGlvblRyZXNob2xkcz86IChudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKVtdO1xuXHRcdHRyZW5kQ2FsY3VsYXRpb25Jc1JlbGF0aXZlPzogYm9vbGVhbjtcblx0XHR0YXJnZXRWYWx1ZT86IG51bWJlcjtcblx0XHR0YXJnZXRQYXRoPzogc3RyaW5nO1xuXHR9O1xuXHRjaGFydDogS1BJQ2hhcnREZWZpbml0aW9uO1xuXHRzZWxlY3Rpb25WYXJpYW50RmlsdGVyRGVmaW5pdGlvbnM/OiBGaWx0ZXJEZWZpbml0aW9uW107XG5cdG5hdmlnYXRpb24/OiBOYXZpZ2F0aW9uSW5mbztcbn07XG5cbmNvbnN0IERldmlhdGlvbkluZGljYXRvckZyb21UcmVuZFR5cGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG5cdFwiVUkuVHJlbmRUeXBlL1N0cm9uZ1VwXCI6IFwiVXBcIixcblx0XCJVSS5UcmVuZFR5cGUvVXBcIjogXCJVcFwiLFxuXHRcIlVJLlRyZW5kVHlwZS9TdHJvbmdEb3duXCI6IFwiRG93blwiLFxuXHRcIlVJLlRyZW5kVHlwZS9Eb3duXCI6IFwiRG93blwiLFxuXHRcIlVJLlRyZW5kVHlwZS9TaWRld2F5c1wiOiBcIk5vbmVcIlxufTtcblxuY29uc3QgS1BJQ2hhcnRUeXBlRnJvbVVJOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuXHRcIlVJLkNoYXJ0VHlwZS9Db2x1bW5TdGFja2VkXCI6IFwiU3RhY2tlZENvbHVtblwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9CYXJTdGFja2VkXCI6IFwiU3RhY2tlZEJhclwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9Eb251dFwiOiBcIkRvbnV0XCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0xpbmVcIjogXCJMaW5lXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0J1YmJsZVwiOiBcImJ1YmJsZVwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9Db2x1bW5cIjogXCJjb2x1bW5cIixcblx0XCJVSS5DaGFydFR5cGUvQmFyXCI6IFwiYmFyXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL1ZlcnRpY2FsQnVsbGV0XCI6IFwidmVydGljYWxfYnVsbGV0XCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0NvbWJpbmF0aW9uXCI6IFwiY29tYmluYXRpb25cIixcblx0XCJVSS5DaGFydFR5cGUvU2NhdHRlclwiOiBcInNjYXR0ZXJcIlxufTtcblxuZnVuY3Rpb24gY29udmVydEtQSUNoYXJ0KGNoYXJ0QW5ub3RhdGlvbjogQ2hhcnQsIHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBQcmVzZW50YXRpb25WYXJpYW50VHlwZSk6IEtQSUNoYXJ0RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG5cdGlmIChjaGFydEFubm90YXRpb24uTWVhc3VyZXMgPT09IHVuZGVmaW5lZCkge1xuXHRcdC8vIFdlIG5lZWQgYXQgbGVhc3QgMSBtZWFzdXJlIChidXQgbm8gZGltZW5zaW9uIGlzIGFsbG93ZWQsIGUuZy4gZm9yIGJ1YmJsZSBjaGFydClcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3QgY2hhckRpbWVuc2lvbnMgPSBjaGFydEFubm90YXRpb24uRGltZW5zaW9uc1xuXHRcdD8gY2hhcnRBbm5vdGF0aW9uLkRpbWVuc2lvbnMubWFwKChwcm9wZXJ0eVBhdGgpID0+IHtcblx0XHRcdFx0Y29uc3QgZGltQXR0cmlidXRlID0gY2hhcnRBbm5vdGF0aW9uLkRpbWVuc2lvbkF0dHJpYnV0ZXM/LmZpbmQoKGF0dHJpYnV0ZSkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBhdHRyaWJ1dGUuRGltZW5zaW9uPy52YWx1ZSA9PT0gcHJvcGVydHlQYXRoLnZhbHVlO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRuYW1lOiBwcm9wZXJ0eVBhdGgudmFsdWUsXG5cdFx0XHRcdFx0bGFiZWw6IHByb3BlcnR5UGF0aC4kdGFyZ2V0LmFubm90YXRpb25zLkNvbW1vbj8uTGFiZWw/LnRvU3RyaW5nKCkgfHwgcHJvcGVydHlQYXRoLnZhbHVlLFxuXHRcdFx0XHRcdHJvbGU6IGRpbUF0dHJpYnV0ZT8uUm9sZT8ucmVwbGFjZShcIlVJLkNoYXJ0RGltZW5zaW9uUm9sZVR5cGUvXCIsIFwiXCIpXG5cdFx0XHRcdH07XG5cdFx0ICB9KVxuXHRcdDogW107XG5cblx0Y29uc3QgY2hhcnRNZWFzdXJlcyA9IGNoYXJ0QW5ub3RhdGlvbi5NZWFzdXJlcy5tYXAoKHByb3BlcnR5UGF0aCkgPT4ge1xuXHRcdGNvbnN0IG1lYXN1cmVBdHRyaWJ1dGUgPSBjaGFydEFubm90YXRpb24uTWVhc3VyZUF0dHJpYnV0ZXM/LmZpbmQoKGF0dHJpYnV0ZSkgPT4ge1xuXHRcdFx0cmV0dXJuIGF0dHJpYnV0ZS5NZWFzdXJlPy52YWx1ZSA9PT0gcHJvcGVydHlQYXRoLnZhbHVlO1xuXHRcdH0pO1xuXHRcdHJldHVybiB7XG5cdFx0XHRuYW1lOiBwcm9wZXJ0eVBhdGgudmFsdWUsXG5cdFx0XHRsYWJlbDogcHJvcGVydHlQYXRoLiR0YXJnZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5MYWJlbD8udG9TdHJpbmcoKSB8fCBwcm9wZXJ0eVBhdGgudmFsdWUsXG5cdFx0XHRyb2xlOiBtZWFzdXJlQXR0cmlidXRlPy5Sb2xlPy5yZXBsYWNlKFwiVUkuQ2hhcnRNZWFzdXJlUm9sZVR5cGUvXCIsIFwiXCIpXG5cdFx0fTtcblx0fSk7XG5cblx0cmV0dXJuIHtcblx0XHRjaGFydFR5cGU6IEtQSUNoYXJ0VHlwZUZyb21VSVtjaGFydEFubm90YXRpb24uQ2hhcnRUeXBlXSB8fCBcIkxpbmVcIixcblx0XHRkaW1lbnNpb25zOiBjaGFyRGltZW5zaW9ucyxcblx0XHRtZWFzdXJlczogY2hhcnRNZWFzdXJlcyxcblx0XHRzb3J0T3JkZXI6IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uPy5Tb3J0T3JkZXI/Lm1hcCgoc29ydE9yZGVyKSA9PiB7XG5cdFx0XHRyZXR1cm4geyBuYW1lOiBzb3J0T3JkZXIuUHJvcGVydHk/LnZhbHVlIHx8IFwiXCIsIGRlc2NlbmRpbmc6ICEhc29ydE9yZGVyLkRlc2NlbmRpbmcgfTtcblx0XHR9KSxcblx0XHRtYXhJdGVtczogcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/Lk1heEl0ZW1zPy52YWx1ZU9mKCkgYXMgbnVtYmVyXG5cdH07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUN1cnJlbmN5KGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUsIGtwaURlZjogS1BJRGVmaW5pdGlvbik6IHZvaWQge1xuXHRjb25zdCB0YXJnZXRWYWx1ZVByb3BlcnR5ID0gZGF0YXBvaW50QW5ub3RhdGlvbi5WYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRpZiAodGFyZ2V0VmFsdWVQcm9wZXJ0eS5hbm5vdGF0aW9ucy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kpIHtcblx0XHRjb25zdCBjdXJyZW5jeSA9IHRhcmdldFZhbHVlUHJvcGVydHkuYW5ub3RhdGlvbnMuTWVhc3VyZXM/LklTT0N1cnJlbmN5O1xuXHRcdGlmIChpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbihjdXJyZW5jeSkpIHtcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudW5pdCA9IHtcblx0XHRcdFx0dmFsdWU6IChjdXJyZW5jeS4kdGFyZ2V0IGFzIHVua25vd24gYXMgUHJvcGVydHkpLm5hbWUsXG5cdFx0XHRcdGlzQ3VycmVuY3k6IHRydWUsXG5cdFx0XHRcdGlzUGF0aDogdHJ1ZVxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0a3BpRGVmLmRhdGFwb2ludC51bml0ID0ge1xuXHRcdFx0XHR2YWx1ZTogY3VycmVuY3kudG9TdHJpbmcoKSxcblx0XHRcdFx0aXNDdXJyZW5jeTogdHJ1ZSxcblx0XHRcdFx0aXNQYXRoOiBmYWxzZVxuXHRcdFx0fTtcblx0XHR9XG5cdH0gZWxzZSBpZiAodGFyZ2V0VmFsdWVQcm9wZXJ0eS5hbm5vdGF0aW9ucy5NZWFzdXJlcz8uVW5pdCkge1xuXHRcdGNvbnN0IHVuaXQgPSB0YXJnZXRWYWx1ZVByb3BlcnR5LmFubm90YXRpb25zLk1lYXN1cmVzPy5Vbml0O1xuXHRcdGlmIChpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbih1bml0KSkge1xuXHRcdFx0a3BpRGVmLmRhdGFwb2ludC51bml0ID0ge1xuXHRcdFx0XHR2YWx1ZTogKHVuaXQuJHRhcmdldCBhcyB1bmtub3duIGFzIFByb3BlcnR5KS5uYW1lLFxuXHRcdFx0XHRpc0N1cnJlbmN5OiBmYWxzZSxcblx0XHRcdFx0aXNQYXRoOiB0cnVlXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnVuaXQgPSB7XG5cdFx0XHRcdHZhbHVlOiB1bml0LnRvU3RyaW5nKCksXG5cdFx0XHRcdGlzQ3VycmVuY3k6IGZhbHNlLFxuXHRcdFx0XHRpc1BhdGg6IGZhbHNlXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiB1cGRhdGVDcml0aWNhbGl0eShkYXRhcG9pbnRBbm5vdGF0aW9uOiBEYXRhUG9pbnRUeXBlLCBhZ2dyZWdhdGlvbkhlbHBlcjogQWdncmVnYXRpb25IZWxwZXIsIGtwaURlZjogS1BJRGVmaW5pdGlvbik6IHZvaWQge1xuXHRpZiAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSkge1xuXHRcdGlmICh0eXBlb2YgZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSA9PT0gXCJvYmplY3RcIikge1xuXHRcdFx0Ly8gQ3JpdGljYWxpdHkgaXMgYSBwYXRoIC0tPiBjaGVjayBpZiB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBpcyBhZ2dyZWdhdGFibGVcblx0XHRcdGNvbnN0IGNyaXRpY2FsaXR5UHJvcGVydHkgPSAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSBhcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248UHJvcGVydHk+KS4kdGFyZ2V0O1xuXHRcdFx0aWYgKGFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUoY3JpdGljYWxpdHlQcm9wZXJ0eSkpIHtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eVBhdGggPSAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSBhcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248Q3JpdGljYWxpdHlUeXBlPikucGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFRoZSBwcm9wZXJ0eSBpc24ndCBhZ2dyZWdhdGFibGUgLS0+IHdlIGlnbm9yZSBpdFxuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5Ob25lO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBDcml0aWNhbGl0eSBpcyBhbiBlbnVtIFZhbHVlIC0tPiBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGljIHZhbHVlXG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBnZXRNZXNzYWdlVHlwZUZyb21Dcml0aWNhbGl0eVR5cGUoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbikge1xuXHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGUgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uSW1wcm92ZW1lbnREaXJlY3Rpb247XG5cdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcyA9IFtdO1xuXHRcdHN3aXRjaCAoa3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uTW9kZSkge1xuXHRcdFx0Y2FzZSBcIlVJLkltcHJvdmVtZW50RGlyZWN0aW9uVHlwZS9UYXJnZXRcIjpcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5EZXZpYXRpb25SYW5nZUxvd1ZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUxvd1ZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5BY2NlcHRhbmNlUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlSGlnaFZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUhpZ2hWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VIaWdoVmFsdWUpO1xuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Y2FzZSBcIlVJLkltcHJvdmVtZW50RGlyZWN0aW9uVHlwZS9NaW5pbWl6ZVwiOlxuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkFjY2VwdGFuY2VSYW5nZUhpZ2hWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uVG9sZXJhbmNlUmFuZ2VIaWdoVmFsdWUpO1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkRldmlhdGlvblJhbmdlSGlnaFZhbHVlKTtcblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgXCJVSS5JbXByb3ZlbWVudERpcmVjdGlvblR5cGUvTWF4aW1pemVcIjpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uVG9sZXJhbmNlUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlTG93VmFsdWUpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5Ob25lO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVRyZW5kKGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUsIGFnZ3JlZ2F0aW9uSGVscGVyOiBBZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kKSB7XG5cdFx0aWYgKHR5cGVvZiBkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHQvLyBUcmVuZCBpcyBhIHBhdGggLS0+IGNoZWNrIGlmIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGlzIGFnZ3JlZ2F0YWJsZVxuXHRcdFx0Y29uc3QgdHJlbmRQcm9wZXJ0eSA9IChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kIGFzIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxQcm9wZXJ0eT4pLiR0YXJnZXQ7XG5cdFx0XHRpZiAoYWdncmVnYXRpb25IZWxwZXIuaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSh0cmVuZFByb3BlcnR5KSkge1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kUGF0aCA9IChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kIGFzIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxUcmVuZFR5cGU+KS5wYXRoO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gVGhlIHByb3BlcnR5IGlzbid0IGFnZ3JlZ2F0YWJsZSAtLT4gd2UgaWdub3JlIGl0XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRWYWx1ZSA9IFwiTm9uZVwiO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUcmVuZCBpcyBhbiBlbnVtIFZhbHVlIC0tPiBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGljIHZhbHVlXG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kVmFsdWUgPSBEZXZpYXRpb25JbmRpY2F0b3JGcm9tVHJlbmRUeXBlW2RhdGFwb2ludEFubm90YXRpb24uVHJlbmRdIHx8IFwiTm9uZVwiO1xuXHRcdH1cblx0fSBlbHNlIGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24pIHtcblx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kQ2FsY3VsYXRpb25Jc1JlbGF0aXZlID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLklzUmVsYXRpdmVEaWZmZXJlbmNlID8gdHJ1ZSA6IGZhbHNlO1xuXHRcdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uUmVmZXJlbmNlVmFsdWUuJHRhcmdldCkge1xuXHRcdFx0Ly8gUmVmZXJlbmNlIHZhbHVlIGlzIGEgcGF0aCAtLT4gY2hlY2sgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlXG5cdFx0XHRjb25zdCByZWZlcmVuY2VQcm9wZXJ0eSA9IGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5SZWZlcmVuY2VWYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRcdFx0aWYgKGFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUocmVmZXJlbmNlUHJvcGVydHkpKSB7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGggPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uUmVmZXJlbmNlVmFsdWUucGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFRoZSBwcm9wZXJ0eSBpc24ndCBhZ2dyZWdhdGFibGUgLS0+IHdlIGlnbm9yZSBpdCBhbmQgc3dpdGNoIGJhY2sgdG8gdHJlbmQgJ05vbmUnXG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRWYWx1ZSA9IFwiTm9uZVwiO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBSZWZlcmVuY2UgdmFsdWUgaXMgYSBzdGF0aWMgdmFsdWVcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVZhbHVlID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlJlZmVyZW5jZVZhbHVlO1xuXHRcdH1cblx0XHRpZiAoa3BpRGVmLmRhdGFwb2ludC50cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlUGF0aCAhPT0gdW5kZWZpbmVkIHx8IGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblRyZXNob2xkcyA9IFtcblx0XHRcdFx0ZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlN0cm9uZ0Rvd25EaWZmZXJlbmNlLnZhbHVlT2YoKSBhcyBudW1iZXIsXG5cdFx0XHRcdGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5Eb3duRGlmZmVyZW5jZS52YWx1ZU9mKCkgYXMgbnVtYmVyLFxuXHRcdFx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uVXBEaWZmZXJlbmNlLnZhbHVlT2YoKSBhcyBudW1iZXIsXG5cdFx0XHRcdGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5TdHJvbmdVcERpZmZlcmVuY2UudmFsdWVPZigpIGFzIG51bWJlclxuXHRcdFx0XTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0a3BpRGVmLmRhdGFwb2ludC50cmVuZFZhbHVlID0gXCJOb25lXCI7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlVGFyZ2V0KGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUsIGFnZ3JlZ2F0aW9uSGVscGVyOiBBZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlKSB7XG5cdFx0aWYgKGRhdGFwb2ludEFubm90YXRpb24uVGFyZ2V0VmFsdWUuJHRhcmdldCkge1xuXHRcdFx0Ly8gVGFyZ2V0IHZhbHVlIGlzIGEgcGF0aCAtLT4gY2hlY2sgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlIChvdGhlcndpc2UgaWdub3JlKVxuXHRcdFx0Y29uc3QgdGFyZ2V0UHJvcGVydHkgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlLiR0YXJnZXQgYXMgUHJvcGVydHk7XG5cdFx0XHRpZiAoYWdncmVnYXRpb25IZWxwZXIuaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSh0YXJnZXRQcm9wZXJ0eSkpIHtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC50YXJnZXRQYXRoID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UYXJnZXRWYWx1ZS5wYXRoO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUYXJnZXQgdmFsdWUgaXMgYSBzdGF0aWMgdmFsdWVcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudGFyZ2V0VmFsdWUgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eShwcm9wZXJ0eTogUHJvcGVydHkpOiBOYXZpZ2F0aW9uSW5mbyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFubm90YXRpb25zID0gcHJvcGVydHkuYW5ub3RhdGlvbnNbXCJDb21tb25cIl0gfHwge307XG5cdC8vIExvb2sgZm9yIHRoZSBzZW1hbnRpY09iamVjdCBhbm5vdGF0aW9uIChpZiBhbnkpXG5cdGxldCBzZW1hbnRpY09iamVjdEFubm90YXRpb246IFNlbWFudGljT2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRPYmplY3Qua2V5cyhhbm5vdGF0aW9ucykuZm9yRWFjaCgoYW5ub3RhdGlvbktleSkgPT4ge1xuXHRcdGNvbnN0IGFubm90YXRpb24gPSBhbm5vdGF0aW9uc1thbm5vdGF0aW9uS2V5IGFzIGtleW9mIHR5cGVvZiBhbm5vdGF0aW9uc107XG5cdFx0aWYgKGFubm90YXRpb24udGVybSA9PT0gQ29tbW9uQW5ub3RhdGlvblRlcm1zLlNlbWFudGljT2JqZWN0KSB7XG5cdFx0XHRpZiAoIWFubm90YXRpb24ucXVhbGlmaWVyIHx8ICFzZW1hbnRpY09iamVjdEFubm90YXRpb24pIHtcblx0XHRcdFx0Ly8gV2UgYWx3YXlzIHRha2UgdGhlIGFubm90YXRpb24gd2l0aG91dCBxdWFsaWZpZXIgaWYgdGhlcmUncyBvbmUsIG90aGVyd2lzZSB3ZSB0YWtlIHRoZSBmaXJzdCBvbmVcblx0XHRcdFx0c2VtYW50aWNPYmplY3RBbm5vdGF0aW9uID0gYW5ub3RhdGlvbjtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXG5cdGlmIChzZW1hbnRpY09iamVjdEFubm90YXRpb24pIHtcblx0XHRjb25zdCByZXN1bHQgPSB7XG5cdFx0XHRzZW1hbnRpY09iamVjdDogc2VtYW50aWNPYmplY3RBbm5vdGF0aW9uLnRvU3RyaW5nKCksXG5cdFx0XHR1bmF2YWlsYWJsZUFjdGlvbnM6IFtdXG5cdFx0fTtcblxuXHRcdC8vIExvb2sgZm9yIHRoZSB1bmF2YWlsYWJsZSBhY3Rpb25zIChpZiBhbnkpXG5cdFx0Y29uc3QgYW5ub3RhdGlvbktleSA9IE9iamVjdC5rZXlzKGFubm90YXRpb25zKS5maW5kKChrZXkpID0+IHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdGFubm90YXRpb25zW2tleSBhcyBrZXlvZiB0eXBlb2YgYW5ub3RhdGlvbnNdLnRlcm0gPT09IENvbW1vbkFubm90YXRpb25UZXJtcy5TZW1hbnRpY09iamVjdFVuYXZhaWxhYmxlQWN0aW9ucyAmJlxuXHRcdFx0XHRhbm5vdGF0aW9uc1trZXkgYXMga2V5b2YgdHlwZW9mIGFubm90YXRpb25zXS5xdWFsaWZpZXIgPT09IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvbj8ucXVhbGlmaWVyXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHRcdGlmIChhbm5vdGF0aW9uS2V5KSB7XG5cdFx0XHRyZXN1bHQudW5hdmFpbGFibGVBY3Rpb25zID0gYW5ub3RhdGlvbnNbYW5ub3RhdGlvbktleSBhcyBrZXlvZiB0eXBlb2YgYW5ub3RhdGlvbnNdO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxufVxuXG5mdW5jdGlvbiBjcmVhdGVLUElEZWZpbml0aW9uKGtwaU5hbWU6IHN0cmluZywga3BpQ29uZmlnOiBLUElDb25maWd1cmF0aW9uLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogS1BJRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGtwaUNvbnZlcnRlckNvbnRleHQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlckNvbnRleHRGb3IoYC8ke2twaUNvbmZpZy5lbnRpdHlTZXR9YCk7XG5cdGNvbnN0IGFnZ3JlZ2F0aW9uSGVscGVyID0gbmV3IEFnZ3JlZ2F0aW9uSGVscGVyKGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCBrcGlDb252ZXJ0ZXJDb250ZXh0KTtcblxuXHRpZiAoIWFnZ3JlZ2F0aW9uSGVscGVyLmlzQW5hbHl0aWNzU3VwcG9ydGVkKCkpIHtcblx0XHQvLyBUaGUgZW50aXR5IGRvZXNuJ3Qgc3VwcG9ydCBhbmFseXRpY2FsIHF1ZXJpZXNcblx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHQuZ2V0RGlhZ25vc3RpY3MoKVxuXHRcdFx0LmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgSXNzdWVTZXZlcml0eS5NZWRpdW0sIElzc3VlVHlwZS5LUElfSVNTVUVTLk5PX0FOQUxZVElDUyArIGtwaUNvbmZpZy5lbnRpdHlTZXQpO1xuXG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGxldCBzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbjogU2VsZWN0aW9uVmFyaWFudFR5cGUgfCB1bmRlZmluZWQ7XG5cdGxldCBkYXRhcG9pbnRBbm5vdGF0aW9uOiBEYXRhUG9pbnRUeXBlIHwgdW5kZWZpbmVkO1xuXHRsZXQgcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb246IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlIHwgdW5kZWZpbmVkO1xuXHRsZXQgY2hhcnRBbm5vdGF0aW9uOiBDaGFydCB8IHVuZGVmaW5lZDtcblx0bGV0IG5hdmlnYXRpb25JbmZvOiBOYXZpZ2F0aW9uSW5mbyB8IHVuZGVmaW5lZDtcblxuXHQvLyBTZWFyY2ggZm9yIGEgS1BJIHdpdGggdGhlIHF1YWxpZmllciBmcm1vIHRoZSBtYW5pZmVzdFxuXHRjb25zdCBhS1BJQW5ub3RhdGlvbnMgPSBrcGlDb252ZXJ0ZXJDb250ZXh0LmdldEFubm90YXRpb25zQnlUZXJtKFwiVUlcIiwgVUlBbm5vdGF0aW9uVGVybXMuS1BJKSBhcyBLUElbXTtcblx0Y29uc3QgdGFyZ2V0S1BJID0gYUtQSUFubm90YXRpb25zLmZpbmQoKGtwaSkgPT4ge1xuXHRcdHJldHVybiBrcGkucXVhbGlmaWVyID09PSBrcGlDb25maWcucXVhbGlmaWVyO1xuXHR9KTtcblx0aWYgKHRhcmdldEtQSSkge1xuXHRcdGRhdGFwb2ludEFubm90YXRpb24gPSB0YXJnZXRLUEkuRGF0YVBvaW50O1xuXHRcdHNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gdGFyZ2V0S1BJLlNlbGVjdGlvblZhcmlhbnQ7XG5cdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24gPSB0YXJnZXRLUEkuRGV0YWlsPy5EZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHRjaGFydEFubm90YXRpb24gPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbj8uVmlzdWFsaXphdGlvbnM/LmZpbmQoKHZpeikgPT4ge1xuXHRcdFx0cmV0dXJuIGlzQW5ub3RhdGlvbk9mVHlwZTxDaGFydD4odml6LiR0YXJnZXQsIFVJQW5ub3RhdGlvblR5cGVzLkNoYXJ0RGVmaW5pdGlvblR5cGUpO1xuXHRcdH0pPy4kdGFyZ2V0IGFzIENoYXJ0O1xuXG5cdFx0aWYgKHRhcmdldEtQSS5EZXRhaWw/LlNlbWFudGljT2JqZWN0KSB7XG5cdFx0XHRuYXZpZ2F0aW9uSW5mbyA9IHtcblx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IHRhcmdldEtQSS5EZXRhaWwuU2VtYW50aWNPYmplY3QudG9TdHJpbmcoKSxcblx0XHRcdFx0YWN0aW9uOiB0YXJnZXRLUEkuRGV0YWlsLkFjdGlvbj8udG9TdHJpbmcoKSxcblx0XHRcdFx0dW5hdmFpbGFibGVBY3Rpb25zOiBbXVxuXHRcdFx0fTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gRmFsbGJhY2s6IHRyeSB0byBmaW5kIGEgU1BWIHdpdGggdGhlIHNhbWUgcXVhbGlmaWVyXG5cdFx0Y29uc3QgYVNQVkFubm90YXRpb25zID0ga3BpQ29udmVydGVyQ29udGV4dC5nZXRBbm5vdGF0aW9uc0J5VGVybShcblx0XHRcdFwiVUlcIixcblx0XHRcdFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRcblx0XHQpIGFzIFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRbXTtcblx0XHRjb25zdCB0YXJnZXRTUFYgPSBhU1BWQW5ub3RhdGlvbnMuZmluZCgoc3B2KSA9PiB7XG5cdFx0XHRyZXR1cm4gc3B2LnF1YWxpZmllciA9PT0ga3BpQ29uZmlnLnF1YWxpZmllcjtcblx0XHR9KTtcblx0XHRpZiAodGFyZ2V0U1BWKSB7XG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiA9IHRhcmdldFNQVi5TZWxlY3Rpb25WYXJpYW50O1xuXHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24gPSB0YXJnZXRTUFYuUHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHRcdGRhdGFwb2ludEFubm90YXRpb24gPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbj8uVmlzdWFsaXphdGlvbnM/LmZpbmQoKHZpeikgPT4ge1xuXHRcdFx0XHRyZXR1cm4gaXNBbm5vdGF0aW9uT2ZUeXBlPERhdGFQb2ludD4odml6LiR0YXJnZXQsIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFQb2ludFR5cGUpO1xuXHRcdFx0fSk/LiR0YXJnZXQgYXMgRGF0YVBvaW50O1xuXHRcdFx0Y2hhcnRBbm5vdGF0aW9uID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/LlZpc3VhbGl6YXRpb25zPy5maW5kKCh2aXopID0+IHtcblx0XHRcdFx0cmV0dXJuIGlzQW5ub3RhdGlvbk9mVHlwZTxDaGFydD4odml6LiR0YXJnZXQsIFVJQW5ub3RhdGlvblR5cGVzLkNoYXJ0RGVmaW5pdGlvblR5cGUpO1xuXHRcdFx0fSk/LiR0YXJnZXQgYXMgQ2hhcnQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIENvdWxkbid0IGZpbmQgYSBLUEkgb3IgYSBTUFYgYW5ub3RhdGlvbiB3aXRoIHRoZSBxdWFsaWZpZXIgZnJvbSB0aGUgbWFuaWZlc3Rcblx0XHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdFx0LmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgSXNzdWVTZXZlcml0eS5NZWRpdW0sIElzc3VlVHlwZS5LUElfSVNTVUVTLktQSV9OT1RfRk9VTkQgKyBrcGlDb25maWcucXVhbGlmaWVyKTtcblxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRpZiAoIXByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uIHx8ICFkYXRhcG9pbnRBbm5vdGF0aW9uIHx8ICFjaGFydEFubm90YXRpb24pIHtcblx0XHQvLyBDb3VsZG4ndCBmaW5kIGEgY2hhcnQgb3IgZGF0YXBvaW50IGRlZmluaXRpb25cblx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHQuZ2V0RGlhZ25vc3RpY3MoKVxuXHRcdFx0LmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgSXNzdWVTZXZlcml0eS5NZWRpdW0sIElzc3VlVHlwZS5LUElfSVNTVUVTLktQSV9ERVRBSUxfTk9UX0ZPVU5EICsga3BpQ29uZmlnLnF1YWxpZmllcik7XG5cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3QgZGF0YXBvaW50UHJvcGVydHkgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlZhbHVlLiR0YXJnZXQgYXMgUHJvcGVydHk7XG5cdGlmICghYWdncmVnYXRpb25IZWxwZXIuaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZShkYXRhcG9pbnRQcm9wZXJ0eSkpIHtcblx0XHQvLyBUaGUgbWFpbiBwcm9wZXJ0eSBvZiB0aGUgS1BJIGlzIG5vdCBhZ2dyZWdhdGFibGUgLS0+IFdlIGNhbid0IGNhbGN1bGF0ZSBpdHMgdmFsdWUgc28gd2UgaWdub3JlIHRoZSBLUElcblx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHQuZ2V0RGlhZ25vc3RpY3MoKVxuXHRcdFx0LmFkZElzc3VlKFxuXHRcdFx0XHRJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sXG5cdFx0XHRcdElzc3VlU2V2ZXJpdHkuTWVkaXVtLFxuXHRcdFx0XHRJc3N1ZVR5cGUuS1BJX0lTU1VFUy5NQUlOX1BST1BFUlRZX05PVF9BR0dSRUdBVEFCTEUgKyBrcGlDb25maWcucXVhbGlmaWVyXG5cdFx0XHQpO1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvLyBDaGFydCBkZWZpbml0aW9uXG5cdGNvbnN0IGNoYXJ0RGVmID0gY29udmVydEtQSUNoYXJ0KGNoYXJ0QW5ub3RhdGlvbiwgcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24pO1xuXHRpZiAoIWNoYXJ0RGVmKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGNvbnN0IGtwaURlZjogS1BJRGVmaW5pdGlvbiA9IHtcblx0XHRpZDogZ2V0S1BJSUQoa3BpTmFtZSksXG5cdFx0ZW50aXR5U2V0OiBrcGlDb25maWcuZW50aXR5U2V0LFxuXHRcdGRhdGFwb2ludDoge1xuXHRcdFx0cHJvcGVydHlQYXRoOiBkYXRhcG9pbnRBbm5vdGF0aW9uLlZhbHVlLnBhdGgsXG5cdFx0XHRhbm5vdGF0aW9uUGF0aDoga3BpQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGRhdGFwb2ludEFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdHRpdGxlOiBkYXRhcG9pbnRBbm5vdGF0aW9uLlRpdGxlPy50b1N0cmluZygpLFxuXHRcdFx0ZGVzY3JpcHRpb246IGRhdGFwb2ludEFubm90YXRpb24uRGVzY3JpcHRpb24/LnRvU3RyaW5nKClcblx0XHR9LFxuXHRcdHNlbGVjdGlvblZhcmlhbnRGaWx0ZXJEZWZpbml0aW9uczogc2VsZWN0aW9uVmFyaWFudEFubm90YXRpb25cblx0XHRcdD8gZ2V0RmlsdGVyRGVmaW5pdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudChzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbilcblx0XHRcdDogdW5kZWZpbmVkLFxuXHRcdGNoYXJ0OiBjaGFydERlZlxuXHR9O1xuXG5cdC8vIE5hdmlnYXRpb25cblx0aWYgKCFuYXZpZ2F0aW9uSW5mbykge1xuXHRcdC8vIE5vIG5hdmlnYXRpb25JbmZvIHdhcyBmb3VuZCBpbiB0aGUgS1BJIGFubm90YXRpb24gLS0+IHRyeSB0aGUgb3V0Ym91bmQgbmF2aWdhdGlvbiBmcm9tIHRoZSBtYW5pZmVzdFxuXHRcdGlmIChrcGlDb25maWcuZGV0YWlsTmF2aWdhdGlvbikge1xuXHRcdFx0bmF2aWdhdGlvbkluZm8gPSB7XG5cdFx0XHRcdG91dGJvdW5kTmF2aWdhdGlvbjoga3BpQ29uZmlnLmRldGFpbE5hdmlnYXRpb25cblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIE5vIG91dGJvdW5kIG5hdmlnYXRpb24gaW4gdGhlIG1hbmlmZXN0IC0tPiB0cnkgdGhlIHNlbWFudGljIG9iamVjdCBvbiB0aGUgRGF0YXBvaW50IHZhbHVlXG5cdFx0XHRuYXZpZ2F0aW9uSW5mbyA9IGdldE5hdmlnYXRpb25JbmZvRnJvbVByb3BlcnR5KGRhdGFwb2ludFByb3BlcnR5KTtcblx0XHR9XG5cdH1cblx0aWYgKG5hdmlnYXRpb25JbmZvKSB7XG5cdFx0a3BpRGVmLm5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uSW5mbztcblx0fVxuXG5cdHVwZGF0ZUN1cnJlbmN5KGRhdGFwb2ludEFubm90YXRpb24sIGtwaURlZik7XG5cdHVwZGF0ZUNyaXRpY2FsaXR5KGRhdGFwb2ludEFubm90YXRpb24sIGFnZ3JlZ2F0aW9uSGVscGVyLCBrcGlEZWYpO1xuXHR1cGRhdGVUcmVuZChkYXRhcG9pbnRBbm5vdGF0aW9uLCBhZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmKTtcblx0dXBkYXRlVGFyZ2V0KGRhdGFwb2ludEFubm90YXRpb24sIGFnZ3JlZ2F0aW9uSGVscGVyLCBrcGlEZWYpO1xuXG5cdHJldHVybiBrcGlEZWY7XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgS1BJIGRlZmluaXRpb25zIGZyb20gdGhlIG1hbmlmZXN0IGFuZCB0aGUgYW5ub3RhdGlvbnMuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0IGZvciB0aGUgcGFnZVxuICogQHJldHVybnMgUmV0dXJucyBhbiBhcnJheSBvZiBLUEkgZGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEtQSURlZmluaXRpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBLUElEZWZpbml0aW9uW10ge1xuXHRjb25zdCBrcGlDb25maWdzID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5nZXRLUElDb25maWd1cmF0aW9uKCksXG5cdFx0a3BpRGVmczogS1BJRGVmaW5pdGlvbltdID0gW107XG5cblx0T2JqZWN0LmtleXMoa3BpQ29uZmlncykuZm9yRWFjaCgoa3BpTmFtZSkgPT4ge1xuXHRcdGNvbnN0IG9EZWYgPSBjcmVhdGVLUElEZWZpbml0aW9uKGtwaU5hbWUsIGtwaUNvbmZpZ3Nba3BpTmFtZV0sIGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGlmIChvRGVmKSB7XG5cdFx0XHRrcGlEZWZzLnB1c2gob0RlZik7XG5cdFx0fVxuXHR9KTtcblxuXHRyZXR1cm4ga3BpRGVmcztcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0VBeUVBLE1BQU1BLCtCQUF1RCxHQUFHO0lBQy9ELHVCQUF1QixFQUFFLElBQUk7SUFDN0IsaUJBQWlCLEVBQUUsSUFBSTtJQUN2Qix5QkFBeUIsRUFBRSxNQUFNO0lBQ2pDLG1CQUFtQixFQUFFLE1BQU07SUFDM0IsdUJBQXVCLEVBQUU7RUFDMUIsQ0FBQztFQUVELE1BQU1DLGtCQUEwQyxHQUFHO0lBQ2xELDRCQUE0QixFQUFFLGVBQWU7SUFDN0MseUJBQXlCLEVBQUUsWUFBWTtJQUN2QyxvQkFBb0IsRUFBRSxPQUFPO0lBQzdCLG1CQUFtQixFQUFFLE1BQU07SUFDM0IscUJBQXFCLEVBQUUsUUFBUTtJQUMvQixxQkFBcUIsRUFBRSxRQUFRO0lBQy9CLGtCQUFrQixFQUFFLEtBQUs7SUFDekIsNkJBQTZCLEVBQUUsaUJBQWlCO0lBQ2hELDBCQUEwQixFQUFFLGFBQWE7SUFDekMsc0JBQXNCLEVBQUU7RUFDekIsQ0FBQztFQUVELFNBQVNDLGVBQWUsQ0FBQ0MsZUFBc0IsRUFBRUMsNkJBQXNELEVBQWtDO0lBQUE7SUFDeEksSUFBSUQsZUFBZSxDQUFDRSxRQUFRLEtBQUtDLFNBQVMsRUFBRTtNQUMzQztNQUNBLE9BQU9BLFNBQVM7SUFDakI7SUFFQSxNQUFNQyxjQUFjLEdBQUdKLGVBQWUsQ0FBQ0ssVUFBVSxHQUM5Q0wsZUFBZSxDQUFDSyxVQUFVLENBQUNDLEdBQUcsQ0FBRUMsWUFBWSxJQUFLO01BQUE7TUFDakQsTUFBTUMsWUFBWSw0QkFBR1Is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
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/converters/helpers/IssueManager","sap/fe/core/converters/helpers/SelectionVariantHelper","sap/fe/core/formatters/TableFormatterTypes","sap/fe/core/
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/helpers/IssueManager","sap/fe/core/converters/helpers/SelectionVariantHelper","sap/fe/core/formatters/TableFormatterTypes","sap/fe/core/helpers/TypeGuards","../../helpers/Aggregation","../../helpers/ID","./Criticality"],function(e,t,a,i,n,o,l){"use strict";var r={};var u=l.getMessageTypeFromCriticalityType;var c=o.getKPIID;var s=n.AggregationHelper;var d=i.isPathAnnotationExpression;var v=i.isAnnotationOfType;var p=a.MessageType;var f=t.getFilterDefinitionsFromSelectionVariant;var g=e.IssueType;var y=e.IssueSeverity;var C=e.IssueCategory;const h={"UI.TrendType/StrongUp":"Up","UI.TrendType/Up":"Up","UI.TrendType/StrongDown":"Down","UI.TrendType/Down":"Down","UI.TrendType/Sideways":"None"};const T={"UI.ChartType/ColumnStacked":"StackedColumn","UI.ChartType/BarStacked":"StackedBar","UI.ChartType/Donut":"Donut","UI.ChartType/Line":"Line","UI.ChartType/Bubble":"bubble","UI.ChartType/Column":"column","UI.ChartType/Bar":"bar","UI.ChartType/VerticalBullet":"vertical_bullet","UI.ChartType/Combination":"combination","UI.ChartType/Scatter":"scatter"};function m(e,t){var a,i;if(e.Measures===undefined){return undefined}const n=e.Dimensions?e.Dimensions.map(t=>{var a,i,n,o;const l=(a=e.DimensionAttributes)===null||a===void 0?void 0:a.find(e=>{var a;return((a=e.Dimension)===null||a===void 0?void 0:a.value)===t.value});return{name:t.value,label:((i=t.$target.annotations.Common)===null||i===void 0?void 0:(n=i.Label)===null||n===void 0?void 0:n.toString())||t.value,role:l===null||l===void 0?void 0:(o=l.Role)===null||o===void 0?void 0:o.replace("UI.ChartDimensionRoleType/","")}}):[];const o=e.Measures.map(t=>{var a,i,n,o;const l=(a=e.MeasureAttributes)===null||a===void 0?void 0:a.find(e=>{var a;return((a=e.Measure)===null||a===void 0?void 0:a.value)===t.value});return{name:t.value,label:((i=t.$target.annotations.Common)===null||i===void 0?void 0:(n=i.Label)===null||n===void 0?void 0:n.toString())||t.value,role:l===null||l===void 0?void 0:(o=l.Role)===null||o===void 0?void 0:o.replace("UI.ChartMeasureRoleType/","")}});return{chartType:T[e.ChartType]||"Line",dimensions:n,measures:o,sortOrder:t===null||t===void 0?void 0:(a=t.SortOrder)===null||a===void 0?void 0:a.map(e=>{var t;return{name:((t=e.Property)===null||t===void 0?void 0:t.value)||"",descending:!!e.Descending}}),maxItems:t===null||t===void 0?void 0:(i=t.MaxItems)===null||i===void 0?void 0:i.valueOf()}}function I(e,t){var a,i;const n=e.Value.$target;if((a=n.annotations.Measures)!==null&&a!==void 0&&a.ISOCurrency){var o;const e=(o=n.annotations.Measures)===null||o===void 0?void 0:o.ISOCurrency;if(d(e)){t.datapoint.unit={value:e.$target.name,isCurrency:true,isPath:true}}else{t.datapoint.unit={value:e.toString(),isCurrency:true,isPath:false}}}else if((i=n.annotations.Measures)!==null&&i!==void 0&&i.Unit){var l;const e=(l=n.annotations.Measures)===null||l===void 0?void 0:l.Unit;if(d(e)){t.datapoint.unit={value:e.$target.name,isCurrency:false,isPath:true}}else{t.datapoint.unit={value:e.toString(),isCurrency:false,isPath:false}}}}function S(e,t,a){if(e.Criticality){if(typeof e.Criticality==="object"){const i=e.Criticality.$target;if(t.isPropertyAggregatable(i)){a.datapoint.criticalityPath=e.Criticality.path}else{a.datapoint.criticalityValue=p.None}}else{a.datapoint.criticalityValue=u(e.Criticality)}}else if(e.CriticalityCalculation){a.datapoint.criticalityCalculationMode=e.CriticalityCalculation.ImprovementDirection;a.datapoint.criticalityCalculationThresholds=[];switch(a.datapoint.criticalityCalculationMode){case"UI.ImprovementDirectionType/Target":a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeHighValue);break;case"UI.ImprovementDirectionType/Minimize":a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeHighValue);break;case"UI.ImprovementDirectionType/Maximize":default:a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeLowValue)}}else{a.datapoint.criticalityValue=p.None}}function D(e,t,a){if(e.Trend){if(typeof e.Trend==="object"){const i=e.Trend.$target;if(t.isPropertyAggregatable(i)){a.datapoint.trendPath=e.Trend.path}else{a.datapoint.trendValue="None"}}else{a.datapoint.trendValue=h[e.Trend]||"None"}}else if(e.TrendCalculation){a.datapoint.trendCalculationIsRelative=e.TrendCalculation.IsRelativeDifference?true:false;if(e.TrendCalculation.ReferenceValue.$target){const i=e.TrendCalculation.ReferenceValue.$target;if(t.isPropertyAggregatable(i)){a.datapoint.trendCalculationReferencePath=e.TrendCalculation.ReferenceValue.path}else{a.datapoint.trendValue="None"}}else{a.datapoint.trendCalculationReferenceValue=e.TrendCalculation.ReferenceValue}if(a.datapoint.trendCalculationReferencePath!==undefined||a.datapoint.trendCalculationReferenceValue!==undefined){a.datapoint.trendCalculationTresholds=[e.TrendCalculation.StrongDownDifference.valueOf(),e.TrendCalculation.DownDifference.valueOf(),e.TrendCalculation.UpDifference.valueOf(),e.TrendCalculation.StrongUpDifference.valueOf()]}}else{a.datapoint.trendValue="None"}}function b(e,t,a){if(e.TargetValue){if(e.TargetValue.$target){const i=e.TargetValue.$target;if(t.isPropertyAggregatable(i)){a.datapoint.targetPath=e.TargetValue.path}}else{a.datapoint.targetValue=e.TargetValue}}}function V(e){const t=e.annotations["Common"]||{};let a;Object.keys(t).forEach(e=>{const i=t[e];if(i.term==="com.sap.vocabularies.Common.v1.SemanticObject"){if(!i.qualifier||!a){a=i}}});if(a){const e={semanticObject:a.toString(),unavailableActions:[]};const i=Object.keys(t).find(e=>{var i;return t[e].term==="com.sap.vocabularies.Common.v1.SemanticObjectUnavailableActions"&&t[e].qualifier===((i=a)===null||i===void 0?void 0:i.qualifier)});if(i){e.unavailableActions=t[i]}return e}else{return undefined}}function U(e,t,a){var i,n;const o=a.getConverterContextFor(`/${t.entitySet}`);const l=new s(o.getEntityType(),o);if(!l.isAnalyticsSupported()){a.getDiagnostics().addIssue(C.Annotation,y.Medium,g.KPI_ISSUES.NO_ANALYTICS+t.entitySet);return undefined}let r;let u;let d;let p;let h;const T=o.getAnnotationsByTerm("UI","com.sap.vocabularies.UI.v1.KPI");const U=T.find(e=>e.qualifier===t.qualifier);if(U){var P,A,R,O,M;u=U.DataPoint;r=U.SelectionVariant;d=(P=U.Detail)===null||P===void 0?void 0:P.DefaultPresentationVariant;p=(A=d)===null||A===void 0?void 0:(R=A.Visualizations)===null||R===void 0?void 0:(O=R.find(e=>v(e.$target,"com.sap.vocabularies.UI.v1.ChartDefinitionType")))===null||O===void 0?void 0:O.$target;if((M=U.Detail)!==null&&M!==void 0&&M.SemanticObject){var N;h={semanticObject:U.Detail.SemanticObject.toString(),action:(N=U.Detail.Action)===null||N===void 0?void 0:N.toString(),unavailableActions:[]}}}else{const e=o.getAnnotationsByTerm("UI","com.sap.vocabularies.UI.v1.SelectionPresentationVariant");const i=e.find(e=>e.qualifier===t.qualifier);if(i){var $,w,L,_,E,j;r=i.SelectionVariant;d=i.PresentationVariant;u=($=d)===null||$===void 0?void 0:(w=$.Visualizations)===null||w===void 0?void 0:(L=w.find(e=>v(e.$target,"com.sap.vocabularies.UI.v1.DataPointType")))===null||L===void 0?void 0:L.$target;p=(_=d)===null||_===void 0?void 0:(E=_.Visualizations)===null||E===void 0?void 0:(j=E.find(e=>v(e.$target,"com.sap.vocabularies.UI.v1.ChartDefinitionType")))===null||j===void 0?void 0:j.$target}else{a.getDiagnostics().addIssue(C.Annotation,y.Medium,g.KPI_ISSUES.KPI_NOT_FOUND+t.qualifier);return undefined}}if(!d||!u||!p){a.getDiagnostics().addIssue(C.Annotation,y.Medium,g.KPI_ISSUES.KPI_DETAIL_NOT_FOUND+t.qualifier);return undefined}const q=u.Value.$target;if(!l.isPropertyAggregatable(q)){a.getDiagnostics().addIssue(C.Annotation,y.Medium,g.KPI_ISSUES.MAIN_PROPERTY_NOT_AGGREGATABLE+t.qualifier);return undefined}const K=m(p,d);if(!K){return undefined}const k={id:c(e),entitySet:t.entitySet,datapoint:{propertyPath:u.Value.path,annotationPath:o.getEntitySetBasedAnnotationPath(u.fullyQualifiedName),title:(i=u.Title)===null||i===void 0?void 0:i.toString(),description:(n=u.Description)===null||n===void 0?void 0:n.toString()},selectionVariantFilterDefinitions:r?f(r):undefined,chart:K};if(!h){if(t.detailNavigation){h={outboundNavigation:t.detailNavigation}}else{h=V(q)}}if(h){k.navigation=h}I(u,k);S(u,l,k);D(u,l,k);b(u,l,k);return k}function P(e){const t=e.getManifestWrapper().getKPIConfiguration(),a=[];Object.keys(t).forEach(i=>{const n=U(i,t[i],e);if(n){a.push(n)}});return a}r.getKPIDefinitions=P;return r},false);
|
|
6
6
|
//# sourceMappingURL=KPI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KPI.js","names":["sap","ui","define","IssueManager","SelectionVariantHelper","TableFormatterTypes","PropertyHelper","Aggregation","ID","Criticality","_exports","getMessageTypeFromCriticalityType","getKPIID","AggregationHelper","isPathExpression","MessageType","getFilterDefinitionsFromSelectionVariant","IssueType","IssueSeverity","IssueCategory","DeviationIndicatorFromTrendType","KPIChartTypeFromUI","convertKPIChart","chartAnnotation","presentationVariantAnnotation","_presentationVariantA","_presentationVariantA2","Measures","undefined","charDimensions","Dimensions","map","propertyPath","_chartAnnotation$Dime","_propertyPath$$target","_propertyPath$$target2","_dimAttribute$Role","dimAttribute","DimensionAttributes","find","attribute","_attribute$Dimension","Dimension","value","name","label","$target","annotations","Common","Label","toString","role","Role","replace","chartMeasures","_chartAnnotation$Meas","_propertyPath$$target3","_propertyPath$$target4","_measureAttribute$Rol","measureAttribute","MeasureAttributes","_attribute$Measure","Measure","chartType","ChartType","dimensions","measures","sortOrder","SortOrder","_sortOrder$Property","Property","descending","Descending","maxItems","MaxItems","valueOf","updateCurrency","datapointAnnotation","kpiDef","_targetValueProperty$","_targetValueProperty$3","targetValueProperty","Value","ISOCurrency","_targetValueProperty$2","currency","datapoint","unit","isCurrency","isPath","Unit","_targetValueProperty$4","updateCriticality","aggregationHelper","criticalityProperty","isPropertyAggregatable","criticalityPath","path","criticalityValue","None","CriticalityCalculation","criticalityCalculationMode","ImprovementDirection","criticalityCalculationThresholds","push","DeviationRangeLowValue","ToleranceRangeLowValue","AcceptanceRangeLowValue","AcceptanceRangeHighValue","ToleranceRangeHighValue","DeviationRangeHighValue","updateTrend","Trend","trendProperty","trendPath","trendValue","TrendCalculation","trendCalculationIsRelative","IsRelativeDifference","ReferenceValue","referenceProperty","trendCalculationReferencePath","trendCalculationReferenceValue","trendCalculationTresholds","StrongDownDifference","DownDifference","UpDifference","StrongUpDifference","updateTarget","TargetValue","targetProperty","targetPath","targetValue","getNavigationInfoFromProperty","property","semanticObjectAnnotation","Object","keys","forEach","annotationKey","annotation","term","qualifier","result","semanticObject","unavailableActions","key","_semanticObjectAnnota","createKPIDefinition","kpiName","kpiConfig","converterContext","_datapointAnnotation$","_datapointAnnotation$2","kpiConverterContext","getConverterContextFor","entitySet","getEntityType","isAnalyticsSupported","getDiagnostics","addIssue","Annotation","Medium","KPI_ISSUES","NO_ANALYTICS","selectionVariantAnnotation","navigationInfo","aKPIAnnotations","getAnnotationsByTerm","targetKPI","kpi","_targetKPI$Detail","_presentationVariantA3","_presentationVariantA4","_presentationVariantA5","_targetKPI$Detail2","DataPoint","SelectionVariant","Detail","DefaultPresentationVariant","Visualizations","viz","$Type","SemanticObject","_targetKPI$Detail$Act","action","Action","aSPVAnnotations","targetSPV","spv","_presentationVariantA6","_presentationVariantA7","_presentationVariantA8","_presentationVariantA9","_presentationVariantA10","_presentationVariantA11","PresentationVariant","KPI_NOT_FOUND","KPI_DETAIL_NOT_FOUND","datapointProperty","MAIN_PROPERTY_NOT_AGGREGATABLE","chartDef","id","annotationPath","getEntitySetBasedAnnotationPath","fullyQualifiedName","title","Title","description","Description","selectionVariantFilterDefinitions","chart","detailNavigation","outboundNavigation","navigation","getKPIDefinitions","kpiConfigs","getManifestWrapper","getKPIConfiguration","kpiDefs","oDef"],"sources":["KPI-dbg.js"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KPI.js","names":["sap","ui","define","IssueManager","SelectionVariantHelper","TableFormatterTypes","TypeGuards","Aggregation","ID","Criticality","_exports","getMessageTypeFromCriticalityType","getKPIID","AggregationHelper","isPathAnnotationExpression","isAnnotationOfType","MessageType","getFilterDefinitionsFromSelectionVariant","IssueType","IssueSeverity","IssueCategory","DeviationIndicatorFromTrendType","KPIChartTypeFromUI","convertKPIChart","chartAnnotation","presentationVariantAnnotation","_presentationVariantA","_presentationVariantA2","Measures","undefined","charDimensions","Dimensions","map","propertyPath","_chartAnnotation$Dime","_propertyPath$$target","_propertyPath$$target2","_dimAttribute$Role","dimAttribute","DimensionAttributes","find","attribute","_attribute$Dimension","Dimension","value","name","label","$target","annotations","Common","Label","toString","role","Role","replace","chartMeasures","_chartAnnotation$Meas","_propertyPath$$target3","_propertyPath$$target4","_measureAttribute$Rol","measureAttribute","MeasureAttributes","_attribute$Measure","Measure","chartType","ChartType","dimensions","measures","sortOrder","SortOrder","_sortOrder$Property","Property","descending","Descending","maxItems","MaxItems","valueOf","updateCurrency","datapointAnnotation","kpiDef","_targetValueProperty$","_targetValueProperty$3","targetValueProperty","Value","ISOCurrency","_targetValueProperty$2","currency","datapoint","unit","isCurrency","isPath","Unit","_targetValueProperty$4","updateCriticality","aggregationHelper","criticalityProperty","isPropertyAggregatable","criticalityPath","path","criticalityValue","None","CriticalityCalculation","criticalityCalculationMode","ImprovementDirection","criticalityCalculationThresholds","push","DeviationRangeLowValue","ToleranceRangeLowValue","AcceptanceRangeLowValue","AcceptanceRangeHighValue","ToleranceRangeHighValue","DeviationRangeHighValue","updateTrend","Trend","trendProperty","trendPath","trendValue","TrendCalculation","trendCalculationIsRelative","IsRelativeDifference","ReferenceValue","referenceProperty","trendCalculationReferencePath","trendCalculationReferenceValue","trendCalculationTresholds","StrongDownDifference","DownDifference","UpDifference","StrongUpDifference","updateTarget","TargetValue","targetProperty","targetPath","targetValue","getNavigationInfoFromProperty","property","semanticObjectAnnotation","Object","keys","forEach","annotationKey","annotation","term","qualifier","result","semanticObject","unavailableActions","key","_semanticObjectAnnota","createKPIDefinition","kpiName","kpiConfig","converterContext","_datapointAnnotation$","_datapointAnnotation$2","kpiConverterContext","getConverterContextFor","entitySet","getEntityType","isAnalyticsSupported","getDiagnostics","addIssue","Annotation","Medium","KPI_ISSUES","NO_ANALYTICS","selectionVariantAnnotation","navigationInfo","aKPIAnnotations","getAnnotationsByTerm","targetKPI","kpi","_targetKPI$Detail","_presentationVariantA3","_presentationVariantA4","_presentationVariantA5","_targetKPI$Detail2","DataPoint","SelectionVariant","Detail","DefaultPresentationVariant","Visualizations","viz","SemanticObject","_targetKPI$Detail$Act","action","Action","aSPVAnnotations","targetSPV","spv","_presentationVariantA6","_presentationVariantA7","_presentationVariantA8","_presentationVariantA9","_presentationVariantA10","_presentationVariantA11","PresentationVariant","KPI_NOT_FOUND","KPI_DETAIL_NOT_FOUND","datapointProperty","MAIN_PROPERTY_NOT_AGGREGATABLE","chartDef","id","annotationPath","getEntitySetBasedAnnotationPath","fullyQualifiedName","title","Title","description","Description","selectionVariantFilterDefinitions","chart","detailNavigation","outboundNavigation","navigation","getKPIDefinitions","kpiConfigs","getManifestWrapper","getKPIConfiguration","kpiDefs","oDef"],"sources":["KPI-dbg.js"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PathAnnotationExpression, Property } from "@sap-ux/vocabularies-types";
|
|
2
2
|
import type { SemanticObject } from "@sap-ux/vocabularies-types/vocabularies/Common";
|
|
3
3
|
import { CommonAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Common";
|
|
4
4
|
import type {
|
|
@@ -19,7 +19,7 @@ import { IssueCategory, IssueSeverity, IssueType } from "sap/fe/core/converters/
|
|
|
19
19
|
import type { FilterDefinition } from "sap/fe/core/converters/helpers/SelectionVariantHelper";
|
|
20
20
|
import { getFilterDefinitionsFromSelectionVariant } from "sap/fe/core/converters/helpers/SelectionVariantHelper";
|
|
21
21
|
import { MessageType } from "sap/fe/core/formatters/TableFormatterTypes";
|
|
22
|
-
import {
|
|
22
|
+
import { isAnnotationOfType, isPathAnnotationExpression } from "sap/fe/core/helpers/TypeGuards";
|
|
23
23
|
import { AggregationHelper } from "../../helpers/Aggregation";
|
|
24
24
|
import { getKPIID } from "../../helpers/ID";
|
|
25
25
|
import type { KPIConfiguration } from "../../ManifestSettings";
|
|
@@ -137,7 +137,7 @@ function updateCurrency(datapointAnnotation: DataPointType, kpiDef: KPIDefinitio
|
|
|
137
137
|
const targetValueProperty = datapointAnnotation.Value.$target as Property;
|
|
138
138
|
if (targetValueProperty.annotations.Measures?.ISOCurrency) {
|
|
139
139
|
const currency = targetValueProperty.annotations.Measures?.ISOCurrency;
|
|
140
|
-
if (
|
|
140
|
+
if (isPathAnnotationExpression(currency)) {
|
|
141
141
|
kpiDef.datapoint.unit = {
|
|
142
142
|
value: (currency.$target as unknown as Property).name,
|
|
143
143
|
isCurrency: true,
|
|
@@ -152,7 +152,7 @@ function updateCurrency(datapointAnnotation: DataPointType, kpiDef: KPIDefinitio
|
|
|
152
152
|
}
|
|
153
153
|
} else if (targetValueProperty.annotations.Measures?.Unit) {
|
|
154
154
|
const unit = targetValueProperty.annotations.Measures?.Unit;
|
|
155
|
-
if (
|
|
155
|
+
if (isPathAnnotationExpression(unit)) {
|
|
156
156
|
kpiDef.datapoint.unit = {
|
|
157
157
|
value: (unit.$target as unknown as Property).name,
|
|
158
158
|
isCurrency: false,
|
|
@@ -172,7 +172,7 @@ function updateCriticality(datapointAnnotation: DataPointType, aggregationHelper
|
|
|
172
172
|
if (datapointAnnotation.Criticality) {
|
|
173
173
|
if (typeof datapointAnnotation.Criticality === "object") {
|
|
174
174
|
// Criticality is a path --> check if the corresponding property is aggregatable
|
|
175
|
-
const criticalityProperty = (datapointAnnotation.Criticality as
|
|
175
|
+
const criticalityProperty = (datapointAnnotation.Criticality as PathAnnotationExpression<Property>).$target;
|
|
176
176
|
if (aggregationHelper.isPropertyAggregatable(criticalityProperty)) {
|
|
177
177
|
kpiDef.datapoint.criticalityPath = (datapointAnnotation.Criticality as PathAnnotationExpression<CriticalityType>).path;
|
|
178
178
|
} else {
|
|
@@ -217,7 +217,7 @@ function updateTrend(datapointAnnotation: DataPointType, aggregationHelper: Aggr
|
|
|
217
217
|
if (datapointAnnotation.Trend) {
|
|
218
218
|
if (typeof datapointAnnotation.Trend === "object") {
|
|
219
219
|
// Trend is a path --> check if the corresponding property is aggregatable
|
|
220
|
-
const trendProperty = (datapointAnnotation.Trend as
|
|
220
|
+
const trendProperty = (datapointAnnotation.Trend as PathAnnotationExpression<Property>).$target;
|
|
221
221
|
if (aggregationHelper.isPropertyAggregatable(trendProperty)) {
|
|
222
222
|
kpiDef.datapoint.trendPath = (datapointAnnotation.Trend as PathAnnotationExpression<TrendType>).path;
|
|
223
223
|
} else {
|
|
@@ -272,12 +272,11 @@ function updateTarget(datapointAnnotation: DataPointType, aggregationHelper: Agg
|
|
|
272
272
|
}
|
|
273
273
|
|
|
274
274
|
function getNavigationInfoFromProperty(property: Property): NavigationInfo | undefined {
|
|
275
|
-
const annotations
|
|
276
|
-
|
|
275
|
+
const annotations = property.annotations["Common"] || {};
|
|
277
276
|
// Look for the semanticObject annotation (if any)
|
|
278
277
|
let semanticObjectAnnotation: SemanticObject | undefined;
|
|
279
278
|
Object.keys(annotations).forEach((annotationKey) => {
|
|
280
|
-
const annotation = annotations[annotationKey];
|
|
279
|
+
const annotation = annotations[annotationKey as keyof typeof annotations];
|
|
281
280
|
if (annotation.term === CommonAnnotationTerms.SemanticObject) {
|
|
282
281
|
if (!annotation.qualifier || !semanticObjectAnnotation) {
|
|
283
282
|
// We always take the annotation without qualifier if there's one, otherwise we take the first one
|
|
@@ -295,12 +294,12 @@ function getNavigationInfoFromProperty(property: Property): NavigationInfo | und
|
|
|
295
294
|
// Look for the unavailable actions (if any)
|
|
296
295
|
const annotationKey = Object.keys(annotations).find((key) => {
|
|
297
296
|
return (
|
|
298
|
-
annotations[key].term === CommonAnnotationTerms.SemanticObjectUnavailableActions &&
|
|
299
|
-
annotations[key].qualifier === semanticObjectAnnotation?.qualifier
|
|
297
|
+
annotations[key as keyof typeof annotations].term === CommonAnnotationTerms.SemanticObjectUnavailableActions &&
|
|
298
|
+
annotations[key as keyof typeof annotations].qualifier === semanticObjectAnnotation?.qualifier
|
|
300
299
|
);
|
|
301
300
|
});
|
|
302
301
|
if (annotationKey) {
|
|
303
|
-
result.unavailableActions = annotations[annotationKey];
|
|
302
|
+
result.unavailableActions = annotations[annotationKey as keyof typeof annotations];
|
|
304
303
|
}
|
|
305
304
|
|
|
306
305
|
return result;
|
|
@@ -337,8 +336,8 @@ function createKPIDefinition(kpiName: string, kpiConfig: KPIConfiguration, conve
|
|
|
337
336
|
datapointAnnotation = targetKPI.DataPoint;
|
|
338
337
|
selectionVariantAnnotation = targetKPI.SelectionVariant;
|
|
339
338
|
presentationVariantAnnotation = targetKPI.Detail?.DefaultPresentationVariant;
|
|
340
|
-
chartAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz
|
|
341
|
-
return viz.$target
|
|
339
|
+
chartAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz) => {
|
|
340
|
+
return isAnnotationOfType<Chart>(viz.$target, UIAnnotationTypes.ChartDefinitionType);
|
|
342
341
|
})?.$target as Chart;
|
|
343
342
|
|
|
344
343
|
if (targetKPI.Detail?.SemanticObject) {
|
|
@@ -360,11 +359,11 @@ function createKPIDefinition(kpiName: string, kpiConfig: KPIConfiguration, conve
|
|
|
360
359
|
if (targetSPV) {
|
|
361
360
|
selectionVariantAnnotation = targetSPV.SelectionVariant;
|
|
362
361
|
presentationVariantAnnotation = targetSPV.PresentationVariant;
|
|
363
|
-
datapointAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz
|
|
364
|
-
return viz.$target
|
|
362
|
+
datapointAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz) => {
|
|
363
|
+
return isAnnotationOfType<DataPoint>(viz.$target, UIAnnotationTypes.DataPointType);
|
|
365
364
|
})?.$target as DataPoint;
|
|
366
|
-
chartAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz
|
|
367
|
-
return viz.$target
|
|
365
|
+
chartAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz) => {
|
|
366
|
+
return isAnnotationOfType<Chart>(viz.$target, UIAnnotationTypes.ChartDefinitionType);
|
|
368
367
|
})?.$target as Chart;
|
|
369
368
|
} else {
|
|
370
369
|
// Couldn't find a KPI or a SPV annotation with the qualifier from the manifest
|