@sapui5/sap.fe.macros 1.141.2 → 1.143.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/macros/.library +1 -1
- package/src/sap/fe/macros/Breadcrumbs.js +4 -10
- package/src/sap/fe/macros/Breadcrumbs.tsx +2 -8
- package/src/sap/fe/macros/Chart.js +34 -23
- package/src/sap/fe/macros/Chart.tsx +25 -11
- package/src/sap/fe/macros/CollaborativeDraftHandler.js +47 -36
- package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +50 -31
- package/src/sap/fe/macros/CollectionBindingInfo.js +8 -2
- package/src/sap/fe/macros/CollectionBindingInfo.ts +11 -6
- package/src/sap/fe/macros/CommonHelper.js +14 -24
- package/src/sap/fe/macros/CommonHelper.ts +18 -25
- package/src/sap/fe/macros/ConditionalSwitch.js +1 -2
- package/src/sap/fe/macros/ConditionalSwitch.tsx +0 -1
- package/src/sap/fe/macros/ConditionalSwitchProperty.js +1 -3
- package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +0 -2
- package/src/sap/fe/macros/Field.js +34 -17
- package/src/sap/fe/macros/Field.ts +64 -32
- package/src/sap/fe/macros/FooterContent.js +7 -3
- package/src/sap/fe/macros/FooterContent.tsx +8 -13
- package/src/sap/fe/macros/KPITag.js +6 -6
- package/src/sap/fe/macros/KPITag.tsx +8 -6
- package/src/sap/fe/macros/MacroAPI.js +4 -3
- package/src/sap/fe/macros/MacroAPI.ts +3 -3
- package/src/sap/fe/macros/MessageButton.js +4 -3
- package/src/sap/fe/macros/MessageButton.tsx +7 -3
- package/src/sap/fe/macros/MicroChart.js +12 -7
- package/src/sap/fe/macros/MicroChart.tsx +9 -3
- package/src/sap/fe/macros/MultiValueField.js +22 -36
- package/src/sap/fe/macros/MultiValueField.tsx +34 -66
- package/src/sap/fe/macros/RichTextEditor.js +3 -4
- package/src/sap/fe/macros/RichTextEditor.tsx +2 -3
- package/src/sap/fe/macros/Share.js +7 -7
- package/src/sap/fe/macros/Share.tsx +9 -6
- package/src/sap/fe/macros/Status.js +39 -11
- package/src/sap/fe/macros/Status.tsx +25 -5
- package/src/sap/fe/macros/ValueHelp.js +5 -2
- package/src/sap/fe/macros/ValueHelp.tsx +5 -0
- package/src/sap/fe/macros/ai/EasyFillDialog.js +2 -1
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +1 -0
- package/src/sap/fe/macros/ai/EasyFilterBar.js +7 -34
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +6 -35
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +31 -7
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +33 -6
- package/src/sap/fe/macros/ai/SummarizationButton.js +6 -4
- package/src/sap/fe/macros/ai/SummarizationButton.tsx +5 -3
- package/src/sap/fe/macros/chart/Action.js +25 -2
- package/src/sap/fe/macros/chart/Action.ts +13 -0
- package/src/sap/fe/macros/chart/ActionGroup.js +25 -2
- package/src/sap/fe/macros/chart/ActionGroup.ts +13 -0
- package/src/sap/fe/macros/chart/ChartDelegate.js +29 -8
- package/src/sap/fe/macros/chart/ChartDelegate.ts +46 -14
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +58 -12
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +75 -13
- package/src/sap/fe/macros/chart/OverflowGroup.js +62 -0
- package/src/sap/fe/macros/chart/OverflowGroup.ts +22 -0
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +7 -7
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +3 -2
- package/src/sap/fe/macros/controls/FileWrapper.js +11 -5
- package/src/sap/fe/macros/controls/FileWrapper.ts +10 -4
- package/src/sap/fe/macros/controls/FilterBar.js +39 -3
- package/src/sap/fe/macros/controls/FilterBar.ts +42 -1
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +3 -1
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -0
- package/src/sap/fe/macros/controls/RadioButtons.js +18 -5
- package/src/sap/fe/macros/controls/RadioButtons.tsx +10 -1
- package/src/sap/fe/macros/coreUI/CreateDialog.js +3 -3
- package/src/sap/fe/macros/coreUI/CreateDialog.tsx +2 -2
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +40 -12
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -9
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +4 -2
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +3 -1
- package/src/sap/fe/macros/field/FieldFormatOptions.js +4 -4
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +2 -2
- package/src/sap/fe/macros/field/FieldHelper.js +4 -3
- package/src/sap/fe/macros/field/FieldHelper.ts +7 -1
- package/src/sap/fe/macros/field/FieldRuntime.js +44 -9
- package/src/sap/fe/macros/field/FieldRuntime.ts +72 -8
- package/src/sap/fe/macros/field/FieldRuntimeHelper.js +3 -34
- package/src/sap/fe/macros/field/FieldRuntimeHelper.ts +28 -53
- package/src/sap/fe/macros/field/FieldTemplating.js +5 -4
- package/src/sap/fe/macros/field/FieldTemplating.ts +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.ts +7 -2
- package/src/sap/fe/macros/filter/FilterUtils.js +130 -40
- package/src/sap/fe/macros/filter/FilterUtils.ts +167 -45
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.js +2 -2
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.ts +1 -1
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +4 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +19 -8
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +15 -9
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +36 -17
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +21 -10
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +81 -63
- package/src/sap/fe/macros/filterBar/UOMValidationDelegate.js +376 -0
- package/src/sap/fe/macros/filterBar/UOMValidationDelegate.ts +463 -0
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +4 -3
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +3 -2
- package/src/sap/fe/macros/form/Form.block.js +27 -2
- package/src/sap/fe/macros/form/Form.block.ts +31 -11
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -3
- package/src/sap/fe/macros/form/FormContainer.block.js +110 -63
- package/src/sap/fe/macros/form/FormContainer.block.ts +121 -64
- package/src/sap/fe/macros/formatters/TableFormatter.js +13 -10
- package/src/sap/fe/macros/formatters/TableFormatter.ts +11 -9
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.js +6 -4
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.ts +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.js +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +4 -4
- package/src/sap/fe/macros/insights/InsightsService.js +3 -2
- package/src/sap/fe/macros/insights/InsightsService.ts +2 -1
- package/src/sap/fe/macros/internal/DataPoint.js +7 -8
- package/src/sap/fe/macros/internal/DataPoint.tsx +6 -9
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +8 -6
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +7 -8
- package/src/sap/fe/macros/internal/field/EditStyle.js +9 -20
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +17 -41
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.js +2 -2
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.tsx +1 -1
- package/src/sap/fe/macros/internal/field/FieldStructure.js +1 -2
- package/src/sap/fe/macros/internal/field/FieldStructure.tsx +0 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +7 -7
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +17 -11
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +6 -2
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +5 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +9 -6
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +7 -5
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +4 -4
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +6 -6
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +5 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +2 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +2 -1
- package/src/sap/fe/macros/library.js +5 -6
- package/src/sap/fe/macros/{library.ts → library.tsx} +3 -1
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +15 -5
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +21 -5
- package/src/sap/fe/macros/messagebundle.properties +13 -5
- package/src/sap/fe/macros/messagebundle_ar.properties +12 -3
- package/src/sap/fe/macros/messagebundle_bg.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ca.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cnr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cs.properties +11 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +12 -3
- package/src/sap/fe/macros/messagebundle_da.properties +12 -3
- package/src/sap/fe/macros/messagebundle_de.properties +16 -7
- package/src/sap/fe/macros/messagebundle_el.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_GB.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +13 -4
- package/src/sap/fe/macros/messagebundle_es.properties +12 -3
- package/src/sap/fe/macros/messagebundle_es_MX.properties +12 -3
- package/src/sap/fe/macros/messagebundle_et.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hr.properties +13 -4
- package/src/sap/fe/macros/messagebundle_hu.properties +12 -3
- package/src/sap/fe/macros/messagebundle_id.properties +18 -9
- package/src/sap/fe/macros/messagebundle_it.properties +12 -3
- package/src/sap/fe/macros/messagebundle_iw.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ja.properties +12 -3
- package/src/sap/fe/macros/messagebundle_kk.properties +11 -2
- package/src/sap/fe/macros/messagebundle_ko.properties +13 -4
- package/src/sap/fe/macros/messagebundle_lt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_mk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ms.properties +12 -3
- package/src/sap/fe/macros/messagebundle_nl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_no.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ro.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ru.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sh.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +13 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_th.properties +11 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_uk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_vi.properties +13 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +12 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -3
- package/src/sap/fe/macros/messages/MessageButton.js +21 -12
- package/src/sap/fe/macros/messages/MessageButton.ts +21 -11
- package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.js +7 -3
- package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.ts +8 -2
- package/src/sap/fe/macros/quickView/QuickView.js +5 -4
- package/src/sap/fe/macros/quickView/QuickView.tsx +10 -3
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.js +2 -2
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.ts +2 -2
- package/src/sap/fe/macros/table/Action.js +21 -5
- package/src/sap/fe/macros/table/Action.ts +14 -4
- package/src/sap/fe/macros/table/ActionGroup.js +15 -2
- package/src/sap/fe/macros/table/ActionGroup.ts +8 -0
- package/src/sap/fe/macros/table/ActionGroupOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionGroupOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +16 -2
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +15 -0
- package/src/sap/fe/macros/table/Column.js +3 -2
- package/src/sap/fe/macros/table/Column.ts +1 -1
- package/src/sap/fe/macros/table/MdcTableTemplate.js +96 -18
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +136 -17
- package/src/sap/fe/macros/table/OverflowGroups.js +59 -0
- package/src/sap/fe/macros/table/OverflowGroups.ts +27 -0
- package/src/sap/fe/macros/table/Table.block.js +74 -30
- package/src/sap/fe/macros/table/Table.block.tsx +77 -14
- package/src/sap/fe/macros/table/TableAPI.js +175 -132
- package/src/sap/fe/macros/table/TableAPI.ts +67 -30
- package/src/sap/fe/macros/table/TableDefinition.js +20 -3
- package/src/sap/fe/macros/table/TableDefinition.ts +18 -2
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +6 -3
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +12 -9
- package/src/sap/fe/macros/table/TableHelper.js +5 -2
- package/src/sap/fe/macros/table/TableHelper.ts +5 -2
- package/src/sap/fe/macros/table/TableRuntime.js +25 -13
- package/src/sap/fe/macros/table/TableRuntime.ts +31 -17
- package/src/sap/fe/macros/table/TableSizeHelper.js +4 -4
- package/src/sap/fe/macros/table/TableSizeHelper.ts +6 -11
- package/src/sap/fe/macros/table/Utils.js +9 -3
- package/src/sap/fe/macros/table/Utils.ts +14 -8
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +72 -29
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +114 -123
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +41 -15
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +41 -22
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +15 -6
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +14 -5
- package/src/sap/fe/macros/table/massEdit/MassEditField.js +1 -1
- package/src/sap/fe/macros/table/massEdit/MassEditField.tsx +3 -6
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -3
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +3 -2
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +42 -14
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +49 -19
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +7 -9
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +7 -8
- package/src/sap/fe/macros/table/mixin/TableExport.js +1 -1
- package/src/sap/fe/macros/table/mixin/TableExport.ts +3 -3
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +3 -4
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +2 -3
- package/src/sap/fe/macros/table/uploadTable/UploadTableRuntime.js +5 -4
- package/src/sap/fe/macros/table/uploadTable/UploadTableRuntime.ts +6 -3
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +17 -10
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +24 -9
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +4 -4
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.ts +3 -3
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +20 -2
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +28 -6
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +4 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.js +3 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.tsx +10 -4
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +1 -1
|
@@ -6,10 +6,12 @@ import type ChartChart from "sap/chart/Chart";
|
|
|
6
6
|
import type { PropertiesOf } from "sap/fe/base/ClassSupport";
|
|
7
7
|
import { aggregation, association, defineUI5Class, event, implementInterface, property, xmlEventHandler } from "sap/fe/base/ClassSupport";
|
|
8
8
|
import { controllerExtensionHandler } from "sap/fe/base/HookSupport";
|
|
9
|
+
import type { StartupParameters } from "sap/fe/core/AppComponent";
|
|
9
10
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
10
11
|
import type TemplateComponent from "sap/fe/core/TemplateComponent";
|
|
11
12
|
import type { NavigationParameter } from "sap/fe/core/controllerextensions/ViewState";
|
|
12
13
|
import type IViewStateContributor from "sap/fe/core/controllerextensions/viewState/IViewStateContributor";
|
|
14
|
+
import type { OverflowGroupsConfiguration } from "sap/fe/core/converters/ManifestSettings";
|
|
13
15
|
import { getInvolvedDataModelObjects } from "sap/fe/core/converters/MetaModelConverter";
|
|
14
16
|
import type { BaseAction } from "sap/fe/core/converters/controls/Common/Action";
|
|
15
17
|
import type { ChartVisualization } from "sap/fe/core/converters/controls/Common/Chart";
|
|
@@ -23,6 +25,7 @@ import Action from "sap/fe/macros/chart/Action";
|
|
|
23
25
|
import type ActionGroup from "sap/fe/macros/chart/ActionGroup";
|
|
24
26
|
import ChartRuntime from "sap/fe/macros/chart/ChartRuntime";
|
|
25
27
|
import ChartUtils from "sap/fe/macros/chart/ChartUtils";
|
|
28
|
+
import type FilterBar from "sap/fe/macros/controls/FilterBar";
|
|
26
29
|
import type ISingleSectionContributor from "sap/fe/macros/controls/section/ISingleSectionContributor";
|
|
27
30
|
import type { ConsumerData } from "sap/fe/macros/controls/section/ISingleSectionContributor";
|
|
28
31
|
import FilterUtils from "sap/fe/macros/filter/FilterUtils";
|
|
@@ -40,7 +43,6 @@ import type LayoutData from "sap/ui/core/LayoutData";
|
|
|
40
43
|
import { TitleLevel } from "sap/ui/core/library";
|
|
41
44
|
import type MDCChart from "sap/ui/mdc/Chart";
|
|
42
45
|
import type ChartDelegate from "sap/ui/mdc/ChartDelegate";
|
|
43
|
-
import type FilterBar from "sap/ui/mdc/FilterBar";
|
|
44
46
|
import type ActionToolbarAction from "sap/ui/mdc/actiontoolbar/ActionToolbarAction";
|
|
45
47
|
import type { AppState, Items, Sorters } from "sap/ui/mdc/p13n/StateUtil";
|
|
46
48
|
import StateUtil from "sap/ui/mdc/p13n/StateUtil";
|
|
@@ -49,10 +51,12 @@ import Filter from "sap/ui/model/Filter";
|
|
|
49
51
|
import type Context from "sap/ui/model/odata/v4/Context";
|
|
50
52
|
import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
51
53
|
import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
54
|
+
import type { EventHandler } from "types/extension_types";
|
|
52
55
|
import type { PropertyInfo } from "./DelegateUtil";
|
|
53
56
|
import MacroAPI from "./MacroAPI";
|
|
54
57
|
import type { ActionOrActionGroup, ChartContextObjectPath, ChartCustomData, CommandAction } from "./chart/MdcChartTemplate";
|
|
55
58
|
import { getMdcChartTemplate } from "./chart/MdcChartTemplate";
|
|
59
|
+
import type OverflowGroup from "./chart/OverflowGroup";
|
|
56
60
|
import PresentationVariantToStateUtilsPV from "./chart/adapter/ChartPvToStateUtils";
|
|
57
61
|
import { createChartCardParams } from "./insights/AnalyticalInsightsHelper";
|
|
58
62
|
import type { ControlState } from "./insights/CommonInsightsHelper";
|
|
@@ -262,6 +266,8 @@ export default class Chart extends MacroAPI implements ISingleSectionContributor
|
|
|
262
266
|
|
|
263
267
|
chartActions?: BaseAction[] = [];
|
|
264
268
|
|
|
269
|
+
overflowGroups?: OverflowGroupsConfiguration;
|
|
270
|
+
|
|
265
271
|
filter?: string;
|
|
266
272
|
|
|
267
273
|
visible?: string;
|
|
@@ -322,6 +328,16 @@ export default class Chart extends MacroAPI implements ISingleSectionContributor
|
|
|
322
328
|
})
|
|
323
329
|
actions!: Action[] | ActionGroup[];
|
|
324
330
|
|
|
331
|
+
/**
|
|
332
|
+
* Aggregate overflowGroups of the chart.
|
|
333
|
+
* @public
|
|
334
|
+
*/
|
|
335
|
+
@aggregation({
|
|
336
|
+
type: "sap.fe.macros.chart.OverflowGroup",
|
|
337
|
+
multiple: true
|
|
338
|
+
})
|
|
339
|
+
actionOverflowGroups?: OverflowGroup[];
|
|
340
|
+
|
|
325
341
|
/**
|
|
326
342
|
* Gets contexts from the chart that have been selected by the user.
|
|
327
343
|
* @returns Contexts of the rows selected by the user
|
|
@@ -336,7 +352,7 @@ export default class Chart extends MacroAPI implements ISingleSectionContributor
|
|
|
336
352
|
* @public
|
|
337
353
|
*/
|
|
338
354
|
@event()
|
|
339
|
-
selectionChange!:
|
|
355
|
+
selectionChange!: EventHandler<UI5Event<{ data: unknown[]; selected: boolean }, Chart>>;
|
|
340
356
|
|
|
341
357
|
/**
|
|
342
358
|
* An event triggered when the chart requests data.
|
|
@@ -847,13 +863,13 @@ export default class Chart extends MacroAPI implements ISingleSectionContributor
|
|
|
847
863
|
* @returns A promise that resolves when the variant has been applied.
|
|
848
864
|
*/
|
|
849
865
|
async handleVariantIdPassedViaURLParams(): Promise<unknown> {
|
|
850
|
-
const urlParams = this.getStartupParameters();
|
|
851
|
-
const chartVariantId = urlParams
|
|
866
|
+
const urlParams = await this.getStartupParameters();
|
|
867
|
+
const chartVariantId = urlParams["sap-ui-fe-chart-variant-id"]?.[0];
|
|
852
868
|
const view = CommonUtils.getTargetView(this);
|
|
853
869
|
const viewData = view.getViewData();
|
|
854
870
|
const vmType = viewData.variantManagement;
|
|
855
871
|
const vm = (this.getContent() as MDCChart)?.getVariant();
|
|
856
|
-
if (vm && chartVariantId && vmType === "Control") {
|
|
872
|
+
if (vm && chartVariantId && typeof chartVariantId === "string" && vmType === "Control") {
|
|
857
873
|
const variantToApply = vm.getVariants().find((variant) => variant.getKey() === chartVariantId);
|
|
858
874
|
const ControlVariantApplyAPI = (await import("sap/ui/fl/apply/api/ControlVariantApplyAPI")).default;
|
|
859
875
|
return ControlVariantApplyAPI.activateVariant({
|
|
@@ -866,14 +882,12 @@ export default class Chart extends MacroAPI implements ISingleSectionContributor
|
|
|
866
882
|
/**
|
|
867
883
|
* Retrieves the startup parameters from the application component data.
|
|
868
884
|
* These parameters contain URL query parameters that were passed when the application was started.
|
|
869
|
-
* @returns The startup parameters
|
|
870
|
-
* or undefined if no parameters are available or if the component chain is not accessible.
|
|
885
|
+
* @returns The startup parameters.
|
|
871
886
|
*/
|
|
872
|
-
getStartupParameters():
|
|
887
|
+
async getStartupParameters(): Promise<StartupParameters> {
|
|
873
888
|
const controller = this.getPageController();
|
|
874
|
-
const appComponent = controller
|
|
875
|
-
|
|
876
|
-
return componentData?.startupParameters as unknown as Record<string, string[]>;
|
|
889
|
+
const appComponent = controller.getAppComponent();
|
|
890
|
+
return appComponent.getStartupParameters();
|
|
877
891
|
}
|
|
878
892
|
|
|
879
893
|
/**
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe/base/EventDelegateHook", "sap/fe/core/buildingBlocks/BuildingBlock", "sap/fe/core/formatters/CollaborationFormatter", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/helpers/ResourceModelHelper", "sap/fe/core/helpers/TypeGuards", "sap/fe/core/templating/UIFormatters", "sap/m/Avatar", "sap/m/Label", "sap/m/ResponsivePopover", "sap/ui/core/Element", "sap/fe/base/jsx-runtime/jsx"], function (BindingToolkit, ClassSupport, EventDelegateHook, BuildingBlock, CollaborationFormatters, ModelHelper, ResourceModelHelper, TypeGuards, UIFormatters, Avatar, Label, ResponsivePopover, UI5Element, _jsx) {
|
|
5
|
+
sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe/base/EventDelegateHook", "sap/fe/core/buildingBlocks/BuildingBlock", "sap/fe/core/formatters/CollaborationFormatter", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/helpers/ResourceModelHelper", "sap/fe/core/helpers/TypeGuards", "sap/fe/core/templating/DataModelPathHelper", "sap/fe/core/templating/UIFormatters", "sap/m/Avatar", "sap/m/Label", "sap/m/ResponsivePopover", "sap/ui/core/Element", "sap/fe/base/jsx-runtime/jsx"], function (BindingToolkit, ClassSupport, EventDelegateHook, BuildingBlock, CollaborationFormatters, ModelHelper, ResourceModelHelper, TypeGuards, DataModelPathHelper, UIFormatters, Avatar, Label, ResponsivePopover, UI5Element, _jsx) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;
|
|
8
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;
|
|
9
9
|
var _exports = {};
|
|
10
|
+
var getTargetObjectPath = DataModelPathHelper.getTargetObjectPath;
|
|
10
11
|
var isProperty = TypeGuards.isProperty;
|
|
11
12
|
var property = ClassSupport.property;
|
|
12
13
|
var event = ClassSupport.event;
|
|
@@ -20,17 +21,16 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
20
21
|
/**
|
|
21
22
|
* A BuildingBlock to watch the lock status of a property and to react on changes.
|
|
22
23
|
* @public
|
|
23
|
-
* @ui5-experimental-since 1.141.0
|
|
24
24
|
* @since 1.141.0
|
|
25
25
|
*/
|
|
26
26
|
let CollaborativeDraftHandler = (_dec = defineUI5Class("sap.fe.macros.CollaborativeDraftHandler"), _dec2 = property({
|
|
27
27
|
type: "string"
|
|
28
28
|
}), _dec3 = property({
|
|
29
29
|
type: "string"
|
|
30
|
-
}), _dec4 = event(), _dec5 = property({
|
|
30
|
+
}), _dec4 = event(), _dec5 = event(), _dec6 = property({
|
|
31
31
|
type: "boolean",
|
|
32
32
|
defaultValue: false
|
|
33
|
-
}),
|
|
33
|
+
}), _dec7 = property({
|
|
34
34
|
type: "object"
|
|
35
35
|
}), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlock) {
|
|
36
36
|
function CollaborativeDraftHandler(idOrSettings, settings) {
|
|
@@ -40,14 +40,12 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
40
40
|
* Defines the path of the context used in the current page or block.
|
|
41
41
|
* This setting is defined by the framework, and can be overwritten.
|
|
42
42
|
* @public
|
|
43
|
-
* @ui5-experimental-since 1.141.0
|
|
44
43
|
* @since 1.141.0
|
|
45
44
|
*/
|
|
46
45
|
_initializerDefineProperty(_this, "contextPath", _descriptor, _this);
|
|
47
46
|
/**
|
|
48
47
|
* Defines the relative path of the property in the metamodel, based on the current contextPath.
|
|
49
48
|
* @public
|
|
50
|
-
* @ui5-experimental-since 1.141.0
|
|
51
49
|
* @since 1.141.0
|
|
52
50
|
*/
|
|
53
51
|
_initializerDefineProperty(_this, "metaPath", _descriptor2, _this);
|
|
@@ -55,42 +53,43 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
55
53
|
* Event fired when the lock status changes.
|
|
56
54
|
*
|
|
57
55
|
* Parameters:<BR>
|
|
58
|
-
* - isLocked :
|
|
59
|
-
* - lockingUserID:
|
|
60
|
-
* - lockingUserName:
|
|
61
|
-
* - lockingUserInitials:
|
|
62
|
-
* - lockingUserColor:
|
|
56
|
+
* - isLocked : True if the property is locked, false otherwise<BR>
|
|
57
|
+
* - lockingUserID: The ID of the user locking the property (undefined if not locked)<BR>
|
|
58
|
+
* - lockingUserName: The name of the user locking the property (undefined if not locked)<BR>
|
|
59
|
+
* - lockingUserInitials: The initials of the user locking the property (undefined if not locked)<BR>
|
|
60
|
+
* - lockingUserColor: The color associated to the user locking the property (undefined if not locked)<BR>
|
|
63
61
|
* @public
|
|
64
|
-
* @ui5-experimental-since 1.141.0
|
|
65
62
|
* @since 1.141.0
|
|
66
63
|
*/
|
|
67
64
|
_initializerDefineProperty(_this, "lockChange", _descriptor3, _this);
|
|
65
|
+
/**
|
|
66
|
+
* Event fired when the user clicks on the avatar.
|
|
67
|
+
*
|
|
68
|
+
* Parameters:<BR>
|
|
69
|
+
* - lockingUserID: The ID of the user locking the property<BR>
|
|
70
|
+
* - lockingUserName: The name of the user locking the property<BR>
|
|
71
|
+
* - lockingUserInitials: The initials of the user locking the property<BR>
|
|
72
|
+
* - lockingUserColor: The color associated to the user locking the property<BR>
|
|
73
|
+
* @public
|
|
74
|
+
* @since 1.142.0
|
|
75
|
+
*/
|
|
76
|
+
_initializerDefineProperty(_this, "avatarPress", _descriptor4, _this);
|
|
68
77
|
/**
|
|
69
78
|
* If set to true, the standard Avatar control is displayed to indicate the lock status.
|
|
70
79
|
* If set to false, nothing is displayed.
|
|
71
80
|
* @public
|
|
72
|
-
* @ui5-experimental-since 1.141.0
|
|
73
81
|
* @since 1.141.0
|
|
74
82
|
*/
|
|
75
|
-
_initializerDefineProperty(_this, "showAvatar",
|
|
83
|
+
_initializerDefineProperty(_this, "showAvatar", _descriptor5, _this);
|
|
76
84
|
/**
|
|
77
85
|
* Internal property to receive the lock data
|
|
78
86
|
*/
|
|
79
|
-
_initializerDefineProperty(_this, "lockInfo",
|
|
87
|
+
_initializerDefineProperty(_this, "lockInfo", _descriptor6, _this);
|
|
80
88
|
return _this;
|
|
81
89
|
}
|
|
82
90
|
_exports = CollaborativeDraftHandler;
|
|
83
91
|
_inheritsLoose(CollaborativeDraftHandler, _BuildingBlock);
|
|
84
92
|
var _proto = CollaborativeDraftHandler.prototype;
|
|
85
|
-
_proto.getFullMetaPath = function getFullMetaPath() {
|
|
86
|
-
if (this.metaPath.startsWith("/")) {
|
|
87
|
-
return this.metaPath;
|
|
88
|
-
} else if (this.contextPath.endsWith("/")) {
|
|
89
|
-
return `${this.contextPath}${this.metaPath}`;
|
|
90
|
-
} else {
|
|
91
|
-
return `${this.contextPath}/${this.metaPath}`;
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
93
|
_proto.onMetadataAvailable = function onMetadataAvailable() {
|
|
95
94
|
const owner = this._getOwner();
|
|
96
95
|
if (!owner) {
|
|
@@ -99,15 +98,13 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
99
98
|
if (!ModelHelper.isCollaborationDraftSupported(owner.getAppComponent().getModel().getMetaModel())) {
|
|
100
99
|
return;
|
|
101
100
|
}
|
|
102
|
-
this.
|
|
103
|
-
const fullMetaPath = this.getFullMetaPath();
|
|
104
|
-
const objectPath = this.getDataModelObjectPath(fullMetaPath);
|
|
101
|
+
const objectPath = this.getDataModelObjectForMetaPath(this.metaPath, this.contextPath);
|
|
105
102
|
if (!objectPath || !isProperty(objectPath.targetObject)) {
|
|
106
|
-
throw new Error(`CollaborativeDraftHandler: the provided metaPath '${
|
|
103
|
+
throw new Error(`CollaborativeDraftHandler: the provided metaPath '${this.metaPath}' does not point to a valid property`);
|
|
107
104
|
}
|
|
108
105
|
|
|
109
106
|
// Bind the lockInfo property to the corresponding lockInfo in the internal model
|
|
110
|
-
const keysBindingParts = objectPath.targetEntityType.keys.map(key => {
|
|
107
|
+
const keysBindingParts = objectPath.contextLocation?.targetEntityType.keys.map(key => {
|
|
111
108
|
return {
|
|
112
109
|
path: key.name,
|
|
113
110
|
targetType: "any"
|
|
@@ -115,7 +112,7 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
115
112
|
});
|
|
116
113
|
const bindingInfo = {
|
|
117
114
|
parts: [{
|
|
118
|
-
path: `internal>/collaboration/activities${
|
|
115
|
+
path: `internal>/collaboration/activities${getTargetObjectPath(objectPath)}`,
|
|
119
116
|
targetType: "any"
|
|
120
117
|
}, ...keysBindingParts],
|
|
121
118
|
formatter: CollaborationFormatters.getCollaborationInfo
|
|
@@ -149,8 +146,7 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
149
146
|
* @returns The Avatar control
|
|
150
147
|
*/;
|
|
151
148
|
_proto.createCollaborationAvatar = function createCollaborationAvatar(objectPath) {
|
|
152
|
-
const
|
|
153
|
-
const collaborationHasActivityExpression = compileExpression(collaborationExpression);
|
|
149
|
+
const collaborationHasActivityExpression = compileExpression(UIFormatters.getCollaborationExpression(objectPath, CollaborationFormatters.hasCollaborationActivity));
|
|
154
150
|
const collaborationInitialsExpression = compileExpression(UIFormatters.getCollaborationExpression(objectPath, CollaborationFormatters.getCollaborationActivityInitials));
|
|
155
151
|
const collaborationColorExpression = compileExpression(UIFormatters.getCollaborationExpression(objectPath, CollaborationFormatters.getCollaborationActivityColor));
|
|
156
152
|
return _jsx(Avatar, {
|
|
@@ -178,6 +174,16 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
178
174
|
_proto.onAvatarPress = function onAvatarPress(evt) {
|
|
179
175
|
const avatar = evt.getSource();
|
|
180
176
|
const block = avatar.getParent();
|
|
177
|
+
if (block.hasListeners("avatarPress")) {
|
|
178
|
+
// If the event is handled by the application, do not open the popover
|
|
179
|
+
block.fireEvent("avatarPress", {
|
|
180
|
+
lockingUserID: block.lockInfo?.id,
|
|
181
|
+
lockingUserName: block.lockInfo?.name,
|
|
182
|
+
lockingUserInitials: block.lockInfo?.initials,
|
|
183
|
+
lockingUserColor: block.lockInfo?.color
|
|
184
|
+
});
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
181
187
|
const view = this.getPageController().getView();
|
|
182
188
|
const resourceModel = ResourceModelHelper.getResourceModel(view);
|
|
183
189
|
let popover = UI5Element.getElementById(`manageCollaborationDraft--editUser`);
|
|
@@ -211,14 +217,19 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
211
217
|
enumerable: true,
|
|
212
218
|
writable: true,
|
|
213
219
|
initializer: null
|
|
214
|
-
}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "
|
|
220
|
+
}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "avatarPress", [_dec5], {
|
|
221
|
+
configurable: true,
|
|
222
|
+
enumerable: true,
|
|
223
|
+
writable: true,
|
|
224
|
+
initializer: null
|
|
225
|
+
}), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "showAvatar", [_dec6], {
|
|
215
226
|
configurable: true,
|
|
216
227
|
enumerable: true,
|
|
217
228
|
writable: true,
|
|
218
229
|
initializer: function () {
|
|
219
230
|
return false;
|
|
220
231
|
}
|
|
221
|
-
}),
|
|
232
|
+
}), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "lockInfo", [_dec7], {
|
|
222
233
|
configurable: true,
|
|
223
234
|
enumerable: true,
|
|
224
235
|
writable: true,
|
|
@@ -227,4 +238,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
227
238
|
_exports = CollaborativeDraftHandler;
|
|
228
239
|
return _exports;
|
|
229
240
|
}, false);
|
|
230
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aXZlRHJhZnRIYW5kbGVyIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjMyIsIl9kZWM0IiwiZXZlbnQiLCJfZGVjNSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM2IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwiaWRPclNldHRpbmdzIiwic2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImdldEZ1bGxNZXRhUGF0aCIsIm1ldGFQYXRoIiwic3RhcnRzV2l0aCIsImNvbnRleHRQYXRoIiwiZW5kc1dpdGgiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwib3duZXIiLCJfZ2V0T3duZXIiLCJNb2RlbEhlbHBlciIsImlzQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJnZXRPd25lckNvbnRleHRQYXRoIiwiZnVsbE1ldGFQYXRoIiwib2JqZWN0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJpc1Byb3BlcnR5IiwidGFyZ2V0T2JqZWN0IiwiRXJyb3IiLCJrZXlzQmluZGluZ1BhcnRzIiwidGFyZ2V0RW50aXR5VHlwZSIsImtleXMiLCJtYXAiLCJrZXkiLCJwYXRoIiwibmFtZSIsInRhcmdldFR5cGUiLCJiaW5kaW5nSW5mbyIsInBhcnRzIiwiZm9ybWF0dGVyIiwiQ29sbGFib3JhdGlvbkZvcm1hdHRlcnMiLCJnZXRDb2xsYWJvcmF0aW9uSW5mbyIsImJpbmRQcm9wZXJ0eSIsImNvbnRlbnQiLCJzaG93QXZhdGFyIiwiY3JlYXRlQ29sbGFib3JhdGlvbkF2YXRhciIsInNldExvY2tJbmZvIiwibG9ja0luZm8iLCJmaXJlRXZlbnQiLCJpc0xvY2tlZCIsInVuZGVmaW5lZCIsImxvY2tpbmdVc2VySUQiLCJpZCIsImxvY2tpbmdVc2VyTmFtZSIsImxvY2tpbmdVc2VySW5pdGlhbHMiLCJpbml0aWFscyIsImxvY2tpbmdVc2VyQ29sb3IiLCJjb2xvciIsImNvbGxhYm9yYXRpb25FeHByZXNzaW9uIiwiVUlGb3JtYXR0ZXJzIiwiZ2V0Q29sbGFib3JhdGlvbkV4cHJlc3Npb24iLCJoYXNDb2xsYWJvcmF0aW9uQWN0aXZpdHkiLCJjb2xsYWJvcmF0aW9uSGFzQWN0aXZpdHlFeHByZXNzaW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJjb2xsYWJvcmF0aW9uSW5pdGlhbHNFeHByZXNzaW9uIiwiZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5SW5pdGlhbHMiLCJjb2xsYWJvcmF0aW9uQ29sb3JFeHByZXNzaW9uIiwiZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5Q29sb3IiLCJfanN4IiwiQXZhdGFyIiwidmlzaWJsZSIsImRpc3BsYXlTaXplIiwiY3VzdG9tRGlzcGxheVNpemUiLCJjdXN0b21Gb250U2l6ZSIsImJhY2tncm91bmRDb2xvciIsInByZXNzIiwiZXZ0Iiwib25BdmF0YXJQcmVzcyIsImNoaWxkcmVuIiwiZGVwZW5kZW50cyIsIkV2ZW50RGVsZWdhdGVIb29rIiwic3RvcFRhcFByb3BhZ2F0aW9uIiwiYXZhdGFyIiwiZ2V0U291cmNlIiwiYmxvY2siLCJnZXRQYXJlbnQiLCJ2aWV3IiwiZ2V0UGFnZUNvbnRyb2xsZXIiLCJnZXRWaWV3IiwicmVzb3VyY2VNb2RlbCIsIlJlc291cmNlTW9kZWxIZWxwZXIiLCJnZXRSZXNvdXJjZU1vZGVsIiwicG9wb3ZlciIsIlVJNUVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsIlJlc3BvbnNpdmVQb3BvdmVyIiwic2hvd0hlYWRlciIsInBsYWNlbWVudCIsImFkZFN0eWxlQ2xhc3MiLCJhZGREZXBlbmRlbnQiLCJkZXN0cm95Q29udGVudCIsImFkZENvbnRlbnQiLCJMYWJlbCIsInRleHQiLCJnZXRUZXh0Iiwib3BlbkJ5IiwiQnVpbGRpbmdCbG9jayIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29sbGFib3JhdGl2ZURyYWZ0SGFuZGxlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBldmVudCwgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEV2ZW50RGVsZWdhdGVIb29rIGZyb20gXCJzYXAvZmUvYmFzZS9FdmVudERlbGVnYXRlSG9va1wiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCB7IHR5cGUgVXNlckFjdGl2aXR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQ29sbGFib3JhdGlvbkNvbW1vblwiO1xuaW1wb3J0ICogYXMgQ29sbGFib3JhdGlvbkZvcm1hdHRlcnMgZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvQ29sbGFib3JhdGlvbkZvcm1hdHRlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgUmVzb3VyY2VNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9SZXNvdXJjZU1vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBpc1Byb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuaW1wb3J0IHsgdHlwZSBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0ICogYXMgVUlGb3JtYXR0ZXJzIGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuaW1wb3J0IEF2YXRhciwgeyB0eXBlIEF2YXRhciRQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL0F2YXRhclwiO1xuaW1wb3J0IExhYmVsIGZyb20gXCJzYXAvbS9MYWJlbFwiO1xuaW1wb3J0IFJlc3BvbnNpdmVQb3BvdmVyIGZyb20gXCJzYXAvbS9SZXNwb25zaXZlUG9wb3ZlclwiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgVUk1RWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IHR5cGUgeyBFdmVudEhhbmRsZXIgfSBmcm9tIFwidHlwZXMvZXh0ZW5zaW9uX3R5cGVzXCI7XG5cbi8qKlxuICogQSBCdWlsZGluZ0Jsb2NrIHRvIHdhdGNoIHRoZSBsb2NrIHN0YXR1cyBvZiBhIHByb3BlcnR5IGFuZCB0byByZWFjdCBvbiBjaGFuZ2VzLlxuICogQHB1YmxpY1xuICogQHVpNS1leHBlcmltZW50YWwtc2luY2UgMS4xNDEuMFxuICogQHNpbmNlIDEuMTQxLjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5Db2xsYWJvcmF0aXZlRHJhZnRIYW5kbGVyXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2xsYWJvcmF0aXZlRHJhZnRIYW5kbGVyIGV4dGVuZHMgQnVpbGRpbmdCbG9jazxBdmF0YXI+IHtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHBhdGggb2YgdGhlIGNvbnRleHQgdXNlZCBpbiB0aGUgY3VycmVudCBwYWdlIG9yIGJsb2NrLlxuXHQgKiBUaGlzIHNldHRpbmcgaXMgZGVmaW5lZCBieSB0aGUgZnJhbWV3b3JrLCBhbmQgY2FuIGJlIG92ZXJ3cml0dGVuLlxuXHQgKiBAcHVibGljXG5cdCAqIEB1aTUtZXhwZXJpbWVudGFsLXNpbmNlIDEuMTQxLjBcblx0ICogQHNpbmNlIDEuMTQxLjBcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0Y29udGV4dFBhdGghOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIHByb3BlcnR5IGluIHRoZSBtZXRhbW9kZWwsIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbnRleHRQYXRoLlxuXHQgKiBAcHVibGljXG5cdCAqIEB1aTUtZXhwZXJpbWVudGFsLXNpbmNlIDEuMTQxLjBcblx0ICogQHNpbmNlIDEuMTQxLjBcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0bWV0YVBhdGghOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEV2ZW50IGZpcmVkIHdoZW4gdGhlIGxvY2sgc3RhdHVzIGNoYW5nZXMuXG5cdCAqXG5cdCAqIFBhcmFtZXRlcnM6PEJSPlxuXHQgKiAtIGlzTG9ja2VkIDogdHJ1ZSBpZiB0aGUgcHJvcGVydHkgaXMgbG9ja2VkLCBmYWxzZSBvdGhlcndpc2U8QlI+XG5cdCAqIC0gbG9ja2luZ1VzZXJJRDogdGhlIElEIG9mIHRoZSB1c2VyIGxvY2tpbmcgdGhlIHByb3BlcnR5ICh1bmRlZmluZWQgaWYgbm90IGxvY2tlZCk8QlI+XG5cdCAqIC0gbG9ja2luZ1VzZXJOYW1lOiB0aGUgbmFtZSBvZiB0aGUgdXNlciBsb2NraW5nIHRoZSBwcm9wZXJ0eSAodW5kZWZpbmVkIGlmIG5vdCBsb2NrZWQpPEJSPlxuXHQgKiAtIGxvY2tpbmdVc2VySW5pdGlhbHM6IHRoZSBpbml0aWFscyBvZiB0aGUgdXNlciBsb2NraW5nIHRoZSBwcm9wZXJ0eSAodW5kZWZpbmVkIGlmIG5vdCBsb2NrZWQpPEJSPlxuXHQgKiAtIGxvY2tpbmdVc2VyQ29sb3I6IHRoZSBjb2xvciBhc3NvY2lhdGVkIHRvIHRoZSB1c2VyIGxvY2tpbmcgdGhlIHByb3BlcnR5ICh1bmRlZmluZWQgaWYgbm90IGxvY2tlZCk8QlI+XG5cdCAqIEBwdWJsaWNcblx0ICogQHVpNS1leHBlcmltZW50YWwtc2luY2UgMS4xNDEuMFxuXHQgKiBAc2luY2UgMS4xNDEuMFxuXHQgKi9cblx0QGV2ZW50KClcblx0bG9ja0NoYW5nZT86IEV2ZW50SGFuZGxlcjxcblx0XHRVSTVFdmVudDxcblx0XHRcdHtcblx0XHRcdFx0aXNMb2NrZWQ6IGJvb2xlYW47XG5cdFx0XHRcdGxvY2tpbmdVc2VySUQ/OiBzdHJpbmc7XG5cdFx0XHRcdGxvY2tpbmdVc2VyTmFtZT86IHN0cmluZztcblx0XHRcdFx0bG9ja2luZ1VzZXJJbml0aWFscz86IHN0cmluZztcblx0XHRcdFx0bG9ja2luZ1VzZXJDb2xvcj86IHN0cmluZztcblx0XHRcdH0sXG5cdFx0XHRDb2xsYWJvcmF0aXZlRHJhZnRIYW5kbGVyXG5cdFx0PlxuXHQ+O1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHN0YW5kYXJkIEF2YXRhciBjb250cm9sIGlzIGRpc3BsYXllZCB0byBpbmRpY2F0ZSB0aGUgbG9jayBzdGF0dXMuXG5cdCAqIElmIHNldCB0byBmYWxzZSwgbm90aGluZyBpcyBkaXNwbGF5ZWQuXG5cdCAqIEBwdWJsaWNcblx0ICogQHVpNS1leHBlcmltZW50YWwtc2luY2UgMS4xNDEuMFxuXHQgKiBAc2luY2UgMS4xNDEuMFxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0c2hvd0F2YXRhciA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBJbnRlcm5hbCBwcm9wZXJ0eSB0byByZWNlaXZlIHRoZSBsb2NrIGRhdGFcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwib2JqZWN0XCIgfSlcblx0bG9ja0luZm8/OiBVc2VyQWN0aXZpdHk7XG5cblx0Y29uc3RydWN0b3IoaWRPclNldHRpbmdzOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8Q29sbGFib3JhdGl2ZURyYWZ0SGFuZGxlcj4sIHNldHRpbmdzPzogUHJvcGVydGllc09mPENvbGxhYm9yYXRpdmVEcmFmdEhhbmRsZXI+KSB7XG5cdFx0c3VwZXIoaWRPclNldHRpbmdzLCBzZXR0aW5ncyk7XG5cdH1cblxuXHRwcml2YXRlIGdldEZ1bGxNZXRhUGF0aCgpOiBzdHJpbmcge1xuXHRcdGlmICh0aGlzLm1ldGFQYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5tZXRhUGF0aDtcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29udGV4dFBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRyZXR1cm4gYCR7dGhpcy5jb250ZXh0UGF0aH0ke3RoaXMubWV0YVBhdGh9YDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGAke3RoaXMuY29udGV4dFBhdGh9LyR7dGhpcy5tZXRhUGF0aH1gO1xuXHRcdH1cblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0Y29uc3Qgb3duZXIgPSB0aGlzLl9nZXRPd25lcigpO1xuXHRcdGlmICghb3duZXIpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKCFNb2RlbEhlbHBlci5pc0NvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZChvd25lci5nZXRBcHBDb21wb25lbnQoKS5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuY29udGV4dFBhdGggPz89IHRoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpIGFzIHN0cmluZztcblx0XHRjb25zdCBmdWxsTWV0YVBhdGggPSB0aGlzLmdldEZ1bGxNZXRhUGF0aCgpO1xuXHRcdGNvbnN0IG9iamVjdFBhdGggPSB0aGlzLmdldERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHk+KGZ1bGxNZXRhUGF0aCk7XG5cdFx0aWYgKCFvYmplY3RQYXRoIHx8ICFpc1Byb3BlcnR5KG9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KSkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBDb2xsYWJvcmF0aXZlRHJhZnRIYW5kbGVyOiB0aGUgcHJvdmlkZWQgbWV0YVBhdGggJyR7ZnVsbE1ldGFQYXRofScgZG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZCBwcm9wZXJ0eWApO1xuXHRcdH1cblxuXHRcdC8vIEJpbmQgdGhlIGxvY2tJbmZvIHByb3BlcnR5IHRvIHRoZSBjb3JyZXNwb25kaW5nIGxvY2tJbmZvIGluIHRoZSBpbnRlcm5hbCBtb2RlbFxuXHRcdGNvbnN0IGtleXNCaW5kaW5nUGFydHMgPSBvYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGUua2V5cy5tYXAoKGtleSkgPT4ge1xuXHRcdFx0cmV0dXJuIHsgcGF0aDoga2V5Lm5hbWUsIHRhcmdldFR5cGU6IFwiYW55XCIgfTtcblx0XHR9KTtcblx0XHRjb25zdCBiaW5kaW5nSW5mbyA9IHtcblx0XHRcdHBhcnRzOiBbeyBwYXRoOiBgaW50ZXJuYWw+L2NvbGxhYm9yYXRpb24vYWN0aXZpdGllcyR7ZnVsbE1ldGFQYXRofWAsIHRhcmdldFR5cGU6IFwiYW55XCIgfSwgLi4ua2V5c0JpbmRpbmdQYXJ0c10sXG5cdFx0XHRmb3JtYXR0ZXI6IENvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzLmdldENvbGxhYm9yYXRpb25JbmZvXG5cdFx0fTtcblxuXHRcdHRoaXMuYmluZFByb3BlcnR5KFwibG9ja0luZm9cIiwgYmluZGluZ0luZm8pO1xuXG5cdFx0aWYgKCF0aGlzLmNvbnRlbnQgJiYgdGhpcy5zaG93QXZhdGFyKSB7XG5cdFx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbGxhYm9yYXRpb25BdmF0YXIob2JqZWN0UGF0aCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZSB0aGUgbG9ja0luZm8gcHJvcGVydHkgYW5kIGZpcmUgdGhlIGxvY2tDaGFuZ2UgZXZlbnQgaWYgdGhlcmUgaXMgYSBjaGFuZ2UuXG5cdCAqIEBwYXJhbSBsb2NrSW5mb1xuXHQgKi9cblx0c2V0TG9ja0luZm8obG9ja0luZm86IG9iamVjdCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmxvY2tJbmZvICE9PSBsb2NrSW5mbykge1xuXHRcdFx0dGhpcy5sb2NrSW5mbyA9IGxvY2tJbmZvIGFzIFVzZXJBY3Rpdml0eSB8IHVuZGVmaW5lZDtcblx0XHRcdHRoaXMuZmlyZUV2ZW50KFwibG9ja0NoYW5nZVwiLCB7XG5cdFx0XHRcdGlzTG9ja2VkOiB0aGlzLmxvY2tJbmZvICE9PSB1bmRlZmluZWQsXG5cdFx0XHRcdGxvY2tpbmdVc2VySUQ6IHRoaXMubG9ja0luZm8/LmlkLFxuXHRcdFx0XHRsb2NraW5nVXNlck5hbWU6IHRoaXMubG9ja0luZm8/Lm5hbWUsXG5cdFx0XHRcdGxvY2tpbmdVc2VySW5pdGlhbHM6IHRoaXMubG9ja0luZm8/LmluaXRpYWxzLFxuXHRcdFx0XHRsb2NraW5nVXNlckNvbG9yOiB0aGlzLmxvY2tJbmZvPy5jb2xvclxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgdGhlIGNvbnRlbnQgb2YgdGhlIGJsb2NrIChBdmF0YXIpLlxuXHQgKiBAcGFyYW0gb2JqZWN0UGF0aFxuXHQgKiBAcmV0dXJucyBUaGUgQXZhdGFyIGNvbnRyb2xcblx0ICovXG5cdGNyZWF0ZUNvbGxhYm9yYXRpb25BdmF0YXIob2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eT4pOiBBdmF0YXIge1xuXHRcdGNvbnN0IGNvbGxhYm9yYXRpb25FeHByZXNzaW9uID0gVUlGb3JtYXR0ZXJzLmdldENvbGxhYm9yYXRpb25FeHByZXNzaW9uKFxuXHRcdFx0b2JqZWN0UGF0aCxcblx0XHRcdENvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzLmhhc0NvbGxhYm9yYXRpb25BY3Rpdml0eVxuXHRcdCk7XG5cdFx0Y29uc3QgY29sbGFib3JhdGlvbkhhc0FjdGl2aXR5RXhwcmVzc2lvbiA9IGNvbXBpbGVFeHByZXNzaW9uKGNvbGxhYm9yYXRpb25FeHByZXNzaW9uKTtcblx0XHRjb25zdCBjb2xsYWJvcmF0aW9uSW5pdGlhbHNFeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRVSUZvcm1hdHRlcnMuZ2V0Q29sbGFib3JhdGlvbkV4cHJlc3Npb24ob2JqZWN0UGF0aCwgQ29sbGFib3JhdGlvbkZvcm1hdHRlcnMuZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5SW5pdGlhbHMpXG5cdFx0KTtcblx0XHRjb25zdCBjb2xsYWJvcmF0aW9uQ29sb3JFeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRVSUZvcm1hdHRlcnMuZ2V0Q29sbGFib3JhdGlvbkV4cHJlc3Npb24ob2JqZWN0UGF0aCwgQ29sbGFib3JhdGlvbkZvcm1hdHRlcnMuZ2V0Q29sbGFib3JhdGlvbkFjdGl2aXR5Q29sb3IpXG5cdFx0KTtcblxuXHRcdHJldHVybiAoXG5cdFx0XHQ8QXZhdGFyXG5cdFx0XHRcdHZpc2libGU9e2NvbGxhYm9yYXRpb25IYXNBY3Rpdml0eUV4cHJlc3Npb259XG5cdFx0XHRcdGluaXRpYWxzPXtjb2xsYWJvcmF0aW9uSW5pdGlhbHNFeHByZXNzaW9ufVxuXHRcdFx0XHRkaXNwbGF5U2l6ZT1cIkN1c3RvbVwiXG5cdFx0XHRcdGN1c3RvbURpc3BsYXlTaXplPVwiMS41cmVtXCJcblx0XHRcdFx0Y3VzdG9tRm9udFNpemU9XCIwLjhyZW1cIlxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I9e2NvbGxhYm9yYXRpb25Db2xvckV4cHJlc3Npb259XG5cdFx0XHRcdHByZXNzPXsoZXZ0OiBBdmF0YXIkUHJlc3NFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdHRoaXMub25BdmF0YXJQcmVzcyhldnQpO1xuXHRcdFx0XHR9fVxuXHRcdFx0PlxuXHRcdFx0XHR7e1xuXHRcdFx0XHRcdGRlcGVuZGVudHM6IDxFdmVudERlbGVnYXRlSG9vayBzdG9wVGFwUHJvcGFnYXRpb249e3RydWV9IC8+XG5cdFx0XHRcdH19XG5cdFx0XHQ8L0F2YXRhcj5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgZm9yIHRoZSBwcmVzcyBldmVudCBvZiB0aGUgQXZhdGFyLlxuXHQgKiBAcGFyYW0gZXZ0XG5cdCAqL1xuXHRvbkF2YXRhclByZXNzKGV2dDogQXZhdGFyJFByZXNzRXZlbnQpOiB2b2lkIHtcblx0XHRjb25zdCBhdmF0YXIgPSBldnQuZ2V0U291cmNlKCk7XG5cdFx0Y29uc3QgYmxvY2sgPSBhdmF0YXIuZ2V0UGFyZW50KCkgYXMgQ29sbGFib3JhdGl2ZURyYWZ0SGFuZGxlcjtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKTtcblx0XHRjb25zdCByZXNvdXJjZU1vZGVsID0gUmVzb3VyY2VNb2RlbEhlbHBlci5nZXRSZXNvdXJjZU1vZGVsKHZpZXcpO1xuXHRcdGxldCBwb3BvdmVyID0gVUk1RWxlbWVudC5nZXRFbGVtZW50QnlJZChgbWFuYWdlQ29sbGFib3JhdGlvbkRyYWZ0LS1lZGl0VXNlcmApIGFzIFJlc3BvbnNpdmVQb3BvdmVyIHwgdW5kZWZpbmVkO1xuXG5cdFx0aWYgKCFwb3BvdmVyKSB7XG5cdFx0XHRwb3BvdmVyID0gbmV3IFJlc3BvbnNpdmVQb3BvdmVyKFwibWFuYWdlQ29sbGFib3JhdGlvbkRyYWZ0LS1lZGl0VXNlclwiLCB7XG5cdFx0XHRcdHNob3dIZWFkZXI6IGZhbHNlLFxuXHRcdFx0XHRwbGFjZW1lbnQ6IFwiQm90dG9tXCJcblx0XHRcdH0pO1xuXHRcdFx0cG9wb3Zlci5hZGRTdHlsZUNsYXNzKFwic2FwVWlDb250ZW50UGFkZGluZ1wiKTtcblx0XHRcdHZpZXcuYWRkRGVwZW5kZW50KHBvcG92ZXIpO1xuXHRcdH1cblxuXHRcdHBvcG92ZXIuZGVzdHJveUNvbnRlbnQoKTtcblx0XHRwb3BvdmVyLmFkZENvbnRlbnQoXG5cdFx0XHRuZXcgTGFiZWwoe1xuXHRcdFx0XHR0ZXh0OiByZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05BVkFUQVJfVVNFUl9FRElUX0ZJRUxEXCIsIFtgJHtibG9jay5sb2NrSW5mbz8ubmFtZX1gXSlcblx0XHRcdH0pXG5cdFx0KTtcblx0XHRwb3BvdmVyLm9wZW5CeShhdmF0YXIpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEEsSUFPcUJBLHlCQUF5QixJQUFBQyxJQUFBLEdBRDdDQyxjQUFjLENBQUMseUNBQXlDLENBQUMsRUFBQUMsS0FBQSxHQVN4REMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBUzVCRixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFFLEtBQUEsR0FnQjVCQyxLQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBcUJQTCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUssWUFBWSxFQUFFO0VBQU0sQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FNbERQLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQUosSUFBQSxDQUFBVyxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGNBQUE7SUFHN0IsU0FBQWQsMEJBQVllLFlBQThELEVBQUVDLFFBQWtELEVBQUU7TUFBQSxJQUFBQyxLQUFBO01BQy9IQSxLQUFBLEdBQUFILGNBQUEsQ0FBQUksSUFBQSxPQUFNSCxZQUFZLEVBQUVDLFFBQVEsQ0FBQztNQS9EOUI7QUFDRDtBQUNBO0FBQ0E7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QWlCLENBQUMsb0NBQW9DLEVBQUU7VUFDckVDLFVBQVUsRUFBRSxLQUFLO1VBQ2pCQyxTQUFTLEVBQUU7UUFDWixDQUFDLENBQUM7UUFDRkwsT0FBTyxDQUFDTSxhQUFhLENBQUMscUJBQXFCLENBQUM7UUFDNUNaLElBQUksQ0FBQ2EsWUFBWSxDQUFDUCxPQUFPLENBQUM7TUFDM0I7TUFFQUEsT0FBTyxDQUFDUSxjQUFjLENBQUMsQ0FBQztNQUN4QlIsT0FBTyxDQUFDUyxVQUFVLENBQ2pCLElBQUlDLEtBQUssQ0FBQztRQUNUQyxJQUFJLEVBQUVkLGFBQWEsQ0FBQ2UsT0FBTyxDQUFDLHVDQUF1QyxFQUFFLENBQUMsR0FBR3BCLEtBQUssQ0FBQ3JDLFFBQVEsRUFBRVosSUFBSSxFQUFFLENBQUM7TUFDakcsQ0FBQyxDQUNGLENBQUM7TUFDRHlELE9BQU8sQ0FBQ2EsTUFBTSxDQUFDdkIsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFBQSxPQUFBdEcseUJBQUE7RUFBQSxFQTlMcUQ4SCxhQUFhLEdBQUExRyxXQUFBLEdBQUEyRyx5QkFBQSxDQUFBbEgsT0FBQSxDQUFBZSxTQUFBLGtCQUFBekIsS0FBQTtJQUFBNkgsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE5RyxZQUFBLEdBQUEwRyx5QkFBQSxDQUFBbEgsT0FBQSxDQUFBZSxTQUFBLGVBQUF0QixLQUFBO0lBQUEwSCxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQTdHLFlBQUEsR0FBQXlHLHlCQUFBLENBQUFsSCxPQUFBLENBQUFlLFNBQUEsaUJBQUFyQixLQUFBO0lBQUF5SCxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQTVHLFlBQUEsR0FBQXdHLHlCQUFBLENBQUFsSCxPQUFBLENBQUFlLFNBQUEsaUJBQUFuQixLQUFBO0lBQUF1SCxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBLFdBQUFBLENBQUE7TUFBQSxPQXVEdEQsS0FBSztJQUFBO0VBQUEsSUFBQTNHLFlBQUEsR0FBQXVHLHlCQUFBLENBQUFsSCxPQUFBLENBQUFlLFNBQUEsZUFBQWpCLEtBQUE7SUFBQXFILFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBdEgsT0FBQSxNQUFBRCxNQUFBO0VBQUFhLFFBQUEsR0FBQXpCLHlCQUFBO0VBQUEsT0FBQXlCLFFBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
241
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aXZlRHJhZnRIYW5kbGVyIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjMyIsIl9kZWM0IiwiZXZlbnQiLCJfZGVjNSIsIl9kZWM2IiwiZGVmYXVsdFZhbHVlIiwiX2RlYzciLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJpZE9yU2V0dGluZ3MiLCJzZXR0aW5ncyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsIm93bmVyIiwiX2dldE93bmVyIiwiTW9kZWxIZWxwZXIiLCJpc0NvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZCIsImdldEFwcENvbXBvbmVudCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwib2JqZWN0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdEZvck1ldGFQYXRoIiwibWV0YVBhdGgiLCJjb250ZXh0UGF0aCIsImlzUHJvcGVydHkiLCJ0YXJnZXRPYmplY3QiLCJFcnJvciIsImtleXNCaW5kaW5nUGFydHMiLCJjb250ZXh0TG9jYXRpb24iLCJ0YXJnZXRFbnRpdHlUeXBlIiwia2V5cyIsIm1hcCIsImtleSIsInBhdGgiLCJuYW1lIiwidGFyZ2V0VHlwZSIsImJpbmRpbmdJbmZvIiwicGFydHMiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwiZm9ybWF0dGVyIiwiQ29sbGFib3JhdGlvbkZvcm1hdHRlcnMiLCJnZXRDb2xsYWJvcmF0aW9uSW5mbyIsImJpbmRQcm9wZXJ0eSIsImNvbnRlbnQiLCJzaG93QXZhdGFyIiwiY3JlYXRlQ29sbGFib3JhdGlvbkF2YXRhciIsInNldExvY2tJbmZvIiwibG9ja0luZm8iLCJmaXJlRXZlbnQiLCJpc0xvY2tlZCIsInVuZGVmaW5lZCIsImxvY2tpbmdVc2VySUQiLCJpZCIsImxvY2tpbmdVc2VyTmFtZSIsImxvY2tpbmdVc2VySW5pdGlhbHMiLCJpbml0aWFscyIsImxvY2tpbmdVc2VyQ29sb3IiLCJjb2xvciIsImNvbGxhYm9yYXRpb25IYXNBY3Rpdml0eUV4cHJlc3Npb24iLCJjb21waWxlRXhwcmVzc2lvbiIsIlVJRm9ybWF0dGVycyIsImdldENvbGxhYm9yYXRpb25FeHByZXNzaW9uIiwiaGFzQ29sbGFib3JhdGlvbkFjdGl2aXR5IiwiY29sbGFib3JhdGlvbkluaXRpYWxzRXhwcmVzc2lvbiIsImdldENvbGxhYm9yYXRpb25BY3Rpdml0eUluaXRpYWxzIiwiY29sbGFib3JhdGlvbkNvbG9yRXhwcmVzc2lvbiIsImdldENvbGxhYm9yYXRpb25BY3Rpdml0eUNvbG9yIiwiX2pzeCIsIkF2YXRhciIsInZpc2libGUiLCJkaXNwbGF5U2l6ZSIsImN1c3RvbURpc3BsYXlTaXplIiwiY3VzdG9tRm9udFNpemUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwcmVzcyIsImV2dCIsIm9uQXZhdGFyUHJlc3MiLCJjaGlsZHJlbiIsImRlcGVuZGVudHMiLCJFdmVudERlbGVnYXRlSG9vayIsInN0b3BUYXBQcm9wYWdhdGlvbiIsImF2YXRhciIsImdldFNvdXJjZSIsImJsb2NrIiwiZ2V0UGFyZW50IiwiaGFzTGlzdGVuZXJzIiwidmlldyIsImdldFBhZ2VDb250cm9sbGVyIiwiZ2V0VmlldyIsInJlc291cmNlTW9kZWwiLCJSZXNvdXJjZU1vZGVsSGVscGVyIiwiZ2V0UmVzb3VyY2VNb2RlbCIsInBvcG92ZXIiLCJVSTVFbGVtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJSZXNwb25zaXZlUG9wb3ZlciIsInNob3dIZWFkZXIiLCJwbGFjZW1lbnQiLCJhZGRTdHlsZUNsYXNzIiwiYWRkRGVwZW5kZW50IiwiZGVzdHJveUNvbnRlbnQiLCJhZGRDb250ZW50IiwiTGFiZWwiLCJ0ZXh0IiwiZ2V0VGV4dCIsIm9wZW5CeSIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpdmVEcmFmdEhhbmRsZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIHByb3BlcnR5LCB0eXBlIFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBFdmVudERlbGVnYXRlSG9vayBmcm9tIFwic2FwL2ZlL2Jhc2UvRXZlbnREZWxlZ2F0ZUhvb2tcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrXCI7XG5pbXBvcnQgeyB0eXBlIFVzZXJBY3Rpdml0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCAqIGFzIENvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzIGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL0NvbGxhYm9yYXRpb25Gb3JtYXR0ZXJcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IFJlc291cmNlTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvUmVzb3VyY2VNb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgaXNQcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB7IGdldFRhcmdldE9iamVjdFBhdGgsIHR5cGUgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCAqIGFzIFVJRm9ybWF0dGVycyBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9VSUZvcm1hdHRlcnNcIjtcbmltcG9ydCBBdmF0YXIsIHsgdHlwZSBBdmF0YXIkUHJlc3NFdmVudCB9IGZyb20gXCJzYXAvbS9BdmF0YXJcIjtcbmltcG9ydCBMYWJlbCBmcm9tIFwic2FwL20vTGFiZWxcIjtcbmltcG9ydCBSZXNwb25zaXZlUG9wb3ZlciBmcm9tIFwic2FwL20vUmVzcG9uc2l2ZVBvcG92ZXJcIjtcbmltcG9ydCB0eXBlIFVJNUV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIHsgRXZlbnRIYW5kbGVyIH0gZnJvbSBcInR5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuXG4vKipcbiAqIEEgQnVpbGRpbmdCbG9jayB0byB3YXRjaCB0aGUgbG9jayBzdGF0dXMgb2YgYSBwcm9wZXJ0eSBhbmQgdG8gcmVhY3Qgb24gY2hhbmdlcy5cbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjE0MS4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuQ29sbGFib3JhdGl2ZURyYWZ0SGFuZGxlclwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGFib3JhdGl2ZURyYWZ0SGFuZGxlciBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8QXZhdGFyPiB7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBwYXRoIG9mIHRoZSBjb250ZXh0IHVzZWQgaW4gdGhlIGN1cnJlbnQgcGFnZSBvciBibG9jay5cblx0ICogVGhpcyBzZXR0aW5nIGlzIGRlZmluZWQgYnkgdGhlIGZyYW1ld29yaywgYW5kIGNhbiBiZSBvdmVyd3JpdHRlbi5cblx0ICogQHB1YmxpY1xuXHQgKiBAc2luY2UgMS4xNDEuMFxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRjb250ZXh0UGF0aCE6IHN0cmluZztcblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgcmVsYXRpdmUgcGF0aCBvZiB0aGUgcHJvcGVydHkgaW4gdGhlIG1ldGFtb2RlbCwgYmFzZWQgb24gdGhlIGN1cnJlbnQgY29udGV4dFBhdGguXG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuMTQxLjBcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0bWV0YVBhdGghOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEV2ZW50IGZpcmVkIHdoZW4gdGhlIGxvY2sgc3RhdHVzIGNoYW5nZXMuXG5cdCAqXG5cdCAqIFBhcmFtZXRlcnM6PEJSPlxuXHQgKiAtIGlzTG9ja2VkIDogVHJ1ZSBpZiB0aGUgcHJvcGVydHkgaXMgbG9ja2VkLCBmYWxzZSBvdGhlcndpc2U8QlI+XG5cdCAqIC0gbG9ja2luZ1VzZXJJRDogVGhlIElEIG9mIHRoZSB1c2VyIGxvY2tpbmcgdGhlIHByb3BlcnR5ICh1bmRlZmluZWQgaWYgbm90IGxvY2tlZCk8QlI+XG5cdCAqIC0gbG9ja2luZ1VzZXJOYW1lOiBUaGUgbmFtZSBvZiB0aGUgdXNlciBsb2NraW5nIHRoZSBwcm9wZXJ0eSAodW5kZWZpbmVkIGlmIG5vdCBsb2NrZWQpPEJSPlxuXHQgKiAtIGxvY2tpbmdVc2VySW5pdGlhbHM6IFRoZSBpbml0aWFscyBvZiB0aGUgdXNlciBsb2NraW5nIHRoZSBwcm9wZXJ0eSAodW5kZWZpbmVkIGlmIG5vdCBsb2NrZWQpPEJSPlxuXHQgKiAtIGxvY2tpbmdVc2VyQ29sb3I6IFRoZSBjb2xvciBhc3NvY2lhdGVkIHRvIHRoZSB1c2VyIGxvY2tpbmcgdGhlIHByb3BlcnR5ICh1bmRlZmluZWQgaWYgbm90IGxvY2tlZCk8QlI+XG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuMTQxLjBcblx0ICovXG5cdEBldmVudCgpXG5cdGxvY2tDaGFuZ2U/OiBFdmVudEhhbmRsZXI8XG5cdFx0VUk1RXZlbnQ8XG5cdFx0XHR7XG5cdFx0XHRcdGlzTG9ja2VkOiBib29sZWFuO1xuXHRcdFx0XHRsb2NraW5nVXNlcklEPzogc3RyaW5nO1xuXHRcdFx0XHRsb2NraW5nVXNlck5hbWU/OiBzdHJpbmc7XG5cdFx0XHRcdGxvY2tpbmdVc2VySW5pdGlhbHM/OiBzdHJpbmc7XG5cdFx0XHRcdGxvY2tpbmdVc2VyQ29sb3I/OiBzdHJpbmc7XG5cdFx0XHR9LFxuXHRcdFx0Q29sbGFib3JhdGl2ZURyYWZ0SGFuZGxlclxuXHRcdD5cblx0PjtcblxuXHQvKipcblx0ICogRXZlbnQgZmlyZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhlIGF2YXRhci5cblx0ICpcblx0ICogUGFyYW1ldGVyczo8QlI+XG5cdCAqIC0gbG9ja2luZ1VzZXJJRDogVGhlIElEIG9mIHRoZSB1c2VyIGxvY2tpbmcgdGhlIHByb3BlcnR5PEJSPlxuXHQgKiAtIGxvY2tpbmdVc2VyTmFtZTogVGhlIG5hbWUgb2YgdGhlIHVzZXIgbG9ja2luZyB0aGUgcHJvcGVydHk8QlI+XG5cdCAqIC0gbG9ja2luZ1VzZXJJbml0aWFsczogVGhlIGluaXRpYWxzIG9mIHRoZSB1c2VyIGxvY2tpbmcgdGhlIHByb3BlcnR5PEJSPlxuXHQgKiAtIGxvY2tpbmdVc2VyQ29sb3I6IFRoZSBjb2xvciBhc3NvY2lhdGVkIHRvIHRoZSB1c2VyIGxvY2tpbmcgdGhlIHByb3BlcnR5PEJSPlxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjE0Mi4wXG5cdCAqL1xuXHRAZXZlbnQoKVxuXHRhdmF0YXJQcmVzcz86IEV2ZW50SGFuZGxlcjxcblx0XHRVSTVFdmVudDxcblx0XHRcdHtcblx0XHRcdFx0bG9ja2luZ1VzZXJJRDogc3RyaW5nO1xuXHRcdFx0XHRsb2NraW5nVXNlck5hbWU6IHN0cmluZztcblx0XHRcdFx0bG9ja2luZ1VzZXJJbml0aWFsczogc3RyaW5nO1xuXHRcdFx0XHRsb2NraW5nVXNlckNvbG9yOiBzdHJpbmc7XG5cdFx0XHR9LFxuXHRcdFx0Q29sbGFib3JhdGl2ZURyYWZ0SGFuZGxlclxuXHRcdD5cblx0PjtcblxuXHQvKipcblx0ICogSWYgc2V0IHRvIHRydWUsIHRoZSBzdGFuZGFyZCBBdmF0YXIgY29udHJvbCBpcyBkaXNwbGF5ZWQgdG8gaW5kaWNhdGUgdGhlIGxvY2sgc3RhdHVzLlxuXHQgKiBJZiBzZXQgdG8gZmFsc2UsIG5vdGhpbmcgaXMgZGlzcGxheWVkLlxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjE0MS4wXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRzaG93QXZhdGFyID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIEludGVybmFsIHByb3BlcnR5IHRvIHJlY2VpdmUgdGhlIGxvY2sgZGF0YVxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRsb2NrSW5mbz86IFVzZXJBY3Rpdml0eTtcblxuXHRjb25zdHJ1Y3RvcihpZE9yU2V0dGluZ3M6IHN0cmluZyB8IFByb3BlcnRpZXNPZjxDb2xsYWJvcmF0aXZlRHJhZnRIYW5kbGVyPiwgc2V0dGluZ3M/OiBQcm9wZXJ0aWVzT2Y8Q29sbGFib3JhdGl2ZURyYWZ0SGFuZGxlcj4pIHtcblx0XHRzdXBlcihpZE9yU2V0dGluZ3MsIHNldHRpbmdzKTtcblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0Y29uc3Qgb3duZXIgPSB0aGlzLl9nZXRPd25lcigpO1xuXHRcdGlmICghb3duZXIpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKCFNb2RlbEhlbHBlci5pc0NvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZChvd25lci5nZXRBcHBDb21wb25lbnQoKS5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9iamVjdFBhdGggPSB0aGlzLmdldERhdGFNb2RlbE9iamVjdEZvck1ldGFQYXRoPFByb3BlcnR5Pih0aGlzLm1ldGFQYXRoLCB0aGlzLmNvbnRleHRQYXRoKTtcblx0XHRpZiAoIW9iamVjdFBhdGggfHwgIWlzUHJvcGVydHkob2JqZWN0UGF0aC50YXJnZXRPYmplY3QpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYENvbGxhYm9yYXRpdmVEcmFmdEhhbmRsZXI6IHRoZSBwcm92aWRlZCBtZXRhUGF0aCAnJHt0aGlzLm1ldGFQYXRofScgZG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZCBwcm9wZXJ0eWApO1xuXHRcdH1cblxuXHRcdC8vIEJpbmQgdGhlIGxvY2tJbmZvIHByb3BlcnR5IHRvIHRoZSBjb3JyZXNwb25kaW5nIGxvY2tJbmZvIGluIHRoZSBpbnRlcm5hbCBtb2RlbFxuXHRcdGNvbnN0IGtleXNCaW5kaW5nUGFydHMgPSBvYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbj8udGFyZ2V0RW50aXR5VHlwZS5rZXlzLm1hcCgoa2V5KSA9PiB7XG5cdFx0XHRyZXR1cm4geyBwYXRoOiBrZXkubmFtZSwgdGFyZ2V0VHlwZTogXCJhbnlcIiB9O1xuXHRcdH0pO1xuXHRcdGNvbnN0IGJpbmRpbmdJbmZvID0ge1xuXHRcdFx0cGFydHM6IFtcblx0XHRcdFx0eyBwYXRoOiBgaW50ZXJuYWw+L2NvbGxhYm9yYXRpb24vYWN0aXZpdGllcyR7Z2V0VGFyZ2V0T2JqZWN0UGF0aChvYmplY3RQYXRoKX1gLCB0YXJnZXRUeXBlOiBcImFueVwiIH0sXG5cdFx0XHRcdC4uLmtleXNCaW5kaW5nUGFydHMhXG5cdFx0XHRdLFxuXHRcdFx0Zm9ybWF0dGVyOiBDb2xsYWJvcmF0aW9uRm9ybWF0dGVycy5nZXRDb2xsYWJvcmF0aW9uSW5mb1xuXHRcdH07XG5cblx0XHR0aGlzLmJpbmRQcm9wZXJ0eShcImxvY2tJbmZvXCIsIGJpbmRpbmdJbmZvKTtcblxuXHRcdGlmICghdGhpcy5jb250ZW50ICYmIHRoaXMuc2hvd0F2YXRhcikge1xuXHRcdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb2xsYWJvcmF0aW9uQXZhdGFyKG9iamVjdFBhdGgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGUgdGhlIGxvY2tJbmZvIHByb3BlcnR5IGFuZCBmaXJlIHRoZSBsb2NrQ2hhbmdlIGV2ZW50IGlmIHRoZXJlIGlzIGEgY2hhbmdlLlxuXHQgKiBAcGFyYW0gbG9ja0luZm9cblx0ICovXG5cdHNldExvY2tJbmZvKGxvY2tJbmZvOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5sb2NrSW5mbyAhPT0gbG9ja0luZm8pIHtcblx0XHRcdHRoaXMubG9ja0luZm8gPSBsb2NrSW5mbyBhcyBVc2VyQWN0aXZpdHkgfCB1bmRlZmluZWQ7XG5cdFx0XHR0aGlzLmZpcmVFdmVudChcImxvY2tDaGFuZ2VcIiwge1xuXHRcdFx0XHRpc0xvY2tlZDogdGhpcy5sb2NrSW5mbyAhPT0gdW5kZWZpbmVkLFxuXHRcdFx0XHRsb2NraW5nVXNlcklEOiB0aGlzLmxvY2tJbmZvPy5pZCxcblx0XHRcdFx0bG9ja2luZ1VzZXJOYW1lOiB0aGlzLmxvY2tJbmZvPy5uYW1lLFxuXHRcdFx0XHRsb2NraW5nVXNlckluaXRpYWxzOiB0aGlzLmxvY2tJbmZvPy5pbml0aWFscyxcblx0XHRcdFx0bG9ja2luZ1VzZXJDb2xvcjogdGhpcy5sb2NrSW5mbz8uY29sb3Jcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIHRoZSBjb250ZW50IG9mIHRoZSBibG9jayAoQXZhdGFyKS5cblx0ICogQHBhcmFtIG9iamVjdFBhdGhcblx0ICogQHJldHVybnMgVGhlIEF2YXRhciBjb250cm9sXG5cdCAqL1xuXHRjcmVhdGVDb2xsYWJvcmF0aW9uQXZhdGFyKG9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHk+KTogQXZhdGFyIHtcblx0XHRjb25zdCBjb2xsYWJvcmF0aW9uSGFzQWN0aXZpdHlFeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRVSUZvcm1hdHRlcnMuZ2V0Q29sbGFib3JhdGlvbkV4cHJlc3Npb24ob2JqZWN0UGF0aCwgQ29sbGFib3JhdGlvbkZvcm1hdHRlcnMuaGFzQ29sbGFib3JhdGlvbkFjdGl2aXR5KVxuXHRcdCk7XG5cdFx0Y29uc3QgY29sbGFib3JhdGlvbkluaXRpYWxzRXhwcmVzc2lvbiA9IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0VUlGb3JtYXR0ZXJzLmdldENvbGxhYm9yYXRpb25FeHByZXNzaW9uKG9iamVjdFBhdGgsIENvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzLmdldENvbGxhYm9yYXRpb25BY3Rpdml0eUluaXRpYWxzKVxuXHRcdCk7XG5cdFx0Y29uc3QgY29sbGFib3JhdGlvbkNvbG9yRXhwcmVzc2lvbiA9IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0VUlGb3JtYXR0ZXJzLmdldENvbGxhYm9yYXRpb25FeHByZXNzaW9uKG9iamVjdFBhdGgsIENvbGxhYm9yYXRpb25Gb3JtYXR0ZXJzLmdldENvbGxhYm9yYXRpb25BY3Rpdml0eUNvbG9yKVxuXHRcdCk7XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PEF2YXRhclxuXHRcdFx0XHR2aXNpYmxlPXtjb2xsYWJvcmF0aW9uSGFzQWN0aXZpdHlFeHByZXNzaW9ufVxuXHRcdFx0XHRpbml0aWFscz17Y29sbGFib3JhdGlvbkluaXRpYWxzRXhwcmVzc2lvbn1cblx0XHRcdFx0ZGlzcGxheVNpemU9XCJDdXN0b21cIlxuXHRcdFx0XHRjdXN0b21EaXNwbGF5U2l6ZT1cIjEuNXJlbVwiXG5cdFx0XHRcdGN1c3RvbUZvbnRTaXplPVwiMC44cmVtXCJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yPXtjb2xsYWJvcmF0aW9uQ29sb3JFeHByZXNzaW9ufVxuXHRcdFx0XHRwcmVzcz17KGV2dDogQXZhdGFyJFByZXNzRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR0aGlzLm9uQXZhdGFyUHJlc3MoZXZ0KTtcblx0XHRcdFx0fX1cblx0XHRcdD5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRkZXBlbmRlbnRzOiA8RXZlbnREZWxlZ2F0ZUhvb2sgc3RvcFRhcFByb3BhZ2F0aW9uPXt0cnVlfSAvPlxuXHRcdFx0XHR9fVxuXHRcdFx0PC9BdmF0YXI+XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIGZvciB0aGUgcHJlc3MgZXZlbnQgb2YgdGhlIEF2YXRhci5cblx0ICogQHBhcmFtIGV2dFxuXHQgKi9cblx0b25BdmF0YXJQcmVzcyhldnQ6IEF2YXRhciRQcmVzc0V2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgYXZhdGFyID0gZXZ0LmdldFNvdXJjZSgpO1xuXHRcdGNvbnN0IGJsb2NrID0gYXZhdGFyLmdldFBhcmVudCgpIGFzIENvbGxhYm9yYXRpdmVEcmFmdEhhbmRsZXI7XG5cblx0XHRpZiAoYmxvY2suaGFzTGlzdGVuZXJzKFwiYXZhdGFyUHJlc3NcIikpIHtcblx0XHRcdC8vIElmIHRoZSBldmVudCBpcyBoYW5kbGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiwgZG8gbm90IG9wZW4gdGhlIHBvcG92ZXJcblx0XHRcdGJsb2NrLmZpcmVFdmVudChcImF2YXRhclByZXNzXCIsIHtcblx0XHRcdFx0bG9ja2luZ1VzZXJJRDogYmxvY2subG9ja0luZm8/LmlkIGFzIHN0cmluZyxcblx0XHRcdFx0bG9ja2luZ1VzZXJOYW1lOiBibG9jay5sb2NrSW5mbz8ubmFtZSBhcyBzdHJpbmcsXG5cdFx0XHRcdGxvY2tpbmdVc2VySW5pdGlhbHM6IGJsb2NrLmxvY2tJbmZvPy5pbml0aWFscyBhcyBzdHJpbmcsXG5cdFx0XHRcdGxvY2tpbmdVc2VyQ29sb3I6IGJsb2NrLmxvY2tJbmZvPy5jb2xvciBhcyBzdHJpbmdcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB2aWV3ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKTtcblx0XHRjb25zdCByZXNvdXJjZU1vZGVsID0gUmVzb3VyY2VNb2RlbEhlbHBlci5nZXRSZXNvdXJjZU1vZGVsKHZpZXcpO1xuXHRcdGxldCBwb3BvdmVyID0gVUk1RWxlbWVudC5nZXRFbGVtZW50QnlJZChgbWFuYWdlQ29sbGFib3JhdGlvbkRyYWZ0LS1lZGl0VXNlcmApIGFzIFJlc3BvbnNpdmVQb3BvdmVyIHwgdW5kZWZpbmVkO1xuXG5cdFx0aWYgKCFwb3BvdmVyKSB7XG5cdFx0XHRwb3BvdmVyID0gbmV3IFJlc3BvbnNpdmVQb3BvdmVyKFwibWFuYWdlQ29sbGFib3JhdGlvbkRyYWZ0LS1lZGl0VXNlclwiLCB7XG5cdFx0XHRcdHNob3dIZWFkZXI6IGZhbHNlLFxuXHRcdFx0XHRwbGFjZW1lbnQ6IFwiQm90dG9tXCJcblx0XHRcdH0pO1xuXHRcdFx0cG9wb3Zlci5hZGRTdHlsZUNsYXNzKFwic2FwVWlDb250ZW50UGFkZGluZ1wiKTtcblx0XHRcdHZpZXcuYWRkRGVwZW5kZW50KHBvcG92ZXIpO1xuXHRcdH1cblxuXHRcdHBvcG92ZXIuZGVzdHJveUNvbnRlbnQoKTtcblx0XHRwb3BvdmVyLmFkZENvbnRlbnQoXG5cdFx0XHRuZXcgTGFiZWwoe1xuXHRcdFx0XHR0ZXh0OiByZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05BVkFUQVJfVVNFUl9FRElUX0ZJRUxEXCIsIFtgJHtibG9jay5sb2NrSW5mbz8ubmFtZX1gXSlcblx0XHRcdH0pXG5cdFx0KTtcblx0XHRwb3BvdmVyLm9wZW5CeShhdmF0YXIpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQSxJQU1xQkEseUJBQXlCLElBQUFDLElBQUEsR0FEN0NDLGNBQWMsQ0FBQyx5Q0FBeUMsQ0FBQyxFQUFBQyxLQUFBLEdBUXhEQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FRNUJGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQUUsS0FBQSxHQWU1QkMsS0FBSyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQXlCUEQsS0FBSyxDQUFDLENBQUMsRUFBQUUsS0FBQSxHQW1CUE4sUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFTO0lBQUVNLFlBQVksRUFBRTtFQUFNLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBTWxEUixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFKLElBQUEsQ0FBQVksTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxjQUFBO0lBRzdCLFNBQUFmLDBCQUFZZ0IsWUFBOEQsRUFBRUMsUUFBa0QsRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFDL0hBLEtBQUEsR0FBQUgsY0FBQSxDQUFBSSxJQUFBLE9BQU1ILFlBQVksRUFBRUMsUUFBUSxDQUFDO01BbkY5QjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFMQ0csMEJBQUEsQ0FBQUYsS0FBQSxpQkFBQUcsV0FBQSxFQUFBSCxLQUFBO01BU0E7QUFDRDtBQUNBO0FBQ0E7QUFDQTtNQUpDRSwwQkFBQSxDQUFBRixLQUFBLGNBQUFJLFlBQUEsRUFBQUosS0FBQTtNQVFBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQVhDRSwwQkFBQSxDQUFBRixLQUFBLGdCQUFBSyxZQUFBLEVBQUFMLEtBQUE7TUEwQkE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQVZDRSwwQkFBQSxDQUFBRixLQUFBLGlCQUFBTSxZQUFBLEVBQUFOLEtBQUE7TUF3QkE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO01BTENFLDBCQUFBLENBQUFGLEtBQUEsZ0JBQUFPLFlBQUEsRUFBQVAsS0FBQTtNQVNBO0FBQ0Q7QUFDQTtNQUZDRSwwQkFBQSxDQUFBRixLQUFBLGNBQUFRLFlBQUEsRUFBQVIsS0FBQTtNQUFBLE9BQUFBLEtBQUE7SUFRQTtJQUFDUyxRQUFBLEdBQUEzQix5QkFBQTtJQUFBNEIsY0FBQSxDQUFBNUIseUJBQUEsRUFBQWUsY0FBQTtJQUFBLElBQUFjLE1BQUEsR0FBQTdCLHlCQUFBLENBQUE4QixTQUFBO0lBQUFELE1BQUEsQ0FFREUsbUJBQW1CLEdBQW5CLFNBQUFBLG1CQUFtQkEsQ0FBQSxFQUFTO01BQzNCLE1BQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLFNBQVMsQ0FBQyxDQUFDO01BQzlCLElBQUksQ0FBQ0QsS0FBSyxFQUFFO1FBQ1g7TUFDRDtNQUNBLElBQUksQ0FBQ0UsV0FBVyxDQUFDQyw2QkFBNkIsQ0FBQ0gsS0FBSyxDQUFDSSxlQUFlLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUMsQ0FBQyxDQUFDQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDbEc7TUFDRDtNQUVBLE1BQU1DLFVBQVUsR0FBRyxJQUFJLENBQUNDLDZCQUE2QixDQUFXLElBQUksQ0FBQ0MsUUFBUSxFQUFFLElBQUksQ0FBQ0MsV0FBVyxDQUFDO01BQ2hHLElBQUksQ0FBQ0gsVUFBVSxJQUFJLENBQUNJLFVBQVUsQ0FBQ0osVUFBVSxDQUFDSyxZQUFZLENBQUMsRUFBRTtRQUN4RCxNQUFNLElBQUlDLEtBQUssQ0FBQyxxREFBcUQsSUFBSSxDQUFDSixRQUFRLHNDQUFzQyxDQUFDO01BQzFIOztNQUVBO01BQ0EsTUFBTUssZ0JBQWdCLEdBQUdQLFVBQVUsQ0FBQ1EsZUFBZSxFQUFFQyxnQkFBZ0IsQ0FBQ0MsSUFBSSxDQUFDQyxHQUFHLENBQUVDLEdBQUcsSUFBSztRQUN2RixPQUFPO1VBQUVDLElBQUksRUFBRUQsR0FBRyxDQUFDRSxJQUFJO1VBQUVDLFVBQVUsRUFBRTtRQUFNLENBQUM7TUFDN0MsQ0FBQyxDQUFDO01BQ0YsTUFBTUMsV0FBVyxHQUFHO1FBQ25CQyxLQUFLLEVBQUUsQ0FDTjtVQUFFSixJQUFJLEVBQUUscUNBQXFDSyxtQkFBbUIsQ0FBQ2xCLFVBQVUsQ0FBQyxFQUFFO1VBQUVlLFVBQVUsRUFBRTtRQUFNLENBQUMsRUFDbkcsR0FBR1IsZ0JBQWlCLENBQ3BCO1FBQ0RZLFNBQVMsRUFBRUMsdUJBQXVCLENBQUNDO01BQ3BDLENBQUM7TUFFRCxJQUFJLENBQUNDLFlBQVksQ0FBQyxVQUFVLEVBQUVOLFdBQVcsQ0FBQztNQUUxQyxJQUFJLENBQUMsSUFBSSxDQUFDTyxPQUFPLElBQUksSUFBSSxDQUFDQyxVQUFVLEVBQUU7UUFDckMsSUFBSSxDQUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDRSx5QkFBeUIsQ0FBQ3pCLFVBQVUsQ0FBQztNQUMxRDtJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQVYsTUFBQSxDQUlBb0MsV0FBVyxHQUFYLFNBQUFBLFdBQVdBLENBQUNDLFFBQTRCLEVBQVE7TUFDL0MsSUFBSSxJQUFJLENBQUNBLFFBQVEsS0FBS0EsUUFBUSxFQUFFO1FBQy9CLElBQUksQ0FBQ0EsUUFBUSxHQUFHQSxRQUFvQztRQUNwRCxJQUFJLENBQUNDLFNBQVMsQ0FBQyxZQUFZLEVBQUU7VUFDNUJDLFFBQVEsRUFBRSxJQUFJLENBQUNGLFFBQVEsS0FBS0csU0FBUztVQUNyQ0MsYUFBYSxFQUFFLElBQUksQ0FBQ0osUUFBUSxFQUFFSyxFQUFFO1VBQ2hDQyxlQUFlLEVBQUUsSUFBSSxDQUFDTixRQUFRLEVBQUViLElBQUk7VUFDcENvQixtQkFBbUIsRUFBRSxJQUFJLENBQUNQLFFBQVEsRUFBRVEsUUFBUTtVQUM1Q0MsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDVCxRQUFRLEVBQUVVO1FBQ2xDLENBQUMsQ0FBQztNQUNIO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUEvQyxNQUFBLENBS0FtQyx5QkFBeUIsR0FBekIsU0FBQUEseUJBQXlCQSxDQUFDekIsVUFBeUMsRUFBVTtNQUM1RSxNQUFNc0Msa0NBQWtDLEdBQUdDLGlCQUFpQixDQUMzREMsWUFBWSxDQUFDQywwQkFBMEIsQ0FBQ3pDLFVBQVUsRUFBRW9CLHVCQUF1QixDQUFDc0Isd0JBQXdCLENBQ3JHLENBQUM7TUFDRCxNQUFNQywrQkFBK0IsR0FBR0osaUJBQWlCLENBQ3hEQyxZQUFZLENBQUNDLDBCQUEwQixDQUFDekMsVUFBVSxFQUFFb0IsdUJBQXVCLENBQUN3QixnQ0FBZ0MsQ0FDN0csQ0FBQztNQUNELE1BQU1DLDRCQUE0QixHQUFHTixpQkFBaUIsQ0FDckRDLFlBQVksQ0FBQ0MsMEJBQTBCLENBQUN6QyxVQUFVLEVBQUVvQix1QkFBdUIsQ0FBQzBCLDZCQUE2QixDQUMxRyxDQUFDO01BRUQsT0FDQ0MsSUFBQSxDQUFDQyxNQUFNO1FBQ05DLE9BQU8sRUFBRVgsa0NBQW1DO1FBQzVDSCxRQUFRLEVBQUVRLCtCQUFnQztRQUMxQ08sV0FBVyxFQUFDLFFBQVE7UUFDcEJDLGlCQUFpQixFQUFDLFFBQVE7UUFDMUJDLGNBQWMsRUFBQyxRQUFRO1FBQ3ZCQyxlQUFlLEVBQUVSLDRCQUE2QjtRQUM5Q1MsS0FBSyxFQUFHQyxHQUFzQixJQUFXO1VBQ3hDLElBQUksQ0FBQ0MsYUFBYSxDQUFDRCxHQUFHLENBQUM7UUFDeEIsQ0FBRTtRQUFBRSxRQUFBLEVBRUQ7VUFDQUMsVUFBVSxFQUFFWCxJQUFBLENBQUNZLGlCQUFpQjtZQUFDQyxrQkFBa0IsRUFBRTtVQUFLLENBQUU7UUFDM0Q7TUFBQyxDQUNNLENBQUM7SUFFWDs7SUFFQTtBQUNEO0FBQ0E7QUFDQSxPQUhDO0lBQUF0RSxNQUFBLENBSUFrRSxhQUFhLEdBQWIsU0FBQUEsYUFBYUEsQ0FBQ0QsR0FBc0IsRUFBUTtNQUMzQyxNQUFNTSxNQUFNLEdBQUdOLEdBQUcsQ0FBQ08sU0FBUyxDQUFDLENBQUM7TUFDOUIsTUFBTUMsS0FBSyxHQUFHRixNQUFNLENBQUNHLFNBQVMsQ0FBQyxDQUE4QjtNQUU3RCxJQUFJRCxLQUFLLENBQUNFLFlBQVksQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUN0QztRQUNBRixLQUFLLENBQUNuQyxTQUFTLENBQUMsYUFBYSxFQUFFO1VBQzlCRyxhQUFhLEVBQUVnQyxLQUFLLENBQUNwQyxRQUFRLEVBQUVLLEVBQVk7VUFDM0NDLGVBQWUsRUFBRThCLEtBQUssQ0FBQ3BDLFFBQVEsRUFBRWIsSUFBYztVQUMvQ29CLG1CQUFtQixFQUFFNkIsS0FBSyxDQUFDcEMsUUFBUSxFQUFFUSxRQUFrQjtVQUN2REMsZ0JBQWdCLEVBQUUyQixLQUFLLENBQUNwQyxRQUFRLEVBQUVVO1FBQ25DLENBQUMsQ0FBQztRQUNGO01BQ0Q7TUFDQSxNQUFNNkIsSUFBSSxHQUFHLElBQUksQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsQ0FBQztNQUMvQyxNQUFNQyxhQUFhLEdBQUdDLG1CQUFtQixDQUFDQyxnQkFBZ0IsQ0FBQ0wsSUFBSSxDQUFDO01BQ2hFLElBQUlNLE9BQU8sR0FBR0MsVUFBVSxDQUFDQyxjQUFjLENBQUMsb0NBQW9DLENBQWtDO01BRTlHLElBQUksQ0FBQ0YsT0FBTyxFQUFFO1FBQ2JBLE9BQU8sR0FBRyxJQUFJRyxpQkFBaUIsQ0FBQyxvQ0FBb0MsRUFBRTtVQUNyRUMsVUFBVSxFQUFFLEtBQUs7VUFDakJDLFNBQVMsRUFBRTtRQUNaLENBQUMsQ0FBQztRQUNGTCxPQUFPLENBQUNNLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQztRQUM1Q1osSUFBSSxDQUFDYSxZQUFZLENBQUNQLE9BQU8sQ0FBQztNQUMzQjtNQUVBQSxPQUFPLENBQUNRLGNBQWMsQ0FBQyxDQUFDO01BQ3hCUixPQUFPLENBQUNTLFVBQVUsQ0FDakIsSUFBSUMsS0FBSyxDQUFDO1FBQ1RDLElBQUksRUFBRWQsYUFBYSxDQUFDZSxPQUFPLENBQUMsdUNBQXVDLEVBQUUsQ0FBQyxHQUFHckIsS0FBSyxDQUFDcEMsUUFBUSxFQUFFYixJQUFJLEVBQUUsQ0FBQztNQUNqRyxDQUFDLENBQ0YsQ0FBQztNQUNEMEQsT0FBTyxDQUFDYSxNQUFNLENBQUN4QixNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUFBLE9BQUFwRyx5QkFBQTtFQUFBLEVBbE5xRDZILGFBQWEsR0FBQXhHLFdBQUEsR0FBQXlHLHlCQUFBLENBQUFoSCxPQUFBLENBQUFnQixTQUFBLGtCQUFBM0IsS0FBQTtJQUFBNEgsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE1RyxZQUFBLEdBQUF3Ryx5QkFBQSxDQUFBaEgsT0FBQSxDQUFBZ0IsU0FBQSxlQUFBeEIsS0FBQTtJQUFBeUgsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUEzRyxZQUFBLEdBQUF1Ryx5QkFBQSxDQUFBaEgsT0FBQSxDQUFBZ0IsU0FBQSxpQkFBQXZCLEtBQUE7SUFBQXdILFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBMUcsWUFBQSxHQUFBc0cseUJBQUEsQ0FBQWhILE9BQUEsQ0FBQWdCLFNBQUEsa0JBQUFyQixLQUFBO0lBQUFzSCxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXpHLFlBQUEsR0FBQXFHLHlCQUFBLENBQUFoSCxPQUFBLENBQUFnQixTQUFBLGlCQUFBcEIsS0FBQTtJQUFBcUgsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQSxXQUFBQSxDQUFBO01BQUEsT0EyRXRELEtBQUs7SUFBQTtFQUFBLElBQUF4RyxZQUFBLEdBQUFvRyx5QkFBQSxDQUFBaEgsT0FBQSxDQUFBZ0IsU0FBQSxlQUFBbEIsS0FBQTtJQUFBbUgsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFwSCxPQUFBLE1BQUFELE1BQUE7RUFBQWMsUUFBQSxHQUFBM0IseUJBQUE7RUFBQSxPQUFBMkIsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -8,7 +8,7 @@ import * as CollaborationFormatters from "sap/fe/core/formatters/CollaborationFo
|
|
|
8
8
|
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
9
9
|
import ResourceModelHelper from "sap/fe/core/helpers/ResourceModelHelper";
|
|
10
10
|
import { isProperty } from "sap/fe/core/helpers/TypeGuards";
|
|
11
|
-
import { type DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
11
|
+
import { getTargetObjectPath, type DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
12
12
|
import * as UIFormatters from "sap/fe/core/templating/UIFormatters";
|
|
13
13
|
import Avatar, { type Avatar$PressEvent } from "sap/m/Avatar";
|
|
14
14
|
import Label from "sap/m/Label";
|
|
@@ -20,7 +20,6 @@ import type { EventHandler } from "types/extension_types";
|
|
|
20
20
|
/**
|
|
21
21
|
* A BuildingBlock to watch the lock status of a property and to react on changes.
|
|
22
22
|
* @public
|
|
23
|
-
* @ui5-experimental-since 1.141.0
|
|
24
23
|
* @since 1.141.0
|
|
25
24
|
*/
|
|
26
25
|
@defineUI5Class("sap.fe.macros.CollaborativeDraftHandler")
|
|
@@ -29,7 +28,6 @@ export default class CollaborativeDraftHandler extends BuildingBlock<Avatar> {
|
|
|
29
28
|
* Defines the path of the context used in the current page or block.
|
|
30
29
|
* This setting is defined by the framework, and can be overwritten.
|
|
31
30
|
* @public
|
|
32
|
-
* @ui5-experimental-since 1.141.0
|
|
33
31
|
* @since 1.141.0
|
|
34
32
|
*/
|
|
35
33
|
@property({ type: "string" })
|
|
@@ -38,7 +36,6 @@ export default class CollaborativeDraftHandler extends BuildingBlock<Avatar> {
|
|
|
38
36
|
/**
|
|
39
37
|
* Defines the relative path of the property in the metamodel, based on the current contextPath.
|
|
40
38
|
* @public
|
|
41
|
-
* @ui5-experimental-since 1.141.0
|
|
42
39
|
* @since 1.141.0
|
|
43
40
|
*/
|
|
44
41
|
@property({ type: "string" })
|
|
@@ -48,13 +45,12 @@ export default class CollaborativeDraftHandler extends BuildingBlock<Avatar> {
|
|
|
48
45
|
* Event fired when the lock status changes.
|
|
49
46
|
*
|
|
50
47
|
* Parameters:<BR>
|
|
51
|
-
* - isLocked :
|
|
52
|
-
* - lockingUserID:
|
|
53
|
-
* - lockingUserName:
|
|
54
|
-
* - lockingUserInitials:
|
|
55
|
-
* - lockingUserColor:
|
|
48
|
+
* - isLocked : True if the property is locked, false otherwise<BR>
|
|
49
|
+
* - lockingUserID: The ID of the user locking the property (undefined if not locked)<BR>
|
|
50
|
+
* - lockingUserName: The name of the user locking the property (undefined if not locked)<BR>
|
|
51
|
+
* - lockingUserInitials: The initials of the user locking the property (undefined if not locked)<BR>
|
|
52
|
+
* - lockingUserColor: The color associated to the user locking the property (undefined if not locked)<BR>
|
|
56
53
|
* @public
|
|
57
|
-
* @ui5-experimental-since 1.141.0
|
|
58
54
|
* @since 1.141.0
|
|
59
55
|
*/
|
|
60
56
|
@event()
|
|
@@ -71,11 +67,34 @@ export default class CollaborativeDraftHandler extends BuildingBlock<Avatar> {
|
|
|
71
67
|
>
|
|
72
68
|
>;
|
|
73
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Event fired when the user clicks on the avatar.
|
|
72
|
+
*
|
|
73
|
+
* Parameters:<BR>
|
|
74
|
+
* - lockingUserID: The ID of the user locking the property<BR>
|
|
75
|
+
* - lockingUserName: The name of the user locking the property<BR>
|
|
76
|
+
* - lockingUserInitials: The initials of the user locking the property<BR>
|
|
77
|
+
* - lockingUserColor: The color associated to the user locking the property<BR>
|
|
78
|
+
* @public
|
|
79
|
+
* @since 1.142.0
|
|
80
|
+
*/
|
|
81
|
+
@event()
|
|
82
|
+
avatarPress?: EventHandler<
|
|
83
|
+
UI5Event<
|
|
84
|
+
{
|
|
85
|
+
lockingUserID: string;
|
|
86
|
+
lockingUserName: string;
|
|
87
|
+
lockingUserInitials: string;
|
|
88
|
+
lockingUserColor: string;
|
|
89
|
+
},
|
|
90
|
+
CollaborativeDraftHandler
|
|
91
|
+
>
|
|
92
|
+
>;
|
|
93
|
+
|
|
74
94
|
/**
|
|
75
95
|
* If set to true, the standard Avatar control is displayed to indicate the lock status.
|
|
76
96
|
* If set to false, nothing is displayed.
|
|
77
97
|
* @public
|
|
78
|
-
* @ui5-experimental-since 1.141.0
|
|
79
98
|
* @since 1.141.0
|
|
80
99
|
*/
|
|
81
100
|
@property({ type: "boolean", defaultValue: false })
|
|
@@ -91,16 +110,6 @@ export default class CollaborativeDraftHandler extends BuildingBlock<Avatar> {
|
|
|
91
110
|
super(idOrSettings, settings);
|
|
92
111
|
}
|
|
93
112
|
|
|
94
|
-
private getFullMetaPath(): string {
|
|
95
|
-
if (this.metaPath.startsWith("/")) {
|
|
96
|
-
return this.metaPath;
|
|
97
|
-
} else if (this.contextPath.endsWith("/")) {
|
|
98
|
-
return `${this.contextPath}${this.metaPath}`;
|
|
99
|
-
} else {
|
|
100
|
-
return `${this.contextPath}/${this.metaPath}`;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
113
|
onMetadataAvailable(): void {
|
|
105
114
|
const owner = this._getOwner();
|
|
106
115
|
if (!owner) {
|
|
@@ -110,19 +119,20 @@ export default class CollaborativeDraftHandler extends BuildingBlock<Avatar> {
|
|
|
110
119
|
return;
|
|
111
120
|
}
|
|
112
121
|
|
|
113
|
-
this.
|
|
114
|
-
const fullMetaPath = this.getFullMetaPath();
|
|
115
|
-
const objectPath = this.getDataModelObjectPath<Property>(fullMetaPath);
|
|
122
|
+
const objectPath = this.getDataModelObjectForMetaPath<Property>(this.metaPath, this.contextPath);
|
|
116
123
|
if (!objectPath || !isProperty(objectPath.targetObject)) {
|
|
117
|
-
throw new Error(`CollaborativeDraftHandler: the provided metaPath '${
|
|
124
|
+
throw new Error(`CollaborativeDraftHandler: the provided metaPath '${this.metaPath}' does not point to a valid property`);
|
|
118
125
|
}
|
|
119
126
|
|
|
120
127
|
// Bind the lockInfo property to the corresponding lockInfo in the internal model
|
|
121
|
-
const keysBindingParts = objectPath.targetEntityType.keys.map((key) => {
|
|
128
|
+
const keysBindingParts = objectPath.contextLocation?.targetEntityType.keys.map((key) => {
|
|
122
129
|
return { path: key.name, targetType: "any" };
|
|
123
130
|
});
|
|
124
131
|
const bindingInfo = {
|
|
125
|
-
parts: [
|
|
132
|
+
parts: [
|
|
133
|
+
{ path: `internal>/collaboration/activities${getTargetObjectPath(objectPath)}`, targetType: "any" },
|
|
134
|
+
...keysBindingParts!
|
|
135
|
+
],
|
|
126
136
|
formatter: CollaborationFormatters.getCollaborationInfo
|
|
127
137
|
};
|
|
128
138
|
|
|
@@ -156,11 +166,9 @@ export default class CollaborativeDraftHandler extends BuildingBlock<Avatar> {
|
|
|
156
166
|
* @returns The Avatar control
|
|
157
167
|
*/
|
|
158
168
|
createCollaborationAvatar(objectPath: DataModelObjectPath<Property>): Avatar {
|
|
159
|
-
const
|
|
160
|
-
objectPath,
|
|
161
|
-
CollaborationFormatters.hasCollaborationActivity
|
|
169
|
+
const collaborationHasActivityExpression = compileExpression(
|
|
170
|
+
UIFormatters.getCollaborationExpression(objectPath, CollaborationFormatters.hasCollaborationActivity)
|
|
162
171
|
);
|
|
163
|
-
const collaborationHasActivityExpression = compileExpression(collaborationExpression);
|
|
164
172
|
const collaborationInitialsExpression = compileExpression(
|
|
165
173
|
UIFormatters.getCollaborationExpression(objectPath, CollaborationFormatters.getCollaborationActivityInitials)
|
|
166
174
|
);
|
|
@@ -194,6 +202,17 @@ export default class CollaborativeDraftHandler extends BuildingBlock<Avatar> {
|
|
|
194
202
|
onAvatarPress(evt: Avatar$PressEvent): void {
|
|
195
203
|
const avatar = evt.getSource();
|
|
196
204
|
const block = avatar.getParent() as CollaborativeDraftHandler;
|
|
205
|
+
|
|
206
|
+
if (block.hasListeners("avatarPress")) {
|
|
207
|
+
// If the event is handled by the application, do not open the popover
|
|
208
|
+
block.fireEvent("avatarPress", {
|
|
209
|
+
lockingUserID: block.lockInfo?.id as string,
|
|
210
|
+
lockingUserName: block.lockInfo?.name as string,
|
|
211
|
+
lockingUserInitials: block.lockInfo?.initials as string,
|
|
212
|
+
lockingUserColor: block.lockInfo?.color as string
|
|
213
|
+
});
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
197
216
|
const view = this.getPageController().getView();
|
|
198
217
|
const resourceModel = ResourceModelHelper.getResourceModel(view);
|
|
199
218
|
let popover = UI5Element.getElementById(`manageCollaborationDraft--editUser`) as ResponsivePopover | undefined;
|