@c8y/ngx-components 1021.54.6 → 1021.54.11
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/context-dashboard/context-dashboard.component.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.model.d.ts +1 -0
- package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.service.d.ts +1 -0
- package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
- package/datapoint-selector/datapoint-library.service.d.ts +2 -2
- package/datapoint-selector/datapoint-library.service.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.d.ts +5 -0
- package/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.d.ts +13 -2
- package/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.d.ts +2 -0
- package/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selector.component.d.ts +11 -1
- package/datapoint-selector/datapoint-selector.component.d.ts.map +1 -1
- package/esm2022/context-dashboard/context-dashboard.component.mjs +15 -33
- package/esm2022/context-dashboard/context-dashboard.model.mjs +1 -1
- package/esm2022/context-dashboard/context-dashboard.service.mjs +31 -21
- package/esm2022/datapoint-selector/datapoint-library.service.mjs +11 -6
- package/esm2022/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.mjs +5 -3
- package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +12 -6
- package/esm2022/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.mjs +5 -3
- package/esm2022/datapoint-selector/datapoint-selector.component.mjs +22 -5
- package/esm2022/upgrade/ng1/downgraded.services.mjs +3 -1
- package/esm2022/upgrade/ng1/index.mjs +4 -3
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +44 -52
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +49 -19
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +4 -2
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/locales/de.po +128 -122
- package/locales/es.po +6 -0
- package/locales/fr.po +149 -141
- package/locales/ja_JP.po +296 -215
- package/locales/ko.po +6 -0
- package/locales/locales.pot +18 -3
- package/locales/nl.po +6 -0
- package/locales/pl.po +6 -0
- package/locales/pt_BR.po +6 -0
- package/locales/zh_CN.po +6 -0
- package/locales/zh_TW.po +6 -0
- package/package.json +1 -1
- package/upgrade/ng1/downgraded.services.d.ts +1 -0
- package/upgrade/ng1/downgraded.services.d.ts.map +1 -1
- package/upgrade/ng1/index.d.ts.map +1 -1
|
@@ -79,7 +79,7 @@ export class DatapointLibraryService {
|
|
|
79
79
|
}
|
|
80
80
|
return datapoints;
|
|
81
81
|
}
|
|
82
|
-
async getDatapointsOfAsset(parentReference, ignoreDatapointTemplates) {
|
|
82
|
+
async getDatapointsOfAsset(parentReference, ignoreDatapointTemplates, datapointTemplatesOnly = false) {
|
|
83
83
|
const [kpiResponse, details] = await Promise.all([
|
|
84
84
|
(ignoreDatapointTemplates
|
|
85
85
|
? Promise.resolve(null)
|
|
@@ -88,7 +88,7 @@ export class DatapointLibraryService {
|
|
|
88
88
|
]);
|
|
89
89
|
const kpis = kpiResponse && kpiResponse.data ? kpiResponse.data : [];
|
|
90
90
|
const sortedDetails = sortBy(details, ['fragment', 'series']);
|
|
91
|
-
return await this.combineFragmentSeriesTuplesWithDetails(sortedDetails, parentReference, kpis);
|
|
91
|
+
return await this.combineFragmentSeriesTuplesWithDetails(sortedDetails, parentReference, kpis, datapointTemplatesOnly);
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
94
|
* Requests the last measurement with the given fragment and series to extract it's unit.
|
|
@@ -122,11 +122,15 @@ export class DatapointLibraryService {
|
|
|
122
122
|
}
|
|
123
123
|
return '';
|
|
124
124
|
}
|
|
125
|
-
async combineFragmentSeriesTuplesWithDetails(tuples, target, kpis) {
|
|
126
|
-
const datapoints = tuples
|
|
125
|
+
async combineFragmentSeriesTuplesWithDetails(tuples, target, kpis, datapointTemplatesOnly = false) {
|
|
126
|
+
const datapoints = tuples
|
|
127
|
+
.map(tuple => {
|
|
127
128
|
const foundDatapointLibraryEntry = kpis.find(kpi => kpi[DATAPOINT_LIBRARY_FRAGMENT] &&
|
|
128
129
|
kpi[DATAPOINT_LIBRARY_FRAGMENT].fragment === tuple.fragment &&
|
|
129
130
|
kpi[DATAPOINT_LIBRARY_FRAGMENT].series === tuple.series);
|
|
131
|
+
if (!foundDatapointLibraryEntry && datapointTemplatesOnly) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
130
134
|
const datapoint = this.mapDatapointLibraryEntry(foundDatapointLibraryEntry) || tuple;
|
|
131
135
|
if (!datapoint.label) {
|
|
132
136
|
datapoint.label = `${datapoint.fragment} → ${datapoint.series}`;
|
|
@@ -136,7 +140,8 @@ export class DatapointLibraryService {
|
|
|
136
140
|
}
|
|
137
141
|
datapoint.__target = target;
|
|
138
142
|
return datapoint;
|
|
139
|
-
})
|
|
143
|
+
})
|
|
144
|
+
.filter(Boolean);
|
|
140
145
|
await this.assignColorToDatapoints(datapoints);
|
|
141
146
|
return datapoints;
|
|
142
147
|
}
|
|
@@ -211,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
211
216
|
type: Injectable,
|
|
212
217
|
args: [{ providedIn: 'root' }]
|
|
213
218
|
}], ctorParameters: () => [{ type: i1.InventoryService }, { type: i2.AppStateService }, { type: i1.MeasurementService }, { type: i2.ColorService }] });
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LWxpYnJhcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtbGlicmFyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUdMLGdCQUFnQixFQUVoQixrQkFBa0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsMEJBQTBCLEVBRzNCLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFHckMsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUNVLFNBQTJCLEVBQzNCLFFBQXlCLEVBQ3pCLFlBQWdDLEVBQ2hDLEtBQW1CO1FBSG5CLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBRTNCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuRSxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsbUNBQW1DLENBQUMsZUFBZSxHQUFHLEtBQUs7UUFDL0QsSUFBSSxl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O2FBQ3hCLENBQUMsQ0FBQztZQUNILE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxzRUFBc0U7WUFDdEUsMERBQTBEO1lBQzFELGdFQUFnRTtZQUNoRSxPQUFPLENBQUMsSUFBSSxDQUNWLHNFQUFzRSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUNyRyxDQUFDO1lBQ0YsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQzs4R0FyUFUsdUJBQXVCO2tIQUF2Qix1QkFBdUIsY0FEVixNQUFNOzsyRkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIElJZGVudGlmaWVkLFxuICBJTWFuYWdlZE9iamVjdCxcbiAgSW52ZW50b3J5U2VydmljZSxcbiAgSVJlc3VsdExpc3QsXG4gIE1lYXN1cmVtZW50U2VydmljZVxufSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UsIENvbG9yU2VydmljZSwgTUFYX1BBR0VfU0laRSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgZ2V0LCBzb3J0QnksIHVuaXEgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlQsXG4gIEtQSURldGFpbHMsXG4gIE1hbmFnZWRPYmplY3RLUElcbn0gZnJvbSAnLi9kYXRhcG9pbnQtc2VsZWN0aW9uLm1vZGVsJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEYXRhcG9pbnRMaWJyYXJ5U2VydmljZSB7XG4gIHByb3RlY3RlZCBjYWNoZTogUHJvbWlzZTxNYW5hZ2VkT2JqZWN0S1BJW10+O1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGFwcFN0YXRlOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZWFzdXJlbWVudHM6IE1lYXN1cmVtZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNvbG9yOiBDb2xvclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5hcHBTdGF0ZS5jdXJyZW50VXNlci5waXBlKGZpbHRlcih1c2VyID0+ICF1c2VyKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2FjaGUgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRBbGxEYXRhcG9pbnRMaWJyYXJ5RW50cmllc0NhY2hlZChmb3JjZUNhY2hlUmVuZXcgPSBmYWxzZSk6IFByb21pc2U8TWFuYWdlZE9iamVjdEtQSVtdPiB7XG4gICAgaWYgKGZvcmNlQ2FjaGVSZW5ldykge1xuICAgICAgdGhpcy5jYWNoZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICB0aGlzLmNhY2hlID0gdGhpcy5nZXRBbGxEYXRhcG9pbnRMaWJyYXJ5RW50cmllcygpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYWNoZTtcbiAgfVxuXG4gIGFzeW5jIGdldEZpcnN0RGF0YXBvaW50TGlicmFyeVBhZ2UoKTogUHJvbWlzZTxJUmVzdWx0TGlzdDxNYW5hZ2VkT2JqZWN0S1BJPj4ge1xuICAgIGNvbnN0IGZpbHRlck9iaiA9IHtcbiAgICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgICAgcGFnZVNpemU6IDUwLFxuICAgICAgZnJhZ21lbnRUeXBlOiBEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVCxcbiAgICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlXG4gICAgfTtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaW52ZW50b3J5Lmxpc3QoZmlsdGVyT2JqKSkgYXMgSVJlc3VsdExpc3Q8TWFuYWdlZE9iamVjdEtQST47XG4gIH1cblxuICBhc3luYyBnZXRBbGxEYXRhcG9pbnRMaWJyYXJ5SXRlbXNDYWNoZWQoKTogUHJvbWlzZTxLUElEZXRhaWxzW10+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmdldEFsbERhdGFwb2ludExpYnJhcnlFbnRyaWVzKCk7XG4gICAgfVxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY2FjaGU7XG4gICAgcmV0dXJuIHJlcy5tYXAodG1wID0+IHRtcFtEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRGF0YXBvaW50cyhcbiAgICBkYXRhcG9pbnRzOiBLUElEZXRhaWxzW10sXG4gICAgc2tpcFVwZGF0aW5nVGFyZ2V0ID0gZmFsc2VcbiAgKTogUHJvbWlzZTxLUElEZXRhaWxzW10+IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YXBvaW50cykpIHtcbiAgICAgIHJldHVybiBkYXRhcG9pbnRzO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50VGFyZ2V0c1Byb21pc2U6IFByb21pc2U8SU1hbmFnZWRPYmplY3RbXT4gPSAhc2tpcFVwZGF0aW5nVGFyZ2V0XG4gICAgICA/IHRoaXMuZ2V0Q3VycmVudFZlcnNpb25PZlRhcmdldHNGcm9tRGF0YXBvaW50cyhkYXRhcG9pbnRzKVxuICAgICAgOiBQcm9taXNlLnJlc29sdmUoW10pO1xuICAgIGNvbnN0IFtjdXJyZW50VGVtcGxhdGVzLCBjdXJyZW50VGFyZ2V0c10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICB0aGlzLmdldEN1cnJlbnRUZW1wbGF0ZXNGcm9tRGF0YXBvaW50cyhkYXRhcG9pbnRzKSxcbiAgICAgIGN1cnJlbnRUYXJnZXRzUHJvbWlzZVxuICAgIF0pO1xuICAgIGNvbnN0IGN1cnJlbnRUZW1wbGF0ZVZlcnNpb25zID0gY3VycmVudFRlbXBsYXRlc1xuICAgICAgLm1hcCh0bXAgPT4gdGhpcy5tYXBEYXRhcG9pbnRMaWJyYXJ5RW50cnkodG1wIGFzIE1hbmFnZWRPYmplY3RLUEkpKVxuICAgICAgLmZpbHRlcih0bXAgPT4gISF0bXApO1xuICAgIGZvciAoY29uc3QgZGF0YXBvaW50IG9mIGRhdGFwb2ludHMpIHtcbiAgICAgIGNvbnN0IHsgZnJhZ21lbnQsIHNlcmllcywgX19hY3RpdmUsIF9fdGFyZ2V0LCBjb2xvciwgbGFiZWwsIF9fdGVtcGxhdGUgfSA9IGRhdGFwb2ludDtcbiAgICAgIGNvbnN0IGZvdW5kQ3VycmVudFRlbXBsYXRlVmVyc2lvbiA9IGN1cnJlbnRUZW1wbGF0ZVZlcnNpb25zLmZpbmQoXG4gICAgICAgIHRtcCA9PiB0bXAuX190ZW1wbGF0ZSA9PT0gZGF0YXBvaW50Ll9fdGVtcGxhdGVcbiAgICAgICk7XG4gICAgICBpZiAoZm91bmRDdXJyZW50VGVtcGxhdGVWZXJzaW9uKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YXBvaW50LCBmb3VuZEN1cnJlbnRUZW1wbGF0ZVZlcnNpb24pO1xuICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFwb2ludCwge1xuICAgICAgICAgIGZyYWdtZW50LFxuICAgICAgICAgIHNlcmllcyxcbiAgICAgICAgICBfX2FjdGl2ZSxcbiAgICAgICAgICBfX3RhcmdldCxcbiAgICAgICAgICBjb2xvcixcbiAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICBfX3RlbXBsYXRlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3VuZEN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0cy5maW5kKHRhcmdldCA9PiB0YXJnZXQuaWQgPT09IF9fdGFyZ2V0Py5pZCk7XG4gICAgICBpZiAoZm91bmRDdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IHsgaWQsIG5hbWUgfSA9IGZvdW5kQ3VycmVudFRhcmdldDtcbiAgICAgICAgZGF0YXBvaW50Ll9fdGFyZ2V0ID0geyBpZCwgbmFtZSB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YXBvaW50cztcbiAgfVxuXG4gIGFzeW5jIGdldERhdGFwb2ludHNPZkFzc2V0KFxuICAgIHBhcmVudFJlZmVyZW5jZTogSUlkZW50aWZpZWQsXG4gICAgaWdub3JlRGF0YXBvaW50VGVtcGxhdGVzPzogYm9vbGVhblxuICApOiBQcm9taXNlPEtQSURldGFpbHNbXT4ge1xuICAgIGNvbnN0IFtrcGlSZXNwb25zZSwgZGV0YWlsc10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAoaWdub3JlRGF0YXBvaW50VGVtcGxhdGVzXG4gICAgICAgID8gUHJvbWlzZS5yZXNvbHZlKG51bGwpXG4gICAgICAgIDogdGhpcy5pbnZlbnRvcnkuYXNzZXRLUElzTGlzdChwYXJlbnRSZWZlcmVuY2UsIHsgcGFnZVNpemU6IE1BWF9QQUdFX1NJWkUgfSkpIGFzIFByb21pc2U8XG4gICAgICAgIElSZXN1bHRMaXN0PE1hbmFnZWRPYmplY3RLUEk+XG4gICAgICA+LFxuICAgICAgdGhpcy5pbnZlbnRvcnkuZ2V0TWVhc3VyZW1lbnRzQW5kU2VyaWVzKHBhcmVudFJlZmVyZW5jZSlcbiAgICBdKTtcbiAgICBjb25zdCBrcGlzID0ga3BpUmVzcG9uc2UgJiYga3BpUmVzcG9uc2UuZGF0YSA/IGtwaVJlc3BvbnNlLmRhdGEgOiBbXTtcbiAgICBjb25zdCBzb3J0ZWREZXRhaWxzID0gc29ydEJ5KGRldGFpbHMsIFsnZnJhZ21lbnQnLCAnc2VyaWVzJ10pO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29tYmluZUZyYWdtZW50U2VyaWVzVHVwbGVzV2l0aERldGFpbHMoc29ydGVkRGV0YWlscywgcGFyZW50UmVmZXJlbmNlLCBrcGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXF1ZXN0cyB0aGUgbGFzdCBtZWFzdXJlbWVudCB3aXRoIHRoZSBnaXZlbiBmcmFnbWVudCBhbmQgc2VyaWVzIHRvIGV4dHJhY3QgaXQncyB1bml0LlxuICAgKiBJZiB0aGUgc291cmNlIGF0dHJpYnV0ZSBpcyBwcm92aWRlZCwgaXQgd2lsbCBjaGVjayB0aGUgbGFzdCBtZWFzdXJlbWVudCBmb3IgdGhpcyBzcGVjaWZpYyBzb3VyY2UuXG4gICAqIEByZXR1cm5zIGZvdW5kIHVuaXQgb3IgYW4gZW1wdHkgc3RyaW5nIGluc3RlYWRcbiAgICovXG4gIGFzeW5jIGd1ZXNzVW5pdE9mRGF0YXBvaW50KFxuICAgIGZyYWdtZW50OiBzdHJpbmcsXG4gICAgc2VyaWVzOiBzdHJpbmcsXG4gICAgc291cmNlPzogSUlkZW50aWZpZWRcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBtZWFzdXJlbWVudGZpbHRlcjogYW55ID0ge1xuICAgICAgdmFsdWVGcmFnbWVudFNlcmllczogc2VyaWVzLFxuICAgICAgdmFsdWVGcmFnbWVudFR5cGU6IGZyYWdtZW50LFxuICAgICAgcGFnZVNpemU6IDEsXG4gICAgICByZXZlcnQ6IHRydWUsXG4gICAgICBkYXRlRnJvbTogJzE5NzAtMDEtMDEnXG4gICAgfTtcbiAgICBpZiAoc291cmNlPy5pZCkge1xuICAgICAgbWVhc3VyZW1lbnRmaWx0ZXIuc291cmNlID0gc291cmNlPy5pZDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YTogbGFzdE1lYXN1cmVtZW50cyB9ID0gYXdhaXQgdGhpcy5tZWFzdXJlbWVudHMubGlzdChtZWFzdXJlbWVudGZpbHRlcik7XG4gICAgICBjb25zdCBtZWFzdXJlbWVudCA9IGxhc3RNZWFzdXJlbWVudHNbMF07XG4gICAgICBpZiAobWVhc3VyZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcGF0aFRvVW5pdCA9IGAke2ZyYWdtZW50fS4ke3Nlcmllc30udW5pdGA7XG4gICAgICAgIGNvbnN0IHVuaXQgPSBnZXQobWVhc3VyZW1lbnQsIHBhdGhUb1VuaXQpO1xuICAgICAgICBpZiAodW5pdD8ubGVuZ3RoICYmIHR5cGVvZiB1bml0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiB1bml0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBub3RoaW5nIHRvIGRvXG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjb21iaW5lRnJhZ21lbnRTZXJpZXNUdXBsZXNXaXRoRGV0YWlscyhcbiAgICB0dXBsZXM6IEFycmF5PHsgZnJhZ21lbnQ6IHN0cmluZzsgc2VyaWVzOiBzdHJpbmcgfT4sXG4gICAgdGFyZ2V0OiBJSWRlbnRpZmllZCxcbiAgICBrcGlzOiBNYW5hZ2VkT2JqZWN0S1BJW11cbiAgKSB7XG4gICAgY29uc3QgZGF0YXBvaW50cyA9IHR1cGxlcy5tYXAodHVwbGUgPT4ge1xuICAgICAgY29uc3QgZm91bmREYXRhcG9pbnRMaWJyYXJ5RW50cnkgPSBrcGlzLmZpbmQoXG4gICAgICAgIGtwaSA9PlxuICAgICAgICAgIGtwaVtEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF0gJiZcbiAgICAgICAgICBrcGlbREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdLmZyYWdtZW50ID09PSB0dXBsZS5mcmFnbWVudCAmJlxuICAgICAgICAgIGtwaVtEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF0uc2VyaWVzID09PSB0dXBsZS5zZXJpZXNcbiAgICAgICk7XG4gICAgICBjb25zdCBkYXRhcG9pbnQ6IEtQSURldGFpbHMgPVxuICAgICAgICB0aGlzLm1hcERhdGFwb2ludExpYnJhcnlFbnRyeShmb3VuZERhdGFwb2ludExpYnJhcnlFbnRyeSkgfHwgdHVwbGU7XG4gICAgICBpZiAoIWRhdGFwb2ludC5sYWJlbCkge1xuICAgICAgICBkYXRhcG9pbnQubGFiZWwgPSBgJHtkYXRhcG9pbnQuZnJhZ21lbnR9IOKGkiAke2RhdGFwb2ludC5zZXJpZXN9YDtcbiAgICAgIH1cbiAgICAgIGlmICghZGF0YXBvaW50LnVuaXQ/Lmxlbmd0aCkge1xuICAgICAgICBkYXRhcG9pbnQudW5pdCA9ICcnO1xuICAgICAgfVxuICAgICAgZGF0YXBvaW50Ll9fdGFyZ2V0ID0gdGFyZ2V0O1xuICAgICAgcmV0dXJuIGRhdGFwb2ludDtcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmFzc2lnbkNvbG9yVG9EYXRhcG9pbnRzKGRhdGFwb2ludHMpO1xuICAgIHJldHVybiBkYXRhcG9pbnRzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGFzc2lnbkNvbG9yVG9EYXRhcG9pbnRzKGRhdGFwb2ludHM6IEtQSURldGFpbHNbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGFwb2ludHNXaXRob3V0Q29sb3IgPSBkYXRhcG9pbnRzLmZpbHRlcihkYXRhcG9pbnQgPT4gIWRhdGFwb2ludC5jb2xvcik7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBkYXRhcG9pbnRzV2l0aG91dENvbG9yLm1hcChkYXRhcG9pbnQgPT5cbiAgICAgICAgdGhpcy5jb2xvclxuICAgICAgICAgIC5nZW5lcmF0ZUNvbG9yRm9yRGF0YXBvaW50KGRhdGFwb2ludC5mcmFnbWVudCwgZGF0YXBvaW50LnNlcmllcylcbiAgICAgICAgICAudGhlbihjb2xvciA9PiAoZGF0YXBvaW50LmNvbG9yID0gY29sb3IpKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0QWxsRGF0YXBvaW50TGlicmFyeUVudHJpZXMoKTogUHJvbWlzZTxNYW5hZ2VkT2JqZWN0S1BJW10+IHtcbiAgICBjb25zdCBlbnRyaWVzID0gbmV3IEFycmF5PE1hbmFnZWRPYmplY3RLUEk+KCk7XG4gICAgY29uc3QgZmlsdGVyT2JqID0ge1xuICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICBwYWdlU2l6ZTogTUFYX1BBR0VfU0laRSxcbiAgICAgIGZyYWdtZW50VHlwZTogREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRcbiAgICB9O1xuICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLmludmVudG9yeS5saXN0KGZpbHRlck9iaik7XG4gICAgd2hpbGUgKHJlcy5kYXRhLmxlbmd0aCkge1xuICAgICAgZW50cmllcy5wdXNoKC4uLihyZXMuZGF0YSBhcyBNYW5hZ2VkT2JqZWN0S1BJW10pKTtcbiAgICAgIGlmIChyZXMuZGF0YS5sZW5ndGggPCByZXMucGFnaW5nLnBhZ2VTaXplKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKCFyZXMucGFnaW5nLm5leHRQYWdlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZXMgPSBhd2FpdCByZXMucGFnaW5nLm5leHQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudHJpZXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFwRGF0YXBvaW50TGlicmFyeUVudHJ5KGVudHJ5OiBNYW5hZ2VkT2JqZWN0S1BJKTogS1BJRGV0YWlscyB7XG4gICAgaWYgKCFlbnRyeSB8fCAhZW50cnlbREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhcG9pbnQgPSBlbnRyeVtEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF07XG4gICAgZGF0YXBvaW50Ll9fdGVtcGxhdGUgPSBlbnRyeS5pZDtcbiAgICByZXR1cm4gZGF0YXBvaW50O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldEN1cnJlbnRUZW1wbGF0ZXNGcm9tRGF0YXBvaW50cyhcbiAgICBkYXRhcG9pbnRzOiBLUElEZXRhaWxzW11cbiAgKTogUHJvbWlzZTxJTWFuYWdlZE9iamVjdFtdPiB7XG4gICAgY29uc3QgZGF0YXBvaW50c1dpdGhUZW1wbGF0ZUlkID0gZGF0YXBvaW50cy5maWx0ZXIoZHAgPT4gISFkcC5fX3RlbXBsYXRlKTtcbiAgICBjb25zdCB1c2VkVGVtcGxhdGVJZHMgPSBkYXRhcG9pbnRzV2l0aFRlbXBsYXRlSWQubWFwKGRwID0+IGRwLl9fdGVtcGxhdGUpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldE1Pc0J5SWRzKHVzZWRUZW1wbGF0ZUlkcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0Q3VycmVudFZlcnNpb25PZlRhcmdldHNGcm9tRGF0YXBvaW50cyhcbiAgICBkYXRhcG9pbnRzOiBLUElEZXRhaWxzW11cbiAgKTogUHJvbWlzZTxJTWFuYWdlZE9iamVjdFtdPiB7XG4gICAgY29uc3QgZGF0YXBvaW50c1dpdGhUYXJnZXQgPSBkYXRhcG9pbnRzLmZpbHRlcihkcCA9PiAhIWRwLl9fdGFyZ2V0Py5pZCk7XG4gICAgY29uc3QgdXNlZFRhcmdldElkcyA9IGRhdGFwb2ludHNXaXRoVGFyZ2V0Lm1hcChkcCA9PiBkcC5fX3RhcmdldC5pZCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0TU9zQnlJZHModXNlZFRhcmdldElkcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0TU9zQnlJZHMoaWRzOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+KTogUHJvbWlzZTxJTWFuYWdlZE9iamVjdFtdPiB7XG4gICAgY29uc3QgdW5pcU1hbmFnZWRPYmplY3RJZHMgPSB1bmlxKGlkcyk7XG4gICAgaWYgKCF1bmlxTWFuYWdlZE9iamVjdElkcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YTogbWFuYWdlZE9iamVjdHMgfSA9IGF3YWl0IHRoaXMuaW52ZW50b3J5Lmxpc3Qoe1xuICAgICAgICBpZHM6IHVuaXFNYW5hZ2VkT2JqZWN0SWRzLmpvaW4oKSxcbiAgICAgICAgcGFnZVNpemU6IE1BWF9QQUdFX1NJWkVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG1hbmFnZWRPYmplY3RzO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gRmFpbCBzaWxlbnRseSBpbiBjYXNlIHdlIGFyZSBub3QgYWJsZSB0byB0YWxrIHRvIHRoZSBpbnZlbnRvcnkgQVBJLlxuICAgICAgLy8gU2hvdWxkIG9ubHkgYmUgcmVhY2hlZCBpbiBjYXNlIG9mIGFuIHNlcnZlciBzaWRlIGVycm9yLlxuICAgICAgLy8gaW5zdGVhZCBvZiBmYWlsaW5nLCBwcmV0ZW5kIGxpa2Ugd2UgZGlkbid0IHJlY2VpdmUgYW55IGl0ZW1zLlxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgRmFpbGVkIHRvIGdldCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBmb2xsb3dpbmcgbWFuYWdlZE9iamVjdHM6ICR7dW5pcU1hbmFnZWRPYmplY3RJZHMuam9pbigpfS5gXG4gICAgICApO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LWxpYnJhcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtbGlicmFyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUdMLGdCQUFnQixFQUVoQixrQkFBa0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsMEJBQTBCLEVBRzNCLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFHckMsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUNVLFNBQTJCLEVBQzNCLFFBQXlCLEVBQ3pCLFlBQWdDLEVBQ2hDLEtBQW1CO1FBSG5CLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBRTNCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuRSxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsbUNBQW1DLENBQUMsZUFBZSxHQUFHLEtBQUs7UUFDL0QsSUFBSSxl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O1FBQ1osQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDekQsR0FBRyxFQUFFLG9CQUFvQixDQUFDLElBQUksRUFBRTtnQkFDaEMsUUFBUSxFQUFFLGFBQWE7YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLHNFQUFzRTtZQUN0RSwwREFBMEQ7WUFDMUQsZ0VBQWdFO1lBQ2hFLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysc0VBQXNFLG9CQUFvQixDQUFDLElBQUksRUFBRSxHQUFHLENBQ3JHLENBQUM7WUFDRixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDOzhHQWpRVSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQURWLE1BQU07OzJGQUNuQix1QkFBdUI7a0JBRG5DLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSUlkZW50aWZpZWQsXG4gIElNYW5hZ2VkT2JqZWN0LFxuICBJbnZlbnRvcnlTZXJ2aWNlLFxuICBJUmVzdWx0TGlzdCxcbiAgTWVhc3VyZW1lbnRTZXJ2aWNlXG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSwgQ29sb3JTZXJ2aWNlLCBNQVhfUEFHRV9TSVpFIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBnZXQsIHNvcnRCeSwgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVCxcbiAgS1BJRGV0YWlscyxcbiAgTWFuYWdlZE9iamVjdEtQSVxufSBmcm9tICcuL2RhdGFwb2ludC1zZWxlY3Rpb24ubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIERhdGFwb2ludExpYnJhcnlTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIGNhY2hlOiBQcm9taXNlPE1hbmFnZWRPYmplY3RLUElbXT47XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1lYXN1cmVtZW50czogTWVhc3VyZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29sb3I6IENvbG9yU2VydmljZVxuICApIHtcbiAgICB0aGlzLmFwcFN0YXRlLmN1cnJlbnRVc2VyLnBpcGUoZmlsdGVyKHVzZXIgPT4gIXVzZXIpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jYWNoZSA9IHVuZGVmaW5lZDtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldEFsbERhdGFwb2ludExpYnJhcnlFbnRyaWVzQ2FjaGVkKGZvcmNlQ2FjaGVSZW5ldyA9IGZhbHNlKTogUHJvbWlzZTxNYW5hZ2VkT2JqZWN0S1BJW10+IHtcbiAgICBpZiAoZm9yY2VDYWNoZVJlbmV3KSB7XG4gICAgICB0aGlzLmNhY2hlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmdldEFsbERhdGFwb2ludExpYnJhcnlFbnRyaWVzKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhY2hlO1xuICB9XG5cbiAgYXN5bmMgZ2V0Rmlyc3REYXRhcG9pbnRMaWJyYXJ5UGFnZSgpOiBQcm9taXNlPElSZXN1bHRMaXN0PE1hbmFnZWRPYmplY3RLUEk+PiB7XG4gICAgY29uc3QgZmlsdGVyT2JqID0ge1xuICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICBwYWdlU2l6ZTogNTAsXG4gICAgICBmcmFnbWVudFR5cGU6IERBVEFQT0lOVF9MSUJSQVJZX0ZSQUdNRU5ULFxuICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWVcbiAgICB9O1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pbnZlbnRvcnkubGlzdChmaWx0ZXJPYmopKSBhcyBJUmVzdWx0TGlzdDxNYW5hZ2VkT2JqZWN0S1BJPjtcbiAgfVxuXG4gIGFzeW5jIGdldEFsbERhdGFwb2ludExpYnJhcnlJdGVtc0NhY2hlZCgpOiBQcm9taXNlPEtQSURldGFpbHNbXT4ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuZ2V0QWxsRGF0YXBvaW50TGlicmFyeUVudHJpZXMoKTtcbiAgICB9XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jYWNoZTtcbiAgICByZXR1cm4gcmVzLm1hcCh0bXAgPT4gdG1wW0RBVEFQT0lOVF9MSUJSQVJZX0ZSQUdNRU5UXSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVEYXRhcG9pbnRzKFxuICAgIGRhdGFwb2ludHM6IEtQSURldGFpbHNbXSxcbiAgICBza2lwVXBkYXRpbmdUYXJnZXQgPSBmYWxzZVxuICApOiBQcm9taXNlPEtQSURldGFpbHNbXT4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhcG9pbnRzKSkge1xuICAgICAgcmV0dXJuIGRhdGFwb2ludHM7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRUYXJnZXRzUHJvbWlzZTogUHJvbWlzZTxJTWFuYWdlZE9iamVjdFtdPiA9ICFza2lwVXBkYXRpbmdUYXJnZXRcbiAgICAgID8gdGhpcy5nZXRDdXJyZW50VmVyc2lvbk9mVGFyZ2V0c0Zyb21EYXRhcG9pbnRzKGRhdGFwb2ludHMpXG4gICAgICA6IFByb21pc2UucmVzb2x2ZShbXSk7XG4gICAgY29uc3QgW2N1cnJlbnRUZW1wbGF0ZXMsIGN1cnJlbnRUYXJnZXRzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIHRoaXMuZ2V0Q3VycmVudFRlbXBsYXRlc0Zyb21EYXRhcG9pbnRzKGRhdGFwb2ludHMpLFxuICAgICAgY3VycmVudFRhcmdldHNQcm9taXNlXG4gICAgXSk7XG4gICAgY29uc3QgY3VycmVudFRlbXBsYXRlVmVyc2lvbnMgPSBjdXJyZW50VGVtcGxhdGVzXG4gICAgICAubWFwKHRtcCA9PiB0aGlzLm1hcERhdGFwb2ludExpYnJhcnlFbnRyeSh0bXAgYXMgTWFuYWdlZE9iamVjdEtQSSkpXG4gICAgICAuZmlsdGVyKHRtcCA9PiAhIXRtcCk7XG4gICAgZm9yIChjb25zdCBkYXRhcG9pbnQgb2YgZGF0YXBvaW50cykge1xuICAgICAgY29uc3QgeyBmcmFnbWVudCwgc2VyaWVzLCBfX2FjdGl2ZSwgX190YXJnZXQsIGNvbG9yLCBsYWJlbCwgX190ZW1wbGF0ZSB9ID0gZGF0YXBvaW50O1xuICAgICAgY29uc3QgZm91bmRDdXJyZW50VGVtcGxhdGVWZXJzaW9uID0gY3VycmVudFRlbXBsYXRlVmVyc2lvbnMuZmluZChcbiAgICAgICAgdG1wID0+IHRtcC5fX3RlbXBsYXRlID09PSBkYXRhcG9pbnQuX190ZW1wbGF0ZVxuICAgICAgKTtcbiAgICAgIGlmIChmb3VuZEN1cnJlbnRUZW1wbGF0ZVZlcnNpb24pIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihkYXRhcG9pbnQsIGZvdW5kQ3VycmVudFRlbXBsYXRlVmVyc2lvbik7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YXBvaW50LCB7XG4gICAgICAgICAgZnJhZ21lbnQsXG4gICAgICAgICAgc2VyaWVzLFxuICAgICAgICAgIF9fYWN0aXZlLFxuICAgICAgICAgIF9fdGFyZ2V0LFxuICAgICAgICAgIGNvbG9yLFxuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIF9fdGVtcGxhdGVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZvdW5kQ3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXRzLmZpbmQodGFyZ2V0ID0+IHRhcmdldC5pZCA9PT0gX190YXJnZXQ/LmlkKTtcbiAgICAgIGlmIChmb3VuZEN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgY29uc3QgeyBpZCwgbmFtZSB9ID0gZm91bmRDdXJyZW50VGFyZ2V0O1xuICAgICAgICBkYXRhcG9pbnQuX190YXJnZXQgPSB7IGlkLCBuYW1lIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhcG9pbnRzO1xuICB9XG5cbiAgYXN5bmMgZ2V0RGF0YXBvaW50c09mQXNzZXQoXG4gICAgcGFyZW50UmVmZXJlbmNlOiBJSWRlbnRpZmllZCxcbiAgICBpZ25vcmVEYXRhcG9pbnRUZW1wbGF0ZXM/OiBib29sZWFuLFxuICAgIGRhdGFwb2ludFRlbXBsYXRlc09ubHkgPSBmYWxzZVxuICApOiBQcm9taXNlPEtQSURldGFpbHNbXT4ge1xuICAgIGNvbnN0IFtrcGlSZXNwb25zZSwgZGV0YWlsc10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAoaWdub3JlRGF0YXBvaW50VGVtcGxhdGVzXG4gICAgICAgID8gUHJvbWlzZS5yZXNvbHZlKG51bGwpXG4gICAgICAgIDogdGhpcy5pbnZlbnRvcnkuYXNzZXRLUElzTGlzdChwYXJlbnRSZWZlcmVuY2UsIHsgcGFnZVNpemU6IE1BWF9QQUdFX1NJWkUgfSkpIGFzIFByb21pc2U8XG4gICAgICAgIElSZXN1bHRMaXN0PE1hbmFnZWRPYmplY3RLUEk+XG4gICAgICA+LFxuICAgICAgdGhpcy5pbnZlbnRvcnkuZ2V0TWVhc3VyZW1lbnRzQW5kU2VyaWVzKHBhcmVudFJlZmVyZW5jZSlcbiAgICBdKTtcbiAgICBjb25zdCBrcGlzID0ga3BpUmVzcG9uc2UgJiYga3BpUmVzcG9uc2UuZGF0YSA/IGtwaVJlc3BvbnNlLmRhdGEgOiBbXTtcbiAgICBjb25zdCBzb3J0ZWREZXRhaWxzID0gc29ydEJ5KGRldGFpbHMsIFsnZnJhZ21lbnQnLCAnc2VyaWVzJ10pO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29tYmluZUZyYWdtZW50U2VyaWVzVHVwbGVzV2l0aERldGFpbHMoXG4gICAgICBzb3J0ZWREZXRhaWxzLFxuICAgICAgcGFyZW50UmVmZXJlbmNlLFxuICAgICAga3BpcyxcbiAgICAgIGRhdGFwb2ludFRlbXBsYXRlc09ubHlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIHRoZSBsYXN0IG1lYXN1cmVtZW50IHdpdGggdGhlIGdpdmVuIGZyYWdtZW50IGFuZCBzZXJpZXMgdG8gZXh0cmFjdCBpdCdzIHVuaXQuXG4gICAqIElmIHRoZSBzb3VyY2UgYXR0cmlidXRlIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGNoZWNrIHRoZSBsYXN0IG1lYXN1cmVtZW50IGZvciB0aGlzIHNwZWNpZmljIHNvdXJjZS5cbiAgICogQHJldHVybnMgZm91bmQgdW5pdCBvciBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZFxuICAgKi9cbiAgYXN5bmMgZ3Vlc3NVbml0T2ZEYXRhcG9pbnQoXG4gICAgZnJhZ21lbnQ6IHN0cmluZyxcbiAgICBzZXJpZXM6IHN0cmluZyxcbiAgICBzb3VyY2U/OiBJSWRlbnRpZmllZFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IG1lYXN1cmVtZW50ZmlsdGVyOiBhbnkgPSB7XG4gICAgICB2YWx1ZUZyYWdtZW50U2VyaWVzOiBzZXJpZXMsXG4gICAgICB2YWx1ZUZyYWdtZW50VHlwZTogZnJhZ21lbnQsXG4gICAgICBwYWdlU2l6ZTogMSxcbiAgICAgIHJldmVydDogdHJ1ZSxcbiAgICAgIGRhdGVGcm9tOiAnMTk3MC0wMS0wMSdcbiAgICB9O1xuICAgIGlmIChzb3VyY2U/LmlkKSB7XG4gICAgICBtZWFzdXJlbWVudGZpbHRlci5zb3VyY2UgPSBzb3VyY2U/LmlkO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBkYXRhOiBsYXN0TWVhc3VyZW1lbnRzIH0gPSBhd2FpdCB0aGlzLm1lYXN1cmVtZW50cy5saXN0KG1lYXN1cmVtZW50ZmlsdGVyKTtcbiAgICAgIGNvbnN0IG1lYXN1cmVtZW50ID0gbGFzdE1lYXN1cmVtZW50c1swXTtcbiAgICAgIGlmIChtZWFzdXJlbWVudCkge1xuICAgICAgICBjb25zdCBwYXRoVG9Vbml0ID0gYCR7ZnJhZ21lbnR9LiR7c2VyaWVzfS51bml0YDtcbiAgICAgICAgY29uc3QgdW5pdCA9IGdldChtZWFzdXJlbWVudCwgcGF0aFRvVW5pdCk7XG4gICAgICAgIGlmICh1bml0Py5sZW5ndGggJiYgdHlwZW9mIHVuaXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuIHVuaXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG5vdGhpbmcgdG8gZG9cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGNvbWJpbmVGcmFnbWVudFNlcmllc1R1cGxlc1dpdGhEZXRhaWxzKFxuICAgIHR1cGxlczogQXJyYXk8eyBmcmFnbWVudDogc3RyaW5nOyBzZXJpZXM6IHN0cmluZyB9PixcbiAgICB0YXJnZXQ6IElJZGVudGlmaWVkLFxuICAgIGtwaXM6IE1hbmFnZWRPYmplY3RLUElbXSxcbiAgICBkYXRhcG9pbnRUZW1wbGF0ZXNPbmx5ID0gZmFsc2VcbiAgKSB7XG4gICAgY29uc3QgZGF0YXBvaW50cyA9IHR1cGxlc1xuICAgICAgLm1hcCh0dXBsZSA9PiB7XG4gICAgICAgIGNvbnN0IGZvdW5kRGF0YXBvaW50TGlicmFyeUVudHJ5ID0ga3Bpcy5maW5kKFxuICAgICAgICAgIGtwaSA9PlxuICAgICAgICAgICAga3BpW0RBVEFQT0lOVF9MSUJSQVJZX0ZSQUdNRU5UXSAmJlxuICAgICAgICAgICAga3BpW0RBVEFQT0lOVF9MSUJSQVJZX0ZSQUdNRU5UXS5mcmFnbWVudCA9PT0gdHVwbGUuZnJhZ21lbnQgJiZcbiAgICAgICAgICAgIGtwaVtEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF0uc2VyaWVzID09PSB0dXBsZS5zZXJpZXNcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFmb3VuZERhdGFwb2ludExpYnJhcnlFbnRyeSAmJiBkYXRhcG9pbnRUZW1wbGF0ZXNPbmx5KSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YXBvaW50OiBLUElEZXRhaWxzID1cbiAgICAgICAgICB0aGlzLm1hcERhdGFwb2ludExpYnJhcnlFbnRyeShmb3VuZERhdGFwb2ludExpYnJhcnlFbnRyeSkgfHwgdHVwbGU7XG4gICAgICAgIGlmICghZGF0YXBvaW50LmxhYmVsKSB7XG4gICAgICAgICAgZGF0YXBvaW50LmxhYmVsID0gYCR7ZGF0YXBvaW50LmZyYWdtZW50fSDihpIgJHtkYXRhcG9pbnQuc2VyaWVzfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFkYXRhcG9pbnQudW5pdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgZGF0YXBvaW50LnVuaXQgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBkYXRhcG9pbnQuX190YXJnZXQgPSB0YXJnZXQ7XG4gICAgICAgIHJldHVybiBkYXRhcG9pbnQ7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihCb29sZWFuKTtcbiAgICBhd2FpdCB0aGlzLmFzc2lnbkNvbG9yVG9EYXRhcG9pbnRzKGRhdGFwb2ludHMpO1xuICAgIHJldHVybiBkYXRhcG9pbnRzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGFzc2lnbkNvbG9yVG9EYXRhcG9pbnRzKGRhdGFwb2ludHM6IEtQSURldGFpbHNbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGFwb2ludHNXaXRob3V0Q29sb3IgPSBkYXRhcG9pbnRzLmZpbHRlcihkYXRhcG9pbnQgPT4gIWRhdGFwb2ludC5jb2xvcik7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBkYXRhcG9pbnRzV2l0aG91dENvbG9yLm1hcChkYXRhcG9pbnQgPT5cbiAgICAgICAgdGhpcy5jb2xvclxuICAgICAgICAgIC5nZW5lcmF0ZUNvbG9yRm9yRGF0YXBvaW50KGRhdGFwb2ludC5mcmFnbWVudCwgZGF0YXBvaW50LnNlcmllcylcbiAgICAgICAgICAudGhlbihjb2xvciA9PiAoZGF0YXBvaW50LmNvbG9yID0gY29sb3IpKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0QWxsRGF0YXBvaW50TGlicmFyeUVudHJpZXMoKTogUHJvbWlzZTxNYW5hZ2VkT2JqZWN0S1BJW10+IHtcbiAgICBjb25zdCBlbnRyaWVzID0gbmV3IEFycmF5PE1hbmFnZWRPYmplY3RLUEk+KCk7XG4gICAgY29uc3QgZmlsdGVyT2JqID0ge1xuICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICBwYWdlU2l6ZTogTUFYX1BBR0VfU0laRSxcbiAgICAgIGZyYWdtZW50VHlwZTogREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRcbiAgICB9O1xuICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLmludmVudG9yeS5saXN0KGZpbHRlck9iaik7XG4gICAgd2hpbGUgKHJlcy5kYXRhLmxlbmd0aCkge1xuICAgICAgZW50cmllcy5wdXNoKC4uLihyZXMuZGF0YSBhcyBNYW5hZ2VkT2JqZWN0S1BJW10pKTtcbiAgICAgIGlmIChyZXMuZGF0YS5sZW5ndGggPCByZXMucGFnaW5nLnBhZ2VTaXplKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKCFyZXMucGFnaW5nLm5leHRQYWdlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZXMgPSBhd2FpdCByZXMucGFnaW5nLm5leHQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudHJpZXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFwRGF0YXBvaW50TGlicmFyeUVudHJ5KGVudHJ5OiBNYW5hZ2VkT2JqZWN0S1BJKTogS1BJRGV0YWlscyB7XG4gICAgaWYgKCFlbnRyeSB8fCAhZW50cnlbREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhcG9pbnQgPSBlbnRyeVtEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF07XG4gICAgZGF0YXBvaW50Ll9fdGVtcGxhdGUgPSBlbnRyeS5pZDtcbiAgICByZXR1cm4gZGF0YXBvaW50O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldEN1cnJlbnRUZW1wbGF0ZXNGcm9tRGF0YXBvaW50cyhcbiAgICBkYXRhcG9pbnRzOiBLUElEZXRhaWxzW11cbiAgKTogUHJvbWlzZTxJTWFuYWdlZE9iamVjdFtdPiB7XG4gICAgY29uc3QgZGF0YXBvaW50c1dpdGhUZW1wbGF0ZUlkID0gZGF0YXBvaW50cy5maWx0ZXIoZHAgPT4gISFkcC5fX3RlbXBsYXRlKTtcbiAgICBjb25zdCB1c2VkVGVtcGxhdGVJZHMgPSBkYXRhcG9pbnRzV2l0aFRlbXBsYXRlSWQubWFwKGRwID0+IGRwLl9fdGVtcGxhdGUpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldE1Pc0J5SWRzKHVzZWRUZW1wbGF0ZUlkcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0Q3VycmVudFZlcnNpb25PZlRhcmdldHNGcm9tRGF0YXBvaW50cyhcbiAgICBkYXRhcG9pbnRzOiBLUElEZXRhaWxzW11cbiAgKTogUHJvbWlzZTxJTWFuYWdlZE9iamVjdFtdPiB7XG4gICAgY29uc3QgZGF0YXBvaW50c1dpdGhUYXJnZXQgPSBkYXRhcG9pbnRzLmZpbHRlcihkcCA9PiAhIWRwLl9fdGFyZ2V0Py5pZCk7XG4gICAgY29uc3QgdXNlZFRhcmdldElkcyA9IGRhdGFwb2ludHNXaXRoVGFyZ2V0Lm1hcChkcCA9PiBkcC5fX3RhcmdldC5pZCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0TU9zQnlJZHModXNlZFRhcmdldElkcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0TU9zQnlJZHMoaWRzOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+KTogUHJvbWlzZTxJTWFuYWdlZE9iamVjdFtdPiB7XG4gICAgY29uc3QgdW5pcU1hbmFnZWRPYmplY3RJZHMgPSB1bmlxKGlkcyk7XG4gICAgaWYgKCF1bmlxTWFuYWdlZE9iamVjdElkcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YTogbWFuYWdlZE9iamVjdHMgfSA9IGF3YWl0IHRoaXMuaW52ZW50b3J5Lmxpc3Qoe1xuICAgICAgICBpZHM6IHVuaXFNYW5hZ2VkT2JqZWN0SWRzLmpvaW4oKSxcbiAgICAgICAgcGFnZVNpemU6IE1BWF9QQUdFX1NJWkVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG1hbmFnZWRPYmplY3RzO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gRmFpbCBzaWxlbnRseSBpbiBjYXNlIHdlIGFyZSBub3QgYWJsZSB0byB0YWxrIHRvIHRoZSBpbnZlbnRvcnkgQVBJLlxuICAgICAgLy8gU2hvdWxkIG9ubHkgYmUgcmVhY2hlZCBpbiBjYXNlIG9mIGFuIHNlcnZlciBzaWRlIGVycm9yLlxuICAgICAgLy8gaW5zdGVhZCBvZiBmYWlsaW5nLCBwcmV0ZW5kIGxpa2Ugd2UgZGlkbid0IHJlY2VpdmUgYW55IGl0ZW1zLlxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgRmFpbGVkIHRvIGdldCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBmb2xsb3dpbmcgbWFuYWdlZE9iamVjdHM6ICR7dW5pcU1hbmFnZWRPYmplY3RJZHMuam9pbigpfS5gXG4gICAgICApO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/esm2022/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.mjs
CHANGED
|
@@ -7,6 +7,7 @@ import { from, Observable } from 'rxjs';
|
|
|
7
7
|
import { map, shareReplay, take, tap } from 'rxjs/operators';
|
|
8
8
|
import { DatapointLibraryService } from '../datapoint-library.service';
|
|
9
9
|
import { DatapointSelectorService } from '../datapoint-selector.service';
|
|
10
|
+
import { AddButtonTypes } from '../datapoint-selector-list-item/datapoint-selector-list-item.component';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "../datapoint-selector.service";
|
|
12
13
|
import * as i2 from "../datapoint-library.service";
|
|
@@ -30,6 +31,7 @@ export class DatapointSelectionListComponent {
|
|
|
30
31
|
this.resolveContext = true;
|
|
31
32
|
this.listTitle = '';
|
|
32
33
|
this.maxActiveCountReached = false;
|
|
34
|
+
this.AddButtonTypes = AddButtonTypes;
|
|
33
35
|
this.usedValidators = {};
|
|
34
36
|
this.formArray = this.formBuilder.array([]);
|
|
35
37
|
this.isValid = this.formArray.statusChanges.pipe(map(status => status === 'VALID'));
|
|
@@ -131,7 +133,7 @@ export class DatapointSelectionListComponent {
|
|
|
131
133
|
useExisting: forwardRef(() => DatapointSelectionListComponent),
|
|
132
134
|
multi: true
|
|
133
135
|
}
|
|
134
|
-
], usesOnChanges: true, ngImport: i0, template: "<div class=\"card-header separator sticky-top bg-inherit\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [
|
|
136
|
+
], usesOnChanges: true, ngImport: i0, template: "<div class=\"card-header separator sticky-top bg-inherit\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [addButtonType]=\"AddButtonTypes.none\"\n [showOptions]=\"true\"\n [editable]=\"true\"\n [colorPickerDisabled]=\"false\"\n [actions]=\"actions\"\n [optionToRemove]=\"true\"\n [datapointLibraryEntries]=\"datapointLibraryEntries\"\n [hasUnlinkTemplateOption]=\"true\"\n formControlName=\"details\"\n (removed)=\"onItemRemoved(index)\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-datapoint-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"'Add data point' | translate\"\n type=\"button\"\n data-cy=\"c8y-datapoint-selection-list--add-datapoint-button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add data point' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i5.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i5.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i5.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i5.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i8.DatapointSelectorListItemComponent, selector: "c8y-datapoint-selector-list-item", inputs: ["defaultFormOptions", "isSelected", "isCollapsed", "addButtonType", "editable", "showActiveToggle", "activeToggleDisabled", "showOptions", "datapointLibraryEntries", "actions", "optionToRemove", "hasUnlinkTemplateOption", "colorPickerDisabled", "disableTypeaheadIfSelected", "highlightText"], outputs: ["added", "removed"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }] }); }
|
|
135
137
|
}
|
|
136
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointSelectionListComponent, decorators: [{
|
|
137
139
|
type: Component,
|
|
@@ -146,7 +148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
146
148
|
useExisting: forwardRef(() => DatapointSelectionListComponent),
|
|
147
149
|
multi: true
|
|
148
150
|
}
|
|
149
|
-
], template: "<div class=\"card-header separator sticky-top bg-inherit\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [
|
|
151
|
+
], template: "<div class=\"card-header separator sticky-top bg-inherit\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [addButtonType]=\"AddButtonTypes.none\"\n [showOptions]=\"true\"\n [editable]=\"true\"\n [colorPickerDisabled]=\"false\"\n [actions]=\"actions\"\n [optionToRemove]=\"true\"\n [datapointLibraryEntries]=\"datapointLibraryEntries\"\n [hasUnlinkTemplateOption]=\"true\"\n formControlName=\"details\"\n (removed)=\"onItemRemoved(index)\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-datapoint-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"'Add data point' | translate\"\n type=\"button\"\n data-cy=\"c8y-datapoint-selection-list--add-datapoint-button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add data point' | translate }}\n </button>\n</div>\n" }]
|
|
150
152
|
}], ctorParameters: () => [{ type: i1.DatapointSelectorService }, { type: i2.DatapointLibraryService }, { type: i3.FormBuilder }, { type: i4.WidgetConfigComponent, decorators: [{
|
|
151
153
|
type: Optional
|
|
152
154
|
}] }], propDecorators: { actions: [{
|
|
@@ -170,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
170
172
|
}], change: [{
|
|
171
173
|
type: Output
|
|
172
174
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QvZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QvZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUwsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFJbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUXZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBa0J6RSxNQUFNLE9BQU8sK0JBQStCO0lBbUIxQyxZQUNVLGlCQUEyQyxFQUMzQyxnQkFBeUMsRUFDekMsV0FBd0IsRUFDWixlQUFzQztRQUhsRCxzQkFBaUIsR0FB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QkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1BcnJheSxcbiAgRm9ybUJ1aWxkZXIsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvckZuXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQzh5VmFsaWRhdG9ycyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnQ29tcG9uZW50IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9jb250ZXh0LWRhc2hib2FyZCc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRhcG9pbnRMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uL2RhdGFwb2ludC1saWJyYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgRGF0YXBvaW50QWN0aW9uLFxuICBEYXRhcG9pbnRBdHRyaWJ1dGVzRm9ybUNvbmZpZyxcbiAgS1BJRGV0YWlscyxcbiAgTWFuYWdlZE9iamVjdEtQSVxufSBmcm9tICcuLi9kYXRhcG9pbnQtc2VsZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IERhdGFwb2ludFNlbGVjdG9yTW9kYWxPcHRpb25zIH0gZnJvbSAnLi4vZGF0YXBvaW50LXNlbGVjdG9yLW1vZGFsL2RhdGFwb2ludC1zZWxlY3Rvci1tb2RhbC5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhcG9pbnRTZWxlY3RvclNlcnZpY2UgfSBmcm9tICcuLi9kYXRhcG9pbnQtc2VsZWN0b3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGFwb2ludFNlbGVjdGlvbkxpc3RDb21wb25lbnQpXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0YXBvaW50U2VsZWN0aW9uTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhcG9pbnRTZWxlY3Rpb25MaXN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgQElucHV0KCkgYWN0aW9uczogRGF0YXBvaW50QWN0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dEcmFnQW5kRHJvcCA9IHRydWU7XG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxEYXRhcG9pbnRTZWxlY3Rvck1vZGFsT3B0aW9ucz4gPSB7fTtcbiAgQElucHV0KCkgZGVmYXVsdEZvcm1PcHRpb25zOiBQYXJ0aWFsPERhdGFwb2ludEF0dHJpYnV0ZXNGb3JtQ29uZmlnPiA9IHt9O1xuICBASW5wdXQoKSBtYXhBY3RpdmVDb3VudDogbnVtYmVyO1xuICBASW5wdXQoKSBtaW5BY3RpdmVDb3VudCA9IDE7XG4gIEBJbnB1dCgpIHJlc29sdmVDb250ZXh0ID0gdHJ1ZTtcbiAgQElucHV0KCkgbGlzdFRpdGxlID0gJyc7XG4gIGZvcm1BcnJheTogRm9ybUFycmF5O1xuICBkYXRhcG9pbnRMaWJyYXJ5RW50cmllczogT2JzZXJ2YWJsZTxJUmVzdWx0TGlzdDxNYW5hZ2VkT2JqZWN0S1BJPj47XG4gIG1heEFjdGl2ZUNvdW50UmVhY2hlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBpc1ZhbGlkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBAT3V0cHV0KCkgY2hhbmdlOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgcHJpdmF0ZSB1c2VkVmFsaWRhdG9yczogeyBba2V5OiBzdHJpbmddOiBWYWxpZGF0b3JGbiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhcG9pbnRTZWxlY3RvcjogRGF0YXBvaW50U2VsZWN0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YXBvaW50TGlicmFyeTogRGF0YXBvaW50TGlicmFyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB3aWRnZXRDb21wb25lbnQ6IFdpZGdldENvbmZpZ0NvbXBvbmVudFxuICApIHtcbiAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoW10pO1xuICAgIHRoaXMuaXNWYWxpZCA9IHRoaXMuZm9ybUFycmF5LnN0YXR1c0NoYW5nZXMucGlwZShtYXAoc3RhdHVzID0+IHN0YXR1cyA9PT0gJ1ZBTElEJykpO1xuICAgIHRoaXMuZGF0YXBvaW50TGlicmFyeUVudHJpZXMgPSBmcm9tKHRoaXMuZGF0YXBvaW50TGlicmFyeS5nZXRGaXJzdERhdGFwb2ludExpYnJhcnlQYWdlKCkpLnBpcGUoXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKTtcbiAgICB0aGlzLmNoYW5nZSA9IHRoaXMuZm9ybUFycmF5LnZhbHVlQ2hhbmdlcy5waXBlKG1hcChyZXMgPT4gdGhpcy50cmFuc2Zvcm1WYWx1ZShyZXMpKSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCFjaGFuZ2VzLm1heEFjdGl2ZUNvdW50ICYmICFjaGFuZ2VzLm1pbkFjdGl2ZUNvdW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLm1heEFjdGl2ZUNvdW50KSB7XG4gICAgICB0aGlzLnVzZWRWYWxpZGF0b3JzLm1heEFjdGl2ZUNvdW50ID0gQzh5VmFsaWRhdG9ycy5tYXhBY3RpdmVDb3VudCh0aGlzLm1heEFjdGl2ZUNvdW50KTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5taW5BY3RpdmVDb3VudCkge1xuICAgICAgdGhpcy51c2VkVmFsaWRhdG9ycy5taW5BY3RpdmVDb3VudCA9IEM4eVZhbGlkYXRvcnMubWluQWN0aXZlQ291bnQodGhpcy5taW5BY3RpdmVDb3VudCk7XG4gICAgfVxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBPYmplY3QudmFsdWVzKHRoaXMudXNlZFZhbGlkYXRvcnMpO1xuICAgIHRoaXMuZm9ybUFycmF5LnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQXJyYXkudmFsdWVDaGFuZ2VzLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZuKTtcbiAgfVxuXG4gIHZhbGlkYXRlKF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkudmFsaWQgPyBudWxsIDogeyBmb3JtSW52YWxpZDoge30gfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLndpZGdldENvbXBvbmVudD8uY29udGV4dDtcbiAgICBpZiAoY29udGV4dD8uaWQgJiYgdGhpcy5yZXNvbHZlQ29udGV4dCkge1xuICAgICAgY29uc3QgeyBuYW1lLCBpZCwgYzh5X0lzRGV2aWNlIH0gPSBjb250ZXh0O1xuICAgICAgdGhpcy5jb25maWcuY29udGV4dEFzc2V0ID0geyBuYW1lLCBpZCwgYzh5X0lzRGV2aWNlIH07XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IEtQSURldGFpbHNbXSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUFycmF5LmNsZWFyKCk7XG4gICAgaWYgKG9iaj8ubGVuZ3RoKSB7XG4gICAgICBvYmouZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgICBjb25zdCBmb3JtZ3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHsgZGV0YWlsczogW10gfSk7XG4gICAgICAgIGZvcm1ncm91cC5wYXRjaFZhbHVlKHsgZGV0YWlsczogdmFsIH0pO1xuICAgICAgICB0aGlzLmZvcm1BcnJheS5wdXNoKGZvcm1ncm91cCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5jYWxjdWxhdGVNYXhBY3RpdmVDb3VudCgpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQXJyYXkudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiB0aGlzLnRyYW5zZm9ybVZhbHVlKHJlcykpLFxuICAgICAgICAvLyBjaGVjayBtYXhBY3RpdmVDb3VudFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FsY3VsYXRlTWF4QWN0aXZlQ291bnQoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgYWRkKCkge1xuICAgIGNvbnN0IGFsbG93Q2hhbmdpbmdDb250ZXh0ID1cbiAgICAgICF0aGlzLndpZGdldENvbXBvbmVudD8uaXNEZXZpY2VUeXBlRGFzaGJvYXJkICYmIHRoaXMuY29uZmlnPy5hbGxvd0NoYW5naW5nQ29udGV4dCAhPT0gZmFsc2U7XG4gICAgdGhpcy5kYXRhcG9pbnRTZWxlY3RvclxuICAgICAgLnNlbGVjdERhdGFQb2ludHMoe1xuICAgICAgICAuLi4odGhpcy5jb25maWcgfHwge30pLFxuICAgICAgICBzZWxlY3RlZERhdGFwb2ludHM6IHRoaXMudHJhbnNmb3JtVmFsdWUodGhpcy5mb3JtQXJyYXkudmFsdWUpLFxuICAgICAgICBkZWZhdWx0QWN0aXZlU3RhdGU6IHRydWUsXG4gICAgICAgIGFsbG93Q2hhbmdpbmdDb250ZXh0LFxuICAgICAgICBhbGxvd1NlYXJjaDogIXRoaXMuY29uZmlnPy5jb250ZXh0QXNzZXRcbiAgICAgIH0pXG4gICAgICAudGhlbihcbiAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLndyaXRlVmFsdWUocmVzdWx0KTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8sIG1vZGFsIHdhcyBjbG9zZWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIG9uSXRlbVJlbW92ZWQoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEtQSURldGFpbHNbXT4pIHtcbiAgICBjb25zdCBjdXJyZW50U29ydGluZyA9IHRoaXMuZm9ybUFycmF5LnZhbHVlO1xuICAgIG1vdmVJdGVtSW5BcnJheShjdXJyZW50U29ydGluZywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLmZvcm1BcnJheS5zZXRWYWx1ZShjdXJyZW50U29ydGluZyk7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybVZhbHVlKGZvcm1BcnJheVZhbHVlOiBhbnlbXSkge1xuICAgIGlmICghZm9ybUFycmF5VmFsdWUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1BcnJheVZhbHVlLm1hcCh0bXAgPT4gT2JqZWN0LmFzc2lnbih7fSwgLi4uT2JqZWN0LnZhbHVlcyh0bXApKSk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZU1heEFjdGl2ZUNvdW50KCkge1xuICAgIGlmICh0aGlzLm1heEFjdGl2ZUNvdW50KSB7XG4gICAgICBjb25zdCBjdXJyZW50bHlBY3RpdmUgPSB0aGlzLmZvcm1BcnJheS52YWx1ZS5maWx0ZXIodG1wID0+IHRtcC5kZXRhaWxzPy5fX2FjdGl2ZSkubGVuZ3RoO1xuICAgICAgdGhpcy5tYXhBY3RpdmVDb3VudFJlYWNoZWQgPSBjdXJyZW50bHlBY3RpdmUgPj0gdGhpcy5tYXhBY3RpdmVDb3VudDtcbiAgICB9XG4gICAgdGhpcy5tYXhBY3RpdmVDb3VudFJlYWNoZWQgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHNlcGFyYXRvciBzdGlja3ktdG9wIGJnLWluaGVyaXRcIj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cImNhcmQtdGl0bGUgaDRcIlxuICAgICpuZ0lmPVwibGlzdFRpdGxlXCJcbiAgPlxuICAgIHt7IGxpc3RUaXRsZSB8IHRyYW5zbGF0ZSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJjYXJkLXRpdGxlIGg0XCJcbiAgICAqbmdJZj1cIiFsaXN0VGl0bGVcIlxuICA+XG4gICAge3sgJ0RhdGEgcG9pbnRzJyB8IHRyYW5zbGF0ZSB9fVxuICA8L3NwYW4+XG48L2Rpdj5cblxuPGM4eS1saXN0LWdyb3VwXG4gIGNsYXNzPVwiZmxleC1ncm93IGZmLXNjcm9sbC1maXggY2RrLWRyb3BsaXN0XCJcbiAgY2RrRHJvcExpc3RcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhYWxsb3dEcmFnQW5kRHJvcCB8fCBmb3JtQXJyYXkuY29udHJvbHM/Lmxlbmd0aCA8IDJcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIG0tdC04XCJcbiAgICByb2xlPVwiYWxlcnRcIlxuICAgIG5nTm9uQmluZGFibGVcbiAgICAqbmdJZj1cImZvcm1BcnJheS5lcnJvcnM/Lm1pbkFjdGl2ZUNvdW50XCJcbiAgICB0cmFuc2xhdGVcbiAgICBbdHJhbnNsYXRlUGFyYW1zXT1cImZvcm1BcnJheS5lcnJvcnM/Lm1pbkFjdGl2ZUNvdW50XCJcbiAgPlxuICAgIEF0IGxlYXN0IHt7IG1pbkFjdGl2ZSB9fSBhY3RpdmUgZGF0YSBwb2ludHMgbXVzdCBiZSBzZWxlY3RlZC5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQtd2FybmluZyBtLXQtOFwiXG4gICAgcm9sZT1cImFsZXJ0XCJcbiAgICBuZ05vbkJpbmRhYmxlXG4gICAgKm5nSWY9XCJmb3JtQXJyYXkuZXJyb3JzPy5tYXhBY3RpdmVDb3VudFwiXG4gICAgdHJhbnNsYXRlXG4gICAgW3RyYW5zbGF0ZVBhcmFtc109XCJmb3JtQXJyYXkuZXJyb3JzPy5tYXhBY3RpdmVDb3VudFwiXG4gID5cbiAgICBBdCBtYXhpbXVtIHt7IG1heEFjdGl2ZSB9fSBhY3RpdmUgZGF0YSBwb2ludHMgYXJlIGFsbG93ZWQgdG8gYmUgc2VsZWN0ZWQuXG4gIDwvZGl2PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5hbGVydFwiPjwvbmctY29udGVudD5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJwLXQtOFwiXG4gICAgKm5nSWY9XCIhZm9ybUFycmF5LmNvbnRyb2xzPy5sZW5ndGhcIlxuICA+XG4gICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgY2xhc3M9XCJwLXQtOFwiXG4gICAgICBbaWNvbl09XCInYzh5LWRhdGEtcG9pbnRzJ1wiXG4gICAgICBbdGl0bGVdPVwiJ05vIGRhdGEgcG9pbnRzIHRvIGRpc3BsYXkuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc3VidGl0bGVdPVwiJ0FkZCB5b3VyIGZpcnN0IGRhdGEgcG9pbnQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbaG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgICA+PC9jOHktdWktZW1wdHktc3RhdGU+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgW2Zvcm1Hcm91cF09XCJkcEZvcm1cIlxuICAgICpuZ0Zvcj1cImxldCBkcEZvcm0gb2YgZm9ybUFycmF5LmNvbnRyb2xzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gID5cbiAgICA8Yzh5LWRhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW1cbiAgICAgIGNsYXNzPVwiZC1ibG9ja1wiXG4gICAgICBbZGVmYXVsdEZvcm1PcHRpb25zXT1cImRlZmF1bHRGb3JtT3B0aW9uc1wiXG4gICAgICBbYWN0aXZlVG9nZ2xlRGlzYWJsZWRdPVwibWF4QWN0aXZlQ291bnRSZWFjaGVkXCJcbiAgICAgIFtzaG93QWN0aXZlVG9nZ2xlXT1cInRydWVcIlxuICAgICAgW3Nob3dBZGRSZW1vdmVCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgW3Nob3dPcHRpb25zXT1cInRydWVcIlxuICAgICAgW2VkaXRhYmxlXT1cInRydWVcIlxuICAgICAgW2NvbG9yUGlja2VyRGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgW2FjdGlvbnNdPVwiYWN0aW9uc1wiXG4gICAgICBbb3B0aW9uVG9SZW1vdmVdPVwidHJ1ZVwiXG4gICAgICBbZGF0YXBvaW50TGlicmFyeUVudHJpZXNdPVwiZGF0YXBvaW50TGlicmFyeUVudHJpZXNcIlxuICAgICAgW2hhc1VubGlua1RlbXBsYXRlT3B0aW9uXT1cInRydWVcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGV0YWlsc1wiXG4gICAgICAocmVtb3ZlZCk9XCJvbkl0ZW1SZW1vdmVkKGluZGV4KVwiXG4gICAgICBjZGtEcmFnXG4gICAgPlxuICAgICAgPGM4eS1saS1kcmFnLWhhbmRsZVxuICAgICAgICB0aXRsZT1cInt7ICdDbGljayBhbmQgZHJhZyB0byByZW9yZGVyJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgID5cbiAgICAgICAgPGkgYzh5SWNvbj1cImRyYWctcmVvcmRlclwiPjwvaT5cbiAgICAgIDwvYzh5LWxpLWRyYWctaGFuZGxlPlxuICAgIDwvYzh5LWRhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0+XG4gIDwvZGl2PlxuPC9jOHktbGlzdC1ncm91cD5cblxuPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJnLWluaGVyaXRcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgW3RpdGxlXT1cIidBZGQgZGF0YSBwb2ludCcgfCB0cmFuc2xhdGVcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGRhdGEtY3k9XCJjOHktZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LS1hZGQtZGF0YXBvaW50LWJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImFkZCgpXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJwbHVzLWNpcmNsZVwiPjwvaT5cbiAgICB7eyAnQWRkIGRhdGEgcG9pbnQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QvZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QvZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUwsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFJbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUXZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7Ozs7Ozs7OztBQWtCeEcsTUFBTSxPQUFPLCtCQUErQjtJQW9CMUMsWUFDVSxpQkFBMkMsRUFDM0MsZ0JB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QkFBZCxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQU1JLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQXJyYXksXG4gIEZvcm1CdWlsZGVyLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JGblxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJUmVzdWx0TGlzdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEM4eVZhbGlkYXRvcnMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFdpZGdldENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvY29udGV4dC1kYXNoYm9hcmQnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGF0YXBvaW50TGlicmFyeVNlcnZpY2UgfSBmcm9tICcuLi9kYXRhcG9pbnQtbGlicmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIERhdGFwb2ludEFjdGlvbixcbiAgRGF0YXBvaW50QXR0cmlidXRlc0Zvcm1Db25maWcsXG4gIEtQSURldGFpbHMsXG4gIE1hbmFnZWRPYmplY3RLUElcbn0gZnJvbSAnLi4vZGF0YXBvaW50LXNlbGVjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhcG9pbnRTZWxlY3Rvck1vZGFsT3B0aW9ucyB9IGZyb20gJy4uL2RhdGFwb2ludC1zZWxlY3Rvci1tb2RhbC9kYXRhcG9pbnQtc2VsZWN0b3ItbW9kYWwubW9kZWwnO1xuaW1wb3J0IHsgRGF0YXBvaW50U2VsZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vZGF0YXBvaW50LXNlbGVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWRkQnV0dG9uVHlwZXMgfSBmcm9tICcuLi9kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtL2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRhdGFwb2ludC1zZWxlY3Rpb24tbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0YXBvaW50U2VsZWN0aW9uTGlzdENvbXBvbmVudClcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRhcG9pbnRTZWxlY3Rpb25MaXN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGFwb2ludFNlbGVjdGlvbkxpc3RDb21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSBhY3Rpb25zOiBEYXRhcG9pbnRBY3Rpb25bXSA9IFtdO1xuICBASW5wdXQoKSBhbGxvd0RyYWdBbmREcm9wID0gdHJ1ZTtcbiAgQElucHV0KCkgY29uZmlnOiBQYXJ0aWFsPERhdGFwb2ludFNlbGVjdG9yTW9kYWxPcHRpb25zPiA9IHt9O1xuICBASW5wdXQoKSBkZWZhdWx0Rm9ybU9wdGlvbnM6IFBhcnRpYWw8RGF0YXBvaW50QXR0cmlidXRlc0Zvcm1Db25maWc+ID0ge307XG4gIEBJbnB1dCgpIG1heEFjdGl2ZUNvdW50OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbkFjdGl2ZUNvdW50ID0gMTtcbiAgQElucHV0KCkgcmVzb2x2ZUNvbnRleHQgPSB0cnVlO1xuICBASW5wdXQoKSBsaXN0VGl0bGUgPSAnJztcbiAgZm9ybUFycmF5OiBGb3JtQXJyYXk7XG4gIGRhdGFwb2ludExpYnJhcnlFbnRyaWVzOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PE1hbmFnZWRPYmplY3RLUEk+PjtcbiAgbWF4QWN0aXZlQ291bnRSZWFjaGVkID0gZmFsc2U7XG4gIEFkZEJ1dHRvblR5cGVzID0gQWRkQnV0dG9uVHlwZXM7XG5cbiAgQE91dHB1dCgpIGlzVmFsaWQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIEBPdXRwdXQoKSBjaGFuZ2U6IE9ic2VydmFibGU8YW55W10+O1xuICBwcml2YXRlIHVzZWRWYWxpZGF0b3JzOiB7IFtrZXk6IHN0cmluZ106IFZhbGlkYXRvckZuIH0gPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRhdGFwb2ludFNlbGVjdG9yOiBEYXRhcG9pbnRTZWxlY3RvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhcG9pbnRMaWJyYXJ5OiBEYXRhcG9pbnRMaWJyYXJ5U2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHdpZGdldENvbXBvbmVudDogV2lkZ2V0Q29uZmlnQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMuZm9ybUFycmF5ID0gdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSk7XG4gICAgdGhpcy5pc1ZhbGlkID0gdGhpcy5mb3JtQXJyYXkuc3RhdHVzQ2hhbmdlcy5waXBlKG1hcChzdGF0dXMgPT4gc3RhdHVzID09PSAnVkFMSUQnKSk7XG4gICAgdGhpcy5kYXRhcG9pbnRMaWJyYXJ5RW50cmllcyA9IGZyb20odGhpcy5kYXRhcG9pbnRMaWJyYXJ5LmdldEZpcnN0RGF0YXBvaW50TGlicmFyeVBhZ2UoKSkucGlwZShcbiAgICAgIHNoYXJlUmVwbGF5KClcbiAgICApO1xuICAgIHRoaXMuY2hhbmdlID0gdGhpcy5mb3JtQXJyYXkudmFsdWVDaGFuZ2VzLnBpcGUobWFwKHJlcyA9PiB0aGlzLnRyYW5zZm9ybVZhbHVlKHJlcykpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXMubWF4QWN0aXZlQ291bnQgJiYgIWNoYW5nZXMubWluQWN0aXZlQ291bnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMubWF4QWN0aXZlQ291bnQpIHtcbiAgICAgIHRoaXMudXNlZFZhbGlkYXRvcnMubWF4QWN0aXZlQ291bnQgPSBDOHlWYWxpZGF0b3JzLm1heEFjdGl2ZUNvdW50KHRoaXMubWF4QWN0aXZlQ291bnQpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLm1pbkFjdGl2ZUNvdW50KSB7XG4gICAgICB0aGlzLnVzZWRWYWxpZGF0b3JzLm1pbkFjdGl2ZUNvdW50ID0gQzh5VmFsaWRhdG9ycy5taW5BY3RpdmVDb3VudCh0aGlzLm1pbkFjdGl2ZUNvdW50KTtcbiAgICB9XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IE9iamVjdC52YWx1ZXModGhpcy51c2VkVmFsaWRhdG9ycyk7XG4gICAgdGhpcy5mb3JtQXJyYXkuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1BcnJheS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgdmFsaWRhdGUoX2NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheS52YWxpZCA/IG51bGwgOiB7IGZvcm1JbnZhbGlkOiB7fSB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMud2lkZ2V0Q29tcG9uZW50Py5jb250ZXh0O1xuICAgIGlmIChjb250ZXh0Py5pZCAmJiB0aGlzLnJlc29sdmVDb250ZXh0KSB7XG4gICAgICBjb25zdCB7IG5hbWUsIGlkLCBjOHlfSXNEZXZpY2UgfSA9IGNvbnRleHQ7XG4gICAgICB0aGlzLmNvbmZpZy5jb250ZXh0QXNzZXQgPSB7IG5hbWUsIGlkLCBjOHlfSXNEZXZpY2UgfTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKG9iajogS1BJRGV0YWlsc1tdKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQXJyYXkuY2xlYXIoKTtcbiAgICBpZiAob2JqPy5sZW5ndGgpIHtcbiAgICAgIG9iai5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1ncm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoeyBkZXRhaWxzOiBbXSB9KTtcbiAgICAgICAgZm9ybWdyb3VwLnBhdGNoVmFsdWUoeyBkZXRhaWxzOiB2YWwgfSk7XG4gICAgICAgIHRoaXMuZm9ybUFycmF5LnB1c2goZm9ybWdyb3VwKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNhbGN1bGF0ZU1heEFjdGl2ZUNvdW50KCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1BcnJheS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHRoaXMudHJhbnNmb3JtVmFsdWUocmVzKSksXG4gICAgICAgIC8vIGNoZWNrIG1heEFjdGl2ZUNvdW50XG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWxjdWxhdGVNYXhBY3RpdmVDb3VudCgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShmbik7XG4gIH1cblxuICBhZGQoKSB7XG4gICAgY29uc3QgYWxsb3dDaGFuZ2luZ0NvbnRleHQgPVxuICAgICAgIXRoaXMud2lkZ2V0Q29tcG9uZW50Py5pc0RldmljZVR5cGVEYXNoYm9hcmQgJiYgdGhpcy5jb25maWc/LmFsbG93Q2hhbmdpbmdDb250ZXh0ICE9PSBmYWxzZTtcbiAgICB0aGlzLmRhdGFwb2ludFNlbGVjdG9yXG4gICAgICAuc2VsZWN0RGF0YVBvaW50cyh7XG4gICAgICAgIC4uLih0aGlzLmNvbmZpZyB8fCB7fSksXG4gICAgICAgIHNlbGVjdGVkRGF0YXBvaW50czogdGhpcy50cmFuc2Zvcm1WYWx1ZSh0aGlzLmZvcm1BcnJheS52YWx1ZSksXG4gICAgICAgIGRlZmF1bHRBY3RpdmVTdGF0ZTogdHJ1ZSxcbiAgICAgICAgYWxsb3dDaGFuZ2luZ0NvbnRleHQsXG4gICAgICAgIGFsbG93U2VhcmNoOiAhdGhpcy5jb25maWc/LmNvbnRleHRBc3NldFxuICAgICAgfSlcbiAgICAgIC50aGVuKFxuICAgICAgICByZXN1bHQgPT4ge1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShyZXN1bHQpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgLy8gbm90aGluZyB0byBkbywgbW9kYWwgd2FzIGNsb3NlZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgb25JdGVtUmVtb3ZlZChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8S1BJRGV0YWlsc1tdPikge1xuICAgIGNvbnN0IGN1cnJlbnRTb3J0aW5nID0gdGhpcy5mb3JtQXJyYXkudmFsdWU7XG4gICAgbW92ZUl0ZW1JbkFycmF5KGN1cnJlbnRTb3J0aW5nLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuZm9ybUFycmF5LnNldFZhbHVlKGN1cnJlbnRTb3J0aW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtVmFsdWUoZm9ybUFycmF5VmFsdWU6IGFueVtdKSB7XG4gICAgaWYgKCFmb3JtQXJyYXlWYWx1ZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybUFycmF5VmFsdWUubWFwKHRtcCA9PiBPYmplY3QuYXNzaWduKHt9LCAuLi5PYmplY3QudmFsdWVzKHRtcCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlTWF4QWN0aXZlQ291bnQoKSB7XG4gICAgaWYgKHRoaXMubWF4QWN0aXZlQ291bnQpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRseUFjdGl2ZSA9IHRoaXMuZm9ybUFycmF5LnZhbHVlLmZpbHRlcih0bXAgPT4gdG1wLmRldGFpbHM/Ll9fYWN0aXZlKS5sZW5ndGg7XG4gICAgICB0aGlzLm1heEFjdGl2ZUNvdW50UmVhY2hlZCA9IGN1cnJlbnRseUFjdGl2ZSA+PSB0aGlzLm1heEFjdGl2ZUNvdW50O1xuICAgIH1cbiAgICB0aGlzLm1heEFjdGl2ZUNvdW50UmVhY2hlZCA9IGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgc2VwYXJhdG9yIHN0aWNreS10b3AgYmctaW5oZXJpdFwiPlxuICA8c3BhblxuICAgIGNsYXNzPVwiY2FyZC10aXRsZSBoNFwiXG4gICAgKm5nSWY9XCJsaXN0VGl0bGVcIlxuICA+XG4gICAge3sgbGlzdFRpdGxlIHwgdHJhbnNsYXRlIH19XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cImNhcmQtdGl0bGUgaDRcIlxuICAgICpuZ0lmPVwiIWxpc3RUaXRsZVwiXG4gID5cbiAgICB7eyAnRGF0YSBwb2ludHMnIHwgdHJhbnNsYXRlIH19XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG48Yzh5LWxpc3QtZ3JvdXBcbiAgY2xhc3M9XCJmbGV4LWdyb3cgZmYtc2Nyb2xsLWZpeCBjZGstZHJvcGxpc3RcIlxuICBjZGtEcm9wTGlzdFxuICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4gIFtjZGtEcm9wTGlzdERpc2FibGVkXT1cIiFhbGxvd0RyYWdBbmREcm9wIHx8IGZvcm1BcnJheS5jb250cm9scz8ubGVuZ3RoIDwgMlwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmcgbS10LThcIlxuICAgIHJvbGU9XCJhbGVydFwiXG4gICAgbmdOb25CaW5kYWJsZVxuICAgICpuZ0lmPVwiZm9ybUFycmF5LmVycm9ycz8ubWluQWN0aXZlQ291bnRcIlxuICAgIHRyYW5zbGF0ZVxuICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwiZm9ybUFycmF5LmVycm9ycz8ubWluQWN0aXZlQ291bnRcIlxuICA+XG4gICAgQXQgbGVhc3Qge3sgbWluQWN0aXZlIH19IGFjdGl2ZSBkYXRhIHBvaW50cyBtdXN0IGJlIHNlbGVjdGVkLlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIG0tdC04XCJcbiAgICByb2xlPVwiYWxlcnRcIlxuICAgIG5nTm9uQmluZGFibGVcbiAgICAqbmdJZj1cImZvcm1BcnJheS5lcnJvcnM/Lm1heEFjdGl2ZUNvdW50XCJcbiAgICB0cmFuc2xhdGVcbiAgICBbdHJhbnNsYXRlUGFyYW1zXT1cImZvcm1BcnJheS5lcnJvcnM/Lm1heEFjdGl2ZUNvdW50XCJcbiAgPlxuICAgIEF0IG1heGltdW0ge3sgbWF4QWN0aXZlIH19IGFjdGl2ZSBkYXRhIHBvaW50cyBhcmUgYWxsb3dlZCB0byBiZSBzZWxlY3RlZC5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLmFsZXJ0XCI+PC9uZy1jb250ZW50PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInAtdC04XCJcbiAgICAqbmdJZj1cIiFmb3JtQXJyYXkuY29udHJvbHM/Lmxlbmd0aFwiXG4gID5cbiAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICBjbGFzcz1cInAtdC04XCJcbiAgICAgIFtpY29uXT1cIidjOHktZGF0YS1wb2ludHMnXCJcbiAgICAgIFt0aXRsZV09XCInTm8gZGF0YSBwb2ludHMgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzdWJ0aXRsZV09XCInQWRkIHlvdXIgZmlyc3QgZGF0YSBwb2ludC4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtob3Jpem9udGFsXT1cInRydWVcIlxuICAgID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBbZm9ybUdyb3VwXT1cImRwRm9ybVwiXG4gICAgKm5nRm9yPVwibGV0IGRwRm9ybSBvZiBmb3JtQXJyYXkuY29udHJvbHM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgPlxuICAgIDxjOHktZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbVxuICAgICAgY2xhc3M9XCJkLWJsb2NrXCJcbiAgICAgIFtkZWZhdWx0Rm9ybU9wdGlvbnNdPVwiZGVmYXVsdEZvcm1PcHRpb25zXCJcbiAgICAgIFthY3RpdmVUb2dnbGVEaXNhYmxlZF09XCJtYXhBY3RpdmVDb3VudFJlYWNoZWRcIlxuICAgICAgW3Nob3dBY3RpdmVUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICBbYWRkQnV0dG9uVHlwZV09XCJBZGRCdXR0b25UeXBlcy5ub25lXCJcbiAgICAgIFtzaG93T3B0aW9uc109XCJ0cnVlXCJcbiAgICAgIFtlZGl0YWJsZV09XCJ0cnVlXCJcbiAgICAgIFtjb2xvclBpY2tlckRpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgIFthY3Rpb25zXT1cImFjdGlvbnNcIlxuICAgICAgW29wdGlvblRvUmVtb3ZlXT1cInRydWVcIlxuICAgICAgW2RhdGFwb2ludExpYnJhcnlFbnRyaWVzXT1cImRhdGFwb2ludExpYnJhcnlFbnRyaWVzXCJcbiAgICAgIFtoYXNVbmxpbmtUZW1wbGF0ZU9wdGlvbl09XCJ0cnVlXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRldGFpbHNcIlxuICAgICAgKHJlbW92ZWQpPVwib25JdGVtUmVtb3ZlZChpbmRleClcIlxuICAgICAgY2RrRHJhZ1xuICAgID5cbiAgICAgIDxjOHktbGktZHJhZy1oYW5kbGVcbiAgICAgICAgdGl0bGU9XCJ7eyAnQ2xpY2sgYW5kIGRyYWcgdG8gcmVvcmRlcicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICA+XG4gICAgICAgIDxpIGM4eUljb249XCJkcmFnLXJlb3JkZXJcIj48L2k+XG4gICAgICA8L2M4eS1saS1kcmFnLWhhbmRsZT5cbiAgICA8L2M4eS1kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtPlxuICA8L2Rpdj5cbjwvYzh5LWxpc3QtZ3JvdXA+XG5cbjxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBiZy1pbmhlcml0XCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgIFt0aXRsZV09XCInQWRkIGRhdGEgcG9pbnQnIHwgdHJhbnNsYXRlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBkYXRhLWN5PVwiYzh5LWRhdGFwb2ludC1zZWxlY3Rpb24tbGlzdC0tYWRkLWRhdGFwb2ludC1idXR0b25cIlxuICAgIChjbGljayk9XCJhZGQoKVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAge3sgJ0FkZCBkYXRhIHBvaW50JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|