@sapui5/sap.fe.macros 1.139.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/Field.js +65 -55
- package/src/sap/fe/macros/Field.ts +83 -57
- package/src/sap/fe/macros/FooterContent.js +5 -2
- package/src/sap/fe/macros/FooterContent.tsx +4 -1
- 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 +1 -3
- package/src/sap/fe/macros/MultiValueField.tsx +0 -2
- package/src/sap/fe/macros/Share.js +14 -2
- package/src/sap/fe/macros/Share.tsx +13 -0
- 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 -28
- package/src/sap/fe/macros/ValueHelp.tsx +2 -42
- package/src/sap/fe/macros/ai/EasyFilterBar.js +105 -96
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +122 -103
- 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/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 +2 -4
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +1 -4
- 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/NumberWithUnitOrCurrency.js +2 -2
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
- 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 +28 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.ts +27 -0
- package/src/sap/fe/macros/field/FieldBaseDelegate.js +13 -7
- package/src/sap/fe/macros/field/FieldBaseDelegate.ts +12 -8
- 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/form/Form.js +1 -4
- package/src/sap/fe/macros/form/Form.tsx +0 -3
- 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/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/fpm/CustomFragment.block.js +1 -2
- package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
- 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/FilterField.block.js +7 -1
- package/src/sap/fe/macros/internal/FilterField.block.ts +8 -0
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +3 -3
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +2 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +1 -1
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +1 -0
- 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 +1 -1
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +10 -3
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +13 -2
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/messagebundle.properties +5 -3
- package/src/sap/fe/macros/messagebundle_ar.properties +7 -1
- package/src/sap/fe/macros/messagebundle_bg.properties +7 -1
- package/src/sap/fe/macros/messagebundle_ca.properties +10 -4
- package/src/sap/fe/macros/messagebundle_cnr.properties +7 -1
- package/src/sap/fe/macros/messagebundle_cs.properties +6 -0
- package/src/sap/fe/macros/messagebundle_cy.properties +8 -2
- package/src/sap/fe/macros/messagebundle_da.properties +7 -1
- package/src/sap/fe/macros/messagebundle_de.properties +13 -7
- package/src/sap/fe/macros/messagebundle_el.properties +6 -0
- package/src/sap/fe/macros/messagebundle_en.properties +10 -4
- package/src/sap/fe/macros/messagebundle_en_GB.properties +8 -2
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +10 -4
- package/src/sap/fe/macros/messagebundle_es.properties +8 -2
- package/src/sap/fe/macros/messagebundle_es_MX.properties +10 -4
- package/src/sap/fe/macros/messagebundle_et.properties +8 -2
- package/src/sap/fe/macros/messagebundle_fi.properties +6 -0
- package/src/sap/fe/macros/messagebundle_fr.properties +8 -2
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +7 -1
- package/src/sap/fe/macros/messagebundle_hi.properties +7 -1
- package/src/sap/fe/macros/messagebundle_hr.properties +7 -1
- package/src/sap/fe/macros/messagebundle_hu.properties +6 -0
- package/src/sap/fe/macros/messagebundle_id.properties +10 -4
- package/src/sap/fe/macros/messagebundle_it.properties +6 -0
- package/src/sap/fe/macros/messagebundle_iw.properties +7 -1
- package/src/sap/fe/macros/messagebundle_ja.properties +8 -2
- package/src/sap/fe/macros/messagebundle_kk.properties +10 -4
- package/src/sap/fe/macros/messagebundle_ko.properties +6 -0
- package/src/sap/fe/macros/messagebundle_lt.properties +7 -1
- package/src/sap/fe/macros/messagebundle_lv.properties +7 -1
- package/src/sap/fe/macros/messagebundle_mk.properties +7 -1
- package/src/sap/fe/macros/messagebundle_ms.properties +6 -0
- package/src/sap/fe/macros/messagebundle_nl.properties +6 -0
- package/src/sap/fe/macros/messagebundle_no.properties +6 -0
- package/src/sap/fe/macros/messagebundle_pl.properties +7 -1
- package/src/sap/fe/macros/messagebundle_pt.properties +6 -0
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +6 -0
- package/src/sap/fe/macros/messagebundle_ro.properties +7 -1
- package/src/sap/fe/macros/messagebundle_ru.properties +9 -3
- package/src/sap/fe/macros/messagebundle_sh.properties +7 -1
- package/src/sap/fe/macros/messagebundle_sk.properties +6 -0
- package/src/sap/fe/macros/messagebundle_sl.properties +6 -0
- package/src/sap/fe/macros/messagebundle_sr.properties +7 -1
- package/src/sap/fe/macros/messagebundle_sv.properties +6 -0
- package/src/sap/fe/macros/messagebundle_th.properties +7 -1
- package/src/sap/fe/macros/messagebundle_tr.properties +6 -0
- package/src/sap/fe/macros/messagebundle_uk.properties +9 -3
- package/src/sap/fe/macros/messagebundle_vi.properties +8 -2
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +6 -0
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +7 -1
- package/src/sap/fe/macros/messages/MessageButton.js +39 -18
- package/src/sap/fe/macros/messages/MessageButton.ts +40 -17
- 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/MdcTableTemplate.js +3 -1
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +6 -2
- 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 +24 -5
- package/src/sap/fe/macros/table/TableRuntime.ts +31 -3
- 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 +1 -2
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +0 -1
- 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/mixin/TableHierarchy.js +5 -1
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +7 -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 +10 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +17 -0
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +1 -2
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +0 -1
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +2 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +1 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Property } from "@sap-ux/vocabularies-types";
|
|
1
2
|
import Log from "sap/base/Log";
|
|
2
3
|
import type { EnhanceWithUI5 } from "sap/fe/base/ClassSupport";
|
|
3
4
|
import { aggregation, association, defineUI5Class, implementInterface, property, type PropertiesOf } from "sap/fe/base/ClassSupport";
|
|
@@ -42,14 +43,13 @@ import DateTimeOffset from "sap/ui/model/odata/type/DateTimeOffset";
|
|
|
42
43
|
import type ODataType from "sap/ui/model/odata/type/ODataType";
|
|
43
44
|
import TimeOfDay from "sap/ui/model/odata/type/TimeOfDay";
|
|
44
45
|
import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
45
|
-
import type { CodeList
|
|
46
|
+
import type { CodeList } from "ux/eng/fioriai/reuse/easyfilter/EasyFilter";
|
|
46
47
|
|
|
47
48
|
type EasyFilterBarState = {};
|
|
48
|
-
type FieldMetadata = EasyFilterPropertyMetadata & {
|
|
49
|
+
type FieldMetadata = EasyFilterPropertyMetadata & { maxLength?: number };
|
|
49
50
|
|
|
50
51
|
/**
|
|
51
52
|
* Delivery for beta release for the easy filter feature.
|
|
52
|
-
* @experimental
|
|
53
53
|
*/
|
|
54
54
|
@defineUI5Class("sap.fe.macros.EasyFilterBar")
|
|
55
55
|
export default class EasyFilterBar extends BuildingBlock implements IViewStateContributor<EasyFilterBarState> {
|
|
@@ -71,8 +71,6 @@ export default class EasyFilterBar extends BuildingBlock implements IViewStateCo
|
|
|
71
71
|
@aggregation({ type: "sap.fe.controls.easyFilter.EasyFilterBarContainer" })
|
|
72
72
|
content?: EnhanceWithUI5<EasyFilterBarContainer>;
|
|
73
73
|
|
|
74
|
-
_fetchedCodeList!: Record<string, CodeList | undefined>;
|
|
75
|
-
|
|
76
74
|
private filterBarMetadata!: FieldMetadata[];
|
|
77
75
|
|
|
78
76
|
private easyFilterPath?: string;
|
|
@@ -142,116 +140,124 @@ export default class EasyFilterBar extends BuildingBlock implements IViewStateCo
|
|
|
142
140
|
}
|
|
143
141
|
|
|
144
142
|
onMetadataAvailable(): void {
|
|
145
|
-
this._fetchedCodeList ??= {};
|
|
146
143
|
this.filterBarMetadata = this.prepareFilterBarMetadata();
|
|
147
144
|
this.recommendedQueries = this.getAppComponent()?.getManifestEntry("sap.fe")?.macros?.easyFilter?.recommendedQueries ?? [];
|
|
148
145
|
this.content = this.createContent() as EnhanceWithUI5<EasyFilterBarContainer>;
|
|
149
146
|
this.content.filterBarMetadata = this.filterBarMetadata;
|
|
150
147
|
}
|
|
151
148
|
|
|
149
|
+
private getUnitForFilterField(field: FilterField, allFilterFields: FilterField[]): string | undefined {
|
|
150
|
+
const propertyObject = field.getTarget();
|
|
151
|
+
const unitAnnotation = propertyObject.annotations.Measures?.ISOCurrency ?? propertyObject.annotations.Measures?.Unit;
|
|
152
|
+
const unitProperty = isPathAnnotationExpression(unitAnnotation) ? unitAnnotation.$target : undefined;
|
|
153
|
+
return allFilterFields.find((f) => f.getTarget() === unitProperty)?.annotationPath;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
private getDefaultValueForFilterField(
|
|
157
|
+
field: FilterField,
|
|
158
|
+
startupParameters: Record<string, unknown>
|
|
159
|
+
): TokenSelectedValuesDefinition[] | undefined {
|
|
160
|
+
let defaultValue: TokenSelectedValuesDefinition[] | undefined;
|
|
161
|
+
if (startupParameters.hasOwnProperty(field.name)) {
|
|
162
|
+
defaultValue = [
|
|
163
|
+
{
|
|
164
|
+
operator: FilterOperator.EQ,
|
|
165
|
+
selectedValues: startupParameters[field.name] as TokenSelectedValuesDefinition["selectedValues"]
|
|
166
|
+
}
|
|
167
|
+
];
|
|
168
|
+
} else if (field.isParameter && startupParameters.hasOwnProperty(field.name.substring(2))) {
|
|
169
|
+
defaultValue = [
|
|
170
|
+
{
|
|
171
|
+
operator: FilterOperator.EQ,
|
|
172
|
+
selectedValues: startupParameters[field.name.substring(2)] as TokenSelectedValuesDefinition["selectedValues"]
|
|
173
|
+
}
|
|
174
|
+
];
|
|
175
|
+
}
|
|
176
|
+
return defaultValue;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
private getEditStateFilterMetadata(metaModel: ODataMetaModel): FieldMetadata {
|
|
180
|
+
// Assemble the code list for the editing status filter values:
|
|
181
|
+
const props = new JSONModel({
|
|
182
|
+
isDraftCollaborative: ModelHelper.isCollaborationDraftSupported(metaModel)
|
|
183
|
+
}).createBindingContext("/");
|
|
184
|
+
|
|
185
|
+
const editingStatusCodeList = DraftEditState.getEditStatesContext(props)
|
|
186
|
+
.getObject("/")
|
|
187
|
+
.map((state: { id: string; display: string }) => ({ value: state.id, description: state.display }));
|
|
188
|
+
|
|
189
|
+
return {
|
|
190
|
+
name: "$editState",
|
|
191
|
+
label: this.getTranslatedText("FILTERBAR_EDITING_STATUS"),
|
|
192
|
+
dataType: "Edm.String",
|
|
193
|
+
filterable: true,
|
|
194
|
+
codeList: editingStatusCodeList,
|
|
195
|
+
type: "MenuWithSingleSelect"
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
private getTokenType(prop: Property): TokenType {
|
|
200
|
+
if (hasValueHelpWithFixedValues(prop)) {
|
|
201
|
+
return "MenuWithCheckBox";
|
|
202
|
+
}
|
|
203
|
+
switch (prop.type) {
|
|
204
|
+
case "Edm.Date":
|
|
205
|
+
return "Calendar";
|
|
206
|
+
case "Edm.TimeOfDay":
|
|
207
|
+
return "Time";
|
|
208
|
+
default:
|
|
209
|
+
return "ValueHelp";
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
152
213
|
prepareFilterBarMetadata(): FieldMetadata[] {
|
|
153
214
|
const owner = this._getOwner()!;
|
|
154
215
|
const definitionForPage = owner.preprocessorContext?.getDefinitionForPage();
|
|
155
|
-
let filterBarDef;
|
|
156
|
-
if (definitionForPage) {
|
|
157
|
-
filterBarDef = definitionForPage.getFilterBarDefinition({});
|
|
158
216
|
|
|
159
|
-
|
|
217
|
+
if (!definitionForPage) {
|
|
218
|
+
return [];
|
|
219
|
+
}
|
|
160
220
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
return "MenuWithCheckBox";
|
|
164
|
-
}
|
|
165
|
-
switch (edmType) {
|
|
166
|
-
case "Edm.Date":
|
|
167
|
-
return "Calendar";
|
|
168
|
-
case "Edm.TimeOfDay":
|
|
169
|
-
return "Time";
|
|
170
|
-
default:
|
|
171
|
-
return "ValueHelp";
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
const startupParameters = owner.getAppComponent().getComponentData()?.startupParameters ?? {};
|
|
221
|
+
const filterBarDef = definitionForPage.getFilterBarDefinition({});
|
|
222
|
+
const metaModel = owner.preprocessorContext?.models.metaModel as ODataMetaModel;
|
|
175
223
|
|
|
176
|
-
|
|
177
|
-
const nonHiddenFilterFields = filterFields.filter((field: FilterField) => {
|
|
178
|
-
return !field.getTarget()?.annotations?.UI?.HiddenFilter?.valueOf();
|
|
179
|
-
});
|
|
180
|
-
const result = nonHiddenFilterFields.map((field: FilterField): FieldMetadata => {
|
|
181
|
-
const propertyObject = field.getTarget();
|
|
182
|
-
let codeList: MayBeLazy<CodeList> | undefined;
|
|
183
|
-
const hasCodeList = hasValueHelpWithFixedValues(propertyObject);
|
|
184
|
-
if (hasCodeList) {
|
|
185
|
-
codeList = this._fetchedCodeList[field.name];
|
|
186
|
-
if (!codeList) {
|
|
187
|
-
codeList = async (): Promise<CodeList> => this.getCodeListForProperty(field.name, field.annotationPath!);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
224
|
+
const startupParameters = owner.getAppComponent().getComponentData()?.startupParameters ?? {};
|
|
190
225
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
const unit = unitProperty ? filterFields.find((f) => f.getTarget() === unitProperty)?.name : undefined;
|
|
196
|
-
let defaultValue: TokenSelectedValuesDefinition[] | undefined;
|
|
197
|
-
if (startupParameters.hasOwnProperty(field.name)) {
|
|
198
|
-
defaultValue = [
|
|
199
|
-
{
|
|
200
|
-
operator: FilterOperator.EQ,
|
|
201
|
-
selectedValues: startupParameters[field.name] as TokenSelectedValuesDefinition["selectedValues"]
|
|
202
|
-
}
|
|
203
|
-
];
|
|
204
|
-
} else if (field.isParameter && startupParameters.hasOwnProperty(field.name.substring(2))) {
|
|
205
|
-
defaultValue = [
|
|
206
|
-
{
|
|
207
|
-
operator: FilterOperator.EQ,
|
|
208
|
-
selectedValues: startupParameters[field.name.substring(2)] as TokenSelectedValuesDefinition["selectedValues"]
|
|
209
|
-
}
|
|
210
|
-
];
|
|
211
|
-
}
|
|
212
|
-
return {
|
|
213
|
-
name: field.annotationPath!,
|
|
214
|
-
filterFieldName: field.name,
|
|
215
|
-
label: field.label,
|
|
216
|
-
dataType: propertyObject.type,
|
|
217
|
-
required: field.required ?? false,
|
|
218
|
-
defaultValue: defaultValue,
|
|
219
|
-
filterable: true,
|
|
220
|
-
codeList: codeList,
|
|
221
|
-
type: getType(propertyObject.type, codeList) as Exclude<TokenType, "ValueHelp">,
|
|
222
|
-
unit: unit
|
|
223
|
-
};
|
|
224
|
-
});
|
|
226
|
+
const filterFields = filterBarDef.getFilterFields();
|
|
227
|
+
const nonHiddenFilterFields = filterFields.filter((field: FilterField) => {
|
|
228
|
+
return !field.getTarget()?.annotations?.UI?.HiddenFilter?.valueOf();
|
|
229
|
+
});
|
|
225
230
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
isDraftCollaborative: ModelHelper.isCollaborationDraftSupported(metaModel)
|
|
232
|
-
}).createBindingContext("/");
|
|
233
|
-
|
|
234
|
-
const editingStatusCodeList = DraftEditState.getEditStatesContext(props)
|
|
235
|
-
.getObject("/")
|
|
236
|
-
.map((state: { id: string; display: string }) => ({ value: state.id, description: state.display }));
|
|
237
|
-
|
|
238
|
-
result.push({
|
|
239
|
-
name: "$editState",
|
|
240
|
-
filterFieldName: "$editState",
|
|
241
|
-
label: this.getTranslatedText("FILTERBAR_EDITING_STATUS"),
|
|
242
|
-
dataType: "Edm.String",
|
|
243
|
-
required: false,
|
|
244
|
-
filterable: true,
|
|
245
|
-
codeList: editingStatusCodeList,
|
|
246
|
-
type: "MenuWithCheckBox"
|
|
247
|
-
});
|
|
231
|
+
const result = nonHiddenFilterFields.map((field: FilterField): FieldMetadata => {
|
|
232
|
+
const propertyObject = field.getTarget();
|
|
233
|
+
let codeList: CodeList | (() => Promise<CodeList>) | undefined;
|
|
234
|
+
if (hasValueHelpWithFixedValues(propertyObject)) {
|
|
235
|
+
codeList = async (): Promise<CodeList> => this.getCodeListForProperty(field.annotationPath!);
|
|
248
236
|
}
|
|
249
|
-
|
|
237
|
+
|
|
238
|
+
return {
|
|
239
|
+
name: field.annotationPath!,
|
|
240
|
+
label: field.label,
|
|
241
|
+
dataType: propertyObject.type,
|
|
242
|
+
required: field.required ?? false,
|
|
243
|
+
defaultValue: this.getDefaultValueForFilterField(field, startupParameters),
|
|
244
|
+
filterable: true,
|
|
245
|
+
codeList: codeList,
|
|
246
|
+
type: this.getTokenType(propertyObject) as Exclude<TokenType, "ValueHelp">,
|
|
247
|
+
unit: this.getUnitForFilterField(field, filterFields),
|
|
248
|
+
maxLength: propertyObject.maxLength
|
|
249
|
+
};
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
// [Editing Status]
|
|
253
|
+
if (ModelHelper.isMetaPathDraftSupported(definitionForPage.getMetaPath() as unknown as MetaPath<unknown>)) {
|
|
254
|
+
result.push(this.getEditStateFilterMetadata(metaModel));
|
|
250
255
|
}
|
|
251
|
-
|
|
256
|
+
|
|
257
|
+
return result;
|
|
252
258
|
}
|
|
253
259
|
|
|
254
|
-
async getCodeListForProperty(
|
|
260
|
+
async getCodeListForProperty(propertyPath: string): Promise<CodeList> {
|
|
255
261
|
const defaultValueList = await this.getValueList(propertyPath);
|
|
256
262
|
|
|
257
263
|
if (!defaultValueList) {
|
|
@@ -266,8 +272,7 @@ export default class EasyFilterBar extends BuildingBlock implements IViewStateCo
|
|
|
266
272
|
const data = await listBinding.requestContexts();
|
|
267
273
|
|
|
268
274
|
const filterGroupValues = data.map(mapValueListToCodeList(defaultValueList));
|
|
269
|
-
this.
|
|
270
|
-
const codeListProperty = this.filterBarMetadata.find((field) => field.name === key);
|
|
275
|
+
const codeListProperty = this.filterBarMetadata.find((field) => field.name === propertyPath);
|
|
271
276
|
if (codeListProperty) {
|
|
272
277
|
codeListProperty.codeList = filterGroupValues;
|
|
273
278
|
}
|
|
@@ -278,23 +283,37 @@ export default class EasyFilterBar extends BuildingBlock implements IViewStateCo
|
|
|
278
283
|
fieldName: string,
|
|
279
284
|
values: TokenSelectedValuesDefinition[]
|
|
280
285
|
): Promise<ValueHelpSelectedValuesDefinition[]> {
|
|
286
|
+
let filteredValues = values;
|
|
281
287
|
const field = this.filterBarMetadata.find(({ name }) => name === fieldName);
|
|
282
288
|
if (field) {
|
|
289
|
+
const maxLength = field.maxLength;
|
|
290
|
+
|
|
291
|
+
if (maxLength !== undefined) {
|
|
292
|
+
filteredValues = values
|
|
293
|
+
.map((token) => {
|
|
294
|
+
const filtered = token.selectedValues.filter((val) => typeof val !== "string" || val.length <= maxLength);
|
|
295
|
+
return filtered.length > 0 ? { ...token, selectedValues: filtered } : undefined;
|
|
296
|
+
})
|
|
297
|
+
.filter(Boolean) as TokenSelectedValuesDefinition[];
|
|
298
|
+
if (filteredValues.length === 0) {
|
|
299
|
+
return [];
|
|
300
|
+
}
|
|
301
|
+
}
|
|
283
302
|
const valueList = await this.getValueList(field.name);
|
|
284
303
|
|
|
285
304
|
if (valueList && ValueListHelper.isValueListSearchable(field.name, valueList)) {
|
|
286
|
-
const resolvedTokenValues = await Promise.all(
|
|
305
|
+
const resolvedTokenValues = await Promise.all(filteredValues.map(async (value) => resolveTokenValue(valueList, value)));
|
|
287
306
|
return resolvedTokenValues.flat();
|
|
288
307
|
}
|
|
289
308
|
}
|
|
290
309
|
|
|
291
310
|
// return original values converted to the expected format
|
|
292
|
-
return unresolvedResult(
|
|
311
|
+
return unresolvedResult(filteredValues);
|
|
293
312
|
}
|
|
294
313
|
|
|
295
|
-
async getValueList(
|
|
314
|
+
async getValueList(propertyPath: string): Promise<ValueListInfo | undefined> {
|
|
296
315
|
const metaModel = this.getMetaModel()!;
|
|
297
|
-
const valueLists = await ValueListHelper.getValueListInfo(undefined,
|
|
316
|
+
const valueLists = await ValueListHelper.getValueListInfo(undefined, propertyPath, undefined, metaModel);
|
|
298
317
|
return valueLists[0];
|
|
299
318
|
}
|
|
300
319
|
|
|
@@ -81,7 +81,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUt
|
|
|
81
81
|
press: async () => {
|
|
82
82
|
try {
|
|
83
83
|
await environmentService.prepareFeature("SmartSummarize");
|
|
84
|
-
const library = await __ui5_require_async("ux/eng/fioriai/reuse/
|
|
84
|
+
const library = await __ui5_require_async("ux/eng/fioriai/reuse/summary/SmartSummary");
|
|
85
85
|
await library.summarize({
|
|
86
86
|
view: CommonUtils.getTargetView(this)
|
|
87
87
|
});
|
|
@@ -114,4 +114,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUt
|
|
|
114
114
|
_exports = SummarizationButton;
|
|
115
115
|
return _exports;
|
|
116
116
|
}, false);
|
|
117
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdW1tYXJpemF0aW9uQnV0dG9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJfZGVjMyIsInByb3BlcnR5IiwidHlwZSIsInJlcXVpcmVkIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiZmVzclN0ZXBOYW1lIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsImdldE92ZXJmbG93VG9vbGJhckNvbmZpZyIsImNhbk92ZXJmbG93IiwiZW52aXJvbm1lbnRTZXJ2aWNlIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMiLCJidXR0b24iLCJlbnZpcm9ubWVudENhcGFiaWxpdGllcyIsIlNtYXJ0U3VtbWFyaXplIiwiX2pzeCIsIkJ1dHRvbiIsImlkIiwiY3JlYXRlSWQiLCJ0ZXh0IiwiaWNvbiIsIkJ1dHRvblR5cGUiLCJHaG9zdCIsInByZXNzIiwicHJlcGFyZUZlYXR1cmUiLCJsaWJyYXJ5IiwiX191aTVfcmVxdWlyZV9hc3luYyIsInN1bW1hcml6ZSIsInZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJlcnJvciIsIkxvZyIsInNldExheW91dERhdGEiLCJPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIiwicHJpb3JpdHkiLCJPdmVyZmxvd1Rvb2xiYXJQcmlvcml0eSIsIkhpZ2giLCJGRVNSSGVscGVyIiwic2V0U2VtYW50aWNTdGVwbmFtZSIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlN1bW1hcml6YXRpb25CdXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YSBmcm9tIFwic2FwL20vT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YVwiO1xuaW1wb3J0IHsgQnV0dG9uVHlwZSwgT3ZlcmZsb3dUb29sYmFyUHJpb3JpdHkgfSBmcm9tIFwic2FwL20vbGlicmFyeVwiO1xuaW1wb3J0IEZFU1JIZWxwZXIgZnJvbSBcInNhcC91aS9wZXJmb3JtYW5jZS90cmFjZS9GRVNSSGVscGVyXCI7XG5cbi8qKlxuICogU3VtbWFyaXphdGlvbiBidXR0b24gYnVpbGRpbmcgYmxvY2suXG4gKlxuICogSWYgdGhlIHN1bW1hcml6YXRpb24gZmVhdHVyZSBpcyBhdmFpbGFibGUsIHRoaXMgYnVpbGRpbmcgYmxvY2sgd2lsbCByZW5kZXIgYSBidXR0b24gdGhhdCB0cmlnZ2VycyB0aGUgc3VtbWFyaXphdGlvbiBmZWF0dXJlLlxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmFpLlN1bW1hcml6YXRpb25CdXR0b25cIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1bW1hcml6YXRpb25CdXR0b24gZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrIHtcblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC5tLklPdmVyZmxvd1Rvb2xiYXJDb250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX21fSU92ZXJmbG93VG9vbGJhckNvbnRlbnQgPSB0cnVlO1xuXHQvKipcblx0ICogVGhlIElEIG9mIHRoZSBidXR0b24uXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRwdWJsaWMgaWQhOiBzdHJpbmc7XG5cblx0ZmVzclN0ZXBOYW1lID0gXCJmZTQ6c3VtOnN1bW1hcml6ZVwiO1xuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHRnZXRPdmVyZmxvd1Rvb2xiYXJDb25maWcoKTogb2JqZWN0IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y2FuT3ZlcmZsb3c6IHRydWVcblx0XHR9O1xuXHR9XG5cblx0Y3JlYXRlQ29udGVudCgpOiBCdXR0b24gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGVudmlyb25tZW50U2VydmljZSA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCk/LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCk7XG5cdFx0bGV0IGJ1dHRvbjtcblx0XHRpZiAoZW52aXJvbm1lbnRTZXJ2aWNlPy5lbnZpcm9ubWVudENhcGFiaWxpdGllcy5TbWFydFN1bW1hcml6ZSA9PT0gdHJ1ZSkge1xuXHRcdFx0YnV0dG9uID0gKFxuXHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJidXR0b25cIil9XG5cdFx0XHRcdFx0ZHQ6ZGVzaWdudGltZT1cIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0XHRcdHRleHQ9XCJ7c2FwLmZlLmkxOG4+U1VNTUFSSVpFfVwiXG5cdFx0XHRcdFx0aWNvbj1cInNhcC1pY29uOi8vYWlcIlxuXHRcdFx0XHRcdHR5cGU9e0J1dHRvblR5cGUuR2hvc3R9XG5cdFx0XHRcdFx0cHJlc3M9e2FzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+
|
|
117
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdW1tYXJpemF0aW9uQnV0dG9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJfZGVjMyIsInByb3BlcnR5IiwidHlwZSIsInJlcXVpcmVkIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiZmVzclN0ZXBOYW1lIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsImdldE92ZXJmbG93VG9vbGJhckNvbmZpZyIsImNhbk92ZXJmbG93IiwiZW52aXJvbm1lbnRTZXJ2aWNlIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMiLCJidXR0b24iLCJlbnZpcm9ubWVudENhcGFiaWxpdGllcyIsIlNtYXJ0U3VtbWFyaXplIiwiX2pzeCIsIkJ1dHRvbiIsImlkIiwiY3JlYXRlSWQiLCJ0ZXh0IiwiaWNvbiIsIkJ1dHRvblR5cGUiLCJHaG9zdCIsInByZXNzIiwicHJlcGFyZUZlYXR1cmUiLCJsaWJyYXJ5IiwiX191aTVfcmVxdWlyZV9hc3luYyIsInN1bW1hcml6ZSIsInZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJlcnJvciIsIkxvZyIsInNldExheW91dERhdGEiLCJPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIiwicHJpb3JpdHkiLCJPdmVyZmxvd1Rvb2xiYXJQcmlvcml0eSIsIkhpZ2giLCJGRVNSSGVscGVyIiwic2V0U2VtYW50aWNTdGVwbmFtZSIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlN1bW1hcml6YXRpb25CdXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YSBmcm9tIFwic2FwL20vT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YVwiO1xuaW1wb3J0IHsgQnV0dG9uVHlwZSwgT3ZlcmZsb3dUb29sYmFyUHJpb3JpdHkgfSBmcm9tIFwic2FwL20vbGlicmFyeVwiO1xuaW1wb3J0IEZFU1JIZWxwZXIgZnJvbSBcInNhcC91aS9wZXJmb3JtYW5jZS90cmFjZS9GRVNSSGVscGVyXCI7XG5cbi8qKlxuICogU3VtbWFyaXphdGlvbiBidXR0b24gYnVpbGRpbmcgYmxvY2suXG4gKlxuICogSWYgdGhlIHN1bW1hcml6YXRpb24gZmVhdHVyZSBpcyBhdmFpbGFibGUsIHRoaXMgYnVpbGRpbmcgYmxvY2sgd2lsbCByZW5kZXIgYSBidXR0b24gdGhhdCB0cmlnZ2VycyB0aGUgc3VtbWFyaXphdGlvbiBmZWF0dXJlLlxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmFpLlN1bW1hcml6YXRpb25CdXR0b25cIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1bW1hcml6YXRpb25CdXR0b24gZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrIHtcblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC5tLklPdmVyZmxvd1Rvb2xiYXJDb250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX21fSU92ZXJmbG93VG9vbGJhckNvbnRlbnQgPSB0cnVlO1xuXHQvKipcblx0ICogVGhlIElEIG9mIHRoZSBidXR0b24uXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRwdWJsaWMgaWQhOiBzdHJpbmc7XG5cblx0ZmVzclN0ZXBOYW1lID0gXCJmZTQ6c3VtOnN1bW1hcml6ZVwiO1xuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHRnZXRPdmVyZmxvd1Rvb2xiYXJDb25maWcoKTogb2JqZWN0IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y2FuT3ZlcmZsb3c6IHRydWVcblx0XHR9O1xuXHR9XG5cblx0Y3JlYXRlQ29udGVudCgpOiBCdXR0b24gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGVudmlyb25tZW50U2VydmljZSA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCk/LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCk7XG5cdFx0bGV0IGJ1dHRvbjtcblx0XHRpZiAoZW52aXJvbm1lbnRTZXJ2aWNlPy5lbnZpcm9ubWVudENhcGFiaWxpdGllcy5TbWFydFN1bW1hcml6ZSA9PT0gdHJ1ZSkge1xuXHRcdFx0YnV0dG9uID0gKFxuXHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJidXR0b25cIil9XG5cdFx0XHRcdFx0ZHQ6ZGVzaWdudGltZT1cIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0XHRcdHRleHQ9XCJ7c2FwLmZlLmkxOG4+U1VNTUFSSVpFfVwiXG5cdFx0XHRcdFx0aWNvbj1cInNhcC1pY29uOi8vYWlcIlxuXHRcdFx0XHRcdHR5cGU9e0J1dHRvblR5cGUuR2hvc3R9XG5cdFx0XHRcdFx0cHJlc3M9e2FzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdGF3YWl0IGVudmlyb25tZW50U2VydmljZS5wcmVwYXJlRmVhdHVyZShcIlNtYXJ0U3VtbWFyaXplXCIpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBsaWJyYXJ5ID0gYXdhaXQgaW1wb3J0KFwidXgvZW5nL2Zpb3JpYWkvcmV1c2Uvc3VtbWFyeS9TbWFydFN1bW1hcnlcIik7XG5cdFx0XHRcdFx0XHRcdGF3YWl0IGxpYnJhcnkuc3VtbWFyaXplKHsgdmlldzogQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0Vmlldyh0aGlzKSB9KTtcblx0XHRcdFx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdFx0XHRcdExvZy5lcnJvcihcIlN1bW1hcml6YXRpb24gZmFpbGVkXCIsIGVycm9yIGFzIEVycm9yKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ+PC9CdXR0b24+XG5cdFx0XHQpO1xuXHRcdFx0dGhpcy5zZXRMYXlvdXREYXRhKDxPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIHByaW9yaXR5PXtPdmVyZmxvd1Rvb2xiYXJQcmlvcml0eS5IaWdofSAvPik7XG5cdFx0XHRGRVNSSGVscGVyLnNldFNlbWFudGljU3RlcG5hbWUoYnV0dG9uLCBcInByZXNzXCIsIHRoaXMuZmVzclN0ZXBOYW1lKTtcblx0XHR9XG5cdFx0cmV0dXJuIGJ1dHRvbjtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkEsSUFNcUJBLG1CQUFtQixJQUFBQyxJQUFBLEdBRHZDQyxjQUFjLENBQUMsc0NBQXNDLENBQUMsRUFBQUMsS0FB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
|
|
@@ -48,7 +48,7 @@ export default class SummarizationButton extends BuildingBlock {
|
|
|
48
48
|
press={async (): Promise<void> => {
|
|
49
49
|
try {
|
|
50
50
|
await environmentService.prepareFeature("SmartSummarize");
|
|
51
|
-
const library = await import("ux/eng/fioriai/reuse/
|
|
51
|
+
const library = await import("ux/eng/fioriai/reuse/summary/SmartSummary");
|
|
52
52
|
await library.summarize({ view: CommonUtils.getTargetView(this) });
|
|
53
53
|
} catch (error) {
|
|
54
54
|
Log.error("Summarization failed", error as Error);
|
|
@@ -64,7 +64,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/controls/Common/DataVisua
|
|
|
64
64
|
* meta model
|
|
65
65
|
* @author SAP SE
|
|
66
66
|
* @private
|
|
67
|
-
* @experimental
|
|
68
67
|
* @since 1.62.0
|
|
69
68
|
* @alias sap.fe.macros.ChartHelper
|
|
70
69
|
*/
|
|
@@ -285,4 +284,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/controls/Common/DataVisua
|
|
|
285
284
|
ChartHelper.getSortConditions.requiresIContext = true;
|
|
286
285
|
return ChartHelper;
|
|
287
286
|
}, false);
|
|
288
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRFbnRpdHlTZXRQYXRoIiwiYW5ub3RhdGlvbkNvbnRleHQiLCJnZXRQYXRoIiwicmVwbGFjZSIsIkNoYXJ0VHlwZUVudW0iLCJEaW1lbnNpb25Sb2xlVHlwZUVudW0iLCJDaGFydEhlbHBlciIsImZvcm1hdEpTT05Ub1N0cmluZyIsImNyaXQiLCJ1bmRlZmluZWQiLCJjcml0aWNhbGl0eSIsIkpTT04iLCJzdHJpbmdpZnkiLCJSZWdFeHAiLCJmb3JtYXRDaGFydFR5cGUiLCJjaGFydFR5cGUiLCIkRW51bU1lbWJlciIsImZvcm1hdERpbWVuc2lvbnMiLCJhbm5vdGF0aW9uIiwiZ2V0T2JqZWN0IiwibWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJlbnRpdHlTZXRQYXRoIiwiZGltZW5zaW9ucyIsImlzTmF2aWdhdGlvblRleHQiLCJEaW1lbnNpb25BdHRyaWJ1dGVzIiwiZGltZW5zaW9uIiwiRGltZW5zaW9ucyIsImtleSIsIiRQcm9wZXJ0eVBhdGgiLCJ0ZXh0IiwiaW5jbHVkZXMiLCJMb2ciLCJlcnJvciIsIiRQYXRoIiwiaW5kZXhPZiIsImNoYXJ0RGltZW5zaW9uIiwidGV4dFBhdGgiLCJsYWJlbCIsInJvbGUiLCJhdHRyaWJ1dGUiLCJEaW1lbnNpb24iLCJSb2xlIiwiZmV0Y2hDcml0aWNhbGl0eSIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwicHVzaCIsImRpbWVuc2lvbk1vZGVsIiwiSlNPTk1vZGVsIiwiJCR2YWx1ZUFzUHJvbWlzZSIsIm9NZXRhTW9kZWwiLCJvQ3R4IiwiVUkiLCJhVmFsdWVDcml0aWNhbGl0eSIsIm9Dcml0aWNhbGl0eSIsIm9WYWx1ZUNyaXRpY2FsaXR5IiwiVmVyeVBvc2l0aXZlIiwiUG9zaXRpdmUiLCJDcml0aWNhbCIsIlZlcnlOZWdhdGl2ZSIsIk5lZ2F0aXZlIiwiTmV1dHJhbCIsImkiLCJsZW5ndGgiLCJDcml0aWNhbGl0eSIsImVuZHNXaXRoIiwiVmFsdWUiLCJzS2V5IiwiZm9ybWF0TWVhc3VyZXMiLCJnZXREYXRhIiwiZ2V0VWlDaGFydCIsInByZXNlbnRhdGlvbkNvbnRleHQiLCJnZXRVaUNvbnRyb2wiLCJnZXRPcGVyYXRpb25BdmFpbGFibGVNYXAiLCJjaGFydCIsImNvbnRleHRDb250ZXh0IiwiY2hhcnRDb2xsZWN0aW9uIiwiQWN0aW9ucyIsIkFjdGlvbkhlbHBlciIsImdldFNvcnRDb25kaXRpb25zIiwib0NvbnRleHQiLCJvUHJlc2VudGF0aW9uVmFyaWFudCIsInNQcmVzZW50YXRpb25WYXJpYW50UGF0aCIsIm9BcHBseVN1cHBvcnRlZCIsIkNvbW1vbkhlbHBlciIsIl9pc1ByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwiU29ydE9yZGVyIiwiYVNvcnRDb25kaXRpb25zIiwic29ydGVycyIsInNFbnRpdHlQYXRoIiwic3BsaXQiLCJmb3JFYWNoIiwib0NvbmRpdGlvbiIsImFyZ3VtZW50cyIsIm9Tb3J0UHJvcGVydHkiLCJEeW5hbWljUHJvcGVydHkiLCIkQW5ub3RhdGlvblBhdGgiLCJOYW1lIiwiUHJvcGVydHkiLCJhR3JvdXBhYmxlUHJvcGVydGllcyIsIkdyb3VwYWJsZVByb3BlcnRpZXMiLCJvU29ydGVyIiwibmFtZSIsImRlc2NlbmRpbmciLCJEZXNjZW5kaW5nIiwiRXJyb3IiLCJfZ2V0TW9kZWwiLCJvQ29sbGVjdGlvbiIsIm9JbnRlcmZhY2UiLCJjb250ZXh0IiwiaXNEYXRhRmllbGRGb3JBY3Rpb25CdXR0b25FbmFibGVkIiwiYklzQm91bmQiLCJzQWN0aW9uIiwic09wZXJhdGlvbkF2YWlsYWJsZU1hcCIsInNFbmFibGVTZWxlY3RPbiIsIm9Nb2RlbCIsInNOYXZQYXRoIiwic1BhcnRuZXIiLCIkUGFydG5lciIsIm9PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJwYXJzZSIsImFQYXRoIiwic051bWJlck9mU2VsZWN0ZWRDb250ZXh0cyIsImdldE51bWJlck9mQ29udGV4dHNFeHByZXNzaW9uIiwic1BhdGgiLCJnZXRIaWRkZW5QYXRoRXhwcmVzc2lvbkZvclRhYmxlQWN0aW9uc0FuZElCTiIsInNIaWRkZW5QYXRoIiwib0RldGFpbHMiLCJzUHJvcGVydHlQYXRoIiwic0VudGl0eVNldFBhdGgiLCJPRGF0YU1vZGVsQW5ub3RhdGlvbkhlbHBlciIsImdldE5hdmlnYXRpb25QYXRoIiwiYVNwbGl0SGlkZGVuUGF0aCIsInNOYXZpZ2F0aW9uUGF0aCIsInNsaWNlIiwiam9pbiIsImdldFByZXNzRXZlbnRGb3JEYXRhRmllbGRGb3JBY3Rpb25CdXR0b24iLCJpZCIsImFjdGlvbiIsIm9wZXJhdGlvbkF2YWlsYWJsZU1hcCIsImdldFByZXNzRXZlbnREYXRhRmllbGRGb3JBY3Rpb25CdXR0b24iLCJjb250ZXh0cyIsImdldEFjdGlvblR5cGUiLCJ2YWx1ZU9mIiwiZ2V0Q29sbGVjdGlvbk5hbWUiLCJjb2xsZWN0aW9uIiwiY29sbGVjdGlvblNwbGl0IiwicmVxdWlyZXNJQ29udGV4dCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ2hhcnRIZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFZG0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL0VkbVwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IFNvcnRPcmRlclR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHsgQ29tbW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHtcblx0Q2hhcnQsXG5cdENoYXJ0VHlwZSxcblx0Q3JpdGljYWxpdHlUeXBlLFxuXHREYXRhRmllbGRGb3JBY3Rpb24sXG5cdE9wZXJhdGlvbkdyb3VwaW5nVHlwZSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdFZhbHVlQ3JpdGljYWxpdHlUeXBlXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zLCBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgRGltZW5zaW9uUm9sZVR5cGUgZnJvbSBcInNhcC9jaGFydC9kYXRhL0RpbWVuc2lvblJvbGVUeXBlXCI7XG5pbXBvcnQgdHlwZSBBdHRyaWJ1dGVNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9BdHRyaWJ1dGVNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBDaGFydEFwcGx5U3VwcG9ydGVkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0NoYXJ0XCI7XG5pbXBvcnQgeyBnZXRVaUNvbnRyb2wgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vRGF0YVZpc3VhbGl6YXRpb25cIjtcbmltcG9ydCB0eXBlIHsgQ29tcHV0ZWRBbm5vdGF0aW9uSW50ZXJmYWNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBNZWFzdXJlVHlwZSB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2NoYXJ0L01kY0NoYXJ0VGVtcGxhdGVcIjtcbmltcG9ydCBBY3Rpb25IZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvaGVscGVycy9BY3Rpb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBPRGF0YU1vZGVsQW5ub3RhdGlvbkhlbHBlciBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0Fubm90YXRpb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCB0eXBlIHsgRXhwYW5kUGF0aFR5cGUsIE1ldGFNb2RlbEVudW0sIE1ldGFNb2RlbFR5cGUgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG5cbmZ1bmN0aW9uIGdldEVudGl0eVNldFBhdGgoYW5ub3RhdGlvbkNvbnRleHQ6IENvbnRleHQpOiBzdHJpbmcge1xuXHRyZXR1cm4gYW5ub3RhdGlvbkNvbnRleHQuZ2V0UGF0aCgpLnJlcGxhY2UoL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS4oQ2hhcnR8UHJlc2VudGF0aW9uVmFyaWFudCkuKi8sIFwiXCIpO1xufVxuXG5jb25zdCBDaGFydFR5cGVFbnVtID0ge1xuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5cIjogXCJjb2x1bW5cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29sdW1uU3RhY2tlZFwiOiBcInN0YWNrZWRfY29sdW1uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0NvbHVtbkR1YWxcIjogXCJkdWFsX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5TdGFja2VkRHVhbFwiOiBcImR1YWxfc3RhY2tlZF9jb2x1bW5cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29sdW1uU3RhY2tlZDEwMFwiOiBcIjEwMF9zdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5TdGFja2VkRHVhbDEwMFwiOiBcIjEwMF9kdWFsX3N0YWNrZWRfY29sdW1uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclwiOiBcImJhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9CYXJTdGFja2VkXCI6IFwic3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQmFyRHVhbFwiOiBcImR1YWxfYmFyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclN0YWNrZWREdWFsXCI6IFwiZHVhbF9zdGFja2VkX2JhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9CYXJTdGFja2VkMTAwXCI6IFwiMTAwX3N0YWNrZWRfYmFyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclN0YWNrZWREdWFsMTAwXCI6IFwiMTAwX2R1YWxfc3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQXJlYVwiOiBcImFyZWFcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQXJlYVN0YWNrZWRcIjogXCJzdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9BcmVhU3RhY2tlZDEwMFwiOiBcIjEwMF9zdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVwiOiBcImJhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVN0YWNrZWRcIjogXCJzdGFja2VkX2JhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVN0YWNrZWQxMDBcIjogXCIxMDBfc3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvTGluZVwiOiBcImxpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvTGluZUR1YWxcIjogXCJkdWFsX2xpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29tYmluYXRpb25cIjogXCJjb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db21iaW5hdGlvblN0YWNrZWRcIjogXCJzdGFja2VkX2NvbWJpbmF0aW9uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0NvbWJpbmF0aW9uRHVhbFwiOiBcImR1YWxfY29tYmluYXRpb25cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29tYmluYXRpb25TdGFja2VkRHVhbFwiOiBcImR1YWxfc3RhY2tlZF9jb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQ29tYmluYXRpb25TdGFja2VkXCI6IFwiaG9yaXpvbnRhbF9zdGFja2VkX2NvbWJpbmF0aW9uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL1BpZVwiOiBcInBpZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Eb251dFwiOiBcImRvbnV0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL1NjYXR0ZXJcIjogXCJzY2F0dGVyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0J1YmJsZVwiOiBcImJ1YmJsZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9SYWRhclwiOiBcImxpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvSGVhdE1hcFwiOiBcImhlYXRtYXBcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvVHJlZU1hcFwiOiBcInRyZWVtYXBcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvV2F0ZXJmYWxsXCI6IFwid2F0ZXJmYWxsXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0J1bGxldFwiOiBcImJ1bGxldFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9WZXJ0aWNhbEJ1bGxldFwiOiBcInZlcnRpY2FsX2J1bGxldFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsV2F0ZXJmYWxsXCI6IFwiaG9yaXpvbnRhbF93YXRlcmZhbGxcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvSG9yaXpvbnRhbENvbWJpbmF0aW9uRHVhbFwiOiBcImR1YWxfaG9yaXpvbnRhbF9jb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQ29tYmluYXRpb25TdGFja2VkRHVhbFwiOiBcImR1YWxfaG9yaXpvbnRhbF9zdGFja2VkX2NvbWJpbmF0aW9uXCJcbn07XG5jb25zdCBEaW1lbnNpb25Sb2xlVHlwZUVudW0gPSB7XG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9DYXRlZ29yeVwiOiBcImNhdGVnb3J5XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9TZXJpZXNcIjogXCJzZXJpZXNcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydERpbWVuc2lvblJvbGVUeXBlL0NhdGVnb3J5MlwiOiBcImNhdGVnb3J5MlwiXG59O1xuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIHNhcC5mZS5tYWNyb3MgQ2hhcnQgcGhhbnRvbSBjb250cm9sIGZvciBwcmVwcm9jZXNzaW5nLlxuICogPGgzPjxiPk5vdGU6PC9iPjwvaDM+XG4gKiBUaGUgY2xhc3MgaXMgZXhwZXJpbWVudGFsIGFuZCB0aGUgQVBJL2JlaGF2aW91ciBpcyBub3QgZmluYWxpc2VkXG4gKiBhbmQgaGVuY2UgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQgZm9yIHByb2R1Y3RpdmUgdXNhZ2UuXG4gKiBFc3BlY2lhbGx5IHRoaXMgY2xhc3MgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIHRoZSBGRSBzY2VuYXJpbyxcbiAqIGhlcmUgd2Ugc2hhbGwgdXNlIHNhcC5mZS5tYWNyb3MuQ2hhcnRIZWxwZXIgdGhhdCBpcyBlc3BlY2lhbGx5IHRhaWxvcmVkIGZvciBWNFxuICogbWV0YSBtb2RlbFxuICogQGF1dGhvciBTQVAgU0VcbiAqIEBwcml2YXRlXG4gKiBAZXhwZXJpbWVudGFsXG4gKiBAc2luY2UgMS42Mi4wXG4gKiBAYWxpYXMgc2FwLmZlLm1hY3Jvcy5DaGFydEhlbHBlclxuICovXG5jb25zdCBDaGFydEhlbHBlciA9IHtcblx0Zm9ybWF0SlNPTlRvU3RyaW5nKGNyaXQ6IG9iamVjdCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCFjcml0KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdGxldCBjcml0aWNhbGl0eSA9IEpTT04uc3RyaW5naWZ5KGNyaXQpO1xuXHRcdGNyaXRpY2FsaXR5ID0gY3JpdGljYWxpdHkucmVwbGFjZShuZXcgUmVnRXhwKFwie1wiLCBcImdcIiksIFwiXFxcXHtcIik7XG5cdFx0Y3JpdGljYWxpdHkgPSBjcml0aWNhbGl0eS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJ9XCIsIFwiZ1wiKSwgXCJcXFxcfVwiKTtcblx0XHRyZXR1cm4gY3JpdGljYWxpdHk7XG5cdH0sXG5cdGZvcm1hdENoYXJ0VHlwZShjaGFydFR5cGU6IENoYXJ0VHlwZSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIENoYXJ0VHlwZUVudW1bKGNoYXJ0VHlwZSBhcyB1bmtub3duIGFzIE1ldGFNb2RlbEVudW08Q2hhcnRUeXBlPik/LiRFbnVtTWVtYmVyIGFzIGtleW9mIHR5cGVvZiBDaGFydFR5cGVFbnVtXTtcblx0fSxcblx0Zm9ybWF0RGltZW5zaW9ucyhhbm5vdGF0aW9uQ29udGV4dDogQ29udGV4dCk6IENvbnRleHQge1xuXHRcdGNvbnN0IGFubm90YXRpb24gPSBhbm5vdGF0aW9uQ29udGV4dC5nZXRPYmplY3QoXCIuL1wiKSBhcyBDaGFydCxcblx0XHRcdG1ldGFNb2RlbCA9IGFubm90YXRpb25Db250ZXh0LmdldE1vZGVsKCksXG5cdFx0XHRlbnRpdHlTZXRQYXRoID0gZ2V0RW50aXR5U2V0UGF0aChhbm5vdGF0aW9uQ29udGV4dCksXG5cdFx0XHRkaW1lbnNpb25zID0gW107XG5cblx0XHRsZXQgaXNOYXZpZ2F0aW9uVGV4dCA9IGZhbHNlO1xuXG5cdFx0Ly9wZXJoYXBzIHRoZXJlIGFyZSBubyBkaW1lbnNpb25cblx0XHRhbm5vdGF0aW9uLkRpbWVuc2lvbkF0dHJpYnV0ZXMgPSBhbm5vdGF0aW9uLkRpbWVuc2lvbkF0dHJpYnV0ZXMgfHwgW107XG5cblx0XHRmb3IgKGNvbnN0IGRpbWVuc2lvbiBvZiBhbm5vdGF0aW9uLkRpbWVuc2lvbnMpIHtcblx0XHRcdGNvbnN0IGtleSA9IChkaW1lbnNpb24gYXMgdW5rbm93biBhcyBFeHBhbmRQYXRoVHlwZTxFZG0uUHJvcGVydHlQYXRoPikuJFByb3BlcnR5UGF0aDtcblx0XHRcdGNvbnN0IHRleHQgPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2VudGl0eVNldFBhdGggKyBrZXl9QCR7Q29tbW9uQW5ub3RhdGlvblRlcm1zLlRleHR9YCkgfHwge307XG5cdFx0XHRpZiAoa2V5LmluY2x1ZGVzKFwiL1wiKSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoYCRleHBhbmQgaXMgbm90IHlldCBzdXBwb3J0ZWQuIERpbWVuc2lvbjogJHtrZXl9IGZyb20gYW4gYXNzb2NpYXRpb24gY2Fubm90IGJlIHVzZWRgKTtcblx0XHRcdH1cblx0XHRcdGlmICh0ZXh0LiRQYXRoICYmIHRleHQuJFBhdGguaW5kZXhPZihcIi9cIikgPiAtMSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXG5cdFx0XHRcdFx0YCRleHBhbmQgaXMgbm90IHlldCBzdXBwb3J0ZWQuIFRleHQgUHJvcGVydHk6ICR7dGV4dC4kUGF0aH0gZnJvbSBhbiBhc3NvY2lhdGlvbiBjYW5ub3QgYmUgdXNlZCBmb3IgdGhlIGRpbWVuc2lvbiAke2tleX1gXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlzTmF2aWdhdGlvblRleHQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBjaGFydERpbWVuc2lvbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHtcblx0XHRcdFx0a2V5OiBrZXksXG5cdFx0XHRcdHRleHRQYXRoOiAhaXNOYXZpZ2F0aW9uVGV4dCA/IHRleHQuJFBhdGggOiB1bmRlZmluZWQsXG5cdFx0XHRcdGxhYmVsOiBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2VudGl0eVNldFBhdGggKyBrZXl9QCR7Q29tbW9uQW5ub3RhdGlvblRlcm1zLkxhYmVsfWApLFxuXHRcdFx0XHRyb2xlOiBcImNhdGVnb3J5XCJcblx0XHRcdH07XG5cblx0XHRcdGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGFubm90YXRpb24uRGltZW5zaW9uQXR0cmlidXRlcykge1xuXHRcdFx0XHRpZiAoY2hhcnREaW1lbnNpb24ua2V5ID09PSAoYXR0cmlidXRlLkRpbWVuc2lvbiBhcyB1bmtub3duIGFzIEV4cGFuZFBhdGhUeXBlPEVkbS5Qcm9wZXJ0eVBhdGg+KT8uJFByb3BlcnR5UGF0aCkge1xuXHRcdFx0XHRcdGNoYXJ0RGltZW5zaW9uLnJvbGUgPVxuXHRcdFx0XHRcdFx0RGltZW5zaW9uUm9sZVR5cGVFbnVtW1xuXHRcdFx0XHRcdFx0XHQoYXR0cmlidXRlLlJvbGUgYXMgdW5rbm93biBhcyBNZXRhTW9kZWxFbnVtPERpbWVuc2lvblJvbGVUeXBlPilcblx0XHRcdFx0XHRcdFx0XHQ/LiRFbnVtTWVtYmVyIGFzIGtleW9mIHR5cGVvZiBEaW1lbnNpb25Sb2xlVHlwZUVudW1cblx0XHRcdFx0XHRcdF0gfHwgY2hhcnREaW1lbnNpb24ucm9sZTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBjcml0aWNhbGl0eSA9IHRoaXMuZmV0Y2hDcml0aWNhbGl0eShtZXRhTW9kZWwsIG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChlbnRpdHlTZXRQYXRoICsga2V5KSk7XG5cdFx0XHRjaGFydERpbWVuc2lvbi5jcml0aWNhbGl0eSA9IHRoaXMuZm9ybWF0SlNPTlRvU3RyaW5nKGNyaXRpY2FsaXR5KTtcblx0XHRcdGRpbWVuc2lvbnMucHVzaChjaGFydERpbWVuc2lvbik7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZGltZW5zaW9uTW9kZWwgPSBuZXcgSlNPTk1vZGVsKGRpbWVuc2lvbnMpO1xuXHRcdChkaW1lbnNpb25Nb2RlbCBhcyBBdHRyaWJ1dGVNb2RlbCkuJCR2YWx1ZUFzUHJvbWlzZSA9IHRydWU7XG5cdFx0cmV0dXJuIGRpbWVuc2lvbk1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKTtcblx0fSxcblxuXHRmZXRjaENyaXRpY2FsaXR5KG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsLCBvQ3R4OiBDb250ZXh0KTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBVSSA9IFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxXCI7XG5cdFx0Y29uc3QgYVZhbHVlQ3JpdGljYWxpdHk6IE1ldGFNb2RlbFR5cGU8VmFsdWVDcml0aWNhbGl0eVR5cGU+W10gPSBvTWV0YU1vZGVsLmdldE9iamVjdChgJHtVSX0uVmFsdWVDcml0aWNhbGl0eWAsIG9DdHgpO1xuXHRcdGxldCBvQ3JpdGljYWxpdHk6IFJlY29yZDxzdHJpbmcsIHVua25vd25bXT4gfCB1bmRlZmluZWQsIG9WYWx1ZUNyaXRpY2FsaXR5OiBNZXRhTW9kZWxUeXBlPFZhbHVlQ3JpdGljYWxpdHlUeXBlPjtcblxuXHRcdGlmIChhVmFsdWVDcml0aWNhbGl0eSkge1xuXHRcdFx0b0NyaXRpY2FsaXR5ID0ge1xuXHRcdFx0XHRWZXJ5UG9zaXRpdmU6IFtdLFxuXHRcdFx0XHRQb3NpdGl2ZTogW10sXG5cdFx0XHRcdENyaXRpY2FsOiBbXSxcblx0XHRcdFx0VmVyeU5lZ2F0aXZlOiBbXSxcblx0XHRcdFx0TmVnYXRpdmU6IFtdLFxuXHRcdFx0XHROZXV0cmFsOiBbXVxuXHRcdFx0fTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhVmFsdWVDcml0aWNhbGl0eS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRvVmFsdWVDcml0aWNhbGl0eSA9IGFWYWx1ZUNyaXRpY2FsaXR5W2ldO1xuXHRcdFx0XHRjb25zdCBjcml0aWNhbGl0eSA9IG9WYWx1ZUNyaXRpY2FsaXR5LkNyaXRpY2FsaXR5IGFzIHVua25vd24gYXMgTWV0YU1vZGVsRW51bTxDcml0aWNhbGl0eVR5cGU+O1xuXHRcdFx0XHRpZiAoY3JpdGljYWxpdHk/LiRFbnVtTWVtYmVyLmVuZHNXaXRoKFwiVmVyeVBvc2l0aXZlXCIpKSB7XG5cdFx0XHRcdFx0b0NyaXRpY2FsaXR5LlZlcnlQb3NpdGl2ZS5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJQb3NpdGl2ZVwiKSkge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5Qb3NpdGl2ZS5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJDcml0aWNhbFwiKSkge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5Dcml0aWNhbC5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJWZXJ5TmVnYXRpdmVcIikpIHtcblx0XHRcdFx0XHRvQ3JpdGljYWxpdHkuVmVyeU5lZ2F0aXZlLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGNyaXRpY2FsaXR5Py4kRW51bU1lbWJlci5lbmRzV2l0aChcIk5lZ2F0aXZlXCIpKSB7XG5cdFx0XHRcdFx0b0NyaXRpY2FsaXR5Lk5lZ2F0aXZlLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5OZXV0cmFsLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoY29uc3Qgc0tleSBpbiBvQ3JpdGljYWxpdHkpIHtcblx0XHRcdFx0aWYgKG9Dcml0aWNhbGl0eVtzS2V5XT8ubGVuZ3RoID09IDApIHtcblx0XHRcdFx0XHRkZWxldGUgb0NyaXRpY2FsaXR5W3NLZXldO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9Dcml0aWNhbGl0eTtcblx0fSxcblxuXHRmb3JtYXRNZWFzdXJlcyhhbm5vdGF0aW9uQ29udGV4dDogQ29udGV4dCk6IE1lYXN1cmVUeXBlW10ge1xuXHRcdHJldHVybiAoYW5ub3RhdGlvbkNvbnRleHQuZ2V0TW9kZWwoKSBhcyBKU09OTW9kZWwpLmdldERhdGEoKTtcblx0fSxcblxuXHRnZXRVaUNoYXJ0KHByZXNlbnRhdGlvbkNvbnRleHQ6IENvbnRleHQpOiBDb250ZXh0IHtcblx0XHRyZXR1cm4gZ2V0VWlDb250cm9sKHByZXNlbnRhdGlvbkNvbnRleHQsIGBAJHtVSUFubm90YXRpb25UZXJtcy5DaGFydH1gKTtcblx0fSxcblx0Z2V0T3BlcmF0aW9uQXZhaWxhYmxlTWFwKGNoYXJ0OiBDaGFydCwgY29udGV4dENvbnRleHQ6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY2hhcnRDb2xsZWN0aW9uID0gY2hhcnQ/LkFjdGlvbnMgfHwgW107XG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KEFjdGlvbkhlbHBlci5nZXRPcGVyYXRpb25BdmFpbGFibGVNYXAoY2hhcnRDb2xsZWN0aW9uLCBcImNoYXJ0XCIsIGNvbnRleHRDb250ZXh0KSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBKU09OIG9iamVjdCBjb250YWluaW5nIFByZXNlbnRhdGlvbiBWYXJpYW50IHNvcnQgY29uZGl0aW9ucy5cblx0ICogQHBhcmFtIG9Db250ZXh0XG5cdCAqIEBwYXJhbSBvQ29udGV4dC5nZXRQYXRoXG5cdCAqIEBwYXJhbSBvQ29udGV4dC5nZXRNb2RlbFxuXHQgKiBAcGFyYW0gb1ByZXNlbnRhdGlvblZhcmlhbnQgUHJlc2VudGF0aW9uIFZhcmlhbnQgYW5ub3RhdGlvblxuXHQgKiBAcGFyYW0gc1ByZXNlbnRhdGlvblZhcmlhbnRQYXRoXG5cdCAqIEBwYXJhbSBvQXBwbHlTdXBwb3J0ZWRcblx0ICogQHJldHVybnMgSlNPTiBvYmplY3Rcblx0ICovXG5cdGdldFNvcnRDb25kaXRpb25zOiBmdW5jdGlvbiAoXG5cdFx0b0NvbnRleHQ6IENvbnRleHQsXG5cdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQ6IE1ldGFNb2RlbFR5cGU8UHJlc2VudGF0aW9uVmFyaWFudFR5cGU+LFxuXHRcdHNQcmVzZW50YXRpb25WYXJpYW50UGF0aDogc3RyaW5nLFxuXHRcdG9BcHBseVN1cHBvcnRlZDogQ2hhcnRBcHBseVN1cHBvcnRlZFxuXHQpOlxuXHRcdHwge1xuXHRcdFx0XHRzb3J0ZXJzOiB7IG5hbWU6IHN0cmluZzsgZGVzY2VuZGluZzogYm9vbGVhbiB9W107XG5cdFx0ICB9XG5cdFx0fCB1bmRlZmluZWQge1xuXHRcdGlmIChcblx0XHRcdG9QcmVzZW50YXRpb25WYXJpYW50ICYmXG5cdFx0XHRDb21tb25IZWxwZXIuX2lzUHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24oc1ByZXNlbnRhdGlvblZhcmlhbnRQYXRoKSAmJlxuXHRcdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQuU29ydE9yZGVyXG5cdFx0KSB7XG5cdFx0XHRjb25zdCBhU29ydENvbmRpdGlvbnM6IHtcblx0XHRcdFx0c29ydGVyczogeyBuYW1lOiBzdHJpbmc7IGtleTogc3RyaW5nOyBkZXNjZW5kaW5nOiBib29sZWFuIH1bXTtcblx0XHRcdH0gPSB7XG5cdFx0XHRcdHNvcnRlcnM6IFtdXG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgc0VudGl0eVBhdGggPSBvQ29udGV4dC5nZXRQYXRoKCkuc3BsaXQoXCJAXCIpWzBdO1xuXHRcdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQuU29ydE9yZGVyLmZvckVhY2goZnVuY3Rpb24gKG9Db25kaXRpb246IE1ldGFNb2RlbFR5cGU8U29ydE9yZGVyVHlwZT4gPSB7fSk6IHZvaWQge1xuXHRcdFx0XHRsZXQgb1NvcnRQcm9wZXJ0eSA9IFwiXCI7XG5cdFx0XHRcdGlmIChvQ29uZGl0aW9uLkR5bmFtaWNQcm9wZXJ0eSkge1xuXHRcdFx0XHRcdG9Tb3J0UHJvcGVydHkgPVxuXHRcdFx0XHRcdFx0XCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRPYmplY3Qoc0VudGl0eVBhdGggKyBvQ29uZGl0aW9uLkR5bmFtaWNQcm9wZXJ0eS4kQW5ub3RhdGlvblBhdGgpPy5OYW1lO1xuXHRcdFx0XHR9IGVsc2UgaWYgKG9Db25kaXRpb24uUHJvcGVydHkpIHtcblx0XHRcdFx0XHRjb25zdCBhR3JvdXBhYmxlUHJvcGVydGllcyA9IG9BcHBseVN1cHBvcnRlZC5Hcm91cGFibGVQcm9wZXJ0aWVzO1xuXHRcdFx0XHRcdGlmIChhR3JvdXBhYmxlUHJvcGVydGllcyAmJiBhR3JvdXBhYmxlUHJvcGVydGllcy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUdyb3VwYWJsZVByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHRcdChhR3JvdXBhYmxlUHJvcGVydGllc1tpXSBhcyB7ICRQcm9wZXJ0eVBhdGg6IHN0cmluZyB9KS4kUHJvcGVydHlQYXRoID09PSBvQ29uZGl0aW9uLlByb3BlcnR5LiRQcm9wZXJ0eVBhdGhcblx0XHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0b1NvcnRQcm9wZXJ0eSA9IFwiX2ZlX2dyb3VwYWJsZV9cIiArIG9Db25kaXRpb24uUHJvcGVydHkuJFByb3BlcnR5UGF0aDtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZiAoIW9Tb3J0UHJvcGVydHkpIHtcblx0XHRcdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRcdG9Db250ZXh0XG5cdFx0XHRcdFx0XHRcdC5nZXRNb2RlbCgpXG5cdFx0XHRcdFx0XHRcdC5nZXRPYmplY3QoYCR7c0VudGl0eVBhdGggKyBvQ29uZGl0aW9uLlByb3BlcnR5LiRQcm9wZXJ0eVBhdGh9QCR7QWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMuR3JvdXBhYmxlfWApXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfZ3JvdXBhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob1NvcnRQcm9wZXJ0eSkge1xuXHRcdFx0XHRcdGNvbnN0IG9Tb3J0ZXIgPSB7XG5cdFx0XHRcdFx0XHRuYW1lOiBvU29ydFByb3BlcnR5LFxuXHRcdFx0XHRcdFx0a2V5OiBvU29ydFByb3BlcnR5LFxuXHRcdFx0XHRcdFx0ZGVzY2VuZGluZzogISFvQ29uZGl0aW9uLkRlc2NlbmRpbmdcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGFTb3J0Q29uZGl0aW9ucy5zb3J0ZXJzLnB1c2gob1NvcnRlcik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiUGxlYXNlIGRlZmluZSB0aGUgcmlnaHQgcGF0aCB0byB0aGUgc29ydCBwcm9wZXJ0eVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gYVNvcnRDb25kaXRpb25zO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9LFxuXHRfZ2V0TW9kZWwob0NvbGxlY3Rpb246IHVua25vd24sIG9JbnRlcmZhY2U6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IENvbnRleHQge1xuXHRcdHJldHVybiBvSW50ZXJmYWNlLmNvbnRleHQ7XG5cdH0sXG5cdC8vIFRPRE86IGNvbWJpbmUgdGhpcyBvbmUgd2l0aCB0aGUgb25lIGZyb20gdGhlIHRhYmxlXG5cdGlzRGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uRW5hYmxlZChcblx0XHRiSXNCb3VuZDogYm9vbGVhbixcblx0XHRzQWN0aW9uOiBzdHJpbmcsXG5cdFx0b0NvbGxlY3Rpb246IENvbnRleHQsXG5cdFx0c09wZXJhdGlvbkF2YWlsYWJsZU1hcDogc3RyaW5nLFxuXHRcdHNFbmFibGVTZWxlY3RPbjogc3RyaW5nXG5cdCk6IHN0cmluZyB7XG5cdFx0aWYgKGJJc0JvdW5kICE9PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm4gXCJ0cnVlXCI7XG5cdFx0fVxuXHRcdGNvbnN0IG9Nb2RlbCA9IG9Db2xsZWN0aW9uLmdldE1vZGVsKCk7XG5cdFx0Y29uc3Qgc05hdlBhdGggPSBvQ29sbGVjdGlvbi5nZXRQYXRoKCk7XG5cdFx0Y29uc3Qgc1BhcnRuZXIgPSBvTW9kZWwuZ2V0T2JqZWN0KHNOYXZQYXRoKS4kUGFydG5lcjtcblx0XHRjb25zdCBvT3BlcmF0aW9uQXZhaWxhYmxlTWFwID0gc09wZXJhdGlvbkF2YWlsYWJsZU1hcCAmJiBKU09OLnBhcnNlKHNPcGVyYXRpb25BdmFpbGFibGVNYXApO1xuXHRcdGNvbnN0IGFQYXRoID0gb09wZXJhdGlvbkF2YWlsYWJsZU1hcCAmJiBvT3BlcmF0aW9uQXZhaWxhYmxlTWFwW3NBY3Rpb25dICYmIG9PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl0uc3BsaXQoXCIvXCIpO1xuXHRcdGNvbnN0IHNOdW1iZXJPZlNlbGVjdGVkQ29udGV4dHMgPSBBY3Rpb25IZWxwZXIuZ2V0TnVtYmVyT2ZDb250ZXh0c0V4cHJlc3Npb24oc0VuYWJsZVNlbGVjdE9uKTtcblx0XHRpZiAoYVBhdGggJiYgYVBhdGhbMF0gPT09IHNQYXJ0bmVyKSB7XG5cdFx0XHRjb25zdCBzUGF0aCA9IG9PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl0ucmVwbGFjZShzUGFydG5lciArIFwiL1wiLCBcIlwiKTtcblx0XHRcdHJldHVybiBcIns9ICR7XCIgKyBzTnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzICsgXCIgJiYgJHtcIiArIHNQYXRoICsgXCJ9fVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gXCJ7PSAke1wiICsgc051bWJlck9mU2VsZWN0ZWRDb250ZXh0cyArIFwifVwiO1xuXHRcdH1cblx0fSxcblx0Z2V0SGlkZGVuUGF0aEV4cHJlc3Npb25Gb3JUYWJsZUFjdGlvbnNBbmRJQk4oc0hpZGRlblBhdGg6IHN0cmluZywgb0RldGFpbHM6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IHN0cmluZyB8IHRydWUge1xuXHRcdGNvbnN0IG9Db250ZXh0ID0gb0RldGFpbHMuY29udGV4dCxcblx0XHRcdHNQcm9wZXJ0eVBhdGggPSBvQ29udGV4dC5nZXRQYXRoKCksXG5cdFx0XHRzRW50aXR5U2V0UGF0aCA9IE9EYXRhTW9kZWxBbm5vdGF0aW9uSGVscGVyLmdldE5hdmlnYXRpb25QYXRoKHNQcm9wZXJ0eVBhdGgpO1xuXHRcdGlmIChzSGlkZGVuUGF0aC5pbmRleE9mKFwiL1wiKSA+IDApIHtcblx0XHRcdGNvbnN0IGFTcGxpdEhpZGRlblBhdGggPSBzSGlkZGVuUGF0aC5zcGxpdChcIi9cIik7XG5cdFx0XHRjb25zdCBzTmF2aWdhdGlvblBhdGggPSBhU3BsaXRIaWRkZW5QYXRoWzBdO1xuXHRcdFx0Ly8gc3VwcG9ydHMgdmlzaWJsaXR5IGJhc2VkIG9uIHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJ0bmVyIGFzc29jaWF0aW9uXG5cdFx0XHRpZiAob0NvbnRleHQuZ2V0T2JqZWN0KHNFbnRpdHlTZXRQYXRoICsgXCIvJFBhcnRuZXJcIikgPT09IHNOYXZpZ2F0aW9uUGF0aCkge1xuXHRcdFx0XHRyZXR1cm4gXCJ7PSAhJXtcIiArIGFTcGxpdEhpZGRlblBhdGguc2xpY2UoMSkuam9pbihcIi9cIikgKyBcIn0gfVwiO1xuXHRcdFx0fVxuXHRcdFx0Ly8gYW55IG90aGVyIGFzc29jaWF0aW9uIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlIGJ1dHRvbiB3aWxsIGJlIG1hZGUgdmlzaWJsZVxuXHRcdH1cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBnZXQgcHJlc3MgZXZlbnQgZm9yIERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbi5cblx0ICogQHBhcmFtIGlkIEN1cnJlbnQgY29udHJvbCBJRFxuXHQgKiBAcGFyYW0gYWN0aW9uIERhdGFGaWVsZEZvckFjdGlvbiBtb2RlbFxuXHQgKiBAcGFyYW0gb3BlcmF0aW9uQXZhaWxhYmxlTWFwIFN0cmluZ2lmaWVkIEpTT04gb2JqZWN0XG5cdCAqIEByZXR1cm5zIEEgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgcHJlc3MgcHJvcGVydHkgb2YgdGhlIERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvblxuXHQgKi9cblx0Z2V0UHJlc3NFdmVudEZvckRhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbihcblx0XHRpZDogc3RyaW5nLFxuXHRcdGFjdGlvbjogTWV0YU1vZGVsVHlwZTxEYXRhRmllbGRGb3JBY3Rpb24+ICYgeyBJbnZvY2F0aW9uR3JvdXBpbmc6IE1ldGFNb2RlbEVudW08T3BlcmF0aW9uR3JvdXBpbmdUeXBlPiB9LFxuXHRcdG9wZXJhdGlvbkF2YWlsYWJsZU1hcDogc3RyaW5nXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIEFjdGlvbkhlbHBlci5nZXRQcmVzc0V2ZW50RGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uKFxuXHRcdFx0aWQsXG5cdFx0XHRhY3Rpb24sXG5cdFx0XHR7XG5cdFx0XHRcdGNvbnRleHRzOiBcIiR7aW50ZXJuYWw+c2VsZWN0ZWRDb250ZXh0c31cIlxuXHRcdFx0fSxcblx0XHRcdG9wZXJhdGlvbkF2YWlsYWJsZU1hcFxuXHRcdCk7XG5cdH0sXG5cdC8qKlxuXHQgKiBAcGFyYW0gYWN0aW9uIERhdGFGaWVsZEZvckFjdGlvbiBtb2RlbFxuXHQgKiBAcmV0dXJucyBBIEJvb2xlYW4gdmFsdWUgZGVwZW5kaW5nIG9uIHRoZSBhY3Rpb24gdHlwZVxuXHQgKi9cblx0Z2V0QWN0aW9uVHlwZShhY3Rpb246IERhdGFGaWVsZEZvckFjdGlvbik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQoYWN0aW9uW1wiJFR5cGVcIl0uaW5jbHVkZXMoVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uKSB8fFxuXHRcdFx0XHRhY3Rpb25bXCIkVHlwZVwiXS5pbmNsdWRlcyhVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24pKSAmJlxuXHRcdFx0YWN0aW9uW1wiSW5saW5lXCJdXG5cdFx0KS52YWx1ZU9mKCk7XG5cdH0sXG5cdGdldENvbGxlY3Rpb25OYW1lKGNvbGxlY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY29sbGVjdGlvblNwbGl0ID0gY29sbGVjdGlvbi5zcGxpdChcIi9cIik7XG5cdFx0cmV0dXJuIGNvbGxlY3Rpb25TcGxpdFtjb2xsZWN0aW9uU3BsaXQubGVuZ3RoIC0gMV07XG5cdH1cbn07XG4oQ2hhcnRIZWxwZXIuZ2V0U29ydENvbmRpdGlvbnMgYXMgeyByZXF1aXJlc0lDb250ZXh0PzogYm9vbGVhbiB9KS5yZXF1aXJlc0lDb250ZXh0ID0gdHJ1ZTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRIZWxwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0VBNkJBLFNBQVNBLGdCQUFnQkEsQ0FBQ0MsaUJBQTBCLEVBQVU7SUFDN0QsT0FBT0EsaUJBQWlCLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQywyREFBMkQsRUFBRSxFQUFFLENBQUM7RUFDNUc7RUFFQSxNQUFNQyxhQUFhLEdBQUc7SUFDckIsNkNBQTZDLEVBQUUsUUFBUTtJQUN2RCxvREFBb0QsRUFBRSxnQkFBZ0I7SUFDdEUsaURBQWlELEVBQUUsYUFBYTtJQUNoRSx3REFBd0QsRUFBRSxxQkFBcUI7SUFDL0UsdURBQXVELEVBQUUsb0JBQW9CO0lBQzdFLDJEQUEyRCxFQUFFLHlCQUF5QjtJQUN0RiwwQ0FBMEMsRUFB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
|
|
287
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRFbnRpdHlTZXRQYXRoIiwiYW5ub3RhdGlvbkNvbnRleHQiLCJnZXRQYXRoIiwicmVwbGFjZSIsIkNoYXJ0VHlwZUVudW0iLCJEaW1lbnNpb25Sb2xlVHlwZUVudW0iLCJDaGFydEhlbHBlciIsImZvcm1hdEpTT05Ub1N0cmluZyIsImNyaXQiLCJ1bmRlZmluZWQiLCJjcml0aWNhbGl0eSIsIkpTT04iLCJzdHJpbmdpZnkiLCJSZWdFeHAiLCJmb3JtYXRDaGFydFR5cGUiLCJjaGFydFR5cGUiLCIkRW51bU1lbWJlciIsImZvcm1hdERpbWVuc2lvbnMiLCJhbm5vdGF0aW9uIiwiZ2V0T2JqZWN0IiwibWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJlbnRpdHlTZXRQYXRoIiwiZGltZW5zaW9ucyIsImlzTmF2aWdhdGlvblRleHQiLCJEaW1lbnNpb25BdHRyaWJ1dGVzIiwiZGltZW5zaW9uIiwiRGltZW5zaW9ucyIsImtleSIsIiRQcm9wZXJ0eVBhdGgiLCJ0ZXh0IiwiaW5jbHVkZXMiLCJMb2ciLCJlcnJvciIsIiRQYXRoIiwiaW5kZXhPZiIsImNoYXJ0RGltZW5zaW9uIiwidGV4dFBhdGgiLCJsYWJlbCIsInJvbGUiLCJhdHRyaWJ1dGUiLCJEaW1lbnNpb24iLCJSb2xlIiwiZmV0Y2hDcml0aWNhbGl0eSIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwicHVzaCIsImRpbWVuc2lvbk1vZGVsIiwiSlNPTk1vZGVsIiwiJCR2YWx1ZUFzUHJvbWlzZSIsIm9NZXRhTW9kZWwiLCJvQ3R4IiwiVUkiLCJhVmFsdWVDcml0aWNhbGl0eSIsIm9Dcml0aWNhbGl0eSIsIm9WYWx1ZUNyaXRpY2FsaXR5IiwiVmVyeVBvc2l0aXZlIiwiUG9zaXRpdmUiLCJDcml0aWNhbCIsIlZlcnlOZWdhdGl2ZSIsIk5lZ2F0aXZlIiwiTmV1dHJhbCIsImkiLCJsZW5ndGgiLCJDcml0aWNhbGl0eSIsImVuZHNXaXRoIiwiVmFsdWUiLCJzS2V5IiwiZm9ybWF0TWVhc3VyZXMiLCJnZXREYXRhIiwiZ2V0VWlDaGFydCIsInByZXNlbnRhdGlvbkNvbnRleHQiLCJnZXRVaUNvbnRyb2wiLCJnZXRPcGVyYXRpb25BdmFpbGFibGVNYXAiLCJjaGFydCIsImNvbnRleHRDb250ZXh0IiwiY2hhcnRDb2xsZWN0aW9uIiwiQWN0aW9ucyIsIkFjdGlvbkhlbHBlciIsImdldFNvcnRDb25kaXRpb25zIiwib0NvbnRleHQiLCJvUHJlc2VudGF0aW9uVmFyaWFudCIsInNQcmVzZW50YXRpb25WYXJpYW50UGF0aCIsIm9BcHBseVN1cHBvcnRlZCIsIkNvbW1vbkhlbHBlciIsIl9pc1ByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwiU29ydE9yZGVyIiwiYVNvcnRDb25kaXRpb25zIiwic29ydGVycyIsInNFbnRpdHlQYXRoIiwic3BsaXQiLCJmb3JFYWNoIiwib0NvbmRpdGlvbiIsImFyZ3VtZW50cyIsIm9Tb3J0UHJvcGVydHkiLCJEeW5hbWljUHJvcGVydHkiLCIkQW5ub3RhdGlvblBhdGgiLCJOYW1lIiwiUHJvcGVydHkiLCJhR3JvdXBhYmxlUHJvcGVydGllcyIsIkdyb3VwYWJsZVByb3BlcnRpZXMiLCJvU29ydGVyIiwibmFtZSIsImRlc2NlbmRpbmciLCJEZXNjZW5kaW5nIiwiRXJyb3IiLCJfZ2V0TW9kZWwiLCJvQ29sbGVjdGlvbiIsIm9JbnRlcmZhY2UiLCJjb250ZXh0IiwiaXNEYXRhRmllbGRGb3JBY3Rpb25CdXR0b25FbmFibGVkIiwiYklzQm91bmQiLCJzQWN0aW9uIiwic09wZXJhdGlvbkF2YWlsYWJsZU1hcCIsInNFbmFibGVTZWxlY3RPbiIsIm9Nb2RlbCIsInNOYXZQYXRoIiwic1BhcnRuZXIiLCIkUGFydG5lciIsIm9PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJwYXJzZSIsImFQYXRoIiwic051bWJlck9mU2VsZWN0ZWRDb250ZXh0cyIsImdldE51bWJlck9mQ29udGV4dHNFeHByZXNzaW9uIiwic1BhdGgiLCJnZXRIaWRkZW5QYXRoRXhwcmVzc2lvbkZvclRhYmxlQWN0aW9uc0FuZElCTiIsInNIaWRkZW5QYXRoIiwib0RldGFpbHMiLCJzUHJvcGVydHlQYXRoIiwic0VudGl0eVNldFBhdGgiLCJPRGF0YU1vZGVsQW5ub3RhdGlvbkhlbHBlciIsImdldE5hdmlnYXRpb25QYXRoIiwiYVNwbGl0SGlkZGVuUGF0aCIsInNOYXZpZ2F0aW9uUGF0aCIsInNsaWNlIiwiam9pbiIsImdldFByZXNzRXZlbnRGb3JEYXRhRmllbGRGb3JBY3Rpb25CdXR0b24iLCJpZCIsImFjdGlvbiIsIm9wZXJhdGlvbkF2YWlsYWJsZU1hcCIsImdldFByZXNzRXZlbnREYXRhRmllbGRGb3JBY3Rpb25CdXR0b24iLCJjb250ZXh0cyIsImdldEFjdGlvblR5cGUiLCJ2YWx1ZU9mIiwiZ2V0Q29sbGVjdGlvbk5hbWUiLCJjb2xsZWN0aW9uIiwiY29sbGVjdGlvblNwbGl0IiwicmVxdWlyZXNJQ29udGV4dCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ2hhcnRIZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFZG0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL0VkbVwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IFNvcnRPcmRlclR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHsgQ29tbW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHtcblx0Q2hhcnQsXG5cdENoYXJ0VHlwZSxcblx0Q3JpdGljYWxpdHlUeXBlLFxuXHREYXRhRmllbGRGb3JBY3Rpb24sXG5cdE9wZXJhdGlvbkdyb3VwaW5nVHlwZSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdFZhbHVlQ3JpdGljYWxpdHlUeXBlXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zLCBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgRGltZW5zaW9uUm9sZVR5cGUgZnJvbSBcInNhcC9jaGFydC9kYXRhL0RpbWVuc2lvblJvbGVUeXBlXCI7XG5pbXBvcnQgdHlwZSBBdHRyaWJ1dGVNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9BdHRyaWJ1dGVNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBDaGFydEFwcGx5U3VwcG9ydGVkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0NoYXJ0XCI7XG5pbXBvcnQgeyBnZXRVaUNvbnRyb2wgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vRGF0YVZpc3VhbGl6YXRpb25cIjtcbmltcG9ydCB0eXBlIHsgQ29tcHV0ZWRBbm5vdGF0aW9uSW50ZXJmYWNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBNZWFzdXJlVHlwZSB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2NoYXJ0L01kY0NoYXJ0VGVtcGxhdGVcIjtcbmltcG9ydCBBY3Rpb25IZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvaGVscGVycy9BY3Rpb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBPRGF0YU1vZGVsQW5ub3RhdGlvbkhlbHBlciBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0Fubm90YXRpb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCB0eXBlIHsgRXhwYW5kUGF0aFR5cGUsIE1ldGFNb2RlbEVudW0sIE1ldGFNb2RlbFR5cGUgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG5cbmZ1bmN0aW9uIGdldEVudGl0eVNldFBhdGgoYW5ub3RhdGlvbkNvbnRleHQ6IENvbnRleHQpOiBzdHJpbmcge1xuXHRyZXR1cm4gYW5ub3RhdGlvbkNvbnRleHQuZ2V0UGF0aCgpLnJlcGxhY2UoL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS4oQ2hhcnR8UHJlc2VudGF0aW9uVmFyaWFudCkuKi8sIFwiXCIpO1xufVxuXG5jb25zdCBDaGFydFR5cGVFbnVtID0ge1xuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5cIjogXCJjb2x1bW5cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29sdW1uU3RhY2tlZFwiOiBcInN0YWNrZWRfY29sdW1uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0NvbHVtbkR1YWxcIjogXCJkdWFsX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5TdGFja2VkRHVhbFwiOiBcImR1YWxfc3RhY2tlZF9jb2x1bW5cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29sdW1uU3RhY2tlZDEwMFwiOiBcIjEwMF9zdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db2x1bW5TdGFja2VkRHVhbDEwMFwiOiBcIjEwMF9kdWFsX3N0YWNrZWRfY29sdW1uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclwiOiBcImJhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9CYXJTdGFja2VkXCI6IFwic3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQmFyRHVhbFwiOiBcImR1YWxfYmFyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclN0YWNrZWREdWFsXCI6IFwiZHVhbF9zdGFja2VkX2JhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9CYXJTdGFja2VkMTAwXCI6IFwiMTAwX3N0YWNrZWRfYmFyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0JhclN0YWNrZWREdWFsMTAwXCI6IFwiMTAwX2R1YWxfc3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQXJlYVwiOiBcImFyZWFcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQXJlYVN0YWNrZWRcIjogXCJzdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9BcmVhU3RhY2tlZDEwMFwiOiBcIjEwMF9zdGFja2VkX2NvbHVtblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVwiOiBcImJhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVN0YWNrZWRcIjogXCJzdGFja2VkX2JhclwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQXJlYVN0YWNrZWQxMDBcIjogXCIxMDBfc3RhY2tlZF9iYXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvTGluZVwiOiBcImxpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvTGluZUR1YWxcIjogXCJkdWFsX2xpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29tYmluYXRpb25cIjogXCJjb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Db21iaW5hdGlvblN0YWNrZWRcIjogXCJzdGFja2VkX2NvbWJpbmF0aW9uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0NvbWJpbmF0aW9uRHVhbFwiOiBcImR1YWxfY29tYmluYXRpb25cIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvQ29tYmluYXRpb25TdGFja2VkRHVhbFwiOiBcImR1YWxfc3RhY2tlZF9jb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQ29tYmluYXRpb25TdGFja2VkXCI6IFwiaG9yaXpvbnRhbF9zdGFja2VkX2NvbWJpbmF0aW9uXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL1BpZVwiOiBcInBpZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Eb251dFwiOiBcImRvbnV0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL1NjYXR0ZXJcIjogXCJzY2F0dGVyXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0J1YmJsZVwiOiBcImJ1YmJsZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9SYWRhclwiOiBcImxpbmVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvSGVhdE1hcFwiOiBcImhlYXRtYXBcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvVHJlZU1hcFwiOiBcInRyZWVtYXBcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvV2F0ZXJmYWxsXCI6IFwid2F0ZXJmYWxsXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRUeXBlL0J1bGxldFwiOiBcImJ1bGxldFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9WZXJ0aWNhbEJ1bGxldFwiOiBcInZlcnRpY2FsX2J1bGxldFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsV2F0ZXJmYWxsXCI6IFwiaG9yaXpvbnRhbF93YXRlcmZhbGxcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFR5cGUvSG9yaXpvbnRhbENvbWJpbmF0aW9uRHVhbFwiOiBcImR1YWxfaG9yaXpvbnRhbF9jb21iaW5hdGlvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0VHlwZS9Ib3Jpem9udGFsQ29tYmluYXRpb25TdGFja2VkRHVhbFwiOiBcImR1YWxfaG9yaXpvbnRhbF9zdGFja2VkX2NvbWJpbmF0aW9uXCJcbn07XG5jb25zdCBEaW1lbnNpb25Sb2xlVHlwZUVudW0gPSB7XG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9DYXRlZ29yeVwiOiBcImNhdGVnb3J5XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9TZXJpZXNcIjogXCJzZXJpZXNcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydERpbWVuc2lvblJvbGVUeXBlL0NhdGVnb3J5MlwiOiBcImNhdGVnb3J5MlwiXG59O1xuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIHNhcC5mZS5tYWNyb3MgQ2hhcnQgcGhhbnRvbSBjb250cm9sIGZvciBwcmVwcm9jZXNzaW5nLlxuICogPGgzPjxiPk5vdGU6PC9iPjwvaDM+XG4gKiBUaGUgY2xhc3MgaXMgZXhwZXJpbWVudGFsIGFuZCB0aGUgQVBJL2JlaGF2aW91ciBpcyBub3QgZmluYWxpc2VkXG4gKiBhbmQgaGVuY2UgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQgZm9yIHByb2R1Y3RpdmUgdXNhZ2UuXG4gKiBFc3BlY2lhbGx5IHRoaXMgY2xhc3MgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIHRoZSBGRSBzY2VuYXJpbyxcbiAqIGhlcmUgd2Ugc2hhbGwgdXNlIHNhcC5mZS5tYWNyb3MuQ2hhcnRIZWxwZXIgdGhhdCBpcyBlc3BlY2lhbGx5IHRhaWxvcmVkIGZvciBWNFxuICogbWV0YSBtb2RlbFxuICogQGF1dGhvciBTQVAgU0VcbiAqIEBwcml2YXRlXG4gKiBAc2luY2UgMS42Mi4wXG4gKiBAYWxpYXMgc2FwLmZlLm1hY3Jvcy5DaGFydEhlbHBlclxuICovXG5jb25zdCBDaGFydEhlbHBlciA9IHtcblx0Zm9ybWF0SlNPTlRvU3RyaW5nKGNyaXQ6IG9iamVjdCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCFjcml0KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdGxldCBjcml0aWNhbGl0eSA9IEpTT04uc3RyaW5naWZ5KGNyaXQpO1xuXHRcdGNyaXRpY2FsaXR5ID0gY3JpdGljYWxpdHkucmVwbGFjZShuZXcgUmVnRXhwKFwie1wiLCBcImdcIiksIFwiXFxcXHtcIik7XG5cdFx0Y3JpdGljYWxpdHkgPSBjcml0aWNhbGl0eS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJ9XCIsIFwiZ1wiKSwgXCJcXFxcfVwiKTtcblx0XHRyZXR1cm4gY3JpdGljYWxpdHk7XG5cdH0sXG5cdGZvcm1hdENoYXJ0VHlwZShjaGFydFR5cGU6IENoYXJ0VHlwZSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIENoYXJ0VHlwZUVudW1bKGNoYXJ0VHlwZSBhcyB1bmtub3duIGFzIE1ldGFNb2RlbEVudW08Q2hhcnRUeXBlPik/LiRFbnVtTWVtYmVyIGFzIGtleW9mIHR5cGVvZiBDaGFydFR5cGVFbnVtXTtcblx0fSxcblx0Zm9ybWF0RGltZW5zaW9ucyhhbm5vdGF0aW9uQ29udGV4dDogQ29udGV4dCk6IENvbnRleHQge1xuXHRcdGNvbnN0IGFubm90YXRpb24gPSBhbm5vdGF0aW9uQ29udGV4dC5nZXRPYmplY3QoXCIuL1wiKSBhcyBDaGFydCxcblx0XHRcdG1ldGFNb2RlbCA9IGFubm90YXRpb25Db250ZXh0LmdldE1vZGVsKCksXG5cdFx0XHRlbnRpdHlTZXRQYXRoID0gZ2V0RW50aXR5U2V0UGF0aChhbm5vdGF0aW9uQ29udGV4dCksXG5cdFx0XHRkaW1lbnNpb25zID0gW107XG5cblx0XHRsZXQgaXNOYXZpZ2F0aW9uVGV4dCA9IGZhbHNlO1xuXG5cdFx0Ly9wZXJoYXBzIHRoZXJlIGFyZSBubyBkaW1lbnNpb25cblx0XHRhbm5vdGF0aW9uLkRpbWVuc2lvbkF0dHJpYnV0ZXMgPSBhbm5vdGF0aW9uLkRpbWVuc2lvbkF0dHJpYnV0ZXMgfHwgW107XG5cblx0XHRmb3IgKGNvbnN0IGRpbWVuc2lvbiBvZiBhbm5vdGF0aW9uLkRpbWVuc2lvbnMpIHtcblx0XHRcdGNvbnN0IGtleSA9IChkaW1lbnNpb24gYXMgdW5rbm93biBhcyBFeHBhbmRQYXRoVHlwZTxFZG0uUHJvcGVydHlQYXRoPikuJFByb3BlcnR5UGF0aDtcblx0XHRcdGNvbnN0IHRleHQgPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2VudGl0eVNldFBhdGggKyBrZXl9QCR7Q29tbW9uQW5ub3RhdGlvblRlcm1zLlRleHR9YCkgfHwge307XG5cdFx0XHRpZiAoa2V5LmluY2x1ZGVzKFwiL1wiKSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoYCRleHBhbmQgaXMgbm90IHlldCBzdXBwb3J0ZWQuIERpbWVuc2lvbjogJHtrZXl9IGZyb20gYW4gYXNzb2NpYXRpb24gY2Fubm90IGJlIHVzZWRgKTtcblx0XHRcdH1cblx0XHRcdGlmICh0ZXh0LiRQYXRoICYmIHRleHQuJFBhdGguaW5kZXhPZihcIi9cIikgPiAtMSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXG5cdFx0XHRcdFx0YCRleHBhbmQgaXMgbm90IHlldCBzdXBwb3J0ZWQuIFRleHQgUHJvcGVydHk6ICR7dGV4dC4kUGF0aH0gZnJvbSBhbiBhc3NvY2lhdGlvbiBjYW5ub3QgYmUgdXNlZCBmb3IgdGhlIGRpbWVuc2lvbiAke2tleX1gXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlzTmF2aWdhdGlvblRleHQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBjaGFydERpbWVuc2lvbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHtcblx0XHRcdFx0a2V5OiBrZXksXG5cdFx0XHRcdHRleHRQYXRoOiAhaXNOYXZpZ2F0aW9uVGV4dCA/IHRleHQuJFBhdGggOiB1bmRlZmluZWQsXG5cdFx0XHRcdGxhYmVsOiBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2VudGl0eVNldFBhdGggKyBrZXl9QCR7Q29tbW9uQW5ub3RhdGlvblRlcm1zLkxhYmVsfWApLFxuXHRcdFx0XHRyb2xlOiBcImNhdGVnb3J5XCJcblx0XHRcdH07XG5cblx0XHRcdGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGFubm90YXRpb24uRGltZW5zaW9uQXR0cmlidXRlcykge1xuXHRcdFx0XHRpZiAoY2hhcnREaW1lbnNpb24ua2V5ID09PSAoYXR0cmlidXRlLkRpbWVuc2lvbiBhcyB1bmtub3duIGFzIEV4cGFuZFBhdGhUeXBlPEVkbS5Qcm9wZXJ0eVBhdGg+KT8uJFByb3BlcnR5UGF0aCkge1xuXHRcdFx0XHRcdGNoYXJ0RGltZW5zaW9uLnJvbGUgPVxuXHRcdFx0XHRcdFx0RGltZW5zaW9uUm9sZVR5cGVFbnVtW1xuXHRcdFx0XHRcdFx0XHQoYXR0cmlidXRlLlJvbGUgYXMgdW5rbm93biBhcyBNZXRhTW9kZWxFbnVtPERpbWVuc2lvblJvbGVUeXBlPilcblx0XHRcdFx0XHRcdFx0XHQ/LiRFbnVtTWVtYmVyIGFzIGtleW9mIHR5cGVvZiBEaW1lbnNpb25Sb2xlVHlwZUVudW1cblx0XHRcdFx0XHRcdF0gfHwgY2hhcnREaW1lbnNpb24ucm9sZTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBjcml0aWNhbGl0eSA9IHRoaXMuZmV0Y2hDcml0aWNhbGl0eShtZXRhTW9kZWwsIG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChlbnRpdHlTZXRQYXRoICsga2V5KSk7XG5cdFx0XHRjaGFydERpbWVuc2lvbi5jcml0aWNhbGl0eSA9IHRoaXMuZm9ybWF0SlNPTlRvU3RyaW5nKGNyaXRpY2FsaXR5KTtcblx0XHRcdGRpbWVuc2lvbnMucHVzaChjaGFydERpbWVuc2lvbik7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZGltZW5zaW9uTW9kZWwgPSBuZXcgSlNPTk1vZGVsKGRpbWVuc2lvbnMpO1xuXHRcdChkaW1lbnNpb25Nb2RlbCBhcyBBdHRyaWJ1dGVNb2RlbCkuJCR2YWx1ZUFzUHJvbWlzZSA9IHRydWU7XG5cdFx0cmV0dXJuIGRpbWVuc2lvbk1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKTtcblx0fSxcblxuXHRmZXRjaENyaXRpY2FsaXR5KG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsLCBvQ3R4OiBDb250ZXh0KTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBVSSA9IFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxXCI7XG5cdFx0Y29uc3QgYVZhbHVlQ3JpdGljYWxpdHk6IE1ldGFNb2RlbFR5cGU8VmFsdWVDcml0aWNhbGl0eVR5cGU+W10gPSBvTWV0YU1vZGVsLmdldE9iamVjdChgJHtVSX0uVmFsdWVDcml0aWNhbGl0eWAsIG9DdHgpO1xuXHRcdGxldCBvQ3JpdGljYWxpdHk6IFJlY29yZDxzdHJpbmcsIHVua25vd25bXT4gfCB1bmRlZmluZWQsIG9WYWx1ZUNyaXRpY2FsaXR5OiBNZXRhTW9kZWxUeXBlPFZhbHVlQ3JpdGljYWxpdHlUeXBlPjtcblxuXHRcdGlmIChhVmFsdWVDcml0aWNhbGl0eSkge1xuXHRcdFx0b0NyaXRpY2FsaXR5ID0ge1xuXHRcdFx0XHRWZXJ5UG9zaXRpdmU6IFtdLFxuXHRcdFx0XHRQb3NpdGl2ZTogW10sXG5cdFx0XHRcdENyaXRpY2FsOiBbXSxcblx0XHRcdFx0VmVyeU5lZ2F0aXZlOiBbXSxcblx0XHRcdFx0TmVnYXRpdmU6IFtdLFxuXHRcdFx0XHROZXV0cmFsOiBbXVxuXHRcdFx0fTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhVmFsdWVDcml0aWNhbGl0eS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRvVmFsdWVDcml0aWNhbGl0eSA9IGFWYWx1ZUNyaXRpY2FsaXR5W2ldO1xuXHRcdFx0XHRjb25zdCBjcml0aWNhbGl0eSA9IG9WYWx1ZUNyaXRpY2FsaXR5LkNyaXRpY2FsaXR5IGFzIHVua25vd24gYXMgTWV0YU1vZGVsRW51bTxDcml0aWNhbGl0eVR5cGU+O1xuXHRcdFx0XHRpZiAoY3JpdGljYWxpdHk/LiRFbnVtTWVtYmVyLmVuZHNXaXRoKFwiVmVyeVBvc2l0aXZlXCIpKSB7XG5cdFx0XHRcdFx0b0NyaXRpY2FsaXR5LlZlcnlQb3NpdGl2ZS5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJQb3NpdGl2ZVwiKSkge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5Qb3NpdGl2ZS5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJDcml0aWNhbFwiKSkge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5Dcml0aWNhbC5wdXNoKG9WYWx1ZUNyaXRpY2FsaXR5LlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eT8uJEVudW1NZW1iZXIuZW5kc1dpdGgoXCJWZXJ5TmVnYXRpdmVcIikpIHtcblx0XHRcdFx0XHRvQ3JpdGljYWxpdHkuVmVyeU5lZ2F0aXZlLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGNyaXRpY2FsaXR5Py4kRW51bU1lbWJlci5lbmRzV2l0aChcIk5lZ2F0aXZlXCIpKSB7XG5cdFx0XHRcdFx0b0NyaXRpY2FsaXR5Lk5lZ2F0aXZlLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdG9Dcml0aWNhbGl0eS5OZXV0cmFsLnB1c2gob1ZhbHVlQ3JpdGljYWxpdHkuVmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoY29uc3Qgc0tleSBpbiBvQ3JpdGljYWxpdHkpIHtcblx0XHRcdFx0aWYgKG9Dcml0aWNhbGl0eVtzS2V5XT8ubGVuZ3RoID09IDApIHtcblx0XHRcdFx0XHRkZWxldGUgb0NyaXRpY2FsaXR5W3NLZXldO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9Dcml0aWNhbGl0eTtcblx0fSxcblxuXHRmb3JtYXRNZWFzdXJlcyhhbm5vdGF0aW9uQ29udGV4dDogQ29udGV4dCk6IE1lYXN1cmVUeXBlW10ge1xuXHRcdHJldHVybiAoYW5ub3RhdGlvbkNvbnRleHQuZ2V0TW9kZWwoKSBhcyBKU09OTW9kZWwpLmdldERhdGEoKTtcblx0fSxcblxuXHRnZXRVaUNoYXJ0KHByZXNlbnRhdGlvbkNvbnRleHQ6IENvbnRleHQpOiBDb250ZXh0IHtcblx0XHRyZXR1cm4gZ2V0VWlDb250cm9sKHByZXNlbnRhdGlvbkNvbnRleHQsIGBAJHtVSUFubm90YXRpb25UZXJtcy5DaGFydH1gKTtcblx0fSxcblx0Z2V0T3BlcmF0aW9uQXZhaWxhYmxlTWFwKGNoYXJ0OiBDaGFydCwgY29udGV4dENvbnRleHQ6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY2hhcnRDb2xsZWN0aW9uID0gY2hhcnQ/LkFjdGlvbnMgfHwgW107XG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KEFjdGlvbkhlbHBlci5nZXRPcGVyYXRpb25BdmFpbGFibGVNYXAoY2hhcnRDb2xsZWN0aW9uLCBcImNoYXJ0XCIsIGNvbnRleHRDb250ZXh0KSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBKU09OIG9iamVjdCBjb250YWluaW5nIFByZXNlbnRhdGlvbiBWYXJpYW50IHNvcnQgY29uZGl0aW9ucy5cblx0ICogQHBhcmFtIG9Db250ZXh0XG5cdCAqIEBwYXJhbSBvQ29udGV4dC5nZXRQYXRoXG5cdCAqIEBwYXJhbSBvQ29udGV4dC5nZXRNb2RlbFxuXHQgKiBAcGFyYW0gb1ByZXNlbnRhdGlvblZhcmlhbnQgUHJlc2VudGF0aW9uIFZhcmlhbnQgYW5ub3RhdGlvblxuXHQgKiBAcGFyYW0gc1ByZXNlbnRhdGlvblZhcmlhbnRQYXRoXG5cdCAqIEBwYXJhbSBvQXBwbHlTdXBwb3J0ZWRcblx0ICogQHJldHVybnMgSlNPTiBvYmplY3Rcblx0ICovXG5cdGdldFNvcnRDb25kaXRpb25zOiBmdW5jdGlvbiAoXG5cdFx0b0NvbnRleHQ6IENvbnRleHQsXG5cdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQ6IE1ldGFNb2RlbFR5cGU8UHJlc2VudGF0aW9uVmFyaWFudFR5cGU+LFxuXHRcdHNQcmVzZW50YXRpb25WYXJpYW50UGF0aDogc3RyaW5nLFxuXHRcdG9BcHBseVN1cHBvcnRlZDogQ2hhcnRBcHBseVN1cHBvcnRlZFxuXHQpOlxuXHRcdHwge1xuXHRcdFx0XHRzb3J0ZXJzOiB7IG5hbWU6IHN0cmluZzsgZGVzY2VuZGluZzogYm9vbGVhbiB9W107XG5cdFx0ICB9XG5cdFx0fCB1bmRlZmluZWQge1xuXHRcdGlmIChcblx0XHRcdG9QcmVzZW50YXRpb25WYXJpYW50ICYmXG5cdFx0XHRDb21tb25IZWxwZXIuX2lzUHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24oc1ByZXNlbnRhdGlvblZhcmlhbnRQYXRoKSAmJlxuXHRcdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQuU29ydE9yZGVyXG5cdFx0KSB7XG5cdFx0XHRjb25zdCBhU29ydENvbmRpdGlvbnM6IHtcblx0XHRcdFx0c29ydGVyczogeyBuYW1lOiBzdHJpbmc7IGtleTogc3RyaW5nOyBkZXNjZW5kaW5nOiBib29sZWFuIH1bXTtcblx0XHRcdH0gPSB7XG5cdFx0XHRcdHNvcnRlcnM6IFtdXG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgc0VudGl0eVBhdGggPSBvQ29udGV4dC5nZXRQYXRoKCkuc3BsaXQoXCJAXCIpWzBdO1xuXHRcdFx0b1ByZXNlbnRhdGlvblZhcmlhbnQuU29ydE9yZGVyLmZvckVhY2goZnVuY3Rpb24gKG9Db25kaXRpb246IE1ldGFNb2RlbFR5cGU8U29ydE9yZGVyVHlwZT4gPSB7fSk6IHZvaWQge1xuXHRcdFx0XHRsZXQgb1NvcnRQcm9wZXJ0eSA9IFwiXCI7XG5cdFx0XHRcdGlmIChvQ29uZGl0aW9uLkR5bmFtaWNQcm9wZXJ0eSkge1xuXHRcdFx0XHRcdG9Tb3J0UHJvcGVydHkgPVxuXHRcdFx0XHRcdFx0XCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRPYmplY3Qoc0VudGl0eVBhdGggKyBvQ29uZGl0aW9uLkR5bmFtaWNQcm9wZXJ0eS4kQW5ub3RhdGlvblBhdGgpPy5OYW1lO1xuXHRcdFx0XHR9IGVsc2UgaWYgKG9Db25kaXRpb24uUHJvcGVydHkpIHtcblx0XHRcdFx0XHRjb25zdCBhR3JvdXBhYmxlUHJvcGVydGllcyA9IG9BcHBseVN1cHBvcnRlZC5Hcm91cGFibGVQcm9wZXJ0aWVzO1xuXHRcdFx0XHRcdGlmIChhR3JvdXBhYmxlUHJvcGVydGllcyAmJiBhR3JvdXBhYmxlUHJvcGVydGllcy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUdyb3VwYWJsZVByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHRcdChhR3JvdXBhYmxlUHJvcGVydGllc1tpXSBhcyB7ICRQcm9wZXJ0eVBhdGg6IHN0cmluZyB9KS4kUHJvcGVydHlQYXRoID09PSBvQ29uZGl0aW9uLlByb3BlcnR5LiRQcm9wZXJ0eVBhdGhcblx0XHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0b1NvcnRQcm9wZXJ0eSA9IFwiX2ZlX2dyb3VwYWJsZV9cIiArIG9Db25kaXRpb24uUHJvcGVydHkuJFByb3BlcnR5UGF0aDtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZiAoIW9Tb3J0UHJvcGVydHkpIHtcblx0XHRcdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRcdG9Db250ZXh0XG5cdFx0XHRcdFx0XHRcdC5nZXRNb2RlbCgpXG5cdFx0XHRcdFx0XHRcdC5nZXRPYmplY3QoYCR7c0VudGl0eVBhdGggKyBvQ29uZGl0aW9uLlByb3BlcnR5LiRQcm9wZXJ0eVBhdGh9QCR7QWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMuR3JvdXBhYmxlfWApXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfZ3JvdXBhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRvU29ydFByb3BlcnR5ID0gXCJfZmVfYWdncmVnYXRhYmxlX1wiICsgb0NvbmRpdGlvbi5Qcm9wZXJ0eS4kUHJvcGVydHlQYXRoO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob1NvcnRQcm9wZXJ0eSkge1xuXHRcdFx0XHRcdGNvbnN0IG9Tb3J0ZXIgPSB7XG5cdFx0XHRcdFx0XHRuYW1lOiBvU29ydFByb3BlcnR5LFxuXHRcdFx0XHRcdFx0a2V5OiBvU29ydFByb3BlcnR5LFxuXHRcdFx0XHRcdFx0ZGVzY2VuZGluZzogISFvQ29uZGl0aW9uLkRlc2NlbmRpbmdcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGFTb3J0Q29uZGl0aW9ucy5zb3J0ZXJzLnB1c2gob1NvcnRlcik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiUGxlYXNlIGRlZmluZSB0aGUgcmlnaHQgcGF0aCB0byB0aGUgc29ydCBwcm9wZXJ0eVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gYVNvcnRDb25kaXRpb25zO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9LFxuXHRfZ2V0TW9kZWwob0NvbGxlY3Rpb246IHVua25vd24sIG9JbnRlcmZhY2U6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IENvbnRleHQge1xuXHRcdHJldHVybiBvSW50ZXJmYWNlLmNvbnRleHQ7XG5cdH0sXG5cdC8vIFRPRE86IGNvbWJpbmUgdGhpcyBvbmUgd2l0aCB0aGUgb25lIGZyb20gdGhlIHRhYmxlXG5cdGlzRGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uRW5hYmxlZChcblx0XHRiSXNCb3VuZDogYm9vbGVhbixcblx0XHRzQWN0aW9uOiBzdHJpbmcsXG5cdFx0b0NvbGxlY3Rpb246IENvbnRleHQsXG5cdFx0c09wZXJhdGlvbkF2YWlsYWJsZU1hcDogc3RyaW5nLFxuXHRcdHNFbmFibGVTZWxlY3RPbjogc3RyaW5nXG5cdCk6IHN0cmluZyB7XG5cdFx0aWYgKGJJc0JvdW5kICE9PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm4gXCJ0cnVlXCI7XG5cdFx0fVxuXHRcdGNvbnN0IG9Nb2RlbCA9IG9Db2xsZWN0aW9uLmdldE1vZGVsKCk7XG5cdFx0Y29uc3Qgc05hdlBhdGggPSBvQ29sbGVjdGlvbi5nZXRQYXRoKCk7XG5cdFx0Y29uc3Qgc1BhcnRuZXIgPSBvTW9kZWwuZ2V0T2JqZWN0KHNOYXZQYXRoKS4kUGFydG5lcjtcblx0XHRjb25zdCBvT3BlcmF0aW9uQXZhaWxhYmxlTWFwID0gc09wZXJhdGlvbkF2YWlsYWJsZU1hcCAmJiBKU09OLnBhcnNlKHNPcGVyYXRpb25BdmFpbGFibGVNYXApO1xuXHRcdGNvbnN0IGFQYXRoID0gb09wZXJhdGlvbkF2YWlsYWJsZU1hcCAmJiBvT3BlcmF0aW9uQXZhaWxhYmxlTWFwW3NBY3Rpb25dICYmIG9PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl0uc3BsaXQoXCIvXCIpO1xuXHRcdGNvbnN0IHNOdW1iZXJPZlNlbGVjdGVkQ29udGV4dHMgPSBBY3Rpb25IZWxwZXIuZ2V0TnVtYmVyT2ZDb250ZXh0c0V4cHJlc3Npb24oc0VuYWJsZVNlbGVjdE9uKTtcblx0XHRpZiAoYVBhdGggJiYgYVBhdGhbMF0gPT09IHNQYXJ0bmVyKSB7XG5cdFx0XHRjb25zdCBzUGF0aCA9IG9PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl0ucmVwbGFjZShzUGFydG5lciArIFwiL1wiLCBcIlwiKTtcblx0XHRcdHJldHVybiBcIns9ICR7XCIgKyBzTnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzICsgXCIgJiYgJHtcIiArIHNQYXRoICsgXCJ9fVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gXCJ7PSAke1wiICsgc051bWJlck9mU2VsZWN0ZWRDb250ZXh0cyArIFwifVwiO1xuXHRcdH1cblx0fSxcblx0Z2V0SGlkZGVuUGF0aEV4cHJlc3Npb25Gb3JUYWJsZUFjdGlvbnNBbmRJQk4oc0hpZGRlblBhdGg6IHN0cmluZywgb0RldGFpbHM6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IHN0cmluZyB8IHRydWUge1xuXHRcdGNvbnN0IG9Db250ZXh0ID0gb0RldGFpbHMuY29udGV4dCxcblx0XHRcdHNQcm9wZXJ0eVBhdGggPSBvQ29udGV4dC5nZXRQYXRoKCksXG5cdFx0XHRzRW50aXR5U2V0UGF0aCA9IE9EYXRhTW9kZWxBbm5vdGF0aW9uSGVscGVyLmdldE5hdmlnYXRpb25QYXRoKHNQcm9wZXJ0eVBhdGgpO1xuXHRcdGlmIChzSGlkZGVuUGF0aC5pbmRleE9mKFwiL1wiKSA+IDApIHtcblx0XHRcdGNvbnN0IGFTcGxpdEhpZGRlblBhdGggPSBzSGlkZGVuUGF0aC5zcGxpdChcIi9cIik7XG5cdFx0XHRjb25zdCBzTmF2aWdhdGlvblBhdGggPSBhU3BsaXRIaWRkZW5QYXRoWzBdO1xuXHRcdFx0Ly8gc3VwcG9ydHMgdmlzaWJsaXR5IGJhc2VkIG9uIHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJ0bmVyIGFzc29jaWF0aW9uXG5cdFx0XHRpZiAob0NvbnRleHQuZ2V0T2JqZWN0KHNFbnRpdHlTZXRQYXRoICsgXCIvJFBhcnRuZXJcIikgPT09IHNOYXZpZ2F0aW9uUGF0aCkge1xuXHRcdFx0XHRyZXR1cm4gXCJ7PSAhJXtcIiArIGFTcGxpdEhpZGRlblBhdGguc2xpY2UoMSkuam9pbihcIi9cIikgKyBcIn0gfVwiO1xuXHRcdFx0fVxuXHRcdFx0Ly8gYW55IG90aGVyIGFzc29jaWF0aW9uIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlIGJ1dHRvbiB3aWxsIGJlIG1hZGUgdmlzaWJsZVxuXHRcdH1cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBnZXQgcHJlc3MgZXZlbnQgZm9yIERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbi5cblx0ICogQHBhcmFtIGlkIEN1cnJlbnQgY29udHJvbCBJRFxuXHQgKiBAcGFyYW0gYWN0aW9uIERhdGFGaWVsZEZvckFjdGlvbiBtb2RlbFxuXHQgKiBAcGFyYW0gb3BlcmF0aW9uQXZhaWxhYmxlTWFwIFN0cmluZ2lmaWVkIEpTT04gb2JqZWN0XG5cdCAqIEByZXR1cm5zIEEgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgcHJlc3MgcHJvcGVydHkgb2YgdGhlIERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvblxuXHQgKi9cblx0Z2V0UHJlc3NFdmVudEZvckRhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbihcblx0XHRpZDogc3RyaW5nLFxuXHRcdGFjdGlvbjogTWV0YU1vZGVsVHlwZTxEYXRhRmllbGRGb3JBY3Rpb24+ICYgeyBJbnZvY2F0aW9uR3JvdXBpbmc6IE1ldGFNb2RlbEVudW08T3BlcmF0aW9uR3JvdXBpbmdUeXBlPiB9LFxuXHRcdG9wZXJhdGlvbkF2YWlsYWJsZU1hcDogc3RyaW5nXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIEFjdGlvbkhlbHBlci5nZXRQcmVzc0V2ZW50RGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uKFxuXHRcdFx0aWQsXG5cdFx0XHRhY3Rpb24sXG5cdFx0XHR7XG5cdFx0XHRcdGNvbnRleHRzOiBcIiR7aW50ZXJuYWw+c2VsZWN0ZWRDb250ZXh0c31cIlxuXHRcdFx0fSxcblx0XHRcdG9wZXJhdGlvbkF2YWlsYWJsZU1hcFxuXHRcdCk7XG5cdH0sXG5cdC8qKlxuXHQgKiBAcGFyYW0gYWN0aW9uIERhdGFGaWVsZEZvckFjdGlvbiBtb2RlbFxuXHQgKiBAcmV0dXJucyBBIEJvb2xlYW4gdmFsdWUgZGVwZW5kaW5nIG9uIHRoZSBhY3Rpb24gdHlwZVxuXHQgKi9cblx0Z2V0QWN0aW9uVHlwZShhY3Rpb246IERhdGFGaWVsZEZvckFjdGlvbik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQoYWN0aW9uW1wiJFR5cGVcIl0uaW5jbHVkZXMoVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uKSB8fFxuXHRcdFx0XHRhY3Rpb25bXCIkVHlwZVwiXS5pbmNsdWRlcyhVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24pKSAmJlxuXHRcdFx0YWN0aW9uW1wiSW5saW5lXCJdXG5cdFx0KS52YWx1ZU9mKCk7XG5cdH0sXG5cdGdldENvbGxlY3Rpb25OYW1lKGNvbGxlY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY29sbGVjdGlvblNwbGl0ID0gY29sbGVjdGlvbi5zcGxpdChcIi9cIik7XG5cdFx0cmV0dXJuIGNvbGxlY3Rpb25TcGxpdFtjb2xsZWN0aW9uU3BsaXQubGVuZ3RoIC0gMV07XG5cdH1cbn07XG4oQ2hhcnRIZWxwZXIuZ2V0U29ydENvbmRpdGlvbnMgYXMgeyByZXF1aXJlc0lDb250ZXh0PzogYm9vbGVhbiB9KS5yZXF1aXJlc0lDb250ZXh0ID0gdHJ1ZTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRIZWxwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0VBNkJBLFNBQVNBLGdCQUFnQkEsQ0FBQ0MsaUJBQTBCLEVBQVU7SUFDN0QsT0FBT0EsaUJBQWlCLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQywyREFBMkQsRUFBRSxFQUFFLENBQUM7RUFDNUc7RUFFQSxNQUFNQyxhQUFhLEdBQUc7SUFDckIsNkNBQTZDLEVBQUUsUUFBUTtJQUN2RCxvREFBb0QsRUFBRSxnQkFBZ0I7SUFDdEUsaURBQWlELEVBQUUsYUFBYTtJQUNoRSx3REFBd0QsRUFBRSxxQkFBcUI7SUFDL0UsdURBQXVELEVBQUUsb0JBQW9CO0lBQzdFLDJEQUEyRCxFQUFFLHlCQUF5QjtJQUN0RiwwQ0FBMEMsRUFBRSxLQUFLO0lBQ2pELGlEQUFp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
|
|
@@ -8,7 +8,6 @@ sap.ui.define(["sap/fe/core/ActionRuntime", "sap/fe/macros/chart/ChartUtils", "s
|
|
|
8
8
|
/**
|
|
9
9
|
* Static class used by MDC_Chart during runtime
|
|
10
10
|
* @private
|
|
11
|
-
* @experimental This module is only for internal/experimental use!
|
|
12
11
|
*/
|
|
13
12
|
const ChartRuntime = {
|
|
14
13
|
/**
|
|
@@ -63,4 +62,4 @@ sap.ui.define(["sap/fe/core/ActionRuntime", "sap/fe/macros/chart/ChartUtils", "s
|
|
|
63
62
|
};
|
|
64
63
|
return ChartRuntime;
|
|
65
64
|
}, false);
|
|
66
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGFydFJ1bnRpbWUiLCJmblVwZGF0ZUNoYXJ0Iiwib0V2ZW50Iiwib0lubmVyQ2hhcnQiLCJnZXRTb3VyY2UiLCJvTWRjQ2hhcnQiLCJnZXRQYXJlbnQiLCJzQWN0aW9uc011bHRpc2VsZWN0RGlzYWJsZWQiLCJvQWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlTWFwIiwiYUFjdGlvbnNNdWx0aXNlbGVjdERpc2FibGVkIiwiZ2V0Q3VzdG9tRGF0YSIsImZvckVhY2giLCJvQ3VzdG9tRGF0YSIsImdldEtleSIsIkRlbGVnYXRlVXRpbCIsImN1c3RvbURhdGEiLCJnZXRWYWx1ZSIsInNwbGl0Iiwib0ludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJhU2VsZWN0ZWRDb250ZXh0cyIsIm9Nb2RlbE9iamVjdCIsImFTZWxlY3RlZERhdGFQb2ludHMiLCJDaGFydFV0aWxzIiwiZ2V0Q2hhcnRTZWxlY3RlZERhdGEiLCJpIiwibGVuZ3RoIiwicHVzaCIsImNvbnRleHQiLCJzZXRQcm9wZXJ0eSIsImdldE1vZGVsIiwiZ2V0UGF0aCIsImdldFNlbGVjdGVkRGF0YVBvaW50cyIsImNvdW50IiwiaiIsIm9TZWxlY3RlZENvbnRleHQiLCJvQ29udGV4dERhdGEiLCJnZXRPYmplY3QiLCJrZXkiLCJpbmRleE9mIiwic0FjdGlvblBhdGgiLCJzdWJzdHJpbmciLCJBY3Rpb25SdW50aW1lIiwic2V0QWN0aW9uRW5hYmxlbWVudCIsInNBY3Rpb24iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNoYXJ0UnVudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBDaGFydCBmcm9tIFwic2FwL2NoYXJ0L0NoYXJ0XCI7XG5pbXBvcnQgQWN0aW9uUnVudGltZSBmcm9tIFwic2FwL2ZlL2NvcmUvQWN0aW9uUnVudGltZVwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgQ2hhcnRVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jaGFydC9DaGFydFV0aWxzXCI7XG5pbXBvcnQgRGVsZWdhdGVVdGlsIGZyb20gXCJzYXAvZmUvbWFjcm9zL0RlbGVnYXRlVXRpbFwiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvbWRjL0NvbnRyb2xcIjtcblxudHlwZSBJbm5lckNoYXJ0ID0gQ29udHJvbCAmIENoYXJ0ICYgeyBnZXRQYXJlbnQ6IEZ1bmN0aW9uOyBnZXRDdXN0b21EYXRhOiBGdW5jdGlvbiB9O1xudHlwZSBNRENDaGFydCA9IENvbnRyb2w7XG50eXBlIE9iamVjdFdpdGhDb3VudCA9IG9iamVjdCAmIHsgY291bnQ6IG51bWJlciB9O1xuaW50ZXJmYWNlIEJvb2xlYW5NYXAge1xuXHRba2V5OiBzdHJpbmddOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFN0YXRpYyBjbGFzcyB1c2VkIGJ5IE1EQ19DaGFydCBkdXJpbmcgcnVudGltZVxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgQ2hhcnRSdW50aW1lID0ge1xuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgY2hhcnQgYWZ0ZXIgc2VsZWN0aW9uIG9yIGRlc2VsZWN0aW9uIG9mIGRhdGEgcG9pbnRzLlxuXHQgKiBAcGFyYW0gb0V2ZW50IENoYXJ0IGV2ZW50XG5cdCAqL1xuXHRmblVwZGF0ZUNoYXJ0OiBmdW5jdGlvbiAob0V2ZW50OiBVSTVFdmVudDx7fSwgSW5uZXJDaGFydD4pOiB2b2lkIHtcblx0XHRjb25zdCBvSW5uZXJDaGFydCA9IG9FdmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBvTWRjQ2hhcnQgPSBvSW5uZXJDaGFydC5nZXRQYXJlbnQoKSBhcyBNRENDaGFydDtcblx0XHRsZXQgc0FjdGlvbnNNdWx0aXNlbGVjdERpc2FibGVkLFxuXHRcdFx0b0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9LFxuXHRcdFx0YUFjdGlvbnNNdWx0aXNlbGVjdERpc2FibGVkOiBzdHJpbmdbXSA9IFtdO1xuXHRcdC8vIGNoYW5naW5nIGRyaWxsIHN0YWNrIGNoYW5nZXMgb3JkZXIgb2YgY3VzdG9tIGRhdGEsIGxvb3BpbmcgdGhyb3VnaCBhbGxcblx0XHRvTWRjQ2hhcnQuZ2V0Q3VzdG9tRGF0YSgpLmZvckVhY2goZnVuY3Rpb24gKG9DdXN0b21EYXRhKSB7XG5cdFx0XHRpZiAob0N1c3RvbURhdGEuZ2V0S2V5KCkgPT09IFwib3BlcmF0aW9uQXZhaWxhYmxlTWFwXCIpIHtcblx0XHRcdFx0b0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcCA9IERlbGVnYXRlVXRpbC5nZXRDdXN0b21EYXRhPHsgY3VzdG9tRGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9Pihcblx0XHRcdFx0XHRvTWRjQ2hhcnQsXG5cdFx0XHRcdFx0XCJvcGVyYXRpb25BdmFpbGFibGVNYXBcIlxuXHRcdFx0XHQpIS5jdXN0b21EYXRhO1xuXHRcdFx0fSBlbHNlIGlmIChvQ3VzdG9tRGF0YS5nZXRLZXkoKSA9PT0gXCJtdWx0aVNlbGVjdERpc2FibGVkQWN0aW9uc1wiKSB7XG5cdFx0XHRcdHNBY3Rpb25zTXVsdGlzZWxlY3REaXNhYmxlZCA9IG9DdXN0b21EYXRhLmdldFZhbHVlKCk7XG5cdFx0XHRcdGFBY3Rpb25zTXVsdGlzZWxlY3REaXNhYmxlZCA9IHNBY3Rpb25zTXVsdGlzZWxlY3REaXNhYmxlZCA/IHNBY3Rpb25zTXVsdGlzZWxlY3REaXNhYmxlZC5zcGxpdChcIixcIikgOiBbXTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvTWRjQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblxuXHRcdGNvbnN0IGFTZWxlY3RlZENvbnRleHRzID0gW107XG5cdFx0bGV0IG9Nb2RlbE9iamVjdDogQm9vbGVhbk1hcCB8IHVuZGVmaW5lZDtcblx0XHRjb25zdCBhU2VsZWN0ZWREYXRhUG9pbnRzID0gQ2hhcnRVdGlscy5nZXRDaGFydFNlbGVjdGVkRGF0YShvSW5uZXJDaGFydCk7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhU2VsZWN0ZWREYXRhUG9pbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRhU2VsZWN0ZWRDb250ZXh0cy5wdXNoKGFTZWxlY3RlZERhdGFQb2ludHNbaV0uY29udGV4dCk7XG5cdFx0fVxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcInNlbGVjdGVkQ29udGV4dHNcIiwgYVNlbGVjdGVkQ29udGV4dHMpO1xuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dFxuXHRcdFx0LmdldE1vZGVsKClcblx0XHRcdC5zZXRQcm9wZXJ0eShcblx0XHRcdFx0YCR7b0ludGVybmFsTW9kZWxDb250ZXh0LmdldFBhdGgoKX0vbnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzYCxcblx0XHRcdFx0KG9Jbm5lckNoYXJ0LmdldFNlbGVjdGVkRGF0YVBvaW50cygpIGFzIE9iamVjdFdpdGhDb3VudCkuY291bnRcblx0XHRcdCk7XG5cdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBhU2VsZWN0ZWRDb250ZXh0cy5sZW5ndGg7IGorKykge1xuXHRcdFx0Y29uc3Qgb1NlbGVjdGVkQ29udGV4dCA9IGFTZWxlY3RlZENvbnRleHRzW2pdO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3QoKTtcblx0XHRcdGZvciAoY29uc3Qga2V5IGluIG9Db250ZXh0RGF0YSkge1xuXHRcdFx0XHRpZiAoa2V5LmluZGV4T2YoXCIjXCIpID09PSAwKSB7XG5cdFx0XHRcdFx0bGV0IHNBY3Rpb25QYXRoID0ga2V5O1xuXHRcdFx0XHRcdHNBY3Rpb25QYXRoID0gc0FjdGlvblBhdGguc3Vic3RyaW5nKDEsIHNBY3Rpb25QYXRoLmxlbmd0aCk7XG5cdFx0XHRcdFx0b01vZGVsT2JqZWN0ID0gb0ludGVybmFsTW9kZWxDb250ZXh0LmdldE9iamVjdCgpIGFzIEJvb2xlYW5NYXA7XG5cdFx0XHRcdFx0b01vZGVsT2JqZWN0W3NBY3Rpb25QYXRoXSA9IHRydWU7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiXCIsIG9Nb2RlbE9iamVjdCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG9Nb2RlbE9iamVjdCA9IG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRPYmplY3QoKSBhcyBCb29sZWFuTWFwO1xuXHRcdH1cblxuXHRcdEFjdGlvblJ1bnRpbWUuc2V0QWN0aW9uRW5hYmxlbWVudChvSW50ZXJuYWxNb2RlbENvbnRleHQsIG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAsIGFTZWxlY3RlZENvbnRleHRzLCBcImNoYXJ0XCIpO1xuXG5cdFx0aWYgKGFTZWxlY3RlZENvbnRleHRzLmxlbmd0aCA+IDEpIHtcblx0XHRcdGFBY3Rpb25zTXVsdGlzZWxlY3REaXNhYmxlZC5mb3JFYWNoKGZ1bmN0aW9uIChzQWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNBY3Rpb24sIGZhbHNlKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRSdW50aW1lO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0VBZUE7QUFDQTtBQUNBO0FBQ0E7RUFDQSxNQUFNQSxZQUFZLEdBQUc7SUFDcEI7QUFDRDtBQUNBO0FBQ0E7SUFDQ0MsYUFBYSxFQUFFLFNBQUFBLENBQVVDLE1BQWdDLEVBQVE7TUFDaEUsTUFBTUMsV0FBVyxHQUFHRCxNQUFNLENBQUNFLFNBQVMsQ0FBQyxDQUFDO01BQ3RDLE1BQU1DLFNBQVMsR0FBR0YsV0FBVyxDQUFDRyxTQUFTLENBQUMs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
|