@sapui5/sap.fe.macros 1.138.0 → 1.140.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 +269 -0
- package/src/sap/fe/macros/Breadcrumbs.tsx +243 -0
- package/src/sap/fe/macros/CommonHelper.js +2 -2
- package/src/sap/fe/macros/CommonHelper.ts +1 -1
- package/src/sap/fe/macros/Field.js +85 -58
- package/src/sap/fe/macros/Field.ts +104 -60
- package/src/sap/fe/macros/FooterContent.js +44 -11
- package/src/sap/fe/macros/FooterContent.tsx +48 -9
- package/src/sap/fe/macros/FormElement.js +2 -2
- package/src/sap/fe/macros/FormElement.ts +1 -2
- package/src/sap/fe/macros/MessageButton.js +1 -2
- package/src/sap/fe/macros/MessageButton.tsx +0 -1
- package/src/sap/fe/macros/MultiValueField.js +17 -6
- package/src/sap/fe/macros/MultiValueField.tsx +7 -4
- package/src/sap/fe/macros/RichTextEditor.js +30 -5
- package/src/sap/fe/macros/RichTextEditor.tsx +34 -6
- package/src/sap/fe/macros/Share.js +85 -40
- package/src/sap/fe/macros/Share.tsx +42 -1
- package/src/sap/fe/macros/Status.js +226 -0
- package/src/sap/fe/macros/Status.tsx +192 -0
- package/src/sap/fe/macros/ValueHelp.js +4 -29
- package/src/sap/fe/macros/ValueHelp.tsx +2 -43
- package/src/sap/fe/macros/ai/EasyFillButton.js +10 -4
- package/src/sap/fe/macros/ai/EasyFillButton.tsx +8 -1
- package/src/sap/fe/macros/ai/EasyFillDialog.js +25 -10
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +32 -23
- package/src/sap/fe/macros/ai/EasyFilterBar.js +123 -114
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +140 -124
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +11 -5
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +14 -5
- package/src/sap/fe/macros/ai/SummarizationButton.js +2 -2
- package/src/sap/fe/macros/ai/SummarizationButton.tsx +1 -1
- package/src/sap/fe/macros/chart/ChartDelegate.js +4 -4
- package/src/sap/fe/macros/chart/ChartDelegate.ts +3 -3
- package/src/sap/fe/macros/chart/ChartHelper.js +1 -2
- package/src/sap/fe/macros/chart/ChartHelper.ts +0 -1
- package/src/sap/fe/macros/chart/ChartRuntime.js +1 -2
- package/src/sap/fe/macros/chart/ChartRuntime.ts +0 -1
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +20 -6
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +16 -8
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +3 -1
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +2 -0
- package/src/sap/fe/macros/controls/FieldWrapper.js +9 -3
- package/src/sap/fe/macros/controls/FieldWrapper.ts +11 -2
- package/src/sap/fe/macros/controls/FilterBar.js +49 -2
- package/src/sap/fe/macros/controls/FilterBar.ts +55 -1
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +2 -2
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
- package/src/sap/fe/macros/controls/RequiredFlexBox.js +62 -0
- package/src/sap/fe/macros/controls/RequiredFlexBox.tsx +20 -0
- package/src/sap/fe/macros/controls/filterbar/VisualFilter.js +21 -11
- package/src/sap/fe/macros/controls/filterbar/VisualFilter.ts +25 -11
- package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.js +11 -2
- package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.ts +12 -1
- package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.js +18 -1
- package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.ts +20 -0
- package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
- package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +43 -4
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.js +39 -2
- package/src/sap/fe/macros/designtime/Designtime.helper.ts +39 -0
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +15 -4
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +5 -0
- package/src/sap/fe/macros/field/FieldBaseDelegate.js +20 -8
- package/src/sap/fe/macros/field/FieldBaseDelegate.ts +34 -9
- package/src/sap/fe/macros/field/FieldFormatOptions.js +73 -44
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +20 -2
- package/src/sap/fe/macros/field/FieldRuntime.js +1 -2
- package/src/sap/fe/macros/field/FieldRuntime.ts +0 -1
- package/src/sap/fe/macros/filter/FilterUtils.js +3 -5
- package/src/sap/fe/macros/filter/FilterUtils.ts +2 -4
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +8 -2
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +2 -5
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +8 -8
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +8 -8
- package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.js +3 -1
- package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.ts +2 -0
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +1 -1
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +1 -1
- package/src/sap/fe/macros/form/Form.js +1 -4
- package/src/sap/fe/macros/form/Form.tsx +0 -3
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -2
- package/src/sap/fe/macros/form/FormContainer.block.js +1 -2
- package/src/sap/fe/macros/form/FormContainer.block.ts +0 -1
- package/src/sap/fe/macros/form/FormContainer.fragment.xml +40 -0
- package/src/sap/fe/macros/form/FormContainerAPI.js +14 -16
- package/src/sap/fe/macros/form/FormContainerAPI.ts +13 -15
- package/src/sap/fe/macros/form/FormDelegate.js +20 -1
- package/src/sap/fe/macros/form/FormDelegate.ts +25 -0
- package/src/sap/fe/macros/form/FormHelper.js +1 -2
- package/src/sap/fe/macros/form/FormHelper.ts +0 -1
- package/src/sap/fe/macros/formatters/TableFormatter.js +10 -1
- package/src/sap/fe/macros/formatters/TableFormatter.ts +14 -5
- package/src/sap/fe/macros/fpm/CustomFragment.block.js +1 -2
- package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
- package/src/sap/fe/macros/inlineEdit/InlineEdit.js +15 -3
- package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +14 -2
- package/src/sap/fe/macros/internal/ActionCommand.block.js +1 -2
- package/src/sap/fe/macros/internal/ActionCommand.block.ts +0 -1
- package/src/sap/fe/macros/internal/DataPoint.js +2 -1
- package/src/sap/fe/macros/internal/DataPoint.tsx +1 -0
- package/src/sap/fe/macros/internal/DataPointFormatOptions.js +11 -2
- package/src/sap/fe/macros/internal/DataPointFormatOptions.ts +3 -0
- package/src/sap/fe/macros/internal/FilterField.block.js +10 -2
- package/src/sap/fe/macros/internal/FilterField.block.ts +11 -1
- package/src/sap/fe/macros/internal/field/CheckBoxGroup.fragment.xml +25 -0
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +51 -13
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +53 -6
- package/src/sap/fe/macros/internal/field/EditStyle.js +5 -1
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +4 -0
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +9 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +11 -0
- package/src/sap/fe/macros/internal/field/FieldStyles.js +1 -1
- package/src/sap/fe/macros/internal/field/FieldStyles.tsx +2 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +46 -8
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +60 -6
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +38 -2
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +37 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +2 -1
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +16 -5
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +21 -9
- package/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +1 -0
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +7 -2
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +7 -3
- package/src/sap/fe/macros/messagebundle.properties +42 -32
- package/src/sap/fe/macros/messagebundle_ar.properties +12 -4
- package/src/sap/fe/macros/messagebundle_bg.properties +11 -3
- package/src/sap/fe/macros/messagebundle_ca.properties +15 -7
- package/src/sap/fe/macros/messagebundle_cnr.properties +12 -4
- package/src/sap/fe/macros/messagebundle_cs.properties +10 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +12 -4
- package/src/sap/fe/macros/messagebundle_da.properties +11 -3
- package/src/sap/fe/macros/messagebundle_de.properties +18 -10
- package/src/sap/fe/macros/messagebundle_el.properties +13 -5
- package/src/sap/fe/macros/messagebundle_en.properties +16 -8
- package/src/sap/fe/macros/messagebundle_en_GB.properties +16 -8
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +16 -8
- package/src/sap/fe/macros/messagebundle_es.properties +13 -5
- package/src/sap/fe/macros/messagebundle_es_MX.properties +14 -6
- package/src/sap/fe/macros/messagebundle_et.properties +13 -5
- package/src/sap/fe/macros/messagebundle_fi.properties +14 -6
- package/src/sap/fe/macros/messagebundle_fr.properties +14 -6
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +15 -7
- package/src/sap/fe/macros/messagebundle_hi.properties +11 -3
- package/src/sap/fe/macros/messagebundle_hr.properties +11 -3
- package/src/sap/fe/macros/messagebundle_hu.properties +10 -2
- package/src/sap/fe/macros/messagebundle_id.properties +18 -10
- package/src/sap/fe/macros/messagebundle_it.properties +10 -2
- package/src/sap/fe/macros/messagebundle_iw.properties +10 -2
- package/src/sap/fe/macros/messagebundle_ja.properties +13 -5
- package/src/sap/fe/macros/messagebundle_kk.properties +15 -7
- package/src/sap/fe/macros/messagebundle_ko.properties +10 -2
- package/src/sap/fe/macros/messagebundle_lt.properties +11 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +12 -4
- package/src/sap/fe/macros/messagebundle_mk.properties +12 -4
- package/src/sap/fe/macros/messagebundle_ms.properties +14 -6
- package/src/sap/fe/macros/messagebundle_nl.properties +13 -5
- package/src/sap/fe/macros/messagebundle_no.properties +12 -4
- package/src/sap/fe/macros/messagebundle_pl.properties +12 -4
- package/src/sap/fe/macros/messagebundle_pt.properties +13 -5
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -4
- package/src/sap/fe/macros/messagebundle_ro.properties +12 -4
- package/src/sap/fe/macros/messagebundle_ru.properties +13 -5
- package/src/sap/fe/macros/messagebundle_sh.properties +12 -4
- package/src/sap/fe/macros/messagebundle_sk.properties +11 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +12 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +12 -4
- package/src/sap/fe/macros/messagebundle_sv.properties +11 -3
- package/src/sap/fe/macros/messagebundle_th.properties +11 -3
- package/src/sap/fe/macros/messagebundle_tr.properties +10 -2
- package/src/sap/fe/macros/messagebundle_uk.properties +17 -9
- package/src/sap/fe/macros/messagebundle_vi.properties +12 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +11 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -4
- package/src/sap/fe/macros/messages/MessageButton.js +55 -36
- package/src/sap/fe/macros/messages/MessageButton.ts +64 -39
- package/src/sap/fe/macros/messages/MessagePopover.js +2 -2
- package/src/sap/fe/macros/messages/MessagePopover.ts +4 -4
- package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -2
- package/src/sap/fe/macros/microchart/MicroChartContainer.ts +1 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +0 -1
- package/src/sap/fe/macros/share/ShareAPI.js +4 -29
- package/src/sap/fe/macros/share/ShareAPI.ts +1 -32
- package/src/sap/fe/macros/situations/SituationsPopover.js +3 -1
- package/src/sap/fe/macros/situations/SituationsPopover.ts +2 -0
- package/src/sap/fe/macros/table/Action.js +24 -2
- package/src/sap/fe/macros/table/Action.ts +13 -0
- package/src/sap/fe/macros/table/ActionGroup.js +24 -2
- package/src/sap/fe/macros/table/ActionGroup.ts +13 -0
- package/src/sap/fe/macros/table/ActionGroupOverride.js +24 -2
- package/src/sap/fe/macros/table/ActionGroupOverride.ts +13 -0
- package/src/sap/fe/macros/table/ActionOverride.js +24 -2
- package/src/sap/fe/macros/table/ActionOverride.ts +13 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +73 -12
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +69 -13
- package/src/sap/fe/macros/table/Column.js +3 -3
- package/src/sap/fe/macros/table/Column.ts +2 -2
- package/src/sap/fe/macros/table/MdcTableTemplate.js +20 -8
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +36 -7
- package/src/sap/fe/macros/table/QuickFilterSelector.js +35 -14
- package/src/sap/fe/macros/table/QuickFilterSelector.tsx +22 -3
- package/src/sap/fe/macros/table/Table.block.js +137 -108
- package/src/sap/fe/macros/table/Table.block.tsx +29 -2
- package/src/sap/fe/macros/table/TableAPI.js +143 -133
- package/src/sap/fe/macros/table/TableAPI.ts +5 -1
- package/src/sap/fe/macros/table/TableDefinition.js +4 -2
- package/src/sap/fe/macros/table/TableDefinition.ts +3 -1
- package/src/sap/fe/macros/table/TableHelper.js +1 -2
- package/src/sap/fe/macros/table/TableHelper.ts +0 -1
- package/src/sap/fe/macros/table/TableRuntime.js +26 -7
- package/src/sap/fe/macros/table/TableRuntime.ts +33 -5
- package/src/sap/fe/macros/table/Utils.js +6 -2
- package/src/sap/fe/macros/table/Utils.ts +5 -1
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +25 -20
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +25 -24
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/designtime/Table.designtime.js +3 -1
- package/src/sap/fe/macros/table/designtime/Table.designtime.ts +2 -0
- package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.js +3 -1
- package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.ts +2 -1
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -1
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +1 -0
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +8 -1
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +10 -0
- package/src/sap/fe/macros/table/mixin/TableSharing.js +3 -2
- package/src/sap/fe/macros/table/mixin/TableSharing.ts +9 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +20 -6
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +36 -14
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +95 -7
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +93 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +16 -5
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +18 -4
|
@@ -78,6 +78,7 @@ import OverflowToolbarLayoutData from "sap/m/OverflowToolbarLayoutData";
|
|
|
78
78
|
import type { SegmentedButton$SelectionChangeEvent } from "sap/m/SegmentedButton";
|
|
79
79
|
import SegmentedButton from "sap/m/SegmentedButton";
|
|
80
80
|
import SegmentedButtonItem from "sap/m/SegmentedButtonItem";
|
|
81
|
+
import type { OverflowToolbarPriority } from "sap/m/library";
|
|
81
82
|
import Device from "sap/ui/Device";
|
|
82
83
|
import type { CommandExecution$ExecuteEvent } from "sap/ui/core/CommandExecution";
|
|
83
84
|
import CustomData from "sap/ui/core/CustomData";
|
|
@@ -127,6 +128,8 @@ type CustomToolbarMenuAction = {
|
|
|
127
128
|
buttonMode?: string;
|
|
128
129
|
defaultAction?: string;
|
|
129
130
|
actions?: CustomAction;
|
|
131
|
+
priority?: OverflowToolbarPriority;
|
|
132
|
+
group?: number;
|
|
130
133
|
};
|
|
131
134
|
|
|
132
135
|
enum personalizationValues {
|
|
@@ -1113,7 +1116,9 @@ function getCustomActions(action: CustomAndAction, chartContext: Context, chartB
|
|
|
1113
1116
|
useDefaultActionOnly: DefaultActionHandler.getUseDefaultActionOnly(action),
|
|
1114
1117
|
buttonMode: DefaultActionHandler.getButtonMode(action),
|
|
1115
1118
|
defaultAction: undefined,
|
|
1116
|
-
actions: action
|
|
1119
|
+
actions: action,
|
|
1120
|
+
priority: action.priority,
|
|
1121
|
+
group: action.group
|
|
1117
1122
|
},
|
|
1118
1123
|
chartContext,
|
|
1119
1124
|
chartBlock
|
|
@@ -1177,7 +1182,8 @@ function getActionToolbarMenuAction(
|
|
|
1177
1182
|
icon={isAIOperation ? aiIcon : undefined}
|
|
1178
1183
|
>
|
|
1179
1184
|
{{
|
|
1180
|
-
menu: <Menu>{aMenuItems}</Menu
|
|
1185
|
+
menu: <Menu>{aMenuItems}</Menu>,
|
|
1186
|
+
layoutData: <OverflowToolbarLayoutData priority={props.priority} group={props.group} />
|
|
1181
1187
|
}}
|
|
1182
1188
|
</MenuButton>
|
|
1183
1189
|
</ActionToolbarAction>
|
|
@@ -1206,7 +1212,8 @@ function getAction(action: BaseAction | CustomAction, chartContext: Context, isM
|
|
|
1206
1212
|
icon={action?.isAIOperation === true ? aiIcon : undefined}
|
|
1207
1213
|
>
|
|
1208
1214
|
{{
|
|
1209
|
-
menu: <Menu>{menuItems}</Menu
|
|
1215
|
+
menu: <Menu>{menuItems}</Menu>,
|
|
1216
|
+
layoutData: <OverflowToolbarLayoutData priority={action.priority} group={action.group} />
|
|
1210
1217
|
}}
|
|
1211
1218
|
</MenuButton>
|
|
1212
1219
|
</ActionToolbarAction>
|
|
@@ -1358,7 +1365,11 @@ function buildAction(
|
|
|
1358
1365
|
enabled={toolbarAction.enabled}
|
|
1359
1366
|
visible={toolbarAction.visible}
|
|
1360
1367
|
icon={action.isAIOperation === true ? aiIcon : undefined}
|
|
1361
|
-
|
|
1368
|
+
>
|
|
1369
|
+
{{
|
|
1370
|
+
layoutData: <OverflowToolbarLayoutData priority={action.priority} group={action.group} />
|
|
1371
|
+
}}
|
|
1372
|
+
</Button>
|
|
1362
1373
|
</ActionToolbarAction>
|
|
1363
1374
|
);
|
|
1364
1375
|
}
|
|
@@ -1676,7 +1687,6 @@ function initialise(
|
|
|
1676
1687
|
chartBlock._blockActions = [];
|
|
1677
1688
|
chartBlock._commandActions = [];
|
|
1678
1689
|
modifyIdentifiers(chartBlock);
|
|
1679
|
-
|
|
1680
1690
|
if (chartBlock._chart) {
|
|
1681
1691
|
chartBlock.chartDefinition = createChartDefinition(
|
|
1682
1692
|
chartBlock,
|
|
@@ -1708,9 +1718,7 @@ function initialise(
|
|
|
1708
1718
|
}
|
|
1709
1719
|
checkPersonalizationInChartProperties(personalization, chartBlock);
|
|
1710
1720
|
chartBlock.visible = chartBlock.chartDefinition.visible;
|
|
1711
|
-
|
|
1712
|
-
contextPath = contextPath[contextPath.length - 1] === "/" ? contextPath.slice(0, -1) : contextPath;
|
|
1713
|
-
chartBlock.draftSupported = ModelHelper.isDraftSupported(chartBlock._metaModel, contextPath);
|
|
1721
|
+
chartBlock.draftSupported = ModelHelper.isMetaPathDraftSupported(metaContextPath!);
|
|
1714
1722
|
chartBlock._chartType = ChartHelper.formatChartType(chartBlock._chart.ChartType);
|
|
1715
1723
|
|
|
1716
1724
|
const operationAvailableMap = ChartHelper.getOperationAvailableMap(chartBlock._chart, {
|
|
@@ -18,6 +18,8 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingB
|
|
|
18
18
|
* On change of the main properties you will be able to recreate the content.
|
|
19
19
|
* @public
|
|
20
20
|
* @experimental
|
|
21
|
+
* @deprecated
|
|
22
|
+
* @deprecatedsince 1.140
|
|
21
23
|
*/
|
|
22
24
|
let BuildingBlockWithTemplating = (_dec = defineUI5Class("sap.fe.macros.controls.BuildingBlockWithTemplating"), _dec(_class = /*#__PURE__*/function (_BuildingBlock) {
|
|
23
25
|
function BuildingBlockWithTemplating() {
|
|
@@ -179,4 +181,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingB
|
|
|
179
181
|
_exports = BuildingBlockWithTemplating;
|
|
180
182
|
return _exports;
|
|
181
183
|
}, false);
|
|
182
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdWlsZGluZ0Jsb2NrV2l0aFRlbXBsYXRpbmciLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfY2xhc3MiLCJfQnVpbGRpbmdCbG9jayIsImFwcGx5IiwiYXJndW1lbnRzIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJjb250ZW50IiwiX2NyZWF0ZUNvbnRlbnQiLCJvd25lciIsIl9nZXRPd25lciIsImlzQSIsImNvbnRlbnRDcmVhdGVkIiwiY3JlYXRlQ29udGVudCIsImNyZWF0ZVByb3h5TWV0aG9kcyIsIm1ldGhvZHMiLCJfdGhpcyIsIm1ldGhvZCIsIl9sZW4iLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5Iiwic2V0UHJvcGVydHkiLCJwcm9wZXJ0eUtleSIsInByb3BlcnR5VmFsdWUiLCJiU3VwcHJlc3NJbnZhbGlkYXRlIiwiX2FwcGx5aW5nU2V0dGluZ3MiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0TWV0YWRhdGEiLCJnZXRQcm9wZXJ0aWVzIiwiaW5jbHVkZXMiLCJjYWxsIiwic2V0QWdncmVnYXRpb24iLCJhZ2dyZWdhdGlvbk9iamVjdCIsImdldEFnZ3JlZ2F0aW9ucyIsInJlbW92ZUFnZ3JlZ2F0aW9uIiwiYWdncmVnYXRpb25OYW1lIiwib2JqZWN0Iiwic3VwcHJlc3NJbnZhbGlkYXRlIiwicmVtb3ZlZCIsImFkZEFnZ3JlZ2F0aW9uIiwiaW5zZXJ0QWdncmVnYXRpb24iLCJpbmRleCIsInByZXByb2Nlc3NvckNvbnRleHQiLCJnZXRQcmVwcm9jZXNzb3JDb250ZXh0IiwibW9kZWxzIiwiYmluZGluZ0NvbnRleHRzIiwibWV0YWRhdGEiLCJiYk1ldGFkYXRhIiwiYnVpbGRpbmdCbG9ja01ldGFkYXRhIiwibmFtZXNwYWNlIiwicHVibGljTmFtZXNwYWNlIiwibmFtZSIsImZxbk5hbWUiLCJnZXROYW1lIiwicmVwbGFjZUFsbCIsInhtbFByb3BlcnRpZXMiLCJ4bWxBZ2dyZWdhdGlvbnMiLCJhbGxBZ2dyZWdhdGlvbnMiLCJhZ2dyZWdhdGlvbnMiLCJwcm9wZXJ0aWVzS2V5IiwicHJvcGVydGllcyIsInByb3BlcnR5VmFsdWVPYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsImdldE1vZGVsIiwibW9kZWwiLCJnZXRPYmplY3QiLCJwYXRoIiwidHlwZSIsInB1c2giLCJ4bWwiLCJ4bWxBZ2dyZWdhdGlvbiIsInNlcmlhbGl6ZSIsImlzQ29udGV4dCIsImdldFBhdGgiLCJhZ2dyZWdhdGlvbktleSIsIl9hZ2dyZWdhdGlvblZhbHVlIiwiaXNBcnJheSIsImFnZ3JlZ2F0aW9uQ2hpbGRyZW4iLCJhZ2dyZWdhdGlvbkNoaWxkIiwiam9pbiIsImZyYWdtZW50IiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsInBhcnNlWE1MU3RyaW5nIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJkZXN0cm95IiwicnVuQXNPd25lciIsIkZyYWdtZW50IiwibG9hZCIsImRlZmluaXRpb24iLCJjb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2xsZXIiLCJCdWlsZGluZ0Jsb2NrIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCdWlsZGluZ0Jsb2NrV2l0aFRlbXBsYXRpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgVUk1Q29udHJvbE1ldGFkYXRhRGVmaW5pdGlvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBCdWlsZGluZ0Jsb2NrTWV0YWRhdGEgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrU3VwcG9ydFwiO1xuaW1wb3J0IHsgcGFyc2VYTUxTdHJpbmcsIHhtbCB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IHsgaXNDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuaW1wb3J0IHR5cGUgQnVpbGRpbmdCbG9ja09iamVjdFByb3BlcnR5IGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL0J1aWxkaW5nQmxvY2tPYmplY3RQcm9wZXJ0eVwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgVUk1RWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IEZyYWdtZW50IGZyb20gXCJzYXAvdWkvY29yZS9GcmFnbWVudFwiO1xuaW1wb3J0IFhNTFByZXByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvdXRpbC9YTUxQcmVwcm9jZXNzb3JcIjtcblxuLyoqXG4gKiBVc2luZyB0aGlzIGNsYXNzIHlvdSBjYW4gZGVmaW5lIGEgYnVpbGRpbmcgYmxvY2sgdGhhdCB3aWxsIG1hbmFnZSBhbmQgcmVuZGVyIGEgdGVtcGxhdGluZyBiYXNlZCBidWlsZGluZyBibG9jay5cbiAqIE9uIGNoYW5nZSBvZiB0aGUgbWFpbiBwcm9wZXJ0aWVzIHlvdSB3aWxsIGJlIGFibGUgdG8gcmVjcmVhdGUgdGhlIGNvbnRlbnQuXG4gKiBAcHVibGljXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuQnVpbGRpbmdCbG9ja1dpdGhUZW1wbGF0aW5nXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCdWlsZGluZ0Jsb2NrV2l0aFRlbXBsYXRpbmcgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrPENvbnRyb2w+IHtcblx0cHVibGljIGNvbnRlbnRDcmVhdGVkPzogUHJvbWlzZTx2b2lkPjtcblxuXHRwcml2YXRlIG1ldGFkYXRhITogVUk1Q29udHJvbE1ldGFkYXRhRGVmaW5pdGlvbjtcblxuXHRvbk1ldGFkYXRhQXZhaWxhYmxlKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLl9jcmVhdGVDb250ZW50KCk7XG5cdFx0fVxuXHR9XG5cblx0X2NyZWF0ZUNvbnRlbnQoKTogdm9pZCB7XG5cdFx0Y29uc3Qgb3duZXIgPSB0aGlzLl9nZXRPd25lcigpO1xuXHRcdGlmIChvd25lcj8uaXNBPFRlbXBsYXRlQ29tcG9uZW50PihcInNhcC5mZS5jb3JlLlRlbXBsYXRlQ29tcG9uZW50XCIpKSB7XG5cdFx0XHR0aGlzLmNvbnRlbnRDcmVhdGVkID0gdGhpcy5jcmVhdGVDb250ZW50KG93bmVyIGFzIEVuaGFuY2VXaXRoVUk1PFRlbXBsYXRlQ29tcG9uZW50Pik7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBwcm94eSBtZXRob2RzIHRvIGZvcndhcmQgY2FsbHMgdG8gdGhlIGNvbnRlbnQgZm9yIHRoZSBnaXZlbiBtZXRob2RzLlxuXHQgKiBAcGFyYW0gbWV0aG9kcyBUaGUgbWV0aG9kIHRvIHByb3h5XG5cdCAqL1xuXHRjcmVhdGVQcm94eU1ldGhvZHMobWV0aG9kczogc3RyaW5nW10pOiB2b2lkIHtcblx0XHRmb3IgKGNvbnN0IG1ldGhvZCBvZiBtZXRob2RzKSB7XG5cdFx0XHQodGhpcyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uPilbbWV0aG9kXSA9ICguLi5hcmdzOiB1bmtub3duW10pOiB1bmtub3duID0+IHtcblx0XHRcdFx0cmV0dXJuICh0aGlzLmNvbnRlbnQgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCBGdW5jdGlvbj4pPy5bbWV0aG9kXT8uKC4uLmFyZ3MpO1xuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHRzZXRQcm9wZXJ0eShwcm9wZXJ0eUtleTogc3RyaW5nLCBwcm9wZXJ0eVZhbHVlOiBzdHJpbmcsIGJTdXBwcmVzc0ludmFsaWRhdGU/OiBib29sZWFuKTogdGhpcyB7XG5cdFx0aWYgKFxuXHRcdFx0IXRoaXMuX2FwcGx5aW5nU2V0dGluZ3MgJiZcblx0XHRcdHByb3BlcnR5VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuXHRcdFx0T2JqZWN0LmtleXModGhpcy5nZXRNZXRhZGF0YSgpLmdldFByb3BlcnRpZXMoKSkuaW5jbHVkZXMocHJvcGVydHlLZXkpXG5cdFx0KSB7XG5cdFx0XHRzdXBlci5zZXRQcm9wZXJ0eShwcm9wZXJ0eUtleSwgcHJvcGVydHlWYWx1ZSwgdHJ1ZSk7XG5cdFx0XHR0aGlzLl9jcmVhdGVDb250ZW50KCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN1cGVyLnNldFByb3BlcnR5KHByb3BlcnR5S2V5LCBwcm9wZXJ0eVZhbHVlLCBiU3VwcHJlc3NJbnZhbGlkYXRlKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRzZXRBZ2dyZWdhdGlvbihwcm9wZXJ0eUtleTogc3RyaW5nLCBhZ2dyZWdhdGlvbk9iamVjdDogTWFuYWdlZE9iamVjdCwgYlN1cHByZXNzSW52YWxpZGF0ZT86IGJvb2xlYW4pOiB0aGlzIHtcblx0XHRpZiAoIXRoaXMuX2FwcGx5aW5nU2V0dGluZ3MgJiYgT2JqZWN0LmtleXModGhpcy5nZXRNZXRhZGF0YSgpLmdldEFnZ3JlZ2F0aW9ucygpKS5pbmNsdWRlcyhwcm9wZXJ0eUtleSkpIHtcblx0XHRcdHN1cGVyLnNldEFnZ3JlZ2F0aW9uKHByb3BlcnR5S2V5LCBhZ2dyZWdhdGlvbk9iamVjdCwgdHJ1ZSk7XG5cdFx0XHR0aGlzLl9jcmVhdGVDb250ZW50KCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN1cGVyLnNldEFnZ3JlZ2F0aW9uKHByb3BlcnR5S2V5LCBhZ2dyZWdhdGlvbk9iamVjdCwgYlN1cHByZXNzSW52YWxpZGF0ZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cmVtb3ZlQWdncmVnYXRpb24oXG5cdFx0YWdncmVnYXRpb25OYW1lOiBzdHJpbmcsXG5cdFx0b2JqZWN0OiBNYW5hZ2VkT2JqZWN0IHwgbnVtYmVyIHwgc3RyaW5nLFxuXHRcdHN1cHByZXNzSW52YWxpZGF0ZT86IGJvb2xlYW5cblx0KTogTWFuYWdlZE9iamVjdCB8IG51bGwge1xuXHRcdGxldCByZW1vdmVkOiBNYW5hZ2VkT2JqZWN0IHwgbnVsbDtcblx0XHRpZiAoXG5cdFx0XHQhdGhpcy5fYXBwbHlpbmdTZXR0aW5ncyAmJlxuXHRcdFx0b2JqZWN0ICE9PSB1bmRlZmluZWQgJiZcblx0XHRcdE9iamVjdC5rZXlzKHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRBZ2dyZWdhdGlvbnMoKSkuaW5jbHVkZXMoYWdncmVnYXRpb25OYW1lKVxuXHRcdCkge1xuXHRcdFx0cmVtb3ZlZCA9IHN1cGVyLnJlbW92ZUFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uTmFtZSwgb2JqZWN0LCBzdXBwcmVzc0ludmFsaWRhdGUpO1xuXHRcdFx0dGhpcy5fY3JlYXRlQ29udGVudCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZW1vdmVkID0gc3VwZXIucmVtb3ZlQWdncmVnYXRpb24oYWdncmVnYXRpb25OYW1lLCBvYmplY3QsIHN1cHByZXNzSW52YWxpZGF0ZSk7XG5cdFx0fVxuXHRcdHJldHVybiByZW1vdmVkO1xuXHR9XG5cblx0YWRkQWdncmVnYXRpb24oYWdncmVnYXRpb25OYW1lOiBzdHJpbmcsIG9iamVjdDogTWFuYWdlZE9iamVjdCwgc3VwcHJlc3NJbnZhbGlkYXRlPzogYm9vbGVhbik6IHRoaXMge1xuXHRcdGlmICghdGhpcy5fYXBwbHlpbmdTZXR0aW5ncyAmJiBPYmplY3Qua2V5cyh0aGlzLmdldE1ldGFkYXRhKCkuZ2V0QWdncmVnYXRpb25zKCkpLmluY2x1ZGVzKGFnZ3JlZ2F0aW9uTmFtZSkpIHtcblx0XHRcdHN1cGVyLmFkZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uTmFtZSwgb2JqZWN0LCBzdXBwcmVzc0ludmFsaWRhdGUpO1xuXHRcdFx0dGhpcy5fY3JlYXRlQ29udGVudCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzdXBlci5hZGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbk5hbWUsIG9iamVjdCwgc3VwcHJlc3NJbnZhbGlkYXRlKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRpbnNlcnRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbk5hbWU6IHN0cmluZywgb2JqZWN0OiBNYW5hZ2VkT2JqZWN0LCBpbmRleDogbnVtYmVyLCBzdXBwcmVzc0ludmFsaWRhdGU/OiBib29sZWFuKTogdGhpcyB7XG5cdFx0aWYgKCF0aGlzLl9hcHBseWluZ1NldHRpbmdzICYmIE9iamVjdC5rZXlzKHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRBZ2dyZWdhdGlvbnMoKSkuaW5jbHVkZXMoYWdncmVnYXRpb25OYW1lKSkge1xuXHRcdFx0c3VwZXIuaW5zZXJ0QWdncmVnYXRpb24oYWdncmVnYXRpb25OYW1lLCBvYmplY3QsIGluZGV4LCBzdXBwcmVzc0ludmFsaWRhdGUpO1xuXHRcdFx0dGhpcy5fY3JlYXRlQ29udGVudCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzdXBlci5pbnNlcnRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbk5hbWUsIG9iamVjdCwgaW5kZXgsIHN1cHByZXNzSW52YWxpZGF0ZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0YXN5bmMgY3JlYXRlQ29udGVudChvd25lcjogRW5oYW5jZVdpdGhVSTU8VGVtcGxhdGVDb21wb25lbnQ+KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKHRoaXMuY29udGVudENyZWF0ZWQpIHtcblx0XHRcdGF3YWl0IHRoaXMuY29udGVudENyZWF0ZWQ7XG5cdFx0fVxuXHRcdC8vIE9ubHkgc3BlY2lhbCBidWlsZGluZyBibG9jayB3aWxsIGltcGxlbWVudCB0aGlzXG5cdFx0Y29uc3QgcHJlcHJvY2Vzc29yQ29udGV4dCA9IG93bmVyLmdldFByZXByb2Nlc3NvckNvbnRleHQoKSA/PyB7XG5cdFx0XHRtb2RlbHM6IHt9LFxuXHRcdFx0YmluZGluZ0NvbnRleHRzOiB7fVxuXHRcdH07XG5cblx0XHRjb25zdCBtZXRhZGF0YSA9IHRoaXMuZ2V0TWV0YWRhdGEoKTtcblx0XHRjb25zdCBiYk1ldGFkYXRhID0gdGhpcy5tZXRhZGF0YS5idWlsZGluZ0Jsb2NrTWV0YWRhdGEgYXMgQnVpbGRpbmdCbG9ja01ldGFkYXRhIHwgdW5kZWZpbmVkO1xuXHRcdGlmIChiYk1ldGFkYXRhKSB7XG5cdFx0XHRjb25zdCBuYW1lc3BhY2UgPSBiYk1ldGFkYXRhLnB1YmxpY05hbWVzcGFjZSA/PyBiYk1ldGFkYXRhLm5hbWVzcGFjZTtcblx0XHRcdGNvbnN0IG5hbWUgPSBiYk1ldGFkYXRhLm5hbWU7XG5cdFx0XHRjb25zdCBmcW5OYW1lID0gYCR7bWV0YWRhdGEuZ2V0TmFtZSgpfWAucmVwbGFjZUFsbChcIi5cIiwgXCIvXCIpO1xuXHRcdFx0Y29uc3QgeG1sUHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcblx0XHRcdGNvbnN0IHhtbEFnZ3JlZ2F0aW9uczogc3RyaW5nW10gPSBbXTtcblx0XHRcdGNvbnN0IGFsbEFnZ3JlZ2F0aW9ucyA9IGJiTWV0YWRhdGEuYWdncmVnYXRpb25zO1xuXG5cdFx0XHRmb3IgKGNvbnN0IHByb3BlcnRpZXNLZXkgaW4gYmJNZXRhZGF0YS5wcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdGxldCBwcm9wZXJ0eVZhbHVlID0gdGhpc1twcm9wZXJ0aWVzS2V5IGFzIGtleW9mIHRoaXNdIGFzIHVua25vd247XG5cdFx0XHRcdGxldCBwcm9wZXJ0eVZhbHVlT2JqZWN0ID0gcHJvcGVydHlWYWx1ZSBhcyBCYXNlT2JqZWN0O1xuXHRcdFx0XHRpZiAocHJvcGVydHlWYWx1ZU9iamVjdD8uaGFzT3duUHJvcGVydHk/LihcInBhdGhcIikgJiYgcHJvcGVydHlWYWx1ZU9iamVjdD8uaGFzT3duUHJvcGVydHk/LihcIm1vZGVsXCIpKSB7XG5cdFx0XHRcdFx0cHJvcGVydHlWYWx1ZU9iamVjdCA9IHRoaXMuZ2V0TW9kZWwoKHByb3BlcnR5VmFsdWVPYmplY3QgYXMgUHJvcGVydHlCaW5kaW5nSW5mbykubW9kZWwpPy5nZXRPYmplY3QoXG5cdFx0XHRcdFx0XHQocHJvcGVydHlWYWx1ZU9iamVjdCBhcyBQcm9wZXJ0eUJpbmRpbmdJbmZvKS5wYXRoXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoYmJNZXRhZGF0YS5wcm9wZXJ0aWVzW3Byb3BlcnRpZXNLZXldLnR5cGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdFx0XHRcdHhtbFByb3BlcnRpZXMucHVzaCh4bWxgJHtwcm9wZXJ0aWVzS2V5fT1cIlRISVMuX2ZpcmVFdmVudCgkZXZlbnQsICRjb250cm9sbGVyLCAnJHtwcm9wZXJ0aWVzS2V5fScpXCJgKTtcblx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRwcm9wZXJ0eVZhbHVlT2JqZWN0Py5pc0EgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eVZhbHVlT2JqZWN0LmlzQTxCdWlsZGluZ0Jsb2NrT2JqZWN0UHJvcGVydHk+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5CdWlsZGluZ0Jsb2NrT2JqZWN0UHJvcGVydHlcIilcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0Y29uc3QgeG1sQWdncmVnYXRpb24gPSBwcm9wZXJ0eVZhbHVlT2JqZWN0LnNlcmlhbGl6ZShgZmVCQjoke3Byb3BlcnRpZXNLZXl9YCk7XG5cdFx0XHRcdFx0eG1sQWdncmVnYXRpb25zLnB1c2goeG1sQWdncmVnYXRpb24pO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGJiTWV0YWRhdGEucHJvcGVydGllc1twcm9wZXJ0aWVzS2V5XS50eXBlID09PSBcImFycmF5XCIpIHtcblx0XHRcdFx0XHRhbGxBZ2dyZWdhdGlvbnNbcHJvcGVydGllc0tleV0gPSBiYk1ldGFkYXRhLnByb3BlcnRpZXNbcHJvcGVydGllc0tleV07XG5cdFx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdFx0cHJvcGVydHlWYWx1ZSAhPT0gdW5kZWZpbmVkICYmXG5cdFx0XHRcdFx0cHJvcGVydHlWYWx1ZSAhPT0gbnVsbCAmJlxuXHRcdFx0XHRcdCh0eXBlb2YgcHJvcGVydHlWYWx1ZSAhPT0gXCJvYmplY3RcIiB8fCBPYmplY3Qua2V5cyhwcm9wZXJ0eVZhbHVlKS5sZW5ndGggPiAwKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRpZiAoaXNDb250ZXh0KHByb3BlcnR5VmFsdWUpKSB7XG5cdFx0XHRcdFx0XHRwcm9wZXJ0eVZhbHVlID0gcHJvcGVydHlWYWx1ZS5nZXRQYXRoKCk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChwcm9wZXJ0aWVzS2V5ID09PSBcImlkXCIpIHtcblx0XHRcdFx0XHRcdHhtbFByb3BlcnRpZXMucHVzaCh4bWxgJHtwcm9wZXJ0aWVzS2V5fT1cIiR7cHJvcGVydHlWYWx1ZX0tYmxvY2tcImApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR4bWxQcm9wZXJ0aWVzLnB1c2goeG1sYCR7cHJvcGVydGllc0tleX09XCIke3Byb3BlcnR5VmFsdWV9XCJgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGZvciAoY29uc3QgYWdncmVnYXRpb25LZXkgaW4gYWxsQWdncmVnYXRpb25zKSB7XG5cdFx0XHRcdGNvbnN0IF9hZ2dyZWdhdGlvblZhbHVlID0gdGhpc1thZ2dyZWdhdGlvbktleSBhcyBrZXlvZiB0aGlzXSBhcyB1bmtub3duIGFzIFVJNUVsZW1lbnQgfCBVSTVFbGVtZW50W10gfCBudWxsO1xuXHRcdFx0XHRpZiAoX2FnZ3JlZ2F0aW9uVmFsdWUgJiYgKCFBcnJheS5pc0FycmF5KF9hZ2dyZWdhdGlvblZhbHVlKSB8fCBfYWdncmVnYXRpb25WYWx1ZT8ubGVuZ3RoID4gMCkpIHtcblx0XHRcdFx0XHRjb25zdCBhZ2dyZWdhdGlvbkNoaWxkcmVuOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KF9hZ2dyZWdhdGlvblZhbHVlKSkge1xuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBhZ2dyZWdhdGlvbkNoaWxkIG9mIF9hZ2dyZWdhdGlvblZhbHVlKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChhZ2dyZWdhdGlvbkNoaWxkLmlzQTxCdWlsZGluZ0Jsb2NrT2JqZWN0UHJvcGVydHk+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5CdWlsZGluZ0Jsb2NrT2JqZWN0UHJvcGVydHlcIikpXG5cdFx0XHRcdFx0XHRcdFx0YWdncmVnYXRpb25DaGlsZHJlbi5wdXNoKGFnZ3JlZ2F0aW9uQ2hpbGQuc2VyaWFsaXplKCkpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoX2FnZ3JlZ2F0aW9uVmFsdWUuaXNBPEJ1aWxkaW5nQmxvY2tPYmplY3RQcm9wZXJ0eT4oXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLkJ1aWxkaW5nQmxvY2tPYmplY3RQcm9wZXJ0eVwiKSkge1xuXHRcdFx0XHRcdFx0YWdncmVnYXRpb25DaGlsZHJlbi5wdXNoKF9hZ2dyZWdhdGlvblZhbHVlLnNlcmlhbGl6ZSgpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Y29uc3QgeG1sQWdncmVnYXRpb24gPSBgPGZlQkI6JHthZ2dyZWdhdGlvbktleX0+JHthZ2dyZWdhdGlvbkNoaWxkcmVuLmpvaW4oXCJcXG5cIil9PC9mZUJCOiR7YWdncmVnYXRpb25LZXl9PmA7XG5cblx0XHRcdFx0XHR4bWxBZ2dyZWdhdGlvbnMucHVzaCh4bWxBZ2dyZWdhdGlvbik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGNvbnN0IGZyYWdtZW50ID0gYXdhaXQgWE1MUHJlcHJvY2Vzc29yLnByb2Nlc3MoXG5cdFx0XHRcdHBhcnNlWE1MU3RyaW5nKFxuXHRcdFx0XHRcdHhtbGA8cm9vdD48ZmVCQjoke25hbWV9XG5cdFx0XHR4bWxuczpjb3JlPVwic2FwLnVpLmNvcmVcIlxuXHRcdFx0eG1sbnM6ZmVCQj1cIiR7bmFtZXNwYWNlfVwiXG5cdFx0XHQke3htbFByb3BlcnRpZXMubGVuZ3RoID4gMCA/IHhtbFByb3BlcnRpZXMgOiBcIlwifVxuXHRcdFx0Y29yZTpyZXF1aXJlPVwie1RISVM6ICcke2Zxbk5hbWV9J31cIlxuXHRcdFx0PiR7eG1sQWdncmVnYXRpb25zLmxlbmd0aCA+IDAgPyB4bWxBZ2dyZWdhdGlvbnMgOiBcIlwifTwvZmVCQjoke25hbWV9Pjwvcm9vdD5gLFxuXHRcdFx0XHRcdHRydWVcblx0XHRcdFx0KVswXSxcblx0XHRcdFx0eyBtb2RlbHM6IHt9IH0sXG5cdFx0XHRcdHByZXByb2Nlc3NvckNvbnRleHRcblx0XHRcdCk7XG5cdFx0XHRpZiAoZnJhZ21lbnQuZmlyc3RFbGVtZW50Q2hpbGQpIHtcblx0XHRcdFx0dGhpcy5jb250ZW50Py5kZXN0cm95KCk7XG5cdFx0XHRcdHRoaXMuY29udGVudCA9IGF3YWl0IG93bmVyLnJ1bkFzT3duZXIoYXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBGcmFnbWVudC5sb2FkKHtcblx0XHRcdFx0XHRcdGRlZmluaXRpb246IGZyYWdtZW50LmZpcnN0RWxlbWVudENoaWxkIGFzIEVsZW1lbnQsXG5cdFx0XHRcdFx0XHRjb250cm9sbGVyOiBvd25lci5nZXRSb290Q29udHJvbGxlcigpXG5cdFx0XHRcdFx0fSkgYXMgUHJvbWlzZTxDb250cm9sPjtcblx0XHRc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
|
|
184
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdWlsZGluZ0Jsb2NrV2l0aFRlbXBsYXRpbmciLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfY2xhc3MiLCJfQnVpbGRpbmdCbG9jayIsImFwcGx5IiwiYXJndW1lbnRzIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJjb250ZW50IiwiX2NyZWF0ZUNvbnRlbnQiLCJvd25lciIsIl9nZXRPd25lciIsImlzQSIsImNvbnRlbnRDcmVhdGVkIiwiY3JlYXRlQ29udGVudCIsImNyZWF0ZVByb3h5TWV0aG9kcyIsIm1ldGhvZHMiLCJfdGhpcyIsIm1ldGhvZCIsIl9sZW4iLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5Iiwic2V0UHJvcGVydHkiLCJwcm9wZXJ0eUtleSIsInByb3BlcnR5VmFsdWUiLCJiU3VwcHJlc3NJbnZhbGlkYXRlIiwiX2FwcGx5aW5nU2V0dGluZ3MiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0TWV0YWRhdGEiLCJnZXRQcm9wZXJ0aWVzIiwiaW5jbHVkZXMiLCJjYWxsIiwic2V0QWdncmVnYXRpb24iLCJhZ2dyZWdhdGlvbk9iamVjdCIsImdldEFnZ3JlZ2F0aW9ucyIsInJlbW92ZUFnZ3JlZ2F0aW9uIiwiYWdncmVnYXRpb25OYW1lIiwib2JqZWN0Iiwic3VwcHJlc3NJbnZhbGlkYXRlIiwicmVtb3ZlZCIsImFkZEFnZ3JlZ2F0aW9uIiwiaW5zZXJ0QWdncmVnYXRpb24iLCJpbmRleCIsInByZXByb2Nlc3NvckNvbnRleHQiLCJnZXRQcmVwcm9jZXNzb3JDb250ZXh0IiwibW9kZWxzIiwiYmluZGluZ0NvbnRleHRzIiwibWV0YWRhdGEiLCJiYk1ldGFkYXRhIiwiYnVpbGRpbmdCbG9ja01ldGFkYXRhIiwibmFtZXNwYWNlIiwicHVibGljTmFtZXNwYWNlIiwibmFtZSIsImZxbk5hbWUiLCJnZXROYW1lIiwicmVwbGFjZUFsbCIsInhtbFByb3BlcnRpZXMiLCJ4bWxBZ2dyZWdhdGlvbnMiLCJhbGxBZ2dyZWdhdGlvbnMiLCJhZ2dyZWdhdGlvbnMiLCJwcm9wZXJ0aWVzS2V5IiwicHJvcGVydGllcyIsInByb3BlcnR5VmFsdWVPYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsImdldE1vZGVsIiwibW9kZWwiLCJnZXRPYmplY3QiLCJwYXRoIiwidHlwZSIsInB1c2giLCJ4bWwiLCJ4bWxBZ2dyZWdhdGlvbiIsInNlcmlhbGl6ZSIsImlzQ29udGV4dCIsImdldFBhdGgiLCJhZ2dyZWdhdGlvbktleSIsIl9hZ2dyZWdhdGlvblZhbHVlIiwiaXNBcnJheSIsImFnZ3JlZ2F0aW9uQ2hpbGRyZW4iLCJhZ2dyZWdhdGlvbkNoaWxkIiwiam9pbiIsImZyYWdtZW50IiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsInBhcnNlWE1MU3RyaW5nIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJkZXN0cm95IiwicnVuQXNPd25lciIsIkZyYWdtZW50IiwibG9hZCIsImRlZmluaXRpb24iLCJjb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2xsZXIiLCJCdWlsZGluZ0Jsb2NrIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCdWlsZGluZ0Jsb2NrV2l0aFRlbXBsYXRpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgVUk1Q29udHJvbE1ldGFkYXRhRGVmaW5pdGlvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBCdWlsZGluZ0Jsb2NrTWV0YWRhdGEgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrU3VwcG9ydFwiO1xuaW1wb3J0IHsgcGFyc2VYTUxTdHJpbmcsIHhtbCB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IHsgaXNDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuaW1wb3J0IHR5cGUgQnVpbGRpbmdCbG9ja09iamVjdFByb3BlcnR5IGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL0J1aWxkaW5nQmxvY2tPYmplY3RQcm9wZXJ0eVwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgVUk1RWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IEZyYWdtZW50IGZyb20gXCJzYXAvdWkvY29yZS9GcmFnbWVudFwiO1xuaW1wb3J0IFhNTFByZXByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvdXRpbC9YTUxQcmVwcm9jZXNzb3JcIjtcblxuLyoqXG4gKiBVc2luZyB0aGlzIGNsYXNzIHlvdSBjYW4gZGVmaW5lIGEgYnVpbGRpbmcgYmxvY2sgdGhhdCB3aWxsIG1hbmFnZSBhbmQgcmVuZGVyIGEgdGVtcGxhdGluZyBiYXNlZCBidWlsZGluZyBibG9jay5cbiAqIE9uIGNoYW5nZSBvZiB0aGUgbWFpbiBwcm9wZXJ0aWVzIHlvdSB3aWxsIGJlIGFibGUgdG8gcmVjcmVhdGUgdGhlIGNvbnRlbnQuXG4gKiBAcHVibGljXG4gKiBAZXhwZXJpbWVudGFsXG4gKiBAZGVwcmVjYXRlZFxuICogQGRlcHJlY2F0ZWRzaW5jZSAxLjE0MFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLkJ1aWxkaW5nQmxvY2tXaXRoVGVtcGxhdGluZ1wiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnVpbGRpbmdCbG9ja1dpdGhUZW1wbGF0aW5nIGV4dGVuZHMgQnVpbGRpbmdCbG9jazxDb250cm9sPiB7XG5cdHB1YmxpYyBjb250ZW50Q3JlYXRlZD86IFByb21pc2U8dm9pZD47XG5cblx0cHJpdmF0ZSBtZXRhZGF0YSE6IFVJNUNvbnRyb2xNZXRhZGF0YURlZmluaXRpb247XG5cblx0b25NZXRhZGF0YUF2YWlsYWJsZSgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuY29udGVudCkge1xuXHRcdFx0dGhpcy5fY3JlYXRlQ29udGVudCgpO1xuXHRcdH1cblx0fVxuXG5cdF9jcmVhdGVDb250ZW50KCk6IHZvaWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKTtcblx0XHRpZiAob3duZXI/LmlzQTxUZW1wbGF0ZUNvbXBvbmVudD4oXCJzYXAuZmUuY29yZS5UZW1wbGF0ZUNvbXBvbmVudFwiKSkge1xuXHRcdFx0dGhpcy5jb250ZW50Q3JlYXRlZCA9IHRoaXMuY3JlYXRlQ29udGVudChvd25lciBhcyBFbmhhbmNlV2l0aFVJNTxUZW1wbGF0ZUNvbXBvbmVudD4pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgcHJveHkgbWV0aG9kcyB0byBmb3J3YXJkIGNhbGxzIHRvIHRoZSBjb250ZW50IGZvciB0aGUgZ2l2ZW4gbWV0aG9kcy5cblx0ICogQHBhcmFtIG1ldGhvZHMgVGhlIG1ldGhvZCB0byBwcm94eVxuXHQgKi9cblx0Y3JlYXRlUHJveHlNZXRob2RzKG1ldGhvZHM6IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0Zm9yIChjb25zdCBtZXRob2Qgb2YgbWV0aG9kcykge1xuXHRcdFx0KHRoaXMgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCBGdW5jdGlvbj4pW21ldGhvZF0gPSAoLi4uYXJnczogdW5rbm93bltdKTogdW5rbm93biA9PiB7XG5cdFx0XHRcdHJldHVybiAodGhpcy5jb250ZW50IGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+KT8uW21ldGhvZF0/LiguLi5hcmdzKTtcblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0c2V0UHJvcGVydHkocHJvcGVydHlLZXk6IHN0cmluZywgcHJvcGVydHlWYWx1ZTogc3RyaW5nLCBiU3VwcHJlc3NJbnZhbGlkYXRlPzogYm9vbGVhbik6IHRoaXMge1xuXHRcdGlmIChcblx0XHRcdCF0aGlzLl9hcHBseWluZ1NldHRpbmdzICYmXG5cdFx0XHRwcm9wZXJ0eVZhbHVlICE9PSB1bmRlZmluZWQgJiZcblx0XHRcdE9iamVjdC5rZXlzKHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRQcm9wZXJ0aWVzKCkpLmluY2x1ZGVzKHByb3BlcnR5S2V5KVxuXHRcdCkge1xuXHRcdFx0c3VwZXIuc2V0UHJvcGVydHkocHJvcGVydHlLZXksIHByb3BlcnR5VmFsdWUsIHRydWUpO1xuXHRcdFx0dGhpcy5fY3JlYXRlQ29udGVudCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzdXBlci5zZXRQcm9wZXJ0eShwcm9wZXJ0eUtleSwgcHJvcGVydHlWYWx1ZSwgYlN1cHByZXNzSW52YWxpZGF0ZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0c2V0QWdncmVnYXRpb24ocHJvcGVydHlLZXk6IHN0cmluZywgYWdncmVnYXRpb25PYmplY3Q6IE1hbmFnZWRPYmplY3QsIGJTdXBwcmVzc0ludmFsaWRhdGU/OiBib29sZWFuKTogdGhpcyB7XG5cdFx0aWYgKCF0aGlzLl9hcHBseWluZ1NldHRpbmdzICYmIE9iamVjdC5rZXlzKHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRBZ2dyZWdhdGlvbnMoKSkuaW5jbHVkZXMocHJvcGVydHlLZXkpKSB7XG5cdFx0XHRzdXBlci5zZXRBZ2dyZWdhdGlvbihwcm9wZXJ0eUtleSwgYWdncmVnYXRpb25PYmplY3QsIHRydWUpO1xuXHRcdFx0dGhpcy5fY3JlYXRlQ29udGVudCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzdXBlci5zZXRBZ2dyZWdhdGlvbihwcm9wZXJ0eUtleSwgYWdncmVnYXRpb25PYmplY3QsIGJTdXBwcmVzc0ludmFsaWRhdGUpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHJlbW92ZUFnZ3JlZ2F0aW9uKFxuXHRcdGFnZ3JlZ2F0aW9uTmFtZTogc3RyaW5nLFxuXHRcdG9iamVjdDogTWFuYWdlZE9iamVjdCB8IG51bWJlciB8IHN0cmluZyxcblx0XHRzdXBwcmVzc0ludmFsaWRhdGU/OiBib29sZWFuXG5cdCk6IE1hbmFnZWRPYmplY3QgfCBudWxsIHtcblx0XHRsZXQgcmVtb3ZlZDogTWFuYWdlZE9iamVjdCB8IG51bGw7XG5cdFx0aWYgKFxuXHRcdFx0IXRoaXMuX2FwcGx5aW5nU2V0dGluZ3MgJiZcblx0XHRcdG9iamVjdCAhPT0gdW5kZWZpbmVkICYmXG5cdFx0XHRPYmplY3Qua2V5cyh0aGlzLmdldE1ldGFkYXRhKCkuZ2V0QWdncmVnYXRpb25zKCkpLmluY2x1ZGVzKGFnZ3JlZ2F0aW9uTmFtZSlcblx0XHQpIHtcblx0XHRcdHJlbW92ZWQgPSBzdXBlci5yZW1vdmVBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbk5hbWUsIG9iamVjdCwgc3VwcHJlc3NJbnZhbGlkYXRlKTtcblx0XHRcdHRoaXMuX2NyZWF0ZUNvbnRlbnQoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVtb3ZlZCA9IHN1cGVyLnJlbW92ZUFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uTmFtZSwgb2JqZWN0LCBzdXBwcmVzc0ludmFsaWRhdGUpO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVtb3ZlZDtcblx0fVxuXG5cdGFkZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uTmFtZTogc3RyaW5nLCBvYmplY3Q6IE1hbmFnZWRPYmplY3QsIHN1cHByZXNzSW52YWxpZGF0ZT86IGJvb2xlYW4pOiB0aGlzIHtcblx0XHRpZiAoIXRoaXMuX2FwcGx5aW5nU2V0dGluZ3MgJiYgT2JqZWN0LmtleXModGhpcy5nZXRNZXRhZGF0YSgpLmdldEFnZ3JlZ2F0aW9ucygpKS5pbmNsdWRlcyhhZ2dyZWdhdGlvbk5hbWUpKSB7XG5cdFx0XHRzdXBlci5hZGRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbk5hbWUsIG9iamVjdCwgc3VwcHJlc3NJbnZhbGlkYXRlKTtcblx0XHRcdHRoaXMuX2NyZWF0ZUNvbnRlbnQoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c3VwZXIuYWRkQWdncmVnYXRpb24oYWdncmVnYXRpb25OYW1lLCBvYmplY3QsIHN1cHByZXNzSW52YWxpZGF0ZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0aW5zZXJ0QWdncmVnYXRpb24oYWdncmVnYXRpb25OYW1lOiBzdHJpbmcsIG9iamVjdDogTWFuYWdlZE9iamVjdCwgaW5kZXg6IG51bWJlciwgc3VwcHJlc3NJbnZhbGlkYXRlPzogYm9vbGVhbik6IHRoaXMge1xuXHRcdGlmICghdGhpcy5fYXBwbHlpbmdTZXR0aW5ncyAmJiBPYmplY3Qua2V5cyh0aGlzLmdldE1ldGFkYXRhKCkuZ2V0QWdncmVnYXRpb25zKCkpLmluY2x1ZGVzKGFnZ3JlZ2F0aW9uTmFtZSkpIHtcblx0XHRcdHN1cGVyLmluc2VydEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uTmFtZSwgb2JqZWN0LCBpbmRleCwgc3VwcHJlc3NJbnZhbGlkYXRlKTtcblx0XHRcdHRoaXMuX2NyZWF0ZUNvbnRlbnQoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c3VwZXIuaW5zZXJ0QWdncmVnYXRpb24oYWdncmVnYXRpb25OYW1lLCBvYmplY3QsIGluZGV4LCBzdXBwcmVzc0ludmFsaWRhdGUpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdGFzeW5jIGNyZWF0ZUNvbnRlbnQob3duZXI6IEVuaGFuY2VXaXRoVUk1PFRlbXBsYXRlQ29tcG9uZW50Pik6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICh0aGlzLmNvbnRlbnRDcmVhdGVkKSB7XG5cdFx0XHRhd2FpdCB0aGlzLmNvbnRlbnRDcmVhdGVkO1xuXHRcdH1cblx0XHQvLyBPbmx5IHNwZWNpYWwgYnVpbGRpbmcgYmxvY2sgd2lsbCBpbXBsZW1lbnQgdGhpc1xuXHRcdGNvbnN0IHByZXByb2Nlc3NvckNvbnRleHQgPSBvd25lci5nZXRQcmVwcm9jZXNzb3JDb250ZXh0KCkgPz8ge1xuXHRcdFx0bW9kZWxzOiB7fSxcblx0XHRcdGJpbmRpbmdDb250ZXh0czoge31cblx0XHR9O1xuXG5cdFx0Y29uc3QgbWV0YWRhdGEgPSB0aGlzLmdldE1ldGFkYXRhKCk7XG5cdFx0Y29uc3QgYmJNZXRhZGF0YSA9IHRoaXMubWV0YWRhdGEuYnVpbGRpbmdCbG9ja01ldGFkYXRhIGFzIEJ1aWxkaW5nQmxvY2tNZXRhZGF0YSB8IHVuZGVmaW5lZDtcblx0XHRpZiAoYmJNZXRhZGF0YSkge1xuXHRcdFx0Y29uc3QgbmFtZXNwYWNlID0gYmJNZXRhZGF0YS5wdWJsaWNOYW1lc3BhY2UgPz8gYmJNZXRhZGF0YS5uYW1lc3BhY2U7XG5cdFx0XHRjb25zdCBuYW1lID0gYmJNZXRhZGF0YS5uYW1lO1xuXHRcdFx0Y29uc3QgZnFuTmFtZSA9IGAke21ldGFkYXRhLmdldE5hbWUoKX1gLnJlcGxhY2VBbGwoXCIuXCIsIFwiL1wiKTtcblx0XHRcdGNvbnN0IHhtbFByb3BlcnRpZXM6IHN0cmluZ1tdID0gW107XG5cdFx0XHRjb25zdCB4bWxBZ2dyZWdhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdFx0XHRjb25zdCBhbGxBZ2dyZWdhdGlvbnMgPSBiYk1ldGFkYXRhLmFnZ3JlZ2F0aW9ucztcblxuXHRcdFx0Zm9yIChjb25zdCBwcm9wZXJ0aWVzS2V5IGluIGJiTWV0YWRhdGEucHJvcGVydGllcykge1xuXHRcdFx0XHRsZXQgcHJvcGVydHlWYWx1ZSA9IHRoaXNbcHJvcGVydGllc0tleSBhcyBrZXlvZiB0aGlzXSBhcyB1bmtub3duO1xuXHRcdFx0XHRsZXQgcHJvcGVydHlWYWx1ZU9iamVjdCA9IHByb3BlcnR5VmFsdWUgYXMgQmFzZU9iamVjdDtcblx0XHRcdFx0aWYgKHByb3BlcnR5VmFsdWVPYmplY3Q/Lmhhc093blByb3BlcnR5Py4oXCJwYXRoXCIpICYmIHByb3BlcnR5VmFsdWVPYmplY3Q/Lmhhc093blByb3BlcnR5Py4oXCJtb2RlbFwiKSkge1xuXHRcdFx0XHRcdHByb3BlcnR5VmFsdWVPYmplY3QgPSB0aGlzLmdldE1vZGVsKChwcm9wZXJ0eVZhbHVlT2JqZWN0IGFzIFByb3BlcnR5QmluZGluZ0luZm8pLm1vZGVsKT8uZ2V0T2JqZWN0KFxuXHRcdFx0XHRcdFx0KHByb3BlcnR5VmFsdWVPYmplY3QgYXMgUHJvcGVydHlCaW5kaW5nSW5mbykucGF0aFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGJiTWV0YWRhdGEucHJvcGVydGllc1twcm9wZXJ0aWVzS2V5XS50eXBlID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRcdFx0XHR4bWxQcm9wZXJ0aWVzLnB1c2goeG1sYCR7cHJvcGVydGllc0tleX09XCJUSElTLl9maXJlRXZlbnQoJGV2ZW50LCAkY29udHJvbGxlciwgJyR7cHJvcGVydGllc0tleX0nKVwiYCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdFx0cHJvcGVydHlWYWx1ZU9iamVjdD8uaXNBICYmXG5cdFx0XHRcdFx0cHJvcGVydHlWYWx1ZU9iamVjdC5pc0E8QnVpbGRpbmdCbG9ja09iamVjdFByb3BlcnR5PihcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuQnVpbGRpbmdCbG9ja09iamVjdFByb3BlcnR5XCIpXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGNvbnN0IHhtbEFnZ3JlZ2F0aW9uID0gcHJvcGVydHlWYWx1ZU9iamVjdC5zZXJpYWxpemUoYGZlQkI6JHtwcm9wZXJ0aWVzS2V5fWApO1xuXHRcdFx0XHRcdHhtbEFnZ3JlZ2F0aW9ucy5wdXNoKHhtbEFnZ3JlZ2F0aW9uKTtcblx0XHRcdFx0fSBlbHNlIGlmIChiYk1ldGFkYXRhLnByb3BlcnRpZXNbcHJvcGVydGllc0tleV0udHlwZSA9PT0gXCJhcnJheVwiKSB7XG5cdFx0XHRcdFx0YWxsQWdncmVnYXRpb25zW3Byb3BlcnRpZXNLZXldID0gYmJNZXRhZGF0YS5wcm9wZXJ0aWVzW3Byb3BlcnRpZXNLZXldO1xuXHRcdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRcdHByb3BlcnR5VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuXHRcdFx0XHRcdHByb3BlcnR5VmFsdWUgIT09IG51bGwgJiZcblx0XHRcdFx0XHQodHlwZW9mIHByb3BlcnR5VmFsdWUgIT09IFwib2JqZWN0XCIgfHwgT2JqZWN0LmtleXMocHJvcGVydHlWYWx1ZSkubGVuZ3RoID4gMClcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0aWYgKGlzQ29udGV4dChwcm9wZXJ0eVZhbHVlKSkge1xuXHRcdFx0XHRcdFx0cHJvcGVydHlWYWx1ZSA9IHByb3BlcnR5VmFsdWUuZ2V0UGF0aCgpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAocHJvcGVydGllc0tleSA9PT0gXCJpZFwiKSB7XG5cdFx0XHRcdFx0XHR4bWxQcm9wZXJ0aWVzLnB1c2goeG1sYCR7cHJvcGVydGllc0tleX09XCIke3Byb3BlcnR5VmFsdWV9LWJsb2NrXCJgKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0eG1sUHJvcGVydGllcy5wdXNoKHhtbGAke3Byb3BlcnRpZXNLZXl9PVwiJHtwcm9wZXJ0eVZhbHVlfVwiYCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGNvbnN0IGFnZ3JlZ2F0aW9uS2V5IGluIGFsbEFnZ3JlZ2F0aW9ucykge1xuXHRcdFx0XHRjb25zdCBfYWdncmVnYXRpb25WYWx1ZSA9IHRoaXNbYWdncmVnYXRpb25LZXkgYXMga2V5b2YgdGhpc10gYXMgdW5rbm93biBhcyBVSTVFbGVtZW50IHwgVUk1RWxlbWVudFtdIHwgbnVsbDtcblx0XHRcdFx0aWYgKF9hZ2dyZWdhdGlvblZhbHVlICYmICghQXJyYXkuaXNBcnJheShfYWdncmVnYXRpb25WYWx1ZSkgfHwgX2FnZ3JlZ2F0aW9uVmFsdWU/Lmxlbmd0aCA+IDApKSB7XG5cdFx0XHRcdFx0Y29uc3QgYWdncmVnYXRpb25DaGlsZHJlbjogc3RyaW5nW10gPSBbXTtcblx0XHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShfYWdncmVnYXRpb25WYWx1ZSkpIHtcblx0XHRcdFx0XHRcdGZvciAoY29uc3QgYWdncmVnYXRpb25DaGlsZCBvZiBfYWdncmVnYXRpb25WYWx1ZSkge1xuXHRcdFx0XHRcdFx0XHRpZiAoYWdncmVnYXRpb25DaGlsZC5pc0E8QnVpbGRpbmdCbG9ja09iamVjdFByb3BlcnR5PihcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuQnVpbGRpbmdCbG9ja09iamVjdFByb3BlcnR5XCIpKVxuXHRcdFx0XHRcdFx0XHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW4ucHVzaChhZ2dyZWdhdGlvbkNoaWxkLnNlcmlhbGl6ZSgpKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2UgaWYgKF9hZ2dyZWdhdGlvblZhbHVlLmlzQTxCdWlsZGluZ0Jsb2NrT2JqZWN0UHJvcGVydHk+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5CdWlsZGluZ0Jsb2NrT2JqZWN0UHJvcGVydHlcIikpIHtcblx0XHRcdFx0XHRcdGFnZ3JlZ2F0aW9uQ2hpbGRyZW4ucHVzaChfYWdncmVnYXRpb25WYWx1ZS5zZXJpYWxpemUoKSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbnN0IHhtbEFnZ3JlZ2F0aW9uID0gYDxmZUJCOiR7YWdncmVnYXRpb25LZXl9PiR7YWdncmVnYXRpb25DaGlsZHJlbi5qb2luKFwiXFxuXCIpfTwvZmVCQjoke2FnZ3JlZ2F0aW9uS2V5fT5gO1xuXG5cdFx0XHRcdFx0eG1sQWdncmVnYXRpb25zLnB1c2goeG1sQWdncmVnYXRpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBmcmFnbWVudCA9IGF3YWl0IFhNTFByZXByb2Nlc3Nvci5wcm9jZXNzKFxuXHRcdFx0XHRwYXJzZVhNTFN0cmluZyhcblx0XHRcdFx0XHR4bWxgPHJvb3Q+PGZlQkI6JHtuYW1lfVxuXHRcdFx0eG1sbnM6Y29yZT1cInNhcC51aS5jb3JlXCJcblx0XHRcdHhtbG5zOmZlQkI9XCIke25hbWVzcGFjZX1cIlxuXHRcdFx0JHt4bWxQcm9wZXJ0aWVzLmxlbmd0aCA+IDAgPyB4bWxQcm9wZXJ0aWVzIDogXCJcIn1cblx0XHRcdGNvcmU6cmVxdWlyZT1cIntUSElTOiAnJHtmcW5OYW1lfSd9XCJcblx0XHRcdD4ke3htbEFnZ3JlZ2F0aW9ucy5sZW5ndGggPiAwID8geG1sQWdncmVnYXRpb25zIDogXCJcIn08L2ZlQkI6JHtuYW1lfT48L3Jvb3Q+YCxcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdClbMF0sXG5cdFx0XHRcdHsgbW9kZWxzOiB7fSB9LFxuXHRcdFx0XHRwcmVwcm9jZXNzb3JDb250ZXh0XG5cdFx0XHQpO1xuXHRcdFx0aWYgKGZyYWdtZW50LmZpcnN0RWxlbWVudENoaWxkKSB7XG5cdFx0XHRcdHRoaXMuY29udGVudD8uZGVzdHJveSgpO1xuXHRcdFx0XHR0aGlzLmNvbnRlbnQgPSBhd2FpdCBvd25lci5ydW5Bc093bmVyKGFzeW5jICgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gRnJhZ21lbnQubG9hZCh7XG5cdFx0XHRcdFx0XHRkZWZpbml0aW9uOiBmcmFnbWVudC5maXJzdEVsZW1lbnRDaGlsZCBhcyBFbGVtZW50LFxuXHRcdFx0XHRcdFx0Y29udHJvbGxlcjogb3duZXIuZ2V0Um9vdENvbnRyb2xsZXIoKVxuXHRcdFx0XHRcdH0pIGFzIFByb21pc2U8Q29udHJvbD47XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7RUFnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVBBLElBU3FCQSwyQkFBMkIsSUFBQUMsSUFBQSxHQUQvQ0MsY0FBYyxDQUFDLG9EQUFvRCxDQUFDLEVBQUFELElBQUEsQ0FBQUUsTUFBQSwwQkFBQUMsY0FBQTtJQUFBLFNBQUFKLDRCQUFBO01BQUEsT0FBQUksY0FBQSxDQUFBQyxLQUFBLE9BQUFDLFNBQUE7SUFBQTtJQUFBQyxRQUFBLEdBQUFQLDJCQUFBO0lBQUFRLGNBQUEsQ0FBQVIsMkJBQUEsRUFBQUksY0FBQTtJQUFBLElBQUFLLE1BQUEsR0FBQVQsMkJBQUEsQ0FBQVUsU0FBQTtJQUFBRCxNQUFBLENBTXBFRSxtQkFBbUIsR0FBbkIsU0FBQUEsbUJBQW1CQSxDQUFBLEVBQVM7TUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQ0MsT0FBTyxFQUFFO1FBQ2xCLElBQUksQ0FBQ0MsY0FBYyxDQUFDLENBQUM7TUFDdEI7SUFDRCxDQUFDO0lBQUFKLE1BQUEsQ0FFREksY0FBYyxHQUFkLFNBQUFBLGNBQWNBLENBQUEsRUFBUztNQUN0QixNQUFNQyxLQUFLLEdBQUcsSUFBSSxDQUFDQyxTQUFTLENBQUMsQ0FBQztNQUM5QixJQUFJRCxLQUFLLEVBQUVFLEdBQUcsQ0FBb0IsK0JBQStCLENBQUMsRUFBRTtRQUNuRSxJQUFJLENBQUNDLGNBQWMsR0FBRyxJQUFJLENBQUNDLGFBQWEsQ0FBQ0osS0FBMEMsQ0FBQztNQUNyRjtJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQUwsTUFBQSxDQUlBVSxrQkFBa0IsR0FBbEIsU0FBQUEsa0JBQWtCQSxDQUFDQyxPQUFpQixFQUFRO01BQUEsSUFBQUMsS0FBQTtNQUMzQyxLQUFLLE1BQU1DLE1BQU0sSUFBSUYsT0FBTyxFQUFFO1FBQzVC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
|
|
@@ -19,6 +19,8 @@ import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
|
|
|
19
19
|
* On change of the main properties you will be able to recreate the content.
|
|
20
20
|
* @public
|
|
21
21
|
* @experimental
|
|
22
|
+
* @deprecated
|
|
23
|
+
* @deprecatedsince 1.140
|
|
22
24
|
*/
|
|
23
25
|
@defineUI5Class("sap.fe.macros.controls.BuildingBlockWithTemplating")
|
|
24
26
|
export default class BuildingBlockWithTemplating extends BuildingBlock<Control> {
|
|
@@ -119,10 +119,15 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Control", "sap/ui/core/L
|
|
|
119
119
|
* @param value
|
|
120
120
|
*/;
|
|
121
121
|
_proto.setEditMode = function setEditMode(value) {
|
|
122
|
+
if (this.switchToDisplayTimeOutId) {
|
|
123
|
+
clearTimeout(this.switchToDisplayTimeOutId);
|
|
124
|
+
this.switchToDisplayTimeOutId = undefined;
|
|
125
|
+
}
|
|
122
126
|
if (this.delaySwitchToDisplay && this.editMode && value === "Display" && this.editMode !== "Display") {
|
|
123
|
-
setTimeout(() => {
|
|
127
|
+
this.switchToDisplayTimeOutId = window.setTimeout(() => {
|
|
124
128
|
this.setProperty("editMode", value);
|
|
125
129
|
this.invalidate();
|
|
130
|
+
this.switchToDisplayTimeOutId = undefined;
|
|
126
131
|
}, 100); // workaround to ensure input focusout does not trigger a Patch request
|
|
127
132
|
// DINC0524872
|
|
128
133
|
} else {
|
|
@@ -154,7 +159,8 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Control", "sap/ui/core/L
|
|
|
154
159
|
oRm.style("text-align", oControl.textAlign);
|
|
155
160
|
if (oControl.editMode === "Display") {
|
|
156
161
|
oRm.style("width", oControl.width);
|
|
157
|
-
|
|
162
|
+
const parentControl = oControl.getParent();
|
|
163
|
+
if (parentControl.hasInlineEdit && parentControl.formatOptions?.reactiveAreaMode !== "Overlay") {
|
|
158
164
|
// tooltip
|
|
159
165
|
oRm.attr("title", oControl.resourceBundle.getText("M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT"));
|
|
160
166
|
// focus
|
|
@@ -229,4 +235,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Control", "sap/ui/core/L
|
|
|
229
235
|
}), _class2)) || _class);
|
|
230
236
|
return FieldWrapper;
|
|
231
237
|
}, false);
|
|
232
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWVsZFdyYXBwZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9kZWMzIiwicHJvcGVydHkiLCJ0eXBlIiwiX2RlYzQiLCJkZWZhdWx0VmFsdWUiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiYXNzb2NpYXRpb24iLCJtdWx0aXBsZSIsInNpbmd1bGFyTmFtZSIsIl9kZWMxMCIsImFnZ3JlZ2F0aW9uIiwiaXNEZWZhdWx0IiwiX2RlYzExIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9Db250cm9sIiwiaWQiLCJzZXR0aW5ncyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwicmVzb3VyY2VCdW5kbGUiLCJMaWIiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZSIsIm9FbGVtZW50IiwibUFyaWFQcm9wcyIsIm9QYXJlbnQiLCJnZXRQYXJlbnQiLCJhZGRBZ2dyZWdhdGlvbiIsInNBZ2dyZWdhdGlvbk5hbWUiLCJvT2JqZWN0IiwiYlN1cHByZXNzSW52YWxpZGF0ZSIsImlzQSIsInNldFByZWZlclVzZXJJbnRlcmFjdGlvbiIsImdldEFjY2Vzc2liaWxpdHlJbmZvIiwib0NvbnRlbnQiLCJlZGl0TW9kZSIsImNvbnRlbnREaXNwbGF5IiwiY29udGVudEVkaXQiLCJsZW5ndGgiLCJnZXRJZEZvckxhYmVsIiwic2V0RWRpdE1vZGUiLCJ2YWx1ZSIsImRlbGF5U3dpdGNoVG9EaXNwbGF5Iiwic2V0VGltZW91dCIsInNldFByb3BlcnR5IiwiaW52YWxpZGF0ZSIsIl9zZXRBcmlhTGFiZWxsZWRCeSIsImFkZEFyaWFMYWJlbGxlZEJ5IiwiYUFyaWFMYWJlbGxlZEJ5IiwiYXJpYUxhYmVsbGVkQnkiLCJzSWQiLCJhQXJpYUxhYmVsbGVkQnlzIiwiZ2V0QXJpYUxhYmVsbGVkQnkiLCJpbmNsdWRlcyIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiYUNvbnRlbnRFZGl0IiwiaXRlbSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwib3BlblN0YXJ0Iiwic3R5bGUiLCJ0ZXh0QWxpZ24iLCJ3aWR0aCIsImhhc0lubGluZUVkaXQiLCJhdHRyIiwiZ2V0VGV4dCIsIm9wZW5FbmQiLCJyZW5kZXJDb250cm9sIiwiY2xvc2UiLCJDb250cm9sIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaWVsZFdyYXBwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGFzc29jaWF0aW9uLCBkZWZpbmVVSTVDbGFzcywgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIElucHV0QmFzZSBmcm9tIFwic2FwL20vSW5wdXRCYXNlXCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBMaWIgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IHR5cGUgUmVuZGVyTWFuYWdlciBmcm9tIFwic2FwL3VpL2NvcmUvUmVuZGVyTWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBBY2Nlc3NpYmlsaXR5SW5mbywgQ1NTU2l6ZSwgSUZvcm1Db250ZW50LCBUZXh0QWxpZ24gfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgRmllbGQgZnJvbSBcIi4uL0ZpZWxkXCI7XG5cbnR5cGUgQ29udHJvbFdpdGhBY2Nlc3NpYmlsaXR5ID0gQ29udHJvbCAmIHsgYWRkQXJpYUxhYmVsbGVkQnk/OiAoaWQ6IHN0cmluZykgPT4gdm9pZDsgZ2V0QXJpYUxhYmVsbGVkQnk6ICgpID0+IHN0cmluZ1tdIH07XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuRmllbGRXcmFwcGVyXCIpXG5jbGFzcyBGaWVsZFdyYXBwZXIgZXh0ZW5kcyBDb250cm9sIGltcGxlbWVudHMgSUZvcm1Db250ZW50IHtcblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC51aS5jb3JlLklGb3JtQ29udGVudFwiKVxuXHRfX2ltcGxlbWVudHNfX3NhcF91aV9jb3JlX0lGb3JtQ29udGVudCA9IHRydWU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5UZXh0QWxpZ25cIiB9KVxuXHR0ZXh0QWxpZ24hOiBUZXh0QWxpZ247XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5DU1NTaXplXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHR3aWR0aCE6IENTU1NpemU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0Zm9ybURvTm90QWRqdXN0V2lkdGghOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogXCJEaXNwbGF5XCIgfSlcblx0ZWRpdE1vZGUhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0cmVxdWlyZWQhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGRlbGF5U3dpdGNoVG9EaXNwbGF5ITogYm9vbGVhbjtcblx0LyoqXG5cdCAqIEFzc29jaWF0aW9uIHRvIGNvbnRyb2xzIC8gSURzIHRoYXQgbGFiZWwgdGhpcyBjb250cm9sIChzZWUgV0FJLUFSSUEgYXR0cmlidXRlIGFyaWEtbGFiZWxsZWRieSkuXG5cdCAqL1xuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IHRydWUsIHNpbmd1bGFyTmFtZTogXCJhcmlhTGFiZWxsZWRCeVwiIH0pXG5cdGFyaWFMYWJlbGxlZEJ5ITogc3RyaW5nW107XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiBmYWxzZSwgaXNEZWZhdWx0OiB0cnVlIH0pXG5cdGNvbnRlbnREaXNwbGF5ITogQ29udHJvbFdpdGhBY2Nlc3NpYmlsaXR5O1xuXG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSB9KVxuXHRjb250ZW50RWRpdCE6IENvbnRyb2xXaXRoQWNjZXNzaWJpbGl0eVtdO1xuXG5cdHByaXZhdGUgcmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGlkPzogc3RyaW5nIHwgdW5kZWZpbmVkIHwgKFByb3BlcnRpZXNPZjxGaWVsZFdyYXBwZXI+ICYgJENvbnRyb2xTZXR0aW5ncyksXG5cdFx0c2V0dGluZ3M/OiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPEZpZWxkV3JhcHBlcj5cblx0KSB7XG5cdFx0c3VwZXIoaWQgYXMgc3RyaW5nLCBzZXR0aW5ncyk7XG5cdFx0dGhpcy5yZXNvdXJjZUJ1bmRsZSA9IExpYi5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5jb250cm9sc1wiKSE7XG5cdH1cblxuXHRlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlKG9FbGVtZW50OiBvYmplY3QsIG1BcmlhUHJvcHM6IG9iamVjdCk6IG9iamVjdCB7XG5cdFx0Y29uc3Qgb1BhcmVudCA9IHRoaXMuZ2V0UGFyZW50KCk7XG5cblx0XHRpZiAob1BhcmVudCAmJiAob1BhcmVudCBhcyBNYW5hZ2VkT2JqZWN0ICYgeyBlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlPzogRnVuY3Rpb24gfSkuZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZSkge1xuXHRcdFx0Ly8gZm9yd2FyZCAgZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZSBjYWxsIHRvIHRoZSBwYXJlbnRcblx0XHRcdChvUGFyZW50IGFzIE1hbmFnZWRPYmplY3QgJiB7IGVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGU6IEZ1bmN0aW9uIH0pLmVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUob0VsZW1lbnQsIG1BcmlhUHJvcHMpO1xuXHRcdH1cblxuXHRcdHJldHVybiBtQXJpYVByb3BzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBjb250cm9sIHRvIHRoZSBhZ2dyZWdhdGlvbi5cblx0ICogQHBhcmFtIHNBZ2dyZWdhdGlvbk5hbWVcblx0ICogQHBhcmFtIG9PYmplY3Rcblx0ICogQHBhcmFtIGJTdXBwcmVzc0ludmFsaWRhdGVcblx0ICogQHJldHVybnMgVGhlIEZpZWxkV3JhcHBlciBpbnN0YW5jZVxuXHQgKi9cblx0YWRkQWdncmVnYXRpb24oc0FnZ3JlZ2F0aW9uTmFtZTogc3RyaW5nLCBvT2JqZWN0OiBNYW5hZ2VkT2JqZWN0LCBiU3VwcHJlc3NJbnZhbGlkYXRlPzogYm9vbGVhbik6IHRoaXMge1xuXHRcdGlmIChzQWdncmVnYXRpb25OYW1lID09PSBcImNvbnRlbnRFZGl0XCIgJiYgb09iamVjdC5pc0E8SW5wdXRCYXNlPihcInNhcC5tLklucHV0QmFzZVwiKSkge1xuXHRcdFx0b09iamVjdC5zZXRQcmVmZXJVc2VySW50ZXJhY3Rpb24odHJ1ZSk7XG5cdFx0fVxuXHRcdHJldHVybiBzdXBlci5hZGRBZ2dyZWdhdGlvbihzQWdncmVnYXRpb25OYW1lLCBvT2JqZWN0LCBiU3VwcHJlc3NJbnZhbGlkYXRlKTtcblx0fVxuXG5cdGdldEFjY2Vzc2liaWxpdHlJbmZvKCk6IEFjY2Vzc2liaWxpdHlJbmZvIHtcblx0XHRsZXQgb0NvbnRlbnQ7XG5cdFx0aWYgKHRoaXMuZWRpdE1vZGUgPT09IFwiRGlzcGxheVwiKSB7XG5cdFx0XHRvQ29udGVudCA9IHRoaXMuY29udGVudERpc3BsYXk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG9Db250ZW50ID0gdGhpcy5jb250ZW50RWRpdC5sZW5ndGggPyB0aGlzLmNvbnRlbnRFZGl0WzBdIDogbnVsbDtcblx0XHR9XG5cdFx0cmV0dXJuIG9Db250ZW50ICYmIG9Db250ZW50LmdldEFjY2Vzc2liaWxpdHlJbmZvID8gb0NvbnRlbnQuZ2V0QWNjZXNzaWJpbGl0eUluZm8oKSA6IHt9O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIERPTU5vZGUgSUQgdG8gYmUgdXNlZCBmb3IgdGhlIFwibGFiZWxGb3JcIiBhdHRyaWJ1dGUuXG5cdCAqXG5cdCAqIFdlIGZvcndhcmQgdGhlIGNhbGwgb2YgdGhpcyBtZXRob2QgdG8gdGhlIGNvbnRlbnQgY29udHJvbC5cblx0ICogQHJldHVybnMgSUQgdG8gYmUgdXNlZCBmb3IgdGhlIDxjb2RlPmxhYmVsRm9yPC9jb2RlPlxuXHQgKi9cblx0Z2V0SWRGb3JMYWJlbCgpOiBzdHJpbmcge1xuXHRcdGxldCBvQ29udGVudDtcblx0XHRpZiAodGhpcy5lZGl0TW9kZSA9PT0gXCJEaXNwbGF5XCIpIHtcblx0XHRcdG9Db250ZW50ID0gdGhpcy5jb250ZW50RGlzcGxheTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b0NvbnRlbnQgPSB0aGlzLmNvbnRlbnRFZGl0Lmxlbmd0aCA/IHRoaXMuY29udGVudEVkaXRbMF0gOiBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4gKG9Db250ZW50IGFzIENvbnRyb2wpPy5nZXRJZEZvckxhYmVsKCk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0dGVyIGZvciBlZGl0TW9kZS5cblx0ICogQHBhcmFtIHZhbHVlXG5cdCAqL1xuXHRzZXRFZGl0TW9kZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuZGVsYXlTd2l0Y2hUb0Rpc3BsYXkgJiYgdGhpcy5lZGl0TW9kZSAmJiB2YWx1ZSA9PT0gXCJEaXNwbGF5XCIgJiYgdGhpcy5lZGl0TW9kZSAhPT0gXCJEaXNwbGF5XCIpIHtcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLnNldFByb3BlcnR5KFwiZWRpdE1vZGVcIiwgdmFsdWUpO1xuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKTtcblx0XHRcdH0sIDEwMCk7IC8vIHdvcmthcm91bmQgdG8gZW5zdXJlIGlucHV0IGZvY3Vzb3V0IGRvZXMgbm90IHRyaWdnZXIgYSBQYXRjaCByZXF1ZXN0XG5cdFx0XHQvLyBESU5DMDUyNDg3MlxuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnNldFByb3BlcnR5KFwiZWRpdE1vZGVcIiwgdmFsdWUpO1xuXHRcdH1cblx0fVxuXG5cdF9zZXRBcmlhTGFiZWxsZWRCeShvQ29udGVudD86IENvbnRyb2xXaXRoQWNjZXNzaWJpbGl0eSk6IHZvaWQge1xuXHRcdGlmIChvQ29udGVudCAmJiBvQ29udGVudC5hZGRBcmlhTGFiZWxsZWRCeSkge1xuXHRcdFx0Y29uc3QgYUFyaWFMYWJlbGxlZEJ5ID0gdGhpcy5hcmlhTGFiZWxsZWRCeTtcblxuXHRcdFx0Zm9yIChjb25zdCBzSWQgb2YgYUFyaWFMYWJlbGxlZEJ5KSB7XG5cdFx0XHRcdGNvbnN0IGFBcmlhTGFiZWxsZWRCeXMgPSBvQ29udGVudC5nZXRBcmlhTGFiZWxsZWRCeSgpIHx8IFtdO1xuXHRcdFx0XHRpZiAoIWFBcmlhTGFiZWxsZWRCeXMuaW5jbHVkZXMoc0lkKSkge1xuXHRcdFx0XHRcdG9Db250ZW50LmFkZEFyaWFMYWJlbGxlZEJ5KHNJZCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRvbkJlZm9yZVJlbmRlcmluZygpOiB2b2lkIHtcblx0XHQvLyBiZWZvcmUgY2FsbGluZyB0aGUgcmVuZGVyZXIgb2YgdGhlIEZpZWxkV3JhcHBlciBwYXJlbnQgY29udHJvbCBtYXkgaGF2ZSBzZXQgYXJpYUxhYmVsbGVkQnlcblx0XHQvLyB3ZSBlbnN1cmUgaXQgaXMgcGFzc2VkIHRvIGl0cyBpbm5lciBjb250cm9sc1xuXHRcdHRoaXMuX3NldEFyaWFMYWJlbGxlZEJ5KHRoaXMuY29udGVudERpc3BsYXkpO1xuXHRcdGNvbnN0IGFDb250ZW50RWRpdCA9IHRoaXMuY29udGVudEVkaXQ7XG5cdFx0Zm9yIChjb25zdCBpdGVtIG9mIGFDb250ZW50RWRpdCkge1xuXHRcdFx0dGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkoaXRlbSk7XG5cdFx0fVxuXHR9XG5cblx0c3RhdGljIHJlbmRlcihvUm06IFJlbmRlck1hbmFnZXIsIG9Db250cm9sOiBGaWVsZFdyYXBwZXIpOiB2b2lkIHtcblx0XHRvUm0ub3BlblN0YXJ0KFwiZGl2XCIsIG9Db250cm9sKTtcblx0XHRvUm0uc3R5bGUoXCJ0ZXh0LWFsaWduXCIsIG9Db250cm9sLnRleHRBbGlnbik7XG5cdFx0aWYgKG9Db250cm9sLmVkaXRNb2RlID09PSBcIkRpc3BsYXlcIikge1xuXHRcdFx0b1JtLnN0eWxlKFwid2lkdGhcIiwgb0NvbnRyb2wud2lkdGgpO1xuXHRcdFx0aWYgKChvQ29udHJvbC5nZXRQYXJlbnQoKSBhcyBGaWVsZCkuaGFzSW5saW5lRWRpdCkge1xuXHRcdFx0XHQvLyB0b29sdGlwXG5cdFx0XHRcdG9SbS5hdHRyKFwidGl0bGVcIiwgb0NvbnRyb2wucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fSU5MSU5FX0VESVRfVE9PTFRJUF9ET1VCTEVDTElDS19FRElUXCIpKTtcblx0XHRcdFx0Ly8gZm9jdXNcblx0XHRcdFx0b1JtLmF0dHIoXCJ0YWJpbmRleFwiLCAwKTtcblx0XHRcdH1cblx0XHRcdG9SbS5vcGVuRW5kKCk7XG5cdFx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5jb250ZW50RGlzcGxheSk7IC8vIHJlbmRlciB0aGUgY2hpbGQgQ29udHJvbCBmb3IgZGlzcGxheVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBhQ29udGVudEVkaXQgPSBvQ29udHJvbC5jb250ZW50RWRpdDtcblxuXHRcdFx0b1JtLnN0eWxlKFwid2lkdGhcIiwgb0NvbnRyb2wud2lkdGgpO1xuXHRcdFx0b1JtLm9wZW5FbmQoKTtcblx0XHRcdGZvciAoY29uc3Qgb0NvbnRlbnQgb2YgYUNvbnRlbnRFZGl0KSB7XG5cdFx0XHRcdC8vIHJlbmRlciB0aGUgY2hpbGQgQ29udHJvbCAgZm9yIGVkaXRcblx0XHRcdFx0b1JtLnJlbmRlckNvbnRyb2wob0NvbnRlbnQpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRvUm0uY2xvc2UoXCJkaXZcIik7IC8vIGVuZCBvZiB0aGUgY29tcGxldGUgQ29udHJvbFxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZpZWxkV3JhcHBlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BZU1BLFlBQVksSUFBQUMsSUFBQSxHQURqQkMsY0FBYyxDQUFDLHFDQUFxQyxDQUFDLEVBQUFDLEtBQUEsR0FFcERDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLEVBQUFDLEtBQUEsR0FHOUNDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBd0IsQ0FB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
|
|
238
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWVsZFdyYXBwZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9kZWMzIiwicHJvcGVydHkiLCJ0eXBlIiwiX2RlYzQiLCJkZWZhdWx0VmFsdWUiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiYXNzb2NpYXRpb24iLCJtdWx0aXBsZSIsInNpbmd1bGFyTmFtZSIsIl9kZWMxMCIsImFnZ3JlZ2F0aW9uIiwiaXNEZWZhdWx0IiwiX2RlYzExIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9Db250cm9sIiwiaWQiLCJzZXR0aW5ncyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwicmVzb3VyY2VCdW5kbGUiLCJMaWIiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZSIsIm9FbGVtZW50IiwibUFyaWFQcm9wcyIsIm9QYXJlbnQiLCJnZXRQYXJlbnQiLCJhZGRBZ2dyZWdhdGlvbiIsInNBZ2dyZWdhdGlvbk5hbWUiLCJvT2JqZWN0IiwiYlN1cHByZXNzSW52YWxpZGF0ZSIsImlzQSIsInNldFByZWZlclVzZXJJbnRlcmFjdGlvbiIsImdldEFjY2Vzc2liaWxpdHlJbmZvIiwib0NvbnRlbnQiLCJlZGl0TW9kZSIsImNvbnRlbnREaXNwbGF5IiwiY29udGVudEVkaXQiLCJsZW5ndGgiLCJnZXRJZEZvckxhYmVsIiwic2V0RWRpdE1vZGUiLCJ2YWx1ZSIsInN3aXRjaFRvRGlzcGxheVRpbWVPdXRJZCIsImNsZWFyVGltZW91dCIsInVuZGVmaW5lZCIsImRlbGF5U3dpdGNoVG9EaXNwbGF5Iiwid2luZG93Iiwic2V0VGltZW91dCIsInNldFByb3BlcnR5IiwiaW52YWxpZGF0ZSIsIl9zZXRBcmlhTGFiZWxsZWRCeSIsImFkZEFyaWFMYWJlbGxlZEJ5IiwiYUFyaWFMYWJlbGxlZEJ5IiwiYXJpYUxhYmVsbGVkQnkiLCJzSWQiLCJhQXJpYUxhYmVsbGVkQnlzIiwiZ2V0QXJpYUxhYmVsbGVkQnkiLCJpbmNsdWRlcyIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiYUNvbnRlbnRFZGl0IiwiaXRlbSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwib3BlblN0YXJ0Iiwic3R5bGUiLCJ0ZXh0QWxpZ24iLCJ3aWR0aCIsInBhcmVudENvbnRyb2wiLCJoYXNJbmxpbmVFZGl0IiwiZm9ybWF0T3B0aW9ucyIsInJlYWN0aXZlQXJlYU1vZGUiLCJhdHRyIiwiZ2V0VGV4dCIsIm9wZW5FbmQiLCJyZW5kZXJDb250cm9sIiwiY2xvc2UiLCJDb250cm9sIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaWVsZFdyYXBwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGFzc29jaWF0aW9uLCBkZWZpbmVVSTVDbGFzcywgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIElucHV0QmFzZSBmcm9tIFwic2FwL20vSW5wdXRCYXNlXCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBMaWIgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IHR5cGUgUmVuZGVyTWFuYWdlciBmcm9tIFwic2FwL3VpL2NvcmUvUmVuZGVyTWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBBY2Nlc3NpYmlsaXR5SW5mbywgQ1NTU2l6ZSwgSUZvcm1Db250ZW50LCBUZXh0QWxpZ24gfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgRmllbGQgZnJvbSBcIi4uL0ZpZWxkXCI7XG5cbnR5cGUgQ29udHJvbFdpdGhBY2Nlc3NpYmlsaXR5ID0gQ29udHJvbCAmIHsgYWRkQXJpYUxhYmVsbGVkQnk/OiAoaWQ6IHN0cmluZykgPT4gdm9pZDsgZ2V0QXJpYUxhYmVsbGVkQnk6ICgpID0+IHN0cmluZ1tdIH07XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuRmllbGRXcmFwcGVyXCIpXG5jbGFzcyBGaWVsZFdyYXBwZXIgZXh0ZW5kcyBDb250cm9sIGltcGxlbWVudHMgSUZvcm1Db250ZW50IHtcblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC51aS5jb3JlLklGb3JtQ29udGVudFwiKVxuXHRfX2ltcGxlbWVudHNfX3NhcF91aV9jb3JlX0lGb3JtQ29udGVudCA9IHRydWU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5UZXh0QWxpZ25cIiB9KVxuXHR0ZXh0QWxpZ24hOiBUZXh0QWxpZ247XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5DU1NTaXplXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHR3aWR0aCE6IENTU1NpemU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0Zm9ybURvTm90QWRqdXN0V2lkdGghOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogXCJEaXNwbGF5XCIgfSlcblx0ZWRpdE1vZGUhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0cmVxdWlyZWQhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGRlbGF5U3dpdGNoVG9EaXNwbGF5ITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQXNzb2NpYXRpb24gdG8gY29udHJvbHMgLyBJRHMgdGhhdCBsYWJlbCB0aGlzIGNvbnRyb2wgKHNlZSBXQUktQVJJQSBhdHRyaWJ1dGUgYXJpYS1sYWJlbGxlZGJ5KS5cblx0ICovXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSwgc2luZ3VsYXJOYW1lOiBcImFyaWFMYWJlbGxlZEJ5XCIgfSlcblx0YXJpYUxhYmVsbGVkQnkhOiBzdHJpbmdbXTtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudERpc3BsYXkhOiBDb250cm9sV2l0aEFjY2Vzc2liaWxpdHk7XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiB0cnVlIH0pXG5cdGNvbnRlbnRFZGl0ITogQ29udHJvbFdpdGhBY2Nlc3NpYmlsaXR5W107XG5cblx0cHJpdmF0ZSByZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGU7XG5cblx0cHJpdmF0ZSBzd2l0Y2hUb0Rpc3BsYXlUaW1lT3V0SWQ/OiBudW1iZXI7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0aWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQgfCAoUHJvcGVydGllc09mPEZpZWxkV3JhcHBlcj4gJiAkQ29udHJvbFNldHRpbmdzKSxcblx0XHRzZXR0aW5ncz86ICRDb250cm9sU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8RmllbGRXcmFwcGVyPlxuXHQpIHtcblx0XHRzdXBlcihpZCBhcyBzdHJpbmcsIHNldHRpbmdzKTtcblx0XHR0aGlzLnJlc291cmNlQnVuZGxlID0gTGliLmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvbnRyb2xzXCIpITtcblx0fVxuXG5cdGVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUob0VsZW1lbnQ6IG9iamVjdCwgbUFyaWFQcm9wczogb2JqZWN0KTogb2JqZWN0IHtcblx0XHRjb25zdCBvUGFyZW50ID0gdGhpcy5nZXRQYXJlbnQoKTtcblxuXHRcdGlmIChvUGFyZW50ICYmIChvUGFyZW50IGFzIE1hbmFnZWRPYmplY3QgJiB7IGVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGU/OiBGdW5jdGlvbiB9KS5lbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlKSB7XG5cdFx0XHQvLyBmb3J3YXJkICBlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlIGNhbGwgdG8gdGhlIHBhcmVudFxuXHRcdFx0KG9QYXJlbnQgYXMgTWFuYWdlZE9iamVjdCAmIHsgZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZTogRnVuY3Rpb24gfSkuZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZShvRWxlbWVudCwgbUFyaWFQcm9wcyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1BcmlhUHJvcHM7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBhIGNvbnRyb2wgdG8gdGhlIGFnZ3JlZ2F0aW9uLlxuXHQgKiBAcGFyYW0gc0FnZ3JlZ2F0aW9uTmFtZVxuXHQgKiBAcGFyYW0gb09iamVjdFxuXHQgKiBAcGFyYW0gYlN1cHByZXNzSW52YWxpZGF0ZVxuXHQgKiBAcmV0dXJucyBUaGUgRmllbGRXcmFwcGVyIGluc3RhbmNlXG5cdCAqL1xuXHRhZGRBZ2dyZWdhdGlvbihzQWdncmVnYXRpb25OYW1lOiBzdHJpbmcsIG9PYmplY3Q6IE1hbmFnZWRPYmplY3QsIGJTdXBwcmVzc0ludmFsaWRhdGU/OiBib29sZWFuKTogdGhpcyB7XG5cdFx0aWYgKHNBZ2dyZWdhdGlvbk5hbWUgPT09IFwiY29udGVudEVkaXRcIiAmJiBvT2JqZWN0LmlzQTxJbnB1dEJhc2U+KFwic2FwLm0uSW5wdXRCYXNlXCIpKSB7XG5cdFx0XHRvT2JqZWN0LnNldFByZWZlclVzZXJJbnRlcmFjdGlvbih0cnVlKTtcblx0XHR9XG5cdFx0cmV0dXJuIHN1cGVyLmFkZEFnZ3JlZ2F0aW9uKHNBZ2dyZWdhdGlvbk5hbWUsIG9PYmplY3QsIGJTdXBwcmVzc0ludmFsaWRhdGUpO1xuXHR9XG5cblx0Z2V0QWNjZXNzaWJpbGl0eUluZm8oKTogQWNjZXNzaWJpbGl0eUluZm8ge1xuXHRcdGxldCBvQ29udGVudDtcblx0XHRpZiAodGhpcy5lZGl0TW9kZSA9PT0gXCJEaXNwbGF5XCIpIHtcblx0XHRcdG9Db250ZW50ID0gdGhpcy5jb250ZW50RGlzcGxheTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b0NvbnRlbnQgPSB0aGlzLmNvbnRlbnRFZGl0Lmxlbmd0aCA/IHRoaXMuY29udGVudEVkaXRbMF0gOiBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4gb0NvbnRlbnQgJiYgb0NvbnRlbnQuZ2V0QWNjZXNzaWJpbGl0eUluZm8gPyBvQ29udGVudC5nZXRBY2Nlc3NpYmlsaXR5SW5mbygpIDoge307XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgRE9NTm9kZSBJRCB0byBiZSB1c2VkIGZvciB0aGUgXCJsYWJlbEZvclwiIGF0dHJpYnV0ZS5cblx0ICpcblx0ICogV2UgZm9yd2FyZCB0aGUgY2FsbCBvZiB0aGlzIG1ldGhvZCB0byB0aGUgY29udGVudCBjb250cm9sLlxuXHQgKiBAcmV0dXJucyBJRCB0byBiZSB1c2VkIGZvciB0aGUgPGNvZGU+bGFiZWxGb3I8L2NvZGU+XG5cdCAqL1xuXHRnZXRJZEZvckxhYmVsKCk6IHN0cmluZyB7XG5cdFx0bGV0IG9Db250ZW50O1xuXHRcdGlmICh0aGlzLmVkaXRNb2RlID09PSBcIkRpc3BsYXlcIikge1xuXHRcdFx0b0NvbnRlbnQgPSB0aGlzLmNvbnRlbnREaXNwbGF5O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvQ29udGVudCA9IHRoaXMuY29udGVudEVkaXQubGVuZ3RoID8gdGhpcy5jb250ZW50RWRpdFswXSA6IG51bGw7XG5cdFx0fVxuXHRcdHJldHVybiAob0NvbnRlbnQgYXMgQ29udHJvbCk/LmdldElkRm9yTGFiZWwoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXR0ZXIgZm9yIGVkaXRNb2RlLlxuXHQgKiBAcGFyYW0gdmFsdWVcblx0ICovXG5cdHNldEVkaXRNb2RlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5zd2l0Y2hUb0Rpc3BsYXlUaW1lT3V0SWQpIHtcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnN3aXRjaFRvRGlzcGxheVRpbWVPdXRJZCk7XG5cdFx0XHR0aGlzLnN3aXRjaFRvRGlzcGxheVRpbWVPdXRJZCA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0aWYgKHRoaXMuZGVsYXlTd2l0Y2hUb0Rpc3BsYXkgJiYgdGhpcy5lZGl0TW9kZSAmJiB2YWx1ZSA9PT0gXCJEaXNwbGF5XCIgJiYgdGhpcy5lZGl0TW9kZSAhPT0gXCJEaXNwbGF5XCIpIHtcblx0XHRcdHRoaXMuc3dpdGNoVG9EaXNwbGF5VGltZU91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLnNldFByb3BlcnR5KFwiZWRpdE1vZGVcIiwgdmFsdWUpO1xuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKTtcblx0XHRcdFx0dGhpcy5zd2l0Y2hUb0Rpc3BsYXlUaW1lT3V0SWQgPSB1bmRlZmluZWQ7XG5cdFx0XHR9LCAxMDApOyAvLyB3b3JrYXJvdW5kIHRvIGVuc3VyZSBpbnB1dCBmb2N1c291dCBkb2VzIG5vdCB0cmlnZ2VyIGEgUGF0Y2ggcmVxdWVzdFxuXHRcdFx0Ly8gRElOQzA1MjQ4NzJcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcImVkaXRNb2RlXCIsIHZhbHVlKTtcblx0XHR9XG5cdH1cblxuXHRfc2V0QXJpYUxhYmVsbGVkQnkob0NvbnRlbnQ/OiBDb250cm9sV2l0aEFjY2Vzc2liaWxpdHkpOiB2b2lkIHtcblx0XHRpZiAob0NvbnRlbnQgJiYgb0NvbnRlbnQuYWRkQXJpYUxhYmVsbGVkQnkpIHtcblx0XHRcdGNvbnN0IGFBcmlhTGFiZWxsZWRCeSA9IHRoaXMuYXJpYUxhYmVsbGVkQnk7XG5cblx0XHRcdGZvciAoY29uc3Qgc0lkIG9mIGFBcmlhTGFiZWxsZWRCeSkge1xuXHRcdFx0XHRjb25zdCBhQXJpYUxhYmVsbGVkQnlzID0gb0NvbnRlbnQuZ2V0QXJpYUxhYmVsbGVkQnkoKSB8fCBbXTtcblx0XHRcdFx0aWYgKCFhQXJpYUxhYmVsbGVkQnlzLmluY2x1ZGVzKHNJZCkpIHtcblx0XHRcdFx0XHRvQ29udGVudC5hZGRBcmlhTGFiZWxsZWRCeShzSWQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0b25CZWZvcmVSZW5kZXJpbmcoKTogdm9pZCB7XG5cdFx0Ly8gYmVmb3JlIGNhbGxpbmcgdGhlIHJlbmRlcmVyIG9mIHRoZSBGaWVsZFdyYXBwZXIgcGFyZW50IGNvbnRyb2wgbWF5IGhhdmUgc2V0IGFyaWFMYWJlbGxlZEJ5XG5cdFx0Ly8gd2UgZW5zdXJlIGl0IGlzIHBhc3NlZCB0byBpdHMgaW5uZXIgY29udHJvbHNcblx0XHR0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeSh0aGlzLmNvbnRlbnREaXNwbGF5KTtcblx0XHRjb25zdCBhQ29udGVudEVkaXQgPSB0aGlzLmNvbnRlbnRFZGl0O1xuXHRcdGZvciAoY29uc3QgaXRlbSBvZiBhQ29udGVudEVkaXQpIHtcblx0XHRcdHRoaXMuX3NldEFyaWFMYWJlbGxlZEJ5KGl0ZW0pO1xuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogRmllbGRXcmFwcGVyKTogdm9pZCB7XG5cdFx0b1JtLm9wZW5TdGFydChcImRpdlwiLCBvQ29udHJvbCk7XG5cdFx0b1JtLnN0eWxlKFwidGV4dC1hbGlnblwiLCBvQ29udHJvbC50ZXh0QWxpZ24pO1xuXHRcdGlmIChvQ29udHJvbC5lZGl0TW9kZSA9PT0gXCJEaXNwbGF5XCIpIHtcblx0XHRcdG9SbS5zdHlsZShcIndpZHRoXCIsIG9Db250cm9sLndpZHRoKTtcblx0XHRcdGNvbnN0IHBhcmVudENvbnRyb2wgPSBvQ29udHJvbC5nZXRQYXJlbnQoKSBhcyBGaWVsZDtcblx0XHRcdGlmIChwYXJlbnRDb250cm9sLmhhc0lubGluZUVkaXQgJiYgcGFyZW50Q29udHJvbC5mb3JtYXRPcHRpb25zPy5yZWFjdGl2ZUFyZWFNb2RlICE9PSBcIk92ZXJsYXlcIikge1xuXHRcdFx0XHQvLyB0b29sdGlwXG5cdFx0XHRcdG9SbS5hdHRyKFwidGl0bGVcIiwgb0NvbnRyb2wucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fSU5MSU5FX0VESVRfVE9PTFRJUF9ET1VCTEVDTElDS19FRElUXCIpKTtcblx0XHRcdFx0Ly8gZm9jdXNcblx0XHRcdFx0b1JtLmF0dHIoXCJ0YWJpbmRleFwiLCAwKTtcblx0XHRcdH1cblx0XHRcdG9SbS5vcGVuRW5kKCk7XG5cdFx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5jb250ZW50RGlzcGxheSk7IC8vIHJlbmRlciB0aGUgY2hpbGQgQ29udHJvbCBmb3IgZGlzcGxheVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBhQ29udGVudEVkaXQgPSBvQ29udHJvbC5jb250ZW50RWRpdDtcblxuXHRcdFx0b1JtLnN0eWxlKFwid2lkdGhcIiwgb0NvbnRyb2wud2lkdGgpO1xuXHRcdFx0b1JtLm9wZW5FbmQoKTtcblx0XHRcdGZvciAoY29uc3Qgb0NvbnRlbnQgb2YgYUNvbnRlbnRFZGl0KSB7XG5cdFx0XHRcdC8vIHJlbmRlciB0aGUgY2hpbGQgQ29udHJvbCAgZm9yIGVkaXRcblx0XHRcdFx0b1JtLnJlbmRlckNvbnRyb2wob0NvbnRlbnQpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRvUm0uY2xvc2UoXCJkaXZcIik7IC8vIGVuZCBvZiB0aGUgY29tcGxldGUgQ29udHJvbFxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZpZWxkV3JhcHBlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BZU1BLFlBQVksSUFBQUMsSUFBQSxHQURqQkMsY0FBYyxDQUFDLHFDQUFxQyxDQUFDLEVBQUFDLEtBQUEsR0FFcERDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLEVBQUFDLEtBQUEsR0FHOUNDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBd0IsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHM0NGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUscUJBQXFCO0lBQUVFLFlBQVksRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBRzdESixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUUsWUFBWSxFQUFFO0VBQU0sQ0FBQyxDQUFDLEVBQUFFLEtBQUEsR0FHbERMLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsUUFBUTtJQUFFRSxZQUFZLEVBQUU7RUFBVSxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQUdyRE4sUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFTO0lBQUVFLFlBQVksRUFBRTtFQUFNLENBQUMsQ0FBQyxFQUFBSSxLQUFBLEdBR2xEUCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUUsWUFB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
|
|
@@ -34,6 +34,7 @@ class FieldWrapper extends Control implements IFormContent {
|
|
|
34
34
|
|
|
35
35
|
@property({ type: "boolean", defaultValue: false })
|
|
36
36
|
delaySwitchToDisplay!: boolean;
|
|
37
|
+
|
|
37
38
|
/**
|
|
38
39
|
* Association to controls / IDs that label this control (see WAI-ARIA attribute aria-labelledby).
|
|
39
40
|
*/
|
|
@@ -48,6 +49,8 @@ class FieldWrapper extends Control implements IFormContent {
|
|
|
48
49
|
|
|
49
50
|
private resourceBundle: ResourceBundle;
|
|
50
51
|
|
|
52
|
+
private switchToDisplayTimeOutId?: number;
|
|
53
|
+
|
|
51
54
|
constructor(
|
|
52
55
|
id?: string | undefined | (PropertiesOf<FieldWrapper> & $ControlSettings),
|
|
53
56
|
settings?: $ControlSettings & PropertiesOf<FieldWrapper>
|
|
@@ -112,10 +115,15 @@ class FieldWrapper extends Control implements IFormContent {
|
|
|
112
115
|
* @param value
|
|
113
116
|
*/
|
|
114
117
|
setEditMode(value: string): void {
|
|
118
|
+
if (this.switchToDisplayTimeOutId) {
|
|
119
|
+
clearTimeout(this.switchToDisplayTimeOutId);
|
|
120
|
+
this.switchToDisplayTimeOutId = undefined;
|
|
121
|
+
}
|
|
115
122
|
if (this.delaySwitchToDisplay && this.editMode && value === "Display" && this.editMode !== "Display") {
|
|
116
|
-
setTimeout(() => {
|
|
123
|
+
this.switchToDisplayTimeOutId = window.setTimeout(() => {
|
|
117
124
|
this.setProperty("editMode", value);
|
|
118
125
|
this.invalidate();
|
|
126
|
+
this.switchToDisplayTimeOutId = undefined;
|
|
119
127
|
}, 100); // workaround to ensure input focusout does not trigger a Patch request
|
|
120
128
|
// DINC0524872
|
|
121
129
|
} else {
|
|
@@ -151,7 +159,8 @@ class FieldWrapper extends Control implements IFormContent {
|
|
|
151
159
|
oRm.style("text-align", oControl.textAlign);
|
|
152
160
|
if (oControl.editMode === "Display") {
|
|
153
161
|
oRm.style("width", oControl.width);
|
|
154
|
-
|
|
162
|
+
const parentControl = oControl.getParent() as Field;
|
|
163
|
+
if (parentControl.hasInlineEdit && parentControl.formatOptions?.reactiveAreaMode !== "Overlay") {
|
|
155
164
|
// tooltip
|
|
156
165
|
oRm.attr("title", oControl.resourceBundle.getText("M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT"));
|
|
157
166
|
// focus
|
|
@@ -2,7 +2,7 @@
|
|
|
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/base/Log", "sap/fe/base/ClassSupport", "sap/fe/macros/controls/filterbar/FilterContainer", "sap/fe/macros/controls/filterbar/VisualFilterContainer", "sap/ui/core/Element", "sap/ui/mdc/FilterBar", "sap/ui/mdc/filterbar/aligned/FilterItemLayout"], function (Log, ClassSupport, FilterContainer, VisualFilterContainer, Element, MdcFilterBar, FilterItemLayout) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/macros/controls/filterbar/FilterContainer", "sap/fe/macros/controls/filterbar/VisualFilterContainer", "sap/ui/core/Element", "sap/ui/mdc/FilterBar", "sap/ui/mdc/filterbar/aligned/FilterItemLayout", "./filterbar/utils/VisualFilterUtils"], function (Log, ClassSupport, FilterContainer, VisualFilterContainer, Element, MdcFilterBar, FilterItemLayout, VisualFilterUtils) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2;
|
|
@@ -14,6 +14,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/macros/contro
|
|
|
14
14
|
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
15
15
|
function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
|
|
16
16
|
function _initializerWarningHelper(r, e) { throw Error("Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform."); }
|
|
17
|
+
const VISUAL_FILTER_CONTAINER = "sap.fe.macros.controls.filterbar.VisualFilterContainer",
|
|
18
|
+
FILTER_CONTAINER = "sap.fe.macros.controls.filterbar.FilterContainer";
|
|
17
19
|
let FilterBar = (_dec = defineUI5Class("sap.fe.macros.controls.FilterBar"), _dec2 = property({
|
|
18
20
|
type: "string",
|
|
19
21
|
defaultValue: "compact"
|
|
@@ -168,6 +170,51 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/macros/contro
|
|
|
168
170
|
};
|
|
169
171
|
_proto.getSegmentedButton = function getSegmentedButton() {
|
|
170
172
|
return this._oSegmentedButton;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Enable or disable requests that are initiated by the FilterBar.
|
|
177
|
+
*
|
|
178
|
+
* To be used to suspend or resume requests(table or visual filters) when the filter bar is being modified or when the user is programmatically interacting with the filter controls.
|
|
179
|
+
* This method is also used to control whether the visual filter chart binding should be resumed/suspended based on the diff state, and resumed after conditon model update.
|
|
180
|
+
* @param enable Enable or disable requests
|
|
181
|
+
* @param diffState If there is a differnce in the external state that needs to be considered for visual filter in-parameters
|
|
182
|
+
*/;
|
|
183
|
+
_proto.enableRequests = function enableRequests(enable, diffState) {
|
|
184
|
+
this.setSuspendSelection(!enable);
|
|
185
|
+
// We need to enable or disable the visual filter chart bindings based on diff state.
|
|
186
|
+
this._enableVisualFilterChartBindings(enable, diffState);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Get the filter layout by its type.
|
|
191
|
+
* @param layoutClassName The class name of the filter layout to be returned.
|
|
192
|
+
* @template T The type of the filter layout to be returned.
|
|
193
|
+
* @typedef {IFilterContainer} T The type of the filter layout to be returned
|
|
194
|
+
* @returns Corresponding filter layout if it exists, otherwise undefined.
|
|
195
|
+
*/;
|
|
196
|
+
_proto._getFilterLayoutByType = function _getFilterLayoutByType(layoutClassName) {
|
|
197
|
+
const retFilterLayout = this._oFilterBarLayout.isA(layoutClassName) ? this._oFilterBarLayout : undefined;
|
|
198
|
+
return !retFilterLayout && this._oSecondaryFilterBarLayout?.isA(layoutClassName) ? this._oSecondaryFilterBarLayout : retFilterLayout;
|
|
199
|
+
};
|
|
200
|
+
_proto._enableVisualFilterChartBindings = function _enableVisualFilterChartBindings(enable, diffState) {
|
|
201
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
202
|
+
// @ts-ignore
|
|
203
|
+
const visualFilterLayout = this._getFilterLayoutByType(VISUAL_FILTER_CONTAINER);
|
|
204
|
+
if (visualFilterLayout) {
|
|
205
|
+
visualFilterLayout.enableChartBinding(enable, diffState);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// If initial layout is compact, we don't have the visual filter layout(container) available yet until the user toggles to visual filter layout.
|
|
210
|
+
// So we need to check if the compact filter layout has visual filters and enable/disable the chart binding for those visual filters.
|
|
211
|
+
const compactFilterLayout = this._getFilterLayoutByType(FILTER_CONTAINER);
|
|
212
|
+
if (compactFilterLayout) {
|
|
213
|
+
const visualFilters = compactFilterLayout.getAllVisualFilterFields();
|
|
214
|
+
if (visualFilters) {
|
|
215
|
+
VisualFilterUtils.enableChartBinding(visualFilters, enable, diffState);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
171
218
|
};
|
|
172
219
|
return FilterBar;
|
|
173
220
|
}(MdcFilterBar), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "initialLayout", [_dec2], {
|
|
@@ -183,4 +230,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/macros/contro
|
|
|
183
230
|
}), _class2)) || _class);
|
|
184
231
|
return FilterBar;
|
|
185
232
|
}, false);
|
|
186
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWx0ZXJCYXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsIl9kZWMzIiwiYXNzb2NpYXRpb24iLCJtdWx0aXBsZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfTWRjRmlsdGVyQmFyIiwiaWRPclByb3BzIiwic2V0dGluZ3MiLCJfdGhpcyIsInByb3BlcnR5SW5mbyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2lzSW5pdGlhbGl6ZWQiLCJfaW5pdGlhbGl6ZVN0YXR1cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwid2FpdEZvckluaXRpYWxpemF0aW9uIiwiaXNJbml0aWFsaXplZCIsInNldFRvZ2dsZUNvbnRyb2wiLCJ2VG9nZ2xlIiwiX29TZWdtZW50ZWRCdXR0b24iLCJFbGVtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0b2dnbGVDb250cm9sIiwiZGV0YWNoRXZlbnQiLCJfdG9nZ2xlTGF5b3V0IiwiYmluZCIsImF0dGFjaEV2ZW50Iiwic2V0QXNzb2NpYXRpb24iLCJ0aGVuIiwidGFyZ2V0S2V5IiwiZ2V0U2VsZWN0ZWRLZXkiLCJfb0ZpbHRlckJhckxheW91dCIsImlzQSIsIl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0IiwiVmlzdWFsRmlsdGVyQ29udGFpbmVyIiwic2V0U2hvd0FkYXB0RmlsdGVyc0J1dHRvbiIsIm9DdXJyZW50RmlsdGVyQmFyTGF5b3V0Iiwib0ZpbHRlckl0ZW1zIiwiZ2V0RmlsdGVySXRlbXMiLCJhRmlsdGVyRmllbGRzIiwiZ2V0QWxsRmlsdGVyRmllbGRzIiwiYVNvcnRlZEZpbHRlckZpZWxkcyIsImdldFNvcnRlZEZpbHRlckZpZWxkcyIsImFCdXR0b25zIiwiZ2V0QWxsQnV0dG9ucyIsImFWaXN1YWxGaWx0ZXJGaWVsZHMiLCJnZXRBbGxWaXN1YWxGaWx0ZXJGaWVsZHMiLCJzZXRBbGxGaWx0ZXJGaWVsZHMiLCJmb3JFYWNoIiwib0ZpbHRlckZpZWxkIiwiaUluZGV4IiwicmVtb3ZlRmlsdGVyRmllbGQiLCJpbnNlcnRGaWx0ZXJGaWVsZCIsIm9CdXR0b24iLCJyZW1vdmVCdXR0b24iLCJhZGRCdXR0b24iLCJzZXRBZ2dyZWdhdGlvbiIsImludmFsaWRhdGUiLCJjYXRjaCIsImVycm9yIiwiTG9nIiwiYUZpbHRlckl0ZW1zIiwiYUZpbHRlcklkcyIsIm9GaWx0ZXJJdGVtIiwicHVzaCIsImdldElkIiwic29ydCIsImFGaXJzdEl0ZW0iLCJhU2Vjb25kSXRlbSIsInNGaXJzdEl0ZW1WRklkIiwic1NlY29uZEl0ZW1WRklkIiwiZ2V0Q29udGVudCIsIm9Jbm5lckNvbnRyb2wiLCJpbmRleE9mIiwiX2NyZWF0ZUlubmVyTGF5b3V0IiwiRmlsdGVyQ29udGFpbmVyIiwiX2NMYXlvdXRJdGVtIiwiRmlsdGVySXRlbUxheW91dCIsImdldElubmVyIiwiYWRkU3R5bGVDbGFzcyIsIl9hZGRCdXR0b25zIiwib0lubmVyTGF5b3V0Iiwib0ZpbHRlckNvbnRhaW5lcklubmVyTGF5b3V0RXZlbnREZWxlZ2F0ZSIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiaW5pdGlhbExheW91dCIsInJlbW92ZUV2ZW50RGVsZWdhdGUiLCJhZGRFdmVudERlbGVnYXRlIiwiZXhpdCIsImdldFNlZ21lbnRlZEJ1dHRvbiIsIk1kY0ZpbHRlckJhciIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlsdGVyQmFyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBhc3NvY2lhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEZpbHRlckNvbnRhaW5lciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9maWx0ZXJiYXIvRmlsdGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBWaXN1YWxGaWx0ZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvY29udHJvbHMvZmlsdGVyYmFyL1Zpc3VhbEZpbHRlclwiO1xuaW1wb3J0IFZpc3VhbEZpbHRlckNvbnRhaW5lciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9maWx0ZXJiYXIvVmlzdWFsRmlsdGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBCdXR0b24gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUgU2VnbWVudGVkQnV0dG9uIGZyb20gXCJzYXAvbS9TZWdtZW50ZWRCdXR0b25cIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgdHlwZSB7ICRGaWx0ZXJCYXJTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IE1kY0ZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIEZpbHRlckZpZWxkIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckZpZWxkXCI7XG5pbXBvcnQgdHlwZSBJRmlsdGVyQ29udGFpbmVyIGZyb20gXCJzYXAvdWkvbWRjL2ZpbHRlcmJhci9JRmlsdGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgRmlsdGVySXRlbUxheW91dCBmcm9tIFwic2FwL3VpL21kYy9maWx0ZXJiYXIvYWxpZ25lZC9GaWx0ZXJJdGVtTGF5b3V0XCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuRmlsdGVyQmFyXCIpXG5jbGFzcyBGaWx0ZXJCYXIgZXh0ZW5kcyBNZGNGaWx0ZXJCYXIge1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCBkZWZhdWx0VmFsdWU6IFwiY29tcGFjdFwiIH0pXG5cdGluaXRpYWxMYXlvdXQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRyb2wgd2hpY2ggYWxsb3dzIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiB2aXN1YWwgYW5kIG5vcm1hbCBmaWx0ZXIgbGF5b3V0c1xuXHQgKi9cblx0QGFzc29jaWF0aW9uKHtcblx0XHR0eXBlOiBcInNhcC5tLlNlZ21lbnRlZEJ1dHRvblwiLFxuXHRcdG11bHRpcGxlOiBmYWxzZVxuXHR9KVxuXHR0b2dnbGVDb250cm9sITogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKGlkT3JQcm9wcz86IFByb3BlcnRpZXNPZjxGaWx0ZXJCYXI+ICYgJEZpbHRlckJhclNldHRpbmdzLCBzZXR0aW5ncz86IFByb3BlcnRpZXNPZjxGaWx0ZXJCYXI+ICYgJEZpbHRlckJhclNldHRpbmdzKSB7XG5cdFx0ZGVsZXRlIGlkT3JQcm9wcz8ucHJvcGVydHlJbmZvO1xuXHRcdGRlbGV0ZSBzZXR0aW5ncz8ucHJvcGVydHlJbmZvO1xuXHRcdHN1cGVyKGlkT3JQcm9wcyBhcyB1bmtub3duIGFzIHN0cmluZywgc2V0dGluZ3MpO1xuXHRcdHRoaXMuX2luaXRpYWxpemVTdGF0dXMoKTtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgX2luaXRpYWxpemVTdGF0dXMoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpcy53YWl0Rm9ySW5pdGlhbGl6YXRpb24oKTtcblx0XHR0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcblx0fVxuXG5cdGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICEhdGhpcy5faXNJbml0aWFsaXplZDtcblx0fVxuXG5cdHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuXHRwcml2YXRlIF9vU2VnbWVudGVkQnV0dG9uPzogU2VnbWVudGVkQnV0dG9uO1xuXG5cdHByaXZhdGUgX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQ/OiBJRmlsdGVyQ29udGFpbmVyO1xuXG5cdHByaXZhdGUgX29GaWx0ZXJCYXJMYXlvdXQhOiBJRmlsdGVyQ29udGFpbmVyO1xuXG5cdHByaXZhdGUgX2NMYXlvdXRJdGVtOiB0eXBlb2YgRmlsdGVySXRlbUxheW91dDtcblxuXHRzZXRUb2dnbGVDb250cm9sKHZUb2dnbGU6IHN0cmluZyB8IFNlZ21lbnRlZEJ1dHRvbik6IHZvaWQge1xuXHRcdGlmICh0eXBlb2YgdlRvZ2dsZSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0dGhpcy5fb1NlZ21lbnRlZEJ1dHRvbiA9IEVsZW1lbnQuZ2V0RWxlbWVudEJ5SWQodlRvZ2dsZSkgYXMgU2VnbWVudGVkQnV0dG9uO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9vU2VnbWVudGVkQnV0dG9uID0gdlRvZ2dsZTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy50b2dnbGVDb250cm9sICYmIHRoaXMuX29TZWdtZW50ZWRCdXR0b24pIHtcblx0XHRcdHRoaXMuX29TZWdtZW50ZWRCdXR0b24uZGV0YWNoRXZlbnQoXCJzZWxlY3Rpb25DaGFuZ2VcIiwgdGhpcy5fdG9nZ2xlTGF5b3V0LmJpbmQodGhpcykpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5fb1NlZ21lbnRlZEJ1dHRvbikge1xuXHRcdFx0dGhpcy5fb1NlZ21lbnRlZEJ1dHRvbi5hdHRhY2hFdmVudChcInNlbGVjdGlvbkNoYW5nZVwiLCB0aGlzLl90b2dnbGVMYXlvdXQuYmluZCh0aGlzKSk7XG5cdFx0fVxuXHRcdHRoaXMuc2V0QXNzb2NpYXRpb24oXCJ0b2dnbGVDb250cm9sXCIsIHZUb2dnbGUsIHRydWUpO1xuXHR9XG5cblx0X3RvZ2dsZUxheW91dCgpOiB2b2lkIHtcblx0XHQvLyBTaW5jZSBwcmltYXJ5IGxheW91dCBpcyBhbHdheXMgY29tcGFjdFxuXHRcdC8vIGhlbmNlIHNldCB0aGUgc2Vjb25kYXJ5IGxheW91dCBhcyB2aXN1YWwgZmlsdGVyIG9ubHkgZm9yIHRoZSBmaXJzdCB0aW1lIG9ubHlcblx0XHR0aGlzLndhaXRGb3JJbml0aWFsaXphdGlvbigpXG5cdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHRhcmdldEtleSA9IHRoaXMuX29TZWdtZW50ZWRCdXR0b24/LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHQodGFyZ2V0S2V5ID09PSBcInZpc3VhbFwiICYmXG5cdFx0XHRcdFx0XHR0aGlzLl9vRmlsdGVyQmFyTGF5b3V0Py5pc0E8VmlzdWFsRmlsdGVyQ29udGFpbmVyPihcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlckNvbnRhaW5lclwiKSkgfHxcblx0XHRcdFx0XHQodGFyZ2V0S2V5ID09PSBcImNvbXBhY3RcIiAmJlxuXHRcdFx0XHRcdFx0IXRoaXMuX29GaWx0ZXJCYXJMYXlvdXQ/LmlzQTxWaXN1YWxGaWx0ZXJDb250YWluZXI+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5maWx0ZXJiYXIuVmlzdWFsRmlsdGVyQ29udGFpbmVyXCIpKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCF0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0KSB7XG5cdFx0XHRcdFx0dGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dCA9IG5ldyBWaXN1YWxGaWx0ZXJDb250YWluZXIoKSBhcyB1bmtub3duIGFzIElGaWx0ZXJDb250YWluZXI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBkbyBub3Qgc2hvdyBBZGFwdCBGaWx0ZXJzIEJ1dHRvbiBmb3IgdmlzdWFsIGxheW91dFxuXHRcdFx0XHRpZiAodGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dD8uaXNBPFZpc3VhbEZpbHRlckNvbnRhaW5lcj4oXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIikpIHtcblx0XHRcdFx0XHR0aGlzLnNldFNob3dBZGFwdEZpbHRlcnNCdXR0b24oZmFsc2UpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuc2V0U2hvd0FkYXB0RmlsdGVyc0J1dHRvbih0cnVlKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIGdldCBhbGwgZmlsdGVyIGZpZWxkcyBhbmQgYnV0dG9uIG9mIHRoZSBjdXJyZW50IGxheW91dFxuXHRcdFx0XHRjb25zdCBvQ3VycmVudEZpbHRlckJhckxheW91dCA9IHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQ7XG5cdFx0XHRcdGNvbnN0IG9GaWx0ZXJJdGVtcyA9IHRoaXMuZ2V0RmlsdGVySXRlbXMoKTtcblx0XHRcdFx0Y29uc3QgYUZpbHRlckZpZWxkcyA9IG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0LmdldEFsbEZpbHRlckZpZWxkcygpO1xuXHRcdFx0XHRjb25zdCBhU29ydGVkRmlsdGVyRmllbGRzID0gdGhpcy5nZXRTb3J0ZWRGaWx0ZXJGaWVsZHMob0ZpbHRlckl0ZW1zLCBhRmlsdGVyRmllbGRzKTtcblx0XHRcdFx0Y29uc3QgYUJ1dHRvbnMgPSBvQ3VycmVudEZpbHRlckJhckxheW91dC5nZXRBbGxCdXR0b25zKCk7XG5cdFx0XHRcdGNvbnN0IGFWaXN1YWxGaWx0ZXJGaWVsZHMgPVxuXHRcdFx0XHRcdG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0LmdldEFsbFZpc3VhbEZpbHRlckZpZWxkcyAmJlxuXHRcdFx0XHRcdChvQ3VycmVudEZpbHRlckJhckxheW91dC5nZXRBbGxWaXN1YWxGaWx0ZXJGaWVsZHMoKSBhcyBSZWNvcmQ8c3RyaW5nLCBWaXN1YWxGaWx0ZXI+IHwgdW5kZWZpbmVkKTtcblx0XHRcdFx0aWYgKHRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQ/LmlzQTxWaXN1YWxGaWx0ZXJDb250YWluZXI+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5maWx0ZXJiYXIuVmlzdWFsRmlsdGVyQ29udGFpbmVyXCIpKSB7XG5cdFx0XHRcdFx0dGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dC5zZXRBbGxGaWx0ZXJGaWVsZHMoYVNvcnRlZEZpbHRlckZpZWxkcywgYVZpc3VhbEZpbHRlckZpZWxkcyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gdXNlIHNlY29uZGFyeSBmaWx0ZXIgYmFyIGxheW91dCBhcyBuZXcgbGF5b3V0XG5cdFx0XHRcdHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQgPSB0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0ITtcblxuXHRcdFx0XHQvLyBpbnNlcnQgYWxsIGZpbHRlciBmaWVsZHMgZnJvbSBjdXJyZW50IGxheW91dCB0byBuZXcgbGF5b3V0XG5cdFx0XHRcdGFGaWx0ZXJGaWVsZHMuZm9yRWFjaCgob0ZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCwgaUluZGV4OiBudW1iZXIpID0+IHtcblx0XHRcdFx0XHRvQ3VycmVudEZpbHRlckJhckxheW91dC5yZW1vdmVGaWx0ZXJGaWVsZChvRmlsdGVyRmllbGQpO1xuXHRcdFx0XHRcdHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQuaW5zZXJ0RmlsdGVyRmllbGQob0ZpbHRlckZpZWxkLCBpSW5kZXgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Ly8gaW5zZXJ0IGFsbCBidXR0b25zIGZyb20gdGhlIGN1cnJlbnQgbGF5b3V0IHRvIHRoZSBuZXcgbGF5b3V0XG5cdFx0XHRcdGFCdXR0b25zLmZvckVhY2goKG9CdXR0b246IEJ1dHRvbikgPT4ge1xuXHRcdFx0XHRcdG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0LnJlbW92ZUJ1dHRvbihvQnV0dG9uKTtcblx0XHRcdFx0XHR0aGlzLl9vRmlsdGVyQmFyTGF5b3V0LmFkZEJ1dHRvbihvQnV0dG9uKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gc2V0IHRoZSBjdXJyZW50IGZpbHRlciBiYXIgbGF5b3V0IHRvIHRoZSBzZWNvbmRhcnkgb25lXG5cdFx0XHRcdHRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQgPSBvQ3VycmVudEZpbHRlckJhckxheW91dDtcblxuXHRcdFx0XHQvLyB1cGRhdGUgdGhlIGxheW91dCBhZ2dyZWdhdGlvbiBvZiB0aGUgZmlsdGVyIGJhciBhbmQgcmVyZW5kZXIgdGhlIHNhbWUuXG5cdFx0XHRcdHRoaXMuc2V0QWdncmVnYXRpb24oXCJsYXlvdXRcIiwgdGhpcy5fb0ZpbHRlckJhckxheW91dCwgdHJ1ZSk7XG5cdFx0XHRcdHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQuaW52YWxpZGF0ZSgpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKChlcnJvcikgPT4ge1xuXHRcdFx0XHRMb2cuZXJyb3IoZXJyb3IpO1xuXHRcdFx0fSk7XG5cdH1cblxuXHRnZXRTb3J0ZWRGaWx0ZXJGaWVsZHMoYUZpbHRlckl0ZW1zOiBGaWx0ZXJGaWVsZFtdLCBhRmlsdGVyRmllbGRzOiBGaWx0ZXJGaWVsZFtdKTogRmlsdGVyRmllbGRbXSB7XG5cdFx0Y29uc3QgYUZpbHRlcklkczogc3RyaW5nW10gPSBbXTtcblx0XHRhRmlsdGVySXRlbXMuZm9yRWFjaChmdW5jdGlvbiAob0ZpbHRlckl0ZW06IEZpbHRlckZpZWxkKSB7XG5cdFx0XHRhRmlsdGVySWRzLnB1c2gob0ZpbHRlckl0ZW0uZ2V0SWQoKSk7XG5cdFx0fSk7XG5cdFx0YUZpbHRlckZpZWxkcy5zb3J0KGZ1bmN0aW9uIChhRmlyc3RJdGVtOiBGaWx0ZXJGaWVsZCwgYVNlY29uZEl0ZW06IEZpbHRlckZpZWxkKSB7XG5cdFx0XHRsZXQgc0ZpcnN0SXRlbVZGSWQsIHNTZWNvbmRJdGVtVkZJZDtcblx0XHRcdChhRmlyc3RJdGVtLmdldENvbnRlbnQoKSBhcyB1bmtub3duIGFzIENvbnRyb2xbXSkuZm9yRWFjaChmdW5jdGlvbiAob0lubmVyQ29udHJvbDogQ29udHJvbCkge1xuXHRcdFx0XHRpZiAob0lubmVyQ29udHJvbC5pc0E8RmlsdGVyRmllbGQ+KFwic2FwLnVpLm1kYy5GaWx0ZXJGaWVsZFwiKSkge1xuXHRcdFx0XHRcdHNGaXJzdEl0ZW1WRklkID0gb0lubmVyQ29udHJvbC5nZXRJZCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdChhU2Vjb25kSXRlbS5nZXRDb250ZW50KCkgYXMgdW5rbm93biBhcyBDb250cm9sW10pLmZvckVhY2goZnVuY3Rpb24gKG9Jbm5lckNvbnRyb2w6IENvbnRyb2wpIHtcblx0XHRcdFx0aWYgKG9Jbm5lckNvbnRyb2wuaXNBPEZpbHRlckZpZWxkPihcInNhcC51aS5tZGMuRmlsdGVyRmllbGRcIikpIHtcblx0XHRcdFx0XHRzU2Vjb25kSXRlbVZGSWQgPSBvSW5uZXJDb250cm9sLmdldElkKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGFGaWx0ZXJJZHMuaW5kZXhPZihzRmlyc3RJdGVtVkZJZCA/PyBcIlwiKSAtIGFGaWx0ZXJJZHMuaW5kZXhPZihzU2Vjb25kSXRlbVZGSWQgPz8gXCJcIik7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIGFGaWx0ZXJGaWVsZHM7XG5cdH1cblxuXHRfY3JlYXRlSW5uZXJMYXlvdXQoKTogdm9pZCB7XG5cdFx0dGhpcy5fb0ZpbHRlckJhckxheW91dCA9IG5ldyBGaWx0ZXJDb250YWluZXIoKTtcblx0XHR0aGlzLl9jTGF5b3V0SXRlbSA9IEZpbHRlckl0ZW1MYXlvdXQ7XG5cdFx0dGhpcy5fb0ZpbHRlckJhckxheW91dC5nZXRJbm5lcigpLmFkZFN0eWxlQ2xhc3MoXCJzYXBVaU1kY0ZpbHRlckJhckJhc2VBRkxheW91dFwiKTtcblx0XHR0aGlzLl9hZGRCdXR0b25zKCk7XG5cblx0XHQvLyBUT0RPOiBDaGVjayB3aXRoIE1EQyBpZiB0aGVyZSBpcyBhIGJldHRlciB3YXkgdG8gbG9hZCB2aXN1YWwgZmlsdGVyIG9uIHRoZSBiYXNpcyBvZiBjb250cm9sIHByb3BlcnR5XG5cdFx0Ly8gX2NyZWF0ZUlubmVyTGF5b3V0IGlzIGNhbGxlZCBvbiBJbml0IGJ5IHRoZSBmaWx0ZXIgYmFyIGJhc2UuXG5cdFx0Ly8gVGhpcyBtZWFuIHRoYXQgd2UgZG8gbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBjb250cm9sIHByb3BlcnRpZXMgeWV0XG5cdFx0Ly8gYW5kIGhlbmNlIHdlIGNhbm5vdCBkZWNpZGUgb24gdGhlIGJhc2lzIG9mIGNvbnRyb2wgcHJvcGVydGllcyB3aGV0aGVyIGluaXRpYWwgbGF5b3V0IHNob3VsZCBiZSBjb21wYWN0IG9yIHZpc3VhbFxuXHRcdC8vIEFzIGEgcmVzdWx0IHdlIGhhdmUgdG8gZG8gdGhpcyB3b3JrYXJvdW5kIHRvIGFsd2F5cyBsb2FkIHRoZSBjb21wYWN0IGxheW91dCBieSBkZWZhdWx0XG5cdFx0Ly8gQW5kIHRvb2dsZSB0aGUgc2FtZSBpbiBjYXNlIHRoZSBpbml0aWFsTGF5b3V0IHdhcyBzdXBwb3NlZCB0byBiZSB2aXN1YWwgZmlsdGVycy5cblx0XHRjb25zdCBvSW5uZXJMYXlvdXQgPSB0aGlzLl9vRmlsdGVyQmFyTGF5b3V0LmdldElubmVyKCk7XG5cdFx0Y29uc3Qgb0ZpbHRlckNvbnRhaW5lcklubmVyTGF5b3V0RXZlbnREZWxlZ2F0ZSA9IHtcblx0XHRcdG9uQmVmb3JlUmVuZGVyaW5nOiAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLmluaXRpYWxMYXlvdXQgPT09IFwidmlzdWFsXCIpIHtcblx0XHRcdFx0XHR0aGlzLl90b2dnbGVMYXlvdXQoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRvSW5uZXJMYXlvdXQucmVtb3ZlRXZlbnREZWxlZ2F0ZShvRmlsdGVyQ29udGFpbmVySW5uZXJMYXlvdXRFdmVudERlbGVnYXRlKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdG9Jbm5lckxheW91dC5hZGRFdmVudERlbGVnYXRlKG9GaWx0ZXJDb250YWluZXJJbm5lckxheW91dEV2ZW50RGVsZWdhdGUpO1xuXG5cdFx0dGhpcy5zZXRBZ2dyZWdhdGlvbihcImxheW91dFwiLCB0aGlzLl9vRmlsdGVyQmFyTGF5b3V0LCB0cnVlKTtcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0c3VwZXIuZXhpdCgpO1xuXHRcdC8vIFNvbWV0aW1lcyB1cG9uIGV4dGVybmFsIG5hdmlnYXRpb24gdGhpcy5fU2VnbWVudGVkQnV0dG9uIGlzIGFscmVhZHkgZGVzdHJveWVkXG5cdFx0Ly8gc28gY2hlY2sgaWYgaXQgZXhpc3RzIGFuZCB0aGVuIG9ubHkgcmVtb3ZlIHN0dWZmXG5cdFx0aWYgKHRoaXMuX29TZWdtZW50ZWRCdXR0b24pIHtcblx0XHRcdHRoaXMuX29TZWdtZW50ZWRCdXR0b24uZGV0YWNoRXZlbnQoXCJzZWxlY3Rpb25DaGFuZ2VcIiwgdGhpcy5fdG9nZ2xlTGF5b3V0KTtcblx0XHRcdGRlbGV0ZSB0aGlzLl9vU2VnbWVudGVkQnV0dG9uO1xuXHRcdH1cblx0fVxuXG5cdGdldFNlZ21lbnRlZEJ1dHRvbigpOiBTZWdtZW50ZWRCdXR0b24gfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9vU2VnbWVudGVkQnV0dG9uO1xuXHR9XG59XG5pbnRlcmZhY2UgRmlsdGVyQmFyIHtcblx0X2FkZEJ1dHRvbnMoKTogdm9pZDtcbn1cbmV4cG9ydCBkZWZhdWx0IEZpbHRlckJhcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztNQWlCTUEsU0FBUyxJQUFBQyxJQUFBLEdBRGRDLGNBQWMsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFBQyxLQUFBLEdBRWpEQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsWUFBWSxFQUFFO0VBQVUsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FNckRDLFdBQVcsQ0FBQztJQUNaSCxJQUFJLEVBQUUsdUJBQXVCO0lBQzdCSSxRQUFRLEVBQUU7RUFDWCxDQUFDLENBQUMsRUFBQVIsSUFBQSxDQUFBUyxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGFBQUE7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
|
|
233
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWSVNVQUxfRklMVEVSX0NPTlRBSU5FUiIsIkZJTFRFUl9DT05UQUlORVIiLCJGaWx0ZXJCYXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsIl9kZWMzIiwiYXNzb2NpYXRpb24iLCJtdWx0aXBsZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfTWRjRmlsdGVyQmFyIiwiaWRPclByb3BzIiwic2V0dGluZ3MiLCJfdGhpcyIsInByb3BlcnR5SW5mbyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2lzSW5pdGlhbGl6ZWQiLCJfaW5pdGlhbGl6ZVN0YXR1cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwid2FpdEZvckluaXRpYWxpemF0aW9uIiwiaXNJbml0aWFsaXplZCIsInNldFRvZ2dsZUNvbnRyb2wiLCJ2VG9nZ2xlIiwiX29TZWdtZW50ZWRCdXR0b24iLCJFbGVtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0b2dnbGVDb250cm9sIiwiZGV0YWNoRXZlbnQiLCJfdG9nZ2xlTGF5b3V0IiwiYmluZCIsImF0dGFjaEV2ZW50Iiwic2V0QXNzb2NpYXRpb24iLCJ0aGVuIiwidGFyZ2V0S2V5IiwiZ2V0U2VsZWN0ZWRLZXkiLCJfb0ZpbHRlckJhckxheW91dCIsImlzQSIsIl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0IiwiVmlzdWFsRmlsdGVyQ29udGFpbmVyIiwic2V0U2hvd0FkYXB0RmlsdGVyc0J1dHRvbiIsIm9DdXJyZW50RmlsdGVyQmFyTGF5b3V0Iiwib0ZpbHRlckl0ZW1zIiwiZ2V0RmlsdGVySXRlbXMiLCJhRmlsdGVyRmllbGRzIiwiZ2V0QWxsRmlsdGVyRmllbGRzIiwiYVNvcnRlZEZpbHRlckZpZWxkcyIsImdldFNvcnRlZEZpbHRlckZpZWxkcyIsImFCdXR0b25zIiwiZ2V0QWxsQnV0dG9ucyIsImFWaXN1YWxGaWx0ZXJGaWVsZHMiLCJnZXRBbGxWaXN1YWxGaWx0ZXJGaWVsZHMiLCJzZXRBbGxGaWx0ZXJGaWVsZHMiLCJmb3JFYWNoIiwib0ZpbHRlckZpZWxkIiwiaUluZGV4IiwicmVtb3ZlRmlsdGVyRmllbGQiLCJpbnNlcnRGaWx0ZXJGaWVsZCIsIm9CdXR0b24iLCJyZW1vdmVCdXR0b24iLCJhZGRCdXR0b24iLCJzZXRBZ2dyZWdhdGlvbiIsImludmFsaWRhdGUiLCJjYXRjaCIsImVycm9yIiwiTG9nIiwiYUZpbHRlckl0ZW1zIiwiYUZpbHRlcklkcyIsIm9GaWx0ZXJJdGVtIiwicHVzaCIsImdldElkIiwic29ydCIsImFGaXJzdEl0ZW0iLCJhU2Vjb25kSXRlbSIsInNGaXJzdEl0ZW1WRklkIiwic1NlY29uZEl0ZW1WRklkIiwiZ2V0Q29udGVudCIsIm9Jbm5lckNvbnRyb2wiLCJpbmRleE9mIiwiX2NyZWF0ZUlubmVyTGF5b3V0IiwiRmlsdGVyQ29udGFpbmVyIiwiX2NMYXlvdXRJdGVtIiwiRmlsdGVySXRlbUxheW91dCIsImdldElubmVyIiwiYWRkU3R5bGVDbGFzcyIsIl9hZGRCdXR0b25zIiwib0lubmVyTGF5b3V0Iiwib0ZpbHRlckNvbnRhaW5lcklubmVyTGF5b3V0RXZlbnREZWxlZ2F0ZSIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiaW5pdGlhbExheW91dCIsInJlbW92ZUV2ZW50RGVsZWdhdGUiLCJhZGRFdmVudERlbGVnYXRlIiwiZXhpdCIsImdldFNlZ21lbnRlZEJ1dHRvbiIsImVuYWJsZVJlcXVlc3RzIiwiZW5hYmxlIiwiZGlmZlN0YXRlIiwic2V0U3VzcGVuZFNlbGVjdGlvbiIsIl9lbmFibGVWaXN1YWxGaWx0ZXJDaGFydEJpbmRpbmdzIiwiX2dldEZpbHRlckxheW91dEJ5VHlwZSIsImxheW91dENsYXNzTmFtZSIsInJldEZpbHRlckxheW91dCIsInVuZGVmaW5lZCIsInZpc3VhbEZpbHRlckxheW91dCIsImVuYWJsZUNoYXJ0QmluZGluZyIsImNvbXBhY3RGaWx0ZXJMYXlvdXQiLCJ2aXN1YWxGaWx0ZXJzIiwiVmlzdWFsRmlsdGVyVXRpbHMiLCJNZGNGaWx0ZXJCYXIiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZpbHRlckJhci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBGaWx0ZXJDb250YWluZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvY29udHJvbHMvZmlsdGVyYmFyL0ZpbHRlckNvbnRhaW5lclwiO1xuaW1wb3J0IFZpc3VhbEZpbHRlckNvbnRhaW5lciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9maWx0ZXJiYXIvVmlzdWFsRmlsdGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBWaXN1YWxGaWx0ZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvdmlzdWFsZmlsdGVycy9WaXN1YWxGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSBTZWdtZW50ZWRCdXR0b24gZnJvbSBcInNhcC9tL1NlZ21lbnRlZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBFbGVtZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIHsgJEZpbHRlckJhclNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgTWRjRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyRmllbGQgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyRmllbGRcIjtcbmltcG9ydCB0eXBlIElGaWx0ZXJDb250YWluZXIgZnJvbSBcInNhcC91aS9tZGMvZmlsdGVyYmFyL0lGaWx0ZXJDb250YWluZXJcIjtcbmltcG9ydCBGaWx0ZXJJdGVtTGF5b3V0IGZyb20gXCJzYXAvdWkvbWRjL2ZpbHRlcmJhci9hbGlnbmVkL0ZpbHRlckl0ZW1MYXlvdXRcIjtcbmltcG9ydCB7IHR5cGUgRXh0ZXJuYWxTdGF0ZVR5cGUgfSBmcm9tIFwiLi4vdmFsdWVoZWxwL1ZhbHVlSGVscERlbGVnYXRlXCI7XG5pbXBvcnQgVmlzdWFsRmlsdGVyVXRpbHMgZnJvbSBcIi4vZmlsdGVyYmFyL3V0aWxzL1Zpc3VhbEZpbHRlclV0aWxzXCI7XG5cbmNvbnN0IFZJU1VBTF9GSUxURVJfQ09OVEFJTkVSID0gXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIixcblx0RklMVEVSX0NPTlRBSU5FUiA9IFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5maWx0ZXJiYXIuRmlsdGVyQ29udGFpbmVyXCI7XG50eXBlIENvbnRhaW5lclR5cGUgPSB0eXBlb2YgVklTVUFMX0ZJTFRFUl9DT05UQUlORVIgfCB0eXBlb2YgRklMVEVSX0NPTlRBSU5FUjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5GaWx0ZXJCYXJcIilcbmNsYXNzIEZpbHRlckJhciBleHRlbmRzIE1kY0ZpbHRlckJhciB7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogXCJjb21wYWN0XCIgfSlcblx0aW5pdGlhbExheW91dCE6IHN0cmluZztcblxuXHQvKipcblx0ICogQ29udHJvbCB3aGljaCBhbGxvd3MgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIHZpc3VhbCBhbmQgbm9ybWFsIGZpbHRlciBsYXlvdXRzXG5cdCAqL1xuXHRAYXNzb2NpYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLm0uU2VnbWVudGVkQnV0dG9uXCIsXG5cdFx0bXVsdGlwbGU6IGZhbHNlXG5cdH0pXG5cdHRvZ2dsZUNvbnRyb2whOiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IoaWRPclByb3BzPzogUHJvcGVydGllc09mPEZpbHRlckJhcj4gJiAkRmlsdGVyQmFyU2V0dGluZ3MsIHNldHRpbmdzPzogUHJvcGVydGllc09mPEZpbHRlckJhcj4gJiAkRmlsdGVyQmFyU2V0dGluZ3MpIHtcblx0XHRkZWxldGUgaWRPclByb3BzPy5wcm9wZXJ0eUluZm87XG5cdFx0ZGVsZXRlIHNldHRpbmdzPy5wcm9wZXJ0eUluZm87XG5cdFx0c3VwZXIoaWRPclByb3BzIGFzIHVua25vd24gYXMgc3RyaW5nLCBzZXR0aW5ncyk7XG5cdFx0dGhpcy5faW5pdGlhbGl6ZVN0YXR1cygpO1xuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBfaW5pdGlhbGl6ZVN0YXR1cygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCB0aGlzLndhaXRGb3JJbml0aWFsaXphdGlvbigpO1xuXHRcdHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuXHR9XG5cblx0aXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gISF0aGlzLl9pc0luaXRpYWxpemVkO1xuXHR9XG5cblx0cHJpdmF0ZSBfaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuXG5cdHByaXZhdGUgX29TZWdtZW50ZWRCdXR0b24/OiBTZWdtZW50ZWRCdXR0b247XG5cblx0cHJpdmF0ZSBfb1NlY29uZGFyeUZpbHRlckJhckxheW91dD86IElGaWx0ZXJDb250YWluZXI7XG5cblx0cHJpdmF0ZSBfb0ZpbHRlckJhckxheW91dCE6IElGaWx0ZXJDb250YWluZXI7XG5cblx0cHJpdmF0ZSBfY0xheW91dEl0ZW06IHR5cGVvZiBGaWx0ZXJJdGVtTGF5b3V0O1xuXG5cdHNldFRvZ2dsZUNvbnRyb2wodlRvZ2dsZTogc3RyaW5nIHwgU2VnbWVudGVkQnV0dG9uKTogdm9pZCB7XG5cdFx0aWYgKHR5cGVvZiB2VG9nZ2xlID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHR0aGlzLl9vU2VnbWVudGVkQnV0dG9uID0gRWxlbWVudC5nZXRFbGVtZW50QnlJZCh2VG9nZ2xlKSBhcyBTZWdtZW50ZWRCdXR0b247XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX29TZWdtZW50ZWRCdXR0b24gPSB2VG9nZ2xlO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnRvZ2dsZUNvbnRyb2wgJiYgdGhpcy5fb1NlZ21lbnRlZEJ1dHRvbikge1xuXHRcdFx0dGhpcy5fb1NlZ21lbnRlZEJ1dHRvbi5kZXRhY2hFdmVudChcInNlbGVjdGlvbkNoYW5nZVwiLCB0aGlzLl90b2dnbGVMYXlvdXQuYmluZCh0aGlzKSk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLl9vU2VnbWVudGVkQnV0dG9uKSB7XG5cdFx0XHR0aGlzLl9vU2VnbWVudGVkQnV0dG9uLmF0dGFjaEV2ZW50KFwic2VsZWN0aW9uQ2hhbmdlXCIsIHRoaXMuX3RvZ2dsZUxheW91dC5iaW5kKHRoaXMpKTtcblx0XHR9XG5cdFx0dGhpcy5zZXRBc3NvY2lhdGlvbihcInRvZ2dsZUNvbnRyb2xcIiwgdlRvZ2dsZSwgdHJ1ZSk7XG5cdH1cblxuXHRfdG9nZ2xlTGF5b3V0KCk6IHZvaWQge1xuXHRcdC8vIFNpbmNlIHByaW1hcnkgbGF5b3V0IGlzIGFsd2F5cyBjb21wYWN0XG5cdFx0Ly8gaGVuY2Ugc2V0IHRoZSBzZWNvbmRhcnkgbGF5b3V0IGFzIHZpc3VhbCBmaWx0ZXIgb25seSBmb3IgdGhlIGZpcnN0IHRpbWUgb25seVxuXHRcdHRoaXMud2FpdEZvckluaXRpYWxpemF0aW9uKClcblx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0Y29uc3QgdGFyZ2V0S2V5ID0gdGhpcy5fb1NlZ21lbnRlZEJ1dHRvbj8uZ2V0U2VsZWN0ZWRLZXkoKTtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdCh0YXJnZXRLZXkgPT09IFwidmlzdWFsXCIgJiZcblx0XHRcdFx0XHRcdHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQ/LmlzQTxWaXN1YWxGaWx0ZXJDb250YWluZXI+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5maWx0ZXJiYXIuVmlzdWFsRmlsdGVyQ29udGFpbmVyXCIpKSB8fFxuXHRcdFx0XHRcdCh0YXJnZXRLZXkgPT09IFwiY29tcGFjdFwiICYmXG5cdFx0XHRcdFx0XHQhdGhpcy5fb0ZpbHRlckJhckxheW91dD8uaXNBPFZpc3VhbEZpbHRlckNvbnRhaW5lcj4oXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIikpXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIXRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQpIHtcblx0XHRcdFx0XHR0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0ID0gbmV3IFZpc3VhbEZpbHRlckNvbnRhaW5lcigpIGFzIHVua25vd24gYXMgSUZpbHRlckNvbnRhaW5lcjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIGRvIG5vdCBzaG93IEFkYXB0IEZpbHRlcnMgQnV0dG9uIGZvciB2aXN1YWwgbGF5b3V0XG5cdFx0XHRcdGlmICh0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0Py5pc0E8VmlzdWFsRmlsdGVyQ29udGFpbmVyPihcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlckNvbnRhaW5lclwiKSkge1xuXHRcdFx0XHRcdHRoaXMuc2V0U2hvd0FkYXB0RmlsdGVyc0J1dHRvbihmYWxzZSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRTaG93QWRhcHRGaWx0ZXJzQnV0dG9uKHRydWUpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gZ2V0IGFsbCBmaWx0ZXIgZmllbGRzIGFuZCBidXR0b24gb2YgdGhlIGN1cnJlbnQgbGF5b3V0XG5cdFx0XHRcdGNvbnN0IG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0ID0gdGhpcy5fb0ZpbHRlckJhckxheW91dDtcblx0XHRcdFx0Y29uc3Qgb0ZpbHRlckl0ZW1zID0gdGhpcy5nZXRGaWx0ZXJJdGVtcygpO1xuXHRcdFx0XHRjb25zdCBhRmlsdGVyRmllbGRzID0gb0N1cnJlbnRGaWx0ZXJCYXJMYXlvdXQuZ2V0QWxsRmlsdGVyRmllbGRzKCk7XG5cdFx0XHRcdGNvbnN0IGFTb3J0ZWRGaWx0ZXJGaWVsZHMgPSB0aGlzLmdldFNvcnRlZEZpbHRlckZpZWxkcyhvRmlsdGVySXRlbXMsIGFGaWx0ZXJGaWVsZHMpO1xuXHRcdFx0XHRjb25zdCBhQnV0dG9ucyA9IG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0LmdldEFsbEJ1dHRvbnMoKTtcblx0XHRcdFx0Y29uc3QgYVZpc3VhbEZpbHRlckZpZWxkcyA9XG5cdFx0XHRcdFx0b0N1cnJlbnRGaWx0ZXJCYXJMYXlvdXQuZ2V0QWxsVmlzdWFsRmlsdGVyRmllbGRzICYmXG5cdFx0XHRcdFx0KG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0LmdldEFsbFZpc3VhbEZpbHRlckZpZWxkcygpIGFzIFJlY29yZDxzdHJpbmcsIFZpc3VhbEZpbHRlcj4gfCB1bmRlZmluZWQpO1xuXHRcdFx0XHRpZiAodGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dD8uaXNBPFZpc3VhbEZpbHRlckNvbnRhaW5lcj4oXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIikpIHtcblx0XHRcdFx0XHR0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0LnNldEFsbEZpbHRlckZpZWxkcyhhU29ydGVkRmlsdGVyRmllbGRzLCBhVmlzdWFsRmlsdGVyRmllbGRzKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyB1c2Ugc2Vjb25kYXJ5IGZpbHRlciBiYXIgbGF5b3V0IGFzIG5ldyBsYXlvdXRcblx0XHRcdFx0dGhpcy5fb0ZpbHRlckJhckxheW91dCA9IHRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQhO1xuXG5cdFx0XHRcdC8vIGluc2VydCBhbGwgZmlsdGVyIGZpZWxkcyBmcm9tIGN1cnJlbnQgbGF5b3V0IHRvIG5ldyBsYXlvdXRcblx0XHRcdFx0YUZpbHRlckZpZWxkcy5mb3JFYWNoKChvRmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkLCBpSW5kZXg6IG51bWJlcikgPT4ge1xuXHRcdFx0XHRcdG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0LnJlbW92ZUZpbHRlckZpZWxkKG9GaWx0ZXJGaWVsZCk7XG5cdFx0XHRcdFx0dGhpcy5fb0ZpbHRlckJhckxheW91dC5pbnNlcnRGaWx0ZXJGaWVsZChvRmlsdGVyRmllbGQsIGlJbmRleCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHQvLyBpbnNlcnQgYWxsIGJ1dHRvbnMgZnJvbSB0aGUgY3VycmVudCBsYXlvdXQgdG8gdGhlIG5ldyBsYXlvdXRcblx0XHRcdFx0YUJ1dHRvbnMuZm9yRWFjaCgob0J1dHRvbjogQnV0dG9uKSA9PiB7XG5cdFx0XHRcdFx0b0N1cnJlbnRGaWx0ZXJCYXJMYXlvdXQucmVtb3ZlQnV0dG9uKG9CdXR0b24pO1xuXHRcdFx0XHRcdHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQuYWRkQnV0dG9uKG9CdXR0b24pO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyBzZXQgdGhlIGN1cnJlbnQgZmlsdGVyIGJhciBsYXlvdXQgdG8gdGhlIHNlY29uZGFyeSBvbmVcblx0XHRcdFx0dGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dCA9IG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0O1xuXG5cdFx0XHRcdC8vIHVwZGF0ZSB0aGUgbGF5b3V0IGFnZ3JlZ2F0aW9uIG9mIHRoZSBmaWx0ZXIgYmFyIGFuZCByZXJlbmRlciB0aGUgc2FtZS5cblx0XHRcdFx0dGhpcy5zZXRBZ2dyZWdhdGlvbihcImxheW91dFwiLCB0aGlzLl9vRmlsdGVyQmFyTGF5b3V0LCB0cnVlKTtcblx0XHRcdFx0dGhpcy5fb0ZpbHRlckJhckxheW91dC5pbnZhbGlkYXRlKCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goKGVycm9yKSA9PiB7XG5cdFx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0XHR9KTtcblx0fVxuXG5cdGdldFNvcnRlZEZpbHRlckZpZWxkcyhhRmlsdGVySXRlbXM6IEZpbHRlckZpZWxkW10sIGFGaWx0ZXJGaWVsZHM6IEZpbHRlckZpZWxkW10pOiBGaWx0ZXJGaWVsZFtdIHtcblx0XHRjb25zdCBhRmlsdGVySWRzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdGFGaWx0ZXJJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChvRmlsdGVySXRlbTogRmlsdGVyRmllbGQpIHtcblx0XHRcdGFGaWx0ZXJJZHMucHVzaChvRmlsdGVySXRlbS5nZXRJZCgpKTtcblx0XHR9KTtcblx0XHRhRmlsdGVyRmllbGRzLnNvcnQoZnVuY3Rpb24gKGFGaXJzdEl0ZW06IEZpbHRlckZpZWxkLCBhU2Vjb25kSXRlbTogRmlsdGVyRmllbGQpIHtcblx0XHRcdGxldCBzRmlyc3RJdGVtVkZJZCwgc1NlY29uZEl0ZW1WRklkO1xuXHRcdFx0KGFGaXJzdEl0ZW0uZ2V0Q29udGVudCgpIGFzIHVua25vd24gYXMgQ29udHJvbFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChvSW5uZXJDb250cm9sOiBDb250cm9sKSB7XG5cdFx0XHRcdGlmIChvSW5uZXJDb250cm9sLmlzQTxGaWx0ZXJGaWVsZD4oXCJzYXAudWkubWRjLkZpbHRlckZpZWxkXCIpKSB7XG5cdFx0XHRcdFx0c0ZpcnN0SXRlbVZGSWQgPSBvSW5uZXJDb250cm9sLmdldElkKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0KGFTZWNvbmRJdGVtLmdldENvbnRlbnQoKSBhcyB1bmtub3duIGFzIENvbnRyb2xbXSkuZm9yRWFjaChmdW5jdGlvbiAob0lubmVyQ29udHJvbDogQ29udHJvbCkge1xuXHRcdFx0XHRpZiAob0lubmVyQ29udHJvbC5pc0E8RmlsdGVyRmllbGQ+KFwic2FwLnVpLm1kYy5GaWx0ZXJGaWVsZFwiKSkge1xuXHRcdFx0XHRcdHNTZWNvbmRJdGVtVkZJZCA9IG9Jbm5lckNvbnRyb2wuZ2V0SWQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gYUZpbHRlcklkcy5pbmRleE9mKHNGaXJzdEl0ZW1WRklkID8/IFwiXCIpIC0gYUZpbHRlcklkcy5pbmRleE9mKHNTZWNvbmRJdGVtVkZJZCA/PyBcIlwiKTtcblx0XHR9KTtcblx0XHRyZXR1cm4gYUZpbHRlckZpZWxkcztcblx0fVxuXG5cdF9jcmVhdGVJbm5lckxheW91dCgpOiB2b2lkIHtcblx0XHR0aGlzLl9vRmlsdGVyQmFyTGF5b3V0ID0gbmV3IEZpbHRlckNvbnRhaW5lcigpO1xuXHRcdHRoaXMuX2NMYXlvdXRJdGVtID0gRmlsdGVySXRlbUxheW91dDtcblx0XHR0aGlzLl9vRmlsdGVyQmFyTGF5b3V0LmdldElubmVyKCkuYWRkU3R5bGVDbGFzcyhcInNhcFVpTWRjRmlsdGVyQmFyQmFzZUFGTGF5b3V0XCIpO1xuXHRcdHRoaXMuX2FkZEJ1dHRvbnMoKTtcblxuXHRcdC8vIFRPRE86IENoZWNrIHdpdGggTURDIGlmIHRoZXJlIGlzIGEgYmV0dGVyIHdheSB0byBsb2FkIHZpc3VhbCBmaWx0ZXIgb24gdGhlIGJhc2lzIG9mIGNvbnRyb2wgcHJvcGVydHlcblx0XHQvLyBfY3JlYXRlSW5uZXJMYXlvdXQgaXMgY2FsbGVkIG9uIEluaXQgYnkgdGhlIGZpbHRlciBiYXIgYmFzZS5cblx0XHQvLyBUaGlzIG1lYW4gdGhhdCB3ZSBkbyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIGNvbnRyb2wgcHJvcGVydGllcyB5ZXRcblx0XHQvLyBhbmQgaGVuY2Ugd2UgY2Fubm90IGRlY2lkZSBvbiB0aGUgYmFzaXMgb2YgY29udHJvbCBwcm9wZXJ0aWVzIHdoZXRoZXIgaW5pdGlhbCBsYXlvdXQgc2hvdWxkIGJlIGNvbXBhY3Qgb3IgdmlzdWFsXG5cdFx0Ly8gQXMgYSByZXN1bHQgd2UgaGF2ZSB0byBkbyB0aGlzIHdvcmthcm91bmQgdG8gYWx3YXlzIGxvYWQgdGhlIGNvbXBhY3QgbGF5b3V0IGJ5IGRlZmF1bHRcblx0XHQvLyBBbmQgdG9vZ2xlIHRoZSBzYW1lIGluIGNhc2UgdGhlIGluaXRpYWxMYXlvdXQgd2FzIHN1cHBvc2VkIHRvIGJlIHZpc3VhbCBmaWx0ZXJzLlxuXHRcdGNvbnN0IG9Jbm5lckxheW91dCA9IHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQuZ2V0SW5uZXIoKTtcblx0XHRjb25zdCBvRmlsdGVyQ29udGFpbmVySW5uZXJMYXlvdXRFdmVudERlbGVnYXRlID0ge1xuXHRcdFx0b25CZWZvcmVSZW5kZXJpbmc6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuaW5pdGlhbExheW91dCA9PT0gXCJ2aXN1YWxcIikge1xuXHRcdFx0XHRcdHRoaXMuX3RvZ2dsZUxheW91dCgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG9Jbm5lckxheW91dC5yZW1vdmVFdmVudERlbGVnYXRlKG9GaWx0ZXJDb250YWluZXJJbm5lckxheW91dEV2ZW50RGVsZWdhdGUpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0b0lubmVyTGF5b3V0LmFkZEV2ZW50RGVsZWdhdGUob0ZpbHRlckNvbnRhaW5lcklubmVyTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cblx0XHR0aGlzLnNldEFnZ3JlZ2F0aW9uKFwibGF5b3V0XCIsIHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQsIHRydWUpO1xuXHR9XG5cblx0ZXhpdCgpOiB2b2lkIHtcblx0XHRzdXBlci5leGl0KCk7XG5cdFx0Ly8gU29tZXRpbWVzIHVwb24gZXh0ZXJuYWwgbmF2aWdhdGlvbiB0aGlzLl9TZWdtZW50ZWRCdXR0b24gaXMgYWxyZWFkeSBkZXN0cm95ZWRcblx0XHQvLyBzbyBjaGVjayBpZiBpdCBleGlzdHMgYW5kIHRoZW4gb25seSByZW1vdmUgc3R1ZmZcblx0XHRpZiAodGhpcy5fb1NlZ21lbnRlZEJ1dHRvbikge1xuXHRcdFx0dGhpcy5fb1NlZ21lbnRlZEJ1dHRvbi5kZXRhY2hFdmVudChcInNlbGVjdGlvbkNoYW5nZVwiLCB0aGlzLl90b2dnbGVMYXlvdXQpO1xuXHRcdFx0ZGVsZXRlIHRoaXMuX29TZWdtZW50ZWRCdXR0b247XG5cdFx0fVxuXHR9XG5cblx0Z2V0U2VnbWVudGVkQnV0dG9uKCk6IFNlZ21lbnRlZEJ1dHRvbiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX29TZWdtZW50ZWRCdXR0b247XG5cdH1cblxuXHQvKipcblx0ICogRW5hYmxlIG9yIGRpc2FibGUgcmVxdWVzdHMgdGhhdCBhcmUgaW5pdGlhdGVkIGJ5IHRoZSBGaWx0ZXJCYXIuXG5cdCAqXG5cdCAqIFRvIGJlIHVzZWQgdG8gc3VzcGVuZCBvciByZXN1bWUgcmVxdWVzdHModGFibGUgb3IgdmlzdWFsIGZpbHRlcnMpIHdoZW4gdGhlIGZpbHRlciBiYXIgaXMgYmVpbmcgbW9kaWZpZWQgb3Igd2hlbiB0aGUgdXNlciBpcyBwcm9ncmFtbWF0aWNhbGx5IGludGVyYWN0aW5nIHdpdGggdGhlIGZpbHRlciBjb250cm9scy5cblx0ICogVGhpcyBtZXRob2QgaXMgYWxzbyB1c2VkIHRvIGNvbnRyb2wgd2hldGhlciB0aGUgdmlzdWFsIGZpbHRlciBjaGFydCBiaW5kaW5nIHNob3VsZCBiZSByZXN1bWVkL3N1c3BlbmRlZCBiYXNlZCBvbiB0aGUgZGlmZiBzdGF0ZSwgYW5kIHJlc3VtZWQgYWZ0ZXIgY29uZGl0b24gbW9kZWwgdXBkYXRlLlxuXHQgKiBAcGFyYW0gZW5hYmxlIEVuYWJsZSBvciBkaXNhYmxlIHJlcXVlc3RzXG5cdCAqIEBwYXJhbSBkaWZmU3RhdGUgSWYgdGhlcmUgaXMgYSBkaWZmZXJuY2UgaW4gdGhlIGV4dGVybmFsIHN0YXRlIHRoYXQgbmVlZHMgdG8gYmUgY29uc2lkZXJlZCBmb3IgdmlzdWFsIGZpbHRlciBpbi1wYXJhbWV0ZXJzXG5cdCAqL1xuXHRlbmFibGVSZXF1ZXN0cyhlbmFibGU6IGJvb2xlYW4sIGRpZmZTdGF0ZT86IEV4dGVybmFsU3RhdGVUeXBlKTogdm9pZCB7XG5cdFx0dGhpcy5zZXRTdXNwZW5kU2VsZWN0aW9uKCFlbmFibGUpO1xuXHRcdC8vIFdlIG5lZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIHZpc3VhbCBmaWx0ZXIgY2hhcnQgYmluZGluZ3MgYmFzZWQgb24gZGlmZiBzdGF0ZS5cblx0XHR0aGlzLl9lbmFibGVWaXN1YWxGaWx0ZXJDaGFydEJpbmRpbmdzKGVuYWJsZSwgZGlmZlN0YXRlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIGZpbHRlciBsYXlvdXQgYnkgaXRzIHR5cGUuXG5cdCAqIEBwYXJhbSBsYXlvdXRDbGFzc05hbWUgVGhlIGNsYXNzIG5hbWUgb2YgdGhlIGZpbHRlciBsYXlvdXQgdG8gYmUgcmV0dXJuZWQuXG5cdCAqIEB0ZW1wbGF0ZSBUIFRoZSB0eXBlIG9mIHRoZSBmaWx0ZXIgbGF5b3V0IHRvIGJlIHJldHVybmVkLlxuXHQgKiBAdHlwZWRlZiB7SUZpbHRlckNvbnRhaW5lcn0gVCBUaGUgdHlwZSBvZiB0aGUgZmlsdGVyIGxheW91dCB0byBiZSByZXR1cm5lZFxuXHQgKiBAcmV0dXJucyBDb3JyZXNwb25kaW5nIGZpbHRlciBsYXlvdXQgaWYgaXQgZXhpc3RzLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuXHQgKi9cblx0X2dldEZpbHRlckxheW91dEJ5VHlwZTxUIGV4dGVuZHMgSUZpbHRlckNvbnRhaW5lcj4obGF5b3V0Q2xhc3NOYW1lOiBDb250YWluZXJUeXBlKTogVCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgcmV0RmlsdGVyTGF5b3V0ID0gdGhpcy5fb0ZpbHRlckJhckxheW91dC5pc0E8VD4obGF5b3V0Q2xhc3NOYW1lKSA/IHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQgOiB1bmRlZmluZWQ7XG5cdFx0cmV0dXJuICFyZXRGaWx0ZXJMYXlvdXQgJiYgdGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dD8uaXNBPFQ+KGxheW91dENsYXNzTmFtZSlcblx0XHRcdD8gdGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dFxuXHRcdFx0OiByZXRGaWx0ZXJMYXlvdXQ7XG5cdH1cblxuXHRfZW5hYmxlVmlzdWFsRmlsdGVyQ2hhcnRCaW5kaW5ncyhlbmFibGU6IGJvb2xlYW4sIGRpZmZTdGF0ZT86IEV4dGVybmFsU3RhdGVUeXBlKTogdm9pZCB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRjb25zdCB2aXN1YWxGaWx0ZXJMYXlvdXQgPSB0aGlzLl9nZXRGaWx0ZXJMYXlvdXRCeVR5cGU8VmlzdWFsRmlsdGVyQ29udGFpbmVyPihWSVNVQUxfRklMVEVSX0NPTlRBSU5FUik7XG5cdFx0aWYgKHZpc3VhbEZpbHRlckxheW91dCkge1xuXHRcdFx0dmlzdWFsRmlsdGVyTGF5b3V0LmVuYWJsZUNoYXJ0QmluZGluZyhlbmFibGUsIGRpZmZTdGF0ZSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gSWYgaW5pdGlhbCBsYXlvdXQgaXMgY29tcGFjdCwgd2UgZG9uJ3QgaGF2ZSB0aGUgdmlzdWFsIGZpbHRlciBsYXlvdXQoY29udGFpbmVyKSBhdmFpbGFibGUgeWV0IHVudGlsIHRoZSB1c2VyIHRvZ2dsZXMgdG8gdmlzdWFsIGZpbHRlciBsYXlvdXQuXG5cdFx0Ly8gU28gd2UgbmVlZCB0byBjaGVjayBpZiB0aGUgY29tcGFjdCBmaWx0ZXIgbGF5b3V0IGhhcyB2aXN1YWwgZmlsdGVycyBhbmQgZW5hYmxlL2Rpc2FibGUgdGhlIGNoYXJ0IGJpbmRpbmcgZm9yIHRob3NlIHZpc3VhbCBmaWx0ZXJzLlxuXHRcdGNvbnN0IGNvbXBhY3RGaWx0ZXJMYXlvdXQgPSB0aGlzLl9nZXRGaWx0ZXJMYXlvdXRCeVR5cGU8RmlsdGVyQ29udGFpbmVyPihGSUxURVJfQ09OVEFJTkVSKTtcblx0XHRpZiAoY29tcGFjdEZpbHRlckxheW91dCkge1xuXHRcdFx0Y29uc3QgdmlzdWFsRmlsdGVycyA9IGNvbXBhY3RGaWx0ZXJMYXlvdXQuZ2V0QWxsVmlzdWFsRmlsdGVyRmllbGRzKCk7XG5cdFx0XHRpZiAodmlzdWFsRmlsdGVycykge1xuXHRcdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5lbmFibGVDaGFydEJpbmRpbmcodmlzdWFsRmlsdGVycywgZW5hYmxlLCBkaWZmU3RhdGUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuaW50ZXJmYWNlIEZpbHRlckJhciB7XG5cdF9hZGRCdXR0b25zKCk6IHZvaWQ7XG59XG5leHBvcnQgZGVmYXVsdCBGaWx0ZXJCYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7RUFrQkEsTUFBTUEsdUJBQXVCLEdBQUcsd0RBQXdEO0lBQ3ZGQyxnQkFBZ0IsR0FBRyxrREFBa0Q7RUFBQyxJQUlqRUMsU0FBUyxJQUFBQyxJQUFBLEdBRGRDLGNBQWMsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFBQyxLQUFBLEdBRWpEQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsWUFBWSxFQUFFO0VBQVUsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FNckRDLFdBQVcsQ0FBQztJQUNaSCxJQUFJLEVBQUUsdUJBQXVCO0lBQzdCSSxRQUFRLEVBQUU7RUFDWCxDQUFDLENBQUMsRUFBQVIsSUFBQSxDQUFBUyxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGFBQUE7SUFHRixTQUFBWixVQUFZYSxTQUF3RCxFQUFFQyxRQUF1RCxFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUM5SCxPQUFPRixTQUFTLEVBQUVHLFlBQVk7TUFDOUIsT0FBT0YsUUFBUSxFQUFFRSxZQUFZO01BQzdCRCxLQUFBLEdBQUFILGFBQUEsQ0FBQUssSUFBQSxPQUFNSixTQUFT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
|