@sapui5/sap.fe.core 1.111.1 → 1.112.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 +4 -4
- 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 +11 -11
- package/src/sap/fe/core/AppComponent-dbg.js +27 -5
- 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 +58 -3
- 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 +152 -365
- 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 +201 -478
- package/src/sap/fe/core/ExtensionAPI-dbg.js +2 -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 +9 -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 +163 -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 +169 -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 +147 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +905 -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} +290 -362
- 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 +181 -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 +890 -220
- 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 +974 -239
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +24 -34
- 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 +71 -61
- 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 +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.ts +24 -0
- 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 +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -3
- 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/TransactionHelper-dbg.js +45 -31
- 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 +52 -42
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +44 -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 +43 -63
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +77 -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 +114 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1505 -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 +1985 -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 -11
- 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 -13
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +43 -41
- 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 +44 -47
- 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 +12 -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 +32 -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 +1 -1
- package/src/sap/fe/core/converters/ConverterContext.ts +2 -1
- 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 +17 -1
- 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 +16 -0
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +61 -49
- 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 +65 -51
- 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 +65 -16
- 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 +62 -18
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1010 -957
- 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 +8 -8
- 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 +28 -26
- 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 +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -3
- package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +6 -6
- 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 +15 -15
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +97 -69
- 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 +161 -137
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +3 -3
- 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 +10 -9
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +48 -44
- 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 +130 -86
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +34 -26
- 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 +62 -45
- 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 +34 -13
- 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 +54 -20
- package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +3 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +8 -0
- 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 +9 -8
- 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 +8 -7
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +8 -7
- 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 +9 -6
- package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +25 -33
- 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 +35 -35
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +11 -4
- 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 +7 -1
- 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 +2 -2
- 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 +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -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 +6 -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 +6 -6
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.ts +8 -8
- 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 +20 -18
- 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 +22 -23
- package/src/sap/fe/core/helpers/MessageStrip-dbg.js +4 -5
- 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 +4 -4
- package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +354 -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 +408 -0
- package/src/sap/fe/core/helpers/ModelHelper-dbg.js +13 -13
- package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +13 -13
- 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 +26 -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 +19 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +93 -18
- 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 +70 -17
- 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/Synchronization-dbg.js +1 -1
- package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
- package/src/sap/fe/core/helpers/TypeGuards-dbg.js +5 -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 +12 -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 +127 -125
- 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/messagebundle.properties +33 -0
- package/src/sap/fe/core/messagebundle_ar.properties +12 -10
- package/src/sap/fe/core/messagebundle_bg.properties +11 -9
- package/src/sap/fe/core/messagebundle_ca.properties +11 -9
- package/src/sap/fe/core/messagebundle_cs.properties +11 -9
- package/src/sap/fe/core/messagebundle_cy.properties +11 -9
- package/src/sap/fe/core/messagebundle_da.properties +11 -9
- package/src/sap/fe/core/messagebundle_de.properties +3 -1
- package/src/sap/fe/core/messagebundle_el.properties +11 -9
- package/src/sap/fe/core/messagebundle_en.properties +3 -1
- package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -3
- package/src/sap/fe/core/messagebundle_es.properties +11 -9
- package/src/sap/fe/core/messagebundle_es_MX.properties +11 -9
- package/src/sap/fe/core/messagebundle_et.properties +11 -9
- package/src/sap/fe/core/messagebundle_fi.properties +11 -9
- package/src/sap/fe/core/messagebundle_fr.properties +11 -9
- package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
- package/src/sap/fe/core/messagebundle_hi.properties +2 -0
- package/src/sap/fe/core/messagebundle_hr.properties +11 -9
- package/src/sap/fe/core/messagebundle_hu.properties +11 -9
- package/src/sap/fe/core/messagebundle_id.properties +3 -1
- package/src/sap/fe/core/messagebundle_it.properties +11 -9
- package/src/sap/fe/core/messagebundle_iw.properties +11 -9
- package/src/sap/fe/core/messagebundle_ja.properties +11 -9
- package/src/sap/fe/core/messagebundle_kk.properties +11 -9
- package/src/sap/fe/core/messagebundle_ko.properties +2 -0
- package/src/sap/fe/core/messagebundle_lt.properties +11 -9
- package/src/sap/fe/core/messagebundle_lv.properties +2 -0
- package/src/sap/fe/core/messagebundle_ms.properties +12 -10
- package/src/sap/fe/core/messagebundle_nl.properties +12 -10
- package/src/sap/fe/core/messagebundle_no.properties +11 -9
- package/src/sap/fe/core/messagebundle_pl.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt.properties +11 -9
- package/src/sap/fe/core/messagebundle_pt_PT.properties +11 -9
- package/src/sap/fe/core/messagebundle_ro.properties +3 -1
- package/src/sap/fe/core/messagebundle_ru.properties +3 -1
- package/src/sap/fe/core/messagebundle_sh.properties +11 -9
- package/src/sap/fe/core/messagebundle_sk.properties +11 -9
- package/src/sap/fe/core/messagebundle_sl.properties +11 -9
- package/src/sap/fe/core/messagebundle_sv.properties +2 -0
- package/src/sap/fe/core/messagebundle_th.properties +11 -9
- package/src/sap/fe/core/messagebundle_tr.properties +11 -9
- package/src/sap/fe/core/messagebundle_uk.properties +11 -9
- package/src/sap/fe/core/messagebundle_vi.properties +12 -10
- package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
- 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 +4 -3
- 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 +15 -5
- 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 +3 -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 +29 -3
- package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +14 -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 +502 -333
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +18 -5
- 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 +41 -12
- 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/DataModelPathHelper-dbg.js +185 -86
- 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 +190 -82
- package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +2 -3
- 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 +1 -3
- 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/PropertyHelper-dbg.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
- package/src/sap/fe/core/templating/UIFormatters-dbg.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.ts +4 -0
- 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/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
|
@@ -9,6 +9,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
9
9
|
var isPropertyFilterable = FilterTemplating.isPropertyFilterable;
|
|
10
10
|
var getIsRequired = FilterTemplating.getIsRequired;
|
|
11
11
|
var checkFilterExpressionRestrictions = DataModelPathHelper.checkFilterExpressionRestrictions;
|
|
12
|
+
var not = BindingToolkit.not;
|
|
12
13
|
var compileExpression = BindingToolkit.compileExpression;
|
|
13
14
|
var IssueType = IssueManager.IssueType;
|
|
14
15
|
var IssueSeverity = IssueManager.IssueSeverity;
|
|
@@ -77,7 +78,6 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
77
78
|
}
|
|
78
79
|
return bAggregatable && bGroupable;
|
|
79
80
|
};
|
|
80
|
-
|
|
81
81
|
/**
|
|
82
82
|
* Method to get the visual filters object for a property.
|
|
83
83
|
*
|
|
@@ -92,15 +92,16 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
92
92
|
let visualFilter;
|
|
93
93
|
const oVisualFilter = FilterFields[sPropertyPath];
|
|
94
94
|
if (oVisualFilter !== null && oVisualFilter !== void 0 && (_oVisualFilter$visual = oVisualFilter.visualFilter) !== null && _oVisualFilter$visual !== void 0 && _oVisualFilter$visual.valueList) {
|
|
95
|
-
var _oVisualFilter$visual2, _property$annotations;
|
|
95
|
+
var _oVisualFilter$visual2, _property$annotations, _property$annotations2, _property$annotations3, _property$annotations4, _property$annotations5;
|
|
96
96
|
const oVFPath = oVisualFilter === null || oVisualFilter === void 0 ? void 0 : (_oVisualFilter$visual2 = oVisualFilter.visualFilter) === null || _oVisualFilter$visual2 === void 0 ? void 0 : _oVisualFilter$visual2.valueList;
|
|
97
97
|
const annotationQualifierSplit = oVFPath.split("#");
|
|
98
98
|
const qualifierVL = annotationQualifierSplit.length > 1 ? `ValueList#${annotationQualifierSplit[1]}` : annotationQualifierSplit[0];
|
|
99
99
|
const property = entityType.resolvePath(sPropertyPath);
|
|
100
|
-
const valueList = property === null || property === void 0 ? void 0 : (_property$annotations = property.annotations) === null || _property$annotations === void 0 ? void 0 : _property$annotations.Common[qualifierVL];
|
|
100
|
+
const valueList = property === null || property === void 0 ? void 0 : (_property$annotations = property.annotations) === null || _property$annotations === void 0 ? void 0 : (_property$annotations2 = _property$annotations.Common) === null || _property$annotations2 === void 0 ? void 0 : _property$annotations2[qualifierVL];
|
|
101
|
+
const isValueListWithFixedValues = (property === null || property === void 0 ? void 0 : (_property$annotations3 = property.annotations) === null || _property$annotations3 === void 0 ? void 0 : (_property$annotations4 = _property$annotations3.Common) === null || _property$annotations4 === void 0 ? void 0 : (_property$annotations5 = _property$annotations4.ValueListWithFixedValues) === null || _property$annotations5 === void 0 ? void 0 : _property$annotations5.valueOf()) || false;
|
|
101
102
|
if (valueList) {
|
|
102
103
|
var _converterContext$get, _collectionPathConver;
|
|
103
|
-
const collectionPath = valueList === null || valueList === void 0 ? void 0 : valueList.CollectionPath;
|
|
104
|
+
const collectionPath = valueList === null || valueList === void 0 ? void 0 : valueList.CollectionPath.toString();
|
|
104
105
|
const collectionPathConverterContext = converterContext.getConverterContextFor(`/${collectionPath || ((_converterContext$get = converterContext.getEntitySet()) === null || _converterContext$get === void 0 ? void 0 : _converterContext$get.name)}`);
|
|
105
106
|
const valueListParams = valueList === null || valueList === void 0 ? void 0 : valueList.Parameters;
|
|
106
107
|
let outParameter;
|
|
@@ -120,8 +121,8 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
120
121
|
}
|
|
121
122
|
if (valueListParams) {
|
|
122
123
|
for (const valueListParam of valueListParams) {
|
|
123
|
-
var
|
|
124
|
-
const localDataProperty = (
|
|
124
|
+
var _LocalDataProperty;
|
|
125
|
+
const localDataProperty = (_LocalDataProperty = valueListParam.LocalDataProperty) === null || _LocalDataProperty === void 0 ? void 0 : _LocalDataProperty.value;
|
|
125
126
|
const valueListProperty = valueListParam.ValueListProperty;
|
|
126
127
|
if (((valueListParam === null || valueListParam === void 0 ? void 0 : valueListParam.$Type) === "com.sap.vocabularies.Common.v1.ValueListParameterInOut" || (valueListParam === null || valueListParam === void 0 ? void 0 : valueListParam.$Type) === "com.sap.vocabularies.Common.v1.ValueListParameterOut") && sPropertyPath === localDataProperty) {
|
|
127
128
|
outParameter = valueListParam;
|
|
@@ -148,7 +149,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
148
149
|
}
|
|
149
150
|
const pvQualifier = valueList === null || valueList === void 0 ? void 0 : valueList.PresentationVariantQualifier;
|
|
150
151
|
const svQualifier = valueList === null || valueList === void 0 ? void 0 : valueList.SelectionVariantQualifier;
|
|
151
|
-
const pvAnnotation = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : (_collectionPathConver = collectionPathConverterContext.
|
|
152
|
+
const pvAnnotation = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : (_collectionPathConver = collectionPathConverterContext.getEntityType().annotations.UI) === null || _collectionPathConver === void 0 ? void 0 : _collectionPathConver[`PresentationVariant#${pvQualifier}`];
|
|
152
153
|
const aggregationHelper = new AggregationHelper(collectionPathConverterContext.getEntityType(), collectionPathConverterContext);
|
|
153
154
|
if (!aggregationHelper.isAnalyticsSupported()) {
|
|
154
155
|
return undefined;
|
|
@@ -159,6 +160,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
159
160
|
const contextPath = `/${valueList === null || valueList === void 0 ? void 0 : valueList.CollectionPath}` || `/${collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : (_collectionPathConver2 = collectionPathConverterContext.getEntitySet()) === null || _collectionPathConver2 === void 0 ? void 0 : _collectionPathConver2.name}`;
|
|
160
161
|
visualFilter = {};
|
|
161
162
|
visualFilter.contextPath = contextPath;
|
|
163
|
+
visualFilter.isValueListWithFixedValues = isValueListWithFixedValues;
|
|
162
164
|
let chartAnnotation;
|
|
163
165
|
for (const visualization of aVisualizations) {
|
|
164
166
|
var _visualization$$targe;
|
|
@@ -178,16 +180,16 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
178
180
|
if (bDimensionHidden === true || bDimensionHiddenFilter === true) {
|
|
179
181
|
return;
|
|
180
182
|
} else if (aVisualizations && aVisualizations.length) {
|
|
181
|
-
var _outParameter, _outParameter$LocalDa, _outParameter2, _requiredProperties, _visualFilter$require, _chartAnnotation3, _chartAnnotation3$$ta, _chartAnnotation3$$ta2, _chartAnnotation3$$ta3;
|
|
182
|
-
visualFilter.chartAnnotation = chartAnnotation ? collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : collectionPathConverterContext.getAbsoluteAnnotationPath(`${chartAnnotation.fullyQualifiedName}/$AnnotationPath/`) : undefined;
|
|
183
|
+
var _collectionPathConver3, _outParameter, _outParameter$LocalDa, _outParameter2, _requiredProperties, _visualFilter$require, _chartAnnotation3, _chartAnnotation3$$ta, _chartAnnotation3$$ta2, _chartAnnotation3$$ta3;
|
|
184
|
+
visualFilter.chartAnnotation = chartAnnotation ? collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : collectionPathConverterContext.getAbsoluteAnnotationPath(`${chartAnnotation.$target.fullyQualifiedName}/$AnnotationPath/`) : undefined;
|
|
183
185
|
// This needs to be done to avoid repetitive entity type in case of non-parameterized entity set e.g /SalesOrderManage/com.c_salesordermanage_sd_aggregate.SalesOrderManage
|
|
184
|
-
const
|
|
186
|
+
const entitySetName = (_collectionPathConver3 = collectionPathConverterContext.getEntitySet()) === null || _collectionPathConver3 === void 0 ? void 0 : _collectionPathConver3.name;
|
|
185
187
|
let presentationAnnotation;
|
|
186
188
|
const relativeAnnotationPath = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : collectionPathConverterContext.getRelativeAnnotationPath(`${pvAnnotation.fullyQualifiedName}/`, collectionPathConverterContext.getEntityType());
|
|
187
189
|
if (parameterEntityType) {
|
|
188
190
|
presentationAnnotation = collectionPathConverterContext.getContextPath() + "/" + relativeAnnotationPath;
|
|
189
191
|
} else {
|
|
190
|
-
presentationAnnotation = "/" +
|
|
192
|
+
presentationAnnotation = "/" + entitySetName + "/" + relativeAnnotationPath;
|
|
191
193
|
}
|
|
192
194
|
visualFilter.presentationAnnotation = pvAnnotation ? presentationAnnotation : undefined;
|
|
193
195
|
visualFilter.outParameter = (_outParameter = outParameter) === null || _outParameter === void 0 ? void 0 : (_outParameter$LocalDa = _outParameter.LocalDataProperty) === null || _outParameter$LocalDa === void 0 ? void 0 : _outParameter$LocalDa.value;
|
|
@@ -198,18 +200,18 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
198
200
|
throw new Error("Range AllowedExpression is not supported for visual filters");
|
|
199
201
|
}
|
|
200
202
|
const bIsMainEntitySetSingleSelection = checkFilterExpressionRestrictions(converterContext.getConverterContextFor(converterContext.getAbsoluteAnnotationPath(sPropertyPath)).getDataModelObjectPath(), ["SingleValue"]);
|
|
201
|
-
visualFilter.multipleSelectionAllowed = compileExpression(
|
|
203
|
+
visualFilter.multipleSelectionAllowed = compileExpression(not(bIsMainEntitySetSingleSelection));
|
|
202
204
|
visualFilter.required = getIsRequired(converterContext, sPropertyPath);
|
|
203
205
|
let svAnnotation;
|
|
204
206
|
if (svQualifier) {
|
|
205
|
-
var
|
|
206
|
-
svAnnotation = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : (
|
|
207
|
+
var _collectionPathConver4, _svAnnotation;
|
|
208
|
+
svAnnotation = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : (_collectionPathConver4 = collectionPathConverterContext.getEntityTypeAnnotation(`@UI.SelectionVariant#${svQualifier}`)) === null || _collectionPathConver4 === void 0 ? void 0 : _collectionPathConver4.annotation;
|
|
207
209
|
let selectionVariantAnnotation;
|
|
208
|
-
const relativeSelectionVariantPath = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : collectionPathConverterContext.getRelativeAnnotationPath(`${svAnnotation.fullyQualifiedName}/`, collectionPathConverterContext.getEntityType());
|
|
210
|
+
const relativeSelectionVariantPath = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : collectionPathConverterContext.getRelativeAnnotationPath(`${(_svAnnotation = svAnnotation) === null || _svAnnotation === void 0 ? void 0 : _svAnnotation.fullyQualifiedName}/`, collectionPathConverterContext.getEntityType());
|
|
209
211
|
if (parameterEntityType) {
|
|
210
212
|
selectionVariantAnnotation = collectionPathConverterContext.getContextPath() + "/" + relativeSelectionVariantPath;
|
|
211
213
|
} else {
|
|
212
|
-
selectionVariantAnnotation = "/" +
|
|
214
|
+
selectionVariantAnnotation = "/" + entitySetName + "/" + relativeSelectionVariantPath;
|
|
213
215
|
}
|
|
214
216
|
visualFilter.selectionVariantAnnotation = svAnnotation ? selectionVariantAnnotation : undefined;
|
|
215
217
|
}
|
|
@@ -226,13 +228,12 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
226
228
|
return restrictedNavProp.NavigationProperty.value === sNavigationProperty;
|
|
227
229
|
}
|
|
228
230
|
});
|
|
229
|
-
requiredProperties = oRestrictedProperty === null || oRestrictedProperty === void 0 ? void 0 : (_oRestrictedProperty$ = oRestrictedProperty.FilterRestrictions) === null || _oRestrictedProperty$ === void 0 ? void 0 : _oRestrictedProperty$.RequiredProperties;
|
|
231
|
+
requiredProperties = (oRestrictedProperty === null || oRestrictedProperty === void 0 ? void 0 : (_oRestrictedProperty$ = oRestrictedProperty.FilterRestrictions) === null || _oRestrictedProperty$ === void 0 ? void 0 : _oRestrictedProperty$.RequiredProperties) ?? [];
|
|
230
232
|
} else {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
requiredProperties = entitySetAnnotations === null || entitySetAnnotations === void 0 ? void 0 : (_entitySetAnnotations = entitySetAnnotations.Capabilities) === null || _entitySetAnnotations === void 0 ? void 0 : (_entitySetAnnotations2 = _entitySetAnnotations.FilterRestrictions) === null || _entitySetAnnotations2 === void 0 ? void 0 : _entitySetAnnotations2.RequiredProperties;
|
|
233
|
+
const entitySetOrSingleton = collectionPathConverterContext === null || collectionPathConverterContext === void 0 ? void 0 : collectionPathConverterContext.getEntitySet();
|
|
234
|
+
if (!ModelHelper.isSingleton(entitySetOrSingleton)) {
|
|
235
|
+
var _entitySetOrSingleton, _entitySetOrSingleton2, _entitySetOrSingleton3;
|
|
236
|
+
requiredProperties = (entitySetOrSingleton === null || entitySetOrSingleton === void 0 ? void 0 : (_entitySetOrSingleton = entitySetOrSingleton.annotations) === null || _entitySetOrSingleton === void 0 ? void 0 : (_entitySetOrSingleton2 = _entitySetOrSingleton.Capabilities) === null || _entitySetOrSingleton2 === void 0 ? void 0 : (_entitySetOrSingleton3 = _entitySetOrSingleton2.FilterRestrictions) === null || _entitySetOrSingleton3 === void 0 ? void 0 : _entitySetOrSingleton3.RequiredProperties) ?? [];
|
|
236
237
|
}
|
|
237
238
|
}
|
|
238
239
|
let requiredPropertyPaths = [];
|
|
@@ -248,9 +249,15 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
248
249
|
if (!visualFilter.selectionVariantAnnotation) {
|
|
249
250
|
visualFilter.showOverlayInitially = true;
|
|
250
251
|
} else {
|
|
251
|
-
var
|
|
252
|
-
let selectOptions = ((
|
|
253
|
-
|
|
252
|
+
var _svAnnotation2, _svAnnotation2$Select, _svAnnotation3, _svAnnotation3$Parame;
|
|
253
|
+
let selectOptions = ((_svAnnotation2 = svAnnotation) === null || _svAnnotation2 === void 0 ? void 0 : (_svAnnotation2$Select = _svAnnotation2.SelectOptions) === null || _svAnnotation2$Select === void 0 ? void 0 : _svAnnotation2$Select.map(oSelectOption => {
|
|
254
|
+
var _oSelectOption$Proper;
|
|
255
|
+
return (_oSelectOption$Proper = oSelectOption.PropertyName) === null || _oSelectOption$Proper === void 0 ? void 0 : _oSelectOption$Proper.value;
|
|
256
|
+
})) || [];
|
|
257
|
+
const parameterOptions = ((_svAnnotation3 = svAnnotation) === null || _svAnnotation3 === void 0 ? void 0 : (_svAnnotation3$Parame = _svAnnotation3.Parameters) === null || _svAnnotation3$Parame === void 0 ? void 0 : _svAnnotation3$Parame.map(oParameterOption => {
|
|
258
|
+
var _PropertyName;
|
|
259
|
+
return (_PropertyName = oParameterOption.PropertyName) === null || _PropertyName === void 0 ? void 0 : _PropertyName.value;
|
|
260
|
+
})) || [];
|
|
254
261
|
selectOptions = selectOptions.concat(parameterOptions);
|
|
255
262
|
requiredPropertyPaths = requiredPropertyPaths.sort();
|
|
256
263
|
selectOptions = selectOptions.sort();
|
|
@@ -273,6 +280,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
273
280
|
}
|
|
274
281
|
} else {
|
|
275
282
|
converterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.High, IssueType.MALFORMED_VISUALFILTERS.CHART);
|
|
283
|
+
return;
|
|
276
284
|
}
|
|
277
285
|
} else {
|
|
278
286
|
converterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.High, IssueType.MALFORMED_VISUALFILTERS.PRESENTATIONVARIANT);
|
|
@@ -288,4 +296,4 @@ sap.ui.define(["sap/fe/core/converters/helpers/Aggregation", "sap/fe/core/conver
|
|
|
288
296
|
_exports.getVisualFilters = getVisualFilters;
|
|
289
297
|
return _exports;
|
|
290
298
|
}, false);
|
|
291
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hlY2tWRkFnZ3JlZ2F0aW9uIiwiY29udmVydGVyQ29udGV4dCIsImNoYXJ0QW5ub3RhdGlvbiIsImFnZ3JlZ2F0aW9uSGVscGVyIiwic01lYXN1cmVQYXRoIiwiYkdyb3VwYWJsZSIsImJBZ2dyZWdhdGFibGUiLCJzTWVhc3VyZSIsImN1c3RvbUFnZ3JlZ2F0ZXMiLCJnZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucyIsImFUcmFuc0FnZ3JlZ2F0aW9ucyIsImdldFRyYW5zQWdncmVnYXRpb25zIiwiYUN1c3RBZ2dNZWFzdXJlIiwiJHRhcmdldCIsIk1lYXN1cmVzIiwiZmlsdGVyIiwiY3VzdEFnZyIsInF1YWxpZmllciIsInZhbHVlIiwibGVuZ3RoIiwiRHluYW1pY01lYXN1cmVzIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImdldEFic29sdXRlQW5ub3RhdGlvblBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0T2JqZWN0IiwiTmFtZSIsImdldEFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzIiwic0RpbWVuc2lvbiIsIkRpbWVuc2lvbnMiLCJzb21lIiwib0FnZ3JlZ2F0ZSIsIkFnZ3JlZ2F0YWJsZVByb3BlcnR5IiwiYUFnZ3JlZ2F0YWJsZVByb3BzRnJvbUNvbnRhaW5lciIsImdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMiLCJhR3JvdXBhYmxlUHJvcHNGcm9tQ29udGFpbmVyIiwiZ2V0R3JvdXBhYmxlUHJvcGVydGllcyIsImFnZ3JlZ2F0YWJsZVByb3AiLCJQcm9wZXJ0eSIsImdyb3VwYWJsZVByb3AiLCJnZXRWaXN1YWxGaWx0ZXJzIiwiZW50aXR5VHlwZSIsInNQcm9wZXJ0eVBhdGgiLCJGaWx0ZXJGaWVsZHMiLCJ2aXN1YWxGaWx0ZXIiLCJvVmlzdWFsRmlsdGVyIiwidmFsdWVMaXN0Iiwib1ZGUGF0aCIsImFubm90YXRpb25RdWFsaWZpZXJTcGxpdCIsInNwbGl0IiwicXVhbGlmaWVyVkwiLCJwcm9wZXJ0eSIsInJlc29sdmVQYXRoIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJjb2xsZWN0aW9uUGF0aCIsIkNvbGxlY3Rpb25QYXRoIiwiY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0IiwiZ2V0RW50aXR5U2V0IiwibmFtZSIsInZhbHVlTGlzdFBhcmFtcyIsIlBhcmFtZXRlcnMiLCJvdXRQYXJhbWV0ZXIiLCJpblBhcmFtZXRlcnMiLCJhUGFyYW1ldGVycyIsInBhcmFtZXRlckVudGl0eVR5cGUiLCJnZXRQYXJhbWV0ZXJFbnRpdHlUeXBlIiwia2V5cyIsIm1hcCIsImtleSIsImdldENvbnRleHRQYXRoIiwiZm9yRWFjaCIsInBhcmFtZXRlciIsInB1c2giLCJsb2NhbERhdGFQcm9wZXJ0eSIsInZhbHVlTGlzdFByb3BlcnR5IiwidmFsdWVMaXN0UGFyYW0iLCJMb2NhbERhdGFQcm9wZXJ0eSIsIlZhbHVlTGlzdFByb3BlcnR5IiwiJFR5cGUiLCJiTm90RmlsdGVyYWJsZSIsImlzUHJvcGVydHlGaWx0ZXJhYmxlIiwib0luUGFyYW1ldGVyIiwibWFpbkVudGl0eVNldEluTWFwcGluZ0FsbG93ZWRFeHByZXNzaW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJjaGVja0ZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMiLCJ2YWx1ZUxpc3RFbnRpdHlTZXRJbk1hcHBpbmdBbGxvd2VkRXhwcmVzc2lvbiIsIkVycm9yIiwicHZRdWFsaWZpZXIiLCJQcmVzZW50YXRpb25WYXJpYW50UXVhbGlmaWVyIiwic3ZRdWFsaWZpZXIiLCJTZWxlY3Rpb25WYXJpYW50UXVhbGlmaWVyIiwicHZBbm5vdGF0aW9uIiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJhbm5vdGF0aW9uIiwiQWdncmVnYXRpb25IZWxwZXIiLCJnZXRFbnRpdHlUeXBlIiwiaXNBbmFseXRpY3NTdXBwb3J0ZWQiLCJ1bmRlZmluZWQiLCJhVmlzdWFsaXphdGlvbnMiLCJWaXN1YWxpemF0aW9ucyIsImNvbnRleHRQYXRoIiwidmlzdWFsaXphdGlvbiIsInRlcm0iLCJfYmdldFZGQWdncmVnYXRpb24iLCJiRGltZW5zaW9uSGlkZGVuIiwiVUkiLCJIaWRkZW4iLCJ2YWx1ZU9mIiwiYkRpbWVuc2lvbkhpZGRlbkZpbHRlciIsIkhpZGRlbkZpbHRlciIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImVudGl0eVR5cGVOYW1lIiwicHJlc2VudGF0aW9uQW5ub3RhdGlvbiIsInJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoIiwidmFsdWVsaXN0UHJvcGVydHkiLCJiSXNSYW5nZSIsImJJc01haW5FbnRpdHlTZXRTaW5nbGVTZWxlY3Rpb24iLCJtdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWQiLCJyZXF1aXJlZCIsImdldElzUmVxdWlyZWQiLCJzdkFubm90YXRpb24iLCJzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiIsInJlbGF0aXZlU2VsZWN0aW9uVmFyaWFudFBhdGgiLCJyZXF1aXJlZFByb3BlcnRpZXMiLCJzRW50aXR5U2V0Iiwic05hdmlnYXRpb25Qcm9wZXJ0eSIsIm9FbnRpdHlTZXRDb252ZXJ0ZXJDb250ZXh0IiwiYVJlc3RyaWN0ZWRQcm9wZXJ0aWVzIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJDYXBhYmlsaXRpZXMiLCJOYXZpZ2F0aW9uUmVzdHJpY3Rpb25zIiwiUmVzdHJpY3RlZFByb3BlcnRpZXMiLCJvUmVzdHJpY3RlZFByb3BlcnR5IiwiZmluZCIsInJlc3RyaWN0ZWROYXZQcm9wIiwiTmF2aWdhdGlvblByb3BlcnR5IiwidHlwZSIsIkZpbHRlclJlc3RyaWN0aW9ucyIsIlJlcXVpcmVkUHJvcGVydGllcyIsImVudGl0eVNldEFubm90YXRpb25zIiwiTW9kZWxIZWxwZXIiLCJpc1NpbmdsZXRvbiIsInJlcXVpcmVkUHJvcGVydHlQYXRocyIsIm9SZXF1aXJlUHJvcGVydHkiLCJjb25jYXQiLCJzaG93T3ZlcmxheUluaXRpYWxseSIsInNlbGVjdE9wdGlvbnMiLCJTZWxlY3RPcHRpb25zIiwib1NlbGVjdE9wdGlvbiIsIlByb3BlcnR5TmFtZSIsInBhcmFtZXRlck9wdGlvbnMiLCJvUGFyYW1ldGVyT3B0aW9uIiwic29ydCIsInNQYXRoIiwiaW5kZXhPZiIsInNEaW1lbnNpb25UeXBlIiwiQ2hhcnRUeXBlIiwicmVuZGVyTGluZUNoYXJ0IiwiZ2V0RGlhZ25vc3RpY3MiLCJhZGRJc3N1ZSIsIklzc3VlQ2F0ZWdvcnkiLCJBbm5vdGF0aW9uIiwiSXNzdWVTZXZlcml0eSIsIkhpZ2giLCJJc3N1ZVR5cGUiLCJNQUxGT1JNRURfVklTVUFMRklMVEVSUyIsIkNIQVJUIiwiUFJFU0VOVEFUSU9OVkFSSUFOVCIsIlZBTFVFTElTVCIsIk1hbmlmZXN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaXN1YWxGaWx0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5VHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBDdXN0b21BZ2dyZWdhdGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NhcGFiaWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NhcGFiaWxpdGllc19FZG1cIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25IZWxwZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5LCBJc3N1ZVNldmVyaXR5LCBJc3N1ZVR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lzc3VlTWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJGaWVsZE1hbmlmZXN0Q29uZmlndXJhdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgY2hlY2tGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0SXNSZXF1aXJlZCwgaXNQcm9wZXJ0eUZpbHRlcmFibGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9GaWx0ZXJUZW1wbGF0aW5nXCI7XG5cbmV4cG9ydCB0eXBlIFZpc3VhbEZpbHRlcnMgPSB7XG5cdGRpbWVuc2lvblBhdGg/OiBzdHJpbmc7XG5cdG1lYXN1cmVQYXRoPzogc3RyaW5nO1xuXHRsYWJlbD86IHN0cmluZztcblx0Y2hhcnRBbm5vdGF0aW9uPzogc3RyaW5nO1xuXHRwcmVzZW50YXRpb25Bbm5vdGF0aW9uPzogc3RyaW5nO1xuXHR2aXNpYmxlPzogYm9vbGVhbjtcblx0b3V0UGFyYW1ldGVyPzogc3RyaW5nO1xuXHRpblBhcmFtZXRlcnM/OiBvYmplY3RbXTtcblx0dmFsdWVsaXN0UHJvcGVydHk/OiBzdHJpbmc7XG5cdGNvbnRleHRQYXRoPzogc3RyaW5nO1xuXHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbj86IHN0cmluZztcblx0bXVsdGlwbGVTZWxlY3Rpb25BbGxvd2VkPzogYm9vbGVhbjtcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xuXHRzaG93T3ZlcmxheUluaXRpYWxseT86IGJvb2xlYW47XG5cdHJlbmRlckxpbmVDaGFydD86IGJvb2xlYW47XG5cdHJlcXVpcmVkUHJvcGVydGllcz86IG9iamVjdFtdO1xufTtcblxuLyoqXG4gKiBDaGVja3MgdGhhdCBtZWFzdXJlcyBhbmQgZGltZW5zaW9ucyBvZiB0aGUgdmlzdWFsIGZpbHRlciBjaGFydCBjYW4gYmUgYWdncmVnYXRlZCBhbmQgZ3JvdXBlZC5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBUaGUgY29udmVydGVyIGNvbnRleHRcbiAqIEBwYXJhbSBjaGFydEFubm90YXRpb24gVGhlIGNoYXJ0IGFubm90YXRpb25cbiAqIEBwYXJhbSBhZ2dyZWdhdGlvbkhlbHBlciBUaGUgYWdncmVnYXRpb24gaGVscGVyXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG1lYXN1cmUgY2FuIGJlIGdyb3VwZWQgYW5kIGFnZ3JlZ2F0ZWRcbiAqL1xuY29uc3QgX2NoZWNrVkZBZ2dyZWdhdGlvbiA9IGZ1bmN0aW9uIChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0Y2hhcnRBbm5vdGF0aW9uOiBhbnksXG5cdGFnZ3JlZ2F0aW9uSGVscGVyOiBhbnlcbik6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRsZXQgc01lYXN1cmVQYXRoLCBiR3JvdXBhYmxlLCBiQWdncmVnYXRhYmxlO1xuXHRsZXQgc01lYXN1cmU6IGFueTtcblx0Y29uc3QgY3VzdG9tQWdncmVnYXRlcyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEN1c3RvbUFnZ3JlZ2F0ZURlZmluaXRpb25zKCk7XG5cdGxldCBhVHJhbnNBZ2dyZWdhdGlvbnMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRUcmFuc0FnZ3JlZ2F0aW9ucygpO1xuXHRsZXQgYUN1c3RBZ2dNZWFzdXJlID0gW10gYXMgQXJyYXk8Q3VzdG9tQWdncmVnYXRlPjtcblx0Ly8gaWYgdGhlIGNoYXJ0IGRlZmluaXRpb24gaGFzIGN1c3RvbSBhZ2dyZWdhdGVzLCB0aGVuIGNvbnNpZGVyIHRoZW0sIGVsc2UgZmFsbCBiYWNrIHRvIHRoZSBtZWFzdXJlcyB3aXRoIHRyYW5zZm9ybWF0aW9uIGFnZ3JlZ2F0ZXNcblx0aWYgKGNoYXJ0QW5ub3RhdGlvbj8uJHRhcmdldD8uTWVhc3VyZXMpIHtcblx0XHRhQ3VzdEFnZ01lYXN1cmUgPSBjdXN0b21BZ2dyZWdhdGVzLmZpbHRlcihmdW5jdGlvbiAoY3VzdEFnZzogQ3VzdG9tQWdncmVnYXRlKSB7XG5cdFx0XHRyZXR1cm4gY3VzdEFnZy5xdWFsaWZpZXIgPT09IGNoYXJ0QW5ub3RhdGlvbj8uJHRhcmdldD8uTWVhc3VyZXM/LlswXT8udmFsdWU7XG5cdFx0fSk7XG5cdFx0c01lYXN1cmUgPSBhQ3VzdEFnZ01lYXN1cmUubGVuZ3RoID4gMCA/IGFDdXN0QWdnTWVhc3VyZVswXS5xdWFsaWZpZXIgOiBjaGFydEFubm90YXRpb24/LiR0YXJnZXQ/Lk1lYXN1cmVzPy5bMF0/LnZhbHVlO1xuXHR9XG5cdC8vIGNvbnNpZGVyIGR5bmFtaWMgbWVhc3VyZXMgb25seSBpZiB0aGVyZSBhcmUgbm8gbWVhc3VyZXMgd2l0aCBjdXN0b20gYWdncmVnYXRlc1xuXHRpZiAoIWFDdXN0QWdnTWVhc3VyZVswXSAmJiBjaGFydEFubm90YXRpb24/LiR0YXJnZXQ/LkR5bmFtaWNNZWFzdXJlcykge1xuXHRcdHNNZWFzdXJlID0gY29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldENvbnZlcnRlckNvbnRleHRGb3IoY29udmVydGVyQ29udGV4dC5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKGNoYXJ0QW5ub3RhdGlvbi4kdGFyZ2V0LkR5bmFtaWNNZWFzdXJlcz8uWzBdPy52YWx1ZSkpXG5cdFx0XHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnRhcmdldE9iamVjdC5OYW1lO1xuXHRcdGFUcmFuc0FnZ3JlZ2F0aW9ucyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzKFwiQWdncmVnYXRlZFByb3BlcnR5XCIpO1xuXHR9IGVsc2Uge1xuXHRcdGFUcmFuc0FnZ3JlZ2F0aW9ucyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzKFwiQWdncmVnYXRlZFByb3BlcnRpZXNcIilbMF07XG5cdH1cblxuXHRjb25zdCBzRGltZW5zaW9uOiBzdHJpbmcgPSBjaGFydEFubm90YXRpb24/LiR0YXJnZXQ/LkRpbWVuc2lvbnNbMF0/LnZhbHVlO1xuXG5cdGlmIChcblx0XHRjdXN0b21BZ2dyZWdhdGVzLnNvbWUoZnVuY3Rpb24gKGN1c3RBZ2c6IEN1c3RvbUFnZ3JlZ2F0ZSkge1xuXHRcdFx0cmV0dXJuIGN1c3RBZ2cucXVhbGlmaWVyID09PSBzTWVhc3VyZTtcblx0XHR9KVxuXHQpIHtcblx0XHRzTWVhc3VyZVBhdGggPSBzTWVhc3VyZTtcblx0fSBlbHNlIGlmIChhVHJhbnNBZ2dyZWdhdGlvbnMgJiYgYVRyYW5zQWdncmVnYXRpb25zWzBdKSB7XG5cdFx0YVRyYW5zQWdncmVnYXRpb25zLnNvbWUoZnVuY3Rpb24gKG9BZ2dyZWdhdGU6IGFueSkge1xuXHRcdFx0aWYgKG9BZ2dyZWdhdGUuTmFtZSA9PT0gc01lYXN1cmUpIHtcblx0XHRcdFx0c01lYXN1cmVQYXRoID0gb0FnZ3JlZ2F0ZT8uQWdncmVnYXRhYmxlUHJvcGVydHkudmFsdWU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0Y29uc3QgYUFnZ3JlZ2F0YWJsZVByb3BzRnJvbUNvbnRhaW5lciA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMoKTtcblx0Y29uc3QgYUdyb3VwYWJsZVByb3BzRnJvbUNvbnRhaW5lciA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEdyb3VwYWJsZVByb3BlcnRpZXMoKTtcblx0aWYgKGFBZ2dyZWdhdGFibGVQcm9wc0Zyb21Db250YWluZXIgJiYgYUFnZ3JlZ2F0YWJsZVByb3BzRnJvbUNvbnRhaW5lci5sZW5ndGgpIHtcblx0XHRmb3IgKGNvbnN0IGFnZ3JlZ2F0YWJsZVByb3Agb2YgYUFnZ3JlZ2F0YWJsZVByb3BzRnJvbUNvbnRhaW5lcikge1xuXHRcdFx0aWYgKGFnZ3JlZ2F0YWJsZVByb3A/LlByb3BlcnR5Py52YWx1ZSA9PT0gc01lYXN1cmVQYXRoKSB7XG5cdFx0XHRcdGJBZ2dyZWdhdGFibGUgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRpZiAoYUdyb3VwYWJsZVByb3BzRnJvbUNvbnRhaW5lciAmJiBhR3JvdXBhYmxlUHJvcHNGcm9tQ29udGFpbmVyLmxlbmd0aCkge1xuXHRcdGZvciAoY29uc3QgZ3JvdXBhYmxlUHJvcCBvZiBhR3JvdXBhYmxlUHJvcHNGcm9tQ29udGFpbmVyKSB7XG5cdFx0XHRpZiAoZ3JvdXBhYmxlUHJvcD8udmFsdWUgPT09IHNEaW1lbnNpb24pIHtcblx0XHRcdFx0Ykdyb3VwYWJsZSA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHJldHVybiBiQWdncmVnYXRhYmxlICYmIGJHcm91cGFibGU7XG59O1xuXG4vKipcbiAqIE1ldGhvZCB0byBnZXQgdGhlIHZpc3VhbCBmaWx0ZXJzIG9iamVjdCBmb3IgYSBwcm9wZXJ0eS5cbiAqXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgY29udmVydGVyIGNvbnRleHRcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjaGFydCBhbm5vdGF0aW9uXG4gKiBAcGFyYW0gc1Byb3BlcnR5UGF0aCBUaGUgYWdncmVnYXRpb24gaGVscGVyXG4gKiBAcGFyYW0gRmlsdGVyRmllbGRzIFRoZSBhZ2dyZWdhdGlvbiBoZWxwZXJcbiAqIEByZXR1cm5zIHsgVmlzdWFsRmlsdGVycyB8IHVuZGVmaW5lZH0gVGhlIHZpc3VhbCBmaWx0ZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaXN1YWxGaWx0ZXJzKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzUHJvcGVydHlQYXRoOiBzdHJpbmcsXG5cdEZpbHRlckZpZWxkczogUmVjb3JkPHN0cmluZywgRmlsdGVyRmllbGRNYW5pZmVzdENvbmZpZ3VyYXRpb24+XG4pOiBWaXN1YWxGaWx0ZXJzIHwgdW5kZWZpbmVkIHtcblx0bGV0IHZpc3VhbEZpbHRlcjogVmlzdWFsRmlsdGVycyB8IHVuZGVmaW5lZDtcblx0Y29uc3Qgb1Zpc3VhbEZpbHRlcjogRmlsdGVyRmllbGRNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSBGaWx0ZXJGaWVsZHNbc1Byb3BlcnR5UGF0aF07XG5cdGlmIChvVmlzdWFsRmlsdGVyPy52aXN1YWxGaWx0ZXI/LnZhbHVlTGlzdCkge1xuXHRcdGNvbnN0IG9WRlBhdGggPSBvVmlzdWFsRmlsdGVyPy52aXN1YWxGaWx0ZXI/LnZhbHVlTGlzdDtcblx0XHRjb25zdCBhbm5vdGF0aW9uUXVhbGlmaWVyU3BsaXQgPSBvVkZQYXRoLnNwbGl0KFwiI1wiKTtcblx0XHRjb25zdCBxdWFsaWZpZXJWTCA9IGFubm90YXRpb25RdWFsaWZpZXJTcGxpdC5sZW5ndGggPiAxID8gYFZhbHVlTGlzdCMke2Fubm90YXRpb25RdWFsaWZpZXJTcGxpdFsxXX1gIDogYW5ub3RhdGlvblF1YWxpZmllclNwbGl0WzBdO1xuXHRcdGNvbnN0IHByb3BlcnR5ID0gZW50aXR5VHlwZS5yZXNvbHZlUGF0aChzUHJvcGVydHlQYXRoKTtcblx0XHRjb25zdCB2YWx1ZUxpc3Q6IGFueSA9IHByb3BlcnR5Py5hbm5vdGF0aW9ucz8uQ29tbW9uW3F1YWxpZmllclZMXTtcblx0XHRpZiAodmFsdWVMaXN0KSB7XG5cdFx0XHRjb25zdCBjb2xsZWN0aW9uUGF0aCA9IHZhbHVlTGlzdD8uQ29sbGVjdGlvblBhdGg7XG5cdFx0XHRjb25zdCBjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlckNvbnRleHRGb3IoXG5cdFx0XHRcdGAvJHtjb2xsZWN0aW9uUGF0aCB8fCBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpPy5uYW1lfWBcblx0XHRcdCk7XG5cdFx0XHRjb25zdCB2YWx1ZUxpc3RQYXJhbXMgPSB2YWx1ZUxpc3Q/LlBhcmFtZXRlcnM7XG5cdFx0XHRsZXQgb3V0UGFyYW1ldGVyOiBhbnk7XG5cdFx0XHRjb25zdCBpblBhcmFtZXRlcnM6IEFycmF5PG9iamVjdD4gPSBbXTtcblx0XHRcdGxldCBhUGFyYW1ldGVyczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXHRcdFx0Y29uc3QgcGFyYW1ldGVyRW50aXR5VHlwZSA9IGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRQYXJhbWV0ZXJFbnRpdHlUeXBlKCk7XG5cdFx0XHRhUGFyYW1ldGVycyA9IHBhcmFtZXRlckVudGl0eVR5cGVcblx0XHRcdFx0PyBwYXJhbWV0ZXJFbnRpdHlUeXBlLmtleXMubWFwKGZ1bmN0aW9uIChrZXkpIHtcblx0XHRcdFx0XHRcdHJldHVybiBrZXkubmFtZTtcblx0XHRcdFx0ICB9KVxuXHRcdFx0XHQ6IFtdO1xuXHRcdFx0aWYgKGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKSA9PT0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKCkpIHtcblx0XHRcdFx0YVBhcmFtZXRlcnMuZm9yRWFjaChmdW5jdGlvbiAocGFyYW1ldGVyOiBhbnkpIHtcblx0XHRcdFx0XHRpblBhcmFtZXRlcnMucHVzaCh7XG5cdFx0XHRcdFx0XHRsb2NhbERhdGFQcm9wZXJ0eTogcGFyYW1ldGVyLFxuXHRcdFx0XHRcdFx0dmFsdWVMaXN0UHJvcGVydHk6IHBhcmFtZXRlclxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdGlmICh2YWx1ZUxpc3RQYXJhbXMpIHtcblx0XHRcdFx0Zm9yIChjb25zdCB2YWx1ZUxpc3RQYXJhbSBvZiB2YWx1ZUxpc3RQYXJhbXMpIHtcblx0XHRcdFx0XHRjb25zdCBsb2NhbERhdGFQcm9wZXJ0eSA9IHZhbHVlTGlzdFBhcmFtLkxvY2FsRGF0YVByb3BlcnR5Py52YWx1ZTtcblx0XHRcdFx0XHRjb25zdCB2YWx1ZUxpc3RQcm9wZXJ0eSA9IHZhbHVlTGlzdFBhcmFtLlZhbHVlTGlzdFByb3BlcnR5O1xuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdCh2YWx1ZUxpc3RQYXJhbT8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFBhcmFtZXRlckluT3V0XCIgfHxcblx0XHRcdFx0XHRcdFx0dmFsdWVMaXN0UGFyYW0/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RQYXJhbWV0ZXJPdXRcIikgJiZcblx0XHRcdFx0XHRcdHNQcm9wZXJ0eVBhdGggPT09IGxvY2FsRGF0YVByb3BlcnR5XG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRvdXRQYXJhbWV0ZXIgPSB2YWx1ZUxpc3RQYXJhbTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0KHZhbHVlTGlzdFBhcmFtPy4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVmFsdWVMaXN0UGFyYW1ldGVySW5PdXRcIiB8fFxuXHRcdFx0XHRcdFx0XHR2YWx1ZUxpc3RQYXJhbT8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFBhcmFtZXRlckluXCIpICYmXG5cdFx0XHRcdFx0XHRzUHJvcGVydHlQYXRoICE9PSBsb2NhbERhdGFQcm9wZXJ0eVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgYk5vdEZpbHRlcmFibGUgPSBpc1Byb3BlcnR5RmlsdGVyYWJsZShjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQsIHZhbHVlTGlzdFByb3BlcnR5KTtcblx0XHRcdFx0XHRcdGlmICghYk5vdEZpbHRlcmFibGUpIHtcblx0XHRcdFx0XHRcdFx0aW5QYXJhbWV0ZXJzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHRcdGxvY2FsRGF0YVByb3BlcnR5OiBsb2NhbERhdGFQcm9wZXJ0eSxcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZUxpc3RQcm9wZXJ0eTogdmFsdWVMaXN0UHJvcGVydHlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAoaW5QYXJhbWV0ZXJzICYmIGluUGFyYW1ldGVycy5sZW5ndGgpIHtcblx0XHRcdFx0aW5QYXJhbWV0ZXJzLmZvckVhY2goZnVuY3Rpb24gKG9JblBhcmFtZXRlcjogYW55KSB7XG5cdFx0XHRcdFx0Y29uc3QgbWFpbkVudGl0eVNldEluTWFwcGluZ0FsbG93ZWRFeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0XHRjaGVja0ZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMoXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdFx0XHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihjb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgob0luUGFyYW1ldGVyPy5sb2NhbERhdGFQcm9wZXJ0eSkpXG5cdFx0XHRcdFx0XHRcdFx0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHRcdFx0XHRcdFx0W1wiU2luZ2xlVmFsdWVcIl1cblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGNvbnN0IHZhbHVlTGlzdEVudGl0eVNldEluTWFwcGluZ0FsbG93ZWRFeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0XHRjaGVja0ZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMoXG5cdFx0XHRcdFx0XHRcdGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0XHRcdC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgob0luUGFyYW1ldGVyPy52YWx1ZUxpc3RQcm9wZXJ0eSlcblx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdFx0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHRcdFx0XHRcdFx0W1wiU2luZ2xlVmFsdWVcIl1cblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmICh2YWx1ZUxpc3RFbnRpdHlTZXRJbk1hcHBpbmdBbGxvd2VkRXhwcmVzc2lvbiA9PT0gXCJ0cnVlXCIgJiYgbWFpbkVudGl0eVNldEluTWFwcGluZ0FsbG93ZWRFeHByZXNzaW9uID09PSBcImZhbHNlXCIpIHtcblx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgRmlsdGVyUmVzdHJpY3Rpb25zIG9mICR7c1Byb3BlcnR5UGF0aH0gaW4gTWFpbkVudGl0eVNldCBhbmQgVmFsdWVMaXN0RW50aXR5U2V0IGFyZSBkaWZmZXJlbnRgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcHZRdWFsaWZpZXIgPSB2YWx1ZUxpc3Q/LlByZXNlbnRhdGlvblZhcmlhbnRRdWFsaWZpZXI7XG5cdFx0XHRjb25zdCBzdlF1YWxpZmllciA9IHZhbHVlTGlzdD8uU2VsZWN0aW9uVmFyaWFudFF1YWxpZmllcjtcblx0XHRcdGNvbnN0IHB2QW5ub3RhdGlvbjogYW55ID0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihcblx0XHRcdFx0YEBVSS5QcmVzZW50YXRpb25WYXJpYW50IyR7cHZRdWFsaWZpZXJ9YFxuXHRcdFx0KT8uYW5ub3RhdGlvbjtcblx0XHRcdGNvbnN0IGFnZ3JlZ2F0aW9uSGVscGVyID0gbmV3IEFnZ3JlZ2F0aW9uSGVscGVyKGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dCk7XG5cdFx0XHRpZiAoIWFnZ3JlZ2F0aW9uSGVscGVyLmlzQW5hbHl0aWNzU3VwcG9ydGVkKCkpIHtcblx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHRcdGlmIChwdkFubm90YXRpb24pIHtcblx0XHRcdFx0Y29uc3QgYVZpc3VhbGl6YXRpb25zID0gcHZBbm5vdGF0aW9uPy5WaXN1YWxpemF0aW9ucztcblx0XHRcdFx0Y29uc3QgY29udGV4dFBhdGggPSBgLyR7dmFsdWVMaXN0Py5Db2xsZWN0aW9uUGF0aH1gIHx8IGAvJHtjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQ/LmdldEVudGl0eVNldCgpPy5uYW1lfWA7XG5cdFx0XHRcdHZpc3VhbEZpbHRlciA9IHt9O1xuXHRcdFx0XHR2aXN1YWxGaWx0ZXIuY29udGV4dFBhdGggPSBjb250ZXh0UGF0aDtcblx0XHRcdFx0bGV0IGNoYXJ0QW5ub3RhdGlvbjtcblx0XHRcdFx0Zm9yIChjb25zdCB2aXN1YWxpemF0aW9uIG9mIGFWaXN1YWxpemF0aW9ucykge1xuXHRcdFx0XHRcdGlmICh2aXN1YWxpemF0aW9uLiR0YXJnZXQ/LnRlcm0gPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIikge1xuXHRcdFx0XHRcdFx0Y2hhcnRBbm5vdGF0aW9uID0gdmlzdWFsaXphdGlvbjtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdFx0Y29uc3QgX2JnZXRWRkFnZ3JlZ2F0aW9uOiBib29sZWFuIHwgdW5kZWZpbmVkID0gX2NoZWNrVkZBZ2dyZWdhdGlvbihcblx0XHRcdFx0XHRcdGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGNoYXJ0QW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdGFnZ3JlZ2F0aW9uSGVscGVyXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAoIV9iZ2V0VkZBZ2dyZWdhdGlvbikge1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zdCBiRGltZW5zaW9uSGlkZGVuOiBib29sZWFuID0gY2hhcnRBbm5vdGF0aW9uPy4kdGFyZ2V0Py5EaW1lbnNpb25zWzBdPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpO1xuXHRcdFx0XHRcdGNvbnN0IGJEaW1lbnNpb25IaWRkZW5GaWx0ZXI6IGJvb2xlYW4gPVxuXHRcdFx0XHRcdFx0Y2hhcnRBbm5vdGF0aW9uPy4kdGFyZ2V0Py5EaW1lbnNpb25zWzBdPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpO1xuXHRcdFx0XHRcdGlmIChiRGltZW5zaW9uSGlkZGVuID09PSB0cnVlIHx8IGJEaW1lbnNpb25IaWRkZW5GaWx0ZXIgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFWaXN1YWxpemF0aW9ucyAmJiBhVmlzdWFsaXphdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIuY2hhcnRBbm5vdGF0aW9uID0gY2hhcnRBbm5vdGF0aW9uXG5cdFx0XHRcdFx0XHRcdD8gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0Py5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKFxuXHRcdFx0XHRcdFx0XHRcdFx0YCR7Y2hhcnRBbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZX0vJEFubm90YXRpb25QYXRoL2Bcblx0XHRcdFx0XHRcdFx0ICApXG5cdFx0XHRcdFx0XHRcdDogdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0Ly8gVGhpcyBuZWVkcyB0byBiZSBkb25lIHRvIGF2b2lkIHJlcGV0aXRpdmUgZW50aXR5IHR5cGUgaW4gY2FzZSBvZiBub24tcGFyYW1ldGVyaXplZCBlbnRpdHkgc2V0IGUuZyAvU2FsZXNPcmRlck1hbmFnZS9jb20uY19zYWxlc29yZGVybWFuYWdlX3NkX2FnZ3JlZ2F0ZS5TYWxlc09yZGVyTWFuYWdlXG5cdFx0XHRcdFx0XHRjb25zdCBlbnRpdHlUeXBlTmFtZSA9IGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCkubmFtZTtcblx0XHRcdFx0XHRcdGxldCBwcmVzZW50YXRpb25Bbm5vdGF0aW9uO1xuXHRcdFx0XHRcdFx0Y29uc3QgcmVsYXRpdmVBbm5vdGF0aW9uUGF0aCA9IGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dD8uZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0XHRcdFx0YCR7cHZBbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZX0vYCxcblx0XHRcdFx0XHRcdFx0Y29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdGlmIChwYXJhbWV0ZXJFbnRpdHlUeXBlKSB7XG5cdFx0XHRcdFx0XHRcdHByZXNlbnRhdGlvbkFubm90YXRpb24gPSBjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKSArIFwiL1wiICsgcmVsYXRpdmVBbm5vdGF0aW9uUGF0aDtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHByZXNlbnRhdGlvbkFubm90YXRpb24gPSBcIi9cIiArIGVudGl0eVR5cGVOYW1lICsgXCIvXCIgKyByZWxhdGl2ZUFubm90YXRpb25QYXRoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnByZXNlbnRhdGlvbkFubm90YXRpb24gPSBwdkFubm90YXRpb24gPyBwcmVzZW50YXRpb25Bbm5vdGF0aW9uIDogdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLm91dFBhcmFtZXRlciA9IG91dFBhcmFtZXRlcj8uTG9jYWxEYXRhUHJvcGVydHk/LnZhbHVlO1xuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLmluUGFyYW1ldGVycyA9IGluUGFyYW1ldGVycztcblx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci52YWx1ZWxpc3RQcm9wZXJ0eSA9IG91dFBhcmFtZXRlcj8uVmFsdWVMaXN0UHJvcGVydHk7XG5cdFx0XHRcdFx0XHRjb25zdCBiSXNSYW5nZSA9IGNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyhcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0XHRcdC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKGNvbnZlcnRlckNvbnRleHQuZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aChzUHJvcGVydHlQYXRoKSlcblx0XHRcdFx0XHRcdFx0XHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdFx0XHRcdFx0XHRbXCJTaW5nbGVSYW5nZVwiLCBcIk11bHRpUmFuZ2VcIl1cblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdGlmIChjb21waWxlRXhwcmVzc2lvbihiSXNSYW5nZSkgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIlJhbmdlIEFsbG93ZWRFeHByZXNzaW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpc3VhbCBmaWx0ZXJzXCIpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRjb25zdCBiSXNNYWluRW50aXR5U2V0U2luZ2xlU2VsZWN0aW9uOiBhbnkgPSBjaGVja0ZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMoXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdFx0XHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihjb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgoc1Byb3BlcnR5UGF0aCkpXG5cdFx0XHRcdFx0XHRcdFx0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHRcdFx0XHRcdFx0W1wiU2luZ2xlVmFsdWVcIl1cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIubXVsdGlwbGVTZWxlY3Rpb25BbGxvd2VkID0gY29tcGlsZUV4cHJlc3Npb24oIWJJc01haW5FbnRpdHlTZXRTaW5nbGVTZWxlY3Rpb24udmFsdWUpIGFzIGFueTtcblx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci5yZXF1aXJlZCA9IGdldElzUmVxdWlyZWQoY29udmVydGVyQ29udGV4dCwgc1Byb3BlcnR5UGF0aCk7XG5cdFx0XHRcdFx0XHRsZXQgc3ZBbm5vdGF0aW9uOiBhbnk7XG5cdFx0XHRcdFx0XHRpZiAoc3ZRdWFsaWZpZXIpIHtcblx0XHRcdFx0XHRcdFx0c3ZBbm5vdGF0aW9uID0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihcblx0XHRcdFx0XHRcdFx0XHRgQFVJLlNlbGVjdGlvblZhcmlhbnQjJHtzdlF1YWxpZmllcn1gXG5cdFx0XHRcdFx0XHRcdCk/LmFubm90YXRpb247XG5cdFx0XHRcdFx0XHRcdGxldCBzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbjtcblx0XHRcdFx0XHRcdFx0Y29uc3QgcmVsYXRpdmVTZWxlY3Rpb25WYXJpYW50UGF0aCA9IGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dD8uZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0XHRcdFx0XHRgJHtzdkFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lfS9gLFxuXHRcdFx0XHRcdFx0XHRcdGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKClcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0aWYgKHBhcmFtZXRlckVudGl0eVR5cGUpIHtcblx0XHRcdFx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiA9XG5cdFx0XHRcdFx0XHRcdFx0XHRjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKSArIFwiL1wiICsgcmVsYXRpdmVTZWxlY3Rpb25WYXJpYW50UGF0aDtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiA9IFwiL1wiICsgZW50aXR5VHlwZU5hbWUgKyBcIi9cIiArIHJlbGF0aXZlU2VsZWN0aW9uVmFyaWFudFBhdGg7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gc3ZBbm5vdGF0aW9uID8gc2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gOiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRsZXQgcmVxdWlyZWRQcm9wZXJ0aWVzID0gW107XG5cdFx0XHRcdFx0XHRpZiAocGFyYW1ldGVyRW50aXR5VHlwZSkge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzRW50aXR5U2V0ID0gY29sbGVjdGlvblBhdGguc3BsaXQoXCIvXCIpWzBdO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzTmF2aWdhdGlvblByb3BlcnR5ID0gY29sbGVjdGlvblBhdGguc3BsaXQoXCIvXCIpWzFdO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBvRW50aXR5U2V0Q29udmVydGVyQ29udGV4dCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihgLyR7c0VudGl0eVNldH1gKTtcblx0XHRcdFx0XHRcdFx0Y29uc3QgYVJlc3RyaWN0ZWRQcm9wZXJ0aWVzID1cblx0XHRcdFx0XHRcdFx0XHRvRW50aXR5U2V0Q29udmVydGVyQ29udGV4dD8uZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnN0YXJ0aW5nRW50aXR5U2V0Py5hbm5vdGF0aW9ucz8uQ2FwYWJpbGl0aWVzXG5cdFx0XHRcdFx0XHRcdFx0XHQ/Lk5hdmlnYXRpb25SZXN0cmljdGlvbnM/LlJlc3RyaWN0ZWRQcm9wZXJ0aWVzO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBvUmVzdHJpY3RlZFByb3BlcnR5ID0gYVJlc3RyaWN0ZWRQcm9wZXJ0aWVzPy5maW5kKFxuXHRcdFx0XHRcdFx0XHRcdChyZXN0cmljdGVkTmF2UHJvcDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb25UeXBlcykgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHJlc3RyaWN0ZWROYXZQcm9wLk5hdmlnYXRpb25Qcm9wZXJ0eT8udHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHJlc3RyaWN0ZWROYXZQcm9wLk5hdmlnYXRpb25Qcm9wZXJ0eS52YWx1ZSA9PT0gc05hdmlnYXRpb25Qcm9wZXJ0eTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdHJlcXVpcmVkUHJvcGVydGllcyA9IG9SZXN0cmljdGVkUHJvcGVydHk/LkZpbHRlclJlc3RyaWN0aW9ucz8uUmVxdWlyZWRQcm9wZXJ0aWVzIGFzIGFueVtdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgZW50aXR5U2V0QW5ub3RhdGlvbnMgPSBjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk/LmFubm90YXRpb25zO1xuXHRcdFx0XHRcdFx0XHRpZiAoIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZFByb3BlcnRpZXMgPSAoZW50aXR5U2V0QW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcyBhcyBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpXG5cdFx0XHRcdFx0XHRcdFx0XHQ/LkZpbHRlclJlc3RyaWN0aW9ucz8uUmVxdWlyZWRQcm9wZXJ0aWVzIGFzIGFueVtdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRsZXQgcmVxdWlyZWRQcm9wZXJ0eVBhdGhzOiBBcnJheTxvYmplY3Q+ID0gW107XG5cdFx0XHRcdFx0XHRpZiAocmVxdWlyZWRQcm9wZXJ0aWVzPy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0cmVxdWlyZWRQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKG9SZXF1aXJlUHJvcGVydHk6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRcdHJlcXVpcmVkUHJvcGVydHlQYXRocy5wdXNoKG9SZXF1aXJlUHJvcGVydHkudmFsdWUpO1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHJlcXVpcmVkUHJvcGVydHlQYXRocyA9IHJlcXVpcmVkUHJvcGVydHlQYXRocy5jb25jYXQoYVBhcmFtZXRlcnMpO1xuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnJlcXVpcmVkUHJvcGVydGllcyA9IHJlcXVpcmVkUHJvcGVydHlQYXRocztcblx0XHRcdFx0XHRcdGlmICh2aXN1YWxGaWx0ZXIucmVxdWlyZWRQcm9wZXJ0aWVzPy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0aWYgKCF2aXN1YWxGaWx0ZXIuaW5QYXJhbWV0ZXJzIHx8ICF2aXN1YWxGaWx0ZXIuaW5QYXJhbWV0ZXJzLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICghdmlzdWFsRmlsdGVyLnNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIuc2hvd092ZXJsYXlJbml0aWFsbHkgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgc2VsZWN0T3B0aW9ucyA9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHN2QW5ub3RhdGlvbj8uU2VsZWN0T3B0aW9ucz8ubWFwKChvU2VsZWN0T3B0aW9uOiBhbnkpID0+IG9TZWxlY3RPcHRpb24uUHJvcGVydHlOYW1lLnZhbHVlKSB8fCBbXTtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHBhcmFtZXRlck9wdGlvbnMgPVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdkFubm90YXRpb24/LlBhcmFtZXRlcnM/Lm1hcCgob1BhcmFtZXRlck9wdGlvbjogYW55KSA9PiBvUGFyYW1ldGVyT3B0aW9uLlByb3BlcnR5TmFtZS52YWx1ZSkgfHwgW107XG5cdFx0XHRcdFx0XHRcdFx0XHRzZWxlY3RPcHRpb25zID0gc2VsZWN0T3B0aW9ucy5jb25jYXQocGFyYW1ldGVyT3B0aW9ucyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZFByb3BlcnR5UGF0aHMgPSByZXF1aXJlZFByb3BlcnR5UGF0aHMuc29ydCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0c2VsZWN0T3B0aW9ucyA9IHNlbGVjdE9wdGlvbnMuc29ydCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnNob3dPdmVybGF5SW5pdGlhbGx5ID0gcmVxdWlyZWRQcm9wZXJ0eVBhdGhzLnNvbWUoZnVuY3Rpb24gKHNQYXRoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBzZWxlY3RPcHRpb25zLmluZGV4T2Yoc1BhdGgpID09PSAtMTtcblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIuc2hvd092ZXJsYXlJbml0aWFsbHkgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnNob3dPdmVybGF5SW5pdGlhbGx5ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRjb25zdCBzRGltZW5zaW9uVHlwZSA9IGNoYXJ0QW5ub3RhdGlvbj8uJHRhcmdldD8uRGltZW5zaW9uc1swXT8uJHRhcmdldD8udHlwZTtcblx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0IShcblx0XHRcdFx0XHRcdFx0XHRzRGltZW5zaW9uVHlwZSA9PT0gXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIiB8fFxuXHRcdFx0XHRcdFx0XHRcdHNEaW1lbnNpb25UeXBlID09PSBcIkVkbS5EYXRlXCIgfHxcblx0XHRcdFx0XHRcdFx0XHRzRGltZW5zaW9uVHlwZSA9PT0gXCJFZG0uVGltZU9mRGF5XCJcblx0XHRcdFx0XHRcdFx0KSAmJlxuXHRcdFx0XHRcdFx0XHRjaGFydEFubm90YXRpb24uJHRhcmdldC5DaGFydFR5cGUgPT09IFwiVUkuQ2hhcnRUeXBlL0xpbmVcIlxuXHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci5yZW5kZXJMaW5lQ2hhcnQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci5yZW5kZXJMaW5lQ2hhcnQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0XHQuZ2V0RGlhZ25vc3RpY3MoKVxuXHRcdFx0XHRcdFx0LmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgSXNzdWVTZXZlcml0eS5IaWdoLCBJc3N1ZVR5cGUuTUFMRk9STUVEX1ZJU1VBTEZJTFRFUlMuQ0hBUlQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdFx0XHQuYWRkSXNzdWUoSXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLCBJc3N1ZVNldmVyaXR5LkhpZ2gsIElzc3VlVHlwZS5NQUxGT1JNRURfVklTVUFMRklMVEVSUy5QUkVTRU5UQVRJT05WQVJJQU5UKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHQuZ2V0RGlhZ25vc3RpY3MoKVxuXHRcdFx0XHQuYWRkSXNzdWUoSXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLCBJc3N1ZVNldmVyaXR5LkhpZ2gsIElzc3VlVHlwZS5NQUxGT1JNRURfVklTVUFMRklMVEVSUy5WQUxVRUxJU1QpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldERpYWdub3N0aWNzKCkuYWRkSXNzdWUoSXNzdWVDYXRlZ29yeS5NYW5pZmVzdCwgSXNzdWVTZXZlcml0eS5IaWdoLCBJc3N1ZVR5cGUuTUFMRk9STUVEX1ZJU1VBTEZJTFRFUlMuVkFMVUVMSVNUKTtcblx0fVxuXHRyZXR1cm4gdmlzdWFsRmlsdGVyO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7O0VBZ0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxNQUFNQSxtQkFBbUIsR0FBRyxVQUMzQkMsZ0JBQWtDLEVBQ2xDQyxlQUFvQixFQUNwQkMsaUJBQXNCLEVBQ0E7SUFBQTtJQUN0QixJQUFJQyxZQUFZLEVBQUVDLFVBQVUsRUFBRUMsYUFBYTtJQUMzQyxJQUFJQyxRQUFhO0lBQ2pCLE1BQU1DLGdCQUFnQixHQUFHTCxpQkFBaUIsQ0FBQ00sNkJBQTZCLEVBQUU7SUFDMUUsSUFBSUMsa0JBQWtCLEdBQUdQLGlCQUFpQixDQUFDUSxvQkFBb0IsRUFBRTtJQUNqRSxJQUFJQyxlQUFlLEdBQUcsRUFBNEI7SUFDbEQ7SUFDQSxJQUFJVixlQUFlLGFBQWZBLGVBQWUsd0NBQWZBLGVBQWUsQ0FBRVcsT0FBTyxrREFBeEIsc0JBQTBCQyxRQUFRLEVBQUU7TUFBQTtNQUN2Q0YsZUFBZSxHQUFHSixn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
|
|
299
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hlY2tWRkFnZ3JlZ2F0aW9uIiwiY29udmVydGVyQ29udGV4dCIsImNoYXJ0QW5ub3RhdGlvbiIsImFnZ3JlZ2F0aW9uSGVscGVyIiwic01lYXN1cmVQYXRoIiwiYkdyb3VwYWJsZSIsImJBZ2dyZWdhdGFibGUiLCJzTWVhc3VyZSIsImN1c3RvbUFnZ3JlZ2F0ZXMiLCJnZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucyIsImFUcmFuc0FnZ3JlZ2F0aW9ucyIsImdldFRyYW5zQWdncmVnYXRpb25zIiwiYUN1c3RBZ2dNZWFzdXJlIiwiJHRhcmdldCIsIk1lYXN1cmVzIiwiZmlsdGVyIiwiY3VzdEFnZyIsInF1YWxpZmllciIsInZhbHVlIiwibGVuZ3RoIiwiRHluYW1pY01lYXN1cmVzIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImdldEFic29sdXRlQW5ub3RhdGlvblBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0T2JqZWN0IiwiTmFtZSIsImdldEFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzIiwic0RpbWVuc2lvbiIsIkRpbWVuc2lvbnMiLCJzb21lIiwib0FnZ3JlZ2F0ZSIsIkFnZ3JlZ2F0YWJsZVByb3BlcnR5IiwiYUFnZ3JlZ2F0YWJsZVByb3BzRnJvbUNvbnRhaW5lciIsImdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMiLCJhR3JvdXBhYmxlUHJvcHNGcm9tQ29udGFpbmVyIiwiZ2V0R3JvdXBhYmxlUHJvcGVydGllcyIsImFnZ3JlZ2F0YWJsZVByb3AiLCJQcm9wZXJ0eSIsImdyb3VwYWJsZVByb3AiLCJnZXRWaXN1YWxGaWx0ZXJzIiwiZW50aXR5VHlwZSIsInNQcm9wZXJ0eVBhdGgiLCJGaWx0ZXJGaWVsZHMiLCJ2aXN1YWxGaWx0ZXIiLCJvVmlzdWFsRmlsdGVyIiwidmFsdWVMaXN0Iiwib1ZGUGF0aCIsImFubm90YXRpb25RdWFsaWZpZXJTcGxpdCIsInNwbGl0IiwicXVhbGlmaWVyVkwiLCJwcm9wZXJ0eSIsInJlc29sdmVQYXRoIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJpc1ZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcyIsIlZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcyIsInZhbHVlT2YiLCJjb2xsZWN0aW9uUGF0aCIsIkNvbGxlY3Rpb25QYXRoIiwidG9TdHJpbmciLCJjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQiLCJnZXRFbnRpdHlTZXQiLCJuYW1lIiwidmFsdWVMaXN0UGFyYW1zIiwiUGFyYW1ldGVycyIsIm91dFBhcmFtZXRlciIsImluUGFyYW1ldGVycyIsImFQYXJhbWV0ZXJzIiwicGFyYW1ldGVyRW50aXR5VHlwZSIsImdldFBhcmFtZXRlckVudGl0eVR5cGUiLCJrZXlzIiwibWFwIiwia2V5IiwiZ2V0Q29udGV4dFBhdGgiLCJmb3JFYWNoIiwicGFyYW1ldGVyIiwicHVzaCIsImxvY2FsRGF0YVByb3BlcnR5IiwidmFsdWVMaXN0UHJvcGVydHkiLCJ2YWx1ZUxpc3RQYXJhbSIsIkxvY2FsRGF0YVByb3BlcnR5IiwiVmFsdWVMaXN0UHJvcGVydHkiLCIkVHlwZSIsImJOb3RGaWx0ZXJhYmxlIiwiaXNQcm9wZXJ0eUZpbHRlcmFibGUiLCJvSW5QYXJhbWV0ZXIiLCJtYWluRW50aXR5U2V0SW5NYXBwaW5nQWxsb3dlZEV4cHJlc3Npb24iLCJjb21waWxlRXhwcmVzc2lvbiIsImNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyIsInZhbHVlTGlzdEVudGl0eVNldEluTWFwcGluZ0FsbG93ZWRFeHByZXNzaW9uIiwiRXJyb3IiLCJwdlF1YWxpZmllciIsIlByZXNlbnRhdGlvblZhcmlhbnRRdWFsaWZpZXIiLCJzdlF1YWxpZmllciIsIlNlbGVjdGlvblZhcmlhbnRRdWFsaWZpZXIiLCJwdkFubm90YXRpb24iLCJnZXRFbnRpdHlUeXBlIiwiVUkiLCJBZ2dyZWdhdGlvbkhlbHBlciIsImlzQW5hbHl0aWNzU3VwcG9ydGVkIiwidW5kZWZpbmVkIiwiYVZpc3VhbGl6YXRpb25zIiwiVmlzdWFsaXphdGlvbnMiLCJjb250ZXh0UGF0aCIsInZpc3VhbGl6YXRpb24iLCJ0ZXJtIiwiX2JnZXRWRkFnZ3JlZ2F0aW9uIiwiYkRpbWVuc2lvbkhpZGRlbiIsIkhpZGRlbiIsImJEaW1lbnNpb25IaWRkZW5GaWx0ZXIiLCJIaWRkZW5GaWx0ZXIiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJlbnRpdHlTZXROYW1lIiwicHJlc2VudGF0aW9uQW5ub3RhdGlvbiIsInJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoIiwidmFsdWVsaXN0UHJvcGVydHkiLCJiSXNSYW5nZSIsImJJc01haW5FbnRpdHlTZXRTaW5nbGVTZWxlY3Rpb24iLCJtdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWQiLCJub3QiLCJyZXF1aXJlZCIsImdldElzUmVxdWlyZWQiLCJzdkFubm90YXRpb24iLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsImFubm90YXRpb24iLCJzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiIsInJlbGF0aXZlU2VsZWN0aW9uVmFyaWFudFBhdGgiLCJyZXF1aXJlZFByb3BlcnRpZXMiLCJzRW50aXR5U2V0Iiwic05hdmlnYXRpb25Qcm9wZXJ0eSIsIm9FbnRpdHlTZXRDb252ZXJ0ZXJDb250ZXh0IiwiYVJlc3RyaWN0ZWRQcm9wZXJ0aWVzIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJDYXBhYmlsaXRpZXMiLCJOYXZpZ2F0aW9uUmVzdHJpY3Rpb25zIiwiUmVzdHJpY3RlZFByb3BlcnRpZXMiLCJvUmVzdHJpY3RlZFByb3BlcnR5IiwiZmluZCIsInJlc3RyaWN0ZWROYXZQcm9wIiwiTmF2aWdhdGlvblByb3BlcnR5IiwidHlwZSIsIkZpbHRlclJlc3RyaWN0aW9ucyIsIlJlcXVpcmVkUHJvcGVydGllcyIsImVudGl0eVNldE9yU2luZ2xldG9uIiwiTW9kZWxIZWxwZXIiLCJpc1NpbmdsZXRvbiIsInJlcXVpcmVkUHJvcGVydHlQYXRocyIsIm9SZXF1aXJlUHJvcGVydHkiLCJjb25jYXQiLCJzaG93T3ZlcmxheUluaXRpYWxseSIsInNlbGVjdE9wdGlvbnMiLCJTZWxlY3RPcHRpb25zIiwib1NlbGVjdE9wdGlvbiIsIlByb3BlcnR5TmFtZSIsInBhcmFtZXRlck9wdGlvbnMiLCJvUGFyYW1ldGVyT3B0aW9uIiwic29ydCIsInNQYXRoIiwiaW5kZXhPZiIsInNEaW1lbnNpb25UeXBlIiwiQ2hhcnRUeXBlIiwicmVuZGVyTGluZUNoYXJ0IiwiZ2V0RGlhZ25vc3RpY3MiLCJhZGRJc3N1ZSIsIklzc3VlQ2F0ZWdvcnkiLCJBbm5vdGF0aW9uIiwiSXNzdWVTZXZlcml0eSIsIkhpZ2giLCJJc3N1ZVR5cGUiLCJNQUxGT1JNRURfVklTVUFMRklMVEVSUyIsIkNIQVJUIiwiUFJFU0VOVEFUSU9OVkFSSUFOVCIsIlZBTFVFTElTVCIsIk1hbmlmZXN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaXN1YWxGaWx0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQW5ub3RhdGlvblBhdGgsIEVudGl0eVR5cGUsIFByb3BlcnR5LCBQcm9wZXJ0eVBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgQ3VzdG9tQWdncmVnYXRlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBOYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9DYXBhYmlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHtcblx0VmFsdWVMaXN0LFxuXHRWYWx1ZUxpc3RQYXJhbWV0ZXJJbixcblx0VmFsdWVMaXN0UGFyYW1ldGVySW5PdXQsXG5cdFZhbHVlTGlzdFBhcmFtZXRlck91dFxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUFubm90YXRpb25zX0NvbW1vbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uX0VkbVwiO1xuaW1wb3J0IHR5cGUgeyBDaGFydCwgUGFyYW1ldGVyVHlwZXMsIFNlbGVjdGlvblZhcmlhbnQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uSGVscGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IHsgSXNzdWVDYXRlZ29yeSwgSXNzdWVTZXZlcml0eSwgSXNzdWVUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmltcG9ydCB0eXBlIHsgRmlsdGVyRmllbGRNYW5pZmVzdENvbmZpZ3VyYXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBub3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBjaGVja0ZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRJc1JlcXVpcmVkLCBpc1Byb3BlcnR5RmlsdGVyYWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0ZpbHRlclRlbXBsYXRpbmdcIjtcblxuZXhwb3J0IHR5cGUgVmlzdWFsRmlsdGVycyA9IHtcblx0ZGltZW5zaW9uUGF0aD86IHN0cmluZztcblx0bWVhc3VyZVBhdGg/OiBzdHJpbmc7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHRjaGFydEFubm90YXRpb24/OiBzdHJpbmc7XG5cdHByZXNlbnRhdGlvbkFubm90YXRpb24/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBib29sZWFuO1xuXHRvdXRQYXJhbWV0ZXI/OiBzdHJpbmc7XG5cdGluUGFyYW1ldGVycz86IG9iamVjdFtdO1xuXHR2YWx1ZWxpc3RQcm9wZXJ0eT86IHN0cmluZztcblx0Y29udGV4dFBhdGg/OiBzdHJpbmc7XG5cdHNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uPzogc3RyaW5nO1xuXHRtdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWQ/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xuXHRzaG93T3ZlcmxheUluaXRpYWxseT86IGJvb2xlYW47XG5cdHJlbmRlckxpbmVDaGFydD86IGJvb2xlYW47XG5cdHJlcXVpcmVkUHJvcGVydGllcz86IHN0cmluZ1tdO1xuXHRpc1ZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIENoZWNrcyB0aGF0IG1lYXN1cmVzIGFuZCBkaW1lbnNpb25zIG9mIHRoZSB2aXN1YWwgZmlsdGVyIGNoYXJ0IGNhbiBiZSBhZ2dyZWdhdGVkIGFuZCBncm91cGVkLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICogQHBhcmFtIGNoYXJ0QW5ub3RhdGlvbiBUaGUgY2hhcnQgYW5ub3RhdGlvblxuICogQHBhcmFtIGFnZ3JlZ2F0aW9uSGVscGVyIFRoZSBhZ2dyZWdhdGlvbiBoZWxwZXJcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbWVhc3VyZSBjYW4gYmUgZ3JvdXBlZCBhbmQgYWdncmVnYXRlZFxuICovXG5jb25zdCBfY2hlY2tWRkFnZ3JlZ2F0aW9uID0gZnVuY3Rpb24gKFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRjaGFydEFubm90YXRpb246IEFubm90YXRpb25QYXRoPENoYXJ0Pixcblx0YWdncmVnYXRpb25IZWxwZXI6IEFnZ3JlZ2F0aW9uSGVscGVyXG4pOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcblx0bGV0IHNNZWFzdXJlUGF0aCwgYkdyb3VwYWJsZSwgYkFnZ3JlZ2F0YWJsZTtcblx0bGV0IHNNZWFzdXJlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGNvbnN0IGN1c3RvbUFnZ3JlZ2F0ZXMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucygpO1xuXHRsZXQgYVRyYW5zQWdncmVnYXRpb25zID0gYWdncmVnYXRpb25IZWxwZXIuZ2V0VHJhbnNBZ2dyZWdhdGlvbnMoKTtcblx0bGV0IGFDdXN0QWdnTWVhc3VyZSA9IFtdIGFzIEFycmF5PEN1c3RvbUFnZ3JlZ2F0ZT47XG5cdC8vIGlmIHRoZSBjaGFydCBkZWZpbml0aW9uIGhhcyBjdXN0b20gYWdncmVnYXRlcywgdGhlbiBjb25zaWRlciB0aGVtLCBlbHNlIGZhbGwgYmFjayB0byB0aGUgbWVhc3VyZXMgd2l0aCB0cmFuc2Zvcm1hdGlvbiBhZ2dyZWdhdGVzXG5cdGlmIChjaGFydEFubm90YXRpb24/LiR0YXJnZXQ/Lk1lYXN1cmVzKSB7XG5cdFx0YUN1c3RBZ2dNZWFzdXJlID0gY3VzdG9tQWdncmVnYXRlcy5maWx0ZXIoZnVuY3Rpb24gKGN1c3RBZ2c6IEN1c3RvbUFnZ3JlZ2F0ZSkge1xuXHRcdFx0cmV0dXJuIGN1c3RBZ2cucXVhbGlmaWVyID09PSBjaGFydEFubm90YXRpb24/LiR0YXJnZXQ/Lk1lYXN1cmVzPy5bMF0/LnZhbHVlO1xuXHRcdH0pO1xuXHRcdHNNZWFzdXJlID0gYUN1c3RBZ2dNZWFzdXJlLmxlbmd0aCA+IDAgPyBhQ3VzdEFnZ01lYXN1cmVbMF0ucXVhbGlmaWVyIDogY2hhcnRBbm5vdGF0aW9uPy4kdGFyZ2V0Py5NZWFzdXJlcz8uWzBdPy52YWx1ZTtcblx0fVxuXHQvLyBjb25zaWRlciBkeW5hbWljIG1lYXN1cmVzIG9ubHkgaWYgdGhlcmUgYXJlIG5vIG1lYXN1cmVzIHdpdGggY3VzdG9tIGFnZ3JlZ2F0ZXNcblx0aWYgKCFhQ3VzdEFnZ01lYXN1cmVbMF0gJiYgY2hhcnRBbm5vdGF0aW9uPy4kdGFyZ2V0Py5EeW5hbWljTWVhc3VyZXMpIHtcblx0XHRzTWVhc3VyZSA9IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKGNvbnZlcnRlckNvbnRleHQuZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aChjaGFydEFubm90YXRpb24uJHRhcmdldC5EeW5hbWljTWVhc3VyZXM/LlswXT8udmFsdWUpKVxuXHRcdFx0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS50YXJnZXRPYmplY3QuTmFtZTtcblx0XHRhVHJhbnNBZ2dyZWdhdGlvbnMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRBZ2dyZWdhdGVkUHJvcGVydGllcyhcIkFnZ3JlZ2F0ZWRQcm9wZXJ0eVwiKTtcblx0fSBlbHNlIHtcblx0XHRhVHJhbnNBZ2dyZWdhdGlvbnMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRBZ2dyZWdhdGVkUHJvcGVydGllcyhcIkFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzXCIpWzBdO1xuXHR9XG5cblx0Y29uc3Qgc0RpbWVuc2lvbjogc3RyaW5nID0gY2hhcnRBbm5vdGF0aW9uPy4kdGFyZ2V0Py5EaW1lbnNpb25zWzBdPy52YWx1ZTtcblxuXHRpZiAoXG5cdFx0Y3VzdG9tQWdncmVnYXRlcy5zb21lKGZ1bmN0aW9uIChjdXN0QWdnOiBDdXN0b21BZ2dyZWdhdGUpIHtcblx0XHRcdHJldHVybiBjdXN0QWdnLnF1YWxpZmllciA9PT0gc01lYXN1cmU7XG5cdFx0fSlcblx0KSB7XG5cdFx0c01lYXN1cmVQYXRoID0gc01lYXN1cmU7XG5cdH0gZWxzZSBpZiAoYVRyYW5zQWdncmVnYXRpb25zICYmIGFUcmFuc0FnZ3JlZ2F0aW9uc1swXSkge1xuXHRcdGFUcmFuc0FnZ3JlZ2F0aW9ucy5zb21lKGZ1bmN0aW9uIChvQWdncmVnYXRlKSB7XG5cdFx0XHRpZiAob0FnZ3JlZ2F0ZS5OYW1lID09PSBzTWVhc3VyZSkge1xuXHRcdFx0XHRzTWVhc3VyZVBhdGggPSBvQWdncmVnYXRlPy5BZ2dyZWdhdGFibGVQcm9wZXJ0eS52YWx1ZTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRjb25zdCBhQWdncmVnYXRhYmxlUHJvcHNGcm9tQ29udGFpbmVyID0gYWdncmVnYXRpb25IZWxwZXIuZ2V0QWdncmVnYXRhYmxlUHJvcGVydGllcygpO1xuXHRjb25zdCBhR3JvdXBhYmxlUHJvcHNGcm9tQ29udGFpbmVyID0gYWdncmVnYXRpb25IZWxwZXIuZ2V0R3JvdXBhYmxlUHJvcGVydGllcygpO1xuXHRpZiAoYUFnZ3JlZ2F0YWJsZVByb3BzRnJvbUNvbnRhaW5lciAmJiBhQWdncmVnYXRhYmxlUHJvcHNGcm9tQ29udGFpbmVyLmxlbmd0aCkge1xuXHRcdGZvciAoY29uc3QgYWdncmVnYXRhYmxlUHJvcCBvZiBhQWdncmVnYXRhYmxlUHJvcHNGcm9tQ29udGFpbmVyKSB7XG5cdFx0XHRpZiAoYWdncmVnYXRhYmxlUHJvcD8uUHJvcGVydHk/LnZhbHVlID09PSBzTWVhc3VyZVBhdGgpIHtcblx0XHRcdFx0YkFnZ3JlZ2F0YWJsZSA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGlmIChhR3JvdXBhYmxlUHJvcHNGcm9tQ29udGFpbmVyICYmIGFHcm91cGFibGVQcm9wc0Zyb21Db250YWluZXIubGVuZ3RoKSB7XG5cdFx0Zm9yIChjb25zdCBncm91cGFibGVQcm9wIG9mIGFHcm91cGFibGVQcm9wc0Zyb21Db250YWluZXIpIHtcblx0XHRcdGlmIChncm91cGFibGVQcm9wPy52YWx1ZSA9PT0gc0RpbWVuc2lvbikge1xuXHRcdFx0XHRiR3JvdXBhYmxlID0gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0cmV0dXJuIGJBZ2dyZWdhdGFibGUgJiYgYkdyb3VwYWJsZTtcbn07XG5cbmV4cG9ydCB0eXBlIFBhcmFtZXRlclR5cGUgPSB7XG5cdGxvY2FsRGF0YVByb3BlcnR5OiBzdHJpbmc7XG5cdHZhbHVlTGlzdFByb3BlcnR5OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIE1ldGhvZCB0byBnZXQgdGhlIHZpc3VhbCBmaWx0ZXJzIG9iamVjdCBmb3IgYSBwcm9wZXJ0eS5cbiAqXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgY29udmVydGVyIGNvbnRleHRcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjaGFydCBhbm5vdGF0aW9uXG4gKiBAcGFyYW0gc1Byb3BlcnR5UGF0aCBUaGUgYWdncmVnYXRpb24gaGVscGVyXG4gKiBAcGFyYW0gRmlsdGVyRmllbGRzIFRoZSBhZ2dyZWdhdGlvbiBoZWxwZXJcbiAqIEByZXR1cm5zIHsgVmlzdWFsRmlsdGVycyB8IHVuZGVmaW5lZH0gVGhlIHZpc3VhbCBmaWx0ZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaXN1YWxGaWx0ZXJzKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzUHJvcGVydHlQYXRoOiBzdHJpbmcsXG5cdEZpbHRlckZpZWxkczogUmVjb3JkPHN0cmluZywgRmlsdGVyRmllbGRNYW5pZmVzdENvbmZpZ3VyYXRpb24+XG4pOiBWaXN1YWxGaWx0ZXJzIHwgdW5kZWZpbmVkIHtcblx0bGV0IHZpc3VhbEZpbHRlcjogVmlzdWFsRmlsdGVycyB8IHVuZGVmaW5lZDtcblx0Y29uc3Qgb1Zpc3VhbEZpbHRlcjogRmlsdGVyRmllbGRNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSBGaWx0ZXJGaWVsZHNbc1Byb3BlcnR5UGF0aF07XG5cdGlmIChvVmlzdWFsRmlsdGVyPy52aXN1YWxGaWx0ZXI/LnZhbHVlTGlzdCkge1xuXHRcdGNvbnN0IG9WRlBhdGggPSBvVmlzdWFsRmlsdGVyPy52aXN1YWxGaWx0ZXI/LnZhbHVlTGlzdDtcblx0XHRjb25zdCBhbm5vdGF0aW9uUXVhbGlmaWVyU3BsaXQgPSBvVkZQYXRoLnNwbGl0KFwiI1wiKTtcblx0XHRjb25zdCBxdWFsaWZpZXJWTCA9IGFubm90YXRpb25RdWFsaWZpZXJTcGxpdC5sZW5ndGggPiAxID8gYFZhbHVlTGlzdCMke2Fubm90YXRpb25RdWFsaWZpZXJTcGxpdFsxXX1gIDogYW5ub3RhdGlvblF1YWxpZmllclNwbGl0WzBdO1xuXHRcdGNvbnN0IHByb3BlcnR5ID0gZW50aXR5VHlwZS5yZXNvbHZlUGF0aChzUHJvcGVydHlQYXRoKSBhcyBQcm9wZXJ0eTtcblx0XHRjb25zdCB2YWx1ZUxpc3QgPSBwcm9wZXJ0eT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uW3F1YWxpZmllclZMIGFzIGtleW9mIFByb3BlcnR5QW5ub3RhdGlvbnNfQ29tbW9uXSBhcyBWYWx1ZUxpc3QgfCB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgaXNWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMgPSAocHJvcGVydHk/LmFubm90YXRpb25zPy5Db21tb24/LlZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcz8udmFsdWVPZigpIGFzIGJvb2xlYW4pIHx8IGZhbHNlO1xuXHRcdGlmICh2YWx1ZUxpc3QpIHtcblx0XHRcdGNvbnN0IGNvbGxlY3Rpb25QYXRoID0gdmFsdWVMaXN0Py5Db2xsZWN0aW9uUGF0aC50b1N0cmluZygpO1xuXHRcdFx0Y29uc3QgY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0ID0gY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKFxuXHRcdFx0XHRgLyR7Y29sbGVjdGlvblBhdGggfHwgY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKT8ubmFtZX1gXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgdmFsdWVMaXN0UGFyYW1zID0gdmFsdWVMaXN0Py5QYXJhbWV0ZXJzO1xuXHRcdFx0bGV0IG91dFBhcmFtZXRlcjogVmFsdWVMaXN0UGFyYW1ldGVyT3V0IHwgVmFsdWVMaXN0UGFyYW1ldGVySW5PdXQgfCB1bmRlZmluZWQ7XG5cdFx0XHRjb25zdCBpblBhcmFtZXRlcnM6IFBhcmFtZXRlclR5cGVbXSA9IFtdO1xuXHRcdFx0bGV0IGFQYXJhbWV0ZXJzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0Y29uc3QgcGFyYW1ldGVyRW50aXR5VHlwZSA9IGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRQYXJhbWV0ZXJFbnRpdHlUeXBlKCk7XG5cdFx0XHRhUGFyYW1ldGVycyA9IHBhcmFtZXRlckVudGl0eVR5cGVcblx0XHRcdFx0PyBwYXJhbWV0ZXJFbnRpdHlUeXBlLmtleXMubWFwKGZ1bmN0aW9uIChrZXkpIHtcblx0XHRcdFx0XHRcdHJldHVybiBrZXkubmFtZTtcblx0XHRcdFx0ICB9KVxuXHRcdFx0XHQ6IFtdO1xuXHRcdFx0aWYgKGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKSA9PT0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKCkpIHtcblx0XHRcdFx0YVBhcmFtZXRlcnMuZm9yRWFjaChmdW5jdGlvbiAocGFyYW1ldGVyKSB7XG5cdFx0XHRcdFx0aW5QYXJhbWV0ZXJzLnB1c2goe1xuXHRcdFx0XHRcdFx0bG9jYWxEYXRhUHJvcGVydHk6IHBhcmFtZXRlcixcblx0XHRcdFx0XHRcdHZhbHVlTGlzdFByb3BlcnR5OiBwYXJhbWV0ZXJcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodmFsdWVMaXN0UGFyYW1zKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgdmFsdWVMaXN0UGFyYW0gb2YgdmFsdWVMaXN0UGFyYW1zKSB7XG5cdFx0XHRcdFx0Y29uc3QgbG9jYWxEYXRhUHJvcGVydHkgPSAodmFsdWVMaXN0UGFyYW0gYXMgVmFsdWVMaXN0UGFyYW1ldGVySW4pLkxvY2FsRGF0YVByb3BlcnR5Py52YWx1ZTtcblx0XHRcdFx0XHRjb25zdCB2YWx1ZUxpc3RQcm9wZXJ0eSA9IHZhbHVlTGlzdFBhcmFtLlZhbHVlTGlzdFByb3BlcnR5IGFzIHN0cmluZztcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHQodmFsdWVMaXN0UGFyYW0/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RQYXJhbWV0ZXJJbk91dFwiIHx8XG5cdFx0XHRcdFx0XHRcdHZhbHVlTGlzdFBhcmFtPy4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVmFsdWVMaXN0UGFyYW1ldGVyT3V0XCIpICYmXG5cdFx0XHRcdFx0XHRzUHJvcGVydHlQYXRoID09PSBsb2NhbERhdGFQcm9wZXJ0eVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0b3V0UGFyYW1ldGVyID0gdmFsdWVMaXN0UGFyYW07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdCh2YWx1ZUxpc3RQYXJhbT8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFBhcmFtZXRlckluT3V0XCIgfHxcblx0XHRcdFx0XHRcdFx0dmFsdWVMaXN0UGFyYW0/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RQYXJhbWV0ZXJJblwiKSAmJlxuXHRcdFx0XHRcdFx0c1Byb3BlcnR5UGF0aCAhPT0gbG9jYWxEYXRhUHJvcGVydHlcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGJOb3RGaWx0ZXJhYmxlID0gaXNQcm9wZXJ0eUZpbHRlcmFibGUoY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LCB2YWx1ZUxpc3RQcm9wZXJ0eSk7XG5cdFx0XHRcdFx0XHRpZiAoIWJOb3RGaWx0ZXJhYmxlKSB7XG5cdFx0XHRcdFx0XHRcdGluUGFyYW1ldGVycy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0XHRsb2NhbERhdGFQcm9wZXJ0eTogbG9jYWxEYXRhUHJvcGVydHksXG5cdFx0XHRcdFx0XHRcdFx0dmFsdWVMaXN0UHJvcGVydHk6IHZhbHVlTGlzdFByb3BlcnR5XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGluUGFyYW1ldGVycyAmJiBpblBhcmFtZXRlcnMubGVuZ3RoKSB7XG5cdFx0XHRcdGluUGFyYW1ldGVycy5mb3JFYWNoKGZ1bmN0aW9uIChvSW5QYXJhbWV0ZXIpIHtcblx0XHRcdFx0XHRjb25zdCBtYWluRW50aXR5U2V0SW5NYXBwaW5nQWxsb3dlZEV4cHJlc3Npb24gPSBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRcdGNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyhcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0XHRcdC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKGNvbnZlcnRlckNvbnRleHQuZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aChvSW5QYXJhbWV0ZXI/LmxvY2FsRGF0YVByb3BlcnR5KSlcblx0XHRcdFx0XHRcdFx0XHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdFx0XHRcdFx0XHRbXCJTaW5nbGVWYWx1ZVwiXVxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0Y29uc3QgdmFsdWVMaXN0RW50aXR5U2V0SW5NYXBwaW5nQWxsb3dlZEV4cHJlc3Npb24gPSBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRcdGNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyhcblx0XHRcdFx0XHRcdFx0Y29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0XHRcdFx0LmdldENvbnZlcnRlckNvbnRleHRGb3IoXG5cdFx0XHRcdFx0XHRcdFx0XHRjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQuZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aChvSW5QYXJhbWV0ZXI/LnZhbHVlTGlzdFByb3BlcnR5KVxuXHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdFx0XHRcdFx0XHRbXCJTaW5nbGVWYWx1ZVwiXVxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aWYgKHZhbHVlTGlzdEVudGl0eVNldEluTWFwcGluZ0FsbG93ZWRFeHByZXNzaW9uID09PSBcInRydWVcIiAmJiBtYWluRW50aXR5U2V0SW5NYXBwaW5nQWxsb3dlZEV4cHJlc3Npb24gPT09IFwiZmFsc2VcIikge1xuXHRcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBGaWx0ZXJSZXN0cmljdGlvbnMgb2YgJHtzUHJvcGVydHlQYXRofSBpbiBNYWluRW50aXR5U2V0IGFuZCBWYWx1ZUxpc3RFbnRpdHlTZXQgYXJlIGRpZmZlcmVudGApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBwdlF1YWxpZmllciA9IHZhbHVlTGlzdD8uUHJlc2VudGF0aW9uVmFyaWFudFF1YWxpZmllcjtcblx0XHRcdGNvbnN0IHN2UXVhbGlmaWVyID0gdmFsdWVMaXN0Py5TZWxlY3Rpb25WYXJpYW50UXVhbGlmaWVyO1xuXHRcdFx0Y29uc3QgcHZBbm5vdGF0aW9uID0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlUeXBlKCkuYW5ub3RhdGlvbnMuVUk/LltgUHJlc2VudGF0aW9uVmFyaWFudCMke3B2UXVhbGlmaWVyfWBdO1xuXHRcdFx0Y29uc3QgYWdncmVnYXRpb25IZWxwZXIgPSBuZXcgQWdncmVnYXRpb25IZWxwZXIoY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0KTtcblx0XHRcdGlmICghYWdncmVnYXRpb25IZWxwZXIuaXNBbmFseXRpY3NTdXBwb3J0ZWQoKSkge1xuXHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHB2QW5ub3RhdGlvbikge1xuXHRcdFx0XHRjb25zdCBhVmlzdWFsaXphdGlvbnMgPSBwdkFubm90YXRpb24/LlZpc3VhbGl6YXRpb25zO1xuXHRcdFx0XHRjb25zdCBjb250ZXh0UGF0aCA9IGAvJHt2YWx1ZUxpc3Q/LkNvbGxlY3Rpb25QYXRofWAgfHwgYC8ke2NvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dD8uZ2V0RW50aXR5U2V0KCk/Lm5hbWV9YDtcblx0XHRcdFx0dmlzdWFsRmlsdGVyID0ge307XG5cdFx0XHRcdHZpc3VhbEZpbHRlci5jb250ZXh0UGF0aCA9IGNvbnRleHRQYXRoO1xuXHRcdFx0XHR2aXN1YWxGaWx0ZXIuaXNWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMgPSBpc1ZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcztcblx0XHRcdFx0bGV0IGNoYXJ0QW5ub3RhdGlvbjogQW5ub3RhdGlvblBhdGg8Q2hhcnQ+IHwgdW5kZWZpbmVkO1xuXHRcdFx0XHRmb3IgKGNvbnN0IHZpc3VhbGl6YXRpb24gb2YgYVZpc3VhbGl6YXRpb25zKSB7XG5cdFx0XHRcdFx0aWYgKHZpc3VhbGl6YXRpb24uJHRhcmdldD8udGVybSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFwiKSB7XG5cdFx0XHRcdFx0XHRjaGFydEFubm90YXRpb24gPSB2aXN1YWxpemF0aW9uIGFzIEFubm90YXRpb25QYXRoPENoYXJ0Pjtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdFx0Y29uc3QgX2JnZXRWRkFnZ3JlZ2F0aW9uOiBib29sZWFuIHwgdW5kZWZpbmVkID0gX2NoZWNrVkZBZ2dyZWdhdGlvbihcblx0XHRcdFx0XHRcdGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGNoYXJ0QW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdGFnZ3JlZ2F0aW9uSGVscGVyXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAoIV9iZ2V0VkZBZ2dyZWdhdGlvbikge1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zdCBiRGltZW5zaW9uSGlkZGVuID0gY2hhcnRBbm5vdGF0aW9uPy4kdGFyZ2V0Py5EaW1lbnNpb25zWzBdPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpO1xuXHRcdFx0XHRcdGNvbnN0IGJEaW1lbnNpb25IaWRkZW5GaWx0ZXIgPVxuXHRcdFx0XHRcdFx0Y2hhcnRBbm5vdGF0aW9uPy4kdGFyZ2V0Py5EaW1lbnNpb25zWzBdPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpO1xuXHRcdFx0XHRcdGlmIChiRGltZW5zaW9uSGlkZGVuID09PSB0cnVlIHx8IGJEaW1lbnNpb25IaWRkZW5GaWx0ZXIgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFWaXN1YWxpemF0aW9ucyAmJiBhVmlzdWFsaXphdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIuY2hhcnRBbm5vdGF0aW9uID0gY2hhcnRBbm5vdGF0aW9uXG5cdFx0XHRcdFx0XHRcdD8gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0Py5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKFxuXHRcdFx0XHRcdFx0XHRcdFx0YCR7Y2hhcnRBbm5vdGF0aW9uLiR0YXJnZXQuZnVsbHlRdWFsaWZpZWROYW1lfS8kQW5ub3RhdGlvblBhdGgvYFxuXHRcdFx0XHRcdFx0XHQgIClcblx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHQvLyBUaGlzIG5lZWRzIHRvIGJlIGRvbmUgdG8gYXZvaWQgcmVwZXRpdGl2ZSBlbnRpdHkgdHlwZSBpbiBjYXNlIG9mIG5vbi1wYXJhbWV0ZXJpemVkIGVudGl0eSBzZXQgZS5nIC9TYWxlc09yZGVyTWFuYWdlL2NvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2RfYWdncmVnYXRlLlNhbGVzT3JkZXJNYW5hZ2Vcblx0XHRcdFx0XHRcdGNvbnN0IGVudGl0eVNldE5hbWUgPSBjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk/Lm5hbWU7XG5cdFx0XHRcdFx0XHRsZXQgcHJlc2VudGF0aW9uQW5ub3RhdGlvbjtcblx0XHRcdFx0XHRcdGNvbnN0IHJlbGF0aXZlQW5ub3RhdGlvblBhdGggPSBjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQ/LmdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgoXG5cdFx0XHRcdFx0XHRcdGAke3B2QW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWV9L2AsXG5cdFx0XHRcdFx0XHRcdGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKClcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRpZiAocGFyYW1ldGVyRW50aXR5VHlwZSkge1xuXHRcdFx0XHRcdFx0XHRwcmVzZW50YXRpb25Bbm5vdGF0aW9uID0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKCkgKyBcIi9cIiArIHJlbGF0aXZlQW5ub3RhdGlvblBhdGg7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRwcmVzZW50YXRpb25Bbm5vdGF0aW9uID0gXCIvXCIgKyBlbnRpdHlTZXROYW1lICsgXCIvXCIgKyByZWxhdGl2ZUFubm90YXRpb25QYXRoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnByZXNlbnRhdGlvbkFubm90YXRpb24gPSBwdkFubm90YXRpb24gPyBwcmVzZW50YXRpb25Bbm5vdGF0aW9uIDogdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLm91dFBhcmFtZXRlciA9IG91dFBhcmFtZXRlcj8uTG9jYWxEYXRhUHJvcGVydHk/LnZhbHVlO1xuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLmluUGFyYW1ldGVycyA9IGluUGFyYW1ldGVycztcblx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci52YWx1ZWxpc3RQcm9wZXJ0eSA9IG91dFBhcmFtZXRlcj8uVmFsdWVMaXN0UHJvcGVydHkgYXMgc3RyaW5nO1xuXHRcdFx0XHRcdFx0Y29uc3QgYklzUmFuZ2UgPSBjaGVja0ZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMoXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdFx0XHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihjb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgoc1Byb3BlcnR5UGF0aCkpXG5cdFx0XHRcdFx0XHRcdFx0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHRcdFx0XHRcdFx0W1wiU2luZ2xlUmFuZ2VcIiwgXCJNdWx0aVJhbmdlXCJdXG5cdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRpZiAoY29tcGlsZUV4cHJlc3Npb24oYklzUmFuZ2UpID09PSBcInRydWVcIikge1xuXHRcdFx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJSYW5nZSBBbGxvd2VkRXhwcmVzc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXN1YWwgZmlsdGVyc1wiKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Y29uc3QgYklzTWFpbkVudGl0eVNldFNpbmdsZVNlbGVjdGlvbiA9IGNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyhcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0XHRcdC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKGNvbnZlcnRlckNvbnRleHQuZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aChzUHJvcGVydHlQYXRoKSlcblx0XHRcdFx0XHRcdFx0XHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdFx0XHRcdFx0XHRbXCJTaW5nbGVWYWx1ZVwiXVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci5tdWx0aXBsZVNlbGVjdGlvbkFsbG93ZWQgPSBjb21waWxlRXhwcmVzc2lvbihub3QoYklzTWFpbkVudGl0eVNldFNpbmdsZVNlbGVjdGlvbikpO1xuXHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnJlcXVpcmVkID0gZ2V0SXNSZXF1aXJlZChjb252ZXJ0ZXJDb250ZXh0LCBzUHJvcGVydHlQYXRoKTtcblx0XHRcdFx0XHRcdGxldCBzdkFubm90YXRpb246IFNlbGVjdGlvblZhcmlhbnQgfCB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRpZiAoc3ZRdWFsaWZpZXIpIHtcblx0XHRcdFx0XHRcdFx0c3ZBbm5vdGF0aW9uID0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihcblx0XHRcdFx0XHRcdFx0XHRgQFVJLlNlbGVjdGlvblZhcmlhbnQjJHtzdlF1YWxpZmllcn1gXG5cdFx0XHRcdFx0XHRcdCk/LmFubm90YXRpb247XG5cdFx0XHRcdFx0XHRcdGxldCBzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbjtcblx0XHRcdFx0XHRcdFx0Y29uc3QgcmVsYXRpdmVTZWxlY3Rpb25WYXJpYW50UGF0aCA9IGNvbGxlY3Rpb25QYXRoQ29udmVydGVyQ29udGV4dD8uZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0XHRcdFx0XHRgJHtzdkFubm90YXRpb24/LmZ1bGx5UXVhbGlmaWVkTmFtZX0vYCxcblx0XHRcdFx0XHRcdFx0XHRjb2xsZWN0aW9uUGF0aENvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdGlmIChwYXJhbWV0ZXJFbnRpdHlUeXBlKSB7XG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gPVxuXHRcdFx0XHRcdFx0XHRcdFx0Y29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKCkgKyBcIi9cIiArIHJlbGF0aXZlU2VsZWN0aW9uVmFyaWFudFBhdGg7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gPSBcIi9cIiArIGVudGl0eVNldE5hbWUgKyBcIi9cIiArIHJlbGF0aXZlU2VsZWN0aW9uVmFyaWFudFBhdGg7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gc3ZBbm5vdGF0aW9uID8gc2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gOiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRsZXQgcmVxdWlyZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVBhdGhbXSA9IFtdO1xuXHRcdFx0XHRcdFx0aWYgKHBhcmFtZXRlckVudGl0eVR5cGUpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc0VudGl0eVNldCA9IGNvbGxlY3Rpb25QYXRoLnNwbGl0KFwiL1wiKVswXTtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc05hdmlnYXRpb25Qcm9wZXJ0eSA9IGNvbGxlY3Rpb25QYXRoLnNwbGl0KFwiL1wiKVsxXTtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgb0VudGl0eVNldENvbnZlcnRlckNvbnRleHQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlckNvbnRleHRGb3IoYC8ke3NFbnRpdHlTZXR9YCk7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGFSZXN0cmljdGVkUHJvcGVydGllcyA9XG5cdFx0XHRcdFx0XHRcdFx0b0VudGl0eVNldENvbnZlcnRlckNvbnRleHQ/LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS5zdGFydGluZ0VudGl0eVNldD8uYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllc1xuXHRcdFx0XHRcdFx0XHRcdFx0Py5OYXZpZ2F0aW9uUmVzdHJpY3Rpb25zPy5SZXN0cmljdGVkUHJvcGVydGllcztcblx0XHRcdFx0XHRcdFx0Y29uc3Qgb1Jlc3RyaWN0ZWRQcm9wZXJ0eSA9IGFSZXN0cmljdGVkUHJvcGVydGllcz8uZmluZChcblx0XHRcdFx0XHRcdFx0XHQocmVzdHJpY3RlZE5hdlByb3A6IE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uVHlwZXMpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChyZXN0cmljdGVkTmF2UHJvcC5OYXZpZ2F0aW9uUHJvcGVydHk/LnR5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiByZXN0cmljdGVkTmF2UHJvcC5OYXZpZ2F0aW9uUHJvcGVydHkudmFsdWUgPT09IHNOYXZpZ2F0aW9uUHJvcGVydHk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRyZXF1aXJlZFByb3BlcnRpZXMgPSBvUmVzdHJpY3RlZFByb3BlcnR5Py5GaWx0ZXJSZXN0cmljdGlvbnM/LlJlcXVpcmVkUHJvcGVydGllcyA/PyBbXTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGVudGl0eVNldE9yU2luZ2xldG9uID0gY29sbGVjdGlvblBhdGhDb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlTZXQoKTtcblx0XHRcdFx0XHRcdFx0aWYgKCFNb2RlbEhlbHBlci5pc1NpbmdsZXRvbihlbnRpdHlTZXRPclNpbmdsZXRvbikpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZFByb3BlcnRpZXMgPVxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5U2V0T3JTaW5nbGV0b24/LmFubm90YXRpb25zPy5DYXBhYmlsaXRpZXM/LkZpbHRlclJlc3RyaWN0aW9ucz8uUmVxdWlyZWRQcm9wZXJ0aWVzID8/IFtdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRsZXQgcmVxdWlyZWRQcm9wZXJ0eVBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0XHRcdFx0aWYgKHJlcXVpcmVkUHJvcGVydGllcz8ubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdHJlcXVpcmVkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChvUmVxdWlyZVByb3BlcnR5KSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVxdWlyZWRQcm9wZXJ0eVBhdGhzLnB1c2gob1JlcXVpcmVQcm9wZXJ0eS52YWx1ZSk7XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmVxdWlyZWRQcm9wZXJ0eVBhdGhzID0gcmVxdWlyZWRQcm9wZXJ0eVBhdGhzLmNvbmNhdChhUGFyYW1ldGVycyk7XG5cdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIucmVxdWlyZWRQcm9wZXJ0aWVzID0gcmVxdWlyZWRQcm9wZXJ0eVBhdGhzO1xuXHRcdFx0XHRcdFx0aWYgKHZpc3VhbEZpbHRlci5yZXF1aXJlZFByb3BlcnRpZXM/Lmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRpZiAoIXZpc3VhbEZpbHRlci5pblBhcmFtZXRlcnMgfHwgIXZpc3VhbEZpbHRlci5pblBhcmFtZXRlcnMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCF2aXN1YWxGaWx0ZXIuc2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24pIHtcblx0XHRcdFx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci5zaG93T3ZlcmxheUluaXRpYWxseSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBzZWxlY3RPcHRpb25zID1cblx0XHRcdFx0XHRcdFx0XHRcdFx0c3ZBbm5vdGF0aW9uPy5TZWxlY3RPcHRpb25zPy5tYXAoKG9TZWxlY3RPcHRpb24pID0+IG9TZWxlY3RPcHRpb24uUHJvcGVydHlOYW1lPy52YWx1ZSkgfHwgW107XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBwYXJhbWV0ZXJPcHRpb25zID1cblx0XHRcdFx0XHRcdFx0XHRcdFx0c3ZBbm5vdGF0aW9uPy5QYXJhbWV0ZXJzPy5tYXAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KG9QYXJhbWV0ZXJPcHRpb24pID0+IChvUGFyYW1ldGVyT3B0aW9uIGFzIFBhcmFtZXRlclR5cGVzKS5Qcm9wZXJ0eU5hbWU/LnZhbHVlXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCkgfHwgW107XG5cdFx0XHRcdFx0XHRcdFx0XHRzZWxlY3RPcHRpb25zID0gc2VsZWN0T3B0aW9ucy5jb25jYXQocGFyYW1ldGVyT3B0aW9ucyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZFByb3BlcnR5UGF0aHMgPSByZXF1aXJlZFByb3BlcnR5UGF0aHMuc29ydCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0c2VsZWN0T3B0aW9ucyA9IHNlbGVjdE9wdGlvbnMuc29ydCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnNob3dPdmVybGF5SW5pdGlhbGx5ID0gcmVxdWlyZWRQcm9wZXJ0eVBhdGhzLnNvbWUoZnVuY3Rpb24gKHNQYXRoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBzZWxlY3RPcHRpb25zLmluZGV4T2Yoc1BhdGgpID09PSAtMTtcblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR2aXN1YWxGaWx0ZXIuc2hvd092ZXJsYXlJbml0aWFsbHkgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsRmlsdGVyLnNob3dPdmVybGF5SW5pdGlhbGx5ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRjb25zdCBzRGltZW5zaW9uVHlwZSA9IGNoYXJ0QW5ub3RhdGlvbj8uJHRhcmdldD8uRGltZW5zaW9uc1swXT8uJHRhcmdldD8udHlwZTtcblx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0IShcblx0XHRcdFx0XHRcdFx0XHRzRGltZW5zaW9uVHlwZSA9PT0gXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIiB8fFxuXHRcdFx0XHRcdFx0XHRcdHNEaW1lbnNpb25UeXBlID09PSBcIkVkbS5EYXRlXCIgfHxcblx0XHRcdFx0XHRcdFx0XHRzRGltZW5zaW9uVHlwZSA9PT0gXCJFZG0uVGltZU9mRGF5XCJcblx0XHRcdFx0XHRcdFx0KSAmJlxuXHRcdFx0XHRcdFx0XHRjaGFydEFubm90YXRpb24uJHRhcmdldC5DaGFydFR5cGUgPT09IFwiVUkuQ2hhcnRUeXBlL0xpbmVcIlxuXHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci5yZW5kZXJMaW5lQ2hhcnQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbEZpbHRlci5yZW5kZXJMaW5lQ2hhcnQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0XHQuZ2V0RGlhZ25vc3RpY3MoKVxuXHRcdFx0XHRcdFx0LmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgSXNzdWVTZXZlcml0eS5IaWdoLCBJc3N1ZVR5cGUuTUFMRk9STUVEX1ZJU1VBTEZJTFRFUlMuQ0hBUlQpO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdC5nZXREaWFnbm9zdGljcygpXG5cdFx0XHRcdFx0LmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgSXNzdWVTZXZlcml0eS5IaWdoLCBJc3N1ZVR5cGUuTUFMRk9STUVEX1ZJU1VBTEZJTFRFUlMuUFJFU0VOVEFUSU9OVkFSSUFOVCk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdFx0LmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgSXNzdWVTZXZlcml0eS5IaWdoLCBJc3N1ZVR5cGUuTUFMRk9STUVEX1ZJU1VBTEZJTFRFUlMuVkFMVUVMSVNUKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXREaWFnbm9zdGljcygpLmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuTWFuaWZlc3QsIElzc3VlU2V2ZXJpdHkuSGlnaCwgSXNzdWVUeXBlLk1BTEZPUk1FRF9WSVNVQUxGSUxURVJTLlZBTFVFTElTVCk7XG5cdH1cblx0cmV0dXJuIHZpc3VhbEZpbHRlcjtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7RUF5Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLE1BQU1BLG1CQUFtQixHQUFHLFVBQzNCQyxnQkFBa0MsRUFDbENDLGVBQXNDLEVBQ3RDQyxpQkFBb0MsRUFDZDtJQUFBO0lBQ3RCLElBQUlDLFlBQVksRUFBRUMsVUFBVSxFQUFFQyxhQUFhO0lBQzNDLElBQUlDLFFBQTRCO0lBQ2hDLE1BQU1DLGdCQUFnQixHQUFHTCxpQkFB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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/Aggregation","sap/fe/core/converters/helpers/IssueManager","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/templating/DataModelPathHelper","sap/fe/core/templating/FilterTemplating"],function(e,t,o,i,n,l){"use strict";var a={};var r=l.isPropertyFilterable;var v=l.getIsRequired;var
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/helpers/Aggregation","sap/fe/core/converters/helpers/IssueManager","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/templating/DataModelPathHelper","sap/fe/core/templating/FilterTemplating"],function(e,t,o,i,n,l){"use strict";var a={};var r=l.isPropertyFilterable;var v=l.getIsRequired;var d=n.checkFilterExpressionRestrictions;var s=o.not;var u=o.compileExpression;var g=t.IssueType;var c=t.IssueSeverity;var f=t.IssueCategory;var p=e.AggregationHelper;const P=function(e,t,o){var i,n,l,a;let r,v,d;let s;const u=o.getCustomAggregateDefinitions();let g=o.getTransAggregations();let c=[];if(t!==null&&t!==void 0&&(i=t.$target)!==null&&i!==void 0&&i.Measures){var f,p,P;c=u.filter(function(e){var o,i,n;return e.qualifier===(t===null||t===void 0?void 0:(o=t.$target)===null||o===void 0?void 0:(i=o.Measures)===null||i===void 0?void 0:(n=i[0])===null||n===void 0?void 0:n.value)});s=c.length>0?c[0].qualifier:t===null||t===void 0?void 0:(f=t.$target)===null||f===void 0?void 0:(p=f.Measures)===null||p===void 0?void 0:(P=p[0])===null||P===void 0?void 0:P.value}if(!c[0]&&t!==null&&t!==void 0&&(n=t.$target)!==null&&n!==void 0&&n.DynamicMeasures){var y,h;s=e.getConverterContextFor(e.getAbsoluteAnnotationPath((y=t.$target.DynamicMeasures)===null||y===void 0?void 0:(h=y[0])===null||h===void 0?void 0:h.value)).getDataModelObjectPath().targetObject.Name;g=o.getAggregatedProperties("AggregatedProperty")}else{g=o.getAggregatedProperties("AggregatedProperties")[0]}const m=t===null||t===void 0?void 0:(l=t.$target)===null||l===void 0?void 0:(a=l.Dimensions[0])===null||a===void 0?void 0:a.value;if(u.some(function(e){return e.qualifier===s})){r=s}else if(g&&g[0]){g.some(function(e){if(e.Name===s){r=e===null||e===void 0?void 0:e.AggregatableProperty.value}})}const A=o.getAggregatableProperties();const C=o.getGroupableProperties();if(A&&A.length){for(const e of A){var E;if((e===null||e===void 0?void 0:(E=e.Property)===null||E===void 0?void 0:E.value)===r){d=true}}}if(C&&C.length){for(const e of C){if((e===null||e===void 0?void 0:e.value)===m){v=true}}}return d&&v};function y(e,t,o,n){var l;let a;const y=n[o];if(y!==null&&y!==void 0&&(l=y.visualFilter)!==null&&l!==void 0&&l.valueList){var h,m,A,C,E,L;const n=y===null||y===void 0?void 0:(h=y.visualFilter)===null||h===void 0?void 0:h.valueList;const l=n.split("#");const ce=l.length>1?`ValueList#${l[1]}`:l[0];const fe=e.resolvePath(o);const pe=fe===null||fe===void 0?void 0:(m=fe.annotations)===null||m===void 0?void 0:(A=m.Common)===null||A===void 0?void 0:A[ce];const Pe=(fe===null||fe===void 0?void 0:(C=fe.annotations)===null||C===void 0?void 0:(E=C.Common)===null||E===void 0?void 0:(L=E.ValueListWithFixedValues)===null||L===void 0?void 0:L.valueOf())||false;if(pe){var I,$;const e=pe===null||pe===void 0?void 0:pe.CollectionPath.toString();const n=t.getConverterContextFor(`/${e||((I=t.getEntitySet())===null||I===void 0?void 0:I.name)}`);const l=pe===null||pe===void 0?void 0:pe.Parameters;let y;const h=[];let m=[];const A=n.getParameterEntityType();m=A?A.keys.map(function(e){return e.name}):[];if(t.getContextPath()===n.getContextPath()){m.forEach(function(e){h.push({localDataProperty:e,valueListProperty:e})})}if(l){for(const e of l){var D;const t=(D=e.LocalDataProperty)===null||D===void 0?void 0:D.value;const i=e.ValueListProperty;if(((e===null||e===void 0?void 0:e.$Type)==="com.sap.vocabularies.Common.v1.ValueListParameterInOut"||(e===null||e===void 0?void 0:e.$Type)==="com.sap.vocabularies.Common.v1.ValueListParameterOut")&&o===t){y=e}if(((e===null||e===void 0?void 0:e.$Type)==="com.sap.vocabularies.Common.v1.ValueListParameterInOut"||(e===null||e===void 0?void 0:e.$Type)==="com.sap.vocabularies.Common.v1.ValueListParameterIn")&&o!==t){const e=r(n,i);if(!e){h.push({localDataProperty:t,valueListProperty:i})}}}}if(h&&h.length){h.forEach(function(e){const i=u(d(t.getConverterContextFor(t.getAbsoluteAnnotationPath(e===null||e===void 0?void 0:e.localDataProperty)).getDataModelObjectPath(),["SingleValue"]));const l=u(d(n.getConverterContextFor(n.getAbsoluteAnnotationPath(e===null||e===void 0?void 0:e.valueListProperty)).getDataModelObjectPath(),["SingleValue"]));if(l==="true"&&i==="false"){throw new Error(`FilterRestrictions of ${o} in MainEntitySet and ValueListEntitySet are different`)}})}const C=pe===null||pe===void 0?void 0:pe.PresentationVariantQualifier;const E=pe===null||pe===void 0?void 0:pe.SelectionVariantQualifier;const L=n===null||n===void 0?void 0:($=n.getEntityType().annotations.UI)===null||$===void 0?void 0:$[`PresentationVariant#${C}`];const ce=new p(n.getEntityType(),n);if(!ce.isAnalyticsSupported()){return undefined}if(L){var S;const l=L===null||L===void 0?void 0:L.Visualizations;const r=`/${pe===null||pe===void 0?void 0:pe.CollectionPath}`||`/${n===null||n===void 0?void 0:(S=n.getEntitySet())===null||S===void 0?void 0:S.name}`;a={};a.contextPath=r;a.isValueListWithFixedValues=Pe;let p;for(const e of l){var V;if(((V=e.$target)===null||V===void 0?void 0:V.term)==="com.sap.vocabularies.UI.v1.Chart"){p=e;break}}if(p){var T,F,O,b,M,R,x,N,U,w,H,q,j,Q;const r=P(n,p,ce);if(!r){return}const g=(T=p)===null||T===void 0?void 0:(F=T.$target)===null||F===void 0?void 0:(O=F.Dimensions[0])===null||O===void 0?void 0:(b=O.$target)===null||b===void 0?void 0:(M=b.annotations)===null||M===void 0?void 0:(R=M.UI)===null||R===void 0?void 0:(x=R.Hidden)===null||x===void 0?void 0:x.valueOf();const c=(N=p)===null||N===void 0?void 0:(U=N.$target)===null||U===void 0?void 0:(w=U.Dimensions[0])===null||w===void 0?void 0:(H=w.$target)===null||H===void 0?void 0:(q=H.annotations)===null||q===void 0?void 0:(j=q.UI)===null||j===void 0?void 0:(Q=j.HiddenFilter)===null||Q===void 0?void 0:Q.valueOf();if(g===true||c===true){return}else if(l&&l.length){var k,_,W,z,B,G,J,K,X,Y;a.chartAnnotation=p?n===null||n===void 0?void 0:n.getAbsoluteAnnotationPath(`${p.$target.fullyQualifiedName}/$AnnotationPath/`):undefined;const l=(k=n.getEntitySet())===null||k===void 0?void 0:k.name;let r;const g=n===null||n===void 0?void 0:n.getRelativeAnnotationPath(`${L.fullyQualifiedName}/`,n.getEntityType());if(A){r=n.getContextPath()+"/"+g}else{r="/"+l+"/"+g}a.presentationAnnotation=L?r:undefined;a.outParameter=(_=y)===null||_===void 0?void 0:(W=_.LocalDataProperty)===null||W===void 0?void 0:W.value;a.inParameters=h;a.valuelistProperty=(z=y)===null||z===void 0?void 0:z.ValueListProperty;const c=d(t.getConverterContextFor(t.getAbsoluteAnnotationPath(o)).getDataModelObjectPath(),["SingleRange","MultiRange"]);if(u(c)==="true"){throw new Error("Range AllowedExpression is not supported for visual filters")}const f=d(t.getConverterContextFor(t.getAbsoluteAnnotationPath(o)).getDataModelObjectPath(),["SingleValue"]);a.multipleSelectionAllowed=u(s(f));a.required=v(t,o);let P;if(E){var Z,ee;P=n===null||n===void 0?void 0:(Z=n.getEntityTypeAnnotation(`@UI.SelectionVariant#${E}`))===null||Z===void 0?void 0:Z.annotation;let e;const t=n===null||n===void 0?void 0:n.getRelativeAnnotationPath(`${(ee=P)===null||ee===void 0?void 0:ee.fullyQualifiedName}/`,n.getEntityType());if(A){e=n.getContextPath()+"/"+t}else{e="/"+l+"/"+t}a.selectionVariantAnnotation=P?e:undefined}let C=[];if(A){var te,oe,ie,ne,le;const o=e.split("/")[0];const i=e.split("/")[1];const n=t.getConverterContextFor(`/${o}`);const l=n===null||n===void 0?void 0:(te=n.getDataModelObjectPath().startingEntitySet)===null||te===void 0?void 0:(oe=te.annotations)===null||oe===void 0?void 0:(ie=oe.Capabilities)===null||ie===void 0?void 0:(ne=ie.NavigationRestrictions)===null||ne===void 0?void 0:ne.RestrictedProperties;const a=l===null||l===void 0?void 0:l.find(e=>{var t;if(((t=e.NavigationProperty)===null||t===void 0?void 0:t.type)==="NavigationPropertyPath"){return e.NavigationProperty.value===i}});C=(a===null||a===void 0?void 0:(le=a.FilterRestrictions)===null||le===void 0?void 0:le.RequiredProperties)??[]}else{const e=n===null||n===void 0?void 0:n.getEntitySet();if(!i.isSingleton(e)){var ae,re,ve;C=(e===null||e===void 0?void 0:(ae=e.annotations)===null||ae===void 0?void 0:(re=ae.Capabilities)===null||re===void 0?void 0:(ve=re.FilterRestrictions)===null||ve===void 0?void 0:ve.RequiredProperties)??[]}}let I=[];if((B=C)!==null&&B!==void 0&&B.length){C.forEach(function(e){I.push(e.value)})}I=I.concat(m);a.requiredProperties=I;if((G=a.requiredProperties)!==null&&G!==void 0&&G.length){if(!a.inParameters||!a.inParameters.length){if(!a.selectionVariantAnnotation){a.showOverlayInitially=true}else{var de,se,ue,ge;let e=((de=P)===null||de===void 0?void 0:(se=de.SelectOptions)===null||se===void 0?void 0:se.map(e=>{var t;return(t=e.PropertyName)===null||t===void 0?void 0:t.value}))||[];const t=((ue=P)===null||ue===void 0?void 0:(ge=ue.Parameters)===null||ge===void 0?void 0:ge.map(e=>{var t;return(t=e.PropertyName)===null||t===void 0?void 0:t.value}))||[];e=e.concat(t);I=I.sort();e=e.sort();a.showOverlayInitially=I.some(function(t){return e.indexOf(t)===-1})}}else{a.showOverlayInitially=false}}else{a.showOverlayInitially=false}const $=(J=p)===null||J===void 0?void 0:(K=J.$target)===null||K===void 0?void 0:(X=K.Dimensions[0])===null||X===void 0?void 0:(Y=X.$target)===null||Y===void 0?void 0:Y.type;if(!($==="Edm.DateTimeOffset"||$==="Edm.Date"||$==="Edm.TimeOfDay")&&p.$target.ChartType==="UI.ChartType/Line"){a.renderLineChart=false}else{a.renderLineChart=true}}}else{t.getDiagnostics().addIssue(f.Annotation,c.High,g.MALFORMED_VISUALFILTERS.CHART);return}}else{t.getDiagnostics().addIssue(f.Annotation,c.High,g.MALFORMED_VISUALFILTERS.PRESENTATIONVARIANT)}}else{t.getDiagnostics().addIssue(f.Annotation,c.High,g.MALFORMED_VISUALFILTERS.VALUELIST)}}else{t.getDiagnostics().addIssue(f.Manifest,c.High,g.MALFORMED_VISUALFILTERS.VALUELIST)}return a}a.getVisualFilters=y;return a},false);
|
|
6
6
|
//# sourceMappingURL=VisualFilters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisualFilters.js","names":["sap","ui","define","Aggregation","IssueManager","BindingToolkit","ModelHelper","DataModelPathHelper","FilterTemplating","_exports","isPropertyFilterable","getIsRequired","checkFilterExpressionRestrictions","compileExpression","IssueType","IssueSeverity","IssueCategory","AggregationHelper","_checkVFAggregation","converterContext","chartAnnotation","aggregationHelper","_chartAnnotation$$tar","_chartAnnotation$$tar8","_chartAnnotation$$tar11","_chartAnnotation$$tar12","sMeasurePath","bGroupable","bAggregatable","sMeasure","customAggregates","getCustomAggregateDefinitions","aTransAggregations","getTransAggregations","aCustAggMeasure","$target","Measures","_chartAnnotation$$tar5","_chartAnnotation$$tar6","_chartAnnotation$$tar7","filter","custAgg","_chartAnnotation$$tar2","_chartAnnotation$$tar3","_chartAnnotation$$tar4","qualifier","value","length","DynamicMeasures","_chartAnnotation$$tar9","_chartAnnotation$$tar10","getConverterContextFor","getAbsoluteAnnotationPath","getDataModelObjectPath","targetObject","Name","getAggregatedProperties","sDimension","Dimensions","some","oAggregate","AggregatableProperty","aAggregatablePropsFromContainer","getAggregatableProperties","aGroupablePropsFromContainer","getGroupableProperties","aggregatableProp","_aggregatableProp$Pro","Property","groupableProp","getVisualFilters","entityType","sPropertyPath","FilterFields","_oVisualFilter$visual","visualFilter","oVisualFilter","valueList","_oVisualFilter$visual2","_property$annotations","oVFPath","annotationQualifierSplit","split","qualifierVL","property","resolvePath","annotations","Common","_converterContext$get","_collectionPathConver","collectionPath","CollectionPath","collectionPathConverterContext","getEntitySet","name","valueListParams","Parameters","outParameter","inParameters","aParameters","parameterEntityType","getParameterEntityType","keys","map","key","getContextPath","forEach","parameter","push","localDataProperty","valueListProperty","valueListParam","_valueListParam$Local","LocalDataProperty","ValueListProperty","$Type","bNotFilterable","oInParameter","mainEntitySetInMappingAllowedExpression","valueListEntitySetInMappingAllowedExpression","Error","pvQualifier","PresentationVariantQualifier","svQualifier","SelectionVariantQualifier","pvAnnotation","getEntityTypeAnnotation","annotation","getEntityType","isAnalyticsSupported","undefined","_collectionPathConver2","aVisualizations","Visualizations","contextPath","visualization","_visualization$$targe","term","_chartAnnotation","_chartAnnotation$$tar13","_chartAnnotation$$tar14","_chartAnnotation$$tar15","_chartAnnotation$$tar16","_chartAnnotation$$tar17","_chartAnnotation$$tar18","_chartAnnotation2","_chartAnnotation2$$ta","_chartAnnotation2$$ta2","_chartAnnotation2$$ta3","_chartAnnotation2$$ta4","_chartAnnotation2$$ta5","_chartAnnotation2$$ta6","_bgetVFAggregation","bDimensionHidden","UI","Hidden","valueOf","bDimensionHiddenFilter","HiddenFilter","_outParameter","_outParameter$LocalDa","_outParameter2","_requiredProperties","_visualFilter$require","_chartAnnotation3","_chartAnnotation3$$ta","_chartAnnotation3$$ta2","_chartAnnotation3$$ta3","fullyQualifiedName","entityTypeName","presentationAnnotation","relativeAnnotationPath","getRelativeAnnotationPath","valuelistProperty","bIsRange","bIsMainEntitySetSingleSelection","multipleSelectionAllowed","required","svAnnotation","_collectionPathConver3","selectionVariantAnnotation","relativeSelectionVariantPath","requiredProperties","_oEntitySetConverterC","_oEntitySetConverterC2","_oEntitySetConverterC3","_oEntitySetConverterC4","_oRestrictedProperty$","sEntitySet","sNavigationProperty","oEntitySetConverterContext","aRestrictedProperties","startingEntitySet","Capabilities","NavigationRestrictions","RestrictedProperties","oRestrictedProperty","find","restrictedNavProp","_restrictedNavProp$Na","NavigationProperty","type","FilterRestrictions","RequiredProperties","_collectionPathConver4","entitySetAnnotations","isSingleton","_entitySetAnnotations","_entitySetAnnotations2","requiredPropertyPaths","oRequireProperty","concat","showOverlayInitially","_svAnnotation","_svAnnotation$SelectO","_svAnnotation2","_svAnnotation2$Parame","selectOptions","SelectOptions","oSelectOption","PropertyName","parameterOptions","oParameterOption","sort","sPath","indexOf","sDimensionType","ChartType","renderLineChart","getDiagnostics","addIssue","Annotation","High","MALFORMED_VISUALFILTERS","CHART","PRESENTATIONVARIANT","VALUELIST","Manifest"],"sources":["VisualFilters-dbg.js"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VisualFilters.js","names":["sap","ui","define","Aggregation","IssueManager","BindingToolkit","ModelHelper","DataModelPathHelper","FilterTemplating","_exports","isPropertyFilterable","getIsRequired","checkFilterExpressionRestrictions","not","compileExpression","IssueType","IssueSeverity","IssueCategory","AggregationHelper","_checkVFAggregation","converterContext","chartAnnotation","aggregationHelper","_chartAnnotation$$tar","_chartAnnotation$$tar8","_chartAnnotation$$tar11","_chartAnnotation$$tar12","sMeasurePath","bGroupable","bAggregatable","sMeasure","customAggregates","getCustomAggregateDefinitions","aTransAggregations","getTransAggregations","aCustAggMeasure","$target","Measures","_chartAnnotation$$tar5","_chartAnnotation$$tar6","_chartAnnotation$$tar7","filter","custAgg","_chartAnnotation$$tar2","_chartAnnotation$$tar3","_chartAnnotation$$tar4","qualifier","value","length","DynamicMeasures","_chartAnnotation$$tar9","_chartAnnotation$$tar10","getConverterContextFor","getAbsoluteAnnotationPath","getDataModelObjectPath","targetObject","Name","getAggregatedProperties","sDimension","Dimensions","some","oAggregate","AggregatableProperty","aAggregatablePropsFromContainer","getAggregatableProperties","aGroupablePropsFromContainer","getGroupableProperties","aggregatableProp","_aggregatableProp$Pro","Property","groupableProp","getVisualFilters","entityType","sPropertyPath","FilterFields","_oVisualFilter$visual","visualFilter","oVisualFilter","valueList","_oVisualFilter$visual2","_property$annotations","_property$annotations2","_property$annotations3","_property$annotations4","_property$annotations5","oVFPath","annotationQualifierSplit","split","qualifierVL","property","resolvePath","annotations","Common","isValueListWithFixedValues","ValueListWithFixedValues","valueOf","_converterContext$get","_collectionPathConver","collectionPath","CollectionPath","toString","collectionPathConverterContext","getEntitySet","name","valueListParams","Parameters","outParameter","inParameters","aParameters","parameterEntityType","getParameterEntityType","keys","map","key","getContextPath","forEach","parameter","push","localDataProperty","valueListProperty","valueListParam","_LocalDataProperty","LocalDataProperty","ValueListProperty","$Type","bNotFilterable","oInParameter","mainEntitySetInMappingAllowedExpression","valueListEntitySetInMappingAllowedExpression","Error","pvQualifier","PresentationVariantQualifier","svQualifier","SelectionVariantQualifier","pvAnnotation","getEntityType","UI","isAnalyticsSupported","undefined","_collectionPathConver2","aVisualizations","Visualizations","contextPath","visualization","_visualization$$targe","term","_chartAnnotation","_chartAnnotation$$tar13","_chartAnnotation$$tar14","_chartAnnotation$$tar15","_chartAnnotation$$tar16","_chartAnnotation$$tar17","_chartAnnotation$$tar18","_chartAnnotation2","_chartAnnotation2$$ta","_chartAnnotation2$$ta2","_chartAnnotation2$$ta3","_chartAnnotation2$$ta4","_chartAnnotation2$$ta5","_chartAnnotation2$$ta6","_bgetVFAggregation","bDimensionHidden","Hidden","bDimensionHiddenFilter","HiddenFilter","_collectionPathConver3","_outParameter","_outParameter$LocalDa","_outParameter2","_requiredProperties","_visualFilter$require","_chartAnnotation3","_chartAnnotation3$$ta","_chartAnnotation3$$ta2","_chartAnnotation3$$ta3","fullyQualifiedName","entitySetName","presentationAnnotation","relativeAnnotationPath","getRelativeAnnotationPath","valuelistProperty","bIsRange","bIsMainEntitySetSingleSelection","multipleSelectionAllowed","required","svAnnotation","_collectionPathConver4","_svAnnotation","getEntityTypeAnnotation","annotation","selectionVariantAnnotation","relativeSelectionVariantPath","requiredProperties","_oEntitySetConverterC","_oEntitySetConverterC2","_oEntitySetConverterC3","_oEntitySetConverterC4","_oRestrictedProperty$","sEntitySet","sNavigationProperty","oEntitySetConverterContext","aRestrictedProperties","startingEntitySet","Capabilities","NavigationRestrictions","RestrictedProperties","oRestrictedProperty","find","restrictedNavProp","_restrictedNavProp$Na","NavigationProperty","type","FilterRestrictions","RequiredProperties","entitySetOrSingleton","isSingleton","_entitySetOrSingleton","_entitySetOrSingleton2","_entitySetOrSingleton3","requiredPropertyPaths","oRequireProperty","concat","showOverlayInitially","_svAnnotation2","_svAnnotation2$Select","_svAnnotation3","_svAnnotation3$Parame","selectOptions","SelectOptions","oSelectOption","_oSelectOption$Proper","PropertyName","parameterOptions","oParameterOption","_PropertyName","sort","sPath","indexOf","sDimensionType","ChartType","renderLineChart","getDiagnostics","addIssue","Annotation","High","MALFORMED_VISUALFILTERS","CHART","PRESENTATIONVARIANT","VALUELIST","Manifest"],"sources":["VisualFilters-dbg.js"],"mappings":"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"}
|