@sapui5/sap.fe.macros 1.138.0 → 1.139.1
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/Chart.js +1 -1
- package/src/sap/fe/macros/Chart.tsx +1 -1
- 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 +21 -4
- package/src/sap/fe/macros/Field.ts +21 -3
- package/src/sap/fe/macros/FooterContent.js +40 -10
- package/src/sap/fe/macros/FooterContent.tsx +44 -8
- package/src/sap/fe/macros/FormElement.js +2 -2
- package/src/sap/fe/macros/FormElement.ts +1 -2
- package/src/sap/fe/macros/MultiValueField.js +17 -4
- package/src/sap/fe/macros/MultiValueField.tsx +7 -2
- package/src/sap/fe/macros/RichTextEditor.js +30 -6
- package/src/sap/fe/macros/RichTextEditor.tsx +34 -7
- package/src/sap/fe/macros/Share.js +73 -40
- package/src/sap/fe/macros/Share.tsx +29 -1
- 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 +30 -30
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +40 -43
- 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/chart/ChartDelegate.js +4 -4
- package/src/sap/fe/macros/chart/ChartDelegate.ts +3 -3
- 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/BuildingBlockObjectProperty.js +5 -1
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +4 -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 +86 -3
- package/src/sap/fe/macros/controls/FilterBar.ts +97 -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/Section.js +3 -2
- package/src/sap/fe/macros/controls/Section.ts +2 -1
- 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/designtime/Designtime.helper.js +12 -2
- package/src/sap/fe/macros/designtime/Designtime.helper.ts +12 -0
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +16 -5
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +6 -1
- 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 +38 -8
- package/src/sap/fe/macros/field/FieldRuntime.ts +65 -7
- package/src/sap/fe/macros/filter/FilterUtils.js +7 -1
- package/src/sap/fe/macros/filter/FilterUtils.ts +7 -0
- 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.block.js +6 -2
- package/src/sap/fe/macros/form/Form.block.ts +4 -1
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -2
- 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/formatters/TableFormatter.js +10 -1
- package/src/sap/fe/macros/formatters/TableFormatter.ts +14 -5
- 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/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 +4 -2
- package/src/sap/fe/macros/internal/FilterField.block.ts +3 -1
- package/src/sap/fe/macros/internal/field/CheckBoxGroup.fragment.xml +25 -0
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +52 -12
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +54 -5
- 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 +10 -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/TableDelegate.js +4 -4
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +3 -3
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -0
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +11 -3
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +12 -7
- 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 +11 -6
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +12 -7
- package/src/sap/fe/macros/messagebundle.properties +37 -29
- package/src/sap/fe/macros/messagebundle_ar.properties +5 -3
- package/src/sap/fe/macros/messagebundle_bg.properties +6 -4
- package/src/sap/fe/macros/messagebundle_ca.properties +8 -6
- package/src/sap/fe/macros/messagebundle_cnr.properties +5 -3
- package/src/sap/fe/macros/messagebundle_cs.properties +4 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +7 -5
- package/src/sap/fe/macros/messagebundle_da.properties +6 -4
- package/src/sap/fe/macros/messagebundle_de.properties +11 -9
- package/src/sap/fe/macros/messagebundle_el.properties +7 -5
- package/src/sap/fe/macros/messagebundle_en.properties +8 -6
- package/src/sap/fe/macros/messagebundle_en_GB.properties +8 -6
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +8 -6
- package/src/sap/fe/macros/messagebundle_es.properties +6 -4
- package/src/sap/fe/macros/messagebundle_es_MX.properties +6 -4
- package/src/sap/fe/macros/messagebundle_et.properties +5 -3
- package/src/sap/fe/macros/messagebundle_fi.properties +8 -6
- package/src/sap/fe/macros/messagebundle_fr.properties +6 -4
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +8 -6
- package/src/sap/fe/macros/messagebundle_hi.properties +6 -4
- package/src/sap/fe/macros/messagebundle_hr.properties +6 -4
- package/src/sap/fe/macros/messagebundle_hu.properties +4 -2
- package/src/sap/fe/macros/messagebundle_id.properties +8 -6
- package/src/sap/fe/macros/messagebundle_it.properties +4 -2
- package/src/sap/fe/macros/messagebundle_iw.properties +5 -3
- package/src/sap/fe/macros/messagebundle_ja.properties +5 -3
- package/src/sap/fe/macros/messagebundle_kk.properties +5 -3
- package/src/sap/fe/macros/messagebundle_ko.properties +4 -2
- package/src/sap/fe/macros/messagebundle_lt.properties +6 -4
- package/src/sap/fe/macros/messagebundle_lv.properties +5 -3
- package/src/sap/fe/macros/messagebundle_mk.properties +5 -3
- package/src/sap/fe/macros/messagebundle_ms.properties +8 -6
- package/src/sap/fe/macros/messagebundle_nl.properties +7 -5
- package/src/sap/fe/macros/messagebundle_no.properties +6 -4
- package/src/sap/fe/macros/messagebundle_pl.properties +6 -4
- package/src/sap/fe/macros/messagebundle_pt.properties +7 -5
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +6 -4
- package/src/sap/fe/macros/messagebundle_ro.properties +7 -5
- package/src/sap/fe/macros/messagebundle_ru.properties +4 -2
- package/src/sap/fe/macros/messagebundle_sh.properties +5 -3
- package/src/sap/fe/macros/messagebundle_sk.properties +5 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +6 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +5 -3
- package/src/sap/fe/macros/messagebundle_sv.properties +5 -3
- package/src/sap/fe/macros/messagebundle_th.properties +4 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +4 -2
- package/src/sap/fe/macros/messagebundle_uk.properties +10 -8
- package/src/sap/fe/macros/messagebundle_vi.properties +6 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +5 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +5 -3
- package/src/sap/fe/macros/messages/MessageButton.js +17 -19
- package/src/sap/fe/macros/messages/MessageButton.ts +24 -22
- 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 +32 -6
- 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/Table.js +7 -1
- package/src/sap/fe/macros/table/Table.tsx +7 -1
- package/src/sap/fe/macros/table/TableAPI.js +150 -133
- package/src/sap/fe/macros/table/TableAPI.ts +20 -3
- 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/TableRuntime.js +3 -3
- package/src/sap/fe/macros/table/TableRuntime.ts +2 -2
- package/src/sap/fe/macros/table/TableSizeHelper.js +3 -3
- package/src/sap/fe/macros/table/TableSizeHelper.ts +5 -2
- package/src/sap/fe/macros/table/TreeTable.js +7 -1
- package/src/sap/fe/macros/table/TreeTable.tsx +7 -1
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +27 -20
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +35 -26
- 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/MassEditDialog.js +10 -10
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +11 -9
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +8 -8
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +7 -6
- 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 +4 -1
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +3 -0
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +37 -8
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +47 -16
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +95 -6
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +93 -2
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +15 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +17 -2
|
@@ -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/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/macros/CommonHelper", "sap/fe/macros/controls/filterbar/utils/VisualFilterUtils", "sap/fe/macros/filter/FilterUtils", "sap/fe/macros/filterBar/FilterHelper", "sap/m/VBox", "sap/ui/core/Lib"], function (ClassSupport, CommonUtils, CommonHelper, VisualFilterUtils, FilterUtils, FilterHelper, VBox, Library) {
|
|
5
|
+
sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/macros/CommonHelper", "sap/fe/macros/controls/filterbar/utils/VisualFilterUtils", "sap/fe/macros/filter/FilterUtils", "sap/fe/macros/filterBar/FilterHelper", "sap/m/VBox", "sap/ui/core/Lib", "../../visualfilters/VisualFilterRuntime"], function (ClassSupport, CommonUtils, CommonHelper, VisualFilterUtils, FilterUtils, FilterHelper, VBox, Library, VisualFilterRuntime) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _dec2, _class, _class2, _descriptor;
|
|
@@ -32,11 +32,27 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
|
|
|
32
32
|
}
|
|
33
33
|
_inheritsLoose(VisualFilter, _VBox);
|
|
34
34
|
var _proto = VisualFilter.prototype;
|
|
35
|
+
/**
|
|
36
|
+
* Chart binding for the visual filter chart.
|
|
37
|
+
* @returns List Binding for the visual filter chart.
|
|
38
|
+
*/
|
|
39
|
+
_proto.getChartBinding = function getChartBinding() {
|
|
40
|
+
const interactiveChart = this.getInteractiveChart();
|
|
41
|
+
const interactiveChartListBinding = interactiveChart?.getBinding("segments") || interactiveChart?.getBinding("bars") || interactiveChart?.getBinding("points");
|
|
42
|
+
if (!this._oChartBinding || this._oChartBinding !== interactiveChartListBinding) {
|
|
43
|
+
if (this._oChartBinding) {
|
|
44
|
+
this.detachDataReceivedHandler(this._oChartBinding);
|
|
45
|
+
}
|
|
46
|
+
this.attachDataRecivedHandler(interactiveChartListBinding);
|
|
47
|
+
this._oChartBinding = interactiveChartListBinding;
|
|
48
|
+
}
|
|
49
|
+
return this._oChartBinding;
|
|
50
|
+
};
|
|
35
51
|
_proto.onAfterRendering = function onAfterRendering() {
|
|
36
52
|
let sLabel;
|
|
37
53
|
const oInteractiveChart = this.getInteractiveChart();
|
|
38
54
|
const sInternalContextPath = this.data("infoPath");
|
|
39
|
-
const oInteractiveChartListBinding =
|
|
55
|
+
const oInteractiveChartListBinding = this.getChartBinding();
|
|
40
56
|
const oInternalModelContext = oInteractiveChart.getBindingContext("internal");
|
|
41
57
|
const oResourceBundle = Library.getResourceBundleFor("sap.fe.macros");
|
|
42
58
|
const bShowOverLayInitially = oInteractiveChart.data("showOverlayInitially");
|
|
@@ -111,13 +127,6 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
|
|
|
111
127
|
oInternalModelContext.setProperty(sInternalContextPath, errorInfo);
|
|
112
128
|
}
|
|
113
129
|
}
|
|
114
|
-
if (!this._oChartBinding || this._oChartBinding !== oInteractiveChartListBinding) {
|
|
115
|
-
if (this._oChartBinding) {
|
|
116
|
-
this.detachDataReceivedHandler(this._oChartBinding);
|
|
117
|
-
}
|
|
118
|
-
this.attachDataRecivedHandler(oInteractiveChartListBinding);
|
|
119
|
-
this._oChartBinding = oInteractiveChartListBinding;
|
|
120
|
-
}
|
|
121
130
|
const bShowOverlay = oInternalModelContext.getProperty(sInternalContextPath) && oInternalModelContext.getProperty(sInternalContextPath).showError;
|
|
122
131
|
const sChartEntityName = sEntitySetPath !== "" ? sEntitySetPath.split("/")[1].split("(")[0] : "";
|
|
123
132
|
if (aParameters && aParameters.length && sFilterEntityName === sChartEntityName) {
|
|
@@ -129,7 +138,8 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
|
|
|
129
138
|
// resume binding for only those visual filters that do not have a in parameter attached.
|
|
130
139
|
// Bindings of visual filters with inParameters will be resumed later after considering in parameters.
|
|
131
140
|
if (oInteractiveChartListBinding && oInteractiveChartListBinding.isSuspended() && !bShowOverlay) {
|
|
132
|
-
|
|
141
|
+
const visualFilterBB = VisualFilterRuntime.getParentVisualFilterControlBB(this);
|
|
142
|
+
visualFilterBB?._setInternalUpdatePending(undefined, false);
|
|
133
143
|
}
|
|
134
144
|
};
|
|
135
145
|
_proto.attachDataRecivedHandler = function attachDataRecivedHandler(oInteractiveChartListBinding) {
|
|
@@ -186,4 +196,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
|
|
|
186
196
|
}), _class2)) || _class);
|
|
187
197
|
return VisualFilter;
|
|
188
198
|
}, false);
|
|
189
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVkJveCIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25BZnRlclJlbmRlcmluZyIsInNMYWJlbCIsIm9JbnRlcmFjdGl2ZUNoYXJ0IiwiZ2V0SW50ZXJhY3RpdmVDaGFydCIsInNJbnRlcm5hbENvbnRleHRQYXRoIiwiZGF0YSIsIm9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmciLCJnZXRCaW5kaW5nIiwib0ludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJvUmVzb3VyY2VCdW5kbGUiLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJiU2hvd092ZXJMYXlJbml0aWFsbHkiLCJvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24iLCJTZWxlY3RPcHRpb25zIiwiYVJlcXVpcmVkUHJvcGVydGllcyIsIkNvbW1vbkhlbHBlciIsInBhcnNlQ3VzdG9tRGF0YSIsIm9NZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsInNFbnRpdHlTZXRQYXRoIiwiZ2V0UGF0aCIsIm9GaWx0ZXJCYXIiLCJnZXRQYXJlbnQiLCJnZXRNZXRhZGF0YSIsImdldEVsZW1lbnROYW1lIiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJhUHJvcGVydHlJbmZvU2V0Iiwic0ZpbHRlckVudGl0eU5hbWUiLCJpc0EiLCJnZXRDb25kaXRpb25zIiwiRmlsdGVyVXRpbHMiLCJnZXRGaWx0ZXJQcm9wZXJ0eUluZm8iLCJzcGxpdCIsImFQYXJhbWV0ZXJzIiwiZmlsdGVyQ29uZGl0aW9ucyIsImdldEZpbHRlcnNDb25kaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQiLCJWaXN1YWxGaWx0ZXJVdGlscyIsImdldEN1c3RvbUNvbmRpdGlvbnMiLCJiaW5kIiwib1NlbGVjdGlvblZhcmlhbnRDb25kaXRpb25zIiwiY29udmVydEZpbHRlckNvbmRpb25zIiwibUNvbmRpdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNLZXkiLCJzZXRQcm9wZXJ0eSIsInNob3dFcnJvciIsImVycm9yTWVzc2FnZVRpdGxlIiwiZ2V0VGV4dCIsImVycm9yTWVzc2FnZSIsImdldE9iamVjdCIsImFTZWxlY3RPcHRpb25zIiwiYU5vdE1hdGNoZWRDb25kaXRpb25zIiwib1NlbGVjdE9wdGlvbiIsInB1c2giLCJQcm9wZXJ0eU5hbWUiLCIkUHJvcGVydHlQYXRoIiwiUGFyYW1ldGVycyIsIm9QYXJhbWV0ZXIiLCJzUGF0aCIsImluY2x1ZGVzIiwiZXJyb3JJbmZvIiwiZ2V0RXJyb3JJbmZvRm9yTm9Jbml0aWFsT3ZlcmxheSIsIl9vQ2hhcnRCaW5kaW5nIiwiZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlciIsImF0dGFjaERhdGFSZWNpdmVkSGFuZGxlciIsImJTaG93T3ZlcmxheSIsImdldFByb3BlcnR5Iiwic0NoYXJ0RW50aXR5TmFtZSIsInNCaW5kaW5nUGF0aCIsImdldEJpbmRpbmdQYXRoRm9yUGFyYW1ldGVycyIsImlzU3VzcGVuZGVkIiwicmVzdW1lIiwiYXR0YWNoRXZlbnQiLCJvbkludGVybmFsRGF0YVJlY2VpdmVkIiwiZGV0YWNoRXZlbnQiLCJ1bmRlZmluZWQiLCJnZXRJdGVtcyIsIm9FdmVudCIsInNJZCIsImdldElkIiwib1ZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJ2VU9NIiwidXBkYXRlQ2hhcnRTY2FsZUZhY3RvclRpdGxlIiwiZ2V0UGFyYW1ldGVyIiwiczE4bk1lc3NhZ2VUaXRsZSIsInMxOG5NZXNzYWdlIiwiYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZSIsIm9EYXRhIiwiZ2V0U291cmNlIiwiZ2V0Q3VycmVudENvbnRleHRzIiwic2V0Tm9EYXRhTWVzc2FnZSIsInNldE11bHRpVU9NTWVzc2FnZSIsIiRQYXRoIiwib0NvbnRleHRzIiwiZ2V0Q29udGV4dHMiLCJvQ29udGV4dERhdGEiLCJhcHBseVVPTVRvVGl0bGUiLCJWQm94IiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaXN1YWxGaWx0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJhbWV0ZXIsIFNlbGVjdE9wdGlvblR5cGUsIFNlbGVjdGlvblZhcmlhbnRUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIGltcGxlbWVudEludGVyZmFjZSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCBWaXN1YWxGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9maWx0ZXJiYXIvdXRpbHMvVmlzdWFsRmlsdGVyVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSUZpbHRlckNvbnRyb2wgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCB7IGdldEZpbHRlcnNDb25kaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVySGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5SW5mbyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL1Byb3BlcnR5SW5mb1wiO1xuaW1wb3J0IHR5cGUgeyBTZXJpYWxpemVkU2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IHR5cGUgSW50ZXJhY3RpdmVCYXJDaGFydCBmcm9tIFwic2FwL3N1aXRlL3VpL21pY3JvY2hhcnQvSW50ZXJhY3RpdmVCYXJDaGFydFwiO1xuaW1wb3J0IHR5cGUgSW50ZXJhY3RpdmVEb251dENoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9JbnRlcmFjdGl2ZURvbnV0Q2hhcnRcIjtcbmltcG9ydCB0eXBlIEludGVyYWN0aXZlTGluZUNoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9JbnRlcmFjdGl2ZUxpbmVDaGFydFwiO1xuaW1wb3J0IExpYnJhcnkgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IHR5cGUgeyBJRm9ybUNvbnRlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgeyBDb25kaXRpb25PYmplY3QgfSBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vQ29uZGl0aW9uXCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgeyBPRGF0YUxpc3RCaW5kaW5nJERhdGFSZWNlaXZlZEV2ZW50IH0gZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBNZXRhTW9kZWxUeXBlIH0gZnJvbSBcInR5cGVzL21ldGFtb2RlbF90eXBlc1wiO1xuLyoqXG4gKiBDb25zdHJ1Y3RvciBmb3IgYSBuZXcgZmlsdGVyQmFyL2FsaWduZWQvRmlsdGVySXRlbUxheW91dC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbc0lkXSBJRCBmb3IgdGhlIG5ldyBjb250cm9sLCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBpZiBubyBJRCBpcyBnaXZlblxuICogQHBhcmFtIHtvYmplY3R9IFttU2V0dGluZ3NdIEluaXRpYWwgc2V0dGluZ3MgZm9yIHRoZSBuZXcgY29udHJvbFxuICogQHNpbmNlIDEuNjEuMFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlciBleHRlbmRzIFZCb3ggaW1wbGVtZW50cyBJRm9ybUNvbnRlbnQge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLnVpLmNvcmUuSUZvcm1Db250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX3VpX2NvcmVfSUZvcm1Db250ZW50ID0gdHJ1ZTtcblxuXHRwcml2YXRlIF9vQ2hhcnRCaW5kaW5nPzogT0RhdGFMaXN0QmluZGluZztcblxuXHRvbkFmdGVyUmVuZGVyaW5nKCk6IHZvaWQge1xuXHRcdGxldCBzTGFiZWw7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPSAob0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmluZGluZyhcInNlZ21lbnRzXCIpIHx8XG5cdFx0XHRvSW50ZXJhY3RpdmVDaGFydC5nZXRCaW5kaW5nKFwiYmFyc1wiKSB8fFxuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmluZGluZyhcInBvaW50c1wiKSkgYXMgT0RhdGFMaXN0QmluZGluZztcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvSW50ZXJhY3RpdmVDaGFydC5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdGNvbnN0IG9SZXNvdXJjZUJ1bmRsZSA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUubWFjcm9zXCIpITtcblx0XHRjb25zdCBiU2hvd092ZXJMYXlJbml0aWFsbHkgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwic2hvd092ZXJsYXlJbml0aWFsbHlcIik7XG5cdFx0Y29uc3Qgb1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBNZXRhTW9kZWxUeXBlPFNlbGVjdGlvblZhcmlhbnRUeXBlPiA9IChvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFxuXHRcdFx0XCJzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvblwiXG5cdFx0KSBhcyBTZXJpYWxpemVkU2VsZWN0aW9uVmFyaWFudClcblx0XHRcdD8gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXCIpXG5cdFx0XHQ6ICh7IFNlbGVjdE9wdGlvbnM6IFtdIH0gYXMgdW5rbm93biBhcyBNZXRhTW9kZWxUeXBlPFNlbGVjdGlvblZhcmlhbnRUeXBlPik7XG5cdFx0Y29uc3QgYVJlcXVpcmVkUHJvcGVydGllczogc3RyaW5nW10gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwicmVxdWlyZWRQcm9wZXJ0aWVzXCIpXG5cdFx0XHQ/IChDb21tb25IZWxwZXIucGFyc2VDdXN0b21EYXRhKG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJyZXF1aXJlZFByb3BlcnRpZXNcIikpIGFzIHN0cmluZ1tdKVxuXHRcdFx0OiBbXTtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gKG9JbnRlcmFjdGl2ZUNoYXJ0LmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0Y29uc3Qgc0VudGl0eVNldFBhdGggPSBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nID8gb0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5nZXRQYXRoKCkgOiBcIlwiO1xuXHRcdGxldCBvRmlsdGVyQmFyID0gdGhpcy5nZXRQYXJlbnQoKT8uZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpIGFzIEZpbHRlckJhcjtcblx0XHQvLyBUT0RPOiBSZW1vdmUgdGhpcyBwYXJ0IG9uY2UgMjE3MDIwNDM0NyBpcyBmaXhlZFxuXHRcdGlmIChvRmlsdGVyQmFyLmdldE1ldGFkYXRhKCkuZ2V0RWxlbWVudE5hbWUoKSA9PT0gXCJzYXAudWkubWRjLmZpbHRlcmJhci5wMTNuLkFkYXB0YXRpb25GaWx0ZXJCYXJcIikge1xuXHRcdFx0b0ZpbHRlckJhciA9IG9GaWx0ZXJCYXIuZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpPy5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXI7XG5cdFx0fVxuXHRcdGxldCBvRmlsdGVyQmFyQ29uZGl0aW9uczogUmVjb3JkPHN0cmluZywgQ29uZGl0aW9uT2JqZWN0W10+ID0ge307XG5cdFx0bGV0IGFQcm9wZXJ0eUluZm9TZXQ6IFByb3BlcnR5SW5mb1tdID0gW107XG5cdFx0bGV0IHNGaWx0ZXJFbnRpdHlOYW1lO1xuXHRcdGlmIChvRmlsdGVyQmFyLmlzQTxGaWx0ZXJCYXI+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5GaWx0ZXJCYXJcIikpIHtcblx0XHRcdG9GaWx0ZXJCYXJDb25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRDb25kaXRpb25zKCk7XG5cdFx0XHRhUHJvcGVydHlJbmZvU2V0ID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVyUHJvcGVydHlJbmZvKG9GaWx0ZXJCYXIgYXMgSUZpbHRlckNvbnRyb2wpIGFzIFByb3BlcnR5SW5mb1tdO1xuXHRcdFx0c0ZpbHRlckVudGl0eU5hbWUgPSBvRmlsdGVyQmFyLmRhdGEoXCJlbnRpdHlUeXBlXCIpLnNwbGl0KFwiL1wiKVsxXTtcblx0XHR9XG5cdFx0Y29uc3QgYVBhcmFtZXRlcnMgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwicGFyYW1ldGVyc1wiKSA/IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJwYXJhbWV0ZXJzXCIpIDogW107XG5cdFx0Y29uc3QgZmlsdGVyQ29uZGl0aW9ucyA9IGdldEZpbHRlcnNDb25kaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQoXG5cdFx0XHRzRW50aXR5U2V0UGF0aCxcblx0XHRcdG9NZXRhTW9kZWwsXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24sXG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5nZXRDdXN0b21Db25kaXRpb25zLmJpbmQoVmlzdWFsRmlsdGVyVXRpbHMpXG5cdFx0KTtcblx0XHRjb25zdCBvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnMgPSBWaXN1YWxGaWx0ZXJVdGlscy5jb252ZXJ0RmlsdGVyQ29uZGlvbnMoZmlsdGVyQ29uZGl0aW9ucyk7XG5cdFx0Y29uc3QgbUNvbmRpdGlvbnM6IFJlY29yZDxzdHJpbmcsIENvbmRpdGlvbk9iamVjdFtdPiA9IHt9O1xuXG5cdFx0T2JqZWN0LmtleXMob0ZpbHRlckJhckNvbmRpdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKHNLZXk6IHN0cmluZykge1xuXHRcdFx0aWYgKG9GaWx0ZXJCYXJDb25kaXRpb25zW3NLZXldLmxlbmd0aCkge1xuXHRcdFx0XHRtQ29uZGl0aW9uc1tzS2V5XSA9IG9GaWx0ZXJCYXJDb25kaXRpb25zW3NLZXldO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0T2JqZWN0LmtleXMob1NlbGVjdGlvblZhcmlhbnRDb25kaXRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uIChzS2V5OiBzdHJpbmcpIHtcblx0XHRcdGlmICghbUNvbmRpdGlvbnNbc0tleV0pIHtcblx0XHRcdFx0bUNvbmRpdGlvbnNbc0tleV0gPSBvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnNbc0tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0aWYgKGJTaG93T3ZlckxheUluaXRpYWxseSA9PT0gdHJ1ZSkge1xuXHRcdFx0aWYgKCFPYmplY3Qua2V5cyhvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24pLmxlbmd0aCkge1xuXHRcdFx0XHRpZiAoYVJlcXVpcmVkUHJvcGVydGllcy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7XG5cdFx0XHRcdFx0XHRzaG93RXJyb3I6IHRydWUsXG5cdFx0XHRcdFx0XHRlcnJvck1lc3NhZ2VUaXRsZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIiksXG5cdFx0XHRcdFx0XHRlcnJvck1lc3NhZ2U6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19QUk9WSURFX0ZJTFRFUl9WQUxfTVVMVElQTEVWRlwiKVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHNMYWJlbCA9XG5cdFx0XHRcdFx0XHRvTWV0YU1vZGVsLmdldE9iamVjdChgJHtzRW50aXR5U2V0UGF0aH0vJHthUmVxdWlyZWRQcm9wZXJ0aWVzWzBdfUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxgKSB8fFxuXHRcdFx0XHRcdFx0YVJlcXVpcmVkUHJvcGVydGllc1swXTtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIHtcblx0XHRcdFx0XHRcdHNob3dFcnJvcjogdHJ1ZSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZVRpdGxlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX1BST1ZJREVfRklMVEVSX1ZBTF9TSU5HTEVWRlwiLCBzTGFiZWwpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IGFTZWxlY3RPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0XHRjb25zdCBhTm90TWF0Y2hlZENvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdFx0XHRcdGlmIChvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24uU2VsZWN0T3B0aW9ucykge1xuXHRcdFx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5TZWxlY3RPcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKG9TZWxlY3RPcHRpb246IE1ldGFNb2RlbFR5cGU8U2VsZWN0T3B0aW9uVHlwZT4pIHtcblx0XHRcdFx0XHRcdGFTZWxlY3RPcHRpb25zLnB1c2gob1NlbGVjdE9wdGlvbi5Qcm9wZXJ0eU5hbWUhLiRQcm9wZXJ0eVBhdGgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24uUGFyYW1ldGVycykge1xuXHRcdFx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5QYXJhbWV0ZXJzLmZvckVhY2goZnVuY3Rpb24gKG9QYXJhbWV0ZXIpIHtcblx0XHRcdFx0XHRcdGFTZWxlY3RPcHRpb25zLnB1c2goKG9QYXJhbWV0ZXIgYXMgTWV0YU1vZGVsVHlwZTxQYXJhbWV0ZXI+KS5Qcm9wZXJ0eU5hbWUhLiRQcm9wZXJ0eVBhdGgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGFSZXF1aXJlZFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAoc1BhdGg6IHN0cmluZykge1xuXHRcdFx0XHRcdGlmICghYVNlbGVjdE9wdGlvbnMuaW5jbHVkZXMoc1BhdGgpKSB7XG5cdFx0XHRcdFx0XHRhTm90TWF0Y2hlZENvbmRpdGlvbnMucHVzaChzUGF0aCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRjb25zdCBlcnJvckluZm8gPSBWaXN1YWxGaWx0ZXJVdGlscy5nZXRFcnJvckluZm9Gb3JOb0luaXRpYWxPdmVybGF5KFxuXHRcdFx0XHRcdGFOb3RNYXRjaGVkQ29uZGl0aW9ucyxcblx0XHRcdFx0XHRvUmVzb3VyY2VCdW5kbGUsXG5cdFx0XHRcdFx0c0VudGl0eVNldFBhdGgsXG5cdFx0XHRcdFx0b01ldGFNb2RlbFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIGVycm9ySW5mbyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLl9vQ2hhcnRCaW5kaW5nIHx8IHRoaXMuX29DaGFydEJpbmRpbmcgIT09IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdGlmICh0aGlzLl9vQ2hhcnRCaW5kaW5nKSB7XG5cdFx0XHRcdHRoaXMuZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlcih0aGlzLl9vQ2hhcnRCaW5kaW5nKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuYXR0YWNoRGF0YVJlY2l2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc7XG5cdFx0fVxuXHRcdGNvbnN0IGJTaG93T3ZlcmxheSA9XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgpICYmIG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCkuc2hvd0Vycm9yO1xuXHRcdGNvbnN0IHNDaGFydEVudGl0eU5hbWUgPSBzRW50aXR5U2V0UGF0aCAhPT0gXCJcIiA/IHNFbnRpdHlTZXRQYXRoLnNwbGl0KFwiL1wiKVsxXS5zcGxpdChcIihcIilbMF0gOiBcIlwiO1xuXHRcdGlmIChhUGFyYW1ldGVycyAmJiBhUGFyYW1ldGVycy5sZW5ndGggJiYgc0ZpbHRlckVudGl0eU5hbWUgPT09IHNDaGFydEVudGl0eU5hbWUpIHtcblx0XHRcdGNvbnN0IHNCaW5kaW5nUGF0aCA9IEZpbHRlclV0aWxzLmdldEJpbmRpbmdQYXRoRm9yUGFyYW1ldGVycyhcblx0XHRcdFx0b0ZpbHRlckJhciBhcyBJRmlsdGVyQ29udHJvbCxcblx0XHRcdFx0bUNvbmRpdGlvbnMsXG5cdFx0XHRcdGFQcm9wZXJ0eUluZm9TZXQsXG5cdFx0XHRcdGFQYXJhbWV0ZXJzXG5cdFx0XHQpO1xuXHRcdFx0aWYgKHNCaW5kaW5nUGF0aCkge1xuXHRcdFx0XHQob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyBhcyB7IHNQYXRoPzogc3RyaW5nIH0pLnNQYXRoID0gc0JpbmRpbmdQYXRoO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvLyByZXN1bWUgYmluZGluZyBmb3Igb25seSB0aG9zZSB2aXN1YWwgZmlsdGVycyB0aGF0IGRvIG5vdCBoYXZlIGEgaW4gcGFyYW1ldGVyIGF0dGFjaGVkLlxuXHRcdC8vIEJpbmRpbmdzIG9mIHZpc3VhbCBmaWx0ZXJzIHdpdGggaW5QYXJhbWV0ZXJzIHdpbGwgYmUgcmVzdW1lZCBsYXRlciBhZnRlciBjb25zaWRlcmluZyBpbiBwYXJhbWV0ZXJzLlxuXHRcdGlmIChvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nICYmIG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuaXNTdXNwZW5kZWQoKSAmJiAhYlNob3dPdmVybGF5KSB7XG5cdFx0XHRvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLnJlc3VtZSgpO1xuXHRcdH1cblx0fVxuXG5cdGF0dGFjaERhdGFSZWNpdmVkSGFuZGxlcihvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nKTogdm9pZCB7XG5cdFx0aWYgKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuYXR0YWNoRXZlbnQoXCJkYXRhUmVjZWl2ZWRcIiwge30sIHRoaXMub25JbnRlcm5hbERhdGFSZWNlaXZlZCwgdGhpcyk7XG5cdFx0XHR0aGlzLl9vQ2hhcnRCaW5kaW5nID0gb0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZztcblx0XHR9XG5cdH1cblxuXHRkZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc6IE9EYXRhTGlzdEJpbmRpbmcpOiB2b2lkIHtcblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5kZXRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRnZXRJbnRlcmFjdGl2ZUNoYXJ0KCk6IEludGVyYWN0aXZlQmFyQ2hhcnQgfCBJbnRlcmFjdGl2ZURvbnV0Q2hhcnQgfCBJbnRlcmFjdGl2ZUxpbmVDaGFydCB7XG5cdFx0cmV0dXJuICh0aGlzLmdldEl0ZW1zKClbMV0gYXMgVkJveCkuZ2V0SXRlbXMoKVswXSBhcyBJbnRlcmFjdGl2ZUJhckNoYXJ0IHwgSW50ZXJhY3RpdmVEb251dENoYXJ0IHwgSW50ZXJhY3RpdmVMaW5lQ2hhcnQ7XG5cdH1cblxuXHRvbkludGVybmFsRGF0YVJlY2VpdmVkKG9FdmVudDogT0RhdGFMaXN0QmluZGluZyREYXRhUmVjZWl2ZWRFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHNJZCA9IHRoaXMuZ2V0SWQoKTtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5tYWNyb3NcIikhO1xuXHRcdGNvbnN0IHZVT00gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwidW9tXCIpO1xuXHRcdFZpc3VhbEZpbHRlclV0aWxzLnVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb1ZpZXcsIHNJZCwgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZXJyb3JcIikpIHtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX0RBVEFfVEVYVFwiKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbnRlcm5hbENvbnRleHRQYXRoLCBvVmlldyk7XG5cdFx0fSBlbHNlIGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZGF0YVwiKSkge1xuXHRcdFx0Y29uc3Qgb0RhdGEgPSBvRXZlbnQuZ2V0U291cmNlKCkuZ2V0Q3VycmVudENvbnRleHRzKCk7XG5cdFx0XHRpZiAob0RhdGEgJiYgb0RhdGEubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLnNldE5vRGF0YU1lc3NhZ2Uoc0ludGVybmFsQ29udGV4dFBhdGgsIG9SZXNvdXJjZUJ1bmRsZSwgb1ZpZXcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7fSk7XG5cdFx0XHR9XG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5zZXRNdWx0aVVPTU1lc3NhZ2Uob0RhdGEsIG9JbnRlcmFjdGl2ZUNoYXJ0LCBzSW50ZXJuYWxDb250ZXh0UGF0aCwgb1Jlc291cmNlQnVuZGxlLCBvVmlldyk7XG5cdFx0fVxuXHRcdGlmICh2VU9NICYmICgodlVPTVtcIklTT0N1cnJlbmN5XCJdICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXS4kUGF0aCkgfHwgKHZVT01bXCJVbml0XCJdICYmIHZVT01bXCJVbml0XCJdLiRQYXRoKSkpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0cyA9IG9FdmVudC5nZXRTb3VyY2UoKS5nZXRDb250ZXh0cygpO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb0NvbnRleHRzICYmIG9Db250ZXh0c1swXS5nZXRPYmplY3QoKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5VU9NVG9UaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb0NvbnRleHREYXRhLCBvVmlldywgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdH1cblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsRmlsdGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBdUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBLElBT01BLFlBQVksSUFBQUMsSUFBQSxHQURqQkMsY0FBYyxDQUFDLCtDQUErQyxDQUFDLEVBQUFDLEtBQUEsR0FFOURDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLEVBQUFILElBQUEsQ0FBQUksTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxLQUFBO0lBQUEsU0FBQVAsYUFBQTtNQUFBLElBQUFRLEtBQUE7TUFBQSxTQUFBQyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBQyxJQUFBLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxHQUFBSyxJQUFBLE1BQUFBLElBQUEsR0FBQUwsSUFBQSxFQUFBSyxJQUFBO1FBQUFGLElBQUEsQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJLElBQUE7TUFBQTtNQUFBTixLQUFBLEdBQUFELEtBQUEsQ0FBQVEsSUFBQSxVQUFBSCxJQUFBO01BQUFJLDBCQUFBLENBQUFSLEtBQUEsNENBQUFTLFdBQUEsRUFBQVQsS0FBQTtNQUFBLE9BQUFBLEtBQUE7SUFBQTtJQUFBVSxjQUFBLENBQUFsQixZQUFBLEVBQUFPLEtBQUE7SUFBQSxJQUFBWSxNQUFBLEdBQUFuQixZQUFBLENBQUFvQixTQUFBO0lBQUFELE1BQUEsQ0FLL0NFLGdCQUFnQixHQUFoQixTQUFBQSxnQkFBZ0JBLENBQUEsRUFBUztNQUN4QixJQUFJQyxNQUFNO01BQ1YsTUFBTUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDQyxtQkFBbUIsQ0FBQyxDQUFDO01BQ3BELE1BQU1DLG9CQUFvQixHQUFHLElBQUksQ0FBQ0MsSUFBSSxDQUFDLFVBQVUsQ0FBQztNQUNsRCxNQUFNQyw0QkFBNEIsR0FBSUosaUJBQWlC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
|
|
199
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVkJveCIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZ2V0Q2hhcnRCaW5kaW5nIiwiaW50ZXJhY3RpdmVDaGFydCIsImdldEludGVyYWN0aXZlQ2hhcnQiLCJpbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmciLCJnZXRCaW5kaW5nIiwiX29DaGFydEJpbmRpbmciLCJkZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyIiwiYXR0YWNoRGF0YVJlY2l2ZWRIYW5kbGVyIiwib25BZnRlclJlbmRlcmluZyIsInNMYWJlbCIsIm9JbnRlcmFjdGl2ZUNoYXJ0Iiwic0ludGVybmFsQ29udGV4dFBhdGgiLCJkYXRhIiwib0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwib1Jlc291cmNlQnVuZGxlIiwiTGlicmFyeSIsImdldFJlc291cmNlQnVuZGxlRm9yIiwiYlNob3dPdmVyTGF5SW5pdGlhbGx5Iiwib1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwiU2VsZWN0T3B0aW9ucyIsImFSZXF1aXJlZFByb3BlcnRpZXMiLCJDb21tb25IZWxwZXIiLCJwYXJzZUN1c3RvbURhdGEiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJzRW50aXR5U2V0UGF0aCIsImdldFBhdGgiLCJvRmlsdGVyQmFyIiwiZ2V0UGFyZW50IiwiZ2V0TWV0YWRhdGEiLCJnZXRFbGVtZW50TmFtZSIsIm9GaWx0ZXJCYXJDb25kaXRpb25zIiwiYVByb3BlcnR5SW5mb1NldCIsInNGaWx0ZXJFbnRpdHlOYW1lIiwiaXNBIiwiZ2V0Q29uZGl0aW9ucyIsIkZpbHRlclV0aWxzIiwiZ2V0RmlsdGVyUHJvcGVydHlJbmZvIiwic3BsaXQiLCJhUGFyYW1ldGVycyIsImZpbHRlckNvbmRpdGlvbnMiLCJnZXRGaWx0ZXJzQ29uZGl0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwiVmlzdWFsRmlsdGVyVXRpbHMiLCJnZXRDdXN0b21Db25kaXRpb25zIiwiYmluZCIsIm9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9ucyIsImNvbnZlcnRGaWx0ZXJDb25kaW9ucyIsIm1Db25kaXRpb25zIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJzS2V5Iiwic2V0UHJvcGVydHkiLCJzaG93RXJyb3IiLCJlcnJvck1lc3NhZ2VUaXRsZSIsImdldFRleHQiLCJlcnJvck1lc3NhZ2UiLCJnZXRPYmplY3QiLCJhU2VsZWN0T3B0aW9ucyIsImFOb3RNYXRjaGVkQ29uZGl0aW9ucyIsIm9TZWxlY3RPcHRpb24iLCJwdXNoIiwiUHJvcGVydHlOYW1lIiwiJFByb3BlcnR5UGF0aCIsIlBhcmFtZXRlcnMiLCJvUGFyYW1ldGVyIiwic1BhdGgiLCJpbmNsdWRlcyIsImVycm9ySW5mbyIsImdldEVycm9ySW5mb0Zvck5vSW5pdGlhbE92ZXJsYXkiLCJiU2hvd092ZXJsYXkiLCJnZXRQcm9wZXJ0eSIsInNDaGFydEVudGl0eU5hbWUiLCJzQmluZGluZ1BhdGgiLCJnZXRCaW5kaW5nUGF0aEZvclBhcmFtZXRlcnMiLCJpc1N1c3BlbmRlZCIsInZpc3VhbEZpbHRlckJCIiwiVmlzdWFsRmlsdGVyUnVudGltZSIsImdldFBhcmVudFZpc3VhbEZpbHRlckNvbnRyb2xCQiIsIl9zZXRJbnRlcm5hbFVwZGF0ZVBlbmRpbmciLCJ1bmRlZmluZWQiLCJhdHRhY2hFdmVudCIsIm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQiLCJkZXRhY2hFdmVudCIsImdldEl0ZW1zIiwib0V2ZW50Iiwic0lkIiwiZ2V0SWQiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsInZVT00iLCJ1cGRhdGVDaGFydFNjYWxlRmFjdG9yVGl0bGUiLCJnZXRQYXJhbWV0ZXIiLCJzMThuTWVzc2FnZVRpdGxlIiwiczE4bk1lc3NhZ2UiLCJhcHBseUVycm9yTWVzc2FnZUFuZFRpdGxlIiwib0RhdGEiLCJnZXRTb3VyY2UiLCJnZXRDdXJyZW50Q29udGV4dHMiLCJzZXROb0RhdGFNZXNzYWdlIiwic2V0TXVsdGlVT01NZXNzYWdlIiwiJFBhdGgiLCJvQ29udGV4dHMiLCJnZXRDb250ZXh0cyIsIm9Db250ZXh0RGF0YSIsImFwcGx5VU9NVG9UaXRsZSIsIlZCb3giLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcmFtZXRlciwgU2VsZWN0T3B0aW9uVHlwZSwgU2VsZWN0aW9uVmFyaWFudFR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgaW1wbGVtZW50SW50ZXJmYWNlIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IFZpc3VhbEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL2ZpbHRlcmJhci91dGlscy9WaXN1YWxGaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBJRmlsdGVyQ29udHJvbCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHsgZ2V0RmlsdGVyc0NvbmRpdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9GaWx0ZXJIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvUHJvcGVydHlJbmZvXCI7XG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBWQm94IGZyb20gXCJzYXAvbS9WQm94XCI7XG5pbXBvcnQgdHlwZSBJbnRlcmFjdGl2ZUJhckNoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9JbnRlcmFjdGl2ZUJhckNoYXJ0XCI7XG5pbXBvcnQgdHlwZSBJbnRlcmFjdGl2ZURvbnV0Q2hhcnQgZnJvbSBcInNhcC9zdWl0ZS91aS9taWNyb2NoYXJ0L0ludGVyYWN0aXZlRG9udXRDaGFydFwiO1xuaW1wb3J0IHR5cGUgSW50ZXJhY3RpdmVMaW5lQ2hhcnQgZnJvbSBcInNhcC9zdWl0ZS91aS9taWNyb2NoYXJ0L0ludGVyYWN0aXZlTGluZUNoYXJ0XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSB7IElGb3JtQ29udGVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXIgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgdHlwZSB7IENvbmRpdGlvbk9iamVjdCB9IGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9Db25kaXRpb25cIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSB7IE9EYXRhTGlzdEJpbmRpbmckRGF0YVJlY2VpdmVkRXZlbnQgfSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IE1ldGFNb2RlbFR5cGUgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG5pbXBvcnQgVmlzdWFsRmlsdGVyUnVudGltZSBmcm9tIFwiLi4vLi4vdmlzdWFsZmlsdGVycy9WaXN1YWxGaWx0ZXJSdW50aW1lXCI7XG4vKipcbiAqIENvbnN0cnVjdG9yIGZvciBhIG5ldyBmaWx0ZXJCYXIvYWxpZ25lZC9GaWx0ZXJJdGVtTGF5b3V0LlxuICogQHBhcmFtIHtzdHJpbmd9IFtzSWRdIElEIGZvciB0aGUgbmV3IGNvbnRyb2wsIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGlmIG5vIElEIGlzIGdpdmVuXG4gKiBAcGFyYW0ge29iamVjdH0gW21TZXR0aW5nc10gSW5pdGlhbCBzZXR0aW5ncyBmb3IgdGhlIG5ldyBjb250cm9sXG4gKiBAc2luY2UgMS42MS4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlclwiKVxuY2xhc3MgVmlzdWFsRmlsdGVyIGV4dGVuZHMgVkJveCBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQgPSB0cnVlO1xuXG5cdHByaXZhdGUgX29DaGFydEJpbmRpbmc/OiBPRGF0YUxpc3RCaW5kaW5nO1xuXG5cdC8qKlxuXHQgKiBDaGFydCBiaW5kaW5nIGZvciB0aGUgdmlzdWFsIGZpbHRlciBjaGFydC5cblx0ICogQHJldHVybnMgTGlzdCBCaW5kaW5nIGZvciB0aGUgdmlzdWFsIGZpbHRlciBjaGFydC5cblx0ICovXG5cdHB1YmxpYyBnZXRDaGFydEJpbmRpbmcoKTogT0RhdGFMaXN0QmluZGluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgaW50ZXJhY3RpdmVDaGFydCA9IHRoaXMuZ2V0SW50ZXJhY3RpdmVDaGFydCgpO1xuXHRcdGNvbnN0IGludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyA9IChpbnRlcmFjdGl2ZUNoYXJ0Py5nZXRCaW5kaW5nKFwic2VnbWVudHNcIikgfHxcblx0XHRcdGludGVyYWN0aXZlQ2hhcnQ/LmdldEJpbmRpbmcoXCJiYXJzXCIpIHx8XG5cdFx0XHRpbnRlcmFjdGl2ZUNoYXJ0Py5nZXRCaW5kaW5nKFwicG9pbnRzXCIpKSBhcyBPRGF0YUxpc3RCaW5kaW5nO1xuXG5cdFx0aWYgKCF0aGlzLl9vQ2hhcnRCaW5kaW5nIHx8IHRoaXMuX29DaGFydEJpbmRpbmcgIT09IGludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0aWYgKHRoaXMuX29DaGFydEJpbmRpbmcpIHtcblx0XHRcdFx0dGhpcy5kZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyKHRoaXMuX29DaGFydEJpbmRpbmcpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5hdHRhY2hEYXRhUmVjaXZlZEhhbmRsZXIoaW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nKTtcblx0XHRcdHRoaXMuX29DaGFydEJpbmRpbmcgPSBpbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuX29DaGFydEJpbmRpbmc7XG5cdH1cblxuXHRvbkFmdGVyUmVuZGVyaW5nKCk6IHZvaWQge1xuXHRcdGxldCBzTGFiZWw7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPSB0aGlzLmdldENoYXJ0QmluZGluZygpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5tYWNyb3NcIikhO1xuXHRcdGNvbnN0IGJTaG93T3ZlckxheUluaXRpYWxseSA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJzaG93T3ZlcmxheUluaXRpYWxseVwiKTtcblx0XHRjb25zdCBvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb246IE1ldGFNb2RlbFR5cGU8U2VsZWN0aW9uVmFyaWFudFR5cGU+ID0gKG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXG5cdFx0XHRcInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXCJcblx0XHQpIGFzIFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50KVxuXHRcdFx0PyBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwic2VsZWN0aW9uVmFyaWFudEFubm90YXRpb25cIilcblx0XHRcdDogKHsgU2VsZWN0T3B0aW9uczogW10gfSBhcyB1bmtub3duIGFzIE1ldGFNb2RlbFR5cGU8U2VsZWN0aW9uVmFyaWFudFR5cGU+KTtcblx0XHRjb25zdCBhUmVxdWlyZWRQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJyZXF1aXJlZFByb3BlcnRpZXNcIilcblx0XHRcdD8gKENvbW1vbkhlbHBlci5wYXJzZUN1c3RvbURhdGEob0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInJlcXVpcmVkUHJvcGVydGllc1wiKSkgYXMgc3RyaW5nW10pXG5cdFx0XHQ6IFtdO1xuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSAob0ludGVyYWN0aXZlQ2hhcnQuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBzRW50aXR5U2V0UGF0aCA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPyBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLmdldFBhdGgoKSA6IFwiXCI7XG5cdFx0bGV0IG9GaWx0ZXJCYXIgPSB0aGlzLmdldFBhcmVudCgpPy5nZXRQYXJlbnQoKT8uZ2V0UGFyZW50KCkgYXMgRmlsdGVyQmFyO1xuXHRcdC8vIFRPRE86IFJlbW92ZSB0aGlzIHBhcnQgb25jZSAyMTcwMjA0MzQ3IGlzIGZpeGVkXG5cdFx0aWYgKG9GaWx0ZXJCYXIuZ2V0TWV0YWRhdGEoKS5nZXRFbGVtZW50TmFtZSgpID09PSBcInNhcC51aS5tZGMuZmlsdGVyYmFyLnAxM24uQWRhcHRhdGlvbkZpbHRlckJhclwiKSB7XG5cdFx0XHRvRmlsdGVyQmFyID0gb0ZpbHRlckJhci5nZXRQYXJlbnQoKT8uZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpIGFzIEZpbHRlckJhcjtcblx0XHR9XG5cdFx0bGV0IG9GaWx0ZXJCYXJDb25kaXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBDb25kaXRpb25PYmplY3RbXT4gPSB7fTtcblx0XHRsZXQgYVByb3BlcnR5SW5mb1NldDogUHJvcGVydHlJbmZvW10gPSBbXTtcblx0XHRsZXQgc0ZpbHRlckVudGl0eU5hbWU7XG5cdFx0aWYgKG9GaWx0ZXJCYXIuaXNBPEZpbHRlckJhcj4oXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLkZpbHRlckJhclwiKSkge1xuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvRmlsdGVyQmFyLmdldENvbmRpdGlvbnMoKTtcblx0XHRcdGFQcm9wZXJ0eUluZm9TZXQgPSBGaWx0ZXJVdGlscy5nZXRGaWx0ZXJQcm9wZXJ0eUluZm8ob0ZpbHRlckJhciBhcyBJRmlsdGVyQ29udHJvbCkgYXMgUHJvcGVydHlJbmZvW107XG5cdFx0XHRzRmlsdGVyRW50aXR5TmFtZSA9IG9GaWx0ZXJCYXIuZGF0YShcImVudGl0eVR5cGVcIikuc3BsaXQoXCIvXCIpWzFdO1xuXHRcdH1cblx0XHRjb25zdCBhUGFyYW1ldGVycyA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJwYXJhbWV0ZXJzXCIpID8gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInBhcmFtZXRlcnNcIikgOiBbXTtcblx0XHRjb25zdCBmaWx0ZXJDb25kaXRpb25zID0gZ2V0RmlsdGVyc0NvbmRpdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudChcblx0XHRcdHNFbnRpdHlTZXRQYXRoLFxuXHRcdFx0b01ldGFNb2RlbCxcblx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbixcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmdldEN1c3RvbUNvbmRpdGlvbnMuYmluZChWaXN1YWxGaWx0ZXJVdGlscylcblx0XHQpO1xuXHRcdGNvbnN0IG9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9ucyA9IFZpc3VhbEZpbHRlclV0aWxzLmNvbnZlcnRGaWx0ZXJDb25kaW9ucyhmaWx0ZXJDb25kaXRpb25zKTtcblx0XHRjb25zdCBtQ29uZGl0aW9uczogUmVjb3JkPHN0cmluZywgQ29uZGl0aW9uT2JqZWN0W10+ID0ge307XG5cblx0XHRPYmplY3Qua2V5cyhvRmlsdGVyQmFyQ29uZGl0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAoc0tleTogc3RyaW5nKSB7XG5cdFx0XHRpZiAob0ZpbHRlckJhckNvbmRpdGlvbnNbc0tleV0ubGVuZ3RoKSB7XG5cdFx0XHRcdG1Db25kaXRpb25zW3NLZXldID0gb0ZpbHRlckJhckNvbmRpdGlvbnNbc0tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRPYmplY3Qua2V5cyhvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKHNLZXk6IHN0cmluZykge1xuXHRcdFx0aWYgKCFtQ29uZGl0aW9uc1tzS2V5XSkge1xuXHRcdFx0XHRtQ29uZGl0aW9uc1tzS2V5XSA9IG9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9uc1tzS2V5XTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRpZiAoYlNob3dPdmVyTGF5SW5pdGlhbGx5ID09PSB0cnVlKSB7XG5cdFx0XHRpZiAoIU9iamVjdC5rZXlzKG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbikubGVuZ3RoKSB7XG5cdFx0XHRcdGlmIChhUmVxdWlyZWRQcm9wZXJ0aWVzLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIHtcblx0XHRcdFx0XHRcdHNob3dFcnJvcjogdHJ1ZSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZVRpdGxlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX1BST1ZJREVfRklMVEVSX1ZBTF9NVUxUSVBMRVZGXCIpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c0xhYmVsID1cblx0XHRcdFx0XHRcdG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke3NFbnRpdHlTZXRQYXRofS8ke2FSZXF1aXJlZFByb3BlcnRpZXNbMF19QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbGApIHx8XG5cdFx0XHRcdFx0XHRhUmVxdWlyZWRQcm9wZXJ0aWVzWzBdO1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCwge1xuXHRcdFx0XHRcdFx0c2hvd0Vycm9yOiB0cnVlLFxuXHRcdFx0XHRcdFx0ZXJyb3JNZXNzYWdlVGl0bGU6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19FUlJPUl9NRVNTQUdFX1RJVExFXCIpLFxuXHRcdFx0XHRcdFx0ZXJyb3JNZXNzYWdlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfUFJPVklERV9GSUxURVJfVkFMX1NJTkdMRVZGXCIsIHNMYWJlbClcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgYVNlbGVjdE9wdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdFx0XHRcdGNvbnN0IGFOb3RNYXRjaGVkQ29uZGl0aW9uczogc3RyaW5nW10gPSBbXTtcblx0XHRcdFx0aWYgKG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5TZWxlY3RPcHRpb25zKSB7XG5cdFx0XHRcdFx0b1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uLlNlbGVjdE9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAob1NlbGVjdE9wdGlvbjogTWV0YU1vZGVsVHlwZTxTZWxlY3RPcHRpb25UeXBlPikge1xuXHRcdFx0XHRcdFx0YVNlbGVjdE9wdGlvbnMucHVzaChvU2VsZWN0T3B0aW9uLlByb3BlcnR5TmFtZSEuJFByb3BlcnR5UGF0aCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5QYXJhbWV0ZXJzKSB7XG5cdFx0XHRcdFx0b1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uLlBhcmFtZXRlcnMuZm9yRWFjaChmdW5jdGlvbiAob1BhcmFtZXRlcikge1xuXHRcdFx0XHRcdFx0YVNlbGVjdE9wdGlvbnMucHVzaCgob1BhcmFtZXRlciBhcyBNZXRhTW9kZWxUeXBlPFBhcmFtZXRlcj4pLlByb3BlcnR5TmFtZSEuJFByb3BlcnR5UGF0aCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YVJlcXVpcmVkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChzUGF0aDogc3RyaW5nKSB7XG5cdFx0XHRcdFx0aWYgKCFhU2VsZWN0T3B0aW9ucy5pbmNsdWRlcyhzUGF0aCkpIHtcblx0XHRcdFx0XHRcdGFOb3RNYXRjaGVkQ29uZGl0aW9ucy5wdXNoKHNQYXRoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdGNvbnN0IGVycm9ySW5mbyA9IFZpc3VhbEZpbHRlclV0aWxzLmdldEVycm9ySW5mb0Zvck5vSW5pdGlhbE92ZXJsYXkoXG5cdFx0XHRcdFx0YU5vdE1hdGNoZWRDb25kaXRpb25zLFxuXHRcdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZSxcblx0XHRcdFx0XHRzRW50aXR5U2V0UGF0aCxcblx0XHRcdFx0XHRvTWV0YU1vZGVsXG5cdFx0XHRcdCk7XG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCwgZXJyb3JJbmZvKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBiU2hvd092ZXJsYXkgPVxuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoKSAmJiBvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgpLnNob3dFcnJvcjtcblx0XHRjb25zdCBzQ2hhcnRFbnRpdHlOYW1lID0gc0VudGl0eVNldFBhdGggIT09IFwiXCIgPyBzRW50aXR5U2V0UGF0aC5zcGxpdChcIi9cIilbMV0uc3BsaXQoXCIoXCIpWzBdIDogXCJcIjtcblx0XHRpZiAoYVBhcmFtZXRlcnMgJiYgYVBhcmFtZXRlcnMubGVuZ3RoICYmIHNGaWx0ZXJFbnRpdHlOYW1lID09PSBzQ2hhcnRFbnRpdHlOYW1lKSB7XG5cdFx0XHRjb25zdCBzQmluZGluZ1BhdGggPSBGaWx0ZXJVdGlscy5nZXRCaW5kaW5nUGF0aEZvclBhcmFtZXRlcnMoXG5cdFx0XHRcdG9GaWx0ZXJCYXIgYXMgSUZpbHRlckNvbnRyb2wsXG5cdFx0XHRcdG1Db25kaXRpb25zLFxuXHRcdFx0XHRhUHJvcGVydHlJbmZvU2V0LFxuXHRcdFx0XHRhUGFyYW1ldGVyc1xuXHRcdFx0KTtcblx0XHRcdGlmIChzQmluZGluZ1BhdGgpIHtcblx0XHRcdFx0KG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgYXMgeyBzUGF0aD86IHN0cmluZyB9KS5zUGF0aCA9IHNCaW5kaW5nUGF0aDtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gcmVzdW1lIGJpbmRpbmcgZm9yIG9ubHkgdGhvc2UgdmlzdWFsIGZpbHRlcnMgdGhhdCBkbyBub3QgaGF2ZSBhIGluIHBhcmFtZXRlciBhdHRhY2hlZC5cblx0XHQvLyBCaW5kaW5ncyBvZiB2aXN1YWwgZmlsdGVycyB3aXRoIGluUGFyYW1ldGVycyB3aWxsIGJlIHJlc3VtZWQgbGF0ZXIgYWZ0ZXIgY29uc2lkZXJpbmcgaW4gcGFyYW1ldGVycy5cblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyAmJiBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLmlzU3VzcGVuZGVkKCkgJiYgIWJTaG93T3ZlcmxheSkge1xuXHRcdFx0Y29uc3QgdmlzdWFsRmlsdGVyQkIgPSBWaXN1YWxGaWx0ZXJSdW50aW1lLmdldFBhcmVudFZpc3VhbEZpbHRlckNvbnRyb2xCQih0aGlzKTtcblx0XHRcdHZpc3VhbEZpbHRlckJCPy5fc2V0SW50ZXJuYWxVcGRhdGVQZW5kaW5nKHVuZGVmaW5lZCwgZmFsc2UpO1xuXHRcdH1cblx0fVxuXG5cdGF0dGFjaERhdGFSZWNpdmVkSGFuZGxlcihvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nKTogdm9pZCB7XG5cdFx0aWYgKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuYXR0YWNoRXZlbnQoXCJkYXRhUmVjZWl2ZWRcIiwge30sIHRoaXMub25JbnRlcm5hbERhdGFSZWNlaXZlZCwgdGhpcyk7XG5cdFx0XHR0aGlzLl9vQ2hhcnRCaW5kaW5nID0gb0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZztcblx0XHR9XG5cdH1cblxuXHRkZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc6IE9EYXRhTGlzdEJpbmRpbmcpOiB2b2lkIHtcblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5kZXRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRnZXRJbnRlcmFjdGl2ZUNoYXJ0KCk6IEludGVyYWN0aXZlQmFyQ2hhcnQgfCBJbnRlcmFjdGl2ZURvbnV0Q2hhcnQgfCBJbnRlcmFjdGl2ZUxpbmVDaGFydCB7XG5cdFx0cmV0dXJuICh0aGlzLmdldEl0ZW1zKClbMV0gYXMgVkJveCkuZ2V0SXRlbXMoKVswXSBhcyBJbnRlcmFjdGl2ZUJhckNoYXJ0IHwgSW50ZXJhY3RpdmVEb251dENoYXJ0IHwgSW50ZXJhY3RpdmVMaW5lQ2hhcnQ7XG5cdH1cblxuXHRvbkludGVybmFsRGF0YVJlY2VpdmVkKG9FdmVudDogT0RhdGFMaXN0QmluZGluZyREYXRhUmVjZWl2ZWRFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHNJZCA9IHRoaXMuZ2V0SWQoKTtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5tYWNyb3NcIikhO1xuXHRcdGNvbnN0IHZVT00gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwidW9tXCIpO1xuXHRcdFZpc3VhbEZpbHRlclV0aWxzLnVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb1ZpZXcsIHNJZCwgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZXJyb3JcIikpIHtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX0RBVEFfVEVYVFwiKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbnRlcm5hbENvbnRleHRQYXRoLCBvVmlldyk7XG5cdFx0fSBlbHNlIGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZGF0YVwiKSkge1xuXHRcdFx0Y29uc3Qgb0RhdGEgPSBvRXZlbnQuZ2V0U291cmNlKCkuZ2V0Q3VycmVudENvbnRleHRzKCk7XG5cdFx0XHRpZiAob0RhdGEgJiYgb0RhdGEubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLnNldE5vRGF0YU1lc3NhZ2Uoc0ludGVybmFsQ29udGV4dFBhdGgsIG9SZXNvdXJjZUJ1bmRsZSwgb1ZpZXcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7fSk7XG5cdFx0XHR9XG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5zZXRNdWx0aVVPTU1lc3NhZ2Uob0RhdGEsIG9JbnRlcmFjdGl2ZUNoYXJ0LCBzSW50ZXJuYWxDb250ZXh0UGF0aCwgb1Jlc291cmNlQnVuZGxlLCBvVmlldyk7XG5cdFx0fVxuXHRcdGlmICh2VU9NICYmICgodlVPTVtcIklTT0N1cnJlbmN5XCJdICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXS4kUGF0aCkgfHwgKHZVT01bXCJVbml0XCJdICYmIHZVT01bXCJVbml0XCJdLiRQYXRoKSkpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0cyA9IG9FdmVudC5nZXRTb3VyY2UoKS5nZXRDb250ZXh0cygpO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb0NvbnRleHRzICYmIG9Db250ZXh0c1swXS5nZXRPYmplY3QoKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5VU9NVG9UaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb0NvbnRleHREYXRhLCBvVmlldywgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdH1cblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsRmlsdGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBLElBT01BLFlBQVksSUFBQUMsSUFBQSxHQURqQkMsY0FBYyxDQUFD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
|
|
@@ -21,6 +21,7 @@ import type ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
|
|
|
21
21
|
import type { ODataListBinding$DataReceivedEvent } from "sap/ui/model/odata/v4/ODataListBinding";
|
|
22
22
|
import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
23
23
|
import type { MetaModelType } from "types/metamodel_types";
|
|
24
|
+
import VisualFilterRuntime from "../../visualfilters/VisualFilterRuntime";
|
|
24
25
|
/**
|
|
25
26
|
* Constructor for a new filterBar/aligned/FilterItemLayout.
|
|
26
27
|
* @param {string} [sId] ID for the new control, generated automatically if no ID is given
|
|
@@ -34,13 +35,32 @@ class VisualFilter extends VBox implements IFormContent {
|
|
|
34
35
|
|
|
35
36
|
private _oChartBinding?: ODataListBinding;
|
|
36
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Chart binding for the visual filter chart.
|
|
40
|
+
* @returns List Binding for the visual filter chart.
|
|
41
|
+
*/
|
|
42
|
+
public getChartBinding(): ODataListBinding | undefined {
|
|
43
|
+
const interactiveChart = this.getInteractiveChart();
|
|
44
|
+
const interactiveChartListBinding = (interactiveChart?.getBinding("segments") ||
|
|
45
|
+
interactiveChart?.getBinding("bars") ||
|
|
46
|
+
interactiveChart?.getBinding("points")) as ODataListBinding;
|
|
47
|
+
|
|
48
|
+
if (!this._oChartBinding || this._oChartBinding !== interactiveChartListBinding) {
|
|
49
|
+
if (this._oChartBinding) {
|
|
50
|
+
this.detachDataReceivedHandler(this._oChartBinding);
|
|
51
|
+
}
|
|
52
|
+
this.attachDataRecivedHandler(interactiveChartListBinding);
|
|
53
|
+
this._oChartBinding = interactiveChartListBinding;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return this._oChartBinding;
|
|
57
|
+
}
|
|
58
|
+
|
|
37
59
|
onAfterRendering(): void {
|
|
38
60
|
let sLabel;
|
|
39
61
|
const oInteractiveChart = this.getInteractiveChart();
|
|
40
62
|
const sInternalContextPath = this.data("infoPath");
|
|
41
|
-
const oInteractiveChartListBinding =
|
|
42
|
-
oInteractiveChart.getBinding("bars") ||
|
|
43
|
-
oInteractiveChart.getBinding("points")) as ODataListBinding;
|
|
63
|
+
const oInteractiveChartListBinding = this.getChartBinding();
|
|
44
64
|
const oInternalModelContext = oInteractiveChart.getBindingContext("internal") as InternalModelContext;
|
|
45
65
|
const oResourceBundle = Library.getResourceBundleFor("sap.fe.macros")!;
|
|
46
66
|
const bShowOverLayInitially = oInteractiveChart.data("showOverlayInitially");
|
|
@@ -135,13 +155,6 @@ class VisualFilter extends VBox implements IFormContent {
|
|
|
135
155
|
}
|
|
136
156
|
}
|
|
137
157
|
|
|
138
|
-
if (!this._oChartBinding || this._oChartBinding !== oInteractiveChartListBinding) {
|
|
139
|
-
if (this._oChartBinding) {
|
|
140
|
-
this.detachDataReceivedHandler(this._oChartBinding);
|
|
141
|
-
}
|
|
142
|
-
this.attachDataRecivedHandler(oInteractiveChartListBinding);
|
|
143
|
-
this._oChartBinding = oInteractiveChartListBinding;
|
|
144
|
-
}
|
|
145
158
|
const bShowOverlay =
|
|
146
159
|
oInternalModelContext.getProperty(sInternalContextPath) && oInternalModelContext.getProperty(sInternalContextPath).showError;
|
|
147
160
|
const sChartEntityName = sEntitySetPath !== "" ? sEntitySetPath.split("/")[1].split("(")[0] : "";
|
|
@@ -159,7 +172,8 @@ class VisualFilter extends VBox implements IFormContent {
|
|
|
159
172
|
// resume binding for only those visual filters that do not have a in parameter attached.
|
|
160
173
|
// Bindings of visual filters with inParameters will be resumed later after considering in parameters.
|
|
161
174
|
if (oInteractiveChartListBinding && oInteractiveChartListBinding.isSuspended() && !bShowOverlay) {
|
|
162
|
-
|
|
175
|
+
const visualFilterBB = VisualFilterRuntime.getParentVisualFilterControlBB(this);
|
|
176
|
+
visualFilterBB?._setInternalUpdatePending(undefined, false);
|
|
163
177
|
}
|
|
164
178
|
}
|
|
165
179
|
|
|
@@ -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/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContainer", "sap/ui/Device", "sap/ui/core/library", "sap/ui/mdc/filterbar/IFilterContainer"], function (ClassSupport, FlexBox, HeaderContainer, Device, coreLibrabry, IFilterContainer) {
|
|
5
|
+
sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContainer", "sap/ui/Device", "sap/ui/core/library", "sap/ui/mdc/filterbar/IFilterContainer", "./utils/VisualFilterUtils"], function (ClassSupport, FlexBox, HeaderContainer, Device, coreLibrabry, IFilterContainer, VisualFilterUtils) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _dec2, _class, _class2, _descriptor;
|
|
@@ -129,6 +129,15 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContain
|
|
|
129
129
|
_proto.setAllFilterFields = function setAllFilterFields(aFilterFields, aVisualFilterFields) {
|
|
130
130
|
this.aAllFilterFields = aFilterFields;
|
|
131
131
|
this.aVisualFilterFields = aVisualFilterFields;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Enables or disables the chart binding for visual filters in this container.
|
|
136
|
+
* @param enable Whether to enable or disable the chart binding
|
|
137
|
+
* @param diffState Optional parameter to specify the changed filter field paths, incase of enablement.
|
|
138
|
+
*/;
|
|
139
|
+
_proto.enableChartBinding = function enableChartBinding(enable, diffState) {
|
|
140
|
+
VisualFilterUtils.enableChartBinding(this.aVisualFilterFields ?? {}, enable, diffState);
|
|
132
141
|
};
|
|
133
142
|
return VisualFilterContainer;
|
|
134
143
|
}(IFilterContainer), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "_layout", [_dec2], {
|
|
@@ -139,4 +148,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContain
|
|
|
139
148
|
}), _class2)) || _class);
|
|
140
149
|
return VisualFilterContainer;
|
|
141
150
|
}, false);
|
|
142
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImFnZ3JlZ2F0aW9uIiwidHlwZSIsIm11bHRpcGxlIiwidmlzaWJpbGl0eSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfSUZpbHRlckNvbnRhaW5lciIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsImFWaXN1YWxGaWx0ZXJGaWVsZHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJPcmllbnRhdGlvbiIsImNvcmVMaWJyYWJyeSIsInNPcmllbnRhdGlvbiIsIkRldmljZSIsInN5c3RlbSIsInBob25lIiwiVmVydGljYWwiLCJ1bmRlZmluZWQiLCJzRGlyZWN0aW9uIiwib0hlYWRlckNvbnRhaW5lciIsIkhlYWRlckNvbnRhaW5lciIsIm9yaWVudGF0aW9uIiwib0J1dHRvbkZsZXhCb3giLCJGbGV4Qm94IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50Iiwib0xheW91dCIsImRpcmVjdGlvbiIsIml0ZW1zIiwic2V0UGFyZW50IiwiYUFsbEZpbHRlckZpZWxkcyIsImV4aXQiLCJnZXRBbGxGaWx0ZXJGaWVsZHMiLCJmb3JFYWNoIiwib0ZpbHRlckZpZWxkIiwiZGVzdHJveSIsImluc2VydEZpbHRlckZpZWxkIiwib0NvbnRyb2wiLCJpSW5kZXgiLCJvRmlsdGVySXRlbUxheW91dEV2ZW50RGVsZWdhdGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIl9mbkdldENvbnRlbnRDb3B5IiwiZ2V0Q29udGVudCIsImFDb250ZW50IiwicHVzaCIsIl9vRmlsdGVyRmllbGQiLCJyZW1vdmVFdmVudERlbGVnYXRlIiwiYWRkRXZlbnREZWxlZ2F0ZSIsIm9WaXN1YWxGaWx0ZXJzIiwic29tZSIsIm9Jbm5lckNvbnRyb2wiLCJzRkZJZCIsImdldElkIiwiaXNBIiwic2V0Q29udGVudCIsImluc2VydENvbnRlbnQiLCJyZW1vdmVGaWx0ZXJGaWVsZCIsInJlbW92ZUNvbnRlbnQiLCJyZW1vdmVBbGxGaWx0ZXJGaWVsZHMiLCJyZW1vdmVBbGxDb250ZW50IiwiZ2V0RmlsdGVyRmllbGRzIiwiYWRkQnV0dG9uIiwiYWRkSXRlbSIsImdldEFsbEJ1dHRvbnMiLCJnZXRJdGVtcyIsInJldmVyc2UiLCJyZW1vdmVCdXR0b24iLCJyZW1vdmVJdGVtIiwiZmlsdGVyIiwiZmlsdGVyRmllbGRMYXlvdXQiLCJpc0Rlc3Ryb3llZCIsInNldEFsbEZpbHRlckZpZWxkcyIsImFGaWx0ZXJGaWVsZHMiLCJJRmlsdGVyQ29udGFpbmVyIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWdncmVnYXRpb24sIGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgVmlzdWFsRmlsdGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL2ZpbHRlcmJhci9WaXN1YWxGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRmxleEJveCBmcm9tIFwic2FwL20vRmxleEJveFwiO1xuaW1wb3J0IEhlYWRlckNvbnRhaW5lciBmcm9tIFwic2FwL20vSGVhZGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgRGV2aWNlIGZyb20gXCJzYXAvdWkvRGV2aWNlXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgY29yZUxpYnJhYnJ5IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJGaWVsZFwiO1xuaW1wb3J0IElGaWx0ZXJDb250YWluZXIgZnJvbSBcInNhcC91aS9tZGMvZmlsdGVyYmFyL0lGaWx0ZXJDb250YWluZXJcIjtcbi8qKlxuICogQ29uc3RydWN0b3IgZm9yIGEgbmV3IFZpc3VhbCBGaWx0ZXIgQ29udGFpbmVyLlxuICogVXNlZCBmb3IgdmlzdWFsIGZpbHRlcnMuXG4gKlxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlckNvbnRhaW5lciBleHRlbmRzIElGaWx0ZXJDb250YWluZXIge1xuXHRAYWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLFxuXHRcdG11bHRpcGxlOiBmYWxzZSxcblx0XHR2aXNpYmlsaXR5OiBcImhpZGRlblwiXG5cdH0pXG5cdC8qKlxuXHQgKiBJbnRlcm5hbCBoaWRkZW4gYWdncmVnYXRpb24gdG8gaG9sZCB0aGUgaW5uZXIgbGF5b3V0LlxuXHQgKi9cblx0X2xheW91dCE6IENvbnRyb2w7XG5cblx0b0hlYWRlckNvbnRhaW5lcj86IEhlYWRlckNvbnRhaW5lcjtcblxuXHRvQnV0dG9uRmxleEJveD86IEZsZXhCb3g7XG5cblx0b0xheW91dCE6IEZsZXhCb3g7XG5cblx0YUFsbEZpbHRlckZpZWxkcyE6IEZpbHRlckZpZWxkW107XG5cblx0YVZpc3VhbEZpbHRlckZpZWxkcz86IFJlY29yZDxzdHJpbmcsIFZpc3VhbEZpbHRlcj4gPSB7fTtcblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdHN1cGVyLmluaXQoKTtcblx0XHRjb25zdCBPcmllbnRhdGlvbiA9IGNvcmVMaWJyYWJyeS5PcmllbnRhdGlvbjtcblxuXHRcdGNvbnN0IHNPcmllbnRhdGlvbiA9IERldmljZS5zeXN0ZW0ucGhvbmUgPyBPcmllbnRhdGlvbi5WZXJ0aWNhbCA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBzRGlyZWN0aW9uID0gRGV2aWNlLnN5c3RlbS5waG9uZSA/IFwiQ29sdW1uUmV2ZXJzZVwiIDogXCJDb2x1bW5cIjtcblxuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciA9IG5ldyBIZWFkZXJDb250YWluZXIoe1xuXHRcdFx0b3JpZW50YXRpb246IHNPcmllbnRhdGlvblxuXHRcdH0pO1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ggPSBuZXcgRmxleEJveCh7XG5cdFx0XHRhbGlnbkl0ZW1zOiBcIkVuZFwiLFxuXHRcdFx0anVzdGlmeUNvbnRlbnQ6IFwiRW5kXCJcblx0XHR9KTtcblxuXHRcdHRoaXMub0xheW91dCA9IG5ldyBGbGV4Qm94KHtcblx0XHRcdGRpcmVjdGlvbjogc0RpcmVjdGlvbiwgLy8gRGlyZWN0aW9uIGlzIENvbHVtbiBSZXZlcnNlIGZvciBQaG9uZVxuXHRcdFx0aXRlbXM6IFt0aGlzLm9IZWFkZXJDb250YWluZXIsIHRoaXMub0J1dHRvbkZsZXhCb3hdXG5cdFx0fSk7XG5cdFx0dGhpcy5vTGF5b3V0LnNldFBhcmVudCh0aGlzKTtcblxuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IFtdO1xuXHRcdHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA9IHt9O1xuXHR9XG5cblx0ZXhpdCgpOiB2b2lkIHtcblx0XHQvLyBkZXN0cm95IGxheW91dFxuXHRcdHN1cGVyLmV4aXQoKTtcblx0XHQvLyBkZXN0cm95IGFsbCBmaWx0ZXIgZmllbGRzIHdoaWNoIGFyZSBub3QgaW4gdGhlIGxheW91dFxuXHRcdGNvbnN0IGFBbGxGaWx0ZXJGaWVsZHMgPSB0aGlzLmdldEFsbEZpbHRlckZpZWxkcygpO1xuXHRcdGFBbGxGaWx0ZXJGaWVsZHMuZm9yRWFjaChmdW5jdGlvbiAob0ZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCkge1xuXHRcdFx0b0ZpbHRlckZpZWxkLmRlc3Ryb3koKTtcblx0XHR9KTtcblx0XHR0aGlzLm9IZWFkZXJDb250YWluZXIgPSB1bmRlZmluZWQ7XG5cdFx0dGhpcy5vQnV0dG9uRmxleEJveCA9IHVuZGVmaW5lZDtcblx0XHR0aGlzLmFBbGxGaWx0ZXJGaWVsZHMgPSBbXTtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0Ly8gQHRzLWlnbm9yZVxuXHRpbnNlcnRGaWx0ZXJGaWVsZChcblx0XHRvQ29udHJvbDogT21pdDxGaWx0ZXJGaWVsZCwgXCJnZXRDb250ZW50XCI+ICYge1xuXHRcdFx0X2ZuR2V0Q29udGVudENvcHk/OiBGdW5jdGlvbjtcblx0XHRcdF9vRmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkO1xuXHRcdFx0Z2V0Q29udGVudDogKCkgPT4gQ29udHJvbFtdO1xuXHRcdH0sXG5cdFx0aUluZGV4OiBudW1iZXJcblx0KTogdm9pZCB7XG5cdFx0Y29uc3Qgb0ZpbHRlckl0ZW1MYXlvdXRFdmVudERlbGVnYXRlID0ge1xuXHRcdFx0b25CZWZvcmVSZW5kZXJpbmc6IGZ1bmN0aW9uICgpOiB2b2lkIHtcblx0XHRcdFx0Ly8gdmlzdWFsIGZpbHRlciBkb2VzIG5vdCBuZWVkIHRvIHJlbmRlciBhIGxhYmVsXG5cdFx0XHRcdC8vIGhlbmNlIG92ZXJyaWRlIHRoZSBnZXRDb250ZW50IG9mIHRoZSBGaWx0ZXJJdGVtTGF5b3V0XG5cdFx0XHRcdC8vIGFuZCBzdG9yZSB0aGUgb3JpZ2luYWwgZ2V0Q29udGVudCBmb3IgbGF0ZXIgdXNhZ2UgaW4gdGhlIGNvbXBhY3QgZmlsdGVyc1xuXHRcdFx0XHRpZiAoIW9Db250cm9sLl9mbkdldENvbnRlbnRDb3B5KSB7XG5cdFx0XHRcdFx0b0NvbnRyb2wuX2ZuR2V0Q29udGVudENvcHkgPSBvQ29udHJvbC5nZXRDb250ZW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIG92ZXJyaWRlIGdldENvbnRlbnQgb2YgRmlsdGVySXRlbUxheW91dFxuXHRcdFx0XHQvLyB0byBhZGQgb25seSBmaWx0ZXJGaWVsZCBhbmQgbm90IGxhYmVsXG5cdFx0XHRcdG9Db250cm9sLmdldENvbnRlbnQgPSBmdW5jdGlvbiAoKTogQ29udHJvbFtdIHtcblx0XHRcdFx0XHRjb25zdCBhQ29udGVudCA9IFtdO1xuXHRcdFx0XHRcdGFDb250ZW50LnB1c2gob0NvbnRyb2wuX29GaWx0ZXJGaWVsZCk7XG5cdFx0XHRcdFx0cmV0dXJuIGFDb250ZW50O1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRvQ29udHJvbC5yZW1vdmVFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRvQ29udHJvbC5hZGRFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cblx0XHQvLyBTZXR0aW5nIFZGIGNvbnRyb2wgZm9yIHRoZSBGaWx0ZXJmaWVsZC5cblx0XHRjb25zdCBvVmlzdWFsRmlsdGVycyA9IHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcztcblx0XHRvQ29udHJvbC5nZXRDb250ZW50KCkuc29tZSgob0lubmVyQ29udHJvbDogQ29udHJvbCkgPT4ge1xuXHRcdFx0Y29uc3Qgc0ZGSWQgPSBvSW5uZXJDb250cm9sLmdldElkKCk7XG5cdFx0XHRpZiAob1Zpc3VhbEZpbHRlcnMgJiYgb1Zpc3VhbEZpbHRlcnNbc0ZGSWRdICYmIG9Jbm5lckNvbnRyb2wuaXNBPEZpbHRlckZpZWxkPihcInNhcC51aS5tZGMuRmlsdGVyRmllbGRcIikpIHtcblx0XHRcdFx0b0lubmVyQ29udHJvbC5zZXRDb250ZW50KG9WaXN1YWxGaWx0ZXJzW3NGRklkXSk7XG5cdFx0XHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEuaW5zZXJ0Q29udGVudChvQ29udHJvbCwgaUluZGV4KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHJlbW92ZUZpbHRlckZpZWxkKG9Db250cm9sOiBGaWx0ZXJGaWVsZCk6IHZvaWQge1xuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEucmVtb3ZlQ29udGVudChvQ29udHJvbCk7XG5cdH1cblxuXHRyZW1vdmVBbGxGaWx0ZXJGaWVsZHMoKTogdm9pZCB7XG5cdFx0dGhpcy5hQWxsRmlsdGVyRmllbGRzID0gW107XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0ge307XG5cdFx0dGhpcy5vSGVhZGVyQ29udGFpbmVyIS5yZW1vdmVBbGxDb250ZW50KCk7XG5cdH1cblxuXHRnZXRGaWx0ZXJGaWVsZHMoKTogRmlsdGVyRmllbGRbXSB7XG5cdFx0cmV0dXJuIHRoaXMub0hlYWRlckNvbnRhaW5lciEuZ2V0Q29udGVudCgpIGFzIEZpbHRlckZpZWxkW107XG5cdH1cblxuXHRhZGRCdXR0b24ob0NvbnRyb2w6IEJ1dHRvbik6IHZvaWQge1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ghLmFkZEl0ZW0ob0NvbnRyb2wpO1xuXHR9XG5cblx0Z2V0QWxsQnV0dG9ucygpOiBCdXR0b25bXSB7XG5cdFx0cmV0dXJuIHRoaXMub0J1dHRvbkZsZXhCb3ghLmdldEl0ZW1zKCkucmV2ZXJzZSgpIGFzIEJ1dHRvbltdO1xuXHR9XG5cblx0cmVtb3ZlQnV0dG9uKG9Db250cm9sOiBCdXR0b24pOiB2b2lkIHtcblx0XHR0aGlzLm9CdXR0b25GbGV4Qm94IS5yZW1vdmVJdGVtKG9Db250cm9sKTtcblx0fVxuXG5cdGdldEFsbEZpbHRlckZpZWxkcygpOiBGaWx0ZXJGaWVsZFtdIHtcblx0XHRyZXR1cm4gdGhpcy5hQWxsRmlsdGVyRmllbGRzLmZpbHRlcigoZmlsdGVyRmllbGRMYXlvdXQpID0+ICFmaWx0ZXJGaWVsZExheW91dC5pc0Rlc3Ryb3llZCgpKTtcblx0fVxuXG5cdHNldEFsbEZpbHRlckZpZWxkcyhhRmlsdGVyRmllbGRzOiBGaWx0ZXJGaWVsZFtdLCBhVmlzdWFsRmlsdGVyRmllbGRzPzogUmVjb3JkPHN0cmluZywgVmlzdWFsRmlsdGVyPik6IHZvaWQge1xuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IGFGaWx0ZXJGaWVsZHM7XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0gYVZpc3VhbEZpbHRlckZpZWxkcztcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBWaXN1YWxGaWx0ZXJDb250YWluZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztFQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQSxJQU1NQSxxQkFBcUIsSUFBQUMsSUFBQSxHQUQxQkMsY0FBYyxDQUFDLHdEQUF3RCxDQUFDLEVBQUFDLEtBQUEsR0FFdkVDLFdBQVcsQ0FBQztJQUNaQyxJQUFJLEVBQUUscUJBQXFCO0lBQzNCQyxRQUFRLEVBQUUsS0FBSztJQUNmQyxVQUFVLEVBQUU7RUFDYixDQUFDLENBQUMsRUFBQU4sSUFBQSxDQUFBTyxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGlCQUFBO0lBQUEsU0FBQVYsc0JBQUE7TUFBQSxJQUFBVyxLQUFBO01BQUEsU0FBQUMsSUFBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsRUFBQUMsSUFBQSxPQUFBQyxLQUFBLENBQUFKLElBQUEsR0FBQUssSUFBQSxNQUFBQSxJQUFBLEdBQUFMLElBQUEsRUFBQUssSUFBQTtRQUFBRixJQUFBLENBQUFFLElBQUEsSUFBQUosU0FBQSxDQUFBSSxJQUFBO01BQUE7TUFBQU4sS0FBQSxHQUFBRCxpQkFBQSxDQUFBUSxJQUFBLFVBQUFILElBQUE7TUFBQUksMEJBQUEsQ0FBQVIsS0FBQSxhQUFBUyxXQUFBLEVBQUFULEtBQUE7TUFBQUEsS0FBQSxDQWNGVSxtQkFBbUIsR0FBa0MsQ0FBQyxDQUFDO01BQUEsT0FBQVYsS0FBQTtJQUFBO0lBQUFXLGNBQUEsQ0FBQXRCLHFCQUFBLEVBQUFVLGlCQUFBO0lBQUEsSUFBQWEsTUFBQSxHQUFBdkIscUJBQUEsQ0FBQXdCLFNBQUE7SUFBQUQsTUFBQSxDQUV2REUsSUFBSSxHQUFKLFNBQUFBLElBQUlBLENBQUEsRUFB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
|
|
151
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImFnZ3JlZ2F0aW9uIiwidHlwZSIsIm11bHRpcGxlIiwidmlzaWJpbGl0eSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfSUZpbHRlckNvbnRhaW5lciIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsImFWaXN1YWxGaWx0ZXJGaWVsZHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJPcmllbnRhdGlvbiIsImNvcmVMaWJyYWJyeSIsInNPcmllbnRhdGlvbiIsIkRldmljZSIsInN5c3RlbSIsInBob25lIiwiVmVydGljYWwiLCJ1bmRlZmluZWQiLCJzRGlyZWN0aW9uIiwib0hlYWRlckNvbnRhaW5lciIsIkhlYWRlckNvbnRhaW5lciIsIm9yaWVudGF0aW9uIiwib0J1dHRvbkZsZXhCb3giLCJGbGV4Qm94IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50Iiwib0xheW91dCIsImRpcmVjdGlvbiIsIml0ZW1zIiwic2V0UGFyZW50IiwiYUFsbEZpbHRlckZpZWxkcyIsImV4aXQiLCJnZXRBbGxGaWx0ZXJGaWVsZHMiLCJmb3JFYWNoIiwib0ZpbHRlckZpZWxkIiwiZGVzdHJveSIsImluc2VydEZpbHRlckZpZWxkIiwib0NvbnRyb2wiLCJpSW5kZXgiLCJvRmlsdGVySXRlbUxheW91dEV2ZW50RGVsZWdhdGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIl9mbkdldENvbnRlbnRDb3B5IiwiZ2V0Q29udGVudCIsImFDb250ZW50IiwicHVzaCIsIl9vRmlsdGVyRmllbGQiLCJyZW1vdmVFdmVudERlbGVnYXRlIiwiYWRkRXZlbnREZWxlZ2F0ZSIsIm9WaXN1YWxGaWx0ZXJzIiwic29tZSIsIm9Jbm5lckNvbnRyb2wiLCJzRkZJZCIsImdldElkIiwiaXNBIiwic2V0Q29udGVudCIsImluc2VydENvbnRlbnQiLCJyZW1vdmVGaWx0ZXJGaWVsZCIsInJlbW92ZUNvbnRlbnQiLCJyZW1vdmVBbGxGaWx0ZXJGaWVsZHMiLCJyZW1vdmVBbGxDb250ZW50IiwiZ2V0RmlsdGVyRmllbGRzIiwiYWRkQnV0dG9uIiwiYWRkSXRlbSIsImdldEFsbEJ1dHRvbnMiLCJnZXRJdGVtcyIsInJldmVyc2UiLCJyZW1vdmVCdXR0b24iLCJyZW1vdmVJdGVtIiwiZmlsdGVyIiwiZmlsdGVyRmllbGRMYXlvdXQiLCJpc0Rlc3Ryb3llZCIsInNldEFsbEZpbHRlckZpZWxkcyIsImFGaWx0ZXJGaWVsZHMiLCJlbmFibGVDaGFydEJpbmRpbmciLCJlbmFibGUiLCJkaWZmU3RhdGUiLCJWaXN1YWxGaWx0ZXJVdGlscyIsIklGaWx0ZXJDb250YWluZXIiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlckNvbnRhaW5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZ2dyZWdhdGlvbiwgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBWaXN1YWxGaWx0ZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvdmlzdWFsZmlsdGVycy9WaXN1YWxGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRmxleEJveCBmcm9tIFwic2FwL20vRmxleEJveFwiO1xuaW1wb3J0IEhlYWRlckNvbnRhaW5lciBmcm9tIFwic2FwL20vSGVhZGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgRGV2aWNlIGZyb20gXCJzYXAvdWkvRGV2aWNlXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgY29yZUxpYnJhYnJ5IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJGaWVsZFwiO1xuaW1wb3J0IElGaWx0ZXJDb250YWluZXIgZnJvbSBcInNhcC91aS9tZGMvZmlsdGVyYmFyL0lGaWx0ZXJDb250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgRXh0ZXJuYWxTdGF0ZVR5cGUgfSBmcm9tIFwiLi4vLi4vdmFsdWVoZWxwL1ZhbHVlSGVscERlbGVnYXRlXCI7XG5pbXBvcnQgVmlzdWFsRmlsdGVyVXRpbHMgZnJvbSBcIi4vdXRpbHMvVmlzdWFsRmlsdGVyVXRpbHNcIjtcbi8qKlxuICogQ29uc3RydWN0b3IgZm9yIGEgbmV3IFZpc3VhbCBGaWx0ZXIgQ29udGFpbmVyLlxuICogVXNlZCBmb3IgdmlzdWFsIGZpbHRlcnMuXG4gKlxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlckNvbnRhaW5lciBleHRlbmRzIElGaWx0ZXJDb250YWluZXIge1xuXHRAYWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLFxuXHRcdG11bHRpcGxlOiBmYWxzZSxcblx0XHR2aXNpYmlsaXR5OiBcImhpZGRlblwiXG5cdH0pXG5cdC8qKlxuXHQgKiBJbnRlcm5hbCBoaWRkZW4gYWdncmVnYXRpb24gdG8gaG9sZCB0aGUgaW5uZXIgbGF5b3V0LlxuXHQgKi9cblx0X2xheW91dCE6IENvbnRyb2w7XG5cblx0b0hlYWRlckNvbnRhaW5lcj86IEhlYWRlckNvbnRhaW5lcjtcblxuXHRvQnV0dG9uRmxleEJveD86IEZsZXhCb3g7XG5cblx0b0xheW91dCE6IEZsZXhCb3g7XG5cblx0YUFsbEZpbHRlckZpZWxkcyE6IEZpbHRlckZpZWxkW107XG5cblx0YVZpc3VhbEZpbHRlckZpZWxkcz86IFJlY29yZDxzdHJpbmcsIFZpc3VhbEZpbHRlcj4gPSB7fTtcblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdHN1cGVyLmluaXQoKTtcblx0XHRjb25zdCBPcmllbnRhdGlvbiA9IGNvcmVMaWJyYWJyeS5PcmllbnRhdGlvbjtcblxuXHRcdGNvbnN0IHNPcmllbnRhdGlvbiA9IERldmljZS5zeXN0ZW0ucGhvbmUgPyBPcmllbnRhdGlvbi5WZXJ0aWNhbCA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBzRGlyZWN0aW9uID0gRGV2aWNlLnN5c3RlbS5waG9uZSA/IFwiQ29sdW1uUmV2ZXJzZVwiIDogXCJDb2x1bW5cIjtcblxuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciA9IG5ldyBIZWFkZXJDb250YWluZXIoe1xuXHRcdFx0b3JpZW50YXRpb246IHNPcmllbnRhdGlvblxuXHRcdH0pO1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ggPSBuZXcgRmxleEJveCh7XG5cdFx0XHRhbGlnbkl0ZW1zOiBcIkVuZFwiLFxuXHRcdFx0anVzdGlmeUNvbnRlbnQ6IFwiRW5kXCJcblx0XHR9KTtcblxuXHRcdHRoaXMub0xheW91dCA9IG5ldyBGbGV4Qm94KHtcblx0XHRcdGRpcmVjdGlvbjogc0RpcmVjdGlvbiwgLy8gRGlyZWN0aW9uIGlzIENvbHVtbiBSZXZlcnNlIGZvciBQaG9uZVxuXHRcdFx0aXRlbXM6IFt0aGlzLm9IZWFkZXJDb250YWluZXIsIHRoaXMub0J1dHRvbkZsZXhCb3hdXG5cdFx0fSk7XG5cdFx0dGhpcy5vTGF5b3V0LnNldFBhcmVudCh0aGlzKTtcblxuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IFtdO1xuXHRcdHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA9IHt9O1xuXHR9XG5cblx0ZXhpdCgpOiB2b2lkIHtcblx0XHQvLyBkZXN0cm95IGxheW91dFxuXHRcdHN1cGVyLmV4aXQoKTtcblx0XHQvLyBkZXN0cm95IGFsbCBmaWx0ZXIgZmllbGRzIHdoaWNoIGFyZSBub3QgaW4gdGhlIGxheW91dFxuXHRcdGNvbnN0IGFBbGxGaWx0ZXJGaWVsZHMgPSB0aGlzLmdldEFsbEZpbHRlckZpZWxkcygpO1xuXHRcdGFBbGxGaWx0ZXJGaWVsZHMuZm9yRWFjaChmdW5jdGlvbiAob0ZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCkge1xuXHRcdFx0b0ZpbHRlckZpZWxkLmRlc3Ryb3koKTtcblx0XHR9KTtcblx0XHR0aGlzLm9IZWFkZXJDb250YWluZXIgPSB1bmRlZmluZWQ7XG5cdFx0dGhpcy5vQnV0dG9uRmxleEJveCA9IHVuZGVmaW5lZDtcblx0XHR0aGlzLmFBbGxGaWx0ZXJGaWVsZHMgPSBbXTtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0Ly8gQHRzLWlnbm9yZVxuXHRpbnNlcnRGaWx0ZXJGaWVsZChcblx0XHRvQ29udHJvbDogT21pdDxGaWx0ZXJGaWVsZCwgXCJnZXRDb250ZW50XCI+ICYge1xuXHRcdFx0X2ZuR2V0Q29udGVudENvcHk/OiBGdW5jdGlvbjtcblx0XHRcdF9vRmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkO1xuXHRcdFx0Z2V0Q29udGVudDogKCkgPT4gQ29udHJvbFtdO1xuXHRcdH0sXG5cdFx0aUluZGV4OiBudW1iZXJcblx0KTogdm9pZCB7XG5cdFx0Y29uc3Qgb0ZpbHRlckl0ZW1MYXlvdXRFdmVudERlbGVnYXRlID0ge1xuXHRcdFx0b25CZWZvcmVSZW5kZXJpbmc6IGZ1bmN0aW9uICgpOiB2b2lkIHtcblx0XHRcdFx0Ly8gdmlzdWFsIGZpbHRlciBkb2VzIG5vdCBuZWVkIHRvIHJlbmRlciBhIGxhYmVsXG5cdFx0XHRcdC8vIGhlbmNlIG92ZXJyaWRlIHRoZSBnZXRDb250ZW50IG9mIHRoZSBGaWx0ZXJJdGVtTGF5b3V0XG5cdFx0XHRcdC8vIGFuZCBzdG9yZSB0aGUgb3JpZ2luYWwgZ2V0Q29udGVudCBmb3IgbGF0ZXIgdXNhZ2UgaW4gdGhlIGNvbXBhY3QgZmlsdGVyc1xuXHRcdFx0XHRpZiAoIW9Db250cm9sLl9mbkdldENvbnRlbnRDb3B5KSB7XG5cdFx0XHRcdFx0b0NvbnRyb2wuX2ZuR2V0Q29udGVudENvcHkgPSBvQ29udHJvbC5nZXRDb250ZW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIG92ZXJyaWRlIGdldENvbnRlbnQgb2YgRmlsdGVySXRlbUxheW91dFxuXHRcdFx0XHQvLyB0byBhZGQgb25seSBmaWx0ZXJGaWVsZCBhbmQgbm90IGxhYmVsXG5cdFx0XHRcdG9Db250cm9sLmdldENvbnRlbnQgPSBmdW5jdGlvbiAoKTogQ29udHJvbFtdIHtcblx0XHRcdFx0XHRjb25zdCBhQ29udGVudCA9IFtdO1xuXHRcdFx0XHRcdGFDb250ZW50LnB1c2gob0NvbnRyb2wuX29GaWx0ZXJGaWVsZCk7XG5cdFx0XHRcdFx0cmV0dXJuIGFDb250ZW50O1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRvQ29udHJvbC5yZW1vdmVFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRvQ29udHJvbC5hZGRFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cblx0XHQvLyBTZXR0aW5nIFZGIGNvbnRyb2wgZm9yIHRoZSBGaWx0ZXJmaWVsZC5cblx0XHRjb25zdCBvVmlzdWFsRmlsdGVycyA9IHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcztcblx0XHRvQ29udHJvbC5nZXRDb250ZW50KCkuc29tZSgob0lubmVyQ29udHJvbDogQ29udHJvbCkgPT4ge1xuXHRcdFx0Y29uc3Qgc0ZGSWQgPSBvSW5uZXJDb250cm9sLmdldElkKCk7XG5cdFx0XHRpZiAob1Zpc3VhbEZpbHRlcnMgJiYgb1Zpc3VhbEZpbHRlcnNbc0ZGSWRdICYmIG9Jbm5lckNvbnRyb2wuaXNBPEZpbHRlckZpZWxkPihcInNhcC51aS5tZGMuRmlsdGVyRmllbGRcIikpIHtcblx0XHRcdFx0b0lubmVyQ29udHJvbC5zZXRDb250ZW50KG9WaXN1YWxGaWx0ZXJzW3NGRklkXSk7XG5cdFx0XHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEuaW5zZXJ0Q29udGVudChvQ29udHJvbCwgaUluZGV4KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHJlbW92ZUZpbHRlckZpZWxkKG9Db250cm9sOiBGaWx0ZXJGaWVsZCk6IHZvaWQge1xuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEucmVtb3ZlQ29udGVudChvQ29udHJvbCk7XG5cdH1cblxuXHRyZW1vdmVBbGxGaWx0ZXJGaWVsZHMoKTogdm9pZCB7XG5cdFx0dGhpcy5hQWxsRmlsdGVyRmllbGRzID0gW107XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0ge307XG5cdFx0dGhpcy5vSGVhZGVyQ29udGFpbmVyIS5yZW1vdmVBbGxDb250ZW50KCk7XG5cdH1cblxuXHRnZXRGaWx0ZXJGaWVsZHMoKTogRmlsdGVyRmllbGRbXSB7XG5cdFx0cmV0dXJuIHRoaXMub0hlYWRlckNvbnRhaW5lciEuZ2V0Q29udGVudCgpIGFzIEZpbHRlckZpZWxkW107XG5cdH1cblxuXHRhZGRCdXR0b24ob0NvbnRyb2w6IEJ1dHRvbik6IHZvaWQge1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ghLmFkZEl0ZW0ob0NvbnRyb2wpO1xuXHR9XG5cblx0Z2V0QWxsQnV0dG9ucygpOiBCdXR0b25bXSB7XG5cdFx0cmV0dXJuIHRoaXMub0J1dHRvbkZsZXhCb3ghLmdldEl0ZW1zKCkucmV2ZXJzZSgpIGFzIEJ1dHRvbltdO1xuXHR9XG5cblx0cmVtb3ZlQnV0dG9uKG9Db250cm9sOiBCdXR0b24pOiB2b2lkIHtcblx0XHR0aGlzLm9CdXR0b25GbGV4Qm94IS5yZW1vdmVJdGVtKG9Db250cm9sKTtcblx0fVxuXG5cdGdldEFsbEZpbHRlckZpZWxkcygpOiBGaWx0ZXJGaWVsZFtdIHtcblx0XHRyZXR1cm4gdGhpcy5hQWxsRmlsdGVyRmllbGRzLmZpbHRlcigoZmlsdGVyRmllbGRMYXlvdXQpID0+ICFmaWx0ZXJGaWVsZExheW91dC5pc0Rlc3Ryb3llZCgpKTtcblx0fVxuXG5cdHNldEFsbEZpbHRlckZpZWxkcyhhRmlsdGVyRmllbGRzOiBGaWx0ZXJGaWVsZFtdLCBhVmlzdWFsRmlsdGVyRmllbGRzPzogUmVjb3JkPHN0cmluZywgVmlzdWFsRmlsdGVyPik6IHZvaWQge1xuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IGFGaWx0ZXJGaWVsZHM7XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0gYVZpc3VhbEZpbHRlckZpZWxkcztcblx0fVxuXG5cdC8qKlxuXHQgKiBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSBjaGFydCBiaW5kaW5nIGZvciB2aXN1YWwgZmlsdGVycyBpbiB0aGlzIGNvbnRhaW5lci5cblx0ICogQHBhcmFtIGVuYWJsZSBXaGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBjaGFydCBiaW5kaW5nXG5cdCAqIEBwYXJhbSBkaWZmU3RhdGUgT3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNwZWNpZnkgdGhlIGNoYW5nZWQgZmlsdGVyIGZpZWxkIHBhdGhzLCBpbmNhc2Ugb2YgZW5hYmxlbWVudC5cblx0ICovXG5cdGVuYWJsZUNoYXJ0QmluZGluZyhlbmFibGU6IGJvb2xlYW4sIGRpZmZTdGF0ZT86IEV4dGVybmFsU3RhdGVUeXBlKTogdm9pZCB7XG5cdFx0VmlzdWFsRmlsdGVyVXRpbHMuZW5hYmxlQ2hhcnRCaW5kaW5nKHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA/PyB7fSwgZW5hYmxlLCBkaWZmU3RhdGUpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpc3VhbEZpbHRlckNvbnRhaW5lcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0VBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBLElBTU1BLHFCQUFxQixJQUFBQyxJQUFBLEdBRDFC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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { aggregation, defineUI5Class } from "sap/fe/base/ClassSupport";
|
|
2
|
-
import type VisualFilter from "sap/fe/macros/
|
|
2
|
+
import type VisualFilter from "sap/fe/macros/visualfilters/VisualFilter";
|
|
3
3
|
import type Button from "sap/m/Button";
|
|
4
4
|
import FlexBox from "sap/m/FlexBox";
|
|
5
5
|
import HeaderContainer from "sap/m/HeaderContainer";
|
|
@@ -8,6 +8,8 @@ import type Control from "sap/ui/core/Control";
|
|
|
8
8
|
import coreLibrabry from "sap/ui/core/library";
|
|
9
9
|
import type FilterField from "sap/ui/mdc/FilterField";
|
|
10
10
|
import IFilterContainer from "sap/ui/mdc/filterbar/IFilterContainer";
|
|
11
|
+
import type { ExternalStateType } from "../../valuehelp/ValueHelpDelegate";
|
|
12
|
+
import VisualFilterUtils from "./utils/VisualFilterUtils";
|
|
11
13
|
/**
|
|
12
14
|
* Constructor for a new Visual Filter Container.
|
|
13
15
|
* Used for visual filters.
|
|
@@ -148,6 +150,15 @@ class VisualFilterContainer extends IFilterContainer {
|
|
|
148
150
|
this.aAllFilterFields = aFilterFields;
|
|
149
151
|
this.aVisualFilterFields = aVisualFilterFields;
|
|
150
152
|
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Enables or disables the chart binding for visual filters in this container.
|
|
156
|
+
* @param enable Whether to enable or disable the chart binding
|
|
157
|
+
* @param diffState Optional parameter to specify the changed filter field paths, incase of enablement.
|
|
158
|
+
*/
|
|
159
|
+
enableChartBinding(enable: boolean, diffState?: ExternalStateType): void {
|
|
160
|
+
VisualFilterUtils.enableChartBinding(this.aVisualFilterFields ?? {}, enable, diffState);
|
|
161
|
+
}
|
|
151
162
|
}
|
|
152
163
|
|
|
153
164
|
export default VisualFilterContainer;
|