axidio-styleguide-library1-v2 0.6.6 → 0.6.8
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/esm2022/lib/ax-table/ax-table.component.mjs +10 -21
- package/esm2022/lib/chart-header-v2/chart-header-v2.component.mjs +1 -2
- package/esm2022/lib/chart-header-v3/chart-header-v3.component.mjs +2 -2
- package/esm2022/lib/group-chart/group-chart.component.mjs +4 -4
- package/esm2022/lib/horizontal-grouped-bar-with-scroll-zoom/horizontal-grouped-bar-with-scroll-zoom.component.mjs +3 -3
- package/fesm2022/axidio-styleguide-library1-v2.mjs +16 -28
- package/fesm2022/axidio-styleguide-library1-v2.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -229,22 +229,8 @@ export class AxTableComponent {
|
|
|
229
229
|
this.clickEvent.emit(data);
|
|
230
230
|
}
|
|
231
231
|
getCellAlignment(value, index) {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
// return 'textalign-right';
|
|
235
|
-
// }
|
|
236
|
-
if (this.isColumnNumeric(value)) {
|
|
237
|
-
return 'textalign-right';
|
|
238
|
-
}
|
|
239
|
-
if (value === null || value === undefined) {
|
|
240
|
-
return 'textalign-left';
|
|
241
|
-
}
|
|
242
|
-
const strValue = String(value).trim();
|
|
243
|
-
// Detect numeric, date, or alphanumeric ending with numbers
|
|
244
|
-
const isNumber = !isNaN(Number(strValue));
|
|
245
|
-
const isDate = !isNaN(Date.parse(strValue));
|
|
246
|
-
const isAlphaNumericWithTrailingNumber = /^[A-Za-z]*\d+[A-Za-z0-9]*$/.test(strValue);
|
|
247
|
-
if (isNumber || isDate) {
|
|
232
|
+
const header = this.tableHeadList[index];
|
|
233
|
+
if (this.isColumnNumeric(header)) {
|
|
248
234
|
return 'textalign-right';
|
|
249
235
|
}
|
|
250
236
|
return 'textalign-left';
|
|
@@ -256,13 +242,16 @@ export class AxTableComponent {
|
|
|
256
242
|
return 'textalign-left';
|
|
257
243
|
}
|
|
258
244
|
isColumnNumeric(header) {
|
|
259
|
-
|
|
245
|
+
const listToCheck = this.currentList.length > 0 ? this.currentList : this.itemList;
|
|
246
|
+
if (!listToCheck || listToCheck.length === 0) {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
return listToCheck.some(row => {
|
|
260
250
|
const value = row[header];
|
|
261
|
-
if (value === null || value === undefined)
|
|
251
|
+
if (value === null || value === undefined || value === '')
|
|
262
252
|
return false;
|
|
263
253
|
const str = String(value).trim();
|
|
264
|
-
|
|
265
|
-
if (!isNaN(Number(str)))
|
|
254
|
+
if (!isNaN(Number(str)) && str !== '')
|
|
266
255
|
return true;
|
|
267
256
|
return false;
|
|
268
257
|
});
|
|
@@ -283,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
283
272
|
}], clickEvent: [{
|
|
284
273
|
type: Output
|
|
285
274
|
}] } });
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXgtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXhpZGlvLXN0eWxlZ3VpZGUtbGlicmFyeS9zcmMvbGliL2F4LXRhYmxlL2F4LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9heC10YWJsZS9heC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQThCMUMsTUFBTSxPQUFPLGdCQUFnQjtJQWdDM0I7UUE3QlUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0Msb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBR3ZCLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDckIsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUN2QixnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUVmLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2QixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFFL0IsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsYUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNsQyxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQWtCLEtBQUssQ0FBQztRQUNyQyxlQUFV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LFNBQVM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFFeEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRWpDLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUVyQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdHLG9CQUFvQjtRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLENBQUM7SUFDdkQsQ0FBQzsrR0FwVlUsZ0JBQWdCO21HQUFoQixnQkFBZ0IscUxDL0I3Qiw0MUlBa0ZNOzs0RkRuRE8sZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7d0RBS2YsU0FBUztzQkFBakIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IENoYXJ0SGVscGVyIGZyb20gJy4uL2NoYXJ0LWhlbHBlcic7XHJcblxyXG5pbnRlcmZhY2UgVGFibGVNZXRhRGF0YSB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgaXNQYWdpbmF0aW9uSGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0hlYWRlclZpc2libGU/OiBib29sZWFuO1xyXG4gIGlzU2VhcmNoSGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0hlYWRlckFsaWduZWRUb0NlbnRlcj86IGJvb2xlYW47XHJcbiAgaXNIZWFkZXJTb3J0SGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0ZpcnN0Q29sdW1uSGVhZGVySGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0FsbEFsaWduZWRUb1JpZ2h0PzogYm9vbGVhbjtcclxuICBoYXNEcmlsbERvd24/OiBib29sZWFuO1xyXG4gIGhlYWRlckNvbG9yPzogc3RyaW5nO1xyXG4gIGhlYWRlclRleHRDb2xvcj86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIFRhYmxlRGF0YSB7XHJcbiAgZGF0YTogYW55W107XHJcbiAgZmVhdHVyZUluZm86YW55O1xyXG4gIG1ldGFEYXRhOiBUYWJsZU1ldGFEYXRhO1xyXG4gIGhpZ2hsaWdodGVkVGV4dHM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxudHlwZSBTb3J0RGlyZWN0aW9uID0gJ2FzYycgfCAnZGVzYyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1heC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F4LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9heC10YWJsZS5jb21wb25lbnQubGVzcycsICcuLi9jb21tb24tc3R5bGVzLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF4VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHRhYmxlRGF0YSE6IFRhYmxlRGF0YTtcclxuICBASW5wdXQoKSBjdXN0b21DaGFydENvbmZpZ3VyYXRpb246IGFueTtcclxuICBAT3V0cHV0KCkgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBpc0hlYWRlclZpc2libGUgPSB0cnVlO1xyXG4gIGlzVXNlclNvcnQgPSBmYWxzZTtcclxuXHJcbiAgaXNSaWE6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIHRhYmxlSGVhZExpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgaXRlbUxpc3Q6IGFueVtdID0gW107XHJcbiAgbWFzdGVyTGlzdDogYW55W10gPSBbXTtcclxuICBjdXJyZW50TGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgcmVhZG9ubHkgREVGQVVMVF9QQUdFX1NJWkUgPSAxMDtcclxuICByZWFkb25seSBNQVhfUEFHRVNfVE9fU0hPVyA9IDU7XHJcbiAgXHJcbiAgY3VycmVudFBhZ2UgPSAxO1xyXG4gIHBhZ2VTaXplID0gdGhpcy5ERUZBVUxUX1BBR0VfU0laRTtcclxuICB0b3RhbEl0ZW1zID0gMDtcclxuICB0b3RhbFBhZ2VzID0gMTtcclxuICBnb1RvUGFnZU51bWJlciA9IDE7XHJcbiAgcGFnZXNUb1Nob3c6IG51bWJlcltdID0gW107XHJcblxyXG4gIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gPSAnYXNjJztcclxuICBzb3J0Q29sdW1uID0gJyc7XHJcblxyXG4gIGNoYXJ0Q29uZmlndXJhdGlvbjogYW55ID0ge307XHJcbiAgZGVmYXVsdENvbmZpZ3VyYXRpb246IGFueSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1JpYSA9IHRoaXMudGFibGVEYXRhPy5mZWF0dXJlSW5mbz8udWlDb25maWd1cmF0aW9uPy5jdXN0b21DaGFydENvbmZpZ3VyYXRpb24/LmlzUmlhID8/IGZhbHNlO1xyXG4gICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVDb21wb25lbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4dHJhY3RUYWJsZUhlYWRlcnMoKTtcclxuICAgIHRoaXMubWVyZ2VDb25maWd1cmF0aW9ucygpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xyXG4gICAgdGhpcy51cGRhdGVIZWFkZXJWaXNpYmlsaXR5KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RUYWJsZUhlYWRlcnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50YWJsZURhdGE/LmRhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy50YWJsZUhlYWRMaXN0ID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEuZGF0YVswXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1lcmdlQ29uZmlndXJhdGlvbnMoKTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRlZmF1bHRDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uW2tleV0gPSBDaGFydEhlbHBlci5nZXRWYWx1ZUJ5Q29uZmlndXJhdGlvblR5cGUoXHJcbiAgICAgICAga2V5LFxyXG4gICAgICAgIHRoaXMuZGVmYXVsdENvbmZpZ3VyYXRpb24sXHJcbiAgICAgICAgdGhpcy5jdXN0b21DaGFydENvbmZpZ3VyYXRpb25cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURhdGEoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hc3Rlckxpc3QgPSBbLi4udGhpcy50YWJsZURhdGEuZGF0YV07XHJcbiAgICB0aGlzLml0ZW1MaXN0ID0gWy4uLnRoaXMubWFzdGVyTGlzdF07XHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1MaXN0Lmxlbmd0aDtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzUGFnaW5hdGlvbkhpZGRlbikge1xyXG4gICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gdGhpcy5pdGVtTGlzdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlSGVhZGVyVmlzaWJpbGl0eSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclZpc2libGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzSGVhZGVyVmlzaWJsZSA9IHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyVmlzaWJsZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZFBhZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGFydEluZGV4ID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnZVNpemU7XHJcbiAgICBjb25zdCBlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyB0aGlzLnBhZ2VTaXplO1xyXG4gICAgdGhpcy5jdXJyZW50TGlzdCA9IHRoaXMuaXRlbUxpc3Quc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVUb3RhbFBhZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcyAvIHRoaXMucGFnZVNpemUpO1xyXG4gICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IHRoaXMuY3VycmVudFBhZ2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdlbmVyYXRlUGFnZXNUb1Nob3coKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VzVG9TaG93ID0gW107XHJcbiAgICBcclxuICAgIGxldCBzdGFydFBhZ2UgPSBNYXRoLm1heChcclxuICAgICAgMSxcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSAtIE1hdGguZmxvb3IodGhpcy5NQVhfUEFHRVNfVE9fU0hPVyAvIDIpXHJcbiAgICApO1xyXG4gICAgbGV0IGVuZFBhZ2UgPSBNYXRoLm1pbihcclxuICAgICAgdGhpcy50b3RhbFBhZ2VzLFxyXG4gICAgICBzdGFydFBhZ2UgKyB0aGlzLk1BWF9QQUdFU19UT19TSE9XIC0gMVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoZW5kUGFnZSAtIHN0YXJ0UGFnZSArIDEgPCB0aGlzLk1BWF9QQUdFU19UT19TSE9XKSB7XHJcbiAgICAgIHN0YXJ0UGFnZSA9IE1hdGgubWF4KDEsIGVuZFBhZ2UgLSB0aGlzLk1BWF9QQUdFU19UT19TSE9XICsgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0UGFnZTsgaSA8PSBlbmRQYWdlOyBpKyspIHtcclxuICAgICAgdGhpcy5wYWdlc1RvU2hvdy5wdXNoKGkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblBhZ2luYXRpb25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy5jdXJyZW50UGFnZTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYWdlc1RvU2hvdygpO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0ZpcnN0UGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlICE9PSAxKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub1ByZXZpb3VzUGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID4gMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLS07XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvTmV4dFBhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA8IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlKys7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvTGFzdFBhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSAhPT0gdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnRvdGFsUGFnZXM7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChwYWdlID49IDEgJiYgcGFnZSA8PSB0aGlzLnRvdGFsUGFnZXMgJiYgcGFnZSAhPT0gdGhpcy5jdXJyZW50UGFnZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZTtcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9TcGVjaWZpY1BhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5nb1RvUGFnZU51bWJlciA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFnZU51bSA9IHBhcnNlSW50KHRoaXMuZ29Ub1BhZ2VOdW1iZXIudG9TdHJpbmcoKSwgMTApO1xyXG5cclxuICAgIGlmIChpc05hTihwYWdlTnVtKSB8fCBwYWdlTnVtIDwgMSkge1xyXG4gICAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gMTtcclxuICAgIH0gZWxzZSBpZiAocGFnZU51bSA+IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy50b3RhbFBhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmdvVG9QYWdlTnVtYmVyO1xyXG4gICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHNvcnRCeUNvbHVtbihjb2x1bW5JZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoY29sdW1uSWQgPT09ICd2aWV3RGV0YWlscycgfHwgdGhpcy50YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzVXNlclNvcnQgPSB0cnVlO1xyXG5cclxuICAgIGlmIChjb2x1bW5JZCAhPT0gdGhpcy5zb3J0Q29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc29ydENvbHVtbiA9IGNvbHVtbklkO1xyXG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSAnYXNjJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBlcmZvcm1Tb3J0KGNvbHVtbklkKTtcclxuICAgIHRoaXMucmVzZXRQYWdpbmF0aW9uQWZ0ZXJTb3J0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBlcmZvcm1Tb3J0KGNvbHVtbklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBjb25zdCBjb21wYXJpc29uID0gdGhpcy5jb21wYXJlVmFsdWVzKGFbY29sdW1uSWRdLCBiW2NvbHVtbklkXSk7XHJcbiAgICAgIHJldHVybiB0aGlzLnNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gY29tcGFyaXNvbiA6IC1jb21wYXJpc29uO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXBhcmVWYWx1ZXModjE6IGFueSwgdjI6IGFueSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBudW0xID0gcGFyc2VGbG9hdCh2MSk7XHJcbiAgICBjb25zdCBudW0yID0gcGFyc2VGbG9hdCh2Mik7XHJcblxyXG4gICAgaWYgKCFpc05hTihudW0xKSAmJiAhaXNOYU4obnVtMikpIHtcclxuICAgICAgcmV0dXJuIG51bTEgLSBudW0yO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2MSA8IHYyID8gLTEgOiB2MSA+IHYyID8gMSA6IDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0UGFnaW5hdGlvbkFmdGVyU29ydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYWdlc1RvU2hvdygpO1xyXG4gICAgdGhpcy5sb2FkUGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJZkNvbHVtbkN1cnJlbnRseUJlaW5nU29ydGVkKGNvbHVtbklkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNvcnRDb2x1bW4gPT09IGNvbHVtbklkO1xyXG4gIH1cclxuXHJcbiAgZ2V0U29ydERpcmVjdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnYXJyb3ctdXAnIDogJ2Fycm93LWRvd24nO1xyXG4gIH1cclxuXHJcbiAgb25FbnRlcihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xyXG4gICAgXHJcbiAgICB0aGlzLml0ZW1MaXN0ID0gdGhpcy5maWx0ZXJJdGVtcyhzZWFyY2hUZXh0KTtcclxuICAgIHRoaXMucmVzZXRQYWdpbmF0aW9uQWZ0ZXJTZWFyY2goKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVySXRlbXMoc2VhcmNoVGV4dDogc3RyaW5nKTogYW55W10ge1xyXG4gICAgaWYgKCFzZWFyY2hUZXh0KSB7XHJcbiAgICAgIHJldHVybiBbLi4udGhpcy5tYXN0ZXJMaXN0XTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsb3dlclNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMubWFzdGVyTGlzdC5maWx0ZXIoaXRlbSA9PiBcclxuICAgICAgdGhpcy50YWJsZUhlYWRMaXN0LnNvbWUoaGVhZGVyID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1baGVhZGVyXTtcclxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnN0IHNlYXJjaGFibGVTdHJpbmcgPSBTdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgcmV0dXJuIHNlYXJjaGFibGVTdHJpbmcuaW5jbHVkZXMobG93ZXJTZWFyY2hUZXh0KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0UGFnaW5hdGlvbkFmdGVyU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1MaXN0Lmxlbmd0aDtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRXaWR0aEJ5SWQoY29sdW1uSWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICByZXR1cm4gJzEwJSc7IC8vIG9yICc4MHB4JyBmb3IgZml4ZWQgd2lkdGhcclxuICB9XHJcbiAgXHJcbiAgICBpZiAodGhpcy50YWJsZUhlYWRMaXN0Lmxlbmd0aCA9PT0gMykge1xyXG4gICAgICByZXR1cm4gaW5kZXggPT09IDEgPyAnNjAlJyA6ICcyMCUnO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCB3aWR0aCA9IDEwMCAvIHRoaXMudGFibGVIZWFkTGlzdC5sZW5ndGg7XHJcbiAgICByZXR1cm4gYCR7d2lkdGh9JWA7XHJcbiAgfVxyXG5cclxuICBwcmV2ZW50TmVnYXRpdmUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGludmFsaWRLZXlzID0gWyctJywgJysnLCAnZScsICdFJ107XHJcbiAgICBpZiAoaW52YWxpZEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVOdW1iZXJJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hhckNvZGUgPSBldmVudC53aGljaCB8fCBldmVudC5rZXlDb2RlO1xyXG4gICAgaWYgKGNoYXJDb2RlID4gMzEgJiYgKGNoYXJDb2RlIDwgNDggfHwgY2hhckNvZGUgPiA1NykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDbGljayhkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KGRhdGEpO1xyXG4gIH1cclxuZ2V0Q2VsbEFsaWdubWVudCh2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAvLyBJZiBhbGwgY29sdW1ucyBzaG91bGQgYmUgcmlnaHQgYWxpZ25lZCBnbG9iYWxseVxyXG4gIC8vIGlmICh0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc0FsbEFsaWduZWRUb1JpZ2h0KSB7XHJcbiAgLy8gICByZXR1cm4gJ3RleHRhbGlnbi1yaWdodCc7XHJcbiAgLy8gfVxyXG5cclxuICBpZiAodGhpcy5pc0NvbHVtbk51bWVyaWModmFsdWUpKSB7XHJcbiAgICByZXR1cm4gJ3RleHRhbGlnbi1yaWdodCc7XHJcbiAgfVxyXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gJ3RleHRhbGlnbi1sZWZ0JztcclxuICB9XHJcbiAgIFxyXG5cclxuICBjb25zdCBzdHJWYWx1ZSA9IFN0cmluZyh2YWx1ZSkudHJpbSgpO1xyXG5cclxuICAvLyBEZXRlY3QgbnVtZXJpYywgZGF0ZSwgb3IgYWxwaGFudW1lcmljIGVuZGluZyB3aXRoIG51bWJlcnNcclxuICBjb25zdCBpc051bWJlciA9ICFpc05hTihOdW1iZXIoc3RyVmFsdWUpKTtcclxuICBjb25zdCBpc0RhdGUgPSAhaXNOYU4oRGF0ZS5wYXJzZShzdHJWYWx1ZSkpO1xyXG4gIGNvbnN0IGlzQWxwaGFOdW1lcmljV2l0aFRyYWlsaW5nTnVtYmVyID0gL15bQS1aYS16XSpcXGQrW0EtWmEtejAtOV0qJC8udGVzdChzdHJWYWx1ZSk7XHJcblxyXG4gIGlmIChpc051bWJlciB8fCBpc0RhdGUpIHtcclxuICAgIHJldHVybiAndGV4dGFsaWduLXJpZ2h0JztcclxuICB9XHJcbiAgcmV0dXJuICd0ZXh0YWxpZ24tbGVmdCc7XHJcbn1cclxuXHJcbmdldEhlYWRlckFsaWdubWVudChoZWFkZXI6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgaWYgKHRoaXMuaXNDb2x1bW5OdW1lcmljKGhlYWRlcikpIHtcclxuICAgIHJldHVybiAndGV4dGFsaWduLXJpZ2h0JztcclxuICB9XHJcbiAgcmV0dXJuICd0ZXh0YWxpZ24tbGVmdCc7XHJcbn1cclxuaXNDb2x1bW5OdW1lcmljKGhlYWRlcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuY3VycmVudExpc3Quc29tZShyb3cgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSByb3dbaGVhZGVyXTtcclxuXHJcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHN0ciA9IFN0cmluZyh2YWx1ZSkudHJpbSgpO1xyXG5cclxuICAgIC8vIG51bWVyaWMgdmFsdWVzIGxpa2UgMSwgMjMsIDkzLjU1XHJcbiAgICBpZiAoIWlzTmFOKE51bWJlcihzdHIpKSkgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH0pO1xyXG59XHJcblxyXG5cclxuICAgIHNob3VsZFNob3dQYWdpbmF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLnRhYmxlRGF0YT8ubWV0YURhdGE/LmlzUGFnaW5hdGlvbkhpZGRlbjtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB3LTEwMFwiIFtjbGFzcy5pc3JpYV09XCJpc1JpYVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICA8bGliLWhlYWRlci1hbHQgW3RpdGxlXT1cInRhYmxlRGF0YS5tZXRhRGF0YS50aXRsZVwiIFtpc3JpYV09XCJpc1JpYVwiICpuZ0lmPVwiIWlzSGVhZGVyVmlzaWJsZVwiPjwvbGliLWhlYWRlci1hbHQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXRhYmxlRGF0YS5tZXRhRGF0YS5pc1NlYXJjaEhpZGRlblwiXHJcbiAgICBjbGFzcz1cImZvcm0tY29udHJvbCBjdXN0b20taW5wdXQgbWVkaXVtLWZvbnQtc2l6ZSB0ZXh0Ym94LWF4LWNvbW1vblwiIFtjbGFzcy5pc3JpYV09XCJpc1JpYVwiIGlkPVwiZXhhbXBsZUlucHV0RW1haWwxXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgIHBsYWNlaG9sZGVyPVwiICBTZWFyY2ggIFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJlbWFpbEhlbHBcIiAoa2V5dXApPVwib25FbnRlcigkZXZlbnQpXCIgLz5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwicG9wdXAtYm9keS1mb3Itc2Nyb2xsXCIgIFtjbGFzcy5pc3JpYV09XCJpc1JpYVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSBib3JkZXJcIj5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWQgdGFibGUtaG92ZXIgYWxpZ24tbWlkZGxlIG1iLTBcIj5cclxuICAgICAgICA8dGhlYWQgY2xhc3M9XCJ0YWJsZS1kYXJrXCI+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkTGlzdDsgaW5kZXggYXMgaVwiICBbbmdDbGFzc109XCJnZXRIZWFkZXJBbGlnbm1lbnQoaGVhZGVyLCBpKVwiIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aEJ5SWQoaGVhZGVyLCBpKVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwidGFibGVEYXRhLm1ldGFEYXRhLmhlYWRlckNvbG9yXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidGFibGVEYXRhLm1ldGFEYXRhLmhlYWRlclRleHRDb2xvclwiIChjbGljayk9XCJzb3J0QnlDb2x1bW4oaGVhZGVyKVwiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBpc1JpYSA/ICc0NXB4JyA6IG51bGwgLCBmb250U2l6ZTppc1JpYSA/ICcxNHB4JyA6IG51bGwgfVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKCF0YWJsZURhdGEubWV0YURhdGEuaXNGaXJzdENvbHVtbkhlYWRlckhpZGRlbiAmJiBpID09IDApIHx8IGkgPiAwXHJcbiAgICAgICAgICAgIFwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuXHJcbiAgICAgICAgICAgICAgICA/ICdjdXJzb3ItcG9pbnRlcidcclxuICAgICAgICAgICAgICAgIDogJ2N1cnNvci1kZWZhdWx0J1xyXG4gICAgICAgICAgICBcIj57eyBoZWFkZXIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAoIWlzVXNlclNvcnQgfHwgY2hlY2tJZkNvbHVtbkN1cnJlbnRseUJlaW5nU29ydGVkKGhlYWRlcikpICYmXHJcbiAgICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclNvcnRIaWRkZW5cclxuICAgICAgICAgICAgXCIgY2xhc3M9XCJzb3J0LWljb25zIGZhXCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgIWlzVXNlclNvcnRcclxuICAgICAgICAgICAgICAgID8gJ2ZhLXNvcnQnXHJcbiAgICAgICAgICAgICAgICA6IHNvcnREaXJlY3Rpb24gPT0gJ2FzYydcclxuICAgICAgICAgICAgICAgID8gJ2ZhLXNvcnQtYXNjJ1xyXG4gICAgICAgICAgICAgICAgOiAnZmEtc29ydC1kZXNjJ1xyXG4gICAgICAgICAgICBcIj48L2k+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcblxyXG4gICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgY3VycmVudExpc3RcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgIHRhYmxlRGF0YT8uaGlnaGxpZ2h0ZWRUZXh0cz8uaW5jbHVkZXMoc3RvcmVbdGFibGVIZWFkTGlzdFswXV0pXHJcbiAgICAgICAgICAgID8gJ2ZvbnQtd2VpZ2h0LWJvbGQnXHJcbiAgICAgICAgICAgIDogJydcclxuICAgICAgICBcIj5cclxuICAgICAgICAgICAgPHRkIChjbGljayk9XCJoYW5kbGVDbGljayhzdG9yZSlcIiBjbGFzcz1cInRhYmxlLWNlbGxcIiAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZExpc3Q7IGluZGV4IGFzIGlcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aEJ5SWQoaGVhZGVyLCBpKVwiIFxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDZWxsQWxpZ25tZW50KHN0b3JlW2hlYWRlcl0sIGkpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY3Vyc29yXT1cIlxyXG4gICAgICAgICAgICAodGFibGVEYXRhLm1ldGFEYXRhLmhhc0RyaWxsRG93biAmJiAhaXNSaWEpID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnXHJcbiAgICAgICAgICBcIj5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBzdG9yZVtoZWFkZXJdIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdJZj1cIiFjdXJyZW50TGlzdCB8fCBjdXJyZW50TGlzdC5sZW5ndGggPT09IDBcIj4gPHRkIFthdHRyLmNvbHNwYW5dPVwidGFibGVIZWFkTGlzdC5sZW5ndGhcIiBjbGFzcz1cInRleHQtY2VudGVyXCI+IE5vIGRhdGEgYXZhaWxhYmxlIDwvdGQ+IDwvdHI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb24tYmFyIG10LTBcIiBbY2xhc3MuaXNyaWFdPVwiaXNSaWFcIiAqbmdJZj1cInNob3VsZFNob3dQYWdpbmF0aW9uKClcIj5cclxuICAgICAgPHNwYW4+R28gVG88L3NwYW4+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJwYWdlLWlucHV0XCIgbWluPVwiMVwiIFttYXhdPVwidG90YWxQYWdlc1wiIChrZXl1cC5lbnRlcik9XCJnb1RvU3BlY2lmaWNQYWdlKClcIiBbKG5nTW9kZWwpXT1cImdvVG9QYWdlTnVtYmVyXCJcclxuICAgICAgICAoa2V5cHJlc3MpPVwicHJldmVudE5lZ2F0aXZlKCRldmVudClcIlxyXG4gICAgICA+XHJcblxyXG4gICAgICA8c3Bhbj4ge3sgKGN1cnJlbnRMaXN0Lmxlbmd0aCA+IDAgPyAoKGN1cnJlbnRQYWdlIC0gMSkgKiBwYWdlU2l6ZSArIDEpIDogMCkgfX0gLVxyXG4gICAgICAgIHt7ICgoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplICsgY3VycmVudExpc3QubGVuZ3RoKSB9fSBvZlxyXG4gICAgICAgIHt7IHRvdGFsSXRlbXMgfCBudW1iZXIgfX08L3NwYW4+XHJcblxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiIChjbGljayk9XCJnb1RvRmlyc3RQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJGaXJzdCBQYWdlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jaGV2cm9uLWRvdWJsZS1sZWZ0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIiAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzUGFnZSgpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIHRpdGxlPVwiUHJldmlvdXMgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1sZWZ0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXNcIiAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJOZXh0IFBhZ2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tcmlnaHRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlc1wiIChjbGljayk9XCJnb1RvTGFzdFBhZ2UoKVwiIGNsYXNzPVwicGFnaW5hdGlvbi1idG5cIiB0aXRsZT1cIkxhc3QgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1kb3VibGUtcmlnaHRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXgtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXhpZGlvLXN0eWxlZ3VpZGUtbGlicmFyeS9zcmMvbGliL2F4LXRhYmxlL2F4LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9heC10YWJsZS9heC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQThCMUMsTUFBTSxPQUFPLGdCQUFnQjtJQWdDM0I7UUE3QlUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0Msb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBR3ZCLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDckIsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUN2QixnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUVmLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2QixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFFL0IsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsYUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNsQyxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQWtCLEtBQUssQ0FBQztRQUNyQyxlQUFV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LENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdHLG9CQUFvQjtRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLENBQUM7SUFDdkQsQ0FBQzsrR0F4VVUsZ0JBQWdCO21HQUFoQixnQkFBZ0IscUxDL0I3Qiw0MUlBa0ZNOzs0RkRuRE8sZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7d0RBS2YsU0FBUztzQkFBakIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IENoYXJ0SGVscGVyIGZyb20gJy4uL2NoYXJ0LWhlbHBlcic7XHJcblxyXG5pbnRlcmZhY2UgVGFibGVNZXRhRGF0YSB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgaXNQYWdpbmF0aW9uSGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0hlYWRlclZpc2libGU/OiBib29sZWFuO1xyXG4gIGlzU2VhcmNoSGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0hlYWRlckFsaWduZWRUb0NlbnRlcj86IGJvb2xlYW47XHJcbiAgaXNIZWFkZXJTb3J0SGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0ZpcnN0Q29sdW1uSGVhZGVySGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0FsbEFsaWduZWRUb1JpZ2h0PzogYm9vbGVhbjtcclxuICBoYXNEcmlsbERvd24/OiBib29sZWFuO1xyXG4gIGhlYWRlckNvbG9yPzogc3RyaW5nO1xyXG4gIGhlYWRlclRleHRDb2xvcj86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIFRhYmxlRGF0YSB7XHJcbiAgZGF0YTogYW55W107XHJcbiAgZmVhdHVyZUluZm86YW55O1xyXG4gIG1ldGFEYXRhOiBUYWJsZU1ldGFEYXRhO1xyXG4gIGhpZ2hsaWdodGVkVGV4dHM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxudHlwZSBTb3J0RGlyZWN0aW9uID0gJ2FzYycgfCAnZGVzYyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1heC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F4LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9heC10YWJsZS5jb21wb25lbnQubGVzcycsICcuLi9jb21tb24tc3R5bGVzLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF4VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHRhYmxlRGF0YSE6IFRhYmxlRGF0YTtcclxuICBASW5wdXQoKSBjdXN0b21DaGFydENvbmZpZ3VyYXRpb246IGFueTtcclxuICBAT3V0cHV0KCkgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBpc0hlYWRlclZpc2libGUgPSB0cnVlO1xyXG4gIGlzVXNlclNvcnQgPSBmYWxzZTtcclxuXHJcbiAgaXNSaWE6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIHRhYmxlSGVhZExpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgaXRlbUxpc3Q6IGFueVtdID0gW107XHJcbiAgbWFzdGVyTGlzdDogYW55W10gPSBbXTtcclxuICBjdXJyZW50TGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgcmVhZG9ubHkgREVGQVVMVF9QQUdFX1NJWkUgPSAxMDtcclxuICByZWFkb25seSBNQVhfUEFHRVNfVE9fU0hPVyA9IDU7XHJcbiAgXHJcbiAgY3VycmVudFBhZ2UgPSAxO1xyXG4gIHBhZ2VTaXplID0gdGhpcy5ERUZBVUxUX1BBR0VfU0laRTtcclxuICB0b3RhbEl0ZW1zID0gMDtcclxuICB0b3RhbFBhZ2VzID0gMTtcclxuICBnb1RvUGFnZU51bWJlciA9IDE7XHJcbiAgcGFnZXNUb1Nob3c6IG51bWJlcltdID0gW107XHJcblxyXG4gIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gPSAnYXNjJztcclxuICBzb3J0Q29sdW1uID0gJyc7XHJcblxyXG4gIGNoYXJ0Q29uZmlndXJhdGlvbjogYW55ID0ge307XHJcbiAgZGVmYXVsdENvbmZpZ3VyYXRpb246IGFueSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1JpYSA9IHRoaXMudGFibGVEYXRhPy5mZWF0dXJlSW5mbz8udWlDb25maWd1cmF0aW9uPy5jdXN0b21DaGFydENvbmZpZ3VyYXRpb24/LmlzUmlhID8/IGZhbHNlO1xyXG4gICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVDb21wb25lbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4dHJhY3RUYWJsZUhlYWRlcnMoKTtcclxuICAgIHRoaXMubWVyZ2VDb25maWd1cmF0aW9ucygpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xyXG4gICAgdGhpcy51cGRhdGVIZWFkZXJWaXNpYmlsaXR5KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RUYWJsZUhlYWRlcnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50YWJsZURhdGE/LmRhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy50YWJsZUhlYWRMaXN0ID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEuZGF0YVswXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1lcmdlQ29uZmlndXJhdGlvbnMoKTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRlZmF1bHRDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uW2tleV0gPSBDaGFydEhlbHBlci5nZXRWYWx1ZUJ5Q29uZmlndXJhdGlvblR5cGUoXHJcbiAgICAgICAga2V5LFxyXG4gICAgICAgIHRoaXMuZGVmYXVsdENvbmZpZ3VyYXRpb24sXHJcbiAgICAgICAgdGhpcy5jdXN0b21DaGFydENvbmZpZ3VyYXRpb25cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURhdGEoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hc3Rlckxpc3QgPSBbLi4udGhpcy50YWJsZURhdGEuZGF0YV07XHJcbiAgICB0aGlzLml0ZW1MaXN0ID0gWy4uLnRoaXMubWFzdGVyTGlzdF07XHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1MaXN0Lmxlbmd0aDtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzUGFnaW5hdGlvbkhpZGRlbikge1xyXG4gICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gdGhpcy5pdGVtTGlzdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlSGVhZGVyVmlzaWJpbGl0eSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclZpc2libGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzSGVhZGVyVmlzaWJsZSA9IHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyVmlzaWJsZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZFBhZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGFydEluZGV4ID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnZVNpemU7XHJcbiAgICBjb25zdCBlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyB0aGlzLnBhZ2VTaXplO1xyXG4gICAgdGhpcy5jdXJyZW50TGlzdCA9IHRoaXMuaXRlbUxpc3Quc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVUb3RhbFBhZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcyAvIHRoaXMucGFnZVNpemUpO1xyXG4gICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IHRoaXMuY3VycmVudFBhZ2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdlbmVyYXRlUGFnZXNUb1Nob3coKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VzVG9TaG93ID0gW107XHJcbiAgICBcclxuICAgIGxldCBzdGFydFBhZ2UgPSBNYXRoLm1heChcclxuICAgICAgMSxcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSAtIE1hdGguZmxvb3IodGhpcy5NQVhfUEFHRVNfVE9fU0hPVyAvIDIpXHJcbiAgICApO1xyXG4gICAgbGV0IGVuZFBhZ2UgPSBNYXRoLm1pbihcclxuICAgICAgdGhpcy50b3RhbFBhZ2VzLFxyXG4gICAgICBzdGFydFBhZ2UgKyB0aGlzLk1BWF9QQUdFU19UT19TSE9XIC0gMVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoZW5kUGFnZSAtIHN0YXJ0UGFnZSArIDEgPCB0aGlzLk1BWF9QQUdFU19UT19TSE9XKSB7XHJcbiAgICAgIHN0YXJ0UGFnZSA9IE1hdGgubWF4KDEsIGVuZFBhZ2UgLSB0aGlzLk1BWF9QQUdFU19UT19TSE9XICsgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0UGFnZTsgaSA8PSBlbmRQYWdlOyBpKyspIHtcclxuICAgICAgdGhpcy5wYWdlc1RvU2hvdy5wdXNoKGkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblBhZ2luYXRpb25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy5jdXJyZW50UGFnZTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYWdlc1RvU2hvdygpO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0ZpcnN0UGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlICE9PSAxKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub1ByZXZpb3VzUGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID4gMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLS07XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvTmV4dFBhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA8IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlKys7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvTGFzdFBhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSAhPT0gdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnRvdGFsUGFnZXM7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChwYWdlID49IDEgJiYgcGFnZSA8PSB0aGlzLnRvdGFsUGFnZXMgJiYgcGFnZSAhPT0gdGhpcy5jdXJyZW50UGFnZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZTtcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9TcGVjaWZpY1BhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5nb1RvUGFnZU51bWJlciA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFnZU51bSA9IHBhcnNlSW50KHRoaXMuZ29Ub1BhZ2VOdW1iZXIudG9TdHJpbmcoKSwgMTApO1xyXG5cclxuICAgIGlmIChpc05hTihwYWdlTnVtKSB8fCBwYWdlTnVtIDwgMSkge1xyXG4gICAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gMTtcclxuICAgIH0gZWxzZSBpZiAocGFnZU51bSA+IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy50b3RhbFBhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmdvVG9QYWdlTnVtYmVyO1xyXG4gICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHNvcnRCeUNvbHVtbihjb2x1bW5JZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoY29sdW1uSWQgPT09ICd2aWV3RGV0YWlscycgfHwgdGhpcy50YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzVXNlclNvcnQgPSB0cnVlO1xyXG5cclxuICAgIGlmIChjb2x1bW5JZCAhPT0gdGhpcy5zb3J0Q29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc29ydENvbHVtbiA9IGNvbHVtbklkO1xyXG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSAnYXNjJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBlcmZvcm1Tb3J0KGNvbHVtbklkKTtcclxuICAgIHRoaXMucmVzZXRQYWdpbmF0aW9uQWZ0ZXJTb3J0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBlcmZvcm1Tb3J0KGNvbHVtbklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBjb25zdCBjb21wYXJpc29uID0gdGhpcy5jb21wYXJlVmFsdWVzKGFbY29sdW1uSWRdLCBiW2NvbHVtbklkXSk7XHJcbiAgICAgIHJldHVybiB0aGlzLnNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gY29tcGFyaXNvbiA6IC1jb21wYXJpc29uO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXBhcmVWYWx1ZXModjE6IGFueSwgdjI6IGFueSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBudW0xID0gcGFyc2VGbG9hdCh2MSk7XHJcbiAgICBjb25zdCBudW0yID0gcGFyc2VGbG9hdCh2Mik7XHJcblxyXG4gICAgaWYgKCFpc05hTihudW0xKSAmJiAhaXNOYU4obnVtMikpIHtcclxuICAgICAgcmV0dXJuIG51bTEgLSBudW0yO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2MSA8IHYyID8gLTEgOiB2MSA+IHYyID8gMSA6IDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0UGFnaW5hdGlvbkFmdGVyU29ydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYWdlc1RvU2hvdygpO1xyXG4gICAgdGhpcy5sb2FkUGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJZkNvbHVtbkN1cnJlbnRseUJlaW5nU29ydGVkKGNvbHVtbklkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNvcnRDb2x1bW4gPT09IGNvbHVtbklkO1xyXG4gIH1cclxuXHJcbiAgZ2V0U29ydERpcmVjdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnYXJyb3ctdXAnIDogJ2Fycm93LWRvd24nO1xyXG4gIH1cclxuXHJcbiAgb25FbnRlcihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xyXG4gICAgXHJcbiAgICB0aGlzLml0ZW1MaXN0ID0gdGhpcy5maWx0ZXJJdGVtcyhzZWFyY2hUZXh0KTtcclxuICAgIHRoaXMucmVzZXRQYWdpbmF0aW9uQWZ0ZXJTZWFyY2goKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVySXRlbXMoc2VhcmNoVGV4dDogc3RyaW5nKTogYW55W10ge1xyXG4gICAgaWYgKCFzZWFyY2hUZXh0KSB7XHJcbiAgICAgIHJldHVybiBbLi4udGhpcy5tYXN0ZXJMaXN0XTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsb3dlclNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMubWFzdGVyTGlzdC5maWx0ZXIoaXRlbSA9PiBcclxuICAgICAgdGhpcy50YWJsZUhlYWRMaXN0LnNvbWUoaGVhZGVyID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1baGVhZGVyXTtcclxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnN0IHNlYXJjaGFibGVTdHJpbmcgPSBTdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgcmV0dXJuIHNlYXJjaGFibGVTdHJpbmcuaW5jbHVkZXMobG93ZXJTZWFyY2hUZXh0KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0UGFnaW5hdGlvbkFmdGVyU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1MaXN0Lmxlbmd0aDtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRXaWR0aEJ5SWQoY29sdW1uSWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICByZXR1cm4gJzEwJSc7IC8vIG9yICc4MHB4JyBmb3IgZml4ZWQgd2lkdGhcclxuICB9XHJcbiAgXHJcbiAgICBpZiAodGhpcy50YWJsZUhlYWRMaXN0Lmxlbmd0aCA9PT0gMykge1xyXG4gICAgICByZXR1cm4gaW5kZXggPT09IDEgPyAnNjAlJyA6ICcyMCUnO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCB3aWR0aCA9IDEwMCAvIHRoaXMudGFibGVIZWFkTGlzdC5sZW5ndGg7XHJcbiAgICByZXR1cm4gYCR7d2lkdGh9JWA7XHJcbiAgfVxyXG5cclxuICBwcmV2ZW50TmVnYXRpdmUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGludmFsaWRLZXlzID0gWyctJywgJysnLCAnZScsICdFJ107XHJcbiAgICBpZiAoaW52YWxpZEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVOdW1iZXJJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hhckNvZGUgPSBldmVudC53aGljaCB8fCBldmVudC5rZXlDb2RlO1xyXG4gICAgaWYgKGNoYXJDb2RlID4gMzEgJiYgKGNoYXJDb2RlIDwgNDggfHwgY2hhckNvZGUgPiA1NykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDbGljayhkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KGRhdGEpO1xyXG4gIH1cclxuZ2V0Q2VsbEFsaWdubWVudCh2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICBjb25zdCBoZWFkZXIgPSB0aGlzLnRhYmxlSGVhZExpc3RbaW5kZXhdO1xyXG4gIFxyXG4gIGlmICh0aGlzLmlzQ29sdW1uTnVtZXJpYyhoZWFkZXIpKSB7XHJcbiAgICByZXR1cm4gJ3RleHRhbGlnbi1yaWdodCc7XHJcbiAgfVxyXG4gIFxyXG4gIHJldHVybiAndGV4dGFsaWduLWxlZnQnO1xyXG59XHJcblxyXG5nZXRIZWFkZXJBbGlnbm1lbnQoaGVhZGVyOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gIGlmICh0aGlzLmlzQ29sdW1uTnVtZXJpYyhoZWFkZXIpKSB7XHJcbiAgICByZXR1cm4gJ3RleHRhbGlnbi1yaWdodCc7XHJcbiAgfVxyXG4gIHJldHVybiAndGV4dGFsaWduLWxlZnQnO1xyXG59XHJcbmlzQ29sdW1uTnVtZXJpYyhoZWFkZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IGxpc3RUb0NoZWNrID0gdGhpcy5jdXJyZW50TGlzdC5sZW5ndGggPiAwID8gdGhpcy5jdXJyZW50TGlzdCA6IHRoaXMuaXRlbUxpc3Q7XHJcbiAgXHJcbiAgaWYgKCFsaXN0VG9DaGVjayB8fCBsaXN0VG9DaGVjay5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgXHJcbiAgcmV0dXJuIGxpc3RUb0NoZWNrLnNvbWUocm93ID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gcm93W2hlYWRlcl07XHJcblxyXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgY29uc3Qgc3RyID0gU3RyaW5nKHZhbHVlKS50cmltKCk7XHJcblxyXG4gICAgaWYgKCFpc05hTihOdW1iZXIoc3RyKSkgJiYgc3RyICE9PSAnJykgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH0pO1xyXG59XHJcblxyXG5cclxuICAgIHNob3VsZFNob3dQYWdpbmF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLnRhYmxlRGF0YT8ubWV0YURhdGE/LmlzUGFnaW5hdGlvbkhpZGRlbjtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB3LTEwMFwiIFtjbGFzcy5pc3JpYV09XCJpc1JpYVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICA8bGliLWhlYWRlci1hbHQgW3RpdGxlXT1cInRhYmxlRGF0YS5tZXRhRGF0YS50aXRsZVwiIFtpc3JpYV09XCJpc1JpYVwiICpuZ0lmPVwiIWlzSGVhZGVyVmlzaWJsZVwiPjwvbGliLWhlYWRlci1hbHQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXRhYmxlRGF0YS5tZXRhRGF0YS5pc1NlYXJjaEhpZGRlblwiXHJcbiAgICBjbGFzcz1cImZvcm0tY29udHJvbCBjdXN0b20taW5wdXQgbWVkaXVtLWZvbnQtc2l6ZSB0ZXh0Ym94LWF4LWNvbW1vblwiIFtjbGFzcy5pc3JpYV09XCJpc1JpYVwiIGlkPVwiZXhhbXBsZUlucHV0RW1haWwxXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgIHBsYWNlaG9sZGVyPVwiICBTZWFyY2ggIFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJlbWFpbEhlbHBcIiAoa2V5dXApPVwib25FbnRlcigkZXZlbnQpXCIgLz5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwicG9wdXAtYm9keS1mb3Itc2Nyb2xsXCIgIFtjbGFzcy5pc3JpYV09XCJpc1JpYVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSBib3JkZXJcIj5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWQgdGFibGUtaG92ZXIgYWxpZ24tbWlkZGxlIG1iLTBcIj5cclxuICAgICAgICA8dGhlYWQgY2xhc3M9XCJ0YWJsZS1kYXJrXCI+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkTGlzdDsgaW5kZXggYXMgaVwiICBbbmdDbGFzc109XCJnZXRIZWFkZXJBbGlnbm1lbnQoaGVhZGVyLCBpKVwiIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aEJ5SWQoaGVhZGVyLCBpKVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwidGFibGVEYXRhLm1ldGFEYXRhLmhlYWRlckNvbG9yXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidGFibGVEYXRhLm1ldGFEYXRhLmhlYWRlclRleHRDb2xvclwiIChjbGljayk9XCJzb3J0QnlDb2x1bW4oaGVhZGVyKVwiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBpc1JpYSA/ICc0NXB4JyA6IG51bGwgLCBmb250U2l6ZTppc1JpYSA/ICcxNHB4JyA6IG51bGwgfVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKCF0YWJsZURhdGEubWV0YURhdGEuaXNGaXJzdENvbHVtbkhlYWRlckhpZGRlbiAmJiBpID09IDApIHx8IGkgPiAwXHJcbiAgICAgICAgICAgIFwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuXHJcbiAgICAgICAgICAgICAgICA/ICdjdXJzb3ItcG9pbnRlcidcclxuICAgICAgICAgICAgICAgIDogJ2N1cnNvci1kZWZhdWx0J1xyXG4gICAgICAgICAgICBcIj57eyBoZWFkZXIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAoIWlzVXNlclNvcnQgfHwgY2hlY2tJZkNvbHVtbkN1cnJlbnRseUJlaW5nU29ydGVkKGhlYWRlcikpICYmXHJcbiAgICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclNvcnRIaWRkZW5cclxuICAgICAgICAgICAgXCIgY2xhc3M9XCJzb3J0LWljb25zIGZhXCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgIWlzVXNlclNvcnRcclxuICAgICAgICAgICAgICAgID8gJ2ZhLXNvcnQnXHJcbiAgICAgICAgICAgICAgICA6IHNvcnREaXJlY3Rpb24gPT0gJ2FzYydcclxuICAgICAgICAgICAgICAgID8gJ2ZhLXNvcnQtYXNjJ1xyXG4gICAgICAgICAgICAgICAgOiAnZmEtc29ydC1kZXNjJ1xyXG4gICAgICAgICAgICBcIj48L2k+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcblxyXG4gICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgY3VycmVudExpc3RcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgIHRhYmxlRGF0YT8uaGlnaGxpZ2h0ZWRUZXh0cz8uaW5jbHVkZXMoc3RvcmVbdGFibGVIZWFkTGlzdFswXV0pXHJcbiAgICAgICAgICAgID8gJ2ZvbnQtd2VpZ2h0LWJvbGQnXHJcbiAgICAgICAgICAgIDogJydcclxuICAgICAgICBcIj5cclxuICAgICAgICAgICAgPHRkIChjbGljayk9XCJoYW5kbGVDbGljayhzdG9yZSlcIiBjbGFzcz1cInRhYmxlLWNlbGxcIiAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZExpc3Q7IGluZGV4IGFzIGlcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aEJ5SWQoaGVhZGVyLCBpKVwiIFxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDZWxsQWxpZ25tZW50KHN0b3JlW2hlYWRlcl0sIGkpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY3Vyc29yXT1cIlxyXG4gICAgICAgICAgICAodGFibGVEYXRhLm1ldGFEYXRhLmhhc0RyaWxsRG93biAmJiAhaXNSaWEpID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnXHJcbiAgICAgICAgICBcIj5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBzdG9yZVtoZWFkZXJdIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdJZj1cIiFjdXJyZW50TGlzdCB8fCBjdXJyZW50TGlzdC5sZW5ndGggPT09IDBcIj4gPHRkIFthdHRyLmNvbHNwYW5dPVwidGFibGVIZWFkTGlzdC5sZW5ndGhcIiBjbGFzcz1cInRleHQtY2VudGVyXCI+IE5vIGRhdGEgYXZhaWxhYmxlIDwvdGQ+IDwvdHI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb24tYmFyIG10LTBcIiBbY2xhc3MuaXNyaWFdPVwiaXNSaWFcIiAqbmdJZj1cInNob3VsZFNob3dQYWdpbmF0aW9uKClcIj5cclxuICAgICAgPHNwYW4+R28gVG88L3NwYW4+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJwYWdlLWlucHV0XCIgbWluPVwiMVwiIFttYXhdPVwidG90YWxQYWdlc1wiIChrZXl1cC5lbnRlcik9XCJnb1RvU3BlY2lmaWNQYWdlKClcIiBbKG5nTW9kZWwpXT1cImdvVG9QYWdlTnVtYmVyXCJcclxuICAgICAgICAoa2V5cHJlc3MpPVwicHJldmVudE5lZ2F0aXZlKCRldmVudClcIlxyXG4gICAgICA+XHJcblxyXG4gICAgICA8c3Bhbj4ge3sgKGN1cnJlbnRMaXN0Lmxlbmd0aCA+IDAgPyAoKGN1cnJlbnRQYWdlIC0gMSkgKiBwYWdlU2l6ZSArIDEpIDogMCkgfX0gLVxyXG4gICAgICAgIHt7ICgoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplICsgY3VycmVudExpc3QubGVuZ3RoKSB9fSBvZlxyXG4gICAgICAgIHt7IHRvdGFsSXRlbXMgfCBudW1iZXIgfX08L3NwYW4+XHJcblxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiIChjbGljayk9XCJnb1RvRmlyc3RQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJGaXJzdCBQYWdlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jaGV2cm9uLWRvdWJsZS1sZWZ0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIiAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzUGFnZSgpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIHRpdGxlPVwiUHJldmlvdXMgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1sZWZ0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXNcIiAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJOZXh0IFBhZ2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tcmlnaHRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlc1wiIChjbGljayk9XCJnb1RvTGFzdFBhZ2UoKVwiIGNsYXNzPVwicGFnaW5hdGlvbi1idG5cIiB0aXRsZT1cIkxhc3QgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1kb3VibGUtcmlnaHRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -17,7 +17,6 @@ export class ChartHeaderV2Component {
|
|
|
17
17
|
this.clickEvent.emit(d);
|
|
18
18
|
}
|
|
19
19
|
isZoomOutSelected(isZoomOut, event) {
|
|
20
|
-
this.isZoomedOut = isZoomOut;
|
|
21
20
|
this.zoomInZoomOutClick.emit({ isZoomOut: isZoomOut, event: event });
|
|
22
21
|
}
|
|
23
22
|
handleGaugeChartVisibility() {
|
|
@@ -55,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
55
54
|
}], compareByFilterSelection: [{
|
|
56
55
|
type: Output
|
|
57
56
|
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaGVhZGVyLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9jaGFydC1oZWFkZXItdjIvY2hhcnQtaGVhZGVyLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9jaGFydC1oZWFkZXItdjIvY2hhcnQtaGVhZGVyLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU92RSxNQUFNLE9BQU8sc0JBQXNCO0lBTG5DO1FBUVksZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM5Qyw2QkFBd0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRzVELGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixnQkFBVyxHQUFZLElBQUksQ0FBQztRQThCNUIsY0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDO0tBQ0g7SUE5QkMsV0FBVyxDQUFDLENBQU07UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELGlCQUFpQixDQUFDLFNBQVMsRUFBRSxLQUFLO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCwwQkFBMEI7UUFDeEIsSUFDRSxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQztZQUN0RCxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUMzQyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0EsY0FBYztRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUNELDhCQUE4QixDQUFDLEtBQUs7UUFDbEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDOytHQXRDVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixnUkNQbkMsb3VIQXdGQTs7NEZEakZhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS3RCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNFLHdCQUF3QjtzQkFBakMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jaGFydC1oZWFkZXItdjInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFydC1oZWFkZXItdjIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jaGFydC1oZWFkZXItdjIuY29tcG9uZW50Lmxlc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hhcnRIZWFkZXJWMkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY2hhcnREYXRhOiBhbnk7XHJcbiAgQElucHV0KCkgY2hhcnRDb25maWd1cmF0aW9uOiBhbnk7XHJcbiAgQE91dHB1dCgpIGNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgem9vbUluWm9vbU91dENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiBAT3V0cHV0KCkgY29tcGFyZUJ5RmlsdGVyU2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cclxuICBpc0REMU9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0REMk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1pvb21lZE91dDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cclxuICBoYW5kbGVDbGljayhkOiBhbnkpIHtcclxuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KGQpO1xyXG4gIH1cclxuICBpc1pvb21PdXRTZWxlY3RlZChpc1pvb21PdXQsIGV2ZW50KSB7XHJcbiAgICB0aGlzLnpvb21Jblpvb21PdXRDbGljay5lbWl0KHsgaXNab29tT3V0OiBpc1pvb21PdXQsIGV2ZW50OiBldmVudCB9KTtcclxuICB9XHJcbiAgaGFuZGxlR2F1Z2VDaGFydFZpc2liaWxpdHkoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHBhcnNlRmxvYXQodGhpcy5jaGFydERhdGE/Lm1ldGFEYXRhPy5jdXJyZW50VmFsdWUpID4gMCB8fFxyXG4gICAgICBwYXJzZUZsb2F0KHRoaXMuY2hhcnREYXRhPy5kYXRhPy52YWx1ZSkgPiAwXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gICBoYW5kbGVERDFDbGljaygpIHtcclxuICAgIHRoaXMuaXNERDFPcGVuID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNERDJPcGVuID0gZmFsc2U7XHJcbiAgfVxyXG4gIGhhbmRsZUREMkNsaWNrKCkge1xyXG4gICAgdGhpcy5pc0REMk9wZW4gPSB0cnVlO1xyXG4gICAgdGhpcy5pc0REMU9wZW4gPSBmYWxzZTtcclxuICB9XHJcbiAgaGFuZGxlQ29tcGFyZUJ5RmlsdGVyU2VsZWN0aW9uKGV2ZW50KSB7XHJcbiAgICB0aGlzLmNvbXBhcmVCeUZpbHRlclNlbGVjdGlvbi5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgXHJcbiAga2VlcE9yZGVyID0gKGEsIGIpID0+IHtcclxuICAgIHJldHVybiBhO1xyXG4gIH07XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaGVhZGVydjIgbGliLWRpc3BsYXktZmxleCBoZWFkZXItdGl0bGUtc3R5bGVzIFwiXHJcbiAgIFtuZ0NsYXNzXT1cIidsaWItanVzdGlmeS1jb250ZW50LWVuZCdcIlxyXG4+XHJcbiAgPCEtLSA8c3BhbiBbbmdDbGFzc109XCIhY2hhcnRDb25maWd1cmF0aW9uLmlzVGl0bGVIaWRkZW4gPyAnJyA6ICdoaWRkZW4nXCI+XHJcbiAgICA8bGliLWhlYWRlci1hbHQgW3RpdGxlXT1cImNoYXJ0RGF0YS5tZXRhRGF0YS50aXRsZVwiPjwvbGliLWhlYWRlci1hbHQ+XHJcbiAgPC9zcGFuPiAtLT5cclxuICA8c3BhblxyXG4gICAgKm5nSWY9XCJcclxuICAgICAgKGNoYXJ0RGF0YS5kcm9wZG93bkRhdGExICYmXHJcbiAgICAgICAgY2hhcnREYXRhLm1ldGFEYXRhLmJyZWFkY3J1bWJMZW5ndGggJiZcclxuICAgICAgICBjaGFydERhdGEubWV0YURhdGEuYnJlYWRjcnVtYkxlbmd0aCA9PSAxICYmXHJcbiAgICAgICAgKGNoYXJ0Q29uZmlndXJhdGlvbj8uaXNUb2dnbGVWaXNpYmxlIHx8XHJcbiAgICAgICAgICBjaGFydERhdGEubWV0YURhdGEuaXNUb2dnbGVWaXNpYmxlKSkgfHxcclxuICAgICAgKGNoYXJ0RGF0YS5tZXRhRGF0YS5icmVhZGNydW1iTGVuZ3RoID4gMSAmJlxyXG4gICAgICAgICFjaGFydERhdGEuZHJvcGRvd25EYXRhMSAmJlxyXG4gICAgICAgIChjaGFydENvbmZpZ3VyYXRpb24/LmlzVG9nZ2xlVmlzaWJsZSB8fFxyXG4gICAgICAgICAgY2hhcnREYXRhLm1ldGFEYXRhLmlzVG9nZ2xlVmlzaWJsZSkpIHx8XHJcbiAgICAgIChjaGFydERhdGEuZHJvcGRvd25EYXRhMiAmJlxyXG4gICAgICAgICFjaGFydERhdGEuZHJvcGRvd25EYXRhMSAmJlxyXG4gICAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5icmVhZGNydW1iTGVuZ3RoID09IDEgJiZcclxuICAgICAgICAoY2hhcnRDb25maWd1cmF0aW9uPy5pc1RvZ2dsZVZpc2libGUgfHxcclxuICAgICAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5pc1RvZ2dsZVZpc2libGUpKSB8fFxyXG4gICAgICAoKGNoYXJ0RGF0YS5tZXRhRGF0YS50eXBlID09ICdHQVVHRScgfHxcclxuICAgICAgICBjaGFydERhdGEubWV0YURhdGEudHlwZSA9PSAnTlVNQkVSQ0hBUlQnKSAmJlxyXG4gICAgICAgIGNoYXJ0Q29uZmlndXJhdGlvbi5pc1RvZ2dsZVZpc2libGUgJiZcclxuICAgICAgICBoYW5kbGVHYXVnZUNoYXJ0VmlzaWJpbGl0eSgpKVxyXG4gICAgXCJcclxuICAgIGNsYXNzPVwibWFyZ2luTGVmdC0yMCBmbGV4LWlubGluZSBtYXJnaW5SaWdodC0xNVwiXHJcbiAgPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmb250LXNpemUtMlwiPlRyZW5kaW5nPC9zcGFuPlxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJzd2l0Y2hcIlxyXG4gICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgaGFuZGxlQ2xpY2soXHJcbiAgICAgICAgICBjaGFydERhdGEubWV0YURhdGEudHlwZSA9PSAnTlVNQkVSQ0hBUlQnXHJcbiAgICAgICAgICAgID8geyB0b2dnbGVGcm9tOiAncGxhaW5UcmVuZCcgfVxyXG4gICAgICAgICAgICA6IGNoYXJ0RGF0YS5tZXRhRGF0YS50eXBlID09ICdHQVVHRSdcclxuICAgICAgICAgICAgPyB7IHRvZ2dsZUZyb206ICdnYXVnZScgfVxyXG4gICAgICAgICAgICA6IGNoYXJ0RGF0YS5tZXRhRGF0YS50b2dnbGVWZXJzaW9uXHJcbiAgICAgICAgICAgID8geyB0b2dnbGVGcm9tOiAnZ3JvdXBjaGFydC12MScgfVxyXG4gICAgICAgICAgICA6IHsgdG9nZ2xlRnJvbTogJ2dyb3VwY2hhcnQnIH1cclxuICAgICAgICApXHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAvPlxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICdzbGlkZXIxIHJvdW5kMSc6IGNoYXJ0RGF0YSAmJiBjaGFydERhdGEubWV0YURhdGEuaXNUb2dnbGVkLFxyXG4gICAgICAgICAgJ3NsaWRlciByb3VuZCc6IGNoYXJ0RGF0YSAmJiAhY2hhcnREYXRhLm1ldGFEYXRhLmlzVG9nZ2xlZFxyXG4gICAgICAgIH1cIlxyXG4gICAgICA+PC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmb250LXNpemUtMlwiPkF2ZXJhZ2U8L3NwYW4+XHJcbiAgPC9zcGFuPlxyXG4gIDxkaXYgY2xhc3M9XCJsaWItZGlzcGxheS1mbGV4IGhlYWRlci10aXRsZS1zdHlsZXNcIj4gIFxyXG4gIDxzcGFuIGNsYXNzPVwiZGlzcGxheS1mbGV4XCI+XHJcbiAgICA8IS0tIDxzcGFuICpuZ0lmPVwiXHJcbiAgICAgICAgY2hhcnREYXRhLmRyb3Bkb3duRGF0YTEgJiZcclxuICAgICAgICBjaGFydERhdGEubWV0YURhdGEuYnJlYWRjcnVtYkxlbmd0aCAmJlxyXG4gICAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5icmVhZGNydW1iTGVuZ3RoID09IDFcclxuICAgICAgXCI+XHJcbiAgICAgIDxsaWItZHJvcGRvd24gW2Ryb3Bkb3duRGF0YV09XCJjaGFydERhdGEuZHJvcGRvd25EYXRhMVwiIFtpc0Ryb3Bkb3duT3Blbl09XCJ0aGlzLmlzREQxT3BlblwiXHJcbiAgICAgICAgKGRkQ2xpY2tlZCk9XCJoYW5kbGVERDFDbGljaygpXCIgKHNlbGVjdGVkRnJvbURyb3Bkb3duKT1cImhhbmRsZUNvbXBhcmVCeUZpbHRlclNlbGVjdGlvbigkZXZlbnQpXCI+PC9saWItZHJvcGRvd24+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8c3BhbiAqbmdJZj1cIlxyXG4gICAgICAgIGNoYXJ0RGF0YS5kcm9wZG93bkRhdGEyICYmXHJcbiAgICAgICAgY2hhcnREYXRhLm1ldGFEYXRhLmJyZWFkY3J1bWJMZW5ndGggJiZcclxuICAgICAgICBjaGFydERhdGEubWV0YURhdGEuYnJlYWRjcnVtYkxlbmd0aCA9PSAxXHJcbiAgICAgIFwiPlxyXG4gICAgICA8bGliLWRyb3Bkb3duIFtkcm9wZG93bkRhdGFdPVwiY2hhcnREYXRhLmRyb3Bkb3duRGF0YTJcIiBbaXNEcm9wZG93bk9wZW5dPVwidGhpcy5pc0REMk9wZW5cIlxyXG4gICAgICAgIChkZENsaWNrZWQpPVwiaGFuZGxlREQyQ2xpY2soKVwiIChzZWxlY3RlZEZyb21Ecm9wZG93bik9XCJoYW5kbGVDb21wYXJlQnlGaWx0ZXJTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgW2lzQ2hlY2tib3hWaXNpYmxlXT1cImNoYXJ0RGF0YS5tZXRhRGF0YS5pc0NoZWNrYm94VmlzaWJsZVwiXHJcbiAgICAgICAgW2Ryb3Bkb3duSGVhZGVyTmFtZV09XCJjaGFydERhdGEubWV0YURhdGEuZHJvcGRvd25IZWFkZXJOYW1lXCI+PC9saWItZHJvcGRvd24+XHJcbiAgICA8L3NwYW4+IC0tPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ6b29tSWNvbnMtaG9sZGVyXCIgKm5nSWY9XCJjaGFydERhdGEuZGF0YSAmJiBjaGFydERhdGEuZGF0YS5sZW5ndGggPiA4XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiem9vbUljb25zXCIgdGl0bGU9XCJab29tIEluXCIgW25nQ2xhc3NdPVwiIWlzWm9vbWVkT3V0ID8gJ3pvb20tYWN0aXZlJyA6ICd6b29tLWluYWN0aXZlJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImlzWm9vbU91dFNlbGVjdGVkKGZhbHNlLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2gtcGx1c1wiPjwvaT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInpvb21JY29uc1wiIHRpdGxlPVwiWm9vbSBPdXRcIiBbbmdDbGFzc109XCJpc1pvb21lZE91dCA/ICd6b29tLWFjdGl2ZScgOiAnem9vbS1pbmFjdGl2ZSdcIlxyXG4gICAgICAgIChjbGljayk9XCJpc1pvb21PdXRTZWxlY3RlZCh0cnVlLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2gtbWludXNcIj48L2k+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbjwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -36,11 +36,11 @@ export class ChartHeaderV3Component {
|
|
|
36
36
|
this.zoomInZoomOutClick.emit({ isZoomOut: this.isZoomedOut, event: event });
|
|
37
37
|
}
|
|
38
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChartHeaderV3Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChartHeaderV3Component, selector: "lib-chart-header-v3", inputs: { chartData: "chartData", chartConfiguration: "chartConfiguration" }, outputs: { compareByFilterSelection: "compareByFilterSelection", zoomInZoomOutClick: "zoomInZoomOutClick" }, ngImport: i0, template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <!-- <span class=\"display-flex\"> -->\r\n <!-- <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span> -->\r\n <!-- <span class=\"zoomIcons-holder\" *ngIf=\"chartData.data && chartData.data.length > 8\">\r\n <span class=\"zoomIcons\" title=\"Zoom In\" [ngClass]=\"!isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(false, $event)\">\r\n <i class=\"fa fa-search-plus\"></i>\r\n </span>\r\n <span class=\"zoomIcons\" title=\"Zoom Out\" [ngClass]=\"isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(true, $event)\">\r\n <i class=\"fa fa-search-minus\"></i>\r\n </span>\r\n </span>\r\n </span> -->\r\n</div>", styles: [".invisible{visibility:hidden}.hidden{visibility:hidden!important}.content-hidden{visibility:hidden}.opacity-hidden{opacity:0;pointer-events:none}@media (min-height: 500px){.legend-width{max-width:550px;overflow:auto}}@media (min-height: 900px){.header-title-styles{margin-left:
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChartHeaderV3Component, selector: "lib-chart-header-v3", inputs: { chartData: "chartData", chartConfiguration: "chartConfiguration" }, outputs: { compareByFilterSelection: "compareByFilterSelection", zoomInZoomOutClick: "zoomInZoomOutClick" }, ngImport: i0, template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <!-- <span class=\"display-flex\"> -->\r\n <!-- <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span> -->\r\n <!-- <span class=\"zoomIcons-holder\" *ngIf=\"chartData.data && chartData.data.length > 8\">\r\n <span class=\"zoomIcons\" title=\"Zoom In\" [ngClass]=\"!isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(false, $event)\">\r\n <i class=\"fa fa-search-plus\"></i>\r\n </span>\r\n <span class=\"zoomIcons\" title=\"Zoom Out\" [ngClass]=\"isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(true, $event)\">\r\n <i class=\"fa fa-search-minus\"></i>\r\n </span>\r\n </span>\r\n </span> -->\r\n</div>", styles: [".invisible{visibility:hidden}.hidden{visibility:hidden!important}.content-hidden{visibility:hidden}.opacity-hidden{opacity:0;pointer-events:none}@media (min-height: 500px){.legend-width{max-width:550px;overflow:auto}}@media (min-height: 900px){.header-title-styles{margin-left:35px;margin-top:12px;margin-bottom:25px}.legend-width{max-width:700px;overflow:auto}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] }); }
|
|
40
40
|
}
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChartHeaderV3Component, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
|
-
args: [{ selector: 'lib-chart-header-v3', template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <!-- <span class=\"display-flex\"> -->\r\n <!-- <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span> -->\r\n <!-- <span class=\"zoomIcons-holder\" *ngIf=\"chartData.data && chartData.data.length > 8\">\r\n <span class=\"zoomIcons\" title=\"Zoom In\" [ngClass]=\"!isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(false, $event)\">\r\n <i class=\"fa fa-search-plus\"></i>\r\n </span>\r\n <span class=\"zoomIcons\" title=\"Zoom Out\" [ngClass]=\"isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(true, $event)\">\r\n <i class=\"fa fa-search-minus\"></i>\r\n </span>\r\n </span>\r\n </span> -->\r\n</div>", styles: [".invisible{visibility:hidden}.hidden{visibility:hidden!important}.content-hidden{visibility:hidden}.opacity-hidden{opacity:0;pointer-events:none}@media (min-height: 500px){.legend-width{max-width:550px;overflow:auto}}@media (min-height: 900px){.header-title-styles{margin-left:
|
|
43
|
+
args: [{ selector: 'lib-chart-header-v3', template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <!-- <span class=\"display-flex\"> -->\r\n <!-- <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span> -->\r\n <!-- <span class=\"zoomIcons-holder\" *ngIf=\"chartData.data && chartData.data.length > 8\">\r\n <span class=\"zoomIcons\" title=\"Zoom In\" [ngClass]=\"!isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(false, $event)\">\r\n <i class=\"fa fa-search-plus\"></i>\r\n </span>\r\n <span class=\"zoomIcons\" title=\"Zoom Out\" [ngClass]=\"isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(true, $event)\">\r\n <i class=\"fa fa-search-minus\"></i>\r\n </span>\r\n </span>\r\n </span> -->\r\n</div>", styles: [".invisible{visibility:hidden}.hidden{visibility:hidden!important}.content-hidden{visibility:hidden}.opacity-hidden{opacity:0;pointer-events:none}@media (min-height: 500px){.legend-width{max-width:550px;overflow:auto}}@media (min-height: 900px){.header-title-styles{margin-left:35px;margin-top:12px;margin-bottom:25px}.legend-width{max-width:700px;overflow:auto}}\n"] }]
|
|
44
44
|
}], propDecorators: { chartData: [{
|
|
45
45
|
type: Input
|
|
46
46
|
}], chartConfiguration: [{
|