@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
|
@@ -32,6 +32,7 @@ import * as MetaModelConverter from "sap/fe/core/converters/MetaModelConverter";
|
|
|
32
32
|
import { convertTypes, getInvolvedDataModelObjects } from "sap/fe/core/converters/MetaModelConverter";
|
|
33
33
|
import {
|
|
34
34
|
getCustomFunctionInfo,
|
|
35
|
+
type CreateBehavior,
|
|
35
36
|
type ExternalMethodConfig,
|
|
36
37
|
type TableType,
|
|
37
38
|
type TableVisualization
|
|
@@ -53,8 +54,9 @@ import {
|
|
|
53
54
|
} from "sap/fe/core/templating/DataModelPathHelper";
|
|
54
55
|
import { type DisplayMode } from "sap/fe/core/templating/DisplayModeFormatter";
|
|
55
56
|
import * as UIFormatters from "sap/fe/core/templating/UIFormatters";
|
|
56
|
-
import type {
|
|
57
|
+
import type { EventHandler, SerializedCollectionBindingInfo } from "sap/fe/macros/CollectionBindingInfo";
|
|
57
58
|
import MacroAPI from "sap/fe/macros/MacroAPI";
|
|
59
|
+
import type FilterBar from "sap/fe/macros/controls/FilterBar";
|
|
58
60
|
import type ISingleSectionContributor from "sap/fe/macros/controls/section/ISingleSectionContributor";
|
|
59
61
|
import type { ConsumerData } from "sap/fe/macros/controls/section/ISingleSectionContributor";
|
|
60
62
|
import * as FieldTemplating from "sap/fe/macros/field/FieldTemplating";
|
|
@@ -67,6 +69,7 @@ import type ActionGroup from "sap/fe/macros/table/ActionGroup";
|
|
|
67
69
|
import type BasicSearch from "sap/fe/macros/table/BasicSearch";
|
|
68
70
|
import type Column from "sap/fe/macros/table/Column";
|
|
69
71
|
import * as MdcTableTemplate from "sap/fe/macros/table/MdcTableTemplate";
|
|
72
|
+
import type OverflowGroup from "sap/fe/macros/table/OverflowGroups";
|
|
70
73
|
import type QuickFilterSelector from "sap/fe/macros/table/QuickFilterSelector";
|
|
71
74
|
import TableCreationOptions from "sap/fe/macros/table/TableCreationOptions";
|
|
72
75
|
import TableHelper from "sap/fe/macros/table/TableHelper";
|
|
@@ -78,6 +81,7 @@ import type { PvProperties } from "sap/fe/navigation/PresentationVariant";
|
|
|
78
81
|
import PresentationVariantClass from "sap/fe/navigation/PresentationVariant";
|
|
79
82
|
import type SelectionVariant from "sap/fe/navigation/SelectionVariant";
|
|
80
83
|
import type Dialog from "sap/m/Dialog";
|
|
84
|
+
import FlexItemData from "sap/m/FlexItemData";
|
|
81
85
|
import IllustratedMessage from "sap/m/IllustratedMessage";
|
|
82
86
|
import IllustratedMessageType from "sap/m/IllustratedMessageType";
|
|
83
87
|
import type Menu from "sap/m/Menu";
|
|
@@ -100,7 +104,6 @@ import { TitleLevel } from "sap/ui/core/library";
|
|
|
100
104
|
import Message from "sap/ui/core/message/Message";
|
|
101
105
|
import type MessageType from "sap/ui/core/message/MessageType";
|
|
102
106
|
import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
|
|
103
|
-
import type FilterBar from "sap/ui/mdc/FilterBar";
|
|
104
107
|
import type {
|
|
105
108
|
default as MDCTable,
|
|
106
109
|
MDCTablePropertyInfo as PropertyInfo,
|
|
@@ -254,7 +257,9 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
254
257
|
constructor(mSettings?: PropertiesOf<TableAPI> & { id?: string }, ...others: $ControlSettings[]) {
|
|
255
258
|
super(mSettings, ...others);
|
|
256
259
|
this.originalTableDefinition = this.tableDefinition;
|
|
257
|
-
|
|
260
|
+
if (!this.getLayoutData()) {
|
|
261
|
+
this.setLayoutData(new FlexItemData({ maxWidth: "100%" }));
|
|
262
|
+
}
|
|
258
263
|
this.attachStateChangeHandler();
|
|
259
264
|
this.attachManifestEvents();
|
|
260
265
|
this.overrideRowPress = this.hasListeners("rowPress");
|
|
@@ -339,7 +344,7 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
339
344
|
if (metaPath) {
|
|
340
345
|
suffix = metaPath.startsWith("/") ? metaPath.substring(1) : metaPath;
|
|
341
346
|
}
|
|
342
|
-
title = resourceModel.getText("T_ILLUSTRATED_MESSAGE_TITLE_BEFORESEARCH");
|
|
347
|
+
title = resourceModel.getText("T_ILLUSTRATED_MESSAGE_TITLE_BEFORESEARCH", undefined, suffix);
|
|
343
348
|
description = resourceModel.getText("T_TABLE_AND_CHART_NO_DATA_TEXT", undefined, suffix);
|
|
344
349
|
}
|
|
345
350
|
} else {
|
|
@@ -474,6 +479,12 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
474
479
|
})
|
|
475
480
|
actions?: (Action | ActionGroup | ActionOverride | ActionGroupOverride)[];
|
|
476
481
|
|
|
482
|
+
@aggregation({
|
|
483
|
+
type: "sap.fe.macros.table.OverflowGroup",
|
|
484
|
+
multiple: true
|
|
485
|
+
})
|
|
486
|
+
actionOverflowGroups?: OverflowGroup[];
|
|
487
|
+
|
|
477
488
|
@aggregation({
|
|
478
489
|
type: "sap.fe.macros.table.Column",
|
|
479
490
|
altTypes: ["sap.fe.macros.table.ColumnOverride"],
|
|
@@ -551,8 +562,8 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
551
562
|
@property({ type: "string" })
|
|
552
563
|
id!: string;
|
|
553
564
|
|
|
554
|
-
@property({ type: "string" })
|
|
555
|
-
fieldMode
|
|
565
|
+
@property({ type: "string", defaultValue: "" })
|
|
566
|
+
fieldMode!: string;
|
|
556
567
|
|
|
557
568
|
@property({ type: "sap.ui.core.TitleLevel", defaultValue: TitleLevel.Auto })
|
|
558
569
|
headerLevel!: TitleLevel;
|
|
@@ -607,8 +618,8 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
607
618
|
@property({ type: "boolean", isBindingInfo: true })
|
|
608
619
|
headerVisible?: boolean;
|
|
609
620
|
|
|
610
|
-
@property({ type: "string" })
|
|
611
|
-
tabTitle
|
|
621
|
+
@property({ type: "string", defaultValue: "" })
|
|
622
|
+
tabTitle!: string;
|
|
612
623
|
|
|
613
624
|
@property({ type: "string" })
|
|
614
625
|
associatedSelectionVariantPath?: string;
|
|
@@ -730,6 +741,10 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
730
741
|
|
|
731
742
|
overrideRowPress = false;
|
|
732
743
|
|
|
744
|
+
init(): void {
|
|
745
|
+
return super.init(true);
|
|
746
|
+
}
|
|
747
|
+
|
|
733
748
|
getIgnoreContextChangeEvent(): boolean {
|
|
734
749
|
return this.ignoreContextChangeEvent;
|
|
735
750
|
}
|
|
@@ -781,7 +796,28 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
781
796
|
// the corresponding action shall be applied.
|
|
782
797
|
return this.isContextMenuActive()
|
|
783
798
|
? this.getBindingContext("internal")?.getProperty("contextmenu/selectedContexts") ?? []
|
|
784
|
-
: this.content.getSelectedContexts();
|
|
799
|
+
: (this.content.getSelectedContexts() as unknown as Context[]);
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
/**
|
|
803
|
+
* Returns all contexts that are loaded in the table.
|
|
804
|
+
*
|
|
805
|
+
* See also the {@link sap.ui.model.odata.v4.ODataListBinding#getAllCurrentContexts} method.
|
|
806
|
+
* @returns All contexts of the table's list binding, or undefined if the table data is not yet loaded.
|
|
807
|
+
* @public
|
|
808
|
+
* @since 1.142.0
|
|
809
|
+
*/
|
|
810
|
+
getAllCurrentContexts(): Context[] | undefined {
|
|
811
|
+
return this.content?.getRowBinding()?.getAllCurrentContexts();
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
/**
|
|
815
|
+
* Clears the selection.
|
|
816
|
+
* @public
|
|
817
|
+
* @since 1.142.0
|
|
818
|
+
*/
|
|
819
|
+
clearSelection(): void {
|
|
820
|
+
this.content?.clearSelection();
|
|
785
821
|
}
|
|
786
822
|
|
|
787
823
|
/**
|
|
@@ -1162,6 +1198,11 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
1162
1198
|
this.fireEvent("rowPress", oEvent.getParameters());
|
|
1163
1199
|
}
|
|
1164
1200
|
|
|
1201
|
+
@xmlEventHandler()
|
|
1202
|
+
onNoop(): void {
|
|
1203
|
+
// Do nothing, this is used to ensure the table action are fired in responsive table
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1165
1206
|
isTableRowNavigationPossible(context: Context): boolean {
|
|
1166
1207
|
// prevent navigation to an empty row
|
|
1167
1208
|
const emptyRow = context.isInactive() == true && context.isTransient() === true;
|
|
@@ -1355,7 +1396,7 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
1355
1396
|
]);
|
|
1356
1397
|
} catch (error: unknown) {
|
|
1357
1398
|
MessageToast.show(this.getTranslatedText("M_TABLEDROP_FAILED", [""]));
|
|
1358
|
-
Log.error(`The ${action} operation is unsuccessful. ` + (error as Error).message ?? "");
|
|
1399
|
+
Log.error(`The ${action} operation is unsuccessful. ` + ((error as Error).message ?? ""));
|
|
1359
1400
|
}
|
|
1360
1401
|
table.setBusy(false);
|
|
1361
1402
|
internalContext.setProperty(`nodeUpdatesInfo/pastableContexts`, []);
|
|
@@ -1556,6 +1597,7 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
1556
1597
|
contexts: Context[];
|
|
1557
1598
|
applicableContexts: Context[];
|
|
1558
1599
|
entitySetName: string;
|
|
1600
|
+
disableStrictHandling?: boolean;
|
|
1559
1601
|
}
|
|
1560
1602
|
): Promise<unknown> {
|
|
1561
1603
|
parameters.model = oEvent.getSource().getModel() as ODataModel;
|
|
@@ -1653,24 +1695,11 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
1653
1695
|
* @alias sap.fe.macros.TableAPI
|
|
1654
1696
|
*/
|
|
1655
1697
|
getFilterBarControl(filterBarRefId: string): UI5Element | undefined {
|
|
1656
|
-
// 'filterBar' property of macros:Table(passed as customData) might be
|
|
1657
|
-
// 1. A localId wrt View(FPM explorer example).
|
|
1658
|
-
// 2. Absolute Id(this was not supported in older versions).
|
|
1659
|
-
// 3. A localId wrt FragmentId(when an XMLComposite or Fragment is independently processed) instead of ViewId.
|
|
1660
|
-
// 'filterBar' was supported earlier as an 'association' to the 'mdc:Table' control inside 'macros:Table' in prior versions.
|
|
1661
|
-
// In newer versions 'filterBar' is used like an association to 'macros:TableAPI'.
|
|
1662
|
-
// This means that the Id is relative to 'macros:TableAPI'.
|
|
1663
|
-
// This scenario happens in case of FilterBar and Table in a custom sections in OP of FEV4.
|
|
1664
|
-
|
|
1665
|
-
const tableAPIId = this?.getId();
|
|
1666
|
-
const tableAPILocalId = this.data("tableAPILocalId");
|
|
1667
|
-
const potentialfilterBarId =
|
|
1668
|
-
tableAPILocalId && filterBarRefId && tableAPIId && tableAPIId.replace(new RegExp(tableAPILocalId + "$"), filterBarRefId); // 3
|
|
1669
1698
|
return (
|
|
1670
|
-
this.getPageController()?.byId(filterBarRefId) ||
|
|
1671
|
-
UI5Element.getElementById(filterBarRefId) ||
|
|
1672
|
-
UI5Element.getElementById(
|
|
1673
|
-
);
|
|
1699
|
+
this.getPageController()?.byId(filterBarRefId) || // Local id wrt View(FPM explorer example)
|
|
1700
|
+
UI5Element.getElementById(filterBarRefId) || // Absolute Id(this was not supported in older versions)
|
|
1701
|
+
UI5Element.getElementById(`${this.getId().substring(0, this.getId().lastIndexOf("--") + 2)}${filterBarRefId}`)
|
|
1702
|
+
); // Local id wrt FragmentId(when an XMLComposite or Fragment is independently processed) instead of ViewId
|
|
1674
1703
|
}
|
|
1675
1704
|
|
|
1676
1705
|
/**
|
|
@@ -2080,7 +2109,7 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
2080
2109
|
|
|
2081
2110
|
destroy(suppressInvalidate?: boolean): void {
|
|
2082
2111
|
// We release hold on messageHandler by the control if there is one.
|
|
2083
|
-
this.getPageController(
|
|
2112
|
+
this.getPageController()?.messageHandler?.releaseHoldByControl(this);
|
|
2084
2113
|
super.destroy(suppressInvalidate);
|
|
2085
2114
|
}
|
|
2086
2115
|
|
|
@@ -2198,10 +2227,10 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
2198
2227
|
* Gets the binding info used when creating the list binding for the MDC table.
|
|
2199
2228
|
* @returns The table binding info
|
|
2200
2229
|
*/
|
|
2201
|
-
getTableTemplateBindingInfo():
|
|
2230
|
+
getTableTemplateBindingInfo(): SerializedCollectionBindingInfo {
|
|
2202
2231
|
const controller = this.getPageController()!;
|
|
2203
2232
|
const path = this.getRowCollectionPath();
|
|
2204
|
-
const rowBindingInfo:
|
|
2233
|
+
const rowBindingInfo: SerializedCollectionBindingInfo = {
|
|
2205
2234
|
suspended: false,
|
|
2206
2235
|
path,
|
|
2207
2236
|
parameters: {
|
|
@@ -2378,8 +2407,16 @@ class TableAPI extends MacroAPI implements ISingleSectionContributor, IRowBindin
|
|
|
2378
2407
|
const metaPathContext = metaModel.createBindingContext(fullMetaPath)!;
|
|
2379
2408
|
|
|
2380
2409
|
this.tableDefinition = createTableDefinition(this);
|
|
2410
|
+
// Set Default values for properties based on table definition
|
|
2411
|
+
this.threshold ??= this.tableDefinition.annotation.threshold ?? this.tableDefinition.control.threshold;
|
|
2381
2412
|
this.updatePropertiesFromTableDefinition();
|
|
2382
2413
|
|
|
2414
|
+
// default creation mode
|
|
2415
|
+
this.creationMode ??= new TableCreationOptions({
|
|
2416
|
+
name: this.tableDefinition.annotation.create.mode as TableCreationOptions["name"],
|
|
2417
|
+
createAtEnd: (this.tableDefinition.annotation.create as CreateBehavior).append
|
|
2418
|
+
});
|
|
2419
|
+
|
|
2383
2420
|
this.updateColumnsVisibility(this.tableDefinition.control.ignoredFields, this.tableDefinition);
|
|
2384
2421
|
|
|
2385
2422
|
const collectionEntity = this.contextObjectPath.convertedTypes.resolvePath(this.tableDefinition.annotation.collection)
|
|
@@ -33,6 +33,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/ManifestSettings", "sap/f
|
|
|
33
33
|
const visualizationPath = getVisualizationPath(tableAPI.contextObjectPath, initialConverterContext);
|
|
34
34
|
const tableSettings = tableAPI.getSettingsForManifest();
|
|
35
35
|
const extraManifestSettings = {
|
|
36
|
+
overflowGroups: {},
|
|
36
37
|
actions: {},
|
|
37
38
|
columns: {},
|
|
38
39
|
tableSettings
|
|
@@ -41,6 +42,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/ManifestSettings", "sap/f
|
|
|
41
42
|
// Process custom actions and columns
|
|
42
43
|
addSlotColumnsToExtraManifest(tableAPI, extraManifestSettings);
|
|
43
44
|
addSlotActionsToExtraManifest(tableAPI, extraManifestSettings);
|
|
45
|
+
addSlotOverflowGroupsToExtraManifest(tableAPI, extraManifestSettings);
|
|
44
46
|
const extraParams = {};
|
|
45
47
|
extraParams[visualizationPath] = extraManifestSettings;
|
|
46
48
|
const converterContext = MacroAPI.getConverterContext(tableAPI.contextObjectPath, tableAPI.contextPath, {
|
|
@@ -182,14 +184,16 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/ManifestSettings", "sap/f
|
|
|
182
184
|
enabled: action.enabled,
|
|
183
185
|
isAIOperation: action.isAIOperation,
|
|
184
186
|
priority: action.priority,
|
|
185
|
-
group: action.group ?? 0
|
|
187
|
+
group: action.group ?? 0,
|
|
188
|
+
// Default group to 0 if not defined
|
|
189
|
+
overflowGroup: action.overflowGroup
|
|
186
190
|
};
|
|
187
191
|
if (action.isA("sap.fe.macros.table.Action")) {
|
|
188
192
|
actions[key] = {
|
|
189
193
|
...actions[key],
|
|
190
194
|
text: action.text,
|
|
191
195
|
__noWrap: true,
|
|
192
|
-
press: "
|
|
196
|
+
press: "someHandler",
|
|
193
197
|
// The real handler will be triggered by firing the event on the Action object
|
|
194
198
|
requiresSelection: action.requiresSelection
|
|
195
199
|
};
|
|
@@ -234,6 +238,19 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/ManifestSettings", "sap/f
|
|
|
234
238
|
}
|
|
235
239
|
});
|
|
236
240
|
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Adds the slot actionOverflowGroups to the extra manifest settings.
|
|
244
|
+
* @param tableAPI
|
|
245
|
+
* @param extraManifestSettings
|
|
246
|
+
*/
|
|
247
|
+
function addSlotOverflowGroupsToExtraManifest(tableAPI, extraManifestSettings) {
|
|
248
|
+
tableAPI.actionOverflowGroups?.forEach(overflowGroup => {
|
|
249
|
+
extraManifestSettings.overflowGroups[overflowGroup.overflowGroup] = {
|
|
250
|
+
showSeparator: overflowGroup.showSeparator ?? true
|
|
251
|
+
};
|
|
252
|
+
});
|
|
253
|
+
}
|
|
237
254
|
return _exports;
|
|
238
255
|
}, false);
|
|
239
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVUYWJsZURlZmluaXRpb24iLCJ0YWJsZUFQSSIsIm93bmVyIiwiX2dldE93bmVyIiwibWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiTG9nIiwiZXJyb3IiLCJFcnJvciIsIm1ldGFQYXRoQ29udGV4dCIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwiZ2V0RnVsbE1ldGFQYXRoIiwiY29udGV4dFBhdGhDb250ZXh0IiwiY29udGV4dFBhdGgiLCJtZXRhUGF0aCIsImNvbnRleHRPYmplY3RQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwiaW5pdGlhbENvbnZlcnRlckNvbnRleHQiLCJNYWNyb0FQSSIsImdldENvbnZlcnRlckNvbnRleHQiLCJhcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJtb2RlbHMiLCJwcmVwcm9jZXNzb3JDb250ZXh0IiwidmlzdWFsaXphdGlvblBhdGgiLCJnZXRWaXN1YWxpemF0aW9uUGF0aCIsInRhYmxlU2V0dGluZ3MiLCJnZXRTZXR0aW5nc0Zvck1hbmlmZXN0IiwiZXh0cmFNYW5pZmVzdFNldHRpbmdzIiwiYWN0aW9ucyIsImNvbHVtbnMiLCJhZGRTbG90Q29sdW1uc1RvRXh0cmFNYW5pZmVzdCIsImFkZFNsb3RBY3Rpb25zVG9FeHRyYU1hbmlmZXN0IiwiZXh0cmFQYXJhbXMiLCJjb252ZXJ0ZXJDb250ZXh0IiwiYXNzb2NpYXRlZFNlbGVjdGlvblZhcmlhbnQiLCJhc3NvY2lhdGVkU2VsZWN0aW9uVmFyaWFudFBhdGgiLCJzdk9iamVjdFBhdGgiLCJ0YXJnZXRPYmplY3QiLCJ2aXN1YWxpemF0aW9uRGVmaW5pdGlvbiIsImdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbiIsImluTXVsdGlWaWV3IiwiZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImdldEVudGl0eVR5cGUiLCJnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoIiwiaXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudCIsInVzZUNvbmRlbnNlZExheW91dCIsImlzTWFjcm9Pck11bHRpcGxlVmlldyIsInZpc3VhbGl6YXRpb25zIiwiZmluZCIsInZpeiIsInR5cGUiLCJWaXN1YWxpemF0aW9uVHlwZSIsIlRhYmxlIiwiX2V4cG9ydHMiLCJpc0Fubm90YXRpb25PZlRlcm0iLCJyZXNvbHZlZFRhcmdldCIsImdldEVudGl0eVR5cGVBbm5vdGF0aW9uIiwiZ2V0VmlzdWFsaXphdGlvbnNGcm9tQW5ub3RhdGlvbiIsInRlcm0iLCJsaW5lSXRlbVZpeiIsInZpc3VhbGl6YXRpb24iLCJhbm5vdGF0aW9uUGF0aCIsInJlbW92ZVVuZGVmaW5lZFByb3BlcnRpZXMiLCJvYmoiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInVuZGVmaW5lZCIsImN1c3RvbUNvbHVtbkRlZmluaXRpb24iLCJjb2x1bW4iLCJpc0NvbHVtbiIsImlzQSIsImhlYWRlciIsIndpZHRoIiwiaW1wb3J0YW5jZSIsImhvcml6b250YWxBbGlnbiIsIndpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyIiwiZXhwb3J0U2V0dGluZ3MiLCJwcm9wZXJ0aWVzIiwidG9vbHRpcCIsInRlbXBsYXRlIiwiYXZhaWxhYmlsaXR5IiwicmVxdWlyZWQiLCJhbmNob3IiLCJwbGFjZW1lbnQiLCJwb3NpdGlvbiIsImFkZEFjdGlvblRvRXh0cmFNYW5pZmVzdCIsImFjdGlvbiIsImNvbW1hbmQiLCJlbmFibGVPblNlbGVjdCIsInZpc2libGUiLCJlbmFibGVkIiwiaXNBSU9wZXJhdGlvbiIsInByaW9yaXR5IiwiZ3JvdXAiLCJ0ZXh0IiwiX19ub1dyYXAiLCJwcmVzcyIsInJlcXVpcmVzU2VsZWN0aW9uIiwiYWZ0ZXJFeGVjdXRpb24iLCJlbmFibGVBdXRvU2Nyb2xsIiwibmF2aWdhdGVUb0luc3RhbmNlIiwiZW50cmllcyIsImxlbmd0aCIsImRlZmF1bHRWYWx1ZXNGdW5jdGlvbiIsImFjdGlvbnNTZXR0aW5ncyIsIm1lbnUiLCJtYXAiLCJzdWJBY3Rpb24iLCJkZWZhdWx0QWN0aW9uIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUYWJsZURlZmluaXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0VUlBbm5vdGF0aW9uVGVybXMsXG5cdHR5cGUgTGluZUl0ZW0sXG5cdHR5cGUgUHJlc2VudGF0aW9uVmFyaWFudCxcblx0dHlwZSBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LFxuXHR0eXBlIFNlbGVjdGlvblZhcmlhbnQsXG5cdHR5cGUgU2VsZWN0aW9uVmFyaWFudFR5cGVcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeyB0eXBlIFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHtcblx0VmlzdWFsaXphdGlvblR5cGUsXG5cdHR5cGUgQXZhaWxhYmlsaXR5VHlwZSxcblx0dHlwZSBDdXN0b21EZWZpbmVkVGFibGVDb2x1bW4sXG5cdHR5cGUgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGUsXG5cdHR5cGUgSW1wb3J0YW5jZSxcblx0dHlwZSBUYWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvblxufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB7IHR5cGUgUGFnZUNvbnRleHRQYXRoVGFyZ2V0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvVGVtcGxhdGVDb252ZXJ0ZXJcIjtcbmltcG9ydCB7IHR5cGUgQ2hhcnRWaXN1YWxpemF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0NoYXJ0XCI7XG5pbXBvcnQge1xuXHRnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24sXG5cdGdldFZpc3VhbGl6YXRpb25zRnJvbUFubm90YXRpb24sXG5cdHR5cGUgVmlzdWFsaXphdGlvbkFuZFBhdGhcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0RhdGFWaXN1YWxpemF0aW9uXCI7XG5pbXBvcnQgeyB0eXBlIFRhYmxlVmlzdWFsaXphdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9UYWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBQbGFjZW1lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgaXNBbm5vdGF0aW9uT2ZUZXJtIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuaW1wb3J0IHsgZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCwgdHlwZSBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IE1hY3JvQVBJIGZyb20gXCIuLi9NYWNyb0FQSVwiO1xuaW1wb3J0IHR5cGUgQWN0aW9uIGZyb20gXCIuL0FjdGlvblwiO1xuaW1wb3J0IHR5cGUgQWN0aW9uR3JvdXAgZnJvbSBcIi4vQWN0aW9uR3JvdXBcIjtcbmltcG9ydCB0eXBlIEFjdGlvbk92ZXJyaWRlIGZyb20gXCIuL0FjdGlvbk92ZXJyaWRlXCI7XG5pbXBvcnQgdHlwZSBDb2x1bW4gZnJvbSBcIi4vQ29sdW1uXCI7XG5pbXBvcnQgdHlwZSBUYWJsZUFQSSBmcm9tIFwiLi9UYWJsZUFQSVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGFibGVEZWZpbml0aW9uKHRhYmxlQVBJOiBUYWJsZUFQSSk6IFRhYmxlVmlzdWFsaXphdGlvbiB7XG5cdGNvbnN0IG93bmVyID0gdGFibGVBUEkuX2dldE93bmVyKCk7XG5cdGNvbnN0IG1ldGFNb2RlbCA9IG93bmVyPy5nZXRNZXRhTW9kZWwoKTtcblx0aWYgKCFvd25lciB8fCAhbWV0YU1vZGVsKSB7XG5cdFx0TG9nLmVycm9yKFwiQ2Fubm90IGNyZWF0ZSBhIHRhYmxlIGRlZmluaXRpb24gZm9yIGEgVGFibGVBUEkgd2l0aG91dCBhbiBvd25lciBvciBhIG1ldGFtb2RlbFwiKTtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY3JlYXRlIGEgdGFibGUgZGVmaW5pdGlvbiBmb3IgYSBUYWJsZUFQSSB3aXRob3V0IGFuIG93bmVyIG9yIGEgbWV0YW1vZGVsXCIpO1xuXHR9XG5cdGNvbnN0IG1ldGFQYXRoQ29udGV4dCA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dCh0YWJsZUFQSS5nZXRGdWxsTWV0YVBhdGgoKSk7XG5cdGNvbnN0IGNvbnRleHRQYXRoQ29udGV4dCA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dCh0YWJsZUFQSS5jb250ZXh0UGF0aCk7XG5cdGlmICghbWV0YVBhdGhDb250ZXh0IHx8ICFjb250ZXh0UGF0aENvbnRleHQpIHtcblx0XHRMb2cuZXJyb3IoYEluY29ycmVjdCBtZXRhUGF0aCAoJHt0YWJsZUFQSS5tZXRhUGF0aH0pIG9yIGNvbnRleHRQYXRoICgke3RhYmxlQVBJLmNvbnRleHRQYXRofSkgZm9yIHRhYmxlQVBJYCk7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiSW5jb3JyZWN0IG1ldGFQYXRoIG9yIGNvbnRleHRQYXRoIGZvciB0YWJsZUFQSVwiKTtcblx0fVxuXG5cdHRhYmxlQVBJLmNvbnRleHRPYmplY3RQYXRoID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzPExpbmVJdGVtIHwgUHJlc2VudGF0aW9uVmFyaWFudCB8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ+KFxuXHRcdG1ldGFQYXRoQ29udGV4dCxcblx0XHRjb250ZXh0UGF0aENvbnRleHRcblx0KTtcblxuXHRjb25zdCBpbml0aWFsQ29udmVydGVyQ29udGV4dCA9IE1hY3JvQVBJLmdldENvbnZlcnRlckNvbnRleHQodGFibGVBUEkuY29udGV4dE9iamVjdFBhdGgsIHRhYmxlQVBJLmNvbnRleHRQYXRoLCB7XG5cdFx0YXBwQ29tcG9uZW50OiBvd25lci5nZXRBcHBDb21wb25lbnQoKSxcblx0XHRtb2RlbHM6IG93bmVyLnByZXByb2Nlc3NvckNvbnRleHQ/Lm1vZGVsc1xuXHR9IGFzIFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MpO1xuXHRjb25zdCB2aXN1YWxpemF0aW9uUGF0aCA9IGdldFZpc3VhbGl6YXRpb25QYXRoKHRhYmxlQVBJLmNvbnRleHRPYmplY3RQYXRoLCBpbml0aWFsQ29udmVydGVyQ29udGV4dCk7XG5cblx0Y29uc3QgdGFibGVTZXR0aW5ncyA9IHRhYmxlQVBJLmdldFNldHRpbmdzRm9yTWFuaWZlc3QoKTtcblxuXHRjb25zdCBleHRyYU1hbmlmZXN0U2V0dGluZ3M6IFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uID0ge1xuXHRcdGFjdGlvbnM6IHt9LFxuXHRcdGNvbHVtbnM6IHt9LFxuXHRcdHRhYmxlU2V0dGluZ3Ncblx0fTtcblxuXHQvLyBQcm9jZXNzIGN1c3RvbSBhY3Rpb25zIGFuZCBjb2x1bW5zXG5cdGFkZFNsb3RDb2x1bW5zVG9FeHRyYU1hbmlmZXN0KHRhYmxlQVBJLCBleHRyYU1hbmlmZXN0U2V0dGluZ3MpO1xuXHRhZGRTbG90QWN0aW9uc1RvRXh0cmFNYW5pZmVzdCh0YWJsZUFQSSwgZXh0cmFNYW5pZmVzdFNldHRpbmdzKTtcblxuXHRjb25zdCBleHRyYVBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblx0ZXh0cmFQYXJhbXNbdmlzdWFsaXphdGlvblBhdGhdID0gZXh0cmFNYW5pZmVzdFNldHRpbmdzO1xuXHRjb25zdCBjb252ZXJ0ZXJDb250ZXh0ID0gTWFjcm9BUEkuZ2V0Q29udmVydGVyQ29udGV4dChcblx0XHR0YWJsZUFQSS5jb250ZXh0T2JqZWN0UGF0aCxcblx0XHR0YWJsZUFQSS5jb250ZXh0UGF0aCxcblx0XHR7XG5cdFx0XHRhcHBDb21wb25lbnQ6IG93bmVyPy5nZXRBcHBDb21wb25lbnQoKSxcblx0XHRcdG1vZGVsczogb3duZXI/LnByZXByb2Nlc3NvckNvbnRleHQ/Lm1vZGVsc1xuXHRcdH0gYXMgVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncyxcblx0XHRleHRyYVBhcmFtc1xuXHQpO1xuXG5cdGxldCBhc3NvY2lhdGVkU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudFR5cGUgfCB1bmRlZmluZWQ7XG5cdGlmICh0YWJsZUFQSS5hc3NvY2lhdGVkU2VsZWN0aW9uVmFyaWFudFBhdGgpIHtcblx0XHRjb25zdCBzdk9iamVjdFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8U2VsZWN0aW9uVmFyaWFudD4oXG5cdFx0XHRtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQodGFibGVBUEkuYXNzb2NpYXRlZFNlbGVjdGlvblZhcmlhbnRQYXRoKSEsXG5cdFx0XHRjb250ZXh0UGF0aENvbnRleHRcblx0XHQpO1xuXHRcdGFzc29jaWF0ZWRTZWxlY3Rpb25WYXJpYW50ID0gc3ZPYmplY3RQYXRoLnRhcmdldE9iamVjdDtcblx0fVxuXG5cdGNvbnN0IHZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0gZ2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uKFxuXHRcdCh0YWJsZUFQSS5pbk11bHRpVmlldyAmJiB0YWJsZUFQSS5jb250ZXh0T2JqZWN0UGF0aC50YXJnZXRPYmplY3Rcblx0XHRcdD8gY29udmVydGVyQ29udGV4dC5nZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKFxuXHRcdFx0XHRcdHRhYmxlQVBJLmNvbnRleHRPYmplY3RQYXRoLnRhcmdldE9iamVjdC5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKClcblx0XHRcdCAgKVxuXHRcdFx0OiBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoKHRhYmxlQVBJLmNvbnRleHRPYmplY3RQYXRoKSkgYXMgc3RyaW5nLFxuXHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0e1xuXHRcdFx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudDogdGFibGVBUEkudXNlQ29uZGVuc2VkTGF5b3V0LFxuXHRcdFx0YXNzb2NpYXRlZFNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRpc01hY3JvT3JNdWx0aXBsZVZpZXc6IHRhYmxlQVBJLmluTXVsdGlWaWV3ID8/IHRydWVcblx0XHR9XG5cdCk7XG5cblx0Ly8gdGFrZSB0aGUgKGZpcnN0KSBUYWJsZSB2aXN1YWxpemF0aW9uXG5cdHJldHVybiB2aXN1YWxpemF0aW9uRGVmaW5pdGlvbi52aXN1YWxpemF0aW9ucy5maW5kKFxuXHRcdCh2aXo6IFRhYmxlVmlzdWFsaXphdGlvbiB8IENoYXJ0VmlzdWFsaXphdGlvbikgPT4gdml6LnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLlRhYmxlXG5cdCkgYXMgVGFibGVWaXN1YWxpemF0aW9uO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGFubm90YXRpb24gcGF0aCBwb2ludGluZyB0byB0aGUgdmlzdWFsaXphdGlvbiBhbm5vdGF0aW9uIChMaW5lSXRlbSkuXG4gKiBAcGFyYW0gY29udGV4dE9iamVjdFBhdGggVGhlIGRhdGFtb2RlbCBvYmplY3QgcGF0aCBmb3IgdGhlIHRhYmxlXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBUaGUgY29udmVydGVyIGNvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBhbm5vdGF0aW9uIHBhdGhcbiAqL1xuZnVuY3Rpb24gZ2V0VmlzdWFsaXphdGlvblBhdGgoXG5cdGNvbnRleHRPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPExpbmVJdGVtIHwgUHJlc2VudGF0aW9uVmFyaWFudCB8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ+LFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0PFBhZ2VDb250ZXh0UGF0aFRhcmdldD5cbik6IHN0cmluZyB7XG5cdGNvbnN0IG1ldGFQYXRoID0gZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aChjb250ZXh0T2JqZWN0UGF0aCkgYXMgc3RyaW5nO1xuXG5cdC8vIGZhbGxiYWNrIHRvIGRlZmF1bHQgTGluZUl0ZW0gaWYgbWV0YXBhdGggaXMgbm90IHNldFxuXHRpZiAoIW1ldGFQYXRoKSB7XG5cdFx0TG9nLmVycm9yKGBNaXNzaW5nIG1ldGEgcGF0aCBwYXJhbWV0ZXIgZm9yIExpbmVJdGVtYCk7XG5cdFx0cmV0dXJuIGBAJHtVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbX1gO1xuXHR9XG5cblx0aWYgKGlzQW5ub3RhdGlvbk9mVGVybTxMaW5lSXRlbT4oY29udGV4dE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LCBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSkpIHtcblx0XHRyZXR1cm4gbWV0YVBhdGg7IC8vIE1ldGFQYXRoIGlzIGFscmVhZHkgcG9pbnRpbmcgdG8gYSBMaW5lSXRlbVxuXHR9XG5cdC8vTmVlZCB0byBzd2l0Y2ggdG8gdGhlIGNvbnRleHQgcmVsYXRlZCB0aGUgUFYgb3IgU1BWXG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihtZXRhUGF0aCk7XG5cblx0bGV0IHZpc3VhbGl6YXRpb25zOiBWaXN1YWxpemF0aW9uQW5kUGF0aFtdID0gW107XG5cdGlmIChcblx0XHRpc0Fubm90YXRpb25PZlRlcm08U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudD4oY29udGV4dE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LCBVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB8fFxuXHRcdGlzQW5ub3RhdGlvbk9mVGVybTxQcmVzZW50YXRpb25WYXJpYW50Pihjb250ZXh0T2JqZWN0UGF0aC50YXJnZXRPYmplY3QsIFVJQW5ub3RhdGlvblRlcm1zLlByZXNlbnRhdGlvblZhcmlhbnQpXG5cdCkge1xuXHRcdHZpc3VhbGl6YXRpb25zID0gZ2V0VmlzdWFsaXphdGlvbnNGcm9tQW5ub3RhdGlvbihjb250ZXh0T2JqZWN0UGF0aC50YXJnZXRPYmplY3QsIG1ldGFQYXRoLCByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LCB0cnVlKTtcblx0fSBlbHNlIHtcblx0XHRMb2cuZXJyb3IoYEJhZCBtZXRhcGF0aCBwYXJhbWV0ZXIgZm9yIHRhYmxlIDogJHtjb250ZXh0T2JqZWN0UGF0aC50YXJnZXRPYmplY3QhLnRlcm19YCk7XG5cdH1cblxuXHRjb25zdCBsaW5lSXRlbVZpeiA9IHZpc3VhbGl6YXRpb25zLmZpbmQoKHZpeikgPT4ge1xuXHRcdHJldHVybiB2aXoudmlzdWFsaXphdGlvbi50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTtcblx0fSk7XG5cblx0aWYgKGxpbmVJdGVtVml6KSB7XG5cdFx0cmV0dXJuIGxpbmVJdGVtVml6LmFubm90YXRpb25QYXRoO1xuXHR9IGVsc2Uge1xuXHRcdC8vIGZhbGxiYWNrIHRvIGRlZmF1bHQgTGluZUl0ZW0gaWYgYW5ub3RhdGlvbiBtaXNzaW5nIGluIFBWXG5cdFx0TG9nLmVycm9yKGBCYWQgbWV0YSBwYXRoIHBhcmFtZXRlciBmb3IgTGluZUl0ZW06ICR7Y29udGV4dE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0IS50ZXJtfWApO1xuXHRcdHJldHVybiBgQCR7VUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW19YDsgLy8gRmFsbGJhY2tcblx0fVxufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIHByb3BlcnRpZXMgd2l0aCB0aGUgdmFsdWUgb2YgdW5kZWZpbmVkIGZyb20gdGhlIG9iamVjdC5cbiAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCB0byByZW1vdmUgdGhlIHVuZGVmaW5lZCBwcm9wZXJ0aWVzIGZyb21cbiAqL1xuZnVuY3Rpb24gcmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyhvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG5cdE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5KSA9PiB7XG5cdFx0aWYgKG9ialtrZXldID09PSB1bmRlZmluZWQpIHtcblx0XHRcdGRlbGV0ZSBvYmpba2V5XTtcblx0XHR9XG5cdH0pO1xufVxuXG4vKipcbiAqIEFkZHMgdGhlIHNsb3QgY29sdW1ucyB0byB0aGUgZXh0cmEgbWFuaWZlc3Qgc2V0dGluZ3MuXG4gKiBAcGFyYW0gdGFibGVBUElcbiAqIEBwYXJhbSBleHRyYU1hbmlmZXN0U2V0dGluZ3NcbiAqL1xuZnVuY3Rpb24gYWRkU2xvdENvbHVtbnNUb0V4dHJhTWFuaWZlc3QodGFibGVBUEk6IFRhYmxlQVBJLCBleHRyYU1hbmlmZXN0U2V0dGluZ3M6IFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uKTogdm9pZCB7XG5cdGxldCBjdXN0b21Db2x1bW5EZWZpbml0aW9uOiBDdXN0b21EZWZpbmVkVGFibGVDb2x1bW4gfCAoQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGUgJiB7IGtleTogc3RyaW5nIH0pO1xuXG5cdHRhYmxlQVBJLmNvbHVtbnM/LmZvckVhY2goKGNvbHVtbikgPT4ge1xuXHRcdGNvbnN0IGlzQ29sdW1uID0gY29sdW1uLmlzQTxDb2x1bW4+KFwic2FwLmZlLm1hY3Jvcy50YWJsZS5Db2x1bW5cIik7XG5cdFx0aWYgKGlzQ29sdW1uKSB7XG5cdFx0XHRjdXN0b21Db2x1bW5EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRoZWFkZXI6IGNvbHVtbi5oZWFkZXIsXG5cdFx0XHRcdHdpZHRoOiBjb2x1bW4ud2lkdGgsXG5cdFx0XHRcdGltcG9ydGFuY2U6IGNvbHVtbi5pbXBvcnRhbmNlIGFzIEltcG9ydGFuY2UsXG5cdFx0XHRcdGhvcml6b250YWxBbGlnbjogY29sdW1uLmhvcml6b250YWxBbGlnbixcblx0XHRcdFx0d2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXI6IGNvbHVtbi53aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlcixcblx0XHRcdFx0ZXhwb3J0U2V0dGluZ3M6IGNvbHVtbi5leHBvcnRTZXR0aW5ncyxcblx0XHRcdFx0cHJvcGVydGllczogY29sdW1uLnByb3BlcnRpZXMsXG5cdFx0XHRcdHRvb2x0aXA6IGNvbHVtbi50b29sdGlwLFxuXHRcdFx0XHR0ZW1wbGF0ZTogY29sdW1uLnRlbXBsYXRlISxcblx0XHRcdFx0YXZhaWxhYmlsaXR5OiBjb2x1bW4uYXZhaWxhYmlsaXR5IGFzIEF2YWlsYWJpbGl0eVR5cGUsXG5cdFx0XHRcdHJlcXVpcmVkOiBjb2x1bW4ucmVxdWlyZWQsXG5cdFx0XHRcdHR5cGU6IFwiU2xvdFwiXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXN0b21Db2x1bW5EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRrZXk6IGNvbHVtbi5rZXksXG5cdFx0XHRcdHdpZHRoOiBjb2x1bW4ud2lkdGgsXG5cdFx0XHRcdGltcG9ydGFuY2U6IGNvbHVtbi5pbXBvcnRhbmNlIGFzIEltcG9ydGFuY2UsXG5cdFx0XHRcdGhvcml6b250YWxBbGlnbjogY29sdW1uLmhvcml6b250YWxBbGlnbixcblx0XHRcdFx0d2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXI6IGNvbHVtbi53aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlcixcblx0XHRcdFx0ZXhwb3J0U2V0dGluZ3M6IGNvbHVtbi5leHBvcnRTZXR0aW5ncyxcblx0XHRcdFx0YXZhaWxhYmlsaXR5OiBjb2x1bW4uYXZhaWxhYmlsaXR5IGFzIEF2YWlsYWJpbGl0eVR5cGVcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0Ly8gUmVtb3ZlIGFsbCB1bmRlZmluZWQgcHJvcGVydGllcywgc28gdGhhdCB0aGV5IGRvbid0IGVyYXNlIHdoYXQgaXMgc2V0IGluIHRoZSBtYW5pZmVzdFxuXHRcdC8vIChuZWNlc3NhcnkgYmVjYXVzZSBtYW5pZmVzdC1iYXNlZCBjb2x1bW5zIGFyZSB0cmFuc2Zvcm1lZCBpbnRvIHNsb3QgY29sdW1ucyBhbmQgd2UgZG9uJ3QgY29weVxuXHRcdC8vIGFsbCB0aGVpciBwcm9wZXJ0aWVzIGluIHRoZSBYTUwpXG5cdFx0cmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyhjdXN0b21Db2x1bW5EZWZpbml0aW9uKTtcblxuXHRcdGlmIChpc0NvbHVtbiAmJiAoY29sdW1uLmFuY2hvciB8fCBjb2x1bW4ucGxhY2VtZW50KSkge1xuXHRcdFx0Y3VzdG9tQ29sdW1uRGVmaW5pdGlvbi5wb3NpdGlvbiA9IHtcblx0XHRcdFx0YW5jaG9yOiBjb2x1bW4uYW5jaG9yLFxuXHRcdFx0XHRwbGFjZW1lbnQ6IChjb2x1bW4ucGxhY2VtZW50ID8/IFwiQWZ0ZXJcIikgYXMgUGxhY2VtZW50XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdGV4dHJhTWFuaWZlc3RTZXR0aW5ncy5jb2x1bW5zIVtjb2x1bW4ua2V5XSA9IGN1c3RvbUNvbHVtbkRlZmluaXRpb247XG5cdH0pO1xufVxuXG4vKipcbiAqIEFkZHMgdGhlIHNsb3QgYWN0aW9ucyB0byB0aGUgZXh0cmEgbWFuaWZlc3Qgc2V0dGluZ3MuXG4gKiBAcGFyYW0gdGFibGVBUElcbiAqIEBwYXJhbSBleHRyYU1hbmlmZXN0U2V0dGluZ3NcbiAqL1xuZnVuY3Rpb24gYWRkU2xvdEFjdGlvbnNUb0V4dHJhTWFuaWZlc3QodGFibGVBUEk6IFRhYmxlQVBJLCBleHRyYU1hbmlmZXN0U2V0dGluZ3M6IFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uKTogdm9pZCB7XG5cdGZ1bmN0aW9uIGFkZEFjdGlvblRvRXh0cmFNYW5pZmVzdChhY3Rpb246IEFjdGlvbiB8IEFjdGlvbk92ZXJyaWRlKTogdm9pZCB7XG5cdFx0Y29uc3QgYWN0aW9ucyA9IGV4dHJhTWFuaWZlc3RTZXR0aW5ncy5hY3Rpb25zITtcblx0XHRjb25zdCBrZXkgPSBhY3Rpb24ua2V5O1xuXHRcdGFjdGlvbnNba2V5XSA9IHtcblx0XHRcdHBvc2l0aW9uOiB7XG5cdFx0XHRcdHBsYWNlbWVudDogKGFjdGlvbi5wbGFjZW1lbnQgPz8gXCJBZnRlclwiKSBhcyBQbGFjZW1lbnQsXG5cdFx0XHRcdGFuY2hvcjogYWN0aW9uLmFuY2hvclxuXHRcdFx0fSxcblx0XHRcdGNvbW1hbmQ6IGFjdGlvbi5jb21tYW5kLFxuXHRcdFx0ZW5hYmxlT25TZWxlY3Q6IGFjdGlvbi5lbmFibGVPblNlbGVjdCxcblx0XHRcdHZpc2libGU6IGFjdGlvbi52aXNpYmxlLFxuXHRcdFx0ZW5hYmxlZDogYWN0aW9uLmVuYWJsZWQsXG5cdFx0XHRpc0FJT3BlcmF0aW9uOiBhY3Rpb24uaXNBSU9wZXJhdGlvbixcblx0XHRcdHByaW9yaXR5OiBhY3Rpb24ucHJpb3JpdHksXG5cdFx0XHRncm91cDogYWN0aW9uLmdyb3VwID8/IDAgLy8gRGVmYXVsdCBncm91cCB0byAwIGlmIG5vdCBkZWZpbmVkXG5cdFx0fTtcblx0XHRpZiAoYWN0aW9uLmlzQTxBY3Rpb24+KFwic2FwLmZlLm1hY3Jvcy50YWJsZS5BY3Rpb25cIikpIHtcblx0XHRcdGFjdGlvbnNba2V5XSA9IHtcblx0XHRcdFx0Li4uYWN0aW9uc1trZXldLFxuXHRcdFx0XHR0ZXh0OiBhY3Rpb24udGV4dCxcblx0XHRcdFx0X19ub1dyYXA6IHRydWUsXG5cdFx0XHRcdHByZXNzOiBcInNvbWUgaGFuZGxlclwiLCAvLyBUaGUgcmVhbCBoYW5kbGVyIHdpbGwgYmUgdHJpZ2dlcmVkIGJ5IGZpcmluZyB0aGUgZXZlbnQgb24gdGhlIEFjdGlvbiBvYmplY3Rcblx0XHRcdFx0cmVxdWlyZXNTZWxlY3Rpb246IGFjdGlvbi5yZXF1aXJlc1NlbGVjdGlvblxuXHRcdFx0fTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgYWZ0ZXJFeGVjdXRpb24gPSB7XG5cdFx0XHRlbmFibGVBdXRvU2Nyb2xsOiBhY3Rpb25bXCJlbmFibGVBdXRvU2Nyb2xsXCJdLFxuXHRcdFx0bmF2aWdhdGVUb0luc3RhbmNlOiBhY3Rpb25bXCJuYXZpZ2F0ZVRvSW5zdGFuY2VcIl1cblx0XHR9O1xuXHRcdHJlbW92ZVVuZGVmaW5lZFByb3BlcnRpZXMoYWZ0ZXJFeGVjdXRpb24pO1xuXHRcdGFjdGlvbnNba2V5XSA9IHtcblx0XHRcdC4uLmFjdGlvbnNba2V5XSxcblx0XHRcdGFmdGVyRXhlY3V0aW9uOiBPYmplY3QuZW50cmllcyhhZnRlckV4ZWN1dGlvbikubGVuZ3RoID8gYWZ0ZXJFeGVjdXRpb24gOiB1bmRlZmluZWQsXG5cdFx0XHRkZWZhdWx0VmFsdWVzRnVuY3Rpb246IGFjdGlvbi5kZWZhdWx0VmFsdWVzRnVuY3Rpb25cblx0XHR9O1xuXHR9XG5cblx0dGFibGVBUEkuYWN0aW9ucz8uZm9yRWFjaCgoYWN0aW9uKSA9PiB7XG5cdFx0aWYgKGFjdGlvbi5pc0E8QWN0aW9uPihcInNhcC5mZS5tYWNyb3MudGFibGUuQWN0aW9uXCIpIHx8IGFjdGlvbi5pc0E8QWN0aW9uT3ZlcnJpZGU+KFwic2FwLmZlLm1hY3Jvcy50YWJsZS5BY3Rpb25PdmVycmlkZVwiKSkge1xuXHRcdFx0Ly8gQWN0aW9uIG9yIEFjdGlvbk92ZXJyaWRlXG5cdFx0XHRhZGRBY3Rpb25Ub0V4dHJhTWFuaWZlc3QoYWN0aW9uKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgYWN0aW9uc1NldHRpbmdzID0gZXh0cmFNYW5pZmVzdFNldHRpbmdzLmFjdGlvbnMhO1xuXHRcdFx0Y29uc3Qga2V5ID0gYWN0aW9uLmtleTtcblx0XHRcdGFjdGlvbnNTZXR0aW5nc1trZXldID0ge1xuXHRcdFx0XHRwb3NpdGlvbjoge1xuXHRcdFx0XHRcdHBsYWNlbWVudDogKGFjdGlvbi5wbGFjZW1lbnQgPz8gXCJBZnRlclwiKSBhcyBQbGFjZW1lbnQsXG5cdFx0XHRcdFx0YW5jaG9yOiBhY3Rpb24uYW5jaG9yXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG1lbnU6IGFjdGlvbi5hY3Rpb25zLm1hcCgoc3ViQWN0aW9uKSA9PiBzdWJBY3Rpb24ua2V5KVxuXHRcdFx0fTtcblx0XHRcdGlmIChhY3Rpb24uaXNBPEFjdGlvbkdyb3VwPihcInNhcC5mZS5tYWNyb3MudGFibGUuQWN0aW9uR3JvdXBcIikpIHtcblx0XHRcdFx0YWN0aW9uc1NldHRpbmdzW2tleV0gPSB7XG5cdFx0XHRcdFx0Li4uYWN0aW9uc1NldHRpbmdzW2tleV0sXG5cdFx0XHRcdFx0dGV4dDogYWN0aW9uLnRleHQsXG5cdFx0XHRcdFx0ZGVmYXVsdEFjdGlvbjogYWN0aW9uLmRlZmF1bHRBY3Rpb24sXG5cdFx0XHRcdFx0X19ub1dyYXA6IHRydWVcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdGFjdGlvbi5hY3Rpb25zLmZvckVhY2goKHN1YkFjdGlvbikgPT4ge1xuXHRcdFx0XHRhZGRBY3Rpb25Ub0V4dHJhTWFuaWZlc3Qoc3ViQWN0aW9uKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0VBc0NPLFNBQVNBLHFCQUFxQkEsQ0FBQ0MsUUFBa0IsRUFBc0I7SUFDN0UsTUFBTUMsS0FBSyxHQUFHRCxRQUFRLENBQUNFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLE1BQU1DLFNBQVMsR0FBR0YsS0FBSyxFQUFFRyxZQUFZLENBQUMsQ0FBQztJQUN2QyxJQUFJLENBQUNILEtBQUssSUFBSSxDQUFDRSxTQUFTLEVBQUU7TUFDekJFLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLGlGQUFpRixDQUFDO01BQzVGLE1BQU0sSUFBSUMsS0FBSyxDQUFDLGlGQUFpRixDQUFDO0lB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
|
|
256
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVUYWJsZURlZmluaXRpb24iLCJ0YWJsZUFQSSIsIm93bmVyIiwiX2dldE93bmVyIiwibWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiTG9nIiwiZXJyb3IiLCJFcnJvciIsIm1ldGFQYXRoQ29udGV4dCIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwiZ2V0RnVsbE1ldGFQYXRoIiwiY29udGV4dFBhdGhDb250ZXh0IiwiY29udGV4dFBhdGgiLCJtZXRhUGF0aCIsImNvbnRleHRPYmplY3RQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwiaW5pdGlhbENvbnZlcnRlckNvbnRleHQiLCJNYWNyb0FQSSIsImdldENvbnZlcnRlckNvbnRleHQiLCJhcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJtb2RlbHMiLCJwcmVwcm9jZXNzb3JDb250ZXh0IiwidmlzdWFsaXphdGlvblBhdGgiLCJnZXRWaXN1YWxpemF0aW9uUGF0aCIsInRhYmxlU2V0dGluZ3MiLCJnZXRTZXR0aW5nc0Zvck1hbmlmZXN0IiwiZXh0cmFNYW5pZmVzdFNldHRpbmdzIiwib3ZlcmZsb3dHcm91cHMiLCJhY3Rpb25zIiwiY29sdW1ucyIsImFkZFNsb3RDb2x1bW5zVG9FeHRyYU1hbmlmZXN0IiwiYWRkU2xvdEFjdGlvbnNUb0V4dHJhTWFuaWZlc3QiLCJhZGRTbG90T3ZlcmZsb3dHcm91cHNUb0V4dHJhTWFuaWZlc3QiLCJleHRyYVBhcmFtcyIsImNvbnZlcnRlckNvbnRleHQiLCJhc3NvY2lhdGVkU2VsZWN0aW9uVmFyaWFudCIsImFzc29jaWF0ZWRTZWxlY3Rpb25WYXJpYW50UGF0aCIsInN2T2JqZWN0UGF0aCIsInRhcmdldE9iamVjdCIsInZpc3VhbGl6YXRpb25EZWZpbml0aW9uIiwiZ2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uIiwiaW5NdWx0aVZpZXciLCJnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiZ2V0RW50aXR5VHlwZSIsImdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgiLCJpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50IiwidXNlQ29uZGVuc2VkTGF5b3V0IiwiaXNNYWNyb09yTXVsdGlwbGVWaWV3IiwidmlzdWFsaXphdGlvbnMiLCJmaW5kIiwidml6IiwidHlwZSIsIlZpc3VhbGl6YXRpb25UeXBlIiwiVGFibGUiLCJfZXhwb3J0cyIsImlzQW5ub3RhdGlvbk9mVGVybSIsInJlc29sdmVkVGFyZ2V0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJnZXRWaXN1YWxpemF0aW9uc0Zyb21Bbm5vdGF0aW9uIiwidGVybSIsImxpbmVJdGVtVml6IiwidmlzdWFsaXphdGlvbiIsImFubm90YXRpb25QYXRoIiwicmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyIsIm9iaiIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwidW5kZWZpbmVkIiwiY3VzdG9tQ29sdW1uRGVmaW5pdGlvbiIsImNvbHVtbiIsImlzQ29sdW1uIiwiaXNBIiwiaGVhZGVyIiwid2lkdGgiLCJpbXBvcnRhbmNlIiwiaG9yaXpvbnRhbEFsaWduIiwid2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXIiLCJleHBvcnRTZXR0aW5ncyIsInByb3BlcnRpZXMiLCJ0b29sdGlwIiwidGVtcGxhdGUiLCJhdmFpbGFiaWxpdHkiLCJyZXF1aXJlZCIsImFuY2hvciIsInBsYWNlbWVudCIsInBvc2l0aW9uIiwiYWRkQWN0aW9uVG9FeHRyYU1hbmlmZXN0IiwiYWN0aW9uIiwiY29tbWFuZCIsImVuYWJsZU9uU2VsZWN0IiwidmlzaWJsZSIsImVuYWJsZWQiLCJpc0FJT3BlcmF0aW9uIiwicHJpb3JpdHkiLCJncm91cCIsIm92ZXJmbG93R3JvdXAiLCJ0ZXh0IiwiX19ub1dyYXAiLCJwcmVzcyIsInJlcXVpcmVzU2VsZWN0aW9uIiwiYWZ0ZXJFeGVjdXRpb24iLCJlbmFibGVBdXRvU2Nyb2xsIiwibmF2aWdhdGVUb0luc3RhbmNlIiwiZW50cmllcyIsImxlbmd0aCIsImRlZmF1bHRWYWx1ZXNGdW5jdGlvbiIsImFjdGlvbnNTZXR0aW5ncyIsIm1lbnUiLCJtYXAiLCJzdWJBY3Rpb24iLCJkZWZhdWx0QWN0aW9uIiwiYWN0aW9uT3ZlcmZsb3dHcm91cHMiLCJzaG93U2VwYXJhdG9yIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUYWJsZURlZmluaXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0VUlBbm5vdGF0aW9uVGVybXMsXG5cdHR5cGUgTGluZUl0ZW0sXG5cdHR5cGUgUHJlc2VudGF0aW9uVmFyaWFudCxcblx0dHlwZSBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LFxuXHR0eXBlIFNlbGVjdGlvblZhcmlhbnQsXG5cdHR5cGUgU2VsZWN0aW9uVmFyaWFudFR5cGVcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeyB0eXBlIFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHtcblx0VmlzdWFsaXphdGlvblR5cGUsXG5cdHR5cGUgQXZhaWxhYmlsaXR5VHlwZSxcblx0dHlwZSBDdXN0b21EZWZpbmVkVGFibGVDb2x1bW4sXG5cdHR5cGUgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGUsXG5cdHR5cGUgSW1wb3J0YW5jZSxcblx0dHlwZSBUYWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvblxufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB7IHR5cGUgUGFnZUNvbnRleHRQYXRoVGFyZ2V0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvVGVtcGxhdGVDb252ZXJ0ZXJcIjtcbmltcG9ydCB7IHR5cGUgQ2hhcnRWaXN1YWxpemF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0NoYXJ0XCI7XG5pbXBvcnQge1xuXHRnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24sXG5cdGdldFZpc3VhbGl6YXRpb25zRnJvbUFubm90YXRpb24sXG5cdHR5cGUgVmlzdWFsaXphdGlvbkFuZFBhdGhcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0RhdGFWaXN1YWxpemF0aW9uXCI7XG5pbXBvcnQgeyB0eXBlIFRhYmxlVmlzdWFsaXphdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9UYWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBQbGFjZW1lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgaXNBbm5vdGF0aW9uT2ZUZXJtIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuaW1wb3J0IHsgZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCwgdHlwZSBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IE1hY3JvQVBJIGZyb20gXCIuLi9NYWNyb0FQSVwiO1xuaW1wb3J0IHR5cGUgQWN0aW9uIGZyb20gXCIuL0FjdGlvblwiO1xuaW1wb3J0IHR5cGUgQWN0aW9uR3JvdXAgZnJvbSBcIi4vQWN0aW9uR3JvdXBcIjtcbmltcG9ydCB0eXBlIEFjdGlvbk92ZXJyaWRlIGZyb20gXCIuL0FjdGlvbk92ZXJyaWRlXCI7XG5pbXBvcnQgdHlwZSBDb2x1bW4gZnJvbSBcIi4vQ29sdW1uXCI7XG5pbXBvcnQgdHlwZSBUYWJsZUFQSSBmcm9tIFwiLi9UYWJsZUFQSVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGFibGVEZWZpbml0aW9uKHRhYmxlQVBJOiBUYWJsZUFQSSk6IFRhYmxlVmlzdWFsaXphdGlvbiB7XG5cdGNvbnN0IG93bmVyID0gdGFibGVBUEkuX2dldE93bmVyKCk7XG5cdGNvbnN0IG1ldGFNb2RlbCA9IG93bmVyPy5nZXRNZXRhTW9kZWwoKTtcblx0aWYgKCFvd25lciB8fCAhbWV0YU1vZGVsKSB7XG5cdFx0TG9nLmVycm9yKFwiQ2Fubm90IGNyZWF0ZSBhIHRhYmxlIGRlZmluaXRpb24gZm9yIGEgVGFibGVBUEkgd2l0aG91dCBhbiBvd25lciBvciBhIG1ldGFtb2RlbFwiKTtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY3JlYXRlIGEgdGFibGUgZGVmaW5pdGlvbiBmb3IgYSBUYWJsZUFQSSB3aXRob3V0IGFuIG93bmVyIG9yIGEgbWV0YW1vZGVsXCIpO1xuXHR9XG5cdGNvbnN0IG1ldGFQYXRoQ29udGV4dCA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dCh0YWJsZUFQSS5nZXRGdWxsTWV0YVBhdGgoKSk7XG5cdGNvbnN0IGNvbnRleHRQYXRoQ29udGV4dCA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dCh0YWJsZUFQSS5jb250ZXh0UGF0aCk7XG5cdGlmICghbWV0YVBhdGhDb250ZXh0IHx8ICFjb250ZXh0UGF0aENvbnRleHQpIHtcblx0XHRMb2cuZXJyb3IoYEluY29ycmVjdCBtZXRhUGF0aCAoJHt0YWJsZUFQSS5tZXRhUGF0aH0pIG9yIGNvbnRleHRQYXRoICgke3RhYmxlQVBJLmNvbnRleHRQYXRofSkgZm9yIHRhYmxlQVBJYCk7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiSW5jb3JyZWN0IG1ldGFQYXRoIG9yIGNvbnRleHRQYXRoIGZvciB0YWJsZUFQSVwiKTtcblx0fVxuXG5cdHRhYmxlQVBJLmNvbnRleHRPYmplY3RQYXRoID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzPExpbmVJdGVtIHwgUHJlc2VudGF0aW9uVmFyaWFudCB8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ+KFxuXHRcdG1ldGFQYXRoQ29udGV4dCxcblx0XHRjb250ZXh0UGF0aENvbnRleHRcblx0KTtcblxuXHRjb25zdCBpbml0aWFsQ29udmVydGVyQ29udGV4dCA9IE1hY3JvQVBJLmdldENvbnZlcnRlckNvbnRleHQodGFibGVBUEkuY29udGV4dE9iamVjdFBhdGgsIHRhYmxlQVBJLmNvbnRleHRQYXRoLCB7XG5cdFx0YXBwQ29tcG9uZW50OiBvd25lci5nZXRBcHBDb21wb25lbnQoKSxcblx0XHRtb2RlbHM6IG93bmVyLnByZXByb2Nlc3NvckNvbnRleHQ/Lm1vZGVsc1xuXHR9IGFzIFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MpO1xuXHRjb25zdCB2aXN1YWxpemF0aW9uUGF0aCA9IGdldFZpc3VhbGl6YXRpb25QYXRoKHRhYmxlQVBJLmNvbnRleHRPYmplY3RQYXRoLCBpbml0aWFsQ29udmVydGVyQ29udGV4dCk7XG5cblx0Y29uc3QgdGFibGVTZXR0aW5ncyA9IHRhYmxlQVBJLmdldFNldHRpbmdzRm9yTWFuaWZlc3QoKTtcblxuXHRjb25zdCBleHRyYU1hbmlmZXN0U2V0dGluZ3M6IFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uID0ge1xuXHRcdG92ZXJmbG93R3JvdXBzOiB7fSxcblx0XHRhY3Rpb25zOiB7fSxcblx0XHRjb2x1bW5zOiB7fSxcblx0XHR0YWJsZVNldHRpbmdzXG5cdH07XG5cblx0Ly8gUHJvY2VzcyBjdXN0b20gYWN0aW9ucyBhbmQgY29sdW1uc1xuXHRhZGRTbG90Q29sdW1uc1RvRXh0cmFNYW5pZmVzdCh0YWJsZUFQSSwgZXh0cmFNYW5pZmVzdFNldHRpbmdzKTtcblx0YWRkU2xvdEFjdGlvbnNUb0V4dHJhTWFuaWZlc3QodGFibGVBUEksIGV4dHJhTWFuaWZlc3RTZXR0aW5ncyk7XG5cdGFkZFNsb3RPdmVyZmxvd0dyb3Vwc1RvRXh0cmFNYW5pZmVzdCh0YWJsZUFQSSwgZXh0cmFNYW5pZmVzdFNldHRpbmdzKTtcblxuXHRjb25zdCBleHRyYVBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblx0ZXh0cmFQYXJhbXNbdmlzdWFsaXphdGlvblBhdGhdID0gZXh0cmFNYW5pZmVzdFNldHRpbmdzO1xuXHRjb25zdCBjb252ZXJ0ZXJDb250ZXh0ID0gTWFjcm9BUEkuZ2V0Q29udmVydGVyQ29udGV4dChcblx0XHR0YWJsZUFQSS5jb250ZXh0T2JqZWN0UGF0aCxcblx0XHR0YWJsZUFQSS5jb250ZXh0UGF0aCxcblx0XHR7XG5cdFx0XHRhcHBDb21wb25lbnQ6IG93bmVyPy5nZXRBcHBDb21wb25lbnQoKSxcblx0XHRcdG1vZGVsczogb3duZXI/LnByZXByb2Nlc3NvckNvbnRleHQ/Lm1vZGVsc1xuXHRcdH0gYXMgVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncyxcblx0XHRleHRyYVBhcmFtc1xuXHQpO1xuXG5cdGxldCBhc3NvY2lhdGVkU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudFR5cGUgfCB1bmRlZmluZWQ7XG5cdGlmICh0YWJsZUFQSS5hc3NvY2lhdGVkU2VsZWN0aW9uVmFyaWFudFBhdGgpIHtcblx0XHRjb25zdCBzdk9iamVjdFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8U2VsZWN0aW9uVmFyaWFudD4oXG5cdFx0XHRtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQodGFibGVBUEkuYXNzb2NpYXRlZFNlbGVjdGlvblZhcmlhbnRQYXRoKSEsXG5cdFx0XHRjb250ZXh0UGF0aENvbnRleHRcblx0XHQpO1xuXHRcdGFzc29jaWF0ZWRTZWxlY3Rpb25WYXJpYW50ID0gc3ZPYmplY3RQYXRoLnRhcmdldE9iamVjdDtcblx0fVxuXG5cdGNvbnN0IHZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0gZ2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uKFxuXHRcdCh0YWJsZUFQSS5pbk11bHRpVmlldyAmJiB0YWJsZUFQSS5jb250ZXh0T2JqZWN0UGF0aC50YXJnZXRPYmplY3Rcblx0XHRcdD8gY29udmVydGVyQ29udGV4dC5nZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKFxuXHRcdFx0XHRcdHRhYmxlQVBJLmNvbnRleHRPYmplY3RQYXRoLnRhcmdldE9iamVjdC5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKClcblx0XHRcdCAgKVxuXHRcdFx0OiBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoKHRhYmxlQVBJLmNvbnRleHRPYmplY3RQYXRoKSkgYXMgc3RyaW5nLFxuXHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0e1xuXHRcdFx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudDogdGFibGVBUEkudXNlQ29uZGVuc2VkTGF5b3V0LFxuXHRcdFx0YXNzb2NpYXRlZFNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRpc01hY3JvT3JNdWx0aXBsZVZpZXc6IHRhYmxlQVBJLmluTXVsdGlWaWV3ID8/IHRydWVcblx0XHR9XG5cdCk7XG5cblx0Ly8gdGFrZSB0aGUgKGZpcnN0KSBUYWJsZSB2aXN1YWxpemF0aW9uXG5cdHJldHVybiB2aXN1YWxpemF0aW9uRGVmaW5pdGlvbi52aXN1YWxpemF0aW9ucy5maW5kKFxuXHRcdCh2aXo6IFRhYmxlVmlzdWFsaXphdGlvbiB8IENoYXJ0VmlzdWFsaXphdGlvbikgPT4gdml6LnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLlRhYmxlXG5cdCkgYXMgVGFibGVWaXN1YWxpemF0aW9uO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGFubm90YXRpb24gcGF0aCBwb2ludGluZyB0byB0aGUgdmlzdWFsaXphdGlvbiBhbm5vdGF0aW9uIChMaW5lSXRlbSkuXG4gKiBAcGFyYW0gY29udGV4dE9iamVjdFBhdGggVGhlIGRhdGFtb2RlbCBvYmplY3QgcGF0aCBmb3IgdGhlIHRhYmxlXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBUaGUgY29udmVydGVyIGNvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBhbm5vdGF0aW9uIHBhdGhcbiAqL1xuZnVuY3Rpb24gZ2V0VmlzdWFsaXphdGlvblBhdGgoXG5cdGNvbnRleHRPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPExpbmVJdGVtIHwgUHJlc2VudGF0aW9uVmFyaWFudCB8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ+LFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0PFBhZ2VDb250ZXh0UGF0aFRhcmdldD5cbik6IHN0cmluZyB7XG5cdGNvbnN0IG1ldGFQYXRoID0gZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aChjb250ZXh0T2JqZWN0UGF0aCkgYXMgc3RyaW5nO1xuXG5cdC8vIGZhbGxiYWNrIHRvIGRlZmF1bHQgTGluZUl0ZW0gaWYgbWV0YXBhdGggaXMgbm90IHNldFxuXHRpZiAoIW1ldGFQYXRoKSB7XG5cdFx0TG9nLmVycm9yKGBNaXNzaW5nIG1ldGEgcGF0aCBwYXJhbWV0ZXIgZm9yIExpbmVJdGVtYCk7XG5cdFx0cmV0dXJuIGBAJHtVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbX1gO1xuXHR9XG5cblx0aWYgKGlzQW5ub3RhdGlvbk9mVGVybTxMaW5lSXRlbT4oY29udGV4dE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LCBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSkpIHtcblx0XHRyZXR1cm4gbWV0YVBhdGg7IC8vIE1ldGFQYXRoIGlzIGFscmVhZHkgcG9pbnRpbmcgdG8gYSBMaW5lSXRlbVxuXHR9XG5cdC8vTmVlZCB0byBzd2l0Y2ggdG8gdGhlIGNvbnRleHQgcmVsYXRlZCB0aGUgUFYgb3IgU1BWXG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihtZXRhUGF0aCk7XG5cblx0bGV0IHZpc3VhbGl6YXRpb25zOiBWaXN1YWxpemF0aW9uQW5kUGF0aFtdID0gW107XG5cdGlmIChcblx0XHRpc0Fubm90YXRpb25PZlRlcm08U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudD4oY29udGV4dE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LCBVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB8fFxuXHRcdGlzQW5ub3RhdGlvbk9mVGVybTxQcmVzZW50YXRpb25WYXJpYW50Pihjb250ZXh0T2JqZWN0UGF0aC50YXJnZXRPYmplY3QsIFVJQW5ub3RhdGlvblRlcm1zLlByZXNlbnRhdGlvblZhcmlhbnQpXG5cdCkge1xuXHRcdHZpc3VhbGl6YXRpb25zID0gZ2V0VmlzdWFsaXphdGlvbnNGcm9tQW5ub3RhdGlvbihjb250ZXh0T2JqZWN0UGF0aC50YXJnZXRPYmplY3QsIG1ldGFQYXRoLCByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LCB0cnVlKTtcblx0fSBlbHNlIHtcblx0XHRMb2cuZXJyb3IoYEJhZCBtZXRhcGF0aCBwYXJhbWV0ZXIgZm9yIHRhYmxlIDogJHtjb250ZXh0T2JqZWN0UGF0aC50YXJnZXRPYmplY3QhLnRlcm19YCk7XG5cdH1cblxuXHRjb25zdCBsaW5lSXRlbVZpeiA9IHZpc3VhbGl6YXRpb25zLmZpbmQoKHZpeikgPT4ge1xuXHRcdHJldHVybiB2aXoudmlzdWFsaXphdGlvbi50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTtcblx0fSk7XG5cblx0aWYgKGxpbmVJdGVtVml6KSB7XG5cdFx0cmV0dXJuIGxpbmVJdGVtVml6LmFubm90YXRpb25QYXRoO1xuXHR9IGVsc2Uge1xuXHRcdC8vIGZhbGxiYWNrIHRvIGRlZmF1bHQgTGluZUl0ZW0gaWYgYW5ub3RhdGlvbiBtaXNzaW5nIGluIFBWXG5cdFx0TG9nLmVycm9yKGBCYWQgbWV0YSBwYXRoIHBhcmFtZXRlciBmb3IgTGluZUl0ZW06ICR7Y29udGV4dE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0IS50ZXJtfWApO1xuXHRcdHJldHVybiBgQCR7VUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW19YDsgLy8gRmFsbGJhY2tcblx0fVxufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIHByb3BlcnRpZXMgd2l0aCB0aGUgdmFsdWUgb2YgdW5kZWZpbmVkIGZyb20gdGhlIG9iamVjdC5cbiAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCB0byByZW1vdmUgdGhlIHVuZGVmaW5lZCBwcm9wZXJ0aWVzIGZyb21cbiAqL1xuZnVuY3Rpb24gcmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyhvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG5cdE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5KSA9PiB7XG5cdFx0aWYgKG9ialtrZXldID09PSB1bmRlZmluZWQpIHtcblx0XHRcdGRlbGV0ZSBvYmpba2V5XTtcblx0XHR9XG5cdH0pO1xufVxuXG4vKipcbiAqIEFkZHMgdGhlIHNsb3QgY29sdW1ucyB0byB0aGUgZXh0cmEgbWFuaWZlc3Qgc2V0dGluZ3MuXG4gKiBAcGFyYW0gdGFibGVBUElcbiAqIEBwYXJhbSBleHRyYU1hbmlmZXN0U2V0dGluZ3NcbiAqL1xuZnVuY3Rpb24gYWRkU2xvdENvbHVtbnNUb0V4dHJhTWFuaWZlc3QodGFibGVBUEk6IFRhYmxlQVBJLCBleHRyYU1hbmlmZXN0U2V0dGluZ3M6IFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uKTogdm9pZCB7XG5cdGxldCBjdXN0b21Db2x1bW5EZWZpbml0aW9uOiBDdXN0b21EZWZpbmVkVGFibGVDb2x1bW4gfCAoQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGUgJiB7IGtleTogc3RyaW5nIH0pO1xuXG5cdHRhYmxlQVBJLmNvbHVtbnM/LmZvckVhY2goKGNvbHVtbikgPT4ge1xuXHRcdGNvbnN0IGlzQ29sdW1uID0gY29sdW1uLmlzQTxDb2x1bW4+KFwic2FwLmZlLm1hY3Jvcy50YWJsZS5Db2x1bW5cIik7XG5cdFx0aWYgKGlzQ29sdW1uKSB7XG5cdFx0XHRjdXN0b21Db2x1bW5EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRoZWFkZXI6IGNvbHVtbi5oZWFkZXIsXG5cdFx0XHRcdHdpZHRoOiBjb2x1bW4ud2lkdGgsXG5cdFx0XHRcdGltcG9ydGFuY2U6IGNvbHVtbi5pbXBvcnRhbmNlIGFzIEltcG9ydGFuY2UsXG5cdFx0XHRcdGhvcml6b250YWxBbGlnbjogY29sdW1uLmhvcml6b250YWxBbGlnbixcblx0XHRcdFx0d2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXI6IGNvbHVtbi53aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlcixcblx0XHRcdFx0ZXhwb3J0U2V0dGluZ3M6IGNvbHVtbi5leHBvcnRTZXR0aW5ncyxcblx0XHRcdFx0cHJvcGVydGllczogY29sdW1uLnByb3BlcnRpZXMsXG5cdFx0XHRcdHRvb2x0aXA6IGNvbHVtbi50b29sdGlwLFxuXHRcdFx0XHR0ZW1wbGF0ZTogY29sdW1uLnRlbXBsYXRlISxcblx0XHRcdFx0YXZhaWxhYmlsaXR5OiBjb2x1bW4uYXZhaWxhYmlsaXR5IGFzIEF2YWlsYWJpbGl0eVR5cGUsXG5cdFx0XHRcdHJlcXVpcmVkOiBjb2x1bW4ucmVxdWlyZWQsXG5cdFx0XHRcdHR5cGU6IFwiU2xvdFwiXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXN0b21Db2x1bW5EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRrZXk6IGNvbHVtbi5rZXksXG5cdFx0XHRcdHdpZHRoOiBjb2x1bW4ud2lkdGgsXG5cdFx0XHRcdGltcG9ydGFuY2U6IGNvbHVtbi5pbXBvcnRhbmNlIGFzIEltcG9ydGFuY2UsXG5cdFx0XHRcdGhvcml6b250YWxBbGlnbjogY29sdW1uLmhvcml6b250YWxBbGlnbixcblx0XHRcdFx0d2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXI6IGNvbHVtbi53aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlcixcblx0XHRcdFx0ZXhwb3J0U2V0dGluZ3M6IGNvbHVtbi5leHBvcnRTZXR0aW5ncyxcblx0XHRcdFx0YXZhaWxhYmlsaXR5OiBjb2x1bW4uYXZhaWxhYmlsaXR5IGFzIEF2YWlsYWJpbGl0eVR5cGVcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0Ly8gUmVtb3ZlIGFsbCB1bmRlZmluZWQgcHJvcGVydGllcywgc28gdGhhdCB0aGV5IGRvbid0IGVyYXNlIHdoYXQgaXMgc2V0IGluIHRoZSBtYW5pZmVzdFxuXHRcdC8vIChuZWNlc3NhcnkgYmVjYXVzZSBtYW5pZmVzdC1iYXNlZCBjb2x1bW5zIGFyZSB0cmFuc2Zvcm1lZCBpbnRvIHNsb3QgY29sdW1ucyBhbmQgd2UgZG9uJ3QgY29weVxuXHRcdC8vIGFsbCB0aGVpciBwcm9wZXJ0aWVzIGluIHRoZSBYTUwpXG5cdFx0cmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyhjdXN0b21Db2x1bW5EZWZpbml0aW9uKTtcblxuXHRcdGlmIChpc0NvbHVtbiAmJiAoY29sdW1uLmFuY2hvciB8fCBjb2x1bW4ucGxhY2VtZW50KSkge1xuXHRcdFx0Y3VzdG9tQ29sdW1uRGVmaW5pdGlvbi5wb3NpdGlvbiA9IHtcblx0XHRcdFx0YW5jaG9yOiBjb2x1bW4uYW5jaG9yLFxuXHRcdFx0XHRwbGFjZW1lbnQ6IChjb2x1bW4ucGxhY2VtZW50ID8/IFwiQWZ0ZXJcIikgYXMgUGxhY2VtZW50XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdGV4dHJhTWFuaWZlc3RTZXR0aW5ncy5jb2x1bW5zIVtjb2x1bW4ua2V5XSA9IGN1c3RvbUNvbHVtbkRlZmluaXRpb247XG5cdH0pO1xufVxuXG4vKipcbiAqIEFkZHMgdGhlIHNsb3QgYWN0aW9ucyB0byB0aGUgZXh0cmEgbWFuaWZlc3Qgc2V0dGluZ3MuXG4gKiBAcGFyYW0gdGFibGVBUElcbiAqIEBwYXJhbSBleHRyYU1hbmlmZXN0U2V0dGluZ3NcbiAqL1xuZnVuY3Rpb24gYWRkU2xvdEFjdGlvbnNUb0V4dHJhTWFuaWZlc3QodGFibGVBUEk6IFRhYmxlQVBJLCBleHRyYU1hbmlmZXN0U2V0dGluZ3M6IFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uKTogdm9pZCB7XG5cdGZ1bmN0aW9uIGFkZEFjdGlvblRvRXh0cmFNYW5pZmVzdChhY3Rpb246IEFjdGlvbiB8IEFjdGlvbk92ZXJyaWRlKTogdm9pZCB7XG5cdFx0Y29uc3QgYWN0aW9ucyA9IGV4dHJhTWFuaWZlc3RTZXR0aW5ncy5hY3Rpb25zITtcblx0XHRjb25zdCBrZXkgPSBhY3Rpb24ua2V5O1xuXHRcdGFjdGlvbnNba2V5XSA9IHtcblx0XHRcdHBvc2l0aW9uOiB7XG5cdFx0XHRcdHBsYWNlbWVudDogKGFjdGlvbi5wbGFjZW1lbnQgPz8gXCJBZnRlclwiKSBhcyBQbGFjZW1lbnQsXG5cdFx0XHRcdGFuY2hvcjogYWN0aW9uLmFuY2hvclxuXHRcdFx0fSxcblx0XHRcdGNvbW1hbmQ6IGFjdGlvbi5jb21tYW5kLFxuXHRcdFx0ZW5hYmxlT25TZWxlY3Q6IGFjdGlvbi5lbmFibGVPblNlbGVjdCxcblx0XHRcdHZpc2libGU6IGFjdGlvbi52aXNpYmxlLFxuXHRcdFx0ZW5hYmxlZDogYWN0aW9uLmVuYWJsZWQsXG5cdFx0XHRpc0FJT3BlcmF0aW9uOiBhY3Rpb24uaXNBSU9wZXJhdGlvbixcblx0XHRcdHByaW9yaXR5OiBhY3Rpb24ucHJpb3JpdHksXG5cdFx0XHRncm91cDogYWN0aW9uLmdyb3VwID8/IDAsIC8vIERlZmF1bHQgZ3JvdXAgdG8gMCBpZiBub3QgZGVmaW5lZFxuXHRcdFx0b3ZlcmZsb3dHcm91cDogYWN0aW9uLm92ZXJmbG93R3JvdXBcblx0XHR9O1xuXHRcdGlmIChhY3Rpb24uaXNBPEFjdGlvbj4oXCJzYXAuZmUubWFjcm9zLnRhYmxlLkFjdGlvblwiKSkge1xuXHRcdFx0YWN0aW9uc1trZXldID0ge1xuXHRcdFx0XHQuLi5hY3Rpb25zW2tleV0sXG5cdFx0XHRcdHRleHQ6IGFjdGlvbi50ZXh0LFxuXHRcdFx0XHRfX25vV3JhcDogdHJ1ZSxcblx0XHRcdFx0cHJlc3M6IFwic29tZUhhbmRsZXJcIiwgLy8gVGhlIHJlYWwgaGFuZGxlciB3aWxsIGJlIHRyaWdnZXJlZCBieSBmaXJpbmcgdGhlIGV2ZW50IG9uIHRoZSBBY3Rpb24gb2JqZWN0XG5cdFx0XHRcdHJlcXVpcmVzU2VsZWN0aW9uOiBhY3Rpb24ucmVxdWlyZXNTZWxlY3Rpb25cblx0XHRcdH07XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGFmdGVyRXhlY3V0aW9uID0ge1xuXHRcdFx0ZW5hYmxlQXV0b1Njcm9sbDogYWN0aW9uW1wiZW5hYmxlQXV0b1Njcm9sbFwiXSxcblx0XHRcdG5hdmlnYXRlVG9JbnN0YW5jZTogYWN0aW9uW1wibmF2aWdhdGVUb0luc3RhbmNlXCJdXG5cdFx0fTtcblx0XHRyZW1vdmVVbmRlZmluZWRQcm9wZXJ0aWVzKGFmdGVyRXhlY3V0aW9uKTtcblx0XHRhY3Rpb25zW2tleV0gPSB7XG5cdFx0XHQuLi5hY3Rpb25zW2tleV0sXG5cdFx0XHRhZnRlckV4ZWN1dGlvbjogT2JqZWN0LmVudHJpZXMoYWZ0ZXJFeGVjdXRpb24pLmxlbmd0aCA/IGFmdGVyRXhlY3V0aW9uIDogdW5kZWZpbmVkLFxuXHRcdFx0ZGVmYXVsdFZhbHVlc0Z1bmN0aW9uOiBhY3Rpb24uZGVmYXVsdFZhbHVlc0Z1bmN0aW9uXG5cdFx0fTtcblx0fVxuXG5cdHRhYmxlQVBJLmFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4ge1xuXHRcdGlmIChhY3Rpb24uaXNBPEFjdGlvbj4oXCJzYXAuZmUubWFjcm9zLnRhYmxlLkFjdGlvblwiKSB8fCBhY3Rpb24uaXNBPEFjdGlvbk92ZXJyaWRlPihcInNhcC5mZS5tYWNyb3MudGFibGUuQWN0aW9uT3ZlcnJpZGVcIikpIHtcblx0XHRcdC8vIEFjdGlvbiBvciBBY3Rpb25PdmVycmlkZVxuXHRcdFx0YWRkQWN0aW9uVG9FeHRyYU1hbmlmZXN0KGFjdGlvbik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGFjdGlvbnNTZXR0aW5ncyA9IGV4dHJhTWFuaWZlc3RTZXR0aW5ncy5hY3Rpb25zITtcblx0XHRcdGNvbnN0IGtleSA9IGFjdGlvbi5rZXk7XG5cdFx0XHRhY3Rpb25zU2V0dGluZ3Nba2V5XSA9IHtcblx0XHRcdFx0cG9zaXRpb246IHtcblx0XHRcdFx0XHRwbGFjZW1lbnQ6IChhY3Rpb24ucGxhY2VtZW50ID8/IFwiQWZ0ZXJcIikgYXMgUGxhY2VtZW50LFxuXHRcdFx0XHRcdGFuY2hvcjogYWN0aW9uLmFuY2hvclxuXHRcdFx0XHR9LFxuXHRcdFx0XHRtZW51OiBhY3Rpb24uYWN0aW9ucy5tYXAoKHN1YkFjdGlvbikgPT4gc3ViQWN0aW9uLmtleSlcblx0XHRcdH07XG5cdFx0XHRpZiAoYWN0aW9uLmlzQTxBY3Rpb25Hcm91cD4oXCJzYXAuZmUubWFjcm9zLnRhYmxlLkFjdGlvbkdyb3VwXCIpKSB7XG5cdFx0XHRcdGFjdGlvbnNTZXR0aW5nc1trZXldID0ge1xuXHRcdFx0XHRcdC4uLmFjdGlvbnNTZXR0aW5nc1trZXldLFxuXHRcdFx0XHRcdHRleHQ6IGFjdGlvbi50ZXh0LFxuXHRcdFx0XHRcdGRlZmF1bHRBY3Rpb246IGFjdGlvbi5kZWZhdWx0QWN0aW9uLFxuXHRcdFx0XHRcdF9fbm9XcmFwOiB0cnVlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0XHRhY3Rpb24uYWN0aW9ucy5mb3JFYWNoKChzdWJBY3Rpb24pID0+IHtcblx0XHRcdFx0YWRkQWN0aW9uVG9FeHRyYU1hbmlmZXN0KHN1YkFjdGlvbik7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0pO1xufVxuXG4vKipcbiAqIEFkZHMgdGhlIHNsb3QgYWN0aW9uT3ZlcmZsb3dHcm91cHMgdG8gdGhlIGV4dHJhIG1hbmlmZXN0IHNldHRpbmdzLlxuICogQHBhcmFtIHRhYmxlQVBJXG4gKiBAcGFyYW0gZXh0cmFNYW5pZmVzdFNldHRpbmdzXG4gKi9cbmZ1bmN0aW9uIGFkZFNsb3RPdmVyZmxvd0dyb3Vwc1RvRXh0cmFNYW5pZmVzdCh0YWJsZUFQSTogVGFibGVBUEksIGV4dHJhTWFuaWZlc3RTZXR0aW5nczogVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb24pOiB2b2lkIHtcblx0dGFibGVBUEkuYWN0aW9uT3ZlcmZsb3dHcm91cHM/LmZvckVhY2goKG92ZXJmbG93R3JvdXApID0+IHtcblx0XHRleHRyYU1hbmlmZXN0U2V0dGluZ3Mub3ZlcmZsb3dHcm91cHMhW292ZXJmbG93R3JvdXAub3ZlcmZsb3dHcm91cF0gPSB7XG5cdFx0XHRzaG93U2VwYXJhdG9yOiBvdmVyZmxvd0dyb3VwLnNob3dTZXBhcmF0b3IgPz8gdHJ1ZVxuXHRcdH07XG5cdH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztFQXNDTyxTQUFTQSxxQkFBcUJBLENBQUNDLFFBQWtCLEVBQXNCO0lBQzdFLE1BQU1DLEtBQUssR0FBR0QsUUFBUSxDQUFDRSxTQUFTLENBQUMsQ0FBQztJQUNsQyxNQUFNQyxTQUFTLEdBQUdGLEtBQUssRUFBRUcsWUFBWSxDQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDSCxLQUFLLElBQUksQ0FBQ0UsU0FBUyxFQUFFO01BQ3pCRSxHQUFHLENBQUNDLEtBQUssQ0FBQyxpRkFBaUYsQ0FBQztNQUM1RixNQUFNLElBQUlDLEtBQUssQ0FBQyxpRkFBaUYsQ0FBQztJQUNuRztJQUNBLE1BQU1DLGVBQWUsR0FBR0wsU0FBUyxDQUFDTSxvQkFBb0IsQ0FBQ1QsUUFBUSxDQUFDVSxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLE1BQU1DLGtCQUFrQixHQUFHUixTQUFTLENBQUNNLG9CQUFvQixDQUFDVCxRQUFRLENBQUNZLFdBQVcsQ0FBQztJQUMvRSxJQUFJLENBQUNKLGVB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
|
|
@@ -64,6 +64,7 @@ export function createTableDefinition(tableAPI: TableAPI): TableVisualization {
|
|
|
64
64
|
const tableSettings = tableAPI.getSettingsForManifest();
|
|
65
65
|
|
|
66
66
|
const extraManifestSettings: TableManifestConfiguration = {
|
|
67
|
+
overflowGroups: {},
|
|
67
68
|
actions: {},
|
|
68
69
|
columns: {},
|
|
69
70
|
tableSettings
|
|
@@ -72,6 +73,7 @@ export function createTableDefinition(tableAPI: TableAPI): TableVisualization {
|
|
|
72
73
|
// Process custom actions and columns
|
|
73
74
|
addSlotColumnsToExtraManifest(tableAPI, extraManifestSettings);
|
|
74
75
|
addSlotActionsToExtraManifest(tableAPI, extraManifestSettings);
|
|
76
|
+
addSlotOverflowGroupsToExtraManifest(tableAPI, extraManifestSettings);
|
|
75
77
|
|
|
76
78
|
const extraParams: Record<string, unknown> = {};
|
|
77
79
|
extraParams[visualizationPath] = extraManifestSettings;
|
|
@@ -247,14 +249,15 @@ function addSlotActionsToExtraManifest(tableAPI: TableAPI, extraManifestSettings
|
|
|
247
249
|
enabled: action.enabled,
|
|
248
250
|
isAIOperation: action.isAIOperation,
|
|
249
251
|
priority: action.priority,
|
|
250
|
-
group: action.group ?? 0 // Default group to 0 if not defined
|
|
252
|
+
group: action.group ?? 0, // Default group to 0 if not defined
|
|
253
|
+
overflowGroup: action.overflowGroup
|
|
251
254
|
};
|
|
252
255
|
if (action.isA<Action>("sap.fe.macros.table.Action")) {
|
|
253
256
|
actions[key] = {
|
|
254
257
|
...actions[key],
|
|
255
258
|
text: action.text,
|
|
256
259
|
__noWrap: true,
|
|
257
|
-
press: "
|
|
260
|
+
press: "someHandler", // The real handler will be triggered by firing the event on the Action object
|
|
258
261
|
requiresSelection: action.requiresSelection
|
|
259
262
|
};
|
|
260
263
|
return;
|
|
@@ -299,3 +302,16 @@ function addSlotActionsToExtraManifest(tableAPI: TableAPI, extraManifestSettings
|
|
|
299
302
|
}
|
|
300
303
|
});
|
|
301
304
|
}
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Adds the slot actionOverflowGroups to the extra manifest settings.
|
|
308
|
+
* @param tableAPI
|
|
309
|
+
* @param extraManifestSettings
|
|
310
|
+
*/
|
|
311
|
+
function addSlotOverflowGroupsToExtraManifest(tableAPI: TableAPI, extraManifestSettings: TableManifestConfiguration): void {
|
|
312
|
+
tableAPI.actionOverflowGroups?.forEach((overflowGroup) => {
|
|
313
|
+
extraManifestSettings.overflowGroups![overflowGroup.overflowGroup] = {
|
|
314
|
+
showSeparator: overflowGroup.showSeparator ?? true
|
|
315
|
+
};
|
|
316
|
+
});
|
|
317
|
+
}
|