@eui/ecl 18.2.0 → 18.2.1-snapshot-1727953374536
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/docs/components/EclFileItemComponent.html +86 -0
- package/docs/components/EclInpageNavigationComponent.html +1 -1
- package/docs/components/EclInpageNavigationItemComponent.html +69 -0
- package/docs/components/EclSiteHeaderLoginComponent.html +1 -1
- package/docs/dependencies.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/lib/components/ecl-date-picker/ecl-date-picker.directive.mjs +12 -11
- package/esm2022/lib/components/ecl-file/ecl-file-item/ecl-file-item.component.mjs +6 -2
- package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.mjs +6 -2
- package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.component.mjs +3 -3
- package/esm2022/lib/components/ecl-site-header/login/ecl-site-header-login.component.mjs +3 -3
- package/fesm2022/eui-ecl.mjs +25 -16
- package/fesm2022/eui-ecl.mjs.map +1 -1
- package/lib/components/ecl-date-picker/ecl-date-picker.directive.d.ts +2 -1
- package/lib/components/ecl-date-picker/ecl-date-picker.directive.d.ts.map +1 -1
- package/lib/components/ecl-file/ecl-file-item/ecl-file-item.component.d.ts +1 -0
- package/lib/components/ecl-file/ecl-file-item/ecl-file-item.component.d.ts.map +1 -1
- package/lib/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.d.ts +1 -0
- package/lib/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { isPlatformBrowser } from '@angular/common';
|
|
3
3
|
import { Directive, EventEmitter, HostBinding, HostListener, Inject, Input, Output, PLATFORM_ID, forwardRef, } from '@angular/core';
|
|
4
4
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
-
import {
|
|
5
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
6
6
|
import { EclBaseEvent } from '../../model/ecl-base.event';
|
|
7
7
|
import { ECLBaseDirective } from '../ecl-base.directive';
|
|
8
8
|
import { EclIconComponent } from '../ecl-icon/ecl-icon.component';
|
|
@@ -47,7 +47,6 @@ export class EclDatePickerDirective extends ECLBaseDirective {
|
|
|
47
47
|
this.type = 'text';
|
|
48
48
|
this.datePicked = new EventEmitter();
|
|
49
49
|
this.isDisabled = null;
|
|
50
|
-
this.pickerInitialized$ = new BehaviorSubject(false);
|
|
51
50
|
this.destroy$ = new Subject();
|
|
52
51
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
52
|
this.onChange = noop;
|
|
@@ -81,16 +80,10 @@ export class EclDatePickerDirective extends ECLBaseDirective {
|
|
|
81
80
|
}
|
|
82
81
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
83
82
|
writeValue(value) {
|
|
83
|
+
this.value = value;
|
|
84
84
|
if (this.picker) {
|
|
85
85
|
this.picker.setDate(value);
|
|
86
86
|
}
|
|
87
|
-
else {
|
|
88
|
-
this.pickerInitialized$.pipe(first(() => this.picker !== undefined)).subscribe((isInitialized) => {
|
|
89
|
-
if (isInitialized && this.picker) {
|
|
90
|
-
this.picker.setDate(value);
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
87
|
}
|
|
95
88
|
setDisabledState(isDisabled) {
|
|
96
89
|
this.isDisabled = isDisabled || null;
|
|
@@ -151,7 +144,7 @@ export class EclDatePickerDirective extends ECLBaseDirective {
|
|
|
151
144
|
}
|
|
152
145
|
},
|
|
153
146
|
});
|
|
154
|
-
this.
|
|
147
|
+
this.picker.setDate(this.value);
|
|
155
148
|
}
|
|
156
149
|
catch (error) {
|
|
157
150
|
console.error('Error importing Pikaday', error);
|
|
@@ -160,6 +153,8 @@ export class EclDatePickerDirective extends ECLBaseDirective {
|
|
|
160
153
|
handlei18nEvents() {
|
|
161
154
|
this.translateService.onLangChange.pipe(takeUntil(this.destroy$))
|
|
162
155
|
.subscribe((langChangeEvent) => {
|
|
156
|
+
this.value = this.picker.getDate();
|
|
157
|
+
this.destroyPikaday();
|
|
163
158
|
this.initPikaday().then();
|
|
164
159
|
});
|
|
165
160
|
}
|
|
@@ -196,6 +191,12 @@ export class EclDatePickerDirective extends ECLBaseDirective {
|
|
|
196
191
|
eclIconComponent.instance.baseDirective.class = 'ecl-datepicker__icon';
|
|
197
192
|
return eclIconComponent.location.nativeElement;
|
|
198
193
|
}
|
|
194
|
+
destroyPikaday() {
|
|
195
|
+
if (this.picker) {
|
|
196
|
+
this.picker.destroy();
|
|
197
|
+
this.picker = undefined;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
199
200
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EclDatePickerDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.TranslateService }, { token: i2.EclLanguageService }, { token: i0.Renderer2 }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
200
201
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: EclDatePickerDirective, selector: "input[eclDatePicker]", inputs: { yearRange: "yearRange", format: "format" }, outputs: { datePicked: "datePicked" }, host: { listeners: { "click": "onClick()", "blur": "onBlur()" }, properties: { "attr.type": "this.type", "class": "this.cssClasses", "attr.disabled": "this.isDisabled" } }, providers: [ECL_DATE_PICKER_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 }); }
|
|
201
202
|
}
|
|
@@ -230,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
230
231
|
type: HostListener,
|
|
231
232
|
args: ['blur']
|
|
232
233
|
}] } });
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtZGF0ZS1waWNrZXIvZWNsLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixXQUFXLEVBSVgsVUFBVSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUVsRSxNQUFNLGtCQUFrQixHQUFHO0lBQ3ZCLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsU0FBUyxFQUFFLFlBQVk7SUFDdkIsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDbEksUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVB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Q0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUN0QyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUM1QyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxzQkFBc0IsQ0FBQztRQUV2RSxPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDbkQsQ0FBQzs4R0F4TVEsc0JBQXNCLHVLQWtDbkIsV0FBVztrR0FsQ2Qsc0JBQXNCLHlUQUZwQixDQUFDLDhCQUE4QixDQUFDOzsyRkFFbEMsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2lCQUM5Qzs7MEJBbUNRLE1BQU07MkJBQUMsV0FBVzt5Q0FqQ2QsU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ29CLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVztnQkFHcEIsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBS1YsVUFBVTtzQkFBbkIsTUFBTTtnQkFHUCxVQUFVO3NCQURULFdBQVc7dUJBQUMsZUFBZTtnQkE0QzVCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgUHJvdmlkZXIsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMYW5nQ2hhbmdlRXZlbnQsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB0eXBlIFBpa2FkYXkgZnJvbSAncGlrYWRheSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIGZpcnN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVjbEJhc2VFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2VjbC1iYXNlLmV2ZW50JztcbmltcG9ydCB7IEVjbExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2VjbC1pY29uL2VjbC1pY29uLmNvbXBvbmVudCc7XG5cbmNvbnN0IHBpa2FkYXlEZWZhdWx0STE4biA9IHtcbiAgICBwcmV2aW91c01vbnRoOiAnUHJldmlvdXMgTW9udGgnLFxuICAgIG5leHRNb250aDogJ05leHQgTW9udGgnLFxuICAgIG1vbnRoczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10sXG4gICAgd2Vla2RheXM6IFsnU3VuZGF5JywgJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknLCAnU2F0dXJkYXknXSxcbiAgICB3ZWVrZGF5c1Nob3J0OiBbJ1N1bicsICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCddLFxufTtcblxuZXhwb3J0IGNsYXNzIEVjbERhdGVQaWNrZXJEYXRlUGlja2VkRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRlOiBEYXRlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgRUNMX0RBVEVfUElDS0VSX1ZBTFVFX0FDQ0VTU09SOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFY2xEYXRlUGlja2VyRGlyZWN0aXZlKSxcbiAgICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IG5vb3AgPSAoKTogdm9pZCA9PiB7XG4gICAgLyoqIGVtcHR5Ki9cbn07XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbZWNsRGF0ZVBpY2tlcl0nLFxuICAgIHByb3ZpZGVyczogW0VDTF9EQVRFX1BJQ0tFUl9WQUxVRV9BQ0NFU1NPUl0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbERhdGVQaWNrZXJEaXJlY3RpdmUgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB5ZWFyUmFuZ2UgPSA0MDtcbiAgICBASW5wdXQoKSBmb3JtYXQgPSAnREQtTU0tWVlZWSc7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnR5cGUnKSB0eXBlID0gJ3RleHQnO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtZGF0ZXBpY2tlcl9fZmllbGQnKV0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgZGF0ZVBpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsRGF0ZVBpY2tlckRhdGVQaWNrZWRFdmVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gICAgaXNEaXNhYmxlZCA9IG51bGw7XG5cbiAgICBwcml2YXRlIHBpY2tlcjogUGlrYWRheTtcbiAgICBwcml2YXRlIHBpY2tlckluaXRpYWxpemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICBwcml2YXRlIGhvc3RFbDogSFRNTElucHV0RWxlbWVudDtcbiAgICBwcml2YXRlIGhvc3RQYXJlbnRFbDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBob3N0V3JhcHBlckVsOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGVjbEljb25Db21wb25lbnRFbDogSFRNTEVsZW1lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlY2xMYW5ndWFnZVNlcnZpY2U6IEVjbExhbmd1YWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlaTE4bkV2ZW50cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRQaWthZGF5KCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVNYXJrdXAoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICAgIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGV4dEZpZWxkVmFsdWU6IHN0cmluZyA9IHRoaXMuaG9zdEVsLnZhbHVlO1xuXG4gICAgICAgIGlmICh0ZXh0RmllbGRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnBpY2tlcj8uZ2V0RGF0ZSgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5waWNrZXIpIHtcbiAgICAgICAgICAgIHRoaXMucGlja2VyLnNldERhdGUodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5waWNrZXJJbml0aWFsaXplZCQucGlwZShmaXJzdCgoKSA9PiB0aGlzLnBpY2tlciAhPT0gdW5kZWZpbmVkKSkuc3Vic2NyaWJlKChpc0luaXRpYWxpemVkKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzSW5pdGlhbGl6ZWQgJiYgdGhpcy5waWNrZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5waWNrZXIuc2V0RGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZCB8fCBudWxsO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGluaXRQaWthZGF5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpMThuS2V5ID0gJ2VjbC5kYXRlLXBpY2tlci5QSUtBREFZJztcbiAgICAgICAgbGV0IGkxOG5UcmFuc2xhdGlvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGkxOG5LZXkpO1xuICAgICAgICBjb25zdCBpc1JUTCA9IHRoaXMuZWNsTGFuZ3VhZ2VTZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpLmlzUnRsO1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGlzUlRMID8gJ2JvdHRvbSByaWdodCcgOiAnYm90dG9tIGxlZnQnO1xuXG4gICAgICAgIGlmICghaTE4blRyYW5zbGF0aW9uIHx8IGkxOG5UcmFuc2xhdGlvbiA9PT0gaTE4bktleSkge1xuICAgICAgICAgICAgaTE4blRyYW5zbGF0aW9uID0gcGlrYWRheURlZmF1bHRJMThuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRHluYW1pY2FsbHkgaW1wb3J0IFBpa2FkYXkgd2hlbiB0aGUgY29tcG9uZW50IGluaXRpYWxpemVzXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB7IGRlZmF1bHQ6IFBpa2FkYXkgfSA9IGF3YWl0IGltcG9ydCgncGlrYWRheScpO1xuXG4gICAgICAgICAgICAvLyBJbml0aWFsaXplIFBpa2FkYXkgYWZ0ZXIgaXQgaXMgaW1wb3J0ZWRcbiAgICAgICAgICAgIHRoaXMucGlja2VyID0gbmV3IFBpa2FkYXkoe1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgZm9ybWF0OiB0aGlzLmZvcm1hdCxcbiAgICAgICAgICAgICAgICB0aGVtZTogJ2VjbC1kYXRlcGlja2VyLXRoZW1lJyxcbiAgICAgICAgICAgICAgICB5ZWFyUmFuZ2U6IHRoaXMueWVhclJhbmdlLFxuICAgICAgICAgICAgICAgIHJlcG9zaXRpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGkxOG46IGkxOG5UcmFuc2xhdGlvbixcbiAgICAgICAgICAgICAgICBpc1JUTCxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgICAgICBzaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRoczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvblNlbGVjdDogdGhpcy5vblNlbGVjdERhdGUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBvbk9wZW4oKTogdm9pZCB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEV4dGVuZCBwaWNrZXIgc2l6ZSBvbiBtb2JpbGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdncgPSBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHwgMCwgd2luZG93LmlubmVyV2lkdGggfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsUmVjdCA9IHRoaXMuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUlRMKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwaWNrZXJNYXJnaW4gPSB2dyAtIGVsUmVjdC5yaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2dyA8IDc2OCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWwuc3R5bGUubGVmdCA9IGAke3BpY2tlck1hcmdpbn1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWwuc3R5bGUubGVmdCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBpY2tlck1hcmdpbiA9IGVsUmVjdC5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZ3IDwgNzY4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5zdHlsZS5yaWdodCA9IGAke3BpY2tlck1hcmdpbn1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWwuc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnBpY2tlckluaXRpYWxpemVkJC5uZXh0KHRydWUpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW1wb3J0aW5nIFBpa2FkYXknLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZWkxOG5FdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsYW5nQ2hhbmdlRXZlbnQ6IExhbmdDaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0UGlrYWRheSgpLnRoZW4oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNlbGVjdERhdGUoZGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVQaWNrZWQubmV4dChuZXcgRWNsRGF0ZVBpY2tlckRhdGVQaWNrZWRFdmVudChkYXRlKSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoZGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVNYXJrdXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdEVsID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpO1xuICAgICAgICB0aGlzLmhvc3RQYXJlbnRFbCA9IHRoaXMuZ2V0SG9zdFBhcmVudEVsZW1lbnQodGhpcy5ob3N0RWwpO1xuICAgICAgICB0aGlzLmhvc3RXcmFwcGVyRWwgPSB0aGlzLmNyZWF0ZUhvc3RXcmFwcGVyQ29udGFpbmVyKCk7XG4gICAgICAgIHRoaXMuZWNsSWNvbkNvbXBvbmVudEVsID0gdGhpcy5jcmVhdGVJY29uQ29tcG9uZW50KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaG9zdFBhcmVudEVsICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFBhcmVudEVsLnJlcGxhY2VDaGlsZCh0aGlzLmhvc3RXcmFwcGVyRWwsIHRoaXMuaG9zdEVsKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5ob3N0V3JhcHBlckVsLCB0aGlzLmhvc3RFbCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuaG9zdFdyYXBwZXJFbCwgdGhpcy5lY2xJY29uQ29tcG9uZW50RWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIb3N0RWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEhvc3RQYXJlbnRFbGVtZW50KGhvc3RFbDogSFRNTElucHV0RWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZShob3N0RWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSG9zdFdyYXBwZXJDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB3cmFwcGVyQ29udGFpbmVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh3cmFwcGVyQ29udGFpbmVyLCAnZWNsLWRhdGVwaWNrZXInKTtcblxuICAgICAgICByZXR1cm4gd3JhcHBlckNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUljb25Db21wb25lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCBlY2xJY29uQ29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChFY2xJY29uQ29tcG9uZW50KTtcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS5zaXplID0gJ3hzJztcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS5pY29uID0gJ2NhbGVuZGFyJztcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS5iYXNlRGlyZWN0aXZlLmNsYXNzID0gJ2VjbC1kYXRlcGlja2VyX19pY29uJztcblxuICAgICAgICByZXR1cm4gZWNsSWNvbkNvbXBvbmVudC5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIH1cbn1cbiJdfQ==
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtZGF0ZS1waWNrZXIvZWNsLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixXQUFXLEVBSVgsVUFBVSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFFbEUsTUFBTSxrQkFBa0IsR0FBRztJQUN2QixhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBQ2xJLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQztJQUN4Rixh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QUMsUUFBUSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDNUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsc0JBQXNCLENBQUM7UUFFdkUsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO0lBQ25ELENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzs4R0E3TVEsc0JBQXNCLHVLQW1DbkIsV0FBVztrR0FuQ2Qsc0JBQXNCLHlUQUZwQixDQUFDLDhCQUE4QixDQUFDOzsyRkFFbEMsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2lCQUM5Qzs7MEJBb0NRLE1BQU07MkJBQUMsV0FBVzt5Q0FsQ2QsU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ29CLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVztnQkFHcEIsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBS1YsVUFBVTtzQkFBbkIsTUFBTTtnQkFHUCxVQUFVO3NCQURULFdBQVc7dUJBQUMsZUFBZTtnQkE2QzVCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgUHJvdmlkZXIsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMYW5nQ2hhbmdlRXZlbnQsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB0eXBlIFBpa2FkYXkgZnJvbSAncGlrYWRheSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVjbEJhc2VFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2VjbC1iYXNlLmV2ZW50JztcbmltcG9ydCB7IEVjbExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2VjbC1pY29uL2VjbC1pY29uLmNvbXBvbmVudCc7XG5cbmNvbnN0IHBpa2FkYXlEZWZhdWx0STE4biA9IHtcbiAgICBwcmV2aW91c01vbnRoOiAnUHJldmlvdXMgTW9udGgnLFxuICAgIG5leHRNb250aDogJ05leHQgTW9udGgnLFxuICAgIG1vbnRoczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10sXG4gICAgd2Vla2RheXM6IFsnU3VuZGF5JywgJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknLCAnU2F0dXJkYXknXSxcbiAgICB3ZWVrZGF5c1Nob3J0OiBbJ1N1bicsICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCddLFxufTtcblxuZXhwb3J0IGNsYXNzIEVjbERhdGVQaWNrZXJEYXRlUGlja2VkRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRlOiBEYXRlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgRUNMX0RBVEVfUElDS0VSX1ZBTFVFX0FDQ0VTU09SOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFY2xEYXRlUGlja2VyRGlyZWN0aXZlKSxcbiAgICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IG5vb3AgPSAoKTogdm9pZCA9PiB7XG4gICAgLyoqIGVtcHR5Ki9cbn07XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbZWNsRGF0ZVBpY2tlcl0nLFxuICAgIHByb3ZpZGVyczogW0VDTF9EQVRFX1BJQ0tFUl9WQUxVRV9BQ0NFU1NPUl0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbERhdGVQaWNrZXJEaXJlY3RpdmUgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB5ZWFyUmFuZ2UgPSA0MDtcbiAgICBASW5wdXQoKSBmb3JtYXQgPSAnREQtTU0tWVlZWSc7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnR5cGUnKSB0eXBlID0gJ3RleHQnO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtZGF0ZXBpY2tlcl9fZmllbGQnKV0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgZGF0ZVBpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsRGF0ZVBpY2tlckRhdGVQaWNrZWRFdmVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gICAgaXNEaXNhYmxlZCA9IG51bGw7XG5cbiAgICBwcml2YXRlIHBpY2tlcjogUGlrYWRheTtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSBub29wO1xuXG4gICAgcHJpdmF0ZSBob3N0RWw6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBob3N0UGFyZW50RWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgaG9zdFdyYXBwZXJFbDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBlY2xJY29uQ29tcG9uZW50RWw6IEhUTUxFbGVtZW50O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSB2YWx1ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZWNsTGFuZ3VhZ2VTZXJ2aWNlOiBFY2xMYW5ndWFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3QsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZWkxOG5FdmVudHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5pbml0UGlrYWRheSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTWFya3VwKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBvbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRleHRGaWVsZFZhbHVlOiBzdHJpbmcgPSB0aGlzLmhvc3RFbC52YWx1ZTtcblxuICAgICAgICBpZiAodGV4dEZpZWxkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5waWNrZXI/LmdldERhdGUoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5waWNrZXIpIHtcbiAgICAgICAgICAgIHRoaXMucGlja2VyLnNldERhdGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBpbml0UGlrYWRheSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaTE4bktleSA9ICdlY2wuZGF0ZS1waWNrZXIuUElLQURBWSc7XG4gICAgICAgIGxldCBpMThuVHJhbnNsYXRpb24gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChpMThuS2V5KTtcbiAgICAgICAgY29uc3QgaXNSVEwgPSB0aGlzLmVjbExhbmd1YWdlU2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKS5pc1J0bDtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSBpc1JUTCA/ICdib3R0b20gcmlnaHQnIDogJ2JvdHRvbSBsZWZ0JztcblxuICAgICAgICBpZiAoIWkxOG5UcmFuc2xhdGlvbiB8fCBpMThuVHJhbnNsYXRpb24gPT09IGkxOG5LZXkpIHtcbiAgICAgICAgICAgIGkxOG5UcmFuc2xhdGlvbiA9IHBpa2FkYXlEZWZhdWx0STE4bjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIER5bmFtaWNhbGx5IGltcG9ydCBQaWthZGF5IHdoZW4gdGhlIGNvbXBvbmVudCBpbml0aWFsaXplc1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgeyBkZWZhdWx0OiBQaWthZGF5IH0gPSBhd2FpdCBpbXBvcnQoJ3Bpa2FkYXknKTtcblxuICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBQaWthZGF5IGFmdGVyIGl0IGlzIGltcG9ydGVkXG4gICAgICAgICAgICB0aGlzLnBpY2tlciA9IG5ldyBQaWthZGF5KHtcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5lbC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXQsXG4gICAgICAgICAgICAgICAgdGhlbWU6ICdlY2wtZGF0ZXBpY2tlci10aGVtZScsXG4gICAgICAgICAgICAgICAgeWVhclJhbmdlOiB0aGlzLnllYXJSYW5nZSxcbiAgICAgICAgICAgICAgICByZXBvc2l0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpMThuOiBpMThuVHJhbnNsYXRpb24sXG4gICAgICAgICAgICAgICAgaXNSVEwsXG4gICAgICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICAgICAgc2hvd0RheXNJbk5leHRBbmRQcmV2aW91c01vbnRoczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb25TZWxlY3Q6IHRoaXMub25TZWxlY3REYXRlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgb25PcGVuKCk6IHZvaWQge1xuICAgICAgICAgICAgICAgICAgICAvLyBFeHRlbmQgcGlja2VyIHNpemUgb24gbW9iaWxlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZ3ID0gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8IDAsIHdpbmRvdy5pbm5lcldpZHRoIHx8IDApO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbFJlY3QgPSB0aGlzLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1JUTCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGlja2VyTWFyZ2luID0gdncgLSBlbFJlY3QucmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodncgPCA3NjgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLnN0eWxlLmxlZnQgPSBgJHtwaWNrZXJNYXJnaW59cHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLnN0eWxlLmxlZnQgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwaWNrZXJNYXJnaW4gPSBlbFJlY3QubGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2dyA8IDc2OCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWwuc3R5bGUucmlnaHQgPSBgJHtwaWNrZXJNYXJnaW59cHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLnN0eWxlLnJpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5waWNrZXIuc2V0RGF0ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGltcG9ydGluZyBQaWthZGF5JywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVpMThuRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGFuZ0NoYW5nZUV2ZW50OiBMYW5nQ2hhbmdlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnBpY2tlci5nZXREYXRlKCk7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lQaWthZGF5KCk7XG4gICAgICAgICAgICB0aGlzLmluaXRQaWthZGF5KCkudGhlbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uU2VsZWN0RGF0ZShkYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlZC5uZXh0KG5ldyBFY2xEYXRlUGlja2VyRGF0ZVBpY2tlZEV2ZW50KGRhdGUpKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZU1hcmt1cCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3N0RWwgPSB0aGlzLmdldEhvc3RFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuaG9zdFBhcmVudEVsID0gdGhpcy5nZXRIb3N0UGFyZW50RWxlbWVudCh0aGlzLmhvc3RFbCk7XG4gICAgICAgIHRoaXMuaG9zdFdyYXBwZXJFbCA9IHRoaXMuY3JlYXRlSG9zdFdyYXBwZXJDb250YWluZXIoKTtcbiAgICAgICAgdGhpcy5lY2xJY29uQ29tcG9uZW50RWwgPSB0aGlzLmNyZWF0ZUljb25Db21wb25lbnQoKTtcblxuICAgICAgICBpZiAodGhpcy5ob3N0UGFyZW50RWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5ob3N0UGFyZW50RWwucmVwbGFjZUNoaWxkKHRoaXMuaG9zdFdyYXBwZXJFbCwgdGhpcy5ob3N0RWwpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmhvc3RXcmFwcGVyRWwsIHRoaXMuaG9zdEVsKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5ob3N0V3JhcHBlckVsLCB0aGlzLmVjbEljb25Db21wb25lbnRFbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEhvc3RFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdFBhcmVudEVsZW1lbnQoaG9zdEVsOiBIVE1MSW5wdXRFbGVtZW50KTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKGhvc3RFbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJDb250YWluZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHdyYXBwZXJDb250YWluZXIsICdlY2wtZGF0ZXBpY2tlcicpO1xuXG4gICAgICAgIHJldHVybiB3cmFwcGVyQ29udGFpbmVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSWNvbkNvbXBvbmVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGVjbEljb25Db21wb25lbnQgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KEVjbEljb25Db21wb25lbnQpO1xuICAgICAgICBlY2xJY29uQ29tcG9uZW50Lmluc3RhbmNlLnNpemUgPSAneHMnO1xuICAgICAgICBlY2xJY29uQ29tcG9uZW50Lmluc3RhbmNlLmljb24gPSAnY2FsZW5kYXInO1xuICAgICAgICBlY2xJY29uQ29tcG9uZW50Lmluc3RhbmNlLmJhc2VEaXJlY3RpdmUuY2xhc3MgPSAnZWNsLWRhdGVwaWNrZXJfX2ljb24nO1xuXG4gICAgICAgIHJldHVybiBlY2xJY29uQ29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95UGlrYWRheSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGlja2VyKSB7XG4gICAgICAgICAgICB0aGlzLnBpY2tlci5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLnBpY2tlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -12,12 +12,13 @@ export class EclFileItemComponent extends ECLBaseDirective {
|
|
|
12
12
|
super();
|
|
13
13
|
this.eclFileComponent = eclFileComponent;
|
|
14
14
|
this.isDescription = false;
|
|
15
|
+
this.role = 'listitem';
|
|
15
16
|
}
|
|
16
17
|
get isThumbnail() {
|
|
17
18
|
return this.eclFileComponent && this.eclFileComponent.isThumbnail;
|
|
18
19
|
}
|
|
19
20
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EclFileItemComponent, deps: [{ token: i1.EclFileComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: EclFileItemComponent, selector: "ecl-file-item", inputs: { isDescription: ["isDescription", "isDescription", booleanAttribute], eclTitle: "eclTitle", titleId: "titleId", meta: "meta", label: "label", langDetail: "langDetail" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "@if (isDescription) {\n <ng-content></ng-content>\n} @else {\n <div class=\"ecl-file__translation-info\">\n <div class=\"ecl-file__translation-title\" [id]=\"titleId\" [attr.lang]=\"langDetail\">{{ eclTitle }}</div>\n <div class=\"ecl-file__translation-meta\">{{ meta }}</div>\n </div>\n <ng-content select=\"[eclFileTranslationDownload]\"></ng-content>\n}\n" }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: EclFileItemComponent, selector: "ecl-file-item", inputs: { isDescription: ["isDescription", "isDescription", booleanAttribute], eclTitle: "eclTitle", titleId: "titleId", meta: "meta", label: "label", langDetail: "langDetail" }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, usesInheritance: true, ngImport: i0, template: "@if (isDescription) {\n <ng-content></ng-content>\n} @else {\n <div class=\"ecl-file__translation-info\">\n <div class=\"ecl-file__translation-title\" [id]=\"titleId\" [attr.lang]=\"langDetail\">{{ eclTitle }}</div>\n <div class=\"ecl-file__translation-meta\">{{ meta }}</div>\n </div>\n <ng-content select=\"[eclFileTranslationDownload]\"></ng-content>\n}\n" }); }
|
|
21
22
|
}
|
|
22
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EclFileItemComponent, decorators: [{
|
|
23
24
|
type: Component,
|
|
@@ -38,5 +39,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
38
39
|
}], cssClasses: [{
|
|
39
40
|
type: HostBinding,
|
|
40
41
|
args: ['class']
|
|
42
|
+
}], role: [{
|
|
43
|
+
type: HostBinding,
|
|
44
|
+
args: ['attr.role']
|
|
41
45
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWZpbGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLWZpbGUvZWNsLWZpbGUtaXRlbS9lY2wtZmlsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtZmlsZS9lY2wtZmlsZS1pdGVtL2VjbC1maWxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFPNUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQVF0RCxJQUNJLFVBQVU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDcEgsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUNULElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFHRCxZQUFvQixnQkFBa0M7UUFDbEQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBZmQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFhcEMsU0FBSSxHQUFHLFVBQVUsQ0FBQztJQUk1QyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztJQUN0RSxDQUFDOzhHQXRCUSxvQkFBb0I7a0dBQXBCLG9CQUFvQix5RkFDVCxnQkFBZ0Isc09DVHhDLGtZQVNBOzsyRkREYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0ksZUFBZTtxRkFJZSxhQUFhO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM3QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0YsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBTU0sSUFBSTtzQkFBN0IsV0FBVzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsRmlsZUNvbXBvbmVudCB9IGZyb20gJy4uL2VjbC1maWxlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLWZpbGUtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1maWxlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xGaWxlSXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUge1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0Rlc2NyaXB0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KCkgZWNsVGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSB0aXRsZUlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbWV0YTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFuZ0RldGFpbDogc3RyaW5nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtZmlsZV9fdHJhbnNsYXRpb24taXRlbScpLCB0aGlzLmlzRGVzY3JpcHRpb24gPyAnZWNsLWZpbGVfX3RyYW5zbGF0aW9uLWRlc2NyaXB0aW9uJyA6ICcnXVxuICAgICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2xpc3RpdGVtJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWNsRmlsZUNvbXBvbmVudDogRWNsRmlsZUNvbXBvbmVudCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldCBpc1RodW1ibmFpbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWNsRmlsZUNvbXBvbmVudCAmJiB0aGlzLmVjbEZpbGVDb21wb25lbnQuaXNUaHVtYm5haWw7XG4gICAgfVxufVxuIiwiQGlmIChpc0Rlc2NyaXB0aW9uKSB7XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxufSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImVjbC1maWxlX190cmFuc2xhdGlvbi1pbmZvXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlY2wtZmlsZV9fdHJhbnNsYXRpb24tdGl0bGVcIiBbaWRdPVwidGl0bGVJZFwiIFthdHRyLmxhbmddPVwibGFuZ0RldGFpbFwiPnt7IGVjbFRpdGxlIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlY2wtZmlsZV9fdHJhbnNsYXRpb24tbWV0YVwiPnt7IG1ldGEgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZWNsRmlsZVRyYW5zbGF0aW9uRG93bmxvYWRdXCI+PC9uZy1jb250ZW50PlxufVxuIl19
|
package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.mjs
CHANGED
|
@@ -14,6 +14,7 @@ export class EclInpageNavigationItemComponent extends ECLBaseDirective {
|
|
|
14
14
|
constructor() {
|
|
15
15
|
super(...arguments);
|
|
16
16
|
this.cmpClass = true;
|
|
17
|
+
this.role = 'listitem';
|
|
17
18
|
this.itemClick = new EventEmitter();
|
|
18
19
|
this.itemArrowUp = new EventEmitter();
|
|
19
20
|
this.itemArrowDown = new EventEmitter();
|
|
@@ -42,7 +43,7 @@ export class EclInpageNavigationItemComponent extends ECLBaseDirective {
|
|
|
42
43
|
this.link.onFocus();
|
|
43
44
|
}
|
|
44
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EclInpageNavigationItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: EclInpageNavigationItemComponent, selector: "ecl-inpage-navigation-item", inputs: { label: "label", sectionId: "sectionId", isActive: "isActive" }, outputs: { itemClick: "itemClick", itemArrowUp: "itemArrowUp", itemArrowDown: "itemArrowDown", itemTab: "itemTab" }, host: { properties: { "class.ecl-inpage-navigation__item": "this.cmpClass", "class.ecl-inpage-navigation__item--active": "this.isActive" } }, viewQueries: [{ propertyName: "link", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isNoVisited", "variant"] }] }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: EclInpageNavigationItemComponent, selector: "ecl-inpage-navigation-item", inputs: { label: "label", sectionId: "sectionId", isActive: "isActive" }, outputs: { itemClick: "itemClick", itemArrowUp: "itemArrowUp", itemArrowDown: "itemArrowDown", itemTab: "itemTab" }, host: { properties: { "class.ecl-inpage-navigation__item": "this.cmpClass", "attr.role": "this.role", "class.ecl-inpage-navigation__item--active": "this.isActive" } }, viewQueries: [{ propertyName: "link", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isNoVisited", "variant"] }] }); }
|
|
46
47
|
}
|
|
47
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EclInpageNavigationItemComponent, decorators: [{
|
|
48
49
|
type: Component,
|
|
@@ -50,6 +51,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
50
51
|
}], propDecorators: { cmpClass: [{
|
|
51
52
|
type: HostBinding,
|
|
52
53
|
args: ['class.ecl-inpage-navigation__item']
|
|
54
|
+
}], role: [{
|
|
55
|
+
type: HostBinding,
|
|
56
|
+
args: ['attr.role']
|
|
53
57
|
}], label: [{
|
|
54
58
|
type: Input
|
|
55
59
|
}], sectionId: [{
|
|
@@ -71,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
71
75
|
type: ViewChild,
|
|
72
76
|
args: [EclLinkDirective]
|
|
73
77
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWlucGFnZS1uYXZpZ2F0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1pbnBhZ2UtbmF2aWdhdGlvbi9lY2wtaW5wYWdlLW5hdmlnYXRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLWlucGFnZS1uYXZpZ2F0aW9uL2VjbC1pbnBhZ2UtbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFFL0MsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLFlBQVk7SUFDL0QsWUFBbUIsZ0JBQXdCO1FBQ3ZDLEtBQUssRUFBRSxDQUFDO1FBRE8scUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO0lBRTNDLENBQUM7Q0FDSjtBQWFELE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxnQkFBZ0I7SUFYdEU7O1FBWXNELGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDeEMsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQU1sQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQXFDLENBQUM7UUFDbEUsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztLQWdDakQ7SUE1QkcsV0FBVyxDQUFDLEdBQWU7UUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0IsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVU7UUFDaEIsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFVO1FBQ2xCLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBVTtRQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQTFDUSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQywrY0FhOUIsZ0JBQWdCLHVFQ25DL0IscVBBS0E7OzJGRGlCYSxnQ0FBZ0M7a0JBWDVDLFNBQVM7K0JBQ0ksNEJBQTRCOzhCQVdZLFFBQVE7c0JBQXpELFdBQVc7dUJBQUMsbUNBQW1DO2dCQUN0QixJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBRWYsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQzZELFFBQVE7c0JBQTFFLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsMkNBQTJDO2dCQUV2RCxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUVzQixJQUFJO3NCQUFoQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbEJhc2VFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2VjbC1iYXNlLmV2ZW50JztcbmltcG9ydCB7IEVjbExpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtbGluayc7XG5cbmV4cG9ydCBjbGFzcyBFY2xJbnBhZ2VOYXZpZ2F0aW9uSXRlbUNsaWNrRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzZWN0aW9uRWxlbWVudElkOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLWlucGFnZS1uYXZpZ2F0aW9uLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtaW5wYWdlLW5hdmlnYXRpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsSW5wYWdlTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1pbnBhZ2UtbmF2aWdhdGlvbl9faXRlbScpIGNtcENsYXNzID0gdHJ1ZTtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnbGlzdGl0ZW0nO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBzZWN0aW9uSWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1pbnBhZ2UtbmF2aWdhdGlvbl9faXRlbS0tYWN0aXZlJykgaXNBY3RpdmU6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xJbnBhZ2VOYXZpZ2F0aW9uSXRlbUNsaWNrRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGl0ZW1BcnJvd1VwID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBpdGVtQXJyb3dEb3duID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBpdGVtVGFiID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIEBWaWV3Q2hpbGQoRWNsTGlua0RpcmVjdGl2ZSkgbGluazogRWNsTGlua0RpcmVjdGl2ZVxuXG4gICAgb25JdGVtQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEVjbElucGFnZU5hdmlnYXRpb25JdGVtQ2xpY2tFdmVudCh0aGlzLnNlY3Rpb25JZCk7XG4gICAgICAgIHRoaXMuaXRlbUNsaWNrLm5leHQoZXZlbnQpO1xuXG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGdldCBzZWN0aW9uRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLnNlY3Rpb25JZH1gKTtcbiAgICB9XG5cbiAgICBvbkFycm93VXAoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pdGVtQXJyb3dVcC5lbWl0KClcbiAgICB9XG5cbiAgICBvbkFycm93RG93bihldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLml0ZW1BcnJvd0Rvd24uZW1pdCgpO1xuICAgIH1cblxuICAgIG9uVGFiKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtVGFiLmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBvbkZvY3VzKCk6IHZvaWR7XG4gICAgICAgIHRoaXMubGluay5vbkZvY3VzKCk7XG4gICAgfVxufVxuIiwiPGEgZWNsTGluayAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiIGhyZWY9XCIjXCIgY2xhc3M9XCJlY2wtaW5wYWdlLW5hdmlnYXRpb25fX2xpbmtcIlxuICAgIChrZXlkb3duLmFycm93VXApPVwib25BcnJvd1VwKCRldmVudClcIiAoa2V5ZG93bi5hcnJvd0Rvd24pPVwib25BcnJvd0Rvd24oJGV2ZW50KVwiXG4gICAgKGtleWRvd24udGFiKT1cIm9uVGFiKCRldmVudClcIj5cbiAgICB7eyBsYWJlbCB9fVxuPC9hPlxuIl19
|
|
@@ -227,11 +227,11 @@ export class EclInpageNavigationComponent extends ECLBaseDirective {
|
|
|
227
227
|
});
|
|
228
228
|
}
|
|
229
229
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EclInpageNavigationComponent, deps: [{ token: i0.ElementRef }, { token: i1.EclRtlService }, { token: i1.EclThemeService }, { token: i0.IterableDiffers }, { token: i2.ScrollDispatcher }, { token: i0.NgZone }, { token: i3.BreakpointObserver }, { token: i2.ViewportRuler }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
230
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: EclInpageNavigationComponent, selector: "ecl-inpage-navigation", inputs: { eclTitle: "eclTitle", marginTop: "marginTop", marginBottom: "marginBottom" }, outputs: { sectionEnter: "sectionEnter" }, queries: [{ propertyName: "eclNavigationLinkItems", predicate: EclInpageNavigationItemComponent }], viewQueries: [{ propertyName: "togglerButton", first: true, predicate: ["togglerButton"], descendants: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true }, { propertyName: "navTittle", first: true, predicate: ["navTittle"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n <ul\n #listContainer\n id=\"ecl-inpage-navigation-default-list\"\n class=\"ecl-inpage-navigation__list\"\n [class.ecl-inpage-navigation__list--visible]=\"isButtonExpanded\"\n [style.max-height.px]=\"listMaxHeight\"\n [attr.aria-expanded]=\"isButtonExpanded\"
|
|
230
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: EclInpageNavigationComponent, selector: "ecl-inpage-navigation", inputs: { eclTitle: "eclTitle", marginTop: "marginTop", marginBottom: "marginBottom" }, outputs: { sectionEnter: "sectionEnter" }, queries: [{ propertyName: "eclNavigationLinkItems", predicate: EclInpageNavigationItemComponent }], viewQueries: [{ propertyName: "togglerButton", first: true, predicate: ["togglerButton"], descendants: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true }, { propertyName: "navTittle", first: true, predicate: ["navTittle"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n <ul\n #listContainer\n id=\"ecl-inpage-navigation-default-list\"\n class=\"ecl-inpage-navigation__list\"\n [class.ecl-inpage-navigation__list--visible]=\"isButtonExpanded\"\n [style.max-height.px]=\"listMaxHeight\"\n [attr.aria-expanded]=\"isButtonExpanded\">\n <ng-content></ng-content>\n </ul>\n </div>\n </nav>\n</ecl-sticky-container>\n", styles: ["@media (min-width: 996px){.ecl-inpage-navigation__list{display:block!important}}\n"], dependencies: [{ kind: "component", type: i4.EclStickyContainerComponent, selector: "ecl-sticky-container", inputs: ["isEnabled", "marginTop", "marginBottom"] }, { kind: "component", type: i5.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
231
231
|
}
|
|
232
232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EclInpageNavigationComponent, decorators: [{
|
|
233
233
|
type: Component,
|
|
234
|
-
args: [{ selector: 'ecl-inpage-navigation', template: "<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n <ul\n #listContainer\n id=\"ecl-inpage-navigation-default-list\"\n class=\"ecl-inpage-navigation__list\"\n [class.ecl-inpage-navigation__list--visible]=\"isButtonExpanded\"\n [style.max-height.px]=\"listMaxHeight\"\n [attr.aria-expanded]=\"isButtonExpanded\"
|
|
234
|
+
args: [{ selector: 'ecl-inpage-navigation', template: "<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n <ul\n #listContainer\n id=\"ecl-inpage-navigation-default-list\"\n class=\"ecl-inpage-navigation__list\"\n [class.ecl-inpage-navigation__list--visible]=\"isButtonExpanded\"\n [style.max-height.px]=\"listMaxHeight\"\n [attr.aria-expanded]=\"isButtonExpanded\">\n <ng-content></ng-content>\n </ul>\n </div>\n </nav>\n</ecl-sticky-container>\n", styles: ["@media (min-width: 996px){.ecl-inpage-navigation__list{display:block!important}}\n"] }]
|
|
235
235
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.EclRtlService }, { type: i1.EclThemeService }, { type: i0.IterableDiffers }, { type: i2.ScrollDispatcher }, { type: i0.NgZone }, { type: i3.BreakpointObserver }, { type: i2.ViewportRuler }], propDecorators: { eclTitle: [{
|
|
236
236
|
type: Input
|
|
237
237
|
}], marginTop: [{
|
|
@@ -253,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
253
253
|
type: ContentChildren,
|
|
254
254
|
args: [EclInpageNavigationItemComponent]
|
|
255
255
|
}] } });
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWlucGFnZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtaW5wYWdlLW5hdmlnYXRpb24vZWNsLWlucGFnZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtaW5wYWdlLW5hdmlnYXRpb24vZWNsLWlucGFnZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsZUFBZSxFQUdmLFlBQVksRUFFWixLQUFLLEVBS0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxlQUFlLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBc0IsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFFMUYsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLFlBQVk7SUFDbEUsWUFBbUIsU0FBaUI7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFETyxjQUFTLEdBQVQsU0FBUyxDQUFRO0lBRXBDLENBQUM7Q0FDSjtBQWVELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxnQkFBZ0I7SUF1QjlELFlBQ1ksRUFBYyxFQUNkLGFBQTRCLEVBQzdCLGVBQWdDLEVBQy9CLE9BQXdCLEVBQ3hCLGdCQUFrQyxFQUNsQyxJQUFZLEVBQ1oscUJBQXlDLEVB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QXhQUSw0QkFBNEI7a0dBQTVCLDRCQUE0Qix1T0FTcEIsZ0NBQWdDLDhWQ3hEckQsc2pFQXdDQTs7MkZET2EsNEJBQTRCO2tCQWJ4QyxTQUFTOytCQUNJLHVCQUF1Qjt3UkFheEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ3NCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDRSxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ0YsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNaLFlBQVk7c0JBQXJCLE1BQU07Z0JBRTRDLHNCQUFzQjtzQkFBeEUsZUFBZTt1QkFBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBJdGVyYWJsZURpZmZlciwgSXRlcmFibGVEaWZmZXJzLFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIGFmdGVyTmV4dFJlbmRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlLCBTY3JvbGxEaXNwYXRjaGVyLCBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xCYXNlRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBFY2xUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbFJ0bFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFY2xJbnBhZ2VOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLWlucGFnZS1uYXZpZ2F0aW9uLWl0ZW0uY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIEVjbElucGFnZU5hdmlnYXRpb25TZWN0aW9uRW50ZXJFdmVudCBleHRlbmRzIEVjbEJhc2VFdmVudCB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHNlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1pbnBhZ2UtbmF2aWdhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1pbnBhZ2UtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5OTZweCkge1xuICAgICAgICAgICAgICAgIC5lY2wtaW5wYWdlLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xJbnBhZ2VOYXZpZ2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcbiAgICBASW5wdXQoKSBlY2xUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1hcmdpblRvcDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1hcmdpbkJvdHRvbTogbnVtYmVyO1xuICAgIEBWaWV3Q2hpbGQoJ3RvZ2dsZXJCdXR0b24nKSB0b2dnbGVyQnV0dG9uOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdsaXN0Q29udGFpbmVyJykgbGlzdENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MVUxpc3RFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCduYXZUaXR0bGUnKSBuYXZUaXR0bGU6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBPdXRwdXQoKSBzZWN0aW9uRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbElucGFnZU5hdmlnYXRpb25TZWN0aW9uRW50ZXJFdmVudD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRWNsSW5wYWdlTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQpIGVjbE5hdmlnYXRpb25MaW5rSXRlbXM6IFF1ZXJ5TGlzdDxFY2xJbnBhZ2VOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudD47XG5cbiAgICBpc0J1dHRvbkV4cGFuZGVkID0gZmFsc2U7XG4gICAgY3VycmVudFNlY3Rpb25FbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBwdWJsaWMgaXNSdGwgPSBmYWxzZTtcbiAgICBwdWJsaWMgbGlzdE1heEhlaWdodDogbnVtYmVyO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xJbnBhZ2VOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBpc01vYmlsZUJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgICBwcml2YXRlIE1JTl9ESVNUQU5DRV9UT1AgPSAxMDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IElDT05fU0laRV9FQ19USEVNRSA9ICd4cyc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBJQ09OX1NJWkVfRVVfVEhFTUUgPSAncyc7XG4gICAgcHJpdmF0ZSBpbnRlcnNlY3Rpb25PYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBlY2xSdGxTZXJ2aWNlOiBFY2xSdGxTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWNsVGhlbWVTZXJ2aWNlOiBFY2xUaGVtZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgICAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXG4gICAgICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGNka0JyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgICAgICBwcml2YXRlIHZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZSgpO1xuICAgICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0NES1Njcm9sbEV2ZW50KCk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpO1xuXG4gICAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgpPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TGlzdEhlaWdodCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy50b2dnbGVyQnV0dG9uLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICB0aGlzLnZpZXdwb3J0UnVsZXIuY2hhbmdlKDMwMCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCk9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldExpc3RIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhbmRsZVJ0bENoYW5nZVN0YXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnROYXZpZ2F0aW9uTGlua0l0ZW0oKTogRWNsSW5wYWdlTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lY2xOYXZpZ2F0aW9uTGlua0l0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uc2VjdGlvbkVsZW1lbnQgPT09IHRoaXMuY3VycmVudFNlY3Rpb25FbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgc2l6ZUljb24oKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZWNsVGhlbWVTZXJ2aWNlLmlzRUNUaGVtZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5JQ09OX1NJWkVfRUNfVEhFTUU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5JQ09OX1NJWkVfRVVfVEhFTUU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaGFzQWN0aXZlU2VjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jdXJyZW50U2VjdGlvbkVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMpO1xuICAgICAgICBpZiAoZGlmZikge1xuICAgICAgICAgICAgZGlmZi5mb3JFYWNoSXRlbSgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdEl0ZW1FdmVudHMoaXRlbS5pdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLnRvZ2dsZXJCdXR0b24ubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25FeHBhbmRCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0J1dHRvbkV4cGFuZGVkID0gIXRoaXMuaXNCdXR0b25FeHBhbmRlZDtcbiAgICB9XG5cbiAgICBvbkV4cGFuZEJ1dHRvbktleWRvd24oZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKChldnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5KSB7XG4gICAgICAgICAgICBjYXNlICdUYWInOlxuICAgICAgICAgICAgICAgIHRoaXMub25FeHBhbmRCdXR0b25UYWIoZXZ0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkV4cGFuZEJ1dHRvbkFycm93RG93bihldnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlUnRsQ2hhbmdlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUnRsU2VydmljZS5jdXJyZW50UnRsU3RhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJ0bFN0YXRlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzUnRsID0gcnRsU3RhdGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGlzdEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmxpc3RDb250YWluZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICBsZXQgdG9wUG9zaXRpb24gPSAwO1xuICAgICAgICBpZiAodmlld3BvcnRXaWR0aCA8IDk5Nikge1xuICAgICAgICAgICAgdG9wUG9zaXRpb24gPSB0aGlzLnRvZ2dsZXJCdXR0b24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b207XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5lY2xUaXRsZSkge1xuICAgICAgICAgICAgdG9wUG9zaXRpb24gPSB0aGlzLm5hdlRpdHRsZS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvcFBvc2l0aW9uID0gdGhpcy5saXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXZhaWxhYmxlU3BhY2UgPSB2aWV3cG9ydEhlaWdodCAtIHRvcFBvc2l0aW9uO1xuICAgICAgICBpZiAoYXZhaWxhYmxlU3BhY2UgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RNYXhIZWlnaHQgPSBhdmFpbGFibGVTcGFjZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25FeHBhbmRCdXR0b25BcnJvd0Rvd24oZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pc0J1dHRvbkV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lY2xOYXZpZ2F0aW9uTGlua0l0ZW1zLmdldCgwKS5vbkZvY3VzKCk7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgb25FeHBhbmRCdXR0b25UYWIoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5zaGlmdEtleSkge1xuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMuZ2V0KHRoaXMuZWNsTmF2aWdhdGlvbkxpbmtJdGVtcy5sZW5ndGggLSAxKS5vbkZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbm5lY3RJdGVtRXZlbnRzKGl0ZW06IEVjbElucGFnZU5hdmlnYXRpb25JdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGl0ZW0uaXRlbUFycm93RG93bi5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25JdGVtQXJyb3dEb3duKGl0ZW0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdGVtLml0ZW1BcnJvd1VwLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkl0ZW1BcnJvd1VwKGl0ZW0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdGVtLml0ZW1UYWIucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uSXRlbVRhYihpdGVtLCBldnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdGVtLml0ZW1DbGljay5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TmF2aWdhdGlvbkl0ZW0oaXRlbS5zZWN0aW9uRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChpdGVtLnNlY3Rpb25FbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZWN0aW9uRWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmlzQnV0dG9uRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkl0ZW1BcnJvd0Rvd24oaXRlbTogRWNsSW5wYWdlTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZWNsTmF2aWdhdGlvbkxpbmtJdGVtcy50b0FycmF5KCkuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gdGhpcy5lY2xOYXZpZ2F0aW9uTGlua0l0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMuZ2V0KGluZGV4ICsgMSkub25Gb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkl0ZW1BcnJvd1VwKGl0ZW06IEVjbElucGFnZU5hdmlnYXRpb25JdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMudG9BcnJheSgpLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMuZ2V0KGluZGV4IC0gMSkub25Gb2N1cygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50b2dnbGVyQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNCdXR0b25FeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZXJCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25JdGVtVGFiKGl0ZW06IEVjbElucGFnZU5hdmlnYXRpb25JdGVtQ29tcG9uZW50LCBldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgaWYgKCEoZXZ0IGFzIEtleWJvYXJkRXZlbnQpLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMudG9BcnJheSgpLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVyQnV0dG9uLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvQ0RLU2Nyb2xsRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHNjcm9sbGFibGU6IENka1Njcm9sbGFibGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25FbGVtZW50SWRzID0gdGhpcy5lY2xOYXZpZ2F0aW9uTGlua0l0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5zZWN0aW9uSWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25FbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+ID0gc2VjdGlvbkVsZW1lbnRJZHMubWFwKChpZCkgPT4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7aWR9YCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTmF2aWdhdGlvbkxpbmtzSGlnaGxpZ2h0KHNlY3Rpb25FbGVtZW50cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMaXN0SGVpZ2h0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3ROYXZpZ2F0aW9uSXRlbShpdGVtRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xOYXZpZ2F0aW9uTGlua0l0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5pc0FjdGl2ZSA9IGl0LnNlY3Rpb25FbGVtZW50ID09PSBpdGVtRWxlbWVudDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVOYXZpZ2F0aW9uTGlua3NIaWdobGlnaHQoc2VjdGlvbkVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFNlY3Rpb25FbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuZmluZEFjdGl2ZVNlY3Rpb25FbGVtZW50KHNlY3Rpb25FbGVtZW50cyk7XG4gICAgICAgIGlmIChjdXJyZW50U2VjdGlvbkVsZW1lbnQgIT09IHRoaXMuY3VycmVudFNlY3Rpb25FbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTZWN0aW9uRWxlbWVudCA9IGN1cnJlbnRTZWN0aW9uRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TmF2aWdhdGlvbkl0ZW0oY3VycmVudFNlY3Rpb25FbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25JZCA9IHRoaXMuY3VycmVudE5hdmlnYXRpb25MaW5rSXRlbSA/IHRoaXMuY3VycmVudE5hdmlnYXRpb25MaW5rSXRlbS5zZWN0aW9uSWQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnNlY3Rpb25FbnRlci5uZXh0KG5ldyBFY2xJbnBhZ2VOYXZpZ2F0aW9uU2VjdGlvbkVudGVyRXZlbnQoc2VjdGlvbklkKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRBY3RpdmVTZWN0aW9uRWxlbWVudChzZWN0aW9uRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Pik6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgbGV0IGN1cnJlbnRTZWN0aW9uOiBIVE1MRWxlbWVudDtcblxuICAgICAgICBzZWN0aW9uRWxlbWVudHMuZm9yRWFjaCgoc2VjdGlvbkVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWN0aW9uRWxlbWVudCAmJiBzZWN0aW9uRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPD0gdGhpcy5NSU5fRElTVEFOQ0VfVE9QKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFNlY3Rpb24gPSBzZWN0aW9uRWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjdXJyZW50U2VjdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZGtCcmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgICAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0LCBCcmVha3BvaW50cy5UYWJsZXQsIEJyZWFrcG9pbnRzLlNtYWxsXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ID0gcmVzdWx0Lm1hdGNoZXM7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZWNsLXN0aWNreS1jb250YWluZXIgW21hcmdpblRvcF09XCJtYXJnaW5Ub3BcIiBbbWFyZ2luQm90dG9tXT1cIm1hcmdpbkJvdHRvbVwiPlxuICAgIDxuYXZcbiAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZWNsLWlucGFnZS1uYXZpZ2F0aW9uLWRlZmF1bHRcIlxuICAgICAgICBjbGFzcz1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvblwiXG4gICAgICAgIFtjbGFzcy5lY2wtaW5wYWdlLW5hdmlnYXRpb24tLXZpc2libGVdPVwiaGFzQWN0aXZlU2VjdGlvblwiXG4gICAgICAgIFtjbGFzcy5lY2wtaW5wYWdlLW5hdmlnYXRpb24tLXJ0bF09XCJpc1J0bFwiPlxuICAgICAgICA8ZGl2ICNuYXZUaXR0bGUgaWQ9XCJlY2wtaW5wYWdlLW5hdmlnYXRpb24tZGVmYXVsdFwiIGNsYXNzPVwiZWNsLWlucGFnZS1uYXZpZ2F0aW9uX190aXRsZVwiPlxuICAgICAgICAgICAge3sgZWNsVGl0bGUgfHwgJ2VjbC5pbnBhZ2UtbmF2aWdhdGlvbi5QQUdFLUNPTlRFTlRTJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvbl9fYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvbl9fdHJpZ2dlci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAjdG9nZ2xlckJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvbi1kZWZhdWx0LXRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlY2wtaW5wYWdlLW5hdmlnYXRpb25fX3RyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwiZWNsLWlucGFnZS1uYXZpZ2F0aW9uLWxpc3RcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzQnV0dG9uRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FeHBhbmRCdXR0b25DbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25FeHBhbmRCdXR0b25LZXlkb3duKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtaW5wYWdlLW5hdmlnYXRpb25fX3RyaWdnZXItY3VycmVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY3VycmVudE5hdmlnYXRpb25MaW5rSXRlbT8ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIFtzaXplXT1cInNpemVJY29uXCIgdHJhbnNmb3JtPVwicm90YXRlLTE4MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvbl9fdHJpZ2dlci1pY29uXCIgdGl0bGU9XCJTaG93IGZ1bGwgcGFnZSB0YWJsZSBvZiBjb250ZW50c1wiPiA8L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHVsXG4gICAgICAgICAgICAgICAgI2xpc3RDb250YWluZXJcbiAgICAgICAgICAgICAgICBpZD1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvbi1kZWZhdWx0LWxpc3RcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLWlucGFnZS1uYXZpZ2F0aW9uX19saXN0XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZWNsLWlucGFnZS1uYXZpZ2F0aW9uX19saXN0LS12aXNpYmxlXT1cImlzQnV0dG9uRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0LnB4XT1cImxpc3RNYXhIZWlnaHRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNCdXR0b25FeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZWNsLWlucGFnZS1uYXZpZ2F0aW9uLXRyaWdnZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25hdj5cbjwvZWNsLXN0aWNreS1jb250YWluZXI+XG4iXX0=
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWlucGFnZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtaW5wYWdlLW5hdmlnYXRpb24vZWNsLWlucGFnZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtaW5wYWdlLW5hdmlnYXRpb24vZWNsLWlucGFnZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsZUFBZSxFQUdmLFlBQVksRUFFWixLQUFLLEVBS0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxlQUFlLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBc0IsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFFMUYsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLFlBQVk7SUFDbEUsWUFBbUIsU0FBaUI7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFETyxjQUFTLEdBQVQsU0FBUyxDQUFRO0lBRXBDLENBQUM7Q0FDSjtBQWVELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxnQkFBZ0I7SUF1QjlELFlBQ1ksRUFBYyxFQUNkLGFBQTRCLEVBQzdCLGVBQWdDLEVBQy9CLE9BQXdCLEVBQ3hCLGdCQUFrQyxFQUNsQyxJQUFZLEVBQ1oscUJBQXlDLEVB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QXhQUSw0QkFBNEI7a0dBQTVCLDRCQUE0Qix1T0FTcEIsZ0NBQWdDLDhWQ3hEckQsbS9EQXVDQTs7MkZEUWEsNEJBQTRCO2tCQWJ4QyxTQUFTOytCQUNJLHVCQUF1Qjt3UkFheEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ3NCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDRSxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ0YsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNaLFlBQVk7c0JBQXJCLE1BQU07Z0JBRTRDLHNCQUFzQjtzQkFBeEUsZUFBZTt1QkFBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBJdGVyYWJsZURpZmZlciwgSXRlcmFibGVEaWZmZXJzLFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIGFmdGVyTmV4dFJlbmRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlLCBTY3JvbGxEaXNwYXRjaGVyLCBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xCYXNlRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBFY2xUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbFJ0bFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFY2xJbnBhZ2VOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLWlucGFnZS1uYXZpZ2F0aW9uLWl0ZW0uY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIEVjbElucGFnZU5hdmlnYXRpb25TZWN0aW9uRW50ZXJFdmVudCBleHRlbmRzIEVjbEJhc2VFdmVudCB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHNlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1pbnBhZ2UtbmF2aWdhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1pbnBhZ2UtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5OTZweCkge1xuICAgICAgICAgICAgICAgIC5lY2wtaW5wYWdlLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xJbnBhZ2VOYXZpZ2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcbiAgICBASW5wdXQoKSBlY2xUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1hcmdpblRvcDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1hcmdpbkJvdHRvbTogbnVtYmVyO1xuICAgIEBWaWV3Q2hpbGQoJ3RvZ2dsZXJCdXR0b24nKSB0b2dnbGVyQnV0dG9uOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdsaXN0Q29udGFpbmVyJykgbGlzdENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MVUxpc3RFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCduYXZUaXR0bGUnKSBuYXZUaXR0bGU6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBPdXRwdXQoKSBzZWN0aW9uRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbElucGFnZU5hdmlnYXRpb25TZWN0aW9uRW50ZXJFdmVudD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRWNsSW5wYWdlTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQpIGVjbE5hdmlnYXRpb25MaW5rSXRlbXM6IFF1ZXJ5TGlzdDxFY2xJbnBhZ2VOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudD47XG5cbiAgICBpc0J1dHRvbkV4cGFuZGVkID0gZmFsc2U7XG4gICAgY3VycmVudFNlY3Rpb25FbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBwdWJsaWMgaXNSdGwgPSBmYWxzZTtcbiAgICBwdWJsaWMgbGlzdE1heEhlaWdodDogbnVtYmVyO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xJbnBhZ2VOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBpc01vYmlsZUJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgICBwcml2YXRlIE1JTl9ESVNUQU5DRV9UT1AgPSAxMDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IElDT05fU0laRV9FQ19USEVNRSA9ICd4cyc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBJQ09OX1NJWkVfRVVfVEhFTUUgPSAncyc7XG4gICAgcHJpdmF0ZSBpbnRlcnNlY3Rpb25PYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBlY2xSdGxTZXJ2aWNlOiBFY2xSdGxTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWNsVGhlbWVTZXJ2aWNlOiBFY2xUaGVtZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgICAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXG4gICAgICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGNka0JyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgICAgICBwcml2YXRlIHZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZSgpO1xuICAgICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0NES1Njcm9sbEV2ZW50KCk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpO1xuXG4gICAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgpPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TGlzdEhlaWdodCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy50b2dnbGVyQnV0dG9uLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICB0aGlzLnZpZXdwb3J0UnVsZXIuY2hhbmdlKDMwMCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCk9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldExpc3RIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhbmRsZVJ0bENoYW5nZVN0YXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnROYXZpZ2F0aW9uTGlua0l0ZW0oKTogRWNsSW5wYWdlTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lY2xOYXZpZ2F0aW9uTGlua0l0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uc2VjdGlvbkVsZW1lbnQgPT09IHRoaXMuY3VycmVudFNlY3Rpb25FbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgc2l6ZUljb24oKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZWNsVGhlbWVTZXJ2aWNlLmlzRUNUaGVtZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5JQ09OX1NJWkVfRUNfVEhFTUU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5JQ09OX1NJWkVfRVVfVEhFTUU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaGFzQWN0aXZlU2VjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jdXJyZW50U2VjdGlvbkVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMpO1xuICAgICAgICBpZiAoZGlmZikge1xuICAgICAgICAgICAgZGlmZi5mb3JFYWNoSXRlbSgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdEl0ZW1FdmVudHMoaXRlbS5pdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLnRvZ2dsZXJCdXR0b24ubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25FeHBhbmRCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0J1dHRvbkV4cGFuZGVkID0gIXRoaXMuaXNCdXR0b25FeHBhbmRlZDtcbiAgICB9XG5cbiAgICBvbkV4cGFuZEJ1dHRvbktleWRvd24oZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKChldnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5KSB7XG4gICAgICAgICAgICBjYXNlICdUYWInOlxuICAgICAgICAgICAgICAgIHRoaXMub25FeHBhbmRCdXR0b25UYWIoZXZ0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkV4cGFuZEJ1dHRvbkFycm93RG93bihldnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlUnRsQ2hhbmdlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUnRsU2VydmljZS5jdXJyZW50UnRsU3RhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJ0bFN0YXRlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzUnRsID0gcnRsU3RhdGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGlzdEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmxpc3RDb250YWluZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICBsZXQgdG9wUG9zaXRpb24gPSAwO1xuICAgICAgICBpZiAodmlld3BvcnRXaWR0aCA8IDk5Nikge1xuICAgICAgICAgICAgdG9wUG9zaXRpb24gPSB0aGlzLnRvZ2dsZXJCdXR0b24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b207XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5lY2xUaXRsZSkge1xuICAgICAgICAgICAgdG9wUG9zaXRpb24gPSB0aGlzLm5hdlRpdHRsZS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvcFBvc2l0aW9uID0gdGhpcy5saXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXZhaWxhYmxlU3BhY2UgPSB2aWV3cG9ydEhlaWdodCAtIHRvcFBvc2l0aW9uO1xuICAgICAgICBpZiAoYXZhaWxhYmxlU3BhY2UgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RNYXhIZWlnaHQgPSBhdmFpbGFibGVTcGFjZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25FeHBhbmRCdXR0b25BcnJvd0Rvd24oZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pc0J1dHRvbkV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lY2xOYXZpZ2F0aW9uTGlua0l0ZW1zLmdldCgwKS5vbkZvY3VzKCk7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgb25FeHBhbmRCdXR0b25UYWIoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5zaGlmdEtleSkge1xuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMuZ2V0KHRoaXMuZWNsTmF2aWdhdGlvbkxpbmtJdGVtcy5sZW5ndGggLSAxKS5vbkZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbm5lY3RJdGVtRXZlbnRzKGl0ZW06IEVjbElucGFnZU5hdmlnYXRpb25JdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGl0ZW0uaXRlbUFycm93RG93bi5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25JdGVtQXJyb3dEb3duKGl0ZW0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdGVtLml0ZW1BcnJvd1VwLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkl0ZW1BcnJvd1VwKGl0ZW0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdGVtLml0ZW1UYWIucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uSXRlbVRhYihpdGVtLCBldnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdGVtLml0ZW1DbGljay5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TmF2aWdhdGlvbkl0ZW0oaXRlbS5zZWN0aW9uRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChpdGVtLnNlY3Rpb25FbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZWN0aW9uRWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmlzQnV0dG9uRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkl0ZW1BcnJvd0Rvd24oaXRlbTogRWNsSW5wYWdlTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZWNsTmF2aWdhdGlvbkxpbmtJdGVtcy50b0FycmF5KCkuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gdGhpcy5lY2xOYXZpZ2F0aW9uTGlua0l0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMuZ2V0KGluZGV4ICsgMSkub25Gb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkl0ZW1BcnJvd1VwKGl0ZW06IEVjbElucGFnZU5hdmlnYXRpb25JdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMudG9BcnJheSgpLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMuZ2V0KGluZGV4IC0gMSkub25Gb2N1cygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50b2dnbGVyQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNCdXR0b25FeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZXJCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25JdGVtVGFiKGl0ZW06IEVjbElucGFnZU5hdmlnYXRpb25JdGVtQ29tcG9uZW50LCBldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgaWYgKCEoZXZ0IGFzIEtleWJvYXJkRXZlbnQpLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMudG9BcnJheSgpLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmVjbE5hdmlnYXRpb25MaW5rSXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVyQnV0dG9uLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvQ0RLU2Nyb2xsRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHNjcm9sbGFibGU6IENka1Njcm9sbGFibGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25FbGVtZW50SWRzID0gdGhpcy5lY2xOYXZpZ2F0aW9uTGlua0l0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5zZWN0aW9uSWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25FbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+ID0gc2VjdGlvbkVsZW1lbnRJZHMubWFwKChpZCkgPT4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7aWR9YCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTmF2aWdhdGlvbkxpbmtzSGlnaGxpZ2h0KHNlY3Rpb25FbGVtZW50cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMaXN0SGVpZ2h0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3ROYXZpZ2F0aW9uSXRlbShpdGVtRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xOYXZpZ2F0aW9uTGlua0l0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5pc0FjdGl2ZSA9IGl0LnNlY3Rpb25FbGVtZW50ID09PSBpdGVtRWxlbWVudDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVOYXZpZ2F0aW9uTGlua3NIaWdobGlnaHQoc2VjdGlvbkVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFNlY3Rpb25FbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuZmluZEFjdGl2ZVNlY3Rpb25FbGVtZW50KHNlY3Rpb25FbGVtZW50cyk7XG4gICAgICAgIGlmIChjdXJyZW50U2VjdGlvbkVsZW1lbnQgIT09IHRoaXMuY3VycmVudFNlY3Rpb25FbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTZWN0aW9uRWxlbWVudCA9IGN1cnJlbnRTZWN0aW9uRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TmF2aWdhdGlvbkl0ZW0oY3VycmVudFNlY3Rpb25FbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25JZCA9IHRoaXMuY3VycmVudE5hdmlnYXRpb25MaW5rSXRlbSA/IHRoaXMuY3VycmVudE5hdmlnYXRpb25MaW5rSXRlbS5zZWN0aW9uSWQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnNlY3Rpb25FbnRlci5uZXh0KG5ldyBFY2xJbnBhZ2VOYXZpZ2F0aW9uU2VjdGlvbkVudGVyRXZlbnQoc2VjdGlvbklkKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRBY3RpdmVTZWN0aW9uRWxlbWVudChzZWN0aW9uRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Pik6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgbGV0IGN1cnJlbnRTZWN0aW9uOiBIVE1MRWxlbWVudDtcblxuICAgICAgICBzZWN0aW9uRWxlbWVudHMuZm9yRWFjaCgoc2VjdGlvbkVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWN0aW9uRWxlbWVudCAmJiBzZWN0aW9uRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPD0gdGhpcy5NSU5fRElTVEFOQ0VfVE9QKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFNlY3Rpb24gPSBzZWN0aW9uRWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjdXJyZW50U2VjdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZGtCcmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgICAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0LCBCcmVha3BvaW50cy5UYWJsZXQsIEJyZWFrcG9pbnRzLlNtYWxsXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ID0gcmVzdWx0Lm1hdGNoZXM7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZWNsLXN0aWNreS1jb250YWluZXIgW21hcmdpblRvcF09XCJtYXJnaW5Ub3BcIiBbbWFyZ2luQm90dG9tXT1cIm1hcmdpbkJvdHRvbVwiPlxuICAgIDxuYXZcbiAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZWNsLWlucGFnZS1uYXZpZ2F0aW9uLWRlZmF1bHRcIlxuICAgICAgICBjbGFzcz1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvblwiXG4gICAgICAgIFtjbGFzcy5lY2wtaW5wYWdlLW5hdmlnYXRpb24tLXZpc2libGVdPVwiaGFzQWN0aXZlU2VjdGlvblwiXG4gICAgICAgIFtjbGFzcy5lY2wtaW5wYWdlLW5hdmlnYXRpb24tLXJ0bF09XCJpc1J0bFwiPlxuICAgICAgICA8ZGl2ICNuYXZUaXR0bGUgaWQ9XCJlY2wtaW5wYWdlLW5hdmlnYXRpb24tZGVmYXVsdFwiIGNsYXNzPVwiZWNsLWlucGFnZS1uYXZpZ2F0aW9uX190aXRsZVwiPlxuICAgICAgICAgICAge3sgZWNsVGl0bGUgfHwgJ2VjbC5pbnBhZ2UtbmF2aWdhdGlvbi5QQUdFLUNPTlRFTlRTJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvbl9fYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvbl9fdHJpZ2dlci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAjdG9nZ2xlckJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvbi1kZWZhdWx0LXRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlY2wtaW5wYWdlLW5hdmlnYXRpb25fX3RyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwiZWNsLWlucGFnZS1uYXZpZ2F0aW9uLWxpc3RcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzQnV0dG9uRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FeHBhbmRCdXR0b25DbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25FeHBhbmRCdXR0b25LZXlkb3duKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtaW5wYWdlLW5hdmlnYXRpb25fX3RyaWdnZXItY3VycmVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY3VycmVudE5hdmlnYXRpb25MaW5rSXRlbT8ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIFtzaXplXT1cInNpemVJY29uXCIgdHJhbnNmb3JtPVwicm90YXRlLTE4MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvbl9fdHJpZ2dlci1pY29uXCIgdGl0bGU9XCJTaG93IGZ1bGwgcGFnZSB0YWJsZSBvZiBjb250ZW50c1wiPiA8L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHVsXG4gICAgICAgICAgICAgICAgI2xpc3RDb250YWluZXJcbiAgICAgICAgICAgICAgICBpZD1cImVjbC1pbnBhZ2UtbmF2aWdhdGlvbi1kZWZhdWx0LWxpc3RcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLWlucGFnZS1uYXZpZ2F0aW9uX19saXN0XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZWNsLWlucGFnZS1uYXZpZ2F0aW9uX19saXN0LS12aXNpYmxlXT1cImlzQnV0dG9uRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0LnB4XT1cImxpc3RNYXhIZWlnaHRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNCdXR0b25FeHBhbmRlZFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmF2PlxuPC9lY2wtc3RpY2t5LWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -83,11 +83,11 @@ export class EclSiteHeaderLoginComponent extends ECLBaseDirective {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EclSiteHeaderLoginComponent, deps: [{ token: i1.EclSiteHeaderAreaDataService }, { token: i2.EclRtlService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: EclSiteHeaderLoginComponent, selector: "ecl-site-header-login", inputs: { isLoggedIn: ["isLoggedIn", "isLoggedIn", booleanAttribute] }, outputs: { login: "login", loginBoxToggle: "loginBoxToggle" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "loginLinkElement", first: true, predicate: ["loginLink"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (isLoggedIn) {\n <a\n #loginLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__login-toggle\"\n aria-controls=\"login-box-id\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginBoxToggle($event)\">\n <ecl-icon icon=\"logged-in\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGGED-IN' | translate }}\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" class=\"ecl-site-header__login-arrow\"></ecl-icon>\n </a>\n <div\n [style]=\"{'--ecl-login-arrow-position': loginArrowPosition}\"\n class=\"{{ getLoginBoxCssClasses() }}\">\n <ng-content></ng-content>\n </div>\n} @else {\n <a\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__login-toggle\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginClick($event)\">\n <ecl-icon icon=\"log-in\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGIN' | translate }}\n </a>\n}\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i3.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
86
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: EclSiteHeaderLoginComponent, selector: "ecl-site-header-login", inputs: { isLoggedIn: ["isLoggedIn", "isLoggedIn", booleanAttribute] }, outputs: { login: "login", loginBoxToggle: "loginBoxToggle" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "loginLinkElement", first: true, predicate: ["loginLink"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (isLoggedIn) {\n <a\n #loginLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__login-toggle\"\n aria-controls=\"login-box-id\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginBoxToggle($event)\">\n <ecl-icon icon=\"logged-in\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGGED-IN' | translate }}\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" class=\"ecl-site-header__login-arrow\"></ecl-icon>\n </a>\n <div\n id=\"login-box-id\"\n [style]=\"{'--ecl-login-arrow-position': loginArrowPosition}\"\n class=\"{{ getLoginBoxCssClasses() }}\">\n <ng-content></ng-content>\n </div>\n} @else {\n <a\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__login-toggle\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginClick($event)\">\n <ecl-icon icon=\"log-in\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGIN' | translate }}\n </a>\n}\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i3.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
87
87
|
}
|
|
88
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EclSiteHeaderLoginComponent, decorators: [{
|
|
89
89
|
type: Component,
|
|
90
|
-
args: [{ selector: 'ecl-site-header-login', template: "@if (isLoggedIn) {\n <a\n #loginLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__login-toggle\"\n aria-controls=\"login-box-id\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginBoxToggle($event)\">\n <ecl-icon icon=\"logged-in\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGGED-IN' | translate }}\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" class=\"ecl-site-header__login-arrow\"></ecl-icon>\n </a>\n <div\n [style]=\"{'--ecl-login-arrow-position': loginArrowPosition}\"\n class=\"{{ getLoginBoxCssClasses() }}\">\n <ng-content></ng-content>\n </div>\n} @else {\n <a\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__login-toggle\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginClick($event)\">\n <ecl-icon icon=\"log-in\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGIN' | translate }}\n </a>\n}\n", styles: [":host{display:block}\n"] }]
|
|
90
|
+
args: [{ selector: 'ecl-site-header-login', template: "@if (isLoggedIn) {\n <a\n #loginLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__login-toggle\"\n aria-controls=\"login-box-id\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginBoxToggle($event)\">\n <ecl-icon icon=\"logged-in\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGGED-IN' | translate }}\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" class=\"ecl-site-header__login-arrow\"></ecl-icon>\n </a>\n <div\n id=\"login-box-id\"\n [style]=\"{'--ecl-login-arrow-position': loginArrowPosition}\"\n class=\"{{ getLoginBoxCssClasses() }}\">\n <ng-content></ng-content>\n </div>\n} @else {\n <a\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__login-toggle\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginClick($event)\">\n <ecl-icon icon=\"log-in\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGIN' | translate }}\n </a>\n}\n", styles: [":host{display:block}\n"] }]
|
|
91
91
|
}], ctorParameters: () => [{ type: i1.EclSiteHeaderAreaDataService }, { type: i2.EclRtlService }], propDecorators: { isLoggedIn: [{
|
|
92
92
|
type: Input,
|
|
93
93
|
args: [{ transform: booleanAttribute }]
|
|
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
102
102
|
}], loginBoxToggle: [{
|
|
103
103
|
type: Output
|
|
104
104
|
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXNpdGUtaGVhZGVyLWxvZ2luLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvbG9naW4vZWNsLXNpdGUtaGVhZGVyLWxvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvbG9naW4vZWNsLXNpdGUtaGVhZGVyLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUNqRCxNQUFNLEVBQWlCLFNBQVMsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBSTVELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0NBQUc7QUFDNUQsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLFlBQVk7SUFDOUQsWUFBbUIsTUFBZTtRQUM5QixLQUFLLEVBQUUsQ0FBQztRQURPLFdBQU0sR0FBTixNQUFNLENBQVM7SUFFbEMsQ0FBQztDQUNKO0FBYUQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGdCQUFnQjtJQWU3RCxZQUNVLDRCQUEwRCxFQUMxRCxhQUE2QjtRQUVuQyxLQUFLLEVBQUUsQ0FBQztRQUhGLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBaEJDLGVBQVUsR0FBRyxLQUFLLENBQUM7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R0FBRyxRQUFRLENBQUM7UUFDM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9FLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixHQUFHLFNBQVMsRUFBRSxLQUFLLEdBQUcsU0FBUyxFQUFFLEtBQUssR0FBRSxDQUFDLENBQUM7UUFDakYsSUFBSSxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsa0JBQWtCLEdBQUksUUFBUSxhQUFhLFFBQVEsU0FBUyxHQUFHLENBQUM7UUFDekUsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFHLENBQUM7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixHQUFJLElBQUksQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuRlEsMkJBQTJCO2tHQUEzQiwyQkFBMkIsd0ZBQ2hCLGdCQUFnQix1T0FHSixVQUFVLHlFQzlCOUMsMGtDQTJCQTs7MkZERGEsMkJBQTJCO2tCQVh2QyxTQUFTOytCQUNJLHVCQUF1Qjs2SEFXTyxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNoQixLQUFLO3NCQUExQixXQUFXO3VCQUFDLE9BQU87Z0JBRTBCLGdCQUFnQjtzQkFBN0QsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUVsQyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBhZnRlck5leHRSZW5kZXIsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFY2xCYXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtYmFzZS5ldmVudCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbFNpdGVIZWFkZXJBcmVhRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vZWNsLXNpdGUtaGVhZGVyLWFyZWEtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEVjbFJ0bFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbmV4cG9ydCBjbGFzcyBFY2xTaXRlSGVhZGVyTG9naW5FdmVudCBleHRlbmRzIEVjbEJhc2VFdmVudCB7fVxuZXhwb3J0IGNsYXNzIEVjbFNpdGVIZWFkZXJMb2dpbkJveFRvZ2dsZUV2ZW50IGV4dGVuZHMgRWNsQmFzZUV2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaXNPcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1zaXRlLWhlYWRlci1sb2dpbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1zaXRlLWhlYWRlci1sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xTaXRlSGVhZGVyTG9naW5Db21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0xvZ2dlZEluID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzID0gJ2VjbC1zaXRlLWhlYWRlcl9fbG9naW4tY29udGFpbmVyJztcblxuICAgIEBWaWV3Q2hpbGQoJ2xvZ2luTGluaycsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBsb2dpbkxpbmtFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxBbmNob3JFbGVtZW50PjtcblxuICAgIEBPdXRwdXQoKSBsb2dpbiA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsU2l0ZUhlYWRlckxvZ2luRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGxvZ2luQm94VG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xTaXRlSGVhZGVyTG9naW5Cb3hUb2dnbGVFdmVudD4oKTtcblxuICAgIHB1YmxpYyBpc0xvZ2luQm94QWN0aXZlID0gZmFsc2U7XG4gICAgcHVibGljIGxvZ2luQXJyb3dQb3NpdGlvbjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IFRBQkxFVF9CUkVBS1BPSU5UID0gOTk2O1xuICAgIHByaXZhdGUgcGFyZW50SGVhZGVyUmlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBlY2xTaXRlSGVhZGVyQXJlYURhdGFTZXJ2aWNlOiBFY2xTaXRlSGVhZGVyQXJlYURhdGFTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBlY2xSdGxTZXJ2aWNlIDogRWNsUnRsU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUnRsQ2hhbmdlU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2l0ZUhlYWRlckFyZWFDaGFuZ2VFdmVudCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlzTG9nZ2VkSW5DaGFuZ2UgPSBjaGFuZ2VzLmlzTG9nZ2VkSW47XG4gICAgICAgIGlmIChpc0xvZ2dlZEluQ2hhbmdlICYmIGlzTG9nZ2VkSW5DaGFuZ2UucHJldmlvdXNWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc0xvZ2luQm94QWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZ2V0TG9naW5Cb3hDc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbJ2VjbC1zaXRlLWhlYWRlcl9fbG9naW4tYm94JywgdGhpcy5pc0xvZ2luQm94QWN0aXZlID8gJ2VjbC1zaXRlLWhlYWRlcl9fbG9naW4tYm94LS1hY3RpdmUnIDogJyddLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBvbkxvZ2luQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEVjbFNpdGVIZWFkZXJMb2dpbkV2ZW50KCk7XG4gICAgICAgIHRoaXMubG9naW4ubmV4dChldmVudCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uTG9naW5Cb3hUb2dnbGUoZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMb2dpbkJveEFjdGl2ZSA9ICF0aGlzLmlzTG9naW5Cb3hBY3RpdmU7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEVjbFNpdGVIZWFkZXJMb2dpbkJveFRvZ2dsZUV2ZW50KHRoaXMuaXNMb2dpbkJveEFjdGl2ZSk7XG4gICAgICAgIHRoaXMubG9naW5Cb3hUb2dnbGUubmV4dChldmVudCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlUnRsQ2hhbmdlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUnRsU2VydmljZS5jdXJyZW50UnRsU3RhdGUkLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVMb2dpbkFycm93UG9zaXRpb24odGhpcy5wYXJlbnRIZWFkZXJSaWdodCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU2l0ZUhlYWRlckFyZWFDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xTaXRlSGVhZGVyQXJlYURhdGFTZXJ2aWNlLmRhdGFTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKFxuICAgICAgICAgIHBhcmVudEhlYWRlclJlY3QgPT4gIHtcbiAgICAgICAgICAgICAgdGhpcy5wYXJlbnRIZWFkZXJSaWdodCA9IHBhcmVudEhlYWRlclJlY3QucmlnaHQ7XG4gICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlTG9naW5BcnJvd1Bvc2l0aW9uKHRoaXMucGFyZW50SGVhZGVyUmlnaHQpO1xuICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlTG9naW5BcnJvd1Bvc2l0aW9uKHBhcmVudEhlYWRlclJpZ2h0OiBudW1iZXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCB2dyA9IE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCAwLCB3aW5kb3cuaW5uZXJXaWR0aCB8fCAwKTtcbiAgICAgICAgY29uc3QgYXJyb3dTaXplID0gJzAuNXJlbSc7XG4gICAgICAgIGNvbnN0IGxvZ2luTGluayA9IHRoaXMubG9naW5MaW5rRWxlbWVudD8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgYXJyb3dQb3NpdGlvbiA9IHBhcmVudEhlYWRlclJpZ2h0IC0gbG9naW5MaW5rPy5yaWdodCArIGxvZ2luTGluaz8ud2lkdGggLzI7XG4gICAgICAgIGlmIChwYXJlbnRIZWFkZXJSaWdodCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNMb2dpbkJveEFjdGl2ZSAmJiB2dyA8IHRoaXMuVEFCTEVUX0JSRUFLUE9JTlQpIHtcbiAgICAgICAgICAgIHRoaXMubG9naW5BcnJvd1Bvc2l0aW9uID0gIGBjYWxjKCR7YXJyb3dQb3NpdGlvbn1weCArICR7YXJyb3dTaXplfSlgO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNMb2dpbkJveEFjdGl2ZSApIHtcbiAgICAgICAgICAgIHRoaXMubG9naW5BcnJvd1Bvc2l0aW9uID0gIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKGlzTG9nZ2VkSW4pIHtcbiAgICA8YVxuICAgICAgICAjbG9naW5MaW5rXG4gICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgY2xhc3M9XCJlY2wtYnV0dG9uIGVjbC1idXR0b24tLXRlcnRpYXJ5IGVjbC1zaXRlLWhlYWRlcl9fbG9naW4tdG9nZ2xlXCJcbiAgICAgICAgYXJpYS1jb250cm9scz1cImxvZ2luLWJveC1pZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNMb2dpbkJveEFjdGl2ZVwiXG4gICAgICAgIChjbGljayk9XCJvbkxvZ2luQm94VG9nZ2xlKCRldmVudClcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJsb2dnZWQtaW5cIiBzaXplPVwic1wiIGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19pY29uXCI+PC9lY2wtaWNvbj5cbiAgICAgICAge3sgJ2VjbC5zaXRlLWhlYWRlci5MT0dHRUQtSU4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInhzXCIgY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX2xvZ2luLWFycm93XCI+PC9lY2wtaWNvbj5cbiAgICA8L2E+XG4gICAgPGRpdlxuICAgICAgICBbc3R5bGVdPVwieyctLWVjbC1sb2dpbi1hcnJvdy1wb3NpdGlvbic6IGxvZ2luQXJyb3dQb3NpdGlvbn1cIlxuICAgICAgICBjbGFzcz1cInt7IGdldExvZ2luQm94Q3NzQ2xhc3NlcygpIH19XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbn0gQGVsc2Uge1xuICAgIDxhXG4gICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgY2xhc3M9XCJlY2wtYnV0dG9uIGVjbC1idXR0b24tLXRlcnRpYXJ5IGVjbC1zaXRlLWhlYWRlcl9fbG9naW4tdG9nZ2xlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0xvZ2luQm94QWN0aXZlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTG9naW5DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwibG9nLWluXCIgc2l6ZT1cInNcIiBjbGFzcz1cImVjbC1zaXRlLWhlYWRlcl9faWNvblwiPjwvZWNsLWljb24+XG4gICAgICAgIHt7ICdlY2wuc2l0ZS1oZWFkZXIuTE9HSU4nIHwgdHJhbnNsYXRlIH19XG4gICAgPC9hPlxufVxuIl19
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXNpdGUtaGVhZGVyLWxvZ2luLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvbG9naW4vZWNsLXNpdGUtaGVhZGVyLWxvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvbG9naW4vZWNsLXNpdGUtaGVhZGVyLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUNqRCxNQUFNLEVBQWlCLFNBQVMsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBSTVELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0NBQUc7QUFDNUQsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLFlBQVk7SUFDOUQsWUFBbUIsTUFBZTtRQUM5QixLQUFLLEVBQUUsQ0FBQztRQURPLFdBQU0sR0FBTixNQUFNLENBQVM7SUFFbEMsQ0FBQztDQUNKO0FBYUQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGdCQUFnQjtJQWU3RCxZQUNVLDRCQUEwRCxFQUMxRCxhQUE2QjtRQUVuQyxLQUFLLEVBQUUsQ0FBQztRQUhGLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBaEJDLGVBQVUsR0FBRyxLQUFLLENBQUM7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R0FBRyxRQUFRLENBQUM7UUFDM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9FLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixHQUFHLFNBQVMsRUFBRSxLQUFLLEdBQUcsU0FBUyxFQUFFLEtBQUssR0FBRSxDQUFDLENBQUM7UUFDakYsSUFBSSxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsa0JBQWtCLEdBQUksUUFBUSxhQUFhLFFBQVEsU0FBUyxHQUFHLENBQUM7UUFDekUsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFHLENBQUM7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixHQUFJLElBQUksQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuRlEsMkJBQTJCO2tHQUEzQiwyQkFBMkIsd0ZBQ2hCLGdCQUFnQix1T0FHSixVQUFVLHlFQzlCOUMsdW1DQTRCQTs7MkZERmEsMkJBQTJCO2tCQVh2QyxTQUFTOytCQUNJLHVCQUF1Qjs2SEFXTyxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNoQixLQUFLO3NCQUExQixXQUFXO3VCQUFDLE9BQU87Z0JBRTBCLGdCQUFnQjtzQkFBN0QsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUVsQyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBhZnRlck5leHRSZW5kZXIsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFY2xCYXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtYmFzZS5ldmVudCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbFNpdGVIZWFkZXJBcmVhRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vZWNsLXNpdGUtaGVhZGVyLWFyZWEtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEVjbFJ0bFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbmV4cG9ydCBjbGFzcyBFY2xTaXRlSGVhZGVyTG9naW5FdmVudCBleHRlbmRzIEVjbEJhc2VFdmVudCB7fVxuZXhwb3J0IGNsYXNzIEVjbFNpdGVIZWFkZXJMb2dpbkJveFRvZ2dsZUV2ZW50IGV4dGVuZHMgRWNsQmFzZUV2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaXNPcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1zaXRlLWhlYWRlci1sb2dpbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1zaXRlLWhlYWRlci1sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xTaXRlSGVhZGVyTG9naW5Db21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0xvZ2dlZEluID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzID0gJ2VjbC1zaXRlLWhlYWRlcl9fbG9naW4tY29udGFpbmVyJztcblxuICAgIEBWaWV3Q2hpbGQoJ2xvZ2luTGluaycsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBsb2dpbkxpbmtFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxBbmNob3JFbGVtZW50PjtcblxuICAgIEBPdXRwdXQoKSBsb2dpbiA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsU2l0ZUhlYWRlckxvZ2luRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGxvZ2luQm94VG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xTaXRlSGVhZGVyTG9naW5Cb3hUb2dnbGVFdmVudD4oKTtcblxuICAgIHB1YmxpYyBpc0xvZ2luQm94QWN0aXZlID0gZmFsc2U7XG4gICAgcHVibGljIGxvZ2luQXJyb3dQb3NpdGlvbjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IFRBQkxFVF9CUkVBS1BPSU5UID0gOTk2O1xuICAgIHByaXZhdGUgcGFyZW50SGVhZGVyUmlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBlY2xTaXRlSGVhZGVyQXJlYURhdGFTZXJ2aWNlOiBFY2xTaXRlSGVhZGVyQXJlYURhdGFTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBlY2xSdGxTZXJ2aWNlIDogRWNsUnRsU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUnRsQ2hhbmdlU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2l0ZUhlYWRlckFyZWFDaGFuZ2VFdmVudCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlzTG9nZ2VkSW5DaGFuZ2UgPSBjaGFuZ2VzLmlzTG9nZ2VkSW47XG4gICAgICAgIGlmIChpc0xvZ2dlZEluQ2hhbmdlICYmIGlzTG9nZ2VkSW5DaGFuZ2UucHJldmlvdXNWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc0xvZ2luQm94QWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZ2V0TG9naW5Cb3hDc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbJ2VjbC1zaXRlLWhlYWRlcl9fbG9naW4tYm94JywgdGhpcy5pc0xvZ2luQm94QWN0aXZlID8gJ2VjbC1zaXRlLWhlYWRlcl9fbG9naW4tYm94LS1hY3RpdmUnIDogJyddLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBvbkxvZ2luQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEVjbFNpdGVIZWFkZXJMb2dpbkV2ZW50KCk7XG4gICAgICAgIHRoaXMubG9naW4ubmV4dChldmVudCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uTG9naW5Cb3hUb2dnbGUoZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMb2dpbkJveEFjdGl2ZSA9ICF0aGlzLmlzTG9naW5Cb3hBY3RpdmU7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEVjbFNpdGVIZWFkZXJMb2dpbkJveFRvZ2dsZUV2ZW50KHRoaXMuaXNMb2dpbkJveEFjdGl2ZSk7XG4gICAgICAgIHRoaXMubG9naW5Cb3hUb2dnbGUubmV4dChldmVudCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlUnRsQ2hhbmdlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUnRsU2VydmljZS5jdXJyZW50UnRsU3RhdGUkLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVMb2dpbkFycm93UG9zaXRpb24odGhpcy5wYXJlbnRIZWFkZXJSaWdodCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU2l0ZUhlYWRlckFyZWFDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xTaXRlSGVhZGVyQXJlYURhdGFTZXJ2aWNlLmRhdGFTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKFxuICAgICAgICAgIHBhcmVudEhlYWRlclJlY3QgPT4gIHtcbiAgICAgICAgICAgICAgdGhpcy5wYXJlbnRIZWFkZXJSaWdodCA9IHBhcmVudEhlYWRlclJlY3QucmlnaHQ7XG4gICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlTG9naW5BcnJvd1Bvc2l0aW9uKHRoaXMucGFyZW50SGVhZGVyUmlnaHQpO1xuICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlTG9naW5BcnJvd1Bvc2l0aW9uKHBhcmVudEhlYWRlclJpZ2h0OiBudW1iZXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCB2dyA9IE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCAwLCB3aW5kb3cuaW5uZXJXaWR0aCB8fCAwKTtcbiAgICAgICAgY29uc3QgYXJyb3dTaXplID0gJzAuNXJlbSc7XG4gICAgICAgIGNvbnN0IGxvZ2luTGluayA9IHRoaXMubG9naW5MaW5rRWxlbWVudD8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgYXJyb3dQb3NpdGlvbiA9IHBhcmVudEhlYWRlclJpZ2h0IC0gbG9naW5MaW5rPy5yaWdodCArIGxvZ2luTGluaz8ud2lkdGggLzI7XG4gICAgICAgIGlmIChwYXJlbnRIZWFkZXJSaWdodCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNMb2dpbkJveEFjdGl2ZSAmJiB2dyA8IHRoaXMuVEFCTEVUX0JSRUFLUE9JTlQpIHtcbiAgICAgICAgICAgIHRoaXMubG9naW5BcnJvd1Bvc2l0aW9uID0gIGBjYWxjKCR7YXJyb3dQb3NpdGlvbn1weCArICR7YXJyb3dTaXplfSlgO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNMb2dpbkJveEFjdGl2ZSApIHtcbiAgICAgICAgICAgIHRoaXMubG9naW5BcnJvd1Bvc2l0aW9uID0gIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKGlzTG9nZ2VkSW4pIHtcbiAgICA8YVxuICAgICAgICAjbG9naW5MaW5rXG4gICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgY2xhc3M9XCJlY2wtYnV0dG9uIGVjbC1idXR0b24tLXRlcnRpYXJ5IGVjbC1zaXRlLWhlYWRlcl9fbG9naW4tdG9nZ2xlXCJcbiAgICAgICAgYXJpYS1jb250cm9scz1cImxvZ2luLWJveC1pZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNMb2dpbkJveEFjdGl2ZVwiXG4gICAgICAgIChjbGljayk9XCJvbkxvZ2luQm94VG9nZ2xlKCRldmVudClcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJsb2dnZWQtaW5cIiBzaXplPVwic1wiIGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19pY29uXCI+PC9lY2wtaWNvbj5cbiAgICAgICAge3sgJ2VjbC5zaXRlLWhlYWRlci5MT0dHRUQtSU4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInhzXCIgY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX2xvZ2luLWFycm93XCI+PC9lY2wtaWNvbj5cbiAgICA8L2E+XG4gICAgPGRpdlxuICAgICAgICBpZD1cImxvZ2luLWJveC1pZFwiXG4gICAgICAgIFtzdHlsZV09XCJ7Jy0tZWNsLWxvZ2luLWFycm93LXBvc2l0aW9uJzogbG9naW5BcnJvd1Bvc2l0aW9ufVwiXG4gICAgICAgIGNsYXNzPVwie3sgZ2V0TG9naW5Cb3hDc3NDbGFzc2VzKCkgfX1cIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxufSBAZWxzZSB7XG4gICAgPGFcbiAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICBjbGFzcz1cImVjbC1idXR0b24gZWNsLWJ1dHRvbi0tdGVydGlhcnkgZWNsLXNpdGUtaGVhZGVyX19sb2dpbi10b2dnbGVcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzTG9naW5Cb3hBY3RpdmVcIlxuICAgICAgICAoY2xpY2spPVwib25Mb2dpbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJsb2ctaW5cIiBzaXplPVwic1wiIGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19pY29uXCI+PC9lY2wtaWNvbj5cbiAgICAgICAge3sgJ2VjbC5zaXRlLWhlYWRlci5MT0dJTicgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2E+XG59XG4iXX0=
|