@progress-chef/platform-shared-components 0.0.68 → 0.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/atoms/typography/typography.component.mjs +4 -4
- package/esm2022/lib/molecules/grid-pagination/grid-pagination.component.mjs +20 -16
- package/fesm2022/progress-chef-platform-shared-components.mjs +22 -18
- package/fesm2022/progress-chef-platform-shared-components.mjs.map +1 -1
- package/lib/atoms/typography/typography.component.d.ts +1 -1
- package/lib/molecules/grid-pagination/grid-pagination.component.d.ts +0 -1
- package/package.json +1 -1
|
@@ -30,7 +30,7 @@ export class TypographyComponent {
|
|
|
30
30
|
this.hiddenLabel = "";
|
|
31
31
|
this.showDefaultText = true;
|
|
32
32
|
this.font = Typography[this.type];
|
|
33
|
-
this.input_id =
|
|
33
|
+
this.input_id = "";
|
|
34
34
|
}
|
|
35
35
|
ngAfterViewInit() {
|
|
36
36
|
if (!this.input_id) {
|
|
@@ -57,11 +57,11 @@ export class TypographyComponent {
|
|
|
57
57
|
this.showDefaultText = !this.isLabel && (!childrenCount || childrenCount == 0);
|
|
58
58
|
}
|
|
59
59
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TypographyComponent, deps: [{ token: i1.ThemesService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TypographyComponent, selector: "lib-typography", inputs: { type: "type", defaultText: "defaultText", isLabel: "isLabel", hiddenLabel: "hiddenLabel" }, viewQueries: [{ propertyName: "child", first: true, predicate: ["ref"], descendants: true }, { propertyName: "labelChild", first: true, predicate: ["ref_label"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:32px!important;line-height:40px!important;letter-spacing:.25px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important;letter-spacing:.15px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important;text-transform:uppercase}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TypographyComponent, selector: "lib-typography", inputs: { type: "type", defaultText: "defaultText", isLabel: "isLabel", hiddenLabel: "hiddenLabel" }, viewQueries: [{ propertyName: "child", first: true, predicate: ["ref"], descendants: true }, { propertyName: "labelChild", first: true, predicate: ["ref_label"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id || ''}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:32px!important;line-height:40px!important;letter-spacing:.25px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important;letter-spacing:.15px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important;text-transform:uppercase}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
61
61
|
}
|
|
62
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TypographyComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
64
|
-
args: [{ selector: 'lib-typography', template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:32px!important;line-height:40px!important;letter-spacing:.25px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important;letter-spacing:.15px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important;text-transform:uppercase}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"] }]
|
|
64
|
+
args: [{ selector: 'lib-typography', template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id || ''}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:32px!important;line-height:40px!important;letter-spacing:.25px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important;letter-spacing:.15px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important;text-transform:uppercase}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"] }]
|
|
65
65
|
}], ctorParameters: function () { return [{ type: i1.ThemesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
|
|
66
66
|
type: Input
|
|
67
67
|
}], defaultText: [{
|
|
@@ -77,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
77
77
|
type: ViewChild,
|
|
78
78
|
args: ['ref_label', { static: false }]
|
|
79
79
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwb2dyYXBoeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9hdG9tcy90eXBvZ3JhcGh5L3R5cG9ncmFwaHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvYXRvbXMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFjLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFJckgsTUFBTSxVQUFVLEdBQUc7SUFDakIsYUFBYSxFQUFFLGVBQWU7SUFDOUIsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxhQUFhLEVBQUUsZUFBZTtJQUM5QixhQUFhLEVBQUUsZUFBZTtJQUM5QixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxlQUFlO0lBQzlCLGdCQUFnQixFQUFFLGtCQUFrQjtJQUNwQyxjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFVBQVUsRUFBQyxZQUFZO0lBQ3ZCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsc0JBQXNCLEVBQUUsd0JBQXdCO0lBQ2hELG9CQUFvQixFQUFFLHNCQUFzQjtJQUM1QyxjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLFlBQVksRUFBRSxjQUFjO0NBQzdCLENBQUE7QUFRRCxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQW9CLGFBQTRCLEVBQVUsS0FBd0I7UUFBOUQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQVZ6RSxTQUFJLEdBQW1CLGFBQWEsQ0FBQztRQUNyQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBR2xDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLFNBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLGFBQVEsR0FBRyxFQUFFLENBQUM7SUFFd0UsQ0FBQztJQUV2RixlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELHNCQUFzQjtJQUN0QiwrQkFBK0I7SUFDL0IsSUFBSTtJQUVKLHFCQUFxQjtRQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDckUsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JHO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxhQUFhLElBQUksYUFBYSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7K0dBekNVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlXQzdCaEMsOGxCQWNBOzs0RkRlYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsZ0JBQWdCO29JQU1qQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDK0IsS0FBSztzQkFBekMsU0FBUzt1QkFBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNRLFVBQVU7c0JBQXBELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeVR5cGUgfSBmcm9tICcuL1R5cG9ncmFwaHlUeXBlJztcbmltcG9ydCB7IFRoZW1lc1NlcnZpY2UgfSBmcm9tICdAcHJvZ3Jlc3MtY2hlZi9wbGF0Zm9ybS10aGVtZXMtc2VydmljZSc7XG5cbmNvbnN0IFR5cG9ncmFwaHkgPSB7XG4gIERJU1BMQVlfTEFSR0U6ICdkaXNwbGF5LWxhcmdlJyxcbiAgRElTUExBWV9NRURJVU06ICdkaXNwbGF5LW1lZGl1bScsXG4gIERJU1BMQVlfU01BTEw6ICdkaXNwbGF5LXNtYWxsJyxcbiAgSEVBRElOR19MQVJHRTogJ2hlYWRpbmctbGFyZ2UnLFxuICBIRUFESU5HX01FRElVTTogJ2hlYWRpbmctbWVkaXVtJyxcbiAgSEVBRElOR19TTUFMTDogJ2hlYWRpbmctc21hbGwnLFxuICBTVUJUSVRMRV9SRUdVTEFSOiAnc3VidGl0bGUtcmVndWxhcicsXG4gIFNVQlRJVExFX1NNQUxMOiAnc3VidGl0bGUtc21hbGwnLFxuICBCT0RZX0xBUkdFOiAnYm9keS1sYXJnZScsXG4gIEJPRFlfTUVESVVNOiAnYm9keS1tZWRpdW0nLFxuICBCT0RZX1NNQUxMOidib2R5LXNtYWxsJyxcbiAgQk9EWV9VTklUX0xBQkVMOiAnYm9keS11bml0LWxhYmVsJyxcbiAgT1ZFUkxJTkVfTEFCRUxfUkVHVUxBUjogJ292ZXJsaW5lLWxhYmVsLXJlZ3VsYXInLFxuICBPVkVSTElORV9MQUJFTF9TTUFMTDogJ292ZXJsaW5lLWxhYmVsLXNtYWxsJyxcbiAgQlVUVE9OX1JFR1VMQVI6ICdidXR0b24tcmVndWxhcicsXG4gIEJVVFRPTl9TTUFMTDogJ2J1dHRvbi1zbWFsbCdcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXR5cG9ncmFwaHknLFxuICB0ZW1wbGF0ZVVybDogJy4vdHlwb2dyYXBoeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3R5cG9ncmFwaHkuY29tcG9uZW50LnNjc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIFR5cG9ncmFwaHlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSB0eXBlOiBUeXBvZ3JhcGh5VHlwZSA9ICdCT0RZX01FRElVTSc7XG4gIEBJbnB1dCgpIGRlZmF1bHRUZXh0OiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBpc0xhYmVsOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpZGRlbkxhYmVsOiBzdHJpbmcgPSBcIlwiO1xuICBAVmlld0NoaWxkKCdyZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgY2hpbGQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG4gIEBWaWV3Q2hpbGQoJ3JlZl9sYWJlbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBsYWJlbENoaWxkOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICBzaG93RGVmYXVsdFRleHQgPSB0cnVlO1xuICBmb250ID0gVHlwb2dyYXBoeVt0aGlzLnR5cGVdO1xuICBpbnB1dF9pZCA9IFwiXCI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0aGVtZXNTZXJ2aWNlOiBUaGVtZXNTZXJ2aWNlLCBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbnB1dF9pZCkge1xuICAgICAgdGhpcy5jaGVja0ZvckxhYmVsKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLmZvbnQgPSBUeXBvZ3JhcGh5W3RoaXMudHlwZV07XG4gIH1cblxuICAvLyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIC8vIHRoaXMuY2hlY2tTaG93RGVmYXVsdFRleHQoKTtcbiAgLy8gfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGNoZWNrRm9yTGFiZWwoKSB7XG4gICAgbGV0IGNoaWxkcmVuQ291bnQgPSB0aGlzLmxhYmVsQ2hpbGQ/Lm5hdGl2ZUVsZW1lbnQuY2hpbGRFbGVtZW50Q291bnQ7XG4gICAgaWYgKGNoaWxkcmVuQ291bnQgPiAwKSB7XG4gICAgICB0aGlzLmlucHV0X2lkID0gdGhpcy5sYWJlbENoaWxkPy5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdPy5nZXRBdHRyaWJ1dGUoJ2lkJyk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tTaG93RGVmYXVsdFRleHQoKSB7XG4gICAgbGV0IGNoaWxkcmVuQ291bnQgPSB0aGlzLmNoaWxkPy5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoO1xuICAgIHRoaXMuc2hvd0RlZmF1bHRUZXh0ID0gIXRoaXMuaXNMYWJlbCAmJiAoIWNoaWxkcmVuQ291bnQgfHwgY2hpbGRyZW5Db3VudCA9PSAwKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPCEtLSA8c3BhbiAqbmdJZj1cIiFpc0xhYmVsXCIgI3JlZiBbY2xhc3NdPVwiZm9udFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+IC0tPlxuICA8bGFiZWwgKm5nSWY9XCJpc0xhYmVsXCIgI3JlZl9sYWJlbCBbY2xhc3NdPVwiZm9udFwiIGF0dHIuZm9yPVwie3tpbnB1dF9pZCB8fCAnJ319XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57e2hpZGRlbkxhYmVsfX08L3NwYW4+e3tkZWZhdWx0VGV4dH19PG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21UZXh0XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbGFiZWw+XG4gIDxzcGFuICpuZ0lmPVwic2hvd0RlZmF1bHRUZXh0ICYmICFpc0xhYmVsXCIgW2NsYXNzXT1cImZvbnRcIj57e2RlZmF1bHRUZXh0fX08bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9zcGFuPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tVGV4dD5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -165,7 +165,7 @@ export class GridPaginationComponent {
|
|
|
165
165
|
}
|
|
166
166
|
this.initialGridHeight =
|
|
167
167
|
this.gridElement.nativeElement.offsetHeight + this.gridBottomSpace;
|
|
168
|
-
this.getGridHeight();
|
|
168
|
+
// this.getGridHeight();
|
|
169
169
|
const gridContainer = this.gridElement?.nativeElement?.getElementsByClassName('k-grid-container')[0];
|
|
170
170
|
this.renderer.insertBefore(gridContainer.parentElement, this.selectAllMessageElement.nativeElement, gridContainer, true);
|
|
171
171
|
this.cdRef.detectChanges();
|
|
@@ -282,9 +282,9 @@ export class GridPaginationComponent {
|
|
|
282
282
|
expandRow(id) {
|
|
283
283
|
this.grid.expandRow(id);
|
|
284
284
|
this.expandRowIndex.push(id);
|
|
285
|
-
setTimeout(() => {
|
|
286
|
-
|
|
287
|
-
}, 0);
|
|
285
|
+
// setTimeout(() => {
|
|
286
|
+
// this.getGridHeight();
|
|
287
|
+
// }, 0);
|
|
288
288
|
}
|
|
289
289
|
collapseRow(id) {
|
|
290
290
|
this.grid.collapseRow(id);
|
|
@@ -297,7 +297,7 @@ export class GridPaginationComponent {
|
|
|
297
297
|
this.height = '100%';
|
|
298
298
|
return;
|
|
299
299
|
}
|
|
300
|
-
this.getGridHeight();
|
|
300
|
+
// this.getGridHeight();
|
|
301
301
|
}
|
|
302
302
|
}
|
|
303
303
|
onDelete(rowDetails) {
|
|
@@ -312,15 +312,19 @@ export class GridPaginationComponent {
|
|
|
312
312
|
}
|
|
313
313
|
return 'view-header';
|
|
314
314
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
315
|
+
/*
|
|
316
|
+
* This logic of dynamically calculating the height of grid need further brainstorming hence commented for now.
|
|
317
|
+
*/
|
|
318
|
+
// getGridHeight() {
|
|
319
|
+
// const windowHeight = window.innerHeight;
|
|
320
|
+
// const viewport: any = document.getElementById('lib-grid');
|
|
321
|
+
// const gridOffset = viewport.getBoundingClientRect().top + window.scrollY;
|
|
322
|
+
// const gridHeight =
|
|
323
|
+
// this.gridElement.nativeElement.offsetHeight + this.gridBottomSpace; //grid should have 24px space at bottom
|
|
324
|
+
// if (gridOffset + gridHeight >= windowHeight) {
|
|
325
|
+
// this.height = windowHeight - (gridOffset + this.gridBottomSpace);
|
|
326
|
+
// }
|
|
327
|
+
// }
|
|
324
328
|
resize(ev) {
|
|
325
329
|
if (ev.target.innerHeight > this.resizeHeight) {
|
|
326
330
|
this.resizeHeight = ev.target.innerHeight;
|
|
@@ -329,7 +333,7 @@ export class GridPaginationComponent {
|
|
|
329
333
|
if (this.resizeHeight > window.innerHeight) {
|
|
330
334
|
this.resizeHeight = 0;
|
|
331
335
|
}
|
|
332
|
-
this.getGridHeight();
|
|
336
|
+
// this.getGridHeight();
|
|
333
337
|
}
|
|
334
338
|
expandColumnClass() {
|
|
335
339
|
if (this.selectedRows?.length > 0 && this.disablePreSelectedRows) {
|
|
@@ -519,4 +523,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
519
523
|
type: HostListener,
|
|
520
524
|
args: ['window:resize', ['$event']]
|
|
521
525
|
}] } });
|
|
522
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQWUsRUFHaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGFBQWEsRUFNZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUVMLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBS3RELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBbUIsUUFBZ0M7UUFBaEMsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7UUFEMUMsU0FBSSxHQUFXLEVBQUUsQ0FBQztJQUMyQixDQUFDOytHQUY1QyxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9C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QkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBc09OLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2VsZWN0YWJsZVNldHRpbmdzLFxuICBTZWxlY3RhYmxlTW9kZSxcbiAgQ2VsbENsaWNrRXZlbnQsXG4gIEdyaWRDb21wb25lbnQsXG4gIEdyaWREYXRhUmVzdWx0LFxuICBQYWdlQ2hhbmdlRXZlbnQsXG4gIFJvd0NsYXNzQXJncyxcbiAgU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSxcbiAgQ2VsbENsb3NlRXZlbnRcbn0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZ3JpZCc7XG5pbXBvcnQgeyBTb3J0RGVzY3JpcHRvciwgb3JkZXJCeSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1kYXRhLXF1ZXJ5JztcbmltcG9ydCB7XG4gIFNWR0ljb24sXG4gIGNoZXZyb25Eb3duSWNvbixcbiAgY2hldnJvblVwSWNvbixcbiAgbW9yZVZlcnRpY2FsSWNvblxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tc3ZnLWljb25zJztcbmltcG9ydCB7IExvYWRlclNpemUsIExvYWRlclR5cGUsIExvYWRlclRoZW1lQ29sb3IgfSBmcm9tICcuLi8uLi9hdG9tcy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2V5cyB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWNvbW1vbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3R5cGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21Db2x1bW5UZW1wbGF0ZSB7XG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZyA9IFwiXCI7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q29tcG9uZW50Pikge31cbn1cblxuY29uc3QgY3JlYXRlRm9ybUdyb3VwID0gKGRhdGFJdGVtOiBhbnkpOiBGb3JtR3JvdXAgPT4ge1xuICBjb25zdCBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIGZvciAobGV0IGRhdGEgb2YgT2JqZWN0LmtleXMoZGF0YUl0ZW0pKSB7XG4gICAgZm9ybS5hZGRDb250cm9sKGRhdGEsIG5ldyBGb3JtQ29udHJvbChkYXRhSXRlbVtkYXRhXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCkpXG4gIH1cbiAgcmV0dXJuIGZvcm1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ncmlkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQENvbnRlbnRDaGlsZHJlbihDdXN0b21Db2x1bW5UZW1wbGF0ZSkgY29sdW1uVGVtcGxhdGVzITogUXVlcnlMaXN0PEN1c3RvbUNvbHVtblRlbXBsYXRlPiB8IFtdO1xuICBAQ29udGVudENoaWxkKCdtdWx0aUNvbHVtbkRhdGEnKSB0ZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdkZXRhaWxUZW1wbGF0ZScpIGRldGFpbFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gIEBDb250ZW50Q2hpbGQoJ2ltcGFjdENvbHVtbicpIGltcGFjdENvbHVtbiE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAVmlld0NoaWxkKEdyaWRDb21wb25lbnQpIGdyaWQhOiBHcmlkQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdncmlkRWxlbWVudCcpIGdyaWRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQnKSBzZWxlY3RBbGxNZXNzYWdlRWxlbWVudCE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2tpcDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgaXRlbU5hbWU6IHN0cmluZyA9ICdJdGVtcyc7XG4gIHNob3dTZWxlY3RBbGxNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIGFsbFBhZ2VzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2F2ZWRIZWlnaHQ6bnVtYmVyID0gMDtcbiAgcHJldmlvdXNTZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBAT3V0cHV0KCkgb25TZWxlY3RBbGxBY3Jvc3NQYWdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQElucHV0KCkgY29sdW1uRGF0YTogYW55ID0gW107XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBwYWdlYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBncm91cGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVvcmRlcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94V2lkdGg6IG51bWJlciA9IDQ1O1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtblJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5TaG93U2VsZWN0ZWRBbGw6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBjaGVja0JveFJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZTogU2VsZWN0YWJsZU1vZGUgfCB1bmRlZmluZWQgPSAnbXVsdGlwbGUnO1xuICBASW5wdXQoKSBjaGVja2JveE9ubHkgPSB0cnVlO1xuICBASW5wdXQoKSBkcmFnQ29sdW1ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBuYXZpZ2FibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBoZWlnaHQ6IGFueTtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gUmVjb3JkcyBBdmFpbGFibGUnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCgpIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDYwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0Q29sdW1uID0gJyc7XG4gIEBPdXRwdXQoKSByb3dEYXRhT2ZDbGlja2VkQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBwcmVTZWxlY3RlZDogYW55W10gPSBbXTtcbiAgcHJlU2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvcltdID0gW1xuICAgIHtcbiAgICAgIGZpZWxkOiAnJyxcbiAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIGhhc0FwaVNvcnRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNvcnREaXJlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGFycm93RG93bkljb246IFNWR0ljb24gPSBjaGV2cm9uRG93bkljb247XG4gIHB1YmxpYyBhcnJvd1VwSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25VcEljb247XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b21FeHBhbmRSb3dDb2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGVsZXRlQ29sdW1uV2lkdGg6IG51bWJlciA9IDQyO1xuICBleHBhbmRSb3dDb2x1bW5XaWR0aDogbnVtYmVyID0gNTY7XG4gIEBPdXRwdXQoKSBkZWxldGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzaXplczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcGFnZUNvdW50ID0gMDtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlS2ViYWJSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkZXJUeXBlOiBMb2FkZXJUeXBlID0gTG9hZGVyVHlwZS5wdWxzaW5nO1xuICBASW5wdXQoKSBsb2FkZXJTaXplOiBMb2FkZXJTaXplID0gTG9hZGVyU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGxvYWRlclRoZW1lOiBMb2FkZXJUaGVtZUNvbG9yID0gTG9hZGVyVGhlbWVDb2xvci5wcmltYXJ5O1xuICBpbml0aWFsR3JpZEhlaWdodDogYW55O1xuICBncmlkQm90dG9tU3BhY2UgPSAyNDtcbiAgcmVzaXplSGVpZ2h0OiBhbnkgPSAwO1xuICBzZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBzZWxlY3RlZFJvd3M6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGRpc2FibGVQcmVTZWxlY3RlZFJvd3MgPSBmYWxzZTtcbiAgcHVibGljIGZvcm1Hcm91cCE6IEZvcm1Hcm91cCB8IGFueTtcbiAgQE91dHB1dCgpIHVwZGF0ZWREYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGFsbG93RWRpdGluZ0NlbGwgPSBmYWxzZTtcbiAgQElucHV0KCkgY29sdW1uQ29udGVudE5vV3JhcCA9IGZhbHNlO1xuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHRoaXMuc2V0U2VsZWN0YWJsZVNldHRpbmdzKCk7XG4gIH1cblxuICBjb2x1bW5UZW1wbGF0ZURpY3Q6YW55ID0ge307XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb2x1bW5EYXRhLmZvckVhY2goKGNvbHVtbjphbnksaW5kZXg6bnVtYmVyKT0+e1xuICAgICAgY29sdW1uLnNvcnRhYmxlID0gY29sdW1uLnNvcnRhYmxlID09IHVuZGVmaW5lZCA/IHRydWUgOiBjb2x1bW4uc29ydGFibGU7XG4gICAgICBpZighdGhpcy5pZ25vcmVDb2x1bW5DZWxsQ2xpY2suaW5jbHVkZXMoaW5kZXgpKXtcbiAgICAgICAgY29sdW1uLmNsYXNzPSdjb2x1bW4tY3Vyc29yLXBvaW50ZXInO1xuICAgICAgfVxuICAgIH0pXG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYWdlYWJsZSkge1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuZ3JpZFZpZXcuZGF0YT8ubGVuZ3RoO1xuICAgIH1cbiAgICB0aGlzLmNvbHVtblRlbXBsYXRlcy5mb3JFYWNoKHggPT4gdGhpcy5jb2x1bW5UZW1wbGF0ZURpY3RbeC50eXBlXSA9IHgudGVtcGxhdGUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmN1c3RvbUV4cGFuZFJvd0NvbHVtbikge1xuICAgICAgdGhpcy5leHBhbmRSb3dJbmRleC5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMucHJlU2VsZWN0ZWQ7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfVxuICAgIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQgPVxuICAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlO1xuICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuXG4gICAgY29uc3QgZ3JpZENvbnRhaW5lciA9IHRoaXMuZ3JpZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2stZ3JpZC1jb250YWluZXInKVswXTtcbiAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgIGdyaWRDb250YWluZXIucGFyZW50RWxlbWVudCxcbiAgICAgIHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIGdyaWRDb250YWluZXIsXG4gICAgICB0cnVlXG4gICAgKTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICB9XG5cbiAgc2VsZWN0QWNyb3NzUGFnZXMoaXNTZWxlY3RlZDogYm9vbGVhbikge1xuICAgIHRoaXMudHJpZ2dlclNlbGVjdEFsbFBhZ2VzRXZlbnQoaXNTZWxlY3RlZCk7XG4gICAgaWYoIWlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMub25TZWxlY3RBbGxDaGFuZ2UodGhpcy5wcmV2aW91c1NlbGVjdEFsbFN0YXRlKVxuICAgIH1cbiAgfVxuXG4gIHRyaWdnZXJTZWxlY3RBbGxQYWdlc0V2ZW50KGlzU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmFsbFBhZ2VzU2VsZWN0ZWQgPSBpc1NlbGVjdGVkO1xuICAgIHRoaXMub25TZWxlY3RBbGxBY3Jvc3NQYWdlcy5lbWl0KGlzU2VsZWN0ZWQpO1xuICAgIGNvbnNvbGUubG9nKCd0cmlnZ2VyU2VsZWN0QWxsUGFnZXNFdmVudCA6IGlzU2VsZWN0ZWQnLCBpc1NlbGVjdGVkKTtcbiAgfVxuXG4gIGFkZFNlbGVjdEFsbE1lc3NhZ2Uoc2VsZWN0QWxsOmJvb2xlYW4pIHtcbiAgICBpZih0aGlzLnNob3dTZWxlY3RBbGxNZXNzYWdlICYmIHRoaXMucGFnZUNvdW50ID4gMSkge1xuICAgICAgY29uc3QgZWxlbWVudFJlc3VsdCA9IHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgaWYoc2VsZWN0QWxsKSB7XG4gICAgICAgIHRoaXMuc2F2ZWRIZWlnaHQgPSBlbGVtZW50UmVzdWx0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gZWxlbWVudFJlc3VsdC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdsaWItZ3JpZC1zZWxlY3QtYWxsLW1lc3NhZ2Utc2hvdycpO1xuICAgICAgICBjb25zdCBhZnRlckhlaWdodCA9IGVsZW1lbnRSZXN1bHQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBlbGVtZW50UmVzdWx0LnN0eWxlLmhlaWdodCA9IChlbGVtZW50UmVzdWx0Lm9mZnNldEhlaWdodCAtIChhZnRlckhlaWdodCAtIGJlZm9yZUhlaWdodCkpICsgJ3B4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdsaWItZ3JpZC1zZWxlY3QtYWxsLW1lc3NhZ2Utc2hvdycpO1xuICAgICAgICBpZih0aGlzLmFsbFBhZ2VzU2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJTZWxlY3RBbGxQYWdlc0V2ZW50KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50UmVzdWx0LnN0eWxlLmhlaWdodCA9IHRoaXMuc2F2ZWRIZWlnaHQgKyAncHgnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHBhZ2VDaGFuZ2UoZXZlbnQ6IFBhZ2VDaGFuZ2VFdmVudCkge1xuICAgIHRoaXMub25QYWdlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgc2V0U2VsZWN0YWJsZVNldHRpbmdzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNoZWNrYm94T25seSB8fCB0aGlzLm1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICB0aGlzLmRyYWdDb2x1bW5zID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RhYmxlU2V0dGluZ3MgPSB7XG4gICAgICBjaGVja2JveE9ubHk6IHRoaXMuY2hlY2tib3hPbmx5LFxuICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgZHJhZzogdGhpcy5kcmFnQ29sdW1ucyxcbiAgICB9O1xuICB9XG5cbiAgLy8gV2UgY2FuIGV4dHJhY3QgZGF0YSBvdXQgb2Ygcm93IG51bWJlciB1c2luZyBiZWxvdyBmdW5jdGlvblxuICAvKiBleHRyYWN0KCkge1xuICAgIHRoaXMuZXh0cmFjdERhdGFJdGVtcyA9IHRoaXMubXlTZWxlY3Rpb24ubWFwKGlkeCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5ncmlkRGF0YS5maW5kKChkYXRhOiB7IFByb2R1Y3RJRDogbnVtYmVyOyB9KSA9PiBkYXRhLlByb2R1Y3RJRCA9PT0gaWR4KTtcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmV4dHJhY3REYXRhSXRlbXMpXG4gICAgdGhpcy5zZWxlY3RlZFJvd0RhdGEuZW1pdCh0aGlzLmV4dHJhY3REYXRhSXRlbXMpO1xuICB9ICovXG5cbiAgc2VsZWN0ZWRLZXlzQ2hhbmdlKHJvd3M6IG51bWJlcltdKSB7XG4gICAgbGV0IHNlbGVjdGVkUm93RGF0YSA9IFtdO1xuICAgIGxldCBzZWxlY3RlZFJvd3NDb3VudCA9IDA7XG5cbiAgICBpZiAocm93cz8ubGVuZ3RoID4gMCkge1xuICAgICAgc2VsZWN0ZWRSb3dzQ291bnQgPSByb3dzPy5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID4gMCAmJiB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpIHtcbiAgICAgIHNlbGVjdGVkUm93c0NvdW50ID0gdGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aDtcbiAgICAgIHJvd3MgPSB0aGlzLnNlbGVjdGVkUm93cztcbiAgICB9XG4gICAgdGhpcy5wcmV2aW91c1NlbGVjdEFsbFN0YXRlID0gdGhpcy5zZWxlY3RBbGxTdGF0ZTtcbiAgICBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPT0gdGhpcy5ncmlkVmlldy50b3RhbCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkUm93c0NvdW50ID09IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAndW5jaGVja2VkJztcbiAgICAgIHRoaXMuYWRkU2VsZWN0QWxsTWVzc2FnZShmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgICB0aGlzLmFkZFNlbGVjdEFsbE1lc3NhZ2UoZmFsc2UpO1xuICAgIH1cblxuICAgIHNlbGVjdGVkUm93RGF0YSA9IHJvd3MubWFwKHJvd0RhdGEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ3JpZFZpZXcuZGF0YS5maW5kKChkYXRhKSA9PiBkYXRhW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PSByb3dEYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQoc2VsZWN0ZWRSb3dEYXRhKTtcbiAgfVxuXG4gIG9uS2ViYWJDbGljayhpdGVtOiBhbnksIHJvd0RldGFpbHM6IGFueSkge1xuICAgIHRoaXMua2ViYWJJdGVtQ2xpY2suZW1pdCh7IGFjdGlvbjogaXRlbSwgcm93RGV0YWlscyB9KTtcbiAgfVxuXG4gIG9uRGV0YWlsRXhwYW5kKHJvd0RhdGE6IGFueSkge1xuICAgIHRoaXMucm93RGV0YWlscy5lbWl0KHJvd0RhdGEuZGF0YUl0ZW0pO1xuICB9XG5cbiAgY2VsbENsaWNrSGFuZGxlcihhcmdzOiBDZWxsQ2xpY2tFdmVudCkge1xuICAgIGlmICh0aGlzLmFsbG93Q29sdW1uQ2xpY2spIHtcbiAgICAgIGlmICh0aGlzLmlnbm9yZUNvbHVtbkNlbGxDbGljay5pbmNsdWRlcyhhcmdzLmNvbHVtbkluZGV4KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnJvd0RhdGFPZkNsaWNrZWRDZWxsLmVtaXQoe2RhdGFJdGVtOmFyZ3MuZGF0YUl0ZW0sY29sdW1uSW5kZXg6YXJncy5jb2x1bW5JbmRleH0pO1xuICAgIH1cbiAgICBpZih0aGlzLmFsbG93RWRpdGluZ0NlbGwpe1xuICAgICAgdGhpcy5mb3JtR3JvdXAgPSBjcmVhdGVGb3JtR3JvdXAoYXJncy5kYXRhSXRlbSk7XG4gICAgICAgICAgICBhcmdzLnNlbmRlci5lZGl0Q2VsbChhcmdzLnJvd0luZGV4LCBhcmdzLmNvbHVtbkluZGV4LCB0aGlzLmZvcm1Hcm91cCk7XG4gICAgICB9XG4gIH1cblxuICBzb3J0Q2hhbmdlKHNvcnQ6IFNvcnREZXNjcmlwdG9yW10pOiB2b2lkIHtcbiAgICB0aGlzLnNvcnQgPSBzb3J0O1xuICAgIGlmICghdGhpcy5oYXNBcGlTb3J0aW5nKSB7XG4gICAgICB0aGlzLmxvYWRHcmlkRGF0YSgpO1xuICAgIH1cbiAgICB0aGlzLnNvcnREaXJlY3Rpb24uZW1pdCh0aGlzLnNvcnQpO1xuICB9XG5cbiAgbG9hZEdyaWREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZFZpZXcgPSB7XG4gICAgICBkYXRhOiBvcmRlckJ5KHRoaXMuZ3JpZFZpZXc/LmRhdGEsIHRoaXMuc29ydCksXG4gICAgICB0b3RhbDogdGhpcy5ncmlkVmlldz8udG90YWwsXG4gICAgfTtcbiAgfVxuXG4gIGV4cGFuZFJvdyhpZDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncmlkLmV4cGFuZFJvdyhpZCk7XG4gICAgdGhpcy5leHBhbmRSb3dJbmRleC5wdXNoKGlkKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgY29sbGFwc2VSb3coaWQ6IG51bWJlcikge1xuICAgIHRoaXMuZ3JpZC5jb2xsYXBzZVJvdyhpZCk7XG4gICAgdGhpcy5leHBhbmRSb3dJbmRleC5zcGxpY2UodGhpcy5leHBhbmRSb3dJbmRleC5pbmRleE9mKGlkKSwgMSk7XG4gICAgaWYgKHRoaXMuZXhwYW5kUm93SW5kZXg/Lmxlbmd0aCA9PSAwKSB7XG4gICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICBjb25zdCB2aWV3cG9ydDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYi1ncmlkJyk7XG4gICAgICBjb25zdCBncmlkT2Zmc2V0ID0gdmlld3BvcnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgICBpZiAod2luZG93SGVpZ2h0ID4gZ3JpZE9mZnNldCArIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQpIHtcbiAgICAgICAgdGhpcy5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGVsZXRlKHJvd0RldGFpbHM6IGFueSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRIZWFkZXJIZWlnaHQoKTtcbiAgICB9LCAxMDAwKTtcbiAgICB0aGlzLmRlbGV0ZWRSb3dEYXRhLmVtaXQocm93RGV0YWlscyk7XG4gIH1cblxuICBnZXRIZWFkZXJIZWlnaHQoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZFZpZXc/LmRhdGE/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuICdoaWRlLWhlYWRlcic7XG4gICAgfVxuICAgIHJldHVybiAndmlldy1oZWFkZXInO1xuICB9XG5cbiAgZ2V0R3JpZEhlaWdodCgpIHtcbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgY29uc3Qgdmlld3BvcnQ6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaWItZ3JpZCcpO1xuICAgIGNvbnN0IGdyaWRPZmZzZXQgPSB2aWV3cG9ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgICBjb25zdCBncmlkSGVpZ2h0ID1cbiAgICAgIHRoaXMuZ3JpZEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyB0aGlzLmdyaWRCb3R0b21TcGFjZTsgLy9ncmlkIHNob3VsZCBoYXZlIDI0cHggc3BhY2UgYXQgYm90dG9tXG4gICAgaWYgKGdyaWRPZmZzZXQgKyBncmlkSGVpZ2h0ID49IHdpbmRvd0hlaWdodCkge1xuICAgICAgdGhpcy5oZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSAoZ3JpZE9mZnNldCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcmVzaXplKGV2OiBhbnkpIHtcbiAgICBpZiAoZXYudGFyZ2V0LmlubmVySGVpZ2h0ID4gdGhpcy5yZXNpemVIZWlnaHQpIHtcbiAgICAgIHRoaXMucmVzaXplSGVpZ2h0ID0gZXYudGFyZ2V0LmlubmVySGVpZ2h0O1xuICAgICAgdGhpcy5oZWlnaHQgPSAnMTAwJSc7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlc2l6ZUhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSAwO1xuICAgIH1cbiAgICB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgfVxuXG4gIHJvd0NsYXNzID0gKGFyZ3M6IFJvd0NsYXNzQXJncykgPT4ge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cyAmJiB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICdrLWRpc2FibGVkJzogdGhpcy5zZWxlY3RlZFJvd3MuaW5jbHVkZXMoXG4gICAgICAgICAgYXJncy5kYXRhSXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXVxuICAgICAgICApIHx8IHRoaXMuYWxsUGFnZXNTZWxlY3RlZCxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfTtcblxuICBleHBhbmRDb2x1bW5DbGFzcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDAgJiYgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKSB7XG4gICAgICB0aGlzLmV4cGFuZFJvd0NvbHVtbldpZHRoID0gMTk0O1xuICAgICAgcmV0dXJuICdleHBhbmQtcm93JztcbiAgICB9XG4gICAgdGhpcy5leHBhbmRSb3dDb2x1bW5XaWR0aCA9IDU2O1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG9uU2VsZWN0QWxsQ2hhbmdlKGNoZWNrZWRTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGNoZWNrZWRTdGF0ZSA9PT0gJ2NoZWNrZWQnIHx8XG4gICAgICAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsICYmXG4gICAgICAgIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cylcbiAgICApIHtcbiAgICAgIHRoaXMucHJlU2VsZWN0ZWQgPSB0aGlzLmdyaWRWaWV3LmRhdGFcbiAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdKVxuICAgICAgICAuZmlsdGVyKChpZDogYW55KSA9PiBpZCk7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDAgJiYgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKSB7XG4gICAgICB0aGlzLnByZVNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZFJvd3M7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByZVNlbGVjdGVkID0gW107XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfVxuICAgIHRoaXMuYWRkU2VsZWN0QWxsTWVzc2FnZSh0aGlzLnNlbGVjdEFsbFN0YXRlID09PSAnY2hlY2tlZCcpO1xuICB9XG5cbiAgcHVibGljIGNlbGxDbG9zZUhhbmRsZXIoYXJnczogQ2VsbENsb3NlRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgeyBmb3JtR3JvdXAsIGRhdGFJdGVtIH0gPSBhcmdzO1xuICAgIGlmICghZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICBhcmdzLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChmb3JtR3JvdXAuZGlydHkpIHtcbiAgICAgIGlmIChhcmdzLm9yaWdpbmFsRXZlbnQgJiYgYXJncy5vcmlnaW5hbEV2ZW50LmtleUNvZGUgPT09IEtleXMuRXNjYXBlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIE9iamVjdC5hc3NpZ24oZGF0YUl0ZW0sIGZvcm1Hcm91cC52YWx1ZSk7XG4gICAgICB0aGlzLnNhdmVDaGFuZ2VzKCk7XG4gICAgICB0aGlzLnVwZGF0ZWREYXRhLmVtaXQodGhpcy5ncmlkLmRhdGEpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNhdmVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZC5jbG9zZUNlbGwoKTtcbiAgICB0aGlzLmdyaWQuY2FuY2VsQ2VsbCgpO1xuICB9XG59XG4iLCI8ZGl2ICNncmlkRWxlbWVudCAod2luZG93OnJlc2l6ZSk9XCJyZXNpemUoJGV2ZW50KVwiIFtuZ0NsYXNzXT1cImNvbHVtbkNvbnRlbnROb1dyYXAgPyAnY29sdW1uLWNvbnRlbnQtbm93cmFwJyA6ICcnXCI+XG4gIDxrZW5kby1ncmlkIFtkYXRhXT1cImdyaWRWaWV3XCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgW3NraXBdPVwic2tpcFwiIFtzZWxlY3RhYmxlXT1cInNlbGVjdGFibGVTZXR0aW5nc1wiXG4gICAgW3BhZ2VhYmxlXT1cInBhZ2VhYmxlXCIgW3NvcnRhYmxlXT1cInNvcnRhYmxlXCIgW2dyb3VwYWJsZV09XCJncm91cGFibGVcIiBbcmVvcmRlcmFibGVdPVwicmVvcmRlcmFibGVcIlxuICAgIFtyZXNpemFibGVdPVwicmVzaXphYmxlXCIgW2NvbHVtbk1lbnVdPVwiY29sdW1uTWVudVwiIFtuYXZpZ2FibGVdPVwibmF2aWdhYmxlXCIgW2hlaWdodF09XCJoZWlnaHRcIiBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiXG4gICAgKGNoYW5nZSk9XCJzZXRTZWxlY3RhYmxlU2V0dGluZ3MoKVwiIChzZWxlY3RlZEtleXNDaGFuZ2UpPVwic2VsZWN0ZWRLZXlzQ2hhbmdlKCRldmVudClcIlxuICAgIFtrZW5kb0dyaWRTZWxlY3RCeV09XCJncmlkUm93U2VsZWN0QnlWYWx1ZVwiIChkZXRhaWxFeHBhbmQpPVwib25EZXRhaWxFeHBhbmQoJGV2ZW50KVwiIFtzZWxlY3RlZEtleXNdPVwicHJlU2VsZWN0ZWRcIlxuICAgIChwYWdlQ2hhbmdlKT1cInBhZ2VDaGFuZ2UoJGV2ZW50KVwiIChjZWxsQ2xpY2spPVwiY2VsbENsaWNrSGFuZGxlcigkZXZlbnQpXCIgKGNlbGxDbG9zZSk9XCJjZWxsQ2xvc2VIYW5kbGVyKCRldmVudClcIiBbc29ydF09XCJzb3J0XCJcbiAgICAoc29ydENoYW5nZSk9XCJzb3J0Q2hhbmdlKCRldmVudClcIiBbbmdDbGFzc109XCJnZXRIZWFkZXJIZWlnaHQoKVwiIGlkPVwibGliLWdyaWRcIiBbcm93Q2xhc3NdPVwicm93Q2xhc3NcIj5cbiAgICA8ZGl2ICNzZWxlY3RBbGxNZXNzYWdlRWxlbWVudCBjbGFzcz1cImxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhYWxsUGFnZXNTZWxlY3RlZFwiIGNsYXNzPVwibGliLWdyaWQtc2VsZWN0LWFsbC1tZXNzYWdlXCI+XG4gICAgICAgIDxsaWItdHlwb2dyYXBoeSBbZGVmYXVsdFRleHRdPVwiJ0FsbCAnK2dyaWRWaWV3LmRhdGEubGVuZ3RoKycgJytpdGVtTmFtZSsnIG9uIHRoaXMgcGFnZSBhcmUgc2VsZWN0ZWQuJ1wiIHR5cGU9XCJCT0RZX1NNQUxMXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgICAgICAgPHU+PGxpYi10eXBvZ3JhcGh5IChjbGljayk9XCJzZWxlY3RBY3Jvc3NQYWdlcyh0cnVlKVwiIGNsYXNzPSBcInNlbGVjdC1hbGwtaGFuZGxlclwiIFtkZWZhdWx0VGV4dF09XCInU2VsZWN0IGFsbCAnK2dyaWRWaWV3LnRvdGFsKycgJytpdGVtTmFtZSsnIGZyb20gYWxsIHBhZ2VzJ1wiIHR5cGU9XCJCT0RZX1NNQUxMXCI+PC9saWItdHlwb2dyYXBoeT48L3U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJhbGxQYWdlc1NlbGVjdGVkXCIgY2xhc3M9XCJsaWItZ3JpZC1zZWxlY3QtYWxsLW1lc3NhZ2VcIj5cbiAgICAgICAgPGxpYi1pY29uIG5hbWU9XCJjaXJjbGUtY2hlY2tlZFwiIGNsYXNzPVwiYWxsLXNlbGVjdGVkLWljb25cIj48L2xpYi1pY29uPlxuICAgICAgICA8bGliLXR5cG9ncmFwaHkgW2RlZmF1bHRUZXh0XT1cIidBbGwgJytncmlkVmlldy50b3RhbCsnICcraXRlbU5hbWUrJyBhY3Jvc3MgYWxsIHBhZ2VzIGFyZSBzZWxlY3RlZC4nXCIgdHlwZT1cIkJPRFlfU01BTExcIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgICA8dT48bGliLXR5cG9ncmFwaHkgKGNsaWNrKT1cInNlbGVjdEFjcm9zc1BhZ2VzKGZhbHNlKVwiIGNsYXNzPSBcInNlbGVjdC1hbGwtaGFuZGxlclwiIFtkZWZhdWx0VGV4dF09XCInQ2xlYXIgc2VsZWN0aW9uJ1wiIHR5cGU9XCJCT0RZX1NNQUxMXCI+PC9saWItdHlwb2dyYXBoeT48L3U+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJzaG93VG9vbGJhclwiIGtlbmRvR3JpZFRvb2xiYXJUZW1wbGF0ZT5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwidGhpcy5ncmlkVmlldy50b3RhbCA9PT0gMFwiIGtlbmRvR3JpZE5vUmVjb3Jkc1RlbXBsYXRlPlxuICAgICAgPGxpYi10eXBvZ3JhcGh5ICpuZ0lmPVwiIWxvYWRpbmdcIiBbZGVmYXVsdFRleHRdPVwibm9SZWNvcmRzQ29udGVudFwiIHR5cGU9XCJCT0RZX01FRElVTVwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICA8bGliLWxvYWRlciAqbmdJZj1cImxvYWRpbmdcIiBbdHlwZV09XCJsb2FkZXJUeXBlXCIgW3NpemVdPVwibG9hZGVyU2l6ZVwiIFt0aGVtZUNvbG9yXT1cImxvYWRlclRoZW1lXCI+PC9saWItbG9hZGVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5ncmlkVmlldy50b3RhbCA+IDBcIj5cbiAgICAgIDxrZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbiAqbmdJZj1cImNoZWNrQm94UmVxdWlyZWQgPT09IHRydWVcIiBbd2lkdGhdPVwiY2hlY2tCb3hXaWR0aFwiXG4gICAgICAgIFtyZXNpemFibGVdPVwiY2hlY2tCb3hDb2x1bW5SZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjaGVja0JveENvbHVtbk1lbnVcIiBjbGFzcz1cImNoZWNrYm94LWNvbHVtblwiPlxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkSGVhZGVyVGVtcGxhdGU+XG4gICAgICAgICAgPGlucHV0IGlkPVwic2VsZWN0QWxsQ2hlY2tib3hJZFwiIHR5cGU9XCJjaGVja2JveFwiIGtlbmRvQ2hlY2tCb3gga2VuZG9HcmlkU2VsZWN0QWxsQ2hlY2tib3hcbiAgICAgICAgICAgIFtzdGF0ZV09XCJzZWxlY3RBbGxTdGF0ZVwiIChzZWxlY3RBbGxDaGFuZ2UpPVwib25TZWxlY3RBbGxDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY2hlY2tib3gtY29sdW1uPlxuICAgICAgXG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gY2xhc3M9XCJncmlkLWNvbHVtblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbHVtbkRhdGFcIiBbZmllbGRdPVwiaXRlbS5maWVsZFwiIFt0aXRsZV09XCJpdGVtLnRpdGxlXCJcbiAgICAgICAgW3dpZHRoXT1cIml0ZW0uY29sdW1uV2lkdGhcIiBbc29ydGFibGVdPVwiaXRlbS5zb3J0YWJsZVwiIFtlZGl0b3JdPVwiaXRlbS5lZGl0b3JcIiBbY2xhc3NdPVwiaXRlbS5jbGFzc1wiPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInNvcnRhYmxlXCIga2VuZG9HcmlkSGVhZGVyVGVtcGxhdGU+XG4gICAgICAgICAge3tpdGVtLnRpdGxlfX1cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZmllbGQgPT09IGl0ZW0uZmllbGRcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5kaXIgPT09ICdhc2MnXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0WzBdLmRpciA9PT0gJ2Rlc2MnXCI+PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpdGVtLmN1c3RvbUNvbHVtblwiIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW5UZW1wbGF0ZURpY3RbaXRlbS50eXBlXVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpdGVtLmN1c3RvbVwiIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmVmOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5pbXBhY3RcIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbXBhY3RDb2x1bW47IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cblxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uICpuZ0lmPVwic2hvd0RlbGV0ZUNvbHVtblwiIFt3aWR0aF09XCJkZWxldGVDb2x1bW5XaWR0aFwiIGNsYXNzPVwiZGVsZXRlLWNvbHVtblwiIHRpdGxlPVwiQWN0aW9uXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgICAgPGxpYi10b29sdGlwIHNob3dPbj1cImhvdmVyXCIgcG9zaXRpb249XCJib3R0b21cIiBjbGFzcz1cInJlbW92ZS10b29sdGlwXCI+XG4gICAgICAgICAgICA8bGliLWljb24gbmFtZT1cImRlbGV0ZVwiIGNsYXNzPVwiZGVsZXRlLWljb25cIiAoY2xpY2spPVwib25EZWxldGUoZGF0YUl0ZW0pXCI+PC9saWItaWNvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGxpYi10eXBvZ3JhcGh5IGRlZmF1bHRUZXh0PVwiUmVtb3ZlXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGliLXRvb2x0aXA+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gW3dpZHRoXT1cImtlYmFiQ29sdW1uV2lkdGhcIiBjbGFzcz1cImtlYmFiLWNvbHVtblwiICpuZ0lmPVwic2hvd0tlYmFiXCIgdGl0bGU9XCJBY3Rpb25zXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgICAgPGtlbmRvLWRyb3Bkb3duYnV0dG9uICpuZ0lmPVwiIWhpZGVLZWJhYlJvd0luZGV4LmluY2x1ZGVzKHJvd0luZGV4KVwiIFtzdmdJY29uXT1cImljb25cIiBmaWxsTW9kZT1cIm5vbmVcIlxuICAgICAgICAgICAgW2RhdGFdPVwia2ViYWJMaXN0IHwga2ViYWJNZW51RmlsdGVyIDogZGF0YUl0ZW1cIiBjbGFzcz1cImtlYmFiXCIgKGl0ZW1DbGljayk9XCJvbktlYmFiQ2xpY2soJGV2ZW50LCBkYXRhSXRlbSlcIlxuICAgICAgICAgICAgW3BvcHVwU2V0dGluZ3NdPVwieyBhbGlnbjogJ3JpZ2h0JywgYW5pbWF0ZTogdHJ1ZSwgcG9wdXBDbGFzczogJ2tlYmFiLWxpc3QnIH1cIj5cbiAgICAgICAgICA8L2tlbmRvLWRyb3Bkb3duYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWREZXRhaWxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGV0YWlsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gKm5nSWY9XCJjdXN0b21FeHBhbmRSb3dDb2x1bW5cIiBbd2lkdGhdPVwiZXhwYW5kUm93Q29sdW1uV2lkdGhcIiBjbGFzcz1cImdyaWQtY29sdW1uIGV4cGFuZC1jb2x1bW5cIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZXhwYW5kQ29sdW1uQ2xhc3MoKVwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRSb3dzLmluY2x1ZGVzKGRhdGFJdGVtW2dyaWRSb3dTZWxlY3RCeVZhbHVlXSkgJiYgZGlzYWJsZVByZVNlbGVjdGVkUm93c1wiXG4gICAgICAgICAgICBjbGFzcz1cImV4cGFuZC1jb2x1bW4tdGV4dFwiPlxuICAgICAgICAgICAgQWxyZWFkeSBhZGRlZFxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8a2VuZG8tYnV0dG9uICpuZ0lmPVwiIWV4cGFuZFJvd0luZGV4LmluY2x1ZGVzKHJvd0luZGV4KVwiIFtzdmdJY29uXT1cImFycm93RG93bkljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZFJvdyhyb3dJbmRleClcIiBmaWxsTW9kZT1cIm5vbmVcIiBjbGFzcz1cImFycm93LWJ0blwiPlxuICAgICAgICAgIDwva2VuZG8tYnV0dG9uPlxuICAgICAgICAgIDxrZW5kby1idXR0b24gKm5nSWY9XCJleHBhbmRSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJhcnJvd1VwSWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29sbGFwc2VSb3cocm93SW5kZXgpXCIgZmlsbE1vZGU9XCJub25lXCIgY2xhc3M9XCJhcnJvdy1idG5cIj5cbiAgICAgICAgICA8L2tlbmRvLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9QYWdlclRlbXBsYXRlIGxldC10b3RhbFBhZ2VzPVwidG90YWxQYWdlc1wiIGxldC1jdXJyZW50UGFnZT1cImN1cnJlbnRQYWdlXCI+XG4gICAgICA8a2VuZG8tcGFnZXItcHJldi1idXR0b25zPjwva2VuZG8tcGFnZXItcHJldi1idXR0b25zPlxuICAgICAgPGtlbmRvLXBhZ2VyLW51bWVyaWMtYnV0dG9ucyBbYnV0dG9uQ291bnRdPVwicGFnZUNvdW50XCI+PC9rZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnM+XG4gICAgICA8a2VuZG8tcGFnZXItbmV4dC1idXR0b25zPjwva2VuZG8tcGFnZXItbmV4dC1idXR0b25zPlxuICAgICAgPGtlbmRvLXBhZ2VyLWluZm8+PC9rZW5kby1wYWdlci1pbmZvPlxuICAgICAgPGtlbmRvLXBhZ2VyLXBhZ2Utc2l6ZXMgW3BhZ2VTaXplc109XCJzaXplc1wiPjwva2VuZG8tcGFnZXItcGFnZS1zaXplcz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gIDwva2VuZG8tZ3JpZD5cbjwvZGl2PlxuIl19
|
|
526
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQWUsRUFHaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGFBQWEsRUFNZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUVMLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBS3RELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBbUIsUUFBZ0M7UUFBaEMsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7UUFEMUMsU0FBSSxHQUFXLEVBQUUsQ0FBQztJQUM0QixDQUFDOytHQUY3QyxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9C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QVc7c0JBQW5CLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRSxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBR0UsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkF5T04sTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBEaXJlY3RpdmUsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTZWxlY3RhYmxlU2V0dGluZ3MsXG4gIFNlbGVjdGFibGVNb2RlLFxuICBDZWxsQ2xpY2tFdmVudCxcbiAgR3JpZENvbXBvbmVudCxcbiAgR3JpZERhdGFSZXN1bHQsXG4gIFBhZ2VDaGFuZ2VFdmVudCxcbiAgUm93Q2xhc3NBcmdzLFxuICBTZWxlY3RBbGxDaGVja2JveFN0YXRlLFxuICBDZWxsQ2xvc2VFdmVudFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IFNvcnREZXNjcmlwdG9yLCBvcmRlckJ5IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHtcbiAgU1ZHSWNvbixcbiAgY2hldnJvbkRvd25JY29uLFxuICBjaGV2cm9uVXBJY29uLFxuICBtb3JlVmVydGljYWxJY29uXG59IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1zdmctaWNvbnMnO1xuaW1wb3J0IHsgTG9hZGVyU2l6ZSwgTG9hZGVyVHlwZSwgTG9hZGVyVGhlbWVDb2xvciB9IGZyb20gJy4uLy4uL2F0b21zL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLZXlzIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY29tbW9uJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbdHlwZV0nXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbHVtblRlbXBsYXRlIHtcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gXCJcIjtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb21wb25lbnQ+KSB7IH1cbn1cblxuY29uc3QgY3JlYXRlRm9ybUdyb3VwID0gKGRhdGFJdGVtOiBhbnkpOiBGb3JtR3JvdXAgPT4ge1xuICBjb25zdCBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIGZvciAobGV0IGRhdGEgb2YgT2JqZWN0LmtleXMoZGF0YUl0ZW0pKSB7XG4gICAgZm9ybS5hZGRDb250cm9sKGRhdGEsIG5ldyBGb3JtQ29udHJvbChkYXRhSXRlbVtkYXRhXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCkpXG4gIH1cbiAgcmV0dXJuIGZvcm1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ncmlkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQENvbnRlbnRDaGlsZHJlbihDdXN0b21Db2x1bW5UZW1wbGF0ZSkgY29sdW1uVGVtcGxhdGVzITogUXVlcnlMaXN0PEN1c3RvbUNvbHVtblRlbXBsYXRlPiB8IFtdO1xuICBAQ29udGVudENoaWxkKCdtdWx0aUNvbHVtbkRhdGEnKSB0ZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdkZXRhaWxUZW1wbGF0ZScpIGRldGFpbFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gIEBDb250ZW50Q2hpbGQoJ2ltcGFjdENvbHVtbicpIGltcGFjdENvbHVtbiE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAVmlld0NoaWxkKEdyaWRDb21wb25lbnQpIGdyaWQhOiBHcmlkQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdncmlkRWxlbWVudCcpIGdyaWRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQnKSBzZWxlY3RBbGxNZXNzYWdlRWxlbWVudCE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2tpcDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgaXRlbU5hbWU6IHN0cmluZyA9ICdJdGVtcyc7XG4gIHNob3dTZWxlY3RBbGxNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIGFsbFBhZ2VzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2F2ZWRIZWlnaHQ6IG51bWJlciA9IDA7XG4gIHByZXZpb3VzU2VsZWN0QWxsU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJztcbiAgQE91dHB1dCgpIG9uU2VsZWN0QWxsQWNyb3NzUGFnZXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBJbnB1dCgpIGNvbHVtbkRhdGE6IGFueSA9IFtdO1xuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgcGFnZWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc29ydGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZ3JvdXBhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlb3JkZXJhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveFdpZHRoOiBudW1iZXIgPSA0NTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5SZXNpemFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94Q29sdW1uU2hvd1NlbGVjdGVkQWxsOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgY2hlY2tCb3hSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjb2x1bW5NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vZGU6IFNlbGVjdGFibGVNb2RlIHwgdW5kZWZpbmVkID0gJ211bHRpcGxlJztcbiAgQElucHV0KCkgY2hlY2tib3hPbmx5ID0gdHJ1ZTtcbiAgQElucHV0KCkgZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgbmF2aWdhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgaGVpZ2h0OiBhbnk7XG4gIEBJbnB1dCgpIGdyaWRSb3dTZWxlY3RCeVZhbHVlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbm9SZWNvcmRzQ29udGVudDogc3RyaW5nID0gJ05vIFJlY29yZHMgQXZhaWxhYmxlJztcbiAgQE91dHB1dCgpIHNlbGVjdGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG4gIEBJbnB1dCgpIHNob3dUb29sYmFyOiBib29sZWFuID0gZmFsc2U7XG4gIGV4dHJhY3REYXRhSXRlbXM6IGFueTtcbiAgc2VsZWN0YWJsZVNldHRpbmdzOiBTZWxlY3RhYmxlU2V0dGluZ3MgPSB7fTtcbiAgQElucHV0KCkga2ViYWJMaXN0OiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2hvd0tlYmFiOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSByb3dEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIGtlYmFiSXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGljb246IFNWR0ljb24gPSBtb3JlVmVydGljYWxJY29uO1xuICBASW5wdXQoKSBrZWJhYkNvbHVtbldpZHRoOiBudW1iZXIgPSA2MDtcbiAgZGF0YTogYW55ID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdENvbHVtbiA9ICcnO1xuICBAT3V0cHV0KCkgcm93RGF0YU9mQ2xpY2tlZENlbGwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgcHJlU2VsZWN0ZWQ6IGFueVtdID0gW107XG4gIHByZVNlbGVjdGVkUmVjb3JkczogYW55W10gPSBbXTtcbiAgQE91dHB1dCgpIG9uUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBpZ25vcmVDb2x1bW5DZWxsQ2xpY2s6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIGFsbG93Q29sdW1uQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc29ydDogU29ydERlc2NyaXB0b3JbXSA9IFtcbiAgICB7XG4gICAgICBmaWVsZDogJycsXG4gICAgICBkaXI6IHVuZGVmaW5lZCxcbiAgICB9LFxuICBdO1xuICBASW5wdXQoKSBoYXNBcGlTb3J0aW5nID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBzb3J0RGlyZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHB1YmxpYyBhcnJvd0Rvd25JY29uOiBTVkdJY29uID0gY2hldnJvbkRvd25JY29uO1xuICBwdWJsaWMgYXJyb3dVcEljb246IFNWR0ljb24gPSBjaGV2cm9uVXBJY29uO1xuICBASW5wdXQoKSBleHBhbmRSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgY3VzdG9tRXhwYW5kUm93Q29sdW1uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlbGV0ZUNvbHVtbldpZHRoOiBudW1iZXIgPSA0MjtcbiAgZXhwYW5kUm93Q29sdW1uV2lkdGg6IG51bWJlciA9IDU2O1xuICBAT3V0cHV0KCkgZGVsZXRlZFJvd0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgc2l6ZXM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHBhZ2VDb3VudCA9IDA7XG4gIEBJbnB1dCgpIHNob3dEZWxldGVDb2x1bW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaGlkZUtlYmFiUm93SW5kZXg6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbG9hZGVyVHlwZTogTG9hZGVyVHlwZSA9IExvYWRlclR5cGUucHVsc2luZztcbiAgQElucHV0KCkgbG9hZGVyU2l6ZTogTG9hZGVyU2l6ZSA9IExvYWRlclNpemUubWVkaXVtO1xuICBASW5wdXQoKSBsb2FkZXJUaGVtZTogTG9hZGVyVGhlbWVDb2xvciA9IExvYWRlclRoZW1lQ29sb3IucHJpbWFyeTtcbiAgaW5pdGlhbEdyaWRIZWlnaHQ6IGFueTtcbiAgZ3JpZEJvdHRvbVNwYWNlID0gMjQ7XG4gIHJlc2l6ZUhlaWdodDogYW55ID0gMDtcbiAgc2VsZWN0QWxsU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJztcbiAgc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBkaXNhYmxlUHJlU2VsZWN0ZWRSb3dzID0gZmFsc2U7XG4gIHB1YmxpYyBmb3JtR3JvdXAhOiBGb3JtR3JvdXAgfCBhbnk7XG4gIEBPdXRwdXQoKSB1cGRhdGVkRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBhbGxvd0VkaXRpbmdDZWxsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbkNvbnRlbnROb1dyYXAgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy5zZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTtcbiAgfVxuXG4gIGNvbHVtblRlbXBsYXRlRGljdDogYW55ID0ge307XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb2x1bW5EYXRhLmZvckVhY2goKGNvbHVtbjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb2x1bW4uc29ydGFibGUgPSBjb2x1bW4uc29ydGFibGUgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGNvbHVtbi5zb3J0YWJsZTtcbiAgICAgIGlmICghdGhpcy5pZ25vcmVDb2x1bW5DZWxsQ2xpY2suaW5jbHVkZXMoaW5kZXgpKSB7XG4gICAgICAgIGNvbHVtbi5jbGFzcyA9ICdjb2x1bW4tY3Vyc29yLXBvaW50ZXInO1xuICAgICAgfVxuICAgIH0pXG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYWdlYWJsZSkge1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuZ3JpZFZpZXcuZGF0YT8ubGVuZ3RoO1xuICAgIH1cbiAgICB0aGlzLmNvbHVtblRlbXBsYXRlcy5mb3JFYWNoKHggPT4gdGhpcy5jb2x1bW5UZW1wbGF0ZURpY3RbeC50eXBlXSA9IHgudGVtcGxhdGUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmN1c3RvbUV4cGFuZFJvd0NvbHVtbikge1xuICAgICAgdGhpcy5leHBhbmRSb3dJbmRleC5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMucHJlU2VsZWN0ZWQ7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfVxuICAgIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQgPVxuICAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlO1xuICAgIC8vIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuXG4gICAgY29uc3QgZ3JpZENvbnRhaW5lciA9IHRoaXMuZ3JpZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2stZ3JpZC1jb250YWluZXInKVswXTtcbiAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgIGdyaWRDb250YWluZXIucGFyZW50RWxlbWVudCxcbiAgICAgIHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIGdyaWRDb250YWluZXIsXG4gICAgICB0cnVlXG4gICAgKTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICB9XG5cbiAgc2VsZWN0QWNyb3NzUGFnZXMoaXNTZWxlY3RlZDogYm9vbGVhbikge1xuICAgIHRoaXMudHJpZ2dlclNlbGVjdEFsbFBhZ2VzRXZlbnQoaXNTZWxlY3RlZCk7XG4gICAgaWYgKCFpc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLm9uU2VsZWN0QWxsQ2hhbmdlKHRoaXMucHJldmlvdXNTZWxlY3RBbGxTdGF0ZSlcbiAgICB9XG4gIH1cblxuICB0cmlnZ2VyU2VsZWN0QWxsUGFnZXNFdmVudChpc1NlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5hbGxQYWdlc1NlbGVjdGVkID0gaXNTZWxlY3RlZDtcbiAgICB0aGlzLm9uU2VsZWN0QWxsQWNyb3NzUGFnZXMuZW1pdChpc1NlbGVjdGVkKTtcbiAgICBjb25zb2xlLmxvZygndHJpZ2dlclNlbGVjdEFsbFBhZ2VzRXZlbnQgOiBpc1NlbGVjdGVkJywgaXNTZWxlY3RlZCk7XG4gIH1cblxuICBhZGRTZWxlY3RBbGxNZXNzYWdlKHNlbGVjdEFsbDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLnNob3dTZWxlY3RBbGxNZXNzYWdlICYmIHRoaXMucGFnZUNvdW50ID4gMSkge1xuICAgICAgY29uc3QgZWxlbWVudFJlc3VsdCA9IHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgaWYgKHNlbGVjdEFsbCkge1xuICAgICAgICB0aGlzLnNhdmVkSGVpZ2h0ID0gZWxlbWVudFJlc3VsdC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IGVsZW1lbnRSZXN1bHQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB0aGlzLnNlbGVjdEFsbE1lc3NhZ2VFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbGliLWdyaWQtc2VsZWN0LWFsbC1tZXNzYWdlLXNob3cnKTtcbiAgICAgICAgY29uc3QgYWZ0ZXJIZWlnaHQgPSBlbGVtZW50UmVzdWx0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgZWxlbWVudFJlc3VsdC5zdHlsZS5oZWlnaHQgPSAoZWxlbWVudFJlc3VsdC5vZmZzZXRIZWlnaHQgLSAoYWZ0ZXJIZWlnaHQgLSBiZWZvcmVIZWlnaHQpKSArICdweCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbE1lc3NhZ2VFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnbGliLWdyaWQtc2VsZWN0LWFsbC1tZXNzYWdlLXNob3cnKTtcbiAgICAgICAgaWYgKHRoaXMuYWxsUGFnZXNTZWxlY3RlZCkge1xuICAgICAgICAgIHRoaXMudHJpZ2dlclNlbGVjdEFsbFBhZ2VzRXZlbnQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGVsZW1lbnRSZXN1bHQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5zYXZlZEhlaWdodCArICdweCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcGFnZUNoYW5nZShldmVudDogUGFnZUNoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy5vblBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBzZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hlY2tib3hPbmx5IHx8IHRoaXMubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMuZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGFibGVTZXR0aW5ncyA9IHtcbiAgICAgIGNoZWNrYm94T25seTogdGhpcy5jaGVja2JveE9ubHksXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBkcmFnOiB0aGlzLmRyYWdDb2x1bW5zLFxuICAgIH07XG4gIH1cblxuICAvLyBXZSBjYW4gZXh0cmFjdCBkYXRhIG91dCBvZiByb3cgbnVtYmVyIHVzaW5nIGJlbG93IGZ1bmN0aW9uXG4gIC8qIGV4dHJhY3QoKSB7XG4gICAgdGhpcy5leHRyYWN0RGF0YUl0ZW1zID0gdGhpcy5teVNlbGVjdGlvbi5tYXAoaWR4ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdyaWREYXRhLmZpbmQoKGRhdGE6IHsgUHJvZHVjdElEOiBudW1iZXI7IH0pID0+IGRhdGEuUHJvZHVjdElEID09PSBpZHgpO1xuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZXh0cmFjdERhdGFJdGVtcylcbiAgICB0aGlzLnNlbGVjdGVkUm93RGF0YS5lbWl0KHRoaXMuZXh0cmFjdERhdGFJdGVtcyk7XG4gIH0gKi9cblxuICBzZWxlY3RlZEtleXNDaGFuZ2Uocm93czogbnVtYmVyW10pIHtcbiAgICBsZXQgc2VsZWN0ZWRSb3dEYXRhID0gW107XG4gICAgbGV0IHNlbGVjdGVkUm93c0NvdW50ID0gMDtcblxuICAgIGlmIChyb3dzPy5sZW5ndGggPiAwKSB7XG4gICAgICBzZWxlY3RlZFJvd3NDb3VudCA9IHJvd3M/Lmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgc2VsZWN0ZWRSb3dzQ291bnQgPSB0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoO1xuICAgICAgcm93cyA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgIH1cbiAgICB0aGlzLnByZXZpb3VzU2VsZWN0QWxsU3RhdGUgPSB0aGlzLnNlbGVjdEFsbFN0YXRlO1xuICAgIGlmIChzZWxlY3RlZFJvd3NDb3VudCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPT0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgICAgdGhpcy5hZGRTZWxlY3RBbGxNZXNzYWdlKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICAgIHRoaXMuYWRkU2VsZWN0QWxsTWVzc2FnZShmYWxzZSk7XG4gICAgfVxuXG4gICAgc2VsZWN0ZWRSb3dEYXRhID0gcm93cy5tYXAocm93RGF0YSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5ncmlkVmlldy5kYXRhLmZpbmQoKGRhdGEpID0+IGRhdGFbdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0gPT09IHJvd0RhdGEpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZWxlY3RlZFJvd0RhdGEuZW1pdChzZWxlY3RlZFJvd0RhdGEpO1xuICB9XG5cbiAgb25LZWJhYkNsaWNrKGl0ZW06IGFueSwgcm93RGV0YWlsczogYW55KSB7XG4gICAgdGhpcy5rZWJhYkl0ZW1DbGljay5lbWl0KHsgYWN0aW9uOiBpdGVtLCByb3dEZXRhaWxzIH0pO1xuICB9XG5cbiAgb25EZXRhaWxFeHBhbmQocm93RGF0YTogYW55KSB7XG4gICAgdGhpcy5yb3dEZXRhaWxzLmVtaXQocm93RGF0YS5kYXRhSXRlbSk7XG4gIH1cblxuICBjZWxsQ2xpY2tIYW5kbGVyKGFyZ3M6IENlbGxDbGlja0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuYWxsb3dDb2x1bW5DbGljaykge1xuICAgICAgaWYgKHRoaXMuaWdub3JlQ29sdW1uQ2VsbENsaWNrLmluY2x1ZGVzKGFyZ3MuY29sdW1uSW5kZXgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMucm93RGF0YU9mQ2xpY2tlZENlbGwuZW1pdCh7IGRhdGFJdGVtOiBhcmdzLmRhdGFJdGVtLCBjb2x1bW5JbmRleDogYXJncy5jb2x1bW5JbmRleCB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYWxsb3dFZGl0aW5nQ2VsbCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAgPSBjcmVhdGVGb3JtR3JvdXAoYXJncy5kYXRhSXRlbSk7XG4gICAgICBhcmdzLnNlbmRlci5lZGl0Q2VsbChhcmdzLnJvd0luZGV4LCBhcmdzLmNvbHVtbkluZGV4LCB0aGlzLmZvcm1Hcm91cCk7XG4gICAgfVxuICB9XG5cbiAgc29ydENoYW5nZShzb3J0OiBTb3J0RGVzY3JpcHRvcltdKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0ID0gc29ydDtcbiAgICBpZiAoIXRoaXMuaGFzQXBpU29ydGluZykge1xuICAgICAgdGhpcy5sb2FkR3JpZERhdGEoKTtcbiAgICB9XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9uLmVtaXQodGhpcy5zb3J0KTtcbiAgfVxuXG4gIGxvYWRHcmlkRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWRWaWV3ID0ge1xuICAgICAgZGF0YTogb3JkZXJCeSh0aGlzLmdyaWRWaWV3Py5kYXRhLCB0aGlzLnNvcnQpLFxuICAgICAgdG90YWw6IHRoaXMuZ3JpZFZpZXc/LnRvdGFsLFxuICAgIH07XG4gIH1cblxuICBleHBhbmRSb3coaWQ6IG51bWJlcikge1xuICAgIHRoaXMuZ3JpZC5leHBhbmRSb3coaWQpO1xuICAgIHRoaXMuZXhwYW5kUm93SW5kZXgucHVzaChpZCk7XG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgLy8gICB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgICAvLyB9LCAwKTtcbiAgfVxuXG4gIGNvbGxhcHNlUm93KGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLmdyaWQuY29sbGFwc2VSb3coaWQpO1xuICAgIHRoaXMuZXhwYW5kUm93SW5kZXguc3BsaWNlKHRoaXMuZXhwYW5kUm93SW5kZXguaW5kZXhPZihpZCksIDEpO1xuICAgIGlmICh0aGlzLmV4cGFuZFJvd0luZGV4Py5sZW5ndGggPT0gMCkge1xuICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgY29uc3Qgdmlld3BvcnQ6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaWItZ3JpZCcpO1xuICAgICAgY29uc3QgZ3JpZE9mZnNldCA9IHZpZXdwb3J0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xuICAgICAgaWYgKHdpbmRvd0hlaWdodCA+IGdyaWRPZmZzZXQgKyB0aGlzLmluaXRpYWxHcmlkSGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgICB9XG4gIH1cblxuICBvbkRlbGV0ZShyb3dEZXRhaWxzOiBhbnkpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZ2V0SGVhZGVySGVpZ2h0KCk7XG4gICAgfSwgMTAwMCk7XG4gICAgdGhpcy5kZWxldGVkUm93RGF0YS5lbWl0KHJvd0RldGFpbHMpO1xuICB9XG5cbiAgZ2V0SGVhZGVySGVpZ2h0KCkge1xuICAgIGlmICh0aGlzLmdyaWRWaWV3Py5kYXRhPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAnaGlkZS1oZWFkZXInO1xuICAgIH1cbiAgICByZXR1cm4gJ3ZpZXctaGVhZGVyJztcbiAgfVxuXG4gIC8qXG4gICogVGhpcyBsb2dpYyBvZiBkeW5hbWljYWxseSBjYWxjdWxhdGluZyB0aGUgaGVpZ2h0IG9mIGdyaWQgbmVlZCBmdXJ0aGVyIGJyYWluc3Rvcm1pbmcgaGVuY2UgY29tbWVudGVkIGZvciBub3cuXG4gICovXG4gIC8vIGdldEdyaWRIZWlnaHQoKSB7XG4gIC8vICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAvLyAgIGNvbnN0IHZpZXdwb3J0OiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGliLWdyaWQnKTtcbiAgLy8gICBjb25zdCBncmlkT2Zmc2V0ID0gdmlld3BvcnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gIC8vICAgY29uc3QgZ3JpZEhlaWdodCA9XG4gIC8vICAgICB0aGlzLmdyaWRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2U7IC8vZ3JpZCBzaG91bGQgaGF2ZSAyNHB4IHNwYWNlIGF0IGJvdHRvbVxuICAvLyAgIGlmIChncmlkT2Zmc2V0ICsgZ3JpZEhlaWdodCA+PSB3aW5kb3dIZWlnaHQpIHtcbiAgLy8gICAgIHRoaXMuaGVpZ2h0ID0gd2luZG93SGVpZ2h0IC0gKGdyaWRPZmZzZXQgKyB0aGlzLmdyaWRCb3R0b21TcGFjZSk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHJlc2l6ZShldjogYW55KSB7XG4gICAgaWYgKGV2LnRhcmdldC5pbm5lckhlaWdodCA+IHRoaXMucmVzaXplSGVpZ2h0KSB7XG4gICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IGV2LnRhcmdldC5pbm5lckhlaWdodDtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gJzEwMCUnO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXNpemVIZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgIHRoaXMucmVzaXplSGVpZ2h0ID0gMDtcbiAgICB9XG4gICAgLy8gdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gIH1cblxuICByb3dDbGFzcyA9IChhcmdzOiBSb3dDbGFzc0FyZ3MpID0+IHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3MgJiYgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAnay1kaXNhYmxlZCc6IHRoaXMuc2VsZWN0ZWRSb3dzLmluY2x1ZGVzKFxuICAgICAgICAgIGFyZ3MuZGF0YUl0ZW1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV1cbiAgICAgICAgKSB8fCB0aGlzLmFsbFBhZ2VzU2VsZWN0ZWQsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH07XG5cbiAgZXhwYW5kQ29sdW1uQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5leHBhbmRSb3dDb2x1bW5XaWR0aCA9IDE5NDtcbiAgICAgIHJldHVybiAnZXhwYW5kLXJvdyc7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kUm93Q29sdW1uV2lkdGggPSA1NjtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBvblNlbGVjdEFsbENoYW5nZShjaGVja2VkU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGVja2VkU3RhdGUgPT09ICdjaGVja2VkJyB8fFxuICAgICAgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPT0gdGhpcy5ncmlkVmlldy50b3RhbCAmJlxuICAgICAgICB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpXG4gICAgKSB7XG4gICAgICB0aGlzLnByZVNlbGVjdGVkID0gdGhpcy5ncmlkVmlldy5kYXRhXG4gICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSlcbiAgICAgICAgLmZpbHRlcigoaWQ6IGFueSkgPT4gaWQpO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgIH1cbiAgICB0aGlzLmFkZFNlbGVjdEFsbE1lc3NhZ2UodGhpcy5zZWxlY3RBbGxTdGF0ZSA9PT0gJ2NoZWNrZWQnKTtcbiAgfVxuXG4gIHB1YmxpYyBjZWxsQ2xvc2VIYW5kbGVyKGFyZ3M6IENlbGxDbG9zZUV2ZW50KTogdm9pZCB7XG4gICAgbGV0IHsgZm9ybUdyb3VwLCBkYXRhSXRlbSB9ID0gYXJncztcbiAgICBpZiAoIWZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgYXJncy5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAoZm9ybUdyb3VwLmRpcnR5KSB7XG4gICAgICBpZiAoYXJncy5vcmlnaW5hbEV2ZW50ICYmIGFyZ3Mub3JpZ2luYWxFdmVudC5rZXlDb2RlID09PSBLZXlzLkVzY2FwZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBPYmplY3QuYXNzaWduKGRhdGFJdGVtLCBmb3JtR3JvdXAudmFsdWUpO1xuICAgICAgdGhpcy5zYXZlQ2hhbmdlcygpO1xuICAgICAgdGhpcy51cGRhdGVkRGF0YS5lbWl0KHRoaXMuZ3JpZC5kYXRhKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWQuY2xvc2VDZWxsKCk7XG4gICAgdGhpcy5ncmlkLmNhbmNlbENlbGwoKTtcbiAgfVxufVxuIiwiPGRpdiAjZ3JpZEVsZW1lbnQgKHdpbmRvdzpyZXNpemUpPVwicmVzaXplKCRldmVudClcIiBbbmdDbGFzc109XCJjb2x1bW5Db250ZW50Tm9XcmFwID8gJ2NvbHVtbi1jb250ZW50LW5vd3JhcCcgOiAnJ1wiPlxuICA8a2VuZG8tZ3JpZCBbZGF0YV09XCJncmlkVmlld1wiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIFtza2lwXT1cInNraXBcIiBbc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlU2V0dGluZ3NcIlxuICAgIFtwYWdlYWJsZV09XCJwYWdlYWJsZVwiIFtzb3J0YWJsZV09XCJzb3J0YWJsZVwiIFtncm91cGFibGVdPVwiZ3JvdXBhYmxlXCIgW3Jlb3JkZXJhYmxlXT1cInJlb3JkZXJhYmxlXCJcbiAgICBbcmVzaXphYmxlXT1cInJlc2l6YWJsZVwiIFtjb2x1bW5NZW51XT1cImNvbHVtbk1lbnVcIiBbbmF2aWdhYmxlXT1cIm5hdmlnYWJsZVwiIFtoZWlnaHRdPVwiaGVpZ2h0XCIgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIlxuICAgIChjaGFuZ2UpPVwic2V0U2VsZWN0YWJsZVNldHRpbmdzKClcIiAoc2VsZWN0ZWRLZXlzQ2hhbmdlKT1cInNlbGVjdGVkS2V5c0NoYW5nZSgkZXZlbnQpXCJcbiAgICBba2VuZG9HcmlkU2VsZWN0QnldPVwiZ3JpZFJvd1NlbGVjdEJ5VmFsdWVcIiAoZGV0YWlsRXhwYW5kKT1cIm9uRGV0YWlsRXhwYW5kKCRldmVudClcIiBbc2VsZWN0ZWRLZXlzXT1cInByZVNlbGVjdGVkXCJcbiAgICAocGFnZUNoYW5nZSk9XCJwYWdlQ2hhbmdlKCRldmVudClcIiAoY2VsbENsaWNrKT1cImNlbGxDbGlja0hhbmRsZXIoJGV2ZW50KVwiIChjZWxsQ2xvc2UpPVwiY2VsbENsb3NlSGFuZGxlcigkZXZlbnQpXCIgW3NvcnRdPVwic29ydFwiXG4gICAgKHNvcnRDaGFuZ2UpPVwic29ydENoYW5nZSgkZXZlbnQpXCIgW25nQ2xhc3NdPVwiZ2V0SGVhZGVySGVpZ2h0KClcIiBpZD1cImxpYi1ncmlkXCIgW3Jvd0NsYXNzXT1cInJvd0NsYXNzXCI+XG4gICAgPGRpdiAjc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQgY2xhc3M9XCJsaWItZ3JpZC1zZWxlY3QtYWxsLW1lc3NhZ2UtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIWFsbFBhZ2VzU2VsZWN0ZWRcIiBjbGFzcz1cImxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZVwiPlxuICAgICAgICA8bGliLXR5cG9ncmFwaHkgW2RlZmF1bHRUZXh0XT1cIidBbGwgJytncmlkVmlldy5kYXRhLmxlbmd0aCsnICcraXRlbU5hbWUrJyBvbiB0aGlzIHBhZ2UgYXJlIHNlbGVjdGVkLidcIiB0eXBlPVwiQk9EWV9TTUFMTFwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgIDx1PjxsaWItdHlwb2dyYXBoeSAoY2xpY2spPVwic2VsZWN0QWNyb3NzUGFnZXModHJ1ZSlcIiBjbGFzcz0gXCJzZWxlY3QtYWxsLWhhbmRsZXJcIiBbZGVmYXVsdFRleHRdPVwiJ1NlbGVjdCBhbGwgJytncmlkVmlldy50b3RhbCsnICcraXRlbU5hbWUrJyBmcm9tIGFsbCBwYWdlcydcIiB0eXBlPVwiQk9EWV9TTUFMTFwiPjwvbGliLXR5cG9ncmFwaHk+PC91PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYWxsUGFnZXNTZWxlY3RlZFwiIGNsYXNzPVwibGliLWdyaWQtc2VsZWN0LWFsbC1tZXNzYWdlXCI+XG4gICAgICAgIDxsaWItaWNvbiBuYW1lPVwiY2lyY2xlLWNoZWNrZWRcIiBjbGFzcz1cImFsbC1zZWxlY3RlZC1pY29uXCI+PC9saWItaWNvbj5cbiAgICAgICAgPGxpYi10eXBvZ3JhcGh5IFtkZWZhdWx0VGV4dF09XCInQWxsICcrZ3JpZFZpZXcudG90YWwrJyAnK2l0ZW1OYW1lKycgYWNyb3NzIGFsbCBwYWdlcyBhcmUgc2VsZWN0ZWQuJ1wiIHR5cGU9XCJCT0RZX1NNQUxMXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgICAgICAgPHU+PGxpYi10eXBvZ3JhcGh5IChjbGljayk9XCJzZWxlY3RBY3Jvc3NQYWdlcyhmYWxzZSlcIiBjbGFzcz0gXCJzZWxlY3QtYWxsLWhhbmRsZXJcIiBbZGVmYXVsdFRleHRdPVwiJ0NsZWFyIHNlbGVjdGlvbidcIiB0eXBlPVwiQk9EWV9TTUFMTFwiPjwvbGliLXR5cG9ncmFwaHk+PC91PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwic2hvd1Rvb2xiYXJcIiBrZW5kb0dyaWRUb29sYmFyVGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRoaXMuZ3JpZFZpZXcudG90YWwgPT09IDBcIiBrZW5kb0dyaWROb1JlY29yZHNUZW1wbGF0ZT5cbiAgICAgIDxsaWItdHlwb2dyYXBoeSAqbmdJZj1cIiFsb2FkaW5nXCIgW2RlZmF1bHRUZXh0XT1cIm5vUmVjb3Jkc0NvbnRlbnRcIiB0eXBlPVwiQk9EWV9NRURJVU1cIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgPGxpYi1sb2FkZXIgKm5nSWY9XCJsb2FkaW5nXCIgW3R5cGVdPVwibG9hZGVyVHlwZVwiIFtzaXplXT1cImxvYWRlclNpemVcIiBbdGhlbWVDb2xvcl09XCJsb2FkZXJUaGVtZVwiPjwvbGliLWxvYWRlcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuZ3JpZFZpZXcudG90YWwgPiAwXCI+XG4gICAgICA8a2VuZG8tZ3JpZC1jaGVja2JveC1jb2x1bW4gKm5nSWY9XCJjaGVja0JveFJlcXVpcmVkID09PSB0cnVlXCIgW3dpZHRoXT1cImNoZWNrQm94V2lkdGhcIlxuICAgICAgICBbcmVzaXphYmxlXT1cImNoZWNrQm94Q29sdW1uUmVzaXphYmxlXCIgW2NvbHVtbk1lbnVdPVwiY2hlY2tCb3hDb2x1bW5NZW51XCIgY2xhc3M9XCJjaGVja2JveC1jb2x1bW5cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIDxpbnB1dCBpZD1cInNlbGVjdEFsbENoZWNrYm94SWRcIiB0eXBlPVwiY2hlY2tib3hcIiBrZW5kb0NoZWNrQm94IGtlbmRvR3JpZFNlbGVjdEFsbENoZWNrYm94XG4gICAgICAgICAgICBbc3RhdGVdPVwic2VsZWN0QWxsU3RhdGVcIiAoc2VsZWN0QWxsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbj5cbiAgICAgIFxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uIGNsYXNzPVwiZ3JpZC1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2x1bW5EYXRhXCIgW2ZpZWxkXT1cIml0ZW0uZmllbGRcIiBbdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgIFt3aWR0aF09XCJpdGVtLmNvbHVtbldpZHRoXCIgW3NvcnRhYmxlXT1cIml0ZW0uc29ydGFibGVcIiBbZWRpdG9yXT1cIml0ZW0uZWRpdG9yXCIgW2NsYXNzXT1cIml0ZW0uY2xhc3NcIj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJzb3J0YWJsZVwiIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIHt7aXRlbS50aXRsZX19XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0WzBdLmZpZWxkID09PSBpdGVtLmZpZWxkXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnYXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5kaXIgPT09ICdkZXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5jdXN0b21Db2x1bW5cIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uVGVtcGxhdGVEaWN0W2l0ZW0udHlwZV1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5jdXN0b21cIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZVJlZjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uaW1wYWN0XCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW1wYWN0Q29sdW1uOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiAqbmdJZj1cInNob3dEZWxldGVDb2x1bW5cIiBbd2lkdGhdPVwiZGVsZXRlQ29sdW1uV2lkdGhcIiBjbGFzcz1cImRlbGV0ZS1jb2x1bW5cIiB0aXRsZT1cIkFjdGlvblwiPlxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgIDxsaWItdG9vbHRpcCBzaG93T249XCJob3ZlclwiIHBvc2l0aW9uPVwiYm90dG9tXCIgY2xhc3M9XCJyZW1vdmUtdG9vbHRpcFwiPlxuICAgICAgICAgICAgPGxpYi1pY29uIG5hbWU9XCJkZWxldGVcIiBjbGFzcz1cImRlbGV0ZS1pY29uXCIgKGNsaWNrKT1cIm9uRGVsZXRlKGRhdGFJdGVtKVwiPjwvbGliLWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxsaWItdHlwb2dyYXBoeSBkZWZhdWx0VGV4dD1cIlJlbW92ZVwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpYi10b29sdGlwPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cblxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uIFt3aWR0aF09XCJrZWJhYkNvbHVtbldpZHRoXCIgY2xhc3M9XCJrZWJhYi1jb2x1bW5cIiAqbmdJZj1cInNob3dLZWJhYlwiIHRpdGxlPVwiQWN0aW9uc1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgIDxrZW5kby1kcm9wZG93bmJ1dHRvbiAqbmdJZj1cIiFoaWRlS2ViYWJSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJpY29uXCIgZmlsbE1vZGU9XCJub25lXCJcbiAgICAgICAgICAgIFtkYXRhXT1cImtlYmFiTGlzdCB8IGtlYmFiTWVudUZpbHRlciA6IGRhdGFJdGVtXCIgY2xhc3M9XCJrZWJhYlwiIChpdGVtQ2xpY2spPVwib25LZWJhYkNsaWNrKCRldmVudCwgZGF0YUl0ZW0pXCJcbiAgICAgICAgICAgIFtwb3B1cFNldHRpbmdzXT1cInsgYWxpZ246ICdyaWdodCcsIGFuaW1hdGU6IHRydWUsIHBvcHVwQ2xhc3M6ICdrZWJhYi1saXN0JyB9XCI+XG4gICAgICAgICAgPC9rZW5kby1kcm9wZG93bmJ1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkRGV0YWlsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGtlbmRvLWdyaWQtY29sdW1uICpuZ0lmPVwiY3VzdG9tRXhwYW5kUm93Q29sdW1uXCIgW3dpZHRoXT1cImV4cGFuZFJvd0NvbHVtbldpZHRoXCIgY2xhc3M9XCJncmlkLWNvbHVtbiBleHBhbmQtY29sdW1uXCI+XG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4cGFuZENvbHVtbkNsYXNzKClcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkUm93cy5pbmNsdWRlcyhkYXRhSXRlbVtncmlkUm93U2VsZWN0QnlWYWx1ZV0pICYmIGRpc2FibGVQcmVTZWxlY3RlZFJvd3NcIlxuICAgICAgICAgICAgY2xhc3M9XCJleHBhbmQtY29sdW1uLXRleHRcIj5cbiAgICAgICAgICAgIEFscmVhZHkgYWRkZWRcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGtlbmRvLWJ1dHRvbiAqbmdJZj1cIiFleHBhbmRSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJhcnJvd0Rvd25JY29uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRSb3cocm93SW5kZXgpXCIgZmlsbE1vZGU9XCJub25lXCIgY2xhc3M9XCJhcnJvdy1idG5cIj5cbiAgICAgICAgICA8L2tlbmRvLWJ1dHRvbj5cbiAgICAgICAgICA8a2VuZG8tYnV0dG9uICpuZ0lmPVwiZXhwYW5kUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiYXJyb3dVcEljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbGxhcHNlUm93KHJvd0luZGV4KVwiIGZpbGxNb2RlPVwibm9uZVwiIGNsYXNzPVwiYXJyb3ctYnRuXCI+XG4gICAgICAgICAgPC9rZW5kby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvUGFnZXJUZW1wbGF0ZSBsZXQtdG90YWxQYWdlcz1cInRvdGFsUGFnZXNcIiBsZXQtY3VycmVudFBhZ2U9XCJjdXJyZW50UGFnZVwiPlxuICAgICAgPGtlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz5cbiAgICAgIDxrZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnMgW2J1dHRvbkNvdW50XT1cInBhZ2VDb3VudFwiPjwva2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zPlxuICAgICAgPGtlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz5cbiAgICAgIDxrZW5kby1wYWdlci1pbmZvPjwva2VuZG8tcGFnZXItaW5mbz5cbiAgICAgIDxrZW5kby1wYWdlci1wYWdlLXNpemVzIFtwYWdlU2l6ZXNdPVwic2l6ZXNcIj48L2tlbmRvLXBhZ2VyLXBhZ2Utc2l6ZXM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICA8L2tlbmRvLWdyaWQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -259,7 +259,7 @@ class TypographyComponent {
|
|
|
259
259
|
this.hiddenLabel = "";
|
|
260
260
|
this.showDefaultText = true;
|
|
261
261
|
this.font = Typography[this.type];
|
|
262
|
-
this.input_id =
|
|
262
|
+
this.input_id = "";
|
|
263
263
|
}
|
|
264
264
|
ngAfterViewInit() {
|
|
265
265
|
if (!this.input_id) {
|
|
@@ -286,11 +286,11 @@ class TypographyComponent {
|
|
|
286
286
|
this.showDefaultText = !this.isLabel && (!childrenCount || childrenCount == 0);
|
|
287
287
|
}
|
|
288
288
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TypographyComponent, deps: [{ token: i1$1.ThemesService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
289
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TypographyComponent, selector: "lib-typography", inputs: { type: "type", defaultText: "defaultText", isLabel: "isLabel", hiddenLabel: "hiddenLabel" }, viewQueries: [{ propertyName: "child", first: true, predicate: ["ref"], descendants: true }, { propertyName: "labelChild", first: true, predicate: ["ref_label"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:32px!important;line-height:40px!important;letter-spacing:.25px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important;letter-spacing:.15px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important;text-transform:uppercase}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
289
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TypographyComponent, selector: "lib-typography", inputs: { type: "type", defaultText: "defaultText", isLabel: "isLabel", hiddenLabel: "hiddenLabel" }, viewQueries: [{ propertyName: "child", first: true, predicate: ["ref"], descendants: true }, { propertyName: "labelChild", first: true, predicate: ["ref_label"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id || ''}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:32px!important;line-height:40px!important;letter-spacing:.25px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important;letter-spacing:.15px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important;text-transform:uppercase}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
290
290
|
}
|
|
291
291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TypographyComponent, decorators: [{
|
|
292
292
|
type: Component,
|
|
293
|
-
args: [{ selector: 'lib-typography', template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:32px!important;line-height:40px!important;letter-spacing:.25px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important;letter-spacing:.15px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important;text-transform:uppercase}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"] }]
|
|
293
|
+
args: [{ selector: 'lib-typography', template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id || ''}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:32px!important;line-height:40px!important;letter-spacing:.25px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important;letter-spacing:.15px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important;text-transform:uppercase}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"] }]
|
|
294
294
|
}], ctorParameters: function () { return [{ type: i1$1.ThemesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
|
|
295
295
|
type: Input
|
|
296
296
|
}], defaultText: [{
|
|
@@ -4480,7 +4480,7 @@ class GridPaginationComponent {
|
|
|
4480
4480
|
}
|
|
4481
4481
|
this.initialGridHeight =
|
|
4482
4482
|
this.gridElement.nativeElement.offsetHeight + this.gridBottomSpace;
|
|
4483
|
-
this.getGridHeight();
|
|
4483
|
+
// this.getGridHeight();
|
|
4484
4484
|
const gridContainer = this.gridElement?.nativeElement?.getElementsByClassName('k-grid-container')[0];
|
|
4485
4485
|
this.renderer.insertBefore(gridContainer.parentElement, this.selectAllMessageElement.nativeElement, gridContainer, true);
|
|
4486
4486
|
this.cdRef.detectChanges();
|
|
@@ -4597,9 +4597,9 @@ class GridPaginationComponent {
|
|
|
4597
4597
|
expandRow(id) {
|
|
4598
4598
|
this.grid.expandRow(id);
|
|
4599
4599
|
this.expandRowIndex.push(id);
|
|
4600
|
-
setTimeout(() => {
|
|
4601
|
-
|
|
4602
|
-
}, 0);
|
|
4600
|
+
// setTimeout(() => {
|
|
4601
|
+
// this.getGridHeight();
|
|
4602
|
+
// }, 0);
|
|
4603
4603
|
}
|
|
4604
4604
|
collapseRow(id) {
|
|
4605
4605
|
this.grid.collapseRow(id);
|
|
@@ -4612,7 +4612,7 @@ class GridPaginationComponent {
|
|
|
4612
4612
|
this.height = '100%';
|
|
4613
4613
|
return;
|
|
4614
4614
|
}
|
|
4615
|
-
this.getGridHeight();
|
|
4615
|
+
// this.getGridHeight();
|
|
4616
4616
|
}
|
|
4617
4617
|
}
|
|
4618
4618
|
onDelete(rowDetails) {
|
|
@@ -4627,15 +4627,19 @@ class GridPaginationComponent {
|
|
|
4627
4627
|
}
|
|
4628
4628
|
return 'view-header';
|
|
4629
4629
|
}
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4630
|
+
/*
|
|
4631
|
+
* This logic of dynamically calculating the height of grid need further brainstorming hence commented for now.
|
|
4632
|
+
*/
|
|
4633
|
+
// getGridHeight() {
|
|
4634
|
+
// const windowHeight = window.innerHeight;
|
|
4635
|
+
// const viewport: any = document.getElementById('lib-grid');
|
|
4636
|
+
// const gridOffset = viewport.getBoundingClientRect().top + window.scrollY;
|
|
4637
|
+
// const gridHeight =
|
|
4638
|
+
// this.gridElement.nativeElement.offsetHeight + this.gridBottomSpace; //grid should have 24px space at bottom
|
|
4639
|
+
// if (gridOffset + gridHeight >= windowHeight) {
|
|
4640
|
+
// this.height = windowHeight - (gridOffset + this.gridBottomSpace);
|
|
4641
|
+
// }
|
|
4642
|
+
// }
|
|
4639
4643
|
resize(ev) {
|
|
4640
4644
|
if (ev.target.innerHeight > this.resizeHeight) {
|
|
4641
4645
|
this.resizeHeight = ev.target.innerHeight;
|
|
@@ -4644,7 +4648,7 @@ class GridPaginationComponent {
|
|
|
4644
4648
|
if (this.resizeHeight > window.innerHeight) {
|
|
4645
4649
|
this.resizeHeight = 0;
|
|
4646
4650
|
}
|
|
4647
|
-
this.getGridHeight();
|
|
4651
|
+
// this.getGridHeight();
|
|
4648
4652
|
}
|
|
4649
4653
|
expandColumnClass() {
|
|
4650
4654
|
if (this.selectedRows?.length > 0 && this.disablePreSelectedRows) {
|