@rangertechnologies/ngnxt 2.1.81 → 2.1.83
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/components/custom-radio/custom-radio.component.mjs +3 -3
- package/esm2022/lib/components/custom-rich-text/custom-rich-text.component.mjs +5 -3
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +3 -4
- package/esm2022/lib/pages/booklet/booklet.component.mjs +3 -3
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +28 -3
- package/fesm2022/rangertechnologies-ngnxt.mjs +35 -11
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/components/file-upload/file-upload.component.d.ts +0 -1
- package/lib/pages/questionbook/questionbook.component.d.ts +1 -0
- package/package.json +1 -1
- package/rangertechnologies-ngnxt-2.1.83.tgz +0 -0
- package/rangertechnologies-ngnxt-2.1.81.tgz +0 -0
|
@@ -82,11 +82,11 @@ export class CustomRadioComponent {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRadioComponent, deps: [{ token: i1.ChangeService }, { token: i2.DataService }, { token: i3.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomRadioComponent, selector: "app-custom-radio", inputs: { options: "options", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", readOnly: "readOnly", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel", referenceField: "referenceField", token: "token" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<!-- RS 09DEC24 Changed keys
|
|
85
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomRadioComponent, selector: "app-custom-radio", inputs: { options: "options", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", readOnly: "readOnly", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel", referenceField: "referenceField", token: "token" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<!-- RS 09DEC24 Changed keys-->\r\n <!-- RS 019JAN25 -->\r\n <!-- validate for NULL -->\r\n<div class=\"custom-radio-container\">\r\n <div\r\n *ngFor=\"let option of options\"\r\n [class]=\"invalidFieldIds.includes(id) || error ? 'custom-radio-option invalid' : 'custom-radio-option'\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [id]=\"apiMeta !== undefined && apiMeta !== null ? option[labelField] : option.value\"\r\n [checked] = \"selectedValue == option.value\"\r\n [name]=\"id\"\r\n [value]=\"selectedValue\"\r\n (change)=\"radioChange($event)\"\r\n [disabled]=\"readOnly\"\r\n />\r\n <label class=\"nxt-radio-label\" [for]=\"apiMeta !== undefined && apiMeta !== null ? option[labelField] : option.value\">{{ apiMeta !== undefined && apiMeta !== null ? option[labelField] : option.value}}</label>\r\n </div>\r\n <span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">{{ errorMessage }}</span>\r\n</div>", styles: [".custom-radio-option{display:flex;flex-direction:row;margin-bottom:5px}input[type=radio]{width:auto}.nxt-radio-label{margin-left:15px;margin-bottom:0}.custom-radio-option.invalid label{color:red}.error-msg{color:red;font-size:12px;margin-top:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
86
86
|
}
|
|
87
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRadioComponent, decorators: [{
|
|
88
88
|
type: Component,
|
|
89
|
-
args: [{ selector: 'app-custom-radio', template: "<!-- RS 09DEC24 Changed keys
|
|
89
|
+
args: [{ selector: 'app-custom-radio', template: "<!-- RS 09DEC24 Changed keys-->\r\n <!-- RS 019JAN25 -->\r\n <!-- validate for NULL -->\r\n<div class=\"custom-radio-container\">\r\n <div\r\n *ngFor=\"let option of options\"\r\n [class]=\"invalidFieldIds.includes(id) || error ? 'custom-radio-option invalid' : 'custom-radio-option'\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [id]=\"apiMeta !== undefined && apiMeta !== null ? option[labelField] : option.value\"\r\n [checked] = \"selectedValue == option.value\"\r\n [name]=\"id\"\r\n [value]=\"selectedValue\"\r\n (change)=\"radioChange($event)\"\r\n [disabled]=\"readOnly\"\r\n />\r\n <label class=\"nxt-radio-label\" [for]=\"apiMeta !== undefined && apiMeta !== null ? option[labelField] : option.value\">{{ apiMeta !== undefined && apiMeta !== null ? option[labelField] : option.value}}</label>\r\n </div>\r\n <span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">{{ errorMessage }}</span>\r\n</div>", styles: [".custom-radio-option{display:flex;flex-direction:row;margin-bottom:5px}input[type=radio]{width:auto}.nxt-radio-label{margin-left:15px;margin-bottom:0}.custom-radio-option.invalid label{color:red}.error-msg{color:red;font-size:12px;margin-top:5px}\n"] }]
|
|
90
90
|
}], ctorParameters: () => [{ type: i1.ChangeService }, { type: i2.DataService }, { type: i3.I18nService }], propDecorators: { options: [{
|
|
91
91
|
type: Input
|
|
92
92
|
}], apiMeta: [{
|
|
@@ -112,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
112
112
|
}], valueChange: [{
|
|
113
113
|
type: Output
|
|
114
114
|
}] } });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1yYWRpby9jdXN0b20tcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJhZGlvL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBWTFELE1BQU0sT0FBTyxvQkFBb0I7SUFxQnJCO0lBQ0E7SUFDRDtJQXJCQSxPQUFPLEdBQVUsRUFBRSxDQUFDO0lBQ3BCLE9BQU8sQ0FBUztJQUNoQixhQUFhLENBQVM7SUFDdEIsV0FBVyxDQUFVO0lBQ3JCLEVBQUUsQ0FBUztJQUNYLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsWUFBWSxDQUFTO0lBQ3JCLEtBQUssQ0FBTTtJQUNYLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsY0FBYyxDQUFTO0lBQ3ZCLEtBQUssQ0FBUztJQUNiLFdBQVcsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDdkYsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUV4QixVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQzFCLFlBQVksQ0FBZTtJQUUzQixZQUNVLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3pCLFdBQXdCO1FBRnZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRS9CLElBQUksQ0FB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LE1BQU0sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO3dHQWpGVSxvQkFBb0I7NEZBQXBCLG9CQUFvQiw2V0NiakMsNDRCQW1CRTs7NEZETlcsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjtzSUFNbkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFuZ2VXcmFwcGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvY2hhbmdlV3JhcHBlcic7XHJcbmltcG9ydCB7IENoYW5nZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBpbWV0YSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tcmFkaW8nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1yYWRpby5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbVJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBhcGlNZXRhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHByb2dyZXNzQmFyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVhZE9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBlcnJvcjogYW55O1xyXG4gIEBJbnB1dCgpIGZyb21TaGVuZ2VsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVmZXJlbmNlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSB0b2tlbjogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPENoYW5nZVdyYXBwZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGFuZ2VXcmFwcGVyPigpO1xyXG4gIGludmFsaWRGaWVsZElkczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgcHVibGljIGxhYmVsRmllbGQ6IHN0cmluZztcclxuICBwdWJsaWMgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2hhbmdlU2VydmljZTogQ2hhbmdlU2VydmljZSxcclxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLnN1Ym1pdFZhbGlkYXRlJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMucHVzaChkYXRhKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBWRCAzMU5PVjI0IG51bGwgY2hlY2tcclxuICAgIGlmICh0aGlzLmFwaU1ldGEpIHtcclxuICAgICAgbGV0IGFwaU9iajogQVBJTWV0YSA9IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhKTtcclxuICAgICAgdGhpcy5sYWJlbEZpZWxkID0gYXBpT2JqLmZpZWxkO1xyXG5cclxuICAgICAgdGhpcy5kYXRhU2VydmljZS5hcGlSZXNwb25zZShhcGlPYmouZW5kcG9pbnQpPy5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlcztcclxuICAgICAgICBpZiAoYXBpT2JqLnZhcmlhYmxlKSB7XHJcbiAgICAgICAgICByZXNwb25zZXMgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGFwaVJlc3BvbnNlLCBhcGlPYmoudmFyaWFibGUpO1xyXG4gICAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzcG9uc2VzPy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgcmVzcCA9IHJlc3BvbnNlc1tpXTtcclxuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3ApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzdWx0cztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzcG9uc2VzID0gYXBpUmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXNwb25zZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGxldCBzb3VyY2VJZCA9IGFwaU9iai5zb3VyY2VRdWVzdGlvbklkO1xyXG4gICAgICBpZiAoc291cmNlSWQpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY2hhbmdlU2VydmljZS5jaGFuZ2VBbm5vdW5jZWQkLnN1YnNjcmliZShcclxuICAgICAgICAgIChjaGFuZ2VWYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlLnZhbHVlT2JqICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCA9PSBhcGlPYmouc291cmNlUXVlc3Rpb25JZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gY2hhbmdlVmFsdWUudmFsdWVPYmpbYXBpT2JqLnZhbHVlRmllbGRdO1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0ge307XHJcbiAgICAgICAgICAgICAgICB2YWx1ZVsnbmFtZSddID0gdGhpcy5zZWxlY3RlZFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yYWRpb0NoYW5nZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGFwaU9iai5zb3VyY2VRdWVzdGlvbklkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJhZGlvQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGxldCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpO1xyXG4gICAgY2hhbmdlLmZyb21RdWVzdGlvbklkID0gdGhpcy5pZDtcclxuICAgIGNoYW5nZS52YWx1ZU9iaiA9IGV2ZW50LnRhcmdldD8uaWQgPyBldmVudC50YXJnZXQ/LmlkIDogJyc7XHJcbiAgICBjaGFuZ2UucmVmZXJlbmNlRmllbGQgPSB0aGlzLnJlZmVyZW5jZUZpZWxkO1xyXG4gICAgY2hhbmdlLnNlbGVjdGVkT2JqID0gZXZlbnQgPyBldmVudFt0aGlzLmxhYmVsRmllbGRdIDogJyc7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoY2hhbmdlKTtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLmludmFsaWRGaWVsZElkcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLSBSUyAwOURFQzI0IENoYW5nZWQga2V5cy0tPiBcclxuPGRpdiBjbGFzcz1cImN1c3RvbS1yYWRpby1jb250YWluZXJcIj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcclxuICAgICAgW2NsYXNzXT1cImludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZCkgfHwgZXJyb3IgPyAnY3VzdG9tLXJhZGlvLW9wdGlvbiBpbnZhbGlkJyA6ICdjdXN0b20tcmFkaW8tb3B0aW9uJ1wiXHJcbiAgICA+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgW2lkXT1cImFwaU1ldGEgIT09IHVuZGVmaW5lZCA/IG9wdGlvbltsYWJlbEZpZWxkXSA6IG9wdGlvbi52YWx1ZSBcIlxyXG4gICAgICAgIFtjaGVja2VkXSA9IFwic2VsZWN0ZWRWYWx1ZSA9PSBvcHRpb24udmFsdWUgXCJcclxuICAgICAgICBbbmFtZV09XCJpZFwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwicmFkaW9DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRPbmx5XCJcclxuICAgICAgLz5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwibnh0LXJhZGlvLWxhYmVsXCIgW2Zvcl09XCJhcGlNZXRhICE9PSB1bmRlZmluZWQgPyBvcHRpb25bbGFiZWxGaWVsZF0gOiBvcHRpb24udmFsdWVcIj57eyBhcGlNZXRhICE9PSB1bmRlZmluZWQgPyBvcHRpb25bbGFiZWxGaWVsZF0gOiBvcHRpb24udmFsdWUgIH19PC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNwYW4gKm5nSWY9XCJlcnJvciB8fCBpbnZhbGlkRmllbGRJZHMuaW5jbHVkZXMoaWQpXCIgY2xhc3M9XCJlcnJvci1tc2dcIj57eyBlcnJvck1lc3NhZ2UgfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgIl19
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1yYWRpby9jdXN0b20tcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJhZGlvL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBWTFELE1BQU0sT0FBTyxvQkFBb0I7SUFxQnJCO0lBQ0E7SUFDRDtJQXJCQSxPQUFPLEdBQVUsRUFBRSxDQUFDO0lBQ3BCLE9BQU8sQ0FBUztJQUNoQixhQUFhLENBQVM7SUFDdEIsV0FBVyxDQUFVO0lBQ3JCLEVBQUUsQ0FBUztJQUNYLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsWUFBWSxDQUFTO0lBQ3JCLEtBQUssQ0FBTTtJQUNYLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsY0FBYyxDQUFTO0lBQ3ZCLEtBQUssQ0FBUztJQUNiLFdBQVcsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDdkYsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUV4QixVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQzFCLFlBQVksQ0FBZTtJQUUzQixZQUNVLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3pCLFdBQXdCO1FBRnZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRS9CLElBQUksQ0FB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LE1BQU0sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO3dHQWpGVSxvQkFBb0I7NEZBQXBCLG9CQUFvQiw2V0NiakMsbzlCQW9CTTs7NEZEUE8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjtzSUFNbkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFuZ2VXcmFwcGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvY2hhbmdlV3JhcHBlcic7XHJcbmltcG9ydCB7IENoYW5nZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBpbWV0YSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tcmFkaW8nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1yYWRpby5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbVJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBhcGlNZXRhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHByb2dyZXNzQmFyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVhZE9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBlcnJvcjogYW55O1xyXG4gIEBJbnB1dCgpIGZyb21TaGVuZ2VsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVmZXJlbmNlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSB0b2tlbjogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPENoYW5nZVdyYXBwZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGFuZ2VXcmFwcGVyPigpO1xyXG4gIGludmFsaWRGaWVsZElkczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgcHVibGljIGxhYmVsRmllbGQ6IHN0cmluZztcclxuICBwdWJsaWMgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2hhbmdlU2VydmljZTogQ2hhbmdlU2VydmljZSxcclxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLnN1Ym1pdFZhbGlkYXRlJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMucHVzaChkYXRhKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBWRCAzMU5PVjI0IG51bGwgY2hlY2tcclxuICAgIGlmICh0aGlzLmFwaU1ldGEpIHtcclxuICAgICAgbGV0IGFwaU9iajogQVBJTWV0YSA9IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhKTtcclxuICAgICAgdGhpcy5sYWJlbEZpZWxkID0gYXBpT2JqLmZpZWxkO1xyXG5cclxuICAgICAgdGhpcy5kYXRhU2VydmljZS5hcGlSZXNwb25zZShhcGlPYmouZW5kcG9pbnQpPy5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlcztcclxuICAgICAgICBpZiAoYXBpT2JqLnZhcmlhYmxlKSB7XHJcbiAgICAgICAgICByZXNwb25zZXMgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGFwaVJlc3BvbnNlLCBhcGlPYmoudmFyaWFibGUpO1xyXG4gICAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzcG9uc2VzPy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgcmVzcCA9IHJlc3BvbnNlc1tpXTtcclxuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3ApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzdWx0cztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzcG9uc2VzID0gYXBpUmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXNwb25zZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGxldCBzb3VyY2VJZCA9IGFwaU9iai5zb3VyY2VRdWVzdGlvbklkO1xyXG4gICAgICBpZiAoc291cmNlSWQpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY2hhbmdlU2VydmljZS5jaGFuZ2VBbm5vdW5jZWQkLnN1YnNjcmliZShcclxuICAgICAgICAgIChjaGFuZ2VWYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlLnZhbHVlT2JqICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCA9PSBhcGlPYmouc291cmNlUXVlc3Rpb25JZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gY2hhbmdlVmFsdWUudmFsdWVPYmpbYXBpT2JqLnZhbHVlRmllbGRdO1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0ge307XHJcbiAgICAgICAgICAgICAgICB2YWx1ZVsnbmFtZSddID0gdGhpcy5zZWxlY3RlZFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yYWRpb0NoYW5nZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGFwaU9iai5zb3VyY2VRdWVzdGlvbklkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJhZGlvQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGxldCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpO1xyXG4gICAgY2hhbmdlLmZyb21RdWVzdGlvbklkID0gdGhpcy5pZDtcclxuICAgIGNoYW5nZS52YWx1ZU9iaiA9IGV2ZW50LnRhcmdldD8uaWQgPyBldmVudC50YXJnZXQ/LmlkIDogJyc7XHJcbiAgICBjaGFuZ2UucmVmZXJlbmNlRmllbGQgPSB0aGlzLnJlZmVyZW5jZUZpZWxkO1xyXG4gICAgY2hhbmdlLnNlbGVjdGVkT2JqID0gZXZlbnQgPyBldmVudFt0aGlzLmxhYmVsRmllbGRdIDogJyc7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoY2hhbmdlKTtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLmludmFsaWRGaWVsZElkcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLSBSUyAwOURFQzI0IENoYW5nZWQga2V5cy0tPlxyXG4gPCEtLSBSUyAwMTlKQU4yNSAtLT5cclxuIDwhLS0gdmFsaWRhdGUgZm9yIE5VTEwgIC0tPlxyXG48ZGl2IGNsYXNzPVwiY3VzdG9tLXJhZGlvLWNvbnRhaW5lclwiPlxyXG4gIDxkaXZcclxuICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXHJcbiAgICBbY2xhc3NdPVwiaW52YWxpZEZpZWxkSWRzLmluY2x1ZGVzKGlkKSB8fCBlcnJvciA/ICdjdXN0b20tcmFkaW8tb3B0aW9uIGludmFsaWQnIDogJ2N1c3RvbS1yYWRpby1vcHRpb24nXCJcclxuICA+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgW2lkXT1cImFwaU1ldGEgIT09IHVuZGVmaW5lZCAmJiBhcGlNZXRhICE9PSBudWxsID8gb3B0aW9uW2xhYmVsRmllbGRdIDogb3B0aW9uLnZhbHVlXCJcclxuICAgICAgW2NoZWNrZWRdID0gXCJzZWxlY3RlZFZhbHVlID09IG9wdGlvbi52YWx1ZVwiXHJcbiAgICAgIFtuYW1lXT1cImlkXCJcclxuICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIlxyXG4gICAgICAoY2hhbmdlKT1cInJhZGlvQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwicmVhZE9ubHlcIlxyXG4gICAgLz5cclxuICAgIDxsYWJlbCBjbGFzcz1cIm54dC1yYWRpby1sYWJlbFwiIFtmb3JdPVwiYXBpTWV0YSAhPT0gdW5kZWZpbmVkICYmIGFwaU1ldGEgIT09IG51bGwgPyBvcHRpb25bbGFiZWxGaWVsZF0gOiBvcHRpb24udmFsdWVcIj57eyBhcGlNZXRhICE9PSB1bmRlZmluZWQgJiYgYXBpTWV0YSAhPT0gbnVsbCA/IG9wdGlvbltsYWJlbEZpZWxkXSA6IG9wdGlvbi52YWx1ZX19PC9sYWJlbD5cclxuICA8L2Rpdj5cclxuICA8c3BhbiAqbmdJZj1cImVycm9yIHx8IGludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZClcIiBjbGFzcz1cImVycm9yLW1zZ1wiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cclxuPC9kaXY+Il19
|
|
@@ -6,10 +6,12 @@ import { FormsModule } from '@angular/forms';
|
|
|
6
6
|
import Quill from 'quill';
|
|
7
7
|
import { Mention } from 'quill-mention';
|
|
8
8
|
import ImageResizor from 'quill-image-resizor';
|
|
9
|
+
import { CommonModule } from '@angular/common';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "../../i18n.service";
|
|
11
12
|
import * as i2 from "../../services/change.service";
|
|
12
13
|
import * as i3 from "@angular/forms";
|
|
14
|
+
import * as i4 from "@angular/common";
|
|
13
15
|
// RS 17JAN2025
|
|
14
16
|
// An array fontFamilyArr is created containing a list of font family names as strings.
|
|
15
17
|
const fontFamilyArr = ["Roboto", "Roboto Condensed", "Arial", "Verdana", "Tahoma", "Trebuchet MS",
|
|
@@ -141,11 +143,11 @@ export class CustomRichTextComponent {
|
|
|
141
143
|
}
|
|
142
144
|
}
|
|
143
145
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRichTextComponent, deps: [{ token: i1.I18nService }, { token: i2.ChangeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
144
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomRichTextComponent, isStandalone: true, selector: "app-custom-rich-text", inputs: { value: "value", placeholder: "placeholder", error: "error", question: "question", rows: "rows", readOnly: "readOnly", minLength: "minLength", maxLength: "maxLength" }, outputs: { textValueChange: "textValueChange" }, ngImport: i0, template: "<!-- RS 06JAN25 -->\r\n<div class=\"rich-text-container\">\r\n <quill-editor\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n [modules]=\"quillConfiguration\"\r\n [readOnly]=\"readOnly\"\r\n (onContentChanged)=\"onEditorChange($event)\"\r\n [class.error]=\"error\">\r\n </quill-editor>\r\n <div *ngIf=\"error\" class=\"error-message\">\r\n {{ error }}\r\n </div>\r\n</div>", styles: [".rich-text-container{width:100%;margin:10px 0}.error{border:1px solid red}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}\n"], dependencies: [{ kind: "component", type: QuillEditorComponent, selector: "quill-editor" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
146
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomRichTextComponent, isStandalone: true, selector: "app-custom-rich-text", inputs: { value: "value", placeholder: "placeholder", error: "error", question: "question", rows: "rows", readOnly: "readOnly", minLength: "minLength", maxLength: "maxLength" }, outputs: { textValueChange: "textValueChange" }, ngImport: i0, template: "<!-- RS 06JAN25 -->\r\n<div class=\"rich-text-container\">\r\n <quill-editor\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n [modules]=\"quillConfiguration\"\r\n [readOnly]=\"readOnly\"\r\n (onContentChanged)=\"onEditorChange($event)\"\r\n [class.error]=\"error\">\r\n </quill-editor>\r\n <div *ngIf=\"error\" class=\"error-message\">\r\n {{ error }}\r\n </div>\r\n</div>", styles: [".rich-text-container{width:100%;margin:10px 0}.error{border:1px solid red}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}quill-editor{width:100%}\n"], dependencies: [{ kind: "component", type: QuillEditorComponent, selector: "quill-editor" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
145
147
|
}
|
|
146
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRichTextComponent, decorators: [{
|
|
147
149
|
type: Component,
|
|
148
|
-
args: [{ imports: [QuillEditorComponent, FormsModule], selector: 'app-custom-rich-text', standalone: true, template: "<!-- RS 06JAN25 -->\r\n<div class=\"rich-text-container\">\r\n <quill-editor\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n [modules]=\"quillConfiguration\"\r\n [readOnly]=\"readOnly\"\r\n (onContentChanged)=\"onEditorChange($event)\"\r\n [class.error]=\"error\">\r\n </quill-editor>\r\n <div *ngIf=\"error\" class=\"error-message\">\r\n {{ error }}\r\n </div>\r\n</div>", styles: [".rich-text-container{width:100%;margin:10px 0}.error{border:1px solid red}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}\n"] }]
|
|
150
|
+
args: [{ imports: [QuillEditorComponent, FormsModule, CommonModule], selector: 'app-custom-rich-text', standalone: true, template: "<!-- RS 06JAN25 -->\r\n<div class=\"rich-text-container\">\r\n <quill-editor\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n [modules]=\"quillConfiguration\"\r\n [readOnly]=\"readOnly\"\r\n (onContentChanged)=\"onEditorChange($event)\"\r\n [class.error]=\"error\">\r\n </quill-editor>\r\n <div *ngIf=\"error\" class=\"error-message\">\r\n {{ error }}\r\n </div>\r\n</div>", styles: [".rich-text-container{width:100%;margin:10px 0}.error{border:1px solid red}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}quill-editor{width:100%}\n"] }]
|
|
149
151
|
}], ctorParameters: () => [{ type: i1.I18nService }, { type: i2.ChangeService }], propDecorators: { value: [{
|
|
150
152
|
type: Input
|
|
151
153
|
}], placeholder: [{
|
|
@@ -165,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
165
167
|
}], maxLength: [{
|
|
166
168
|
type: Input
|
|
167
169
|
}] } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJpY2gtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20tcmljaC10ZXh0L2N1c3RvbS1yaWNoLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJpY2gtdGV4dC9jdXN0b20tcmljaC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdGQUF3RjtBQUN4RixrQkFBa0I7QUFDbEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFLbEgsT0FBTyxFQUFFLG9CQUFvQixFQUFnQixNQUFNLFdBQVcsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxZQUFZLE1BQU0scUJBQXFCLENBQUE7Ozs7O0FBQzlDLGdCQUFnQjtBQUNoQix1RkFBdUY7QUFDdkYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsY0FBYztJQUMvRixTQUFTLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQjtJQUNoRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsV0FBVztJQUNqRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0FBRXJGLHlCQUF5QjtBQUN6QixLQUFLLENB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Qzt3R0F2RVUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsbVRDekZwQyw4WkFhTSw0Y0RxRVEsb0JBQW9CLHdEQUFFLFdBQVc7OzRGQU9sQyx1QkFBdUI7a0JBUm5DLFNBQVM7OEJBQ0csQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsWUFDbEMsc0JBQXNCLGNBQ3BCLElBQUk7NEdBTVQsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDaGFuZ2VzIGNvbW1lbnRlZCBvdXQgZHVlIHRvIEFuZ3VsYXIgdmVyc2lvbiBjb21wYXRpYmlsaXR5OyB3aWxsIGFwcGx5IGFmdGVyIHVwZ3JhZGUuXHJcbi8vIC8vIFJTIDA2SkFOMjAyNVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBPbkRlc3Ryb3ksIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5nZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGVwZW5kZW5jeU1ldGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RlcGVuZGVuY3lNZXRhJztcclxuaW1wb3J0IHsgUXVpbGxFZGl0b3JDb21wb25lbnQsIFF1aWxsTW9kdWxlcyB9IGZyb20gJ25neC1xdWlsbCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXHJcbmltcG9ydCBRdWlsbCBmcm9tICdxdWlsbCc7XHJcbmltcG9ydCB7IE1lbnRpb24gfSBmcm9tICdxdWlsbC1tZW50aW9uJztcclxuaW1wb3J0IEltYWdlUmVzaXpvciBmcm9tICdxdWlsbC1pbWFnZS1yZXNpem9yJ1xyXG4vLyBSUyAxN0pBTjIwMjUgXHJcbi8vIEFuIGFycmF5IGZvbnRGYW1pbHlBcnIgaXMgY3JlYXRlZCBjb250YWluaW5nIGEgbGlzdCBvZiBmb250IGZhbWlseSBuYW1lcyBhcyBzdHJpbmdzLlxyXG5jb25zdCBmb250RmFtaWx5QXJyID0gW1wiUm9ib3RvXCIsIFwiUm9ib3RvIENvbmRlbnNlZFwiLCBcIkFyaWFsXCIsIFwiVmVyZGFuYVwiLCBcIlRhaG9tYVwiLCBcIlRyZWJ1Y2hldCBNU1wiLFxyXG4gIFwiR2VvcmdpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIkNvdXJpZXIgTmV3XCIsIFwiUGFsYXRpbm8gTGlub3R5cGVcIixcclxuICBcIlNlZ29lIFVJXCIsIFwiQ2FsaWJyaVwiLCBcIkNhbGlicmkgTGlnaHRcIiwgXCJTYW5zLVNlcmlmXCIsIFwiSGVsdmV0aWNhXCIsXHJcbiAgXCJJbXBhY3RcIiwgXCJHYXJhbW9uZFwiLCBcIkNvbWljIFNhbnMgTVNcIiwgXCJMdWNpZGEgQ29uc29sZVwiLCBcIkZyYW5rbGluIEdvdGhpYyBNZWRpdW1cIl07XHJcblxyXG4vLyBSZWdpc3RlciBRdWlsbCBtb2R1bGVzXHJcblF1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL21lbnRpb24nLCBNZW50aW9uKTtcclxuSW1hZ2VSZXNpem9yLlF1aWxsID0gUXVpbGxcclxuUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvaW1hZ2VSZXNpem9yJywgSW1hZ2VSZXNpem9yKVxyXG5cclxuLy8gUlMgMTdKQU4yMDI1IFxyXG4vL1RoZSBRdWlsbCBmb250IHN0eWxlIGF0dHJpYnV0b3IgaXMgaW1wb3J0ZWQgYW5kIGl0IGlzIHJlZ2lzdGVyZWQgd2l0aCBRdWlsXHJcbmxldCBmb250czogYW55ID0gUXVpbGwuaW1wb3J0KFwiYXR0cmlidXRvcnMvc3R5bGUvZm9udFwiKTtcclxuZm9udHMud2hpdGVsaXN0ID0gZm9udEZhbWlseUFycjtcclxuUXVpbGwucmVnaXN0ZXIoZm9udHMsIHRydWUpO1xyXG5cclxuZXhwb3J0IGNvbnN0IFF1aWxsQ29uZmlndXJhdGlvbjogUXVpbGxNb2R1bGVzID0ge1xyXG4gICAgaW1hZ2VSZXNpem9yOiB7fSxcclxuICB0b29sYmFyOiB7XHJcbiAgICBjb250YWluZXI6IFtcclxuICAgICAgW3sgJ2ZvbnQnOiBmb250RmFtaWx5QXJyIH1dLCAgLy9SUyAxN0pBTjIwMjUgIEFkZGVkIGZvbnQgZmFtaWx5IGRyb3Bkb3duXHJcbiAgICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZSddLFxyXG4gICAgICBbJ2Jsb2NrcXVvdGUnLCAnY29kZS1ibG9jayddLFxyXG4gICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXHJcbiAgICAgIFt7IGxpc3Q6ICdvcmRlcmVkJyB9LCB7IGxpc3Q6ICdidWxsZXQnIH1dLFxyXG4gICAgICBbeyBjb2xvcjogW10gfSwgeyBiYWNrZ3JvdW5kOiBbXSB9XSxcclxuICAgICAgW3sgYWxpZ246IFtdIH1dLFxyXG4gICAgICBbJ2xpbmsnLCAnaW1hZ2UnLCAndmlkZW8nXSxcclxuICAgICAgWydmb3JtdWxhJ10sXHJcbiAgICAgIFsnY2xlYW4nXSxcclxuICAgIF0sXHJcbiAgfSxcclxuICBtZW50aW9uOiB7XHJcbiAgICBhbGxvd2VkQ2hhcnM6IC9eW0EtWmEtelxcc8OFw4TDlsOlw6TDtl0qJC8sXHJcbiAgICBtZW50aW9uRGVub3RhdGlvbkNoYXJzOiBbJ0AnLCAnIyddLFxyXG4gICAgc291cmNlOiBmdW5jdGlvbiAoc2VhcmNoVGVybTogc3RyaW5nLCByZW5kZXJMaXN0OiBhbnkpIHtcclxuICAgICAgY29uc3QgdmFsdWVzID0gW1xyXG4gICAgICAgIHsgaWQ6IDEsIHZhbHVlOiAnVXNlciAxJyB9LFxyXG4gICAgICAgIHsgaWQ6IDIsIHZhbHVlOiAnVXNlciAyJyB9LFxyXG4gICAgICBdO1xyXG5cclxuICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcmVuZGVyTGlzdCh2YWx1ZXMsIHNlYXJjaFRlcm0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSB2YWx1ZXMuZmlsdGVyKChpdGVtKSA9PlxyXG4gICAgICAgICAgaXRlbS52YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHJlbmRlckxpc3QobWF0Y2hlcywgc2VhcmNoVGVybSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuXHJcbi8vIHJlc2l6ZToge1xyXG4vLyAgICAgZGlzcGxheVNpemU6IHRydWUsXHJcbi8vICAgICBtb2R1bGVzOiBbJ1Jlc2l6ZScsICdEaXNwbGF5U2l6ZScsICdUb29sYmFyJ10sXHJcbi8vICAgICB0b29sYmFyU3R5bGVzOiB7XHJcbi8vICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnYmxhY2snLFxyXG4vLyAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxyXG4vLyAgICAgICAgIGNvbG9yOiAnd2hpdGUnXHJcbi8vICAgICB9LFxyXG4vLyAgICAgaGFuZGxlU3R5bGVzOiB7XHJcbi8vICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnYmxhY2snLFxyXG4vLyAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxyXG4vLyAgICAgICAgIGNvbG9yOiAnd2hpdGUnXHJcbi8vICAgICB9XHJcbi8vIH0sXHJcbkBDb21wb25lbnQoe1xyXG4gICAgaW1wb3J0czogW1F1aWxsRWRpdG9yQ29tcG9uZW50LCBGb3Jtc01vZHVsZV0sXHJcbiAgICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tcmljaC10ZXh0JyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXJpY2gtdGV4dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jdXN0b20tcmljaC10ZXh0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbVJpY2hUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kgeyBcclxuICBASW5wdXQoKSB2YWx1ZTogYW55IHwgYW55W10gPSAnJztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVycm9yOiBhbnk7XHJcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueTtcclxuICBASW5wdXQoKSByb3dzOk51bWJlcjsgLy9UaGUgbnVtYmVyIG9mIHZpc2libGUgdGV4dCBsaW5lcyBmb3IgdGhlIGNvbnRyb2xcclxuICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSB0ZXh0VmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KCkgbWluTGVuZ3RoPzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG1heExlbmd0aD86IG51bWJlcjtcclxuICAvLyBASW5wdXQoKSB2YWx1ZTogYW55ID0gJyc7IC8vIFNldCBkZWZhdWx0IHZhbHVlXHJcblxyXG4gIHF1aWxsQ29uZmlndXJhdGlvbjogUXVpbGxNb2R1bGVzID0gUXVpbGxDb25maWd1cmF0aW9uO1xyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uOyAgXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlU2VydmljZTogQ2hhbmdlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ1JpY2ggVGV4dCBJbml0OicsIHtcclxuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXHJcbiAgICAgIHF1ZXN0aW9uOiB0aGlzLnF1ZXN0aW9uXHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMudGV4dFZhbHVlQ2hhbmdlLmVtaXQoJycpO1xyXG5cclxuICAgIH1cclxuICAgIHRoaXMuaW5pdGlhbGl6ZURlcGVuZGVuY3koKTtcclxuICB9XHJcblxyXG4gIC8vIFNlcGFyYXRlZCBkZXBlbmRlbmN5IGluaXRpYWxpemF0aW9uIGZvciBiZXR0ZXIgb3JnYW5pemF0aW9uXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplRGVwZW5kZW5jeSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uPy5zdWJUZXh0KSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3N1YlRleHQ6JywgdGhpcy5xdWVzdGlvbi5zdWJUZXh0KTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBkZXBlbmRlbmN5T2JqOiBEZXBlbmRlbmN5TWV0YSA9IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5zdWJUZXh0KTtcclxuICAgICAgICAgICAgaWYgKGRlcGVuZGVuY3lPYmo/LnNvdXJjZVF1ZXN0aW9uSWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2VWYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQ2hhbmdlIFZhbHVlOicsIGNoYW5nZVZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICYmIGNoYW5nZVZhbHVlLnZhbHVlT2JqICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCA9PT0gZGVwZW5kZW5jeU9iai5zb3VyY2VRdWVzdGlvbklkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gY2hhbmdlVmFsdWUudmFsdWVPYmpbZGVwZW5kZW5jeU9iai52YWx1ZUZpZWxkXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dFZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLmNvbmZpcm1DaGFuZ2UoZGVwZW5kZW5jeU9iai5zb3VyY2VRdWVzdGlvbklkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBzdWJUZXh0OicsIGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5vbkVkaXRvckNoYW5nZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgaWYgKGV2ZW50ICYmIGV2ZW50Lmh0bWwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy50ZXh0VmFsdWVDaGFuZ2UuZW1pdChldmVudC5odG1sKTtcclxuICB9IGVsc2Uge1xyXG4gICAgdGhpcy50ZXh0VmFsdWVDaGFuZ2UuZW1pdCgnJyk7XHJcbiAgfVxyXG59XHJcbiAgLy8gQWRkZWQgbmdPbkRlc3Ryb3kgdG8gcHJldmVudCBtZW1vcnkgbGVha3NcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuIiwiPCEtLSBSUyAwNkpBTjI1IC0tPlxyXG48ZGl2IGNsYXNzPVwicmljaC10ZXh0LWNvbnRhaW5lclwiPlxyXG4gIDxxdWlsbC1lZGl0b3JcclxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFttb2R1bGVzXT1cInF1aWxsQ29uZmlndXJhdGlvblwiXHJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxyXG4gICAgKG9uQ29udGVudENoYW5nZWQpPVwib25FZGl0b3JDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbY2xhc3MuZXJyb3JdPVwiZXJyb3JcIj5cclxuICA8L3F1aWxsLWVkaXRvcj5cclxuICA8ZGl2ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgIHt7IGVycm9yIH19XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJpY2gtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20tcmljaC10ZXh0L2N1c3RvbS1yaWNoLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJpY2gtdGV4dC9jdXN0b20tcmljaC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdGQUF3RjtBQUN4RixrQkFBa0I7QUFDbEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFLbEgsT0FBTyxFQUFFLG9CQUFvQixFQUFnQixNQUFNLFdBQVcsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxZQUFZLE1BQU0scUJBQXFCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFFL0MsZ0JBQWdCO0FBQ2hCLHVGQUF1RjtBQUN2RixNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjO0lBQy9GLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsbUJBQW1CO0lBQ2hFLFVBQVUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXO0lBQ2pFLFFBQVEsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFF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WUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO3dHQXZFVSx1QkFBdUI7NEZBQXZCLHVCQUF1QixtVEMzRnBDLDhaQWFNLG9lRHVFUSxvQkFBb0Isd0RBQUUsV0FBVyw4VkFBRSxZQUFZOzs0RkFPaEQsdUJBQXVCO2tCQVJuQyxTQUFTOzhCQUNHLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxZQUNoRCxzQkFBc0IsY0FDcEIsSUFBSTs0R0FNVCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENoYW5nZXMgY29tbWVudGVkIG91dCBkdWUgdG8gQW5ndWxhciB2ZXJzaW9uIGNvbXBhdGliaWxpdHk7IHdpbGwgYXBwbHkgYWZ0ZXIgdXBncmFkZS5cclxuLy8gLy8gUlMgMDZKQU4yMDI1XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIE9uRGVzdHJveSwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXBlbmRlbmN5TWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGVwZW5kZW5jeU1ldGEnO1xyXG5pbXBvcnQgeyBRdWlsbEVkaXRvckNvbXBvbmVudCwgUXVpbGxNb2R1bGVzIH0gZnJvbSAnbmd4LXF1aWxsJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcclxuaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcclxuaW1wb3J0IHsgTWVudGlvbiB9IGZyb20gJ3F1aWxsLW1lbnRpb24nO1xyXG5pbXBvcnQgSW1hZ2VSZXNpem9yIGZyb20gJ3F1aWxsLWltYWdlLXJlc2l6b3InXHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG4vLyBSUyAxN0pBTjIwMjUgXHJcbi8vIEFuIGFycmF5IGZvbnRGYW1pbHlBcnIgaXMgY3JlYXRlZCBjb250YWluaW5nIGEgbGlzdCBvZiBmb250IGZhbWlseSBuYW1lcyBhcyBzdHJpbmdzLlxyXG5jb25zdCBmb250RmFtaWx5QXJyID0gW1wiUm9ib3RvXCIsIFwiUm9ib3RvIENvbmRlbnNlZFwiLCBcIkFyaWFsXCIsIFwiVmVyZGFuYVwiLCBcIlRhaG9tYVwiLCBcIlRyZWJ1Y2hldCBNU1wiLFxyXG4gIFwiR2VvcmdpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIkNvdXJpZXIgTmV3XCIsIFwiUGFsYXRpbm8gTGlub3R5cGVcIixcclxuICBcIlNlZ29lIFVJXCIsIFwiQ2FsaWJyaVwiLCBcIkNhbGlicmkgTGlnaHRcIiwgXCJTYW5zLVNlcmlmXCIsIFwiSGVsdmV0aWNhXCIsXHJcbiAgXCJJbXBhY3RcIiwgXCJHYXJhbW9uZFwiLCBcIkNvbWljIFNhbnMgTVNcIiwgXCJMdWNpZGEgQ29uc29sZVwiLCBcIkZyYW5rbGluIEdvdGhpYyBNZWRpdW1cIl07XHJcblxyXG4vLyBSZWdpc3RlciBRdWlsbCBtb2R1bGVzXHJcblF1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL21lbnRpb24nLCBNZW50aW9uKTtcclxuSW1hZ2VSZXNpem9yLlF1aWxsID0gUXVpbGxcclxuUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvaW1hZ2VSZXNpem9yJywgSW1hZ2VSZXNpem9yKVxyXG5cclxuLy8gUlMgMTdKQU4yMDI1IFxyXG4vL1RoZSBRdWlsbCBmb250IHN0eWxlIGF0dHJpYnV0b3IgaXMgaW1wb3J0ZWQgYW5kIGl0IGlzIHJlZ2lzdGVyZWQgd2l0aCBRdWlsXHJcbmxldCBmb250czogYW55ID0gUXVpbGwuaW1wb3J0KFwiYXR0cmlidXRvcnMvc3R5bGUvZm9udFwiKTtcclxuZm9udHMud2hpdGVsaXN0ID0gZm9udEZhbWlseUFycjtcclxuUXVpbGwucmVnaXN0ZXIoZm9udHMsIHRydWUpO1xyXG5cclxuZXhwb3J0IGNvbnN0IFF1aWxsQ29uZmlndXJhdGlvbjogUXVpbGxNb2R1bGVzID0ge1xyXG4gICAgaW1hZ2VSZXNpem9yOiB7fSxcclxuICB0b29sYmFyOiB7XHJcbiAgICBjb250YWluZXI6IFtcclxuICAgICAgW3sgJ2ZvbnQnOiBmb250RmFtaWx5QXJyIH1dLCAgLy9SUyAxN0pBTjIwMjUgIEFkZGVkIGZvbnQgZmFtaWx5IGRyb3Bkb3duXHJcbiAgICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZSddLFxyXG4gICAgICBbJ2Jsb2NrcXVvdGUnLCAnY29kZS1ibG9jayddLFxyXG4gICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXHJcbiAgICAgIFt7IGxpc3Q6ICdvcmRlcmVkJyB9LCB7IGxpc3Q6ICdidWxsZXQnIH1dLFxyXG4gICAgICBbeyBjb2xvcjogW10gfSwgeyBiYWNrZ3JvdW5kOiBbXSB9XSxcclxuICAgICAgW3sgYWxpZ246IFtdIH1dLFxyXG4gICAgICBbJ2xpbmsnLCAnaW1hZ2UnLCAndmlkZW8nXSxcclxuICAgICAgWydmb3JtdWxhJ10sXHJcbiAgICAgIFsnY2xlYW4nXSxcclxuICAgIF0sXHJcbiAgfSxcclxuICBtZW50aW9uOiB7XHJcbiAgICBhbGxvd2VkQ2hhcnM6IC9eW0EtWmEtelxcc8OFw4TDlsOlw6TDtl0qJC8sXHJcbiAgICBtZW50aW9uRGVub3RhdGlvbkNoYXJzOiBbJ0AnLCAnIyddLFxyXG4gICAgc291cmNlOiBmdW5jdGlvbiAoc2VhcmNoVGVybTogc3RyaW5nLCByZW5kZXJMaXN0OiBhbnkpIHtcclxuICAgICAgY29uc3QgdmFsdWVzID0gW1xyXG4gICAgICAgIHsgaWQ6IDEsIHZhbHVlOiAnVXNlciAxJyB9LFxyXG4gICAgICAgIHsgaWQ6IDIsIHZhbHVlOiAnVXNlciAyJyB9LFxyXG4gICAgICBdO1xyXG5cclxuICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcmVuZGVyTGlzdCh2YWx1ZXMsIHNlYXJjaFRlcm0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSB2YWx1ZXMuZmlsdGVyKChpdGVtKSA9PlxyXG4gICAgICAgICAgaXRlbS52YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHJlbmRlckxpc3QobWF0Y2hlcywgc2VhcmNoVGVybSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuXHJcbi8vIHJlc2l6ZToge1xyXG4vLyAgICAgZGlzcGxheVNpemU6IHRydWUsXHJcbi8vICAgICBtb2R1bGVzOiBbJ1Jlc2l6ZScsICdEaXNwbGF5U2l6ZScsICdUb29sYmFyJ10sXHJcbi8vICAgICB0b29sYmFyU3R5bGVzOiB7XHJcbi8vICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnYmxhY2snLFxyXG4vLyAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxyXG4vLyAgICAgICAgIGNvbG9yOiAnd2hpdGUnXHJcbi8vICAgICB9LFxyXG4vLyAgICAgaGFuZGxlU3R5bGVzOiB7XHJcbi8vICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnYmxhY2snLFxyXG4vLyAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxyXG4vLyAgICAgICAgIGNvbG9yOiAnd2hpdGUnXHJcbi8vICAgICB9XHJcbi8vIH0sXHJcbkBDb21wb25lbnQoe1xyXG4gICAgaW1wb3J0czogW1F1aWxsRWRpdG9yQ29tcG9uZW50LCBGb3Jtc01vZHVsZSAsQ29tbW9uTW9kdWxlXSxcclxuICAgIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1yaWNoLXRleHQnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tcmljaC10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2N1c3RvbS1yaWNoLXRleHQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmljaFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxyXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnkgfCBhbnlbXSA9ICcnO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZXJyb3I6IGFueTtcclxuICBASW5wdXQoKSBxdWVzdGlvbjogYW55O1xyXG4gIEBJbnB1dCgpIHJvd3M6TnVtYmVyOyAvL1RoZSBudW1iZXIgb2YgdmlzaWJsZSB0ZXh0IGxpbmVzIGZvciB0aGUgY29udHJvbFxyXG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHRleHRWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBASW5wdXQoKSBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIC8vIEBJbnB1dCgpIHZhbHVlOiBhbnkgPSAnJzsgLy8gU2V0IGRlZmF1bHQgdmFsdWVcclxuXHJcbiAgcXVpbGxDb25maWd1cmF0aW9uOiBRdWlsbE1vZHVsZXMgPSBRdWlsbENvbmZpZ3VyYXRpb247XHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247ICBcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VTZXJ2aWNlOiBDaGFuZ2VTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZygnUmljaCBUZXh0IEluaXQ6Jywge1xyXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcclxuICAgICAgcXVlc3Rpb246IHRoaXMucXVlc3Rpb25cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy50ZXh0VmFsdWVDaGFuZ2UuZW1pdCgnJyk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0aWFsaXplRGVwZW5kZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gU2VwYXJhdGVkIGRlcGVuZGVuY3kgaW5pdGlhbGl6YXRpb24gZm9yIGJldHRlciBvcmdhbml6YXRpb25cclxuICBwcml2YXRlIGluaXRpYWxpemVEZXBlbmRlbmN5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24/LnN1YlRleHQpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnc3ViVGV4dDonLCB0aGlzLnF1ZXN0aW9uLnN1YlRleHQpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlcGVuZGVuY3lPYmo6IERlcGVuZGVuY3lNZXRhID0gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLnN1YlRleHQpO1xyXG4gICAgICAgICAgICBpZiAoZGVwZW5kZW5jeU9iaj8uc291cmNlUXVlc3Rpb25JZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNoYW5nZVNlcnZpY2UuY2hhbmdlQW5ub3VuY2VkJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZVZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDaGFuZ2UgVmFsdWU6JywgY2hhbmdlVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUgJiYgY2hhbmdlVmFsdWUudmFsdWVPYmogJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkID09PSBkZXBlbmRlbmN5T2JqLnNvdXJjZVF1ZXN0aW9uSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBjaGFuZ2VWYWx1ZS52YWx1ZU9ialtkZXBlbmRlbmN5T2JqLnZhbHVlRmllbGRdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0VmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVNlcnZpY2UuY29uZmlybUNoYW5nZShkZXBlbmRlbmN5T2JqLnNvdXJjZVF1ZXN0aW9uSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIHN1YlRleHQ6JywgZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbm9uRWRpdG9yQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICBpZiAoZXZlbnQgJiYgZXZlbnQuaHRtbCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLnRleHRWYWx1ZUNoYW5nZS5lbWl0KGV2ZW50Lmh0bWwpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnRleHRWYWx1ZUNoYW5nZS5lbWl0KCcnKTtcclxuICB9XHJcbn1cclxuICAvLyBBZGRlZCBuZ09uRGVzdHJveSB0byBwcmV2ZW50IG1lbW9yeSBsZWFrc1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8IS0tIFJTIDA2SkFOMjUgLS0+XHJcbjxkaXYgY2xhc3M9XCJyaWNoLXRleHQtY29udGFpbmVyXCI+XHJcbiAgPHF1aWxsLWVkaXRvclxyXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgW21vZHVsZXNdPVwicXVpbGxDb25maWd1cmF0aW9uXCJcclxuICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXHJcbiAgICAob25Db250ZW50Q2hhbmdlZCk9XCJvbkVkaXRvckNoYW5nZSgkZXZlbnQpXCJcclxuICAgIFtjbGFzcy5lcnJvcl09XCJlcnJvclwiPlxyXG4gIDwvcXVpbGwtZWRpdG9yPlxyXG4gIDxkaXYgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxyXG4gICAge3sgZXJyb3IgfX1cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -25,7 +25,6 @@ export class FileUploadComponent {
|
|
|
25
25
|
maxFileSize = 0; // in bytes(Binary)
|
|
26
26
|
maxFiles = 4; // default limit
|
|
27
27
|
validationErrors = [];
|
|
28
|
-
isTooltipVisible = false;
|
|
29
28
|
selectedFileNameArray = [];
|
|
30
29
|
copyOfInputAllFiles;
|
|
31
30
|
copyOfFileUploadingLimit;
|
|
@@ -253,11 +252,11 @@ export class FileUploadComponent {
|
|
|
253
252
|
}
|
|
254
253
|
}
|
|
255
254
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.SharedService }, { token: i2.DataService }, { token: i3.DomSanitizer }, { token: i4.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
256
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FileUploadComponent, selector: "app-file-upload", inputs: { allFiles: "allFiles", limitFileUploading: "limitFileUploading", isDeleteFileButtonVisible: "isDeleteFileButtonVisible", isShowNoFileIcon: "isShowNoFileIcon", tableFile: "tableFile", question: "question", error: "error" }, outputs: { selectedFileData: "selectedFileData", deletedFileData: "deletedFileData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\" style=\"margin: 0;\">\r\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\r\n <!-- HA 19DEC23 For translation -->\r\n <label class=\"she-label\">{{ 'attachment' | i18n:i18nService.currentLanguage }}</label>\r\n </div>\r\n\r\n
|
|
255
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FileUploadComponent, selector: "app-file-upload", inputs: { allFiles: "allFiles", limitFileUploading: "limitFileUploading", isDeleteFileButtonVisible: "isDeleteFileButtonVisible", isShowNoFileIcon: "isShowNoFileIcon", tableFile: "tableFile", question: "question", error: "error" }, outputs: { selectedFileData: "selectedFileData", deletedFileData: "deletedFileData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\" style=\"margin: 0;\">\r\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\r\n <!-- HA 19DEC23 For translation -->\r\n <label class=\"she-label\">{{ 'attachment' | i18n:i18nService.currentLanguage }}</label>\r\n </div>\r\n\r\n <div class=\"col-lg-5 document-cnt m-t-10 m-b-10\"\r\n *ngFor=\"let eachFile of copyOfInputAllFiles; let currentFileIndex = index\">\r\n <div *ngIf=\"!tableFile\"> <!-- (click)=\"viewFile(eachFile)\" -->\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(eachFile?.name)\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\">\r\n {{eachFile?.name}}\r\n </div>\r\n <div class=\"document_delete\" (click)=\"deleteFile(currentFileIndex);$event.stopPropagation()\" *ngIf=\"isDeleteFileButtonVisible\">\r\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/bin.svg\">\r\n </div>\r\n <!-- VD 20May24 - preview changes-->\r\n <div class=\"preview-icon\" (click)=\"viewFile(eachFile)\" *ngIf=\"isDeleteFileButtonVisible\">\r\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/icons8-eye-24.png\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"tableFile\" class=\"row\" style=\"cursor: pointer;\">\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(eachFile?.doc)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\r\n {{eachFile?.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"copyOfInputAllFiles?.length === 0 && isShowNoFileIcon\">\r\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\r\n </div>\r\n</div>\r\n\r\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\r\n <label class=\"custom-file\" *ngIf=\"isDeleteFileButtonVisible && !tableFile\">\r\n <!-- HA 19DEC23 For translation -->\r\n <!-- VD 03May24 file upload fix-->\r\n <!-- RS 09JAN2025 -->\r\n <button [class]=\"error ? 'she-btn-primary-bordered Invalid' : 'she-btn-primary-bordered'\" style=\"width:275px;\" (click)=\"fileInput.click()\"[ngClass]=\"{ 'btn-disabled': copyOfInputAllFiles?.length >= maxFiles }\" [disabled]=\"copyOfInputAllFiles?.length >= maxFiles\">Choose Files</button>\r\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" [accept]=\"allowedFileTypes.join(',')\"\r\n style=\"display:none;\"\r\n (change) = uploadMultipleFiles($event)\r\n />\r\n </label>\r\n\r\n <!-- RS 09JAN2025 -->\r\n <!-- Error messages section -->\r\n <div class=\"file-constraints\" *ngIf=\"validationErrors.length > 0\">\r\n <small class=\"text-danger\">\r\n <div *ngFor=\"let error of validationErrors\">{{ error }}</div>\r\n </small>\r\n </div>\r\n\r\n<!-- HA 19DEC23 For translation -->\r\n <label *ngIf=\"tableFile\" class=\"btn btn-primary\">\r\n {{ 'uploadFile' | i18n:i18nService.currentLanguage }}\r\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)= uploadMultipleFiles($event) />\r\n </label>\r\n <!-- <span class=\"error-msg\" *ngIf=\"(formControl?.documents?.touched || formControl?.documents?.dirty) &&\r\n formControl?.documents?.errors?.required\">\r\n {{LM_POLICY_VALIDATION_MESSAGE.REQUIRED}}\r\n </span> -->\r\n <!-- RS 09DEC24 Changed keys--> \r\n</div>\r\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.errorMessage}}</div>\r\n<div class=\"nxt-file-overlay\" *ngIf=\"showFile\">\r\n <div class=\"nxt-file-map-modal\">\r\n <div class=\"nxt-file-model-content\">\r\n <div class=\"nxt-file-model-header\">\r\n <h4>{{fileName}}</h4>\r\n <button class=\"close-button\" (click)=\"close()\">X</button>\r\n </div>\r\n <ng-container *ngIf=\"isImage; else otherFile\">\r\n <img [src]=\"fileUrl\" class=\"img-fluid\" alt=\"File Preview\" />\r\n </ng-container>\r\n <ng-template #otherFile>\r\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".document-cnt{padding:10px;border:1px solid #ccc;border-radius:5px;background-color:#f9f9f9;margin-bottom:10px;cursor:pointer;transition:background-color .3s ease;position:relative}.document-cnt:hover{background-color:#e9ecef}.document_image img{width:30px;height:30px}.document_name{font-size:14px;font-weight:700;color:#333;line-height:30px}.label{margin-bottom:0}.document_delete img,.preview-icon img{width:20px;height:20px;cursor:pointer;transition:transform .3s ease}.document_delete img{filter:brightness(0) saturate(100%) invert(20%) sepia(97%) saturate(7481%) hue-rotate(357deg) brightness(98%) contrast(119%)}.document_delete img:hover,.preview-icon img:hover{transform:scale(1.1)}.document_delete,.preview-icon{position:absolute;top:50%;transform:translateY(-50%)}.document_delete{right:10px}.preview-icon{right:40px}@media (min-width: 992px){.document-cnt{margin-left:10px}}.btn-disabled{background:#e1e1e1;color:#fff;border:none;border-radius:5px;height:50px}.form-control[disabled]{border-radius:5px}.custom-file{color:#9a9a9a;font-size:14px;font-weight:400;display:inline-block;width:auto;margin-bottom:5px}.she-btn-primary-bordered{background:#fff;color:#48b7ff;border:1px solid #48B7FF;border-radius:5px;height:50px;outline:none!important}.btn-primary{background-color:#03a9f4!important;border:1px solid #03a9f4!important;color:#fff!important}.btn.btn-primary{border-radius:2px;padding:6px 14px;font-size:14px}.nxt-file-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.nxt-file-map-modal{background-color:#fff;border-radius:8px;overflow:hidden;width:80%;max-width:800px;max-height:90%;display:flex;flex-direction:column}.nxt-file-model-content{display:flex;flex-direction:column;height:100%}.nxt-file-model-header{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background-color:#f5f5f5;border-bottom:1px solid #ddd}.nxt-file-model-header h4{margin:0;font-size:1.25em}.close-button{background:none;border:none;font-size:1.5em;cursor:pointer}.img-fluid{max-width:100%;height:auto;flex:1}iframe{border:none}.Invalid{border:1px solid red!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.I18nPipe, name: "i18n" }] });
|
|
257
256
|
}
|
|
258
257
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
259
258
|
type: Component,
|
|
260
|
-
args: [{ selector: 'app-file-upload', template: "<div class=\"row\" style=\"margin: 0;\">\r\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\r\n <!-- HA 19DEC23 For translation -->\r\n <label class=\"she-label\">{{ 'attachment' | i18n:i18nService.currentLanguage }}</label>\r\n </div>\r\n\r\n
|
|
259
|
+
args: [{ selector: 'app-file-upload', template: "<div class=\"row\" style=\"margin: 0;\">\r\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\r\n <!-- HA 19DEC23 For translation -->\r\n <label class=\"she-label\">{{ 'attachment' | i18n:i18nService.currentLanguage }}</label>\r\n </div>\r\n\r\n <div class=\"col-lg-5 document-cnt m-t-10 m-b-10\"\r\n *ngFor=\"let eachFile of copyOfInputAllFiles; let currentFileIndex = index\">\r\n <div *ngIf=\"!tableFile\"> <!-- (click)=\"viewFile(eachFile)\" -->\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(eachFile?.name)\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\">\r\n {{eachFile?.name}}\r\n </div>\r\n <div class=\"document_delete\" (click)=\"deleteFile(currentFileIndex);$event.stopPropagation()\" *ngIf=\"isDeleteFileButtonVisible\">\r\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/bin.svg\">\r\n </div>\r\n <!-- VD 20May24 - preview changes-->\r\n <div class=\"preview-icon\" (click)=\"viewFile(eachFile)\" *ngIf=\"isDeleteFileButtonVisible\">\r\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/icons8-eye-24.png\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"tableFile\" class=\"row\" style=\"cursor: pointer;\">\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(eachFile?.doc)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\r\n {{eachFile?.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"copyOfInputAllFiles?.length === 0 && isShowNoFileIcon\">\r\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\r\n </div>\r\n</div>\r\n\r\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\r\n <label class=\"custom-file\" *ngIf=\"isDeleteFileButtonVisible && !tableFile\">\r\n <!-- HA 19DEC23 For translation -->\r\n <!-- VD 03May24 file upload fix-->\r\n <!-- RS 09JAN2025 -->\r\n <button [class]=\"error ? 'she-btn-primary-bordered Invalid' : 'she-btn-primary-bordered'\" style=\"width:275px;\" (click)=\"fileInput.click()\"[ngClass]=\"{ 'btn-disabled': copyOfInputAllFiles?.length >= maxFiles }\" [disabled]=\"copyOfInputAllFiles?.length >= maxFiles\">Choose Files</button>\r\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" [accept]=\"allowedFileTypes.join(',')\"\r\n style=\"display:none;\"\r\n (change) = uploadMultipleFiles($event)\r\n />\r\n </label>\r\n\r\n <!-- RS 09JAN2025 -->\r\n <!-- Error messages section -->\r\n <div class=\"file-constraints\" *ngIf=\"validationErrors.length > 0\">\r\n <small class=\"text-danger\">\r\n <div *ngFor=\"let error of validationErrors\">{{ error }}</div>\r\n </small>\r\n </div>\r\n\r\n<!-- HA 19DEC23 For translation -->\r\n <label *ngIf=\"tableFile\" class=\"btn btn-primary\">\r\n {{ 'uploadFile' | i18n:i18nService.currentLanguage }}\r\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)= uploadMultipleFiles($event) />\r\n </label>\r\n <!-- <span class=\"error-msg\" *ngIf=\"(formControl?.documents?.touched || formControl?.documents?.dirty) &&\r\n formControl?.documents?.errors?.required\">\r\n {{LM_POLICY_VALIDATION_MESSAGE.REQUIRED}}\r\n </span> -->\r\n <!-- RS 09DEC24 Changed keys--> \r\n</div>\r\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.errorMessage}}</div>\r\n<div class=\"nxt-file-overlay\" *ngIf=\"showFile\">\r\n <div class=\"nxt-file-map-modal\">\r\n <div class=\"nxt-file-model-content\">\r\n <div class=\"nxt-file-model-header\">\r\n <h4>{{fileName}}</h4>\r\n <button class=\"close-button\" (click)=\"close()\">X</button>\r\n </div>\r\n <ng-container *ngIf=\"isImage; else otherFile\">\r\n <img [src]=\"fileUrl\" class=\"img-fluid\" alt=\"File Preview\" />\r\n </ng-container>\r\n <ng-template #otherFile>\r\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".document-cnt{padding:10px;border:1px solid #ccc;border-radius:5px;background-color:#f9f9f9;margin-bottom:10px;cursor:pointer;transition:background-color .3s ease;position:relative}.document-cnt:hover{background-color:#e9ecef}.document_image img{width:30px;height:30px}.document_name{font-size:14px;font-weight:700;color:#333;line-height:30px}.label{margin-bottom:0}.document_delete img,.preview-icon img{width:20px;height:20px;cursor:pointer;transition:transform .3s ease}.document_delete img{filter:brightness(0) saturate(100%) invert(20%) sepia(97%) saturate(7481%) hue-rotate(357deg) brightness(98%) contrast(119%)}.document_delete img:hover,.preview-icon img:hover{transform:scale(1.1)}.document_delete,.preview-icon{position:absolute;top:50%;transform:translateY(-50%)}.document_delete{right:10px}.preview-icon{right:40px}@media (min-width: 992px){.document-cnt{margin-left:10px}}.btn-disabled{background:#e1e1e1;color:#fff;border:none;border-radius:5px;height:50px}.form-control[disabled]{border-radius:5px}.custom-file{color:#9a9a9a;font-size:14px;font-weight:400;display:inline-block;width:auto;margin-bottom:5px}.she-btn-primary-bordered{background:#fff;color:#48b7ff;border:1px solid #48B7FF;border-radius:5px;height:50px;outline:none!important}.btn-primary{background-color:#03a9f4!important;border:1px solid #03a9f4!important;color:#fff!important}.btn.btn-primary{border-radius:2px;padding:6px 14px;font-size:14px}.nxt-file-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.nxt-file-map-modal{background-color:#fff;border-radius:8px;overflow:hidden;width:80%;max-width:800px;max-height:90%;display:flex;flex-direction:column}.nxt-file-model-content{display:flex;flex-direction:column;height:100%}.nxt-file-model-header{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background-color:#f5f5f5;border-bottom:1px solid #ddd}.nxt-file-model-header h4{margin:0;font-size:1.25em}.close-button{background:none;border:none;font-size:1.5em;cursor:pointer}.img-fluid{max-width:100%;height:auto;flex:1}iframe{border:none}.Invalid{border:1px solid red!important}\n"] }]
|
|
261
260
|
}], ctorParameters: () => [{ type: i1.SharedService }, { type: i2.DataService }, { type: i3.DomSanitizer }, { type: i4.I18nService }], propDecorators: { selectedFileData: [{
|
|
262
261
|
type: Output
|
|
263
262
|
}], deletedFileData: [{
|
|
@@ -277,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
277
276
|
}], error: [{
|
|
278
277
|
type: Input
|
|
279
278
|
}] } });
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBc0MsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBV2pILE1BQU0sT0FBTyxtQkFBbUI7SUEwQlY7SUFBdUM7SUFBaUM7SUFDbkY7SUExQkMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUM3QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxRQUFRLENBQUM7SUFDVCxrQkFBa0IsQ0FBQztJQUNuQix5QkFBeUIsQ0FBQztJQUMxQixnQkFBZ0IsQ0FBQztJQUNqQixTQUFTLENBQUMsQ0FBRSx5QkFBeUI7SUFDckMsUUFBUSxDQUFDO0lBQ1QsS0FBSyxDQUFLO0lBQ3JCLGNBQWM7SUFDTCxnQkFBZ0IsR0FBYSxFQUFFLENBQUM7SUFDaEMsV0FBVyxHQUFXLENBQUMsQ0FBQyxDQUFFLG1CQUFtQjtJQUM3QyxRQUFRLEdBQVcsQ0FBQyxDQUFDLENBQUssZ0JBQWdCO0lBQzFDLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUN2QyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFHbEIscUJBQXFCLEdBQWEsRUFBRSxDQUFDO0lBQ3JDLG1CQUFtQixDQUFDO0lBQ3BCLHdCQUF3QixDQUFDO0lBQ3pCLE9BQU8sQ0FBQztJQUNSLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsT0FBTyxH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QjtzQkFBMUIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCxPdXRwdXQsRXZlbnRFbWl0dGVyLCBJbnB1dCAsRWxlbWVudFJlZiwgT25DaGFuZ2VzLFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLyBIQSAxOURFQzIzIGltcG9ydGVkIHRyYW5zbGF0aW9uIHNlcnZpY2VcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2hhcmVkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZpbGUtdXBsb2FkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkNoYW5nZXMge1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZEZpbGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuICBAT3V0cHV0KCkgZGVsZXRlZEZpbGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KCkgYWxsRmlsZXM7XHJcbiAgQElucHV0KCkgbGltaXRGaWxlVXBsb2FkaW5nO1xyXG4gIEBJbnB1dCgpIGlzRGVsZXRlRmlsZUJ1dHRvblZpc2libGU7XHJcbiAgQElucHV0KCkgaXNTaG93Tm9GaWxlSWNvbjtcclxuICBASW5wdXQoKSB0YWJsZUZpbGU7ICAvLyBmaWxlIFVwbG9hZCBmcm9tIHRhYmxlXHJcbiAgQElucHV0KCkgcXVlc3Rpb247XHJcbiAgQElucHV0KCkgZXJyb3I6YW55O1xyXG4vL1JTIDA5SkFOMjAyNVxyXG4gIHB1YmxpYyBhbGxvd2VkRmlsZVR5cGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHB1YmxpYyBtYXhGaWxlU2l6ZTogbnVtYmVyID0gMDsgIC8vIGluIGJ5dGVzKEJpbmFyeSlcclxuICBwdWJsaWMgbWF4RmlsZXM6IG51bWJlciA9IDQ7ICAgICAvLyBkZWZhdWx0IGxpbWl0XHJcbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgaXNUb29sdGlwVmlzaWJsZSA9IGZhbHNlO1xyXG4gXHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZEZpbGVOYW1lQXJyYXk6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIGNvcHlPZklucHV0QWxsRmlsZXM7XHJcbiAgcHVibGljIGNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdDtcclxuICBwdWJsaWMgZmlsZVVybDtcclxuICBwdWJsaWMgc2hvd0ZpbGUgPSBmYWxzZTtcclxuICBwdWJsaWMgaXNJbWFnZSA9IGZhbHNlO1xyXG4gIHB1YmxpYyBmaWxlTmFtZSA9ICcnO1xyXG4gIGN1cnJlbnRGaWxlOiBhbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBTaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLCAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UscHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2VcclxuICApIHsgfVxyXG4gIC8vUlMgMDlKQU4yMDI1XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVGaWxlQ29uZmlncygpO1xyXG4gICB9XHJcbiAgLy8gVkQgMDNNYXkyNCBmaWxlIHVwbG9hZCBmaXhcclxuICAvLyBvbkZpbGVVcGxvYWQoZXZlbnQ6IGFueSkge1xyXG4gIC8vICAgY29uc3QgZmlsZVVwbG9hZGVyRWxlbWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAvLyAgICAgJ2ZpbGVVcGxvYWQnXHJcbiAgLy8gICApIGFzIEhUTUxFbGVtZW50O1xyXG4gIC8vICAgZmlsZVVwbG9hZGVyRWxlbWVudC5jbGljaygpO1xyXG4gIC8vIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc29sZS5sb2coJ3NpbXBsZSBjaGFuZ2VzJywgc2ltcGxlQ2hhbmdlcyk7XHJcbiAgICBpZiAoc2ltcGxlQ2hhbmdlcy5hbGxGaWxlcykgeyAgLy9TS1M1Tk9WMjVcclxuICAgICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID0gc2ltcGxlQ2hhbmdlcy5hbGxGaWxlcy5jdXJyZW50VmFsdWUgfHwgW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNpbXBsZUNoYW5nZXMubGltaXRGaWxlVXBsb2FkaW5nKSB7XHJcbiAgICAgIHRoaXMuY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0ID0gc2ltcGxlQ2hhbmdlcy5saW1pdEZpbGVVcGxvYWRpbmc/LmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvL1JTIDA5SkFOMjAyNSBJbml0aWFsaXplcyBmaWxlIHVwbG9hZCBzZXR0aW5ncyAoYWxsb3dlZCB0eXBlcywgbWF4IHNpemUsIGFuZCBtYXggZmlsZXMpIGJ5IHBhcnNpbmcgbWV0YWRhdGEgZnJvbSBmaWVsZHNNZXRhXHJcbiAgIGluaXRpYWxpemVGaWxlQ29uZmlncygpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uPy5maWVsZHNNZXRhKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgbWV0YURhdGEgPSBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uZmllbGRzTWV0YSk7XHJcbiAgICAgICAgY29uc3QgZmlsZUNvbmZpZyA9IG1ldGFEYXRhWzBdOyAgLy8gR2V0IGZpcnN0IGNvbmZpZyBvYmplY3RcclxuICAgICAgICBpZiAoZmlsZUNvbmZpZykge1xyXG4gICAgICAgICAgdGhpcy5hbGxvd2VkRmlsZVR5cGVzID0gZmlsZUNvbmZpZy5hbGxvd2VkVHlwZXMgfHwgW107XHJcbiAgICAgICAgICB0aGlzLm1heEZpbGVTaXplID0gZmlsZUNvbmZpZy5tYXhGaWxlU2l6ZSB8fCAwO1xyXG4gICAgICAgICAgdGhpcy5tYXhGaWxlcyA9IGZpbGVDb25maWcubWF4RmlsZXMgfHwgNTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBmaWVsZHNNZXRhOicsIGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBsb2FkTXVsdGlwbGVGaWxlcyhldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnRmlsZSB1cGxvYWRlciBpbml0aWF0ZWQnKTtcclxuICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdOyAvLyBSUyAxN0pBTjIwMjUgQ2xlYXIgcHJldmlvdXMgZXJyb3JzXHJcbiAgICBsZXQgaW5wdXRGaWxlczogYW55W10gPSB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPyB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgOiBbXTtcclxuICAgIGNvbnN0IHNlbGVjdGVkRmlsZURhdGEgPSBbXTtcclxuICAgIGNvbnN0IHVwbG9hZGVkRmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XHJcblxyXG4gICAgLy8gUlMgMDlKQU4yMDI1IENoZWNrIGZpbGUgY291bnQgbGltaXRcclxuICAgIGlmICh1cGxvYWRlZEZpbGVzLmxlbmd0aCArIGlucHV0RmlsZXMubGVuZ3RoID4gdGhpcy5tYXhGaWxlcykge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaChgTWF4aW11bSAke3RoaXMubWF4RmlsZXN9IGZpbGVzIGFsbG93ZWRgKTtcclxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZWFkRmlsZXNQcm9taXNlcyA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3QgZWFjaFVwbG9hZGVkRmlsZSBvZiB1cGxvYWRlZEZpbGVzKSB7XHJcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBlYWNoVXBsb2FkZWRGaWxlO1xyXG4gICAgICBcclxuICAgICAgLy9SUyAwOUpBTjIwMjUgQ2hlY2sgZmlsZSB0eXBlXHJcbiAgICAgIGNvbnN0IGZpbGVFeHQgPSAnLicgKyBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBpZiAodGhpcy5hbGxvd2VkRmlsZVR5cGVzLmxlbmd0aCA+IDAgJiYgIXRoaXMuYWxsb3dlZEZpbGVUeXBlcy5pbmNsdWRlcyhmaWxlRXh0KSkge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKGBGaWxlIHR5cGUgJHtmaWxlRXh0fSBub3QgYWxsb3dlZC4gQWxsb3dlZCB0eXBlczogJHt0aGlzLmFsbG93ZWRGaWxlVHlwZXMuam9pbignLCAnKX1gKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy9SUyAwOUpBTjIwMjUgQ2hlY2sgZmlsZSBzaXplXHJcbiAgICAgIGlmICh0aGlzLm1heEZpbGVTaXplID4gMCAmJiBmaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplKSB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYEZpbGUgXCIke2ZpbGUubmFtZX1cIiBleGNlZWRzIHNpemUgbGltaXQgb2YgJHt0aGlzLm1heEZpbGVTaXplIC8gMTA0ODU3Nn1NQmApO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBmb3JtYXQgPSBmaWxlRXh0LnN1YnN0cmluZygxKTtcclxuICAgICAgICBjb25zdCBmaWxlUmVhZFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgXHJcbiAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlRGF0YSA9IHtcclxuICAgICAgICAgICAgICBkb2M6IHJlYWRlci5yZXN1bHQsXHJcbiAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcclxuICAgICAgICAgICAgICBmb3JtYXQsXHJcbiAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLCAvLyBSUyAxN0pBTjIwMjUgXHJcbiAgICAgICAgICAgICAgaWQ6IG51bGwsXHJcbiAgICAgICAgICAgIH07XHJcbiAgXHJcbiAgICAgICAgICAgIHNlbGVjdGVkRmlsZURhdGEucHVzaChmaWxlRGF0YSk7XHJcbiAgICAgICAgICAgIGlucHV0RmlsZXMucHVzaChmaWxlRGF0YSk7XHJcbiAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgIH07XHJcbiAgXHJcbiAgICAgICAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgICAgICAgcmVqZWN0KCk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKGBFcnJvciByZWFkaW5nIGZpbGUgXCIke2ZpbGUubmFtZX1cImApOy8vIFJTIDE3SkFOMjAyNSBcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmVhZEZpbGVzUHJvbWlzZXMucHVzaChmaWxlUmVhZFByb21pc2UpOyAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG4gICAgaWYgKHJlYWRGaWxlc1Byb21pc2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgLy8gV2FpdCBmb3IgYWxsIHByb21pc2VzIHRvIHJlc29sdmVcclxuICAgICAgUHJvbWlzZS5hbGwocmVhZEZpbGVzUHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA9IGlucHV0RmlsZXM7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3VwbG9hZGVkRmlsZXMnLCBpbnB1dEZpbGVzKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZURhdGEuZW1pdChpbnB1dEZpbGVzKTtcclxuICAgICAgfSkuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlYWRpbmcgZmlsZXMnKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1lvdSBjYW4gdXBsb2FkIG1heCA1IGZpbGVzJyk7XHJcbiAgICAgIC8vIHRoaXMudG9hc3RyLndhcm5pbmcoVE9BU1RFUl9NRVNTQUdFUy5NQVhfRklWRV9GSUxFUywgVE9BU1RFUl9NRVNTQUdFUy5XQVJOSU5HX1RJVExFKTtcclxuICAgIH1cclxuICBcclxuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gIH1cclxuICBcclxuXHJcbiAgLy8gdXBsb2FkTXVsdGlwbGVGaWxlcyhldmVudDogYW55KSB7XHJcbiAgLy8gICBjb25zb2xlLmxvZygnRmlsZSB1cGxvYWRlciBpbml0aWF0ZWQnKTtcclxuICAvLyAgIGxldCBpbnB1dEZpbGVzOiBhbnlbXSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA/IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA6IFtdO1xyXG4gIC8vICAgY29uc3Qgc2VsZWN0ZWRGaWxlRGF0YSA9IFtdO1xyXG4gIC8vICAgY29uc3QgdXBsb2FkZWRGaWxlcyA9IGV2ZW50LnRhcmdldC5maWxlcztcclxuICAvLyAgIGlmICh1cGxvYWRlZEZpbGVzLmxlbmd0aCArIGlucHV0RmlsZXMubGVuZ3RoIDw9IHRoaXMuY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0KSB7XHJcbiAgLy8gICAgIGZvciAoY29uc3QgZWFjaFVwbG9hZGVkRmlsZSBvZiB1cGxvYWRlZEZpbGVzKSB7XHJcbiAgLy8gICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAvLyAgICAgICBjb25zdCBmaWxlOiBGaWxlID0gZWFjaFVwbG9hZGVkRmlsZTtcclxuICAvLyAgICAgICBjb25zdCBmb3JtYXQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVsxXTtcclxuICAvLyAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAvLyAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gIC8vICAgICAgICAgc2VsZWN0ZWRGaWxlRGF0YS5wdXNoKHtcclxuICAvLyAgICAgICAgICAgZG9jOiByZWFkZXIucmVzdWx0LFxyXG4gIC8vICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXHJcbiAgLy8gICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcclxuICAvLyAgICAgICAgICAgZm9ybWF0LFxyXG4gIC8vICAgICAgICAgICBpZDogbnVsbCxcclxuICAvLyAgICAgICAgIH0pO1xyXG4gIC8vICAgICAgICAgaW5wdXRGaWxlcy5wdXNoKHtcclxuICAvLyAgICAgICAgICAgZG9jOiByZWFkZXIucmVzdWx0LFxyXG4gIC8vICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXHJcbiAgLy8gICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcclxuICAvLyAgICAgICAgICAgZm9ybWF0LFxyXG4gIC8vICAgICAgICAgICBpZDogbnVsbCxcclxuICAvLyAgICAgICAgIH0pO1xyXG4gIC8vICAgICAgIH07XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0gZWxzZSB7XHJcbiAgLy8gICAgIGNvbnNvbGUud2FybignWW91IGNhbiB1cGxvYWQgbWF4IDUgZmlsZXMnKTtcclxuICAvLyAgICAgLy90aGlzLnRvYXN0ci53YXJuaW5nKFRPQVNURVJfTUVTU0FHRVMuTUFYX0ZJVkVfRklMRVMsIFRPQVNURVJfTUVTU0FHRVMuV0FSTklOR19USVRMRSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAvLyAgIHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA9IGlucHV0RmlsZXM7XHJcbiAgLy8gICBjb25zb2xlLmxvZygndXBsb2FkZWRGaWxlcycsaW5wdXRGaWxlcyk7XHJcbiAgLy8gICB0aGlzLnNlbGVjdGVkRmlsZURhdGEuZW1pdChpbnB1dEZpbGVzKTtcclxuICAvLyB9XHJcblxyXG5cclxuICBkZWxldGVGaWxlKGN1cnJlbnRGaWxlSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBkZWxldGVkRmlsZU5hbWUgPSB0aGlzLnNlbGVjdGVkRmlsZU5hbWVBcnJheS5zcGxpY2UoY3VycmVudEZpbGVJbmRleCwgMSk7XHJcbiAgICAgICAgY29uc3QgZGVsZXRlZEZpbGUgPSB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMuc3BsaWNlKGN1cnJlbnRGaWxlSW5kZXgsIDEpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdlbWl0JywgZGVsZXRlZEZpbGVbMF0pO1xyXG4gICAgICAgIHRoaXMuZGVsZXRlZEZpbGVEYXRhLmVtaXQoZGVsZXRlZEZpbGVbMF0pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlRGF0YS5lbWl0KHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyk7XHJcbiAgfVxyXG5cclxuXHJcbi8vIFZEIDIwTWF5MjQgLSBwcmV2aWV3IGNoYW5nZXNcclxuLy8gUlMgMDlERUMyNCBDaGFuZ2VkIGtleXNcclxuICB2aWV3RmlsZShjdXJyZW50RmlsZSkge1xyXG4gICAgdGhpcy5jdXJyZW50RmlsZSA9IGN1cnJlbnRGaWxlO1xyXG4gICAgdGhpcy5zaG93RmlsZSA9IHRydWU7XHJcbiAgICBjb25zb2xlLmxvZyhjdXJyZW50RmlsZSk7XHJcbiAgICBpZih0aGlzLnF1ZXN0aW9uLnN1YlRleHQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxldCBmaWxlTWV0YSA9IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5zdWJUZXh0KTtcclxuICAgICAgbGV0IGVuZHBvaW50ID0gZmlsZU1ldGEuZW5kcG9pbnQ7XHJcbiAgICAgIGxldCBxdWVyeVBhcmFtZXRlciA9IGZpbGVNZXRhLnF1ZXJ5UGFyYW1ldGVyO1xyXG4gICAgICAgIGxldCBmaWxlID0gY3VycmVudEZpbGU7XHJcbiAgICAgICAgICBpZihlbmRwb2ludCl7XHJcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxFbmRQb2ludCA9IGVuZHBvaW50ICsgJz8nKyBxdWVyeVBhcmFtZXRlciArICc9JyArIGZpbGVbcXVlcnlQYXJhbWV0ZXJdO1xyXG4gICAgICAgICAgICBpZihmdWxsRW5kUG9pbnQpe1xyXG4gICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoZnVsbEVuZFBvaW50KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihhcGlSZXNwb25zZSl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRmlsZUNvbnRlbnQoYXBpUmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgIH1cclxuICAgICAgIH1cclxuICAgIH1lbHNlIHtcclxuICAgICAgICB0aGlzLnZpZXdMb2NhbEZpbGUoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8vIC8vIFZEIDAzQXVnMjQgcHJvY2VzcyBsb2NhbCBwcmV2aWV3IFxyXG4gIHZpZXdMb2NhbEZpbGUoKXtcclxuICAgIGlmKHRoaXMuY3VycmVudEZpbGUpe1xyXG4gICAgICB0aGlzLnNldEZpbGVVcmwodGhpcy5jdXJyZW50RmlsZT8uZG9jKTtcclxuICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuY3VycmVudEZpbGUubmFtZTtcclxuICAgICAgdGhpcy5pc0ltYWdlID0gdGhpcy5jdXJyZW50RmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gXHJcbiAgaGFuZGxlRmlsZUNvbnRlbnQoZmlsZVJlc3BvbnNlOiBhbnkpIHtcclxuICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGZpbGVSZXNwb25zZS5jb250ZW50LmRhdGEpO1xyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IGZpbGVSZXNwb25zZS50eXBlIH0pO1xyXG4gICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICB0aGlzLnNldEZpbGVVcmwodXJsKTtcclxuICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xyXG4gICAgaWYoZmlsZVJlc3BvbnNlLm5hbWUpe1xyXG4gICAgICB0aGlzLmZpbGVOYW1lID0gZmlsZVJlc3BvbnNlLm5hbWU7XHJcbiAgICAgIGNvbnN0IGltYWdlRXh0ZW5zaW9ucyA9IFsnanBnJywgJ2pwZWcnLCAncG5nJywgJ2dpZicsICdibXAnLCAnd2VicCddO1xyXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZVJlc3BvbnNlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgdGhpcy5pc0ltYWdlID0gaW1hZ2VFeHRlbnNpb25zLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24gfHwgJycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RmlsZVVybCh1cmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5maWxlVXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XHJcbiAgfVxyXG5cclxuICBnZXREb2NJY29uKGRvY05hbWUpIHtcclxuICAgIGNvbnN0IGV4dCA9IGRvY05hbWUuc3BsaXQoJy4nKS5wb3AoLTEpO1xyXG4gICAgcmV0dXJuIHRoaXMuU2hhcmVkU2VydmljZS5kb2NJY29uKGV4dCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpe1xyXG4gICAgdGhpcy5zaG93RmlsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5maWxlTmFtZSA9ICcnO1xyXG4gICAgdGhpcy5maWxlVXJsID0gJyc7XHJcbiAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmZpbGVVcmwpIHtcclxuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmZpbGVVcmwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwibWFyZ2luOiAwO1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdJZj1cIiFpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPlxyXG4gICAgPCEtLSBIQSAxOURFQzIzIEZvciB0cmFuc2xhdGlvbiAtLT5cclxuICAgIDxsYWJlbCBjbGFzcz1cInNoZS1sYWJlbFwiPnt7ICdhdHRhY2htZW50JyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19PC9sYWJlbD5cclxuICA8L2Rpdj5cclxuXHJcbjwhLS0gUlMgMDlKQU4yMDI1IC0tPlxyXG48IS0tIEluZm8gSWNvbiBmb3IgVmlld2luZyBSZXF1aXJlbWVudHMgLS0+XHJcbiA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG1iLTJcIiA+XHJcbiAgPGRpdiBcclxuICBjbGFzcz1cImljb24tY29udGFpbmVyIFwiXHJcbiAgKG1vdXNlb3Zlcik9XCJpc1Rvb2x0aXBWaXNpYmxlID0gdHJ1ZVwiIFxyXG4gIChtb3VzZW91dCk9XCJpc1Rvb2x0aXBWaXNpYmxlID0gZmFsc2VcIlxyXG4+XHJcbjxsYWJlbCBjbGFzcz1cInNoZS1sYWJlbFwiPlJlcXVpcmVtZW50cyA8L2xhYmVsPlxyXG48aW1nIFxyXG4gICAgd2lkdGg9XCIxM1wiIFxyXG4gICAgaGVpZ2h0PVwiMTNcIiAgXHJcbiAgICBzcmM9XCJodHRwczovL2ltZy5pY29uczguY29tL2lvcy81MC9pbmZvLS12MS5wbmdcIiBcclxuICAgIGFsdD1cImluZm9cIlxyXG4gICAgc3R5bGU9XCIgbWFyZ2luLWxlZnQ6IDRQWDsgbWFyZ2luLWJvdHRvbTogMlBYO1wiXHJcbiAgLz5cclxuPGRpdiBcclxuICAgIGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCIgXHJcbiAgICAqbmdJZj1cImlzVG9vbHRpcFZpc2libGVcIlxyXG4+XHJcbjxkaXYgXHJcbiAgICAgIGNsYXNzPVwiY29sLW1kLTEyIG1iLTJcIiBcclxuICAgICAgKm5nSWY9XCJhbGxvd2VkRmlsZVR5cGVzLmxlbmd0aCA+IDAgfHwgbWF4RmlsZVNpemUgPiAwIHx8IG1heEZpbGVzID4gMFwiXHJcbj5cclxuPHNtYWxsIGNsYXNzPVwidGV4dC1tdXRlZCBmaWxlLWNvbnN0cmFpbnRzLWluZm9cIj5cclxuPHVsIGNsYXNzPVwibXQtMSBtYi0yXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDIwcHg7XCI+XHJcbjxsaSAqbmdJZj1cImFsbG93ZWRGaWxlVHlwZXMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICBBY2NlcHRlZCBmb3JtYXRzOiB7eyBhbGxvd2VkRmlsZVR5cGVzLmpvaW4oJywgJykgfX1cclxuPC9saT5cclxuPGxpICpuZ0lmPVwibWF4RmlsZVNpemUgPiAwXCI+XHJcbiAgICAgICAgICAgIE1heGltdW0gc2l6ZSBwZXIgZmlsZToge3sgbWF4RmlsZVNpemUgLyAxMDQ4NTc2IH19TUJcclxuPC9saT5cclxuPGxpICpuZ0lmPVwibWF4RmlsZXMgPiAwXCI+XHJcbiAgICAgICAgICAgIE1heGltdW0gbnVtYmVyIG9mIGZpbGVzOiB7eyBtYXhGaWxlcyB9fVxyXG48L2xpPlxyXG48L3VsPlxyXG48L3NtYWxsPlxyXG48L2Rpdj5cclxuPC9kaXY+XHJcbjwvZGl2PlxyXG4gPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29sLWxnLTUgZG9jdW1lbnQtY250IG0tdC0xMCBtLWItMTBcIlxyXG4gICAgKm5nRm9yPVwibGV0IGVhY2hGaWxlIG9mIGNvcHlPZklucHV0QWxsRmlsZXM7IGxldCBjdXJyZW50RmlsZUluZGV4ID0gaW5kZXhcIj5cclxuICAgICA8ZGl2ICpuZ0lmPVwiIXRhYmxlRmlsZVwiPiA8IS0tIChjbGljayk9XCJ2aWV3RmlsZShlYWNoRmlsZSlcIiAgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBkb2N1bWVudF9pbWFnZVwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJnZXREb2NJY29uKGVhY2hGaWxlPy5uYW1lKVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOSBkb2N1bWVudF9uYW1lXCI+XHJcbiAgICAgICAge3tlYWNoRmlsZT8ubmFtZX19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnRfZGVsZXRlXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoY3VycmVudEZpbGVJbmRleCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKm5nSWY9XCJpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCI+XHJcbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3JueHQuczMuYW1hem9uYXdzLmNvbS9JY29ucy9maWxlVHlwZUljb25zL2Jpbi5zdmdcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwhLS0gVkQgMjBNYXkyNCAtIHByZXZpZXcgY2hhbmdlcy0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1pY29uXCIgKGNsaWNrKT1cInZpZXdGaWxlKGVhY2hGaWxlKVwiICpuZ0lmPVwiaXNEZWxldGVGaWxlQnV0dG9uVmlzaWJsZVwiPlxyXG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9ybnh0LnMzLmFtYXpvbmF3cy5jb20vSWNvbnMvZmlsZVR5cGVJY29ucy9pY29uczgtZXllLTI0LnBuZ1wiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInRhYmxlRmlsZVwiIGNsYXNzPVwicm93XCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBkb2N1bWVudF9pbWFnZVwiPlxyXG4gICAgICAgICAgPGltZyBbc3JjXT1cImdldERvY0ljb24oZWFjaEZpbGU/LmRvYylcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtoZWlnaHQ6IDQwcHg7XCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTkgZG9jdW1lbnRfbmFtZVwiIHN0eWxlPVwib3ZlcmZsb3c6aGlkZGVuO2hlaWdodDozNXB4O1wiPlxyXG4gICAgICAgICAge3tlYWNoRmlsZT8ubmFtZX19XHJcbiAgICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbS1iLTMwIHRleHQtY2VudGVyXCIgKm5nSWY9XCJjb3B5T2ZJbnB1dEFsbEZpbGVzPy5sZW5ndGggPT09IDAgJiYgaXNTaG93Tm9GaWxlSWNvblwiPlxyXG4gICAgPGltZyBzcmM9XCJodHRwczovL3JueHQuczMuYW1hem9uYXdzLmNvbS9JY29ucy9maWxlVHlwZUljb25zL2ljX25vX2F0dGFjaG1lbnRzLnN2Z1wiIHN0eWxlPVwiaGVpZ2h0OiAxNDBweDtcIj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29sLWxnLTZcIiBzdHlsZT1cInBhZGRpbmc6MDttYXJnaW4tdG9wOiAxMHB4O1wiPlxyXG4gIDxsYWJlbCBjbGFzcz1cImN1c3RvbS1maWxlXCIgKm5nSWY9XCJpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlICYmICF0YWJsZUZpbGVcIj5cclxuICAgIDwhLS0gSEEgMTlERUMyMyBGb3IgdHJhbnNsYXRpb24gLS0+XHJcbiAgICA8IS0tIFZEIDAzTWF5MjQgZmlsZSB1cGxvYWQgZml4LS0+XHJcbiAgICA8IS0tIFJTIDA5SkFOMjAyNSAtLT5cclxuICAgIDxidXR0b24gW2NsYXNzXT1cImVycm9yID8gJ3NoZS1idG4tcHJpbWFyeS1ib3JkZXJlZCBJbnZhbGlkJyA6ICdzaGUtYnRuLXByaW1hcnktYm9yZGVyZWQnXCIgc3R5bGU9XCJ3aWR0aDoyNzVweDtcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIltuZ0NsYXNzXT1cInsgJ2J0bi1kaXNhYmxlZCc6IGNvcHlPZklucHV0QWxsRmlsZXM/Lmxlbmd0aCA+PSBtYXhGaWxlcyB9XCIgW2Rpc2FibGVkXT1cImNvcHlPZklucHV0QWxsRmlsZXM/Lmxlbmd0aCA+PSBtYXhGaWxlc1wiPkNob29zZSBGaWxlczwvYnV0dG9uPlxyXG4gICAgPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiAgbmFtZT1cImZpbGVVcGxvYWRcIiBtdWx0aXBsZT1cIm11bHRpcGxlXCIgIFthY2NlcHRdPVwiYWxsb3dlZEZpbGVUeXBlcy5qb2luKCcsJylcIlxyXG4gICAgc3R5bGU9XCJkaXNwbGF5Om5vbmU7XCJcclxuICAgIChjaGFuZ2UpID0gdXBsb2FkTXVsdGlwbGVGaWxlcygkZXZlbnQpXHJcbiAgICAvPlxyXG4gIDwvbGFiZWw+XHJcblxyXG4gIDwhLS0gUlMgMDlKQU4yMDI1IC0tPlxyXG4gIDwhLS0gRXJyb3IgbWVzc2FnZXMgc2VjdGlvbiAtLT5cclxuICA8ZGl2IGNsYXNzPVwiZmlsZS1jb25zdHJhaW50c1wiICpuZ0lmPVwidmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPiAwXCI+XHJcbiAgICA8c21hbGwgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlcnJvciBvZiB2YWxpZGF0aW9uRXJyb3JzXCI+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgIDwvc21hbGw+XHJcbiAgPC9kaXY+XHJcblxyXG48IS0tIEhBIDE5REVDMjMgRm9yIHRyYW5zbGF0aW9uIC0tPlxyXG4gIDxsYWJlbCAqbmdJZj1cInRhYmxlRmlsZVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICB7eyAndXBsb2FkRmlsZScgfCBpMThuOmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSB9fVxyXG4gICAgPGlucHV0IGlkPVwiZmlsZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiB0eXBlPVwiZmlsZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgKGNoYW5nZSk9IHVwbG9hZE11bHRpcGxlRmlsZXMoJGV2ZW50KSAvPlxyXG4gIDwvbGFiZWw+XHJcbiAgPCEtLSA8c3BhbiBjbGFzcz1cImVycm9yLW1zZ1wiICpuZ0lmPVwiKGZvcm1Db250cm9sPy5kb2N1bWVudHM/LnRvdWNoZWQgfHwgICAgICAgIGZvcm1Db250cm9sPy5kb2N1bWVudHM/LmRpcnR5KSAmJlxyXG4gIGZvcm1Db250cm9sPy5kb2N1bWVudHM/LmVycm9ycz8ucmVxdWlyZWRcIj5cclxuICAgIHt7TE1fUE9MSUNZX1ZBTElEQVRJT05fTUVTU0FHRS5SRVFVSVJFRH19XHJcbiAgPC9zcGFuPiAtLT5cclxuICA8IS0tIFJTIDA5REVDMjQgQ2hhbmdlZCBrZXlzLS0+IFxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJlcnJvci1tc2dcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCI+e3txdWVzdGlvbj8uZXJyb3JNZXNzYWdlfX08L2Rpdj5cclxuPGRpdiBjbGFzcz1cIm54dC1maWxlLW92ZXJsYXlcIiAqbmdJZj1cInNob3dGaWxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIm54dC1maWxlLW1hcC1tb2RhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm54dC1maWxlLW1vZGVsLWNvbnRlbnRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm54dC1maWxlLW1vZGVsLWhlYWRlclwiPlxyXG4gICAgICAgIDxoND57e2ZpbGVOYW1lfX08L2g0PlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2xvc2UoKVwiPlg8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ltYWdlOyBlbHNlIG90aGVyRmlsZVwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJmaWxlVXJsXCIgY2xhc3M9XCJpbWctZmx1aWRcIiBhbHQ9XCJGaWxlIFByZXZpZXdcIiAvPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNvdGhlckZpbGU+XHJcbiAgICAgICAgPGlmcmFtZSBbc3JjXT1cImZpbGVVcmxcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCI1MDBweFwiPjwvaWZyYW1lPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbiJdfQ==
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBc0MsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBV2pILE1BQU0sT0FBTyxtQkFBbUI7SUF5QlY7SUFBdUM7SUFBaUM7SUFDbkY7SUF6QkMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUM3QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxRQUFRLENBQUM7SUFDVCxrQkFBa0IsQ0FBQztJQUNuQix5QkFBeUIsQ0FBQztJQUMxQixnQkFBZ0IsQ0FBQztJQUNqQixTQUFTLENBQUMsQ0FBRSx5QkFBeUI7SUFDckMsUUFBUSxDQUFDO0lBQ1QsS0FBSyxDQUFLO0lBQ3JCLGNBQWM7SUFDTCxnQkFBZ0IsR0FBYSxFQUFFLENBQUM7SUFDaEMsV0FBVyxHQUFXLENBQUMsQ0FBQyxDQUFFLG1CQUFtQjtJQUM3QyxRQUFRLEdBQVcsQ0FBQyxDQUFDLENBQUssZ0JBQWdCO0lBQzFDLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUdoQyxxQkFBcUIsR0FBYSxFQUFFLENBQUM7SUFDckMsbUJBQW1CLENBQUM7SUFDcEIsd0JBQXdCLENBQUM7SUFDekIsT0FBTyxDQUFDO0lBQ1IsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFFBQVEsR0FB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QkFBakMsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LE91dHB1dCxFdmVudEVtaXR0ZXIsIElucHV0ICxFbGVtZW50UmVmLCBPbkNoYW5nZXMsU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vIEhBIDE5REVDMjMgaW1wb3J0ZWQgdHJhbnNsYXRpb24gc2VydmljZVxyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaGFyZWQuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmlsZS11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkRmlsZURhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG4gIEBPdXRwdXQoKSBkZWxldGVkRmlsZURhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKSBhbGxGaWxlcztcclxuICBASW5wdXQoKSBsaW1pdEZpbGVVcGxvYWRpbmc7XHJcbiAgQElucHV0KCkgaXNEZWxldGVGaWxlQnV0dG9uVmlzaWJsZTtcclxuICBASW5wdXQoKSBpc1Nob3dOb0ZpbGVJY29uO1xyXG4gIEBJbnB1dCgpIHRhYmxlRmlsZTsgIC8vIGZpbGUgVXBsb2FkIGZyb20gdGFibGVcclxuICBASW5wdXQoKSBxdWVzdGlvbjtcclxuICBASW5wdXQoKSBlcnJvcjphbnk7XHJcbi8vUlMgMDlKQU4yMDI1XHJcbiAgcHVibGljIGFsbG93ZWRGaWxlVHlwZXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIG1heEZpbGVTaXplOiBudW1iZXIgPSAwOyAgLy8gaW4gYnl0ZXMoQmluYXJ5KVxyXG4gIHB1YmxpYyBtYXhGaWxlczogbnVtYmVyID0gNDsgICAgIC8vIGRlZmF1bHQgbGltaXRcclxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nW10gPSBbXTtcclxuIFxyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRGaWxlTmFtZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG4gIHB1YmxpYyBjb3B5T2ZJbnB1dEFsbEZpbGVzO1xyXG4gIHB1YmxpYyBjb3B5T2ZGaWxlVXBsb2FkaW5nTGltaXQ7XHJcbiAgcHVibGljIGZpbGVVcmw7XHJcbiAgcHVibGljIHNob3dGaWxlID0gZmFsc2U7XHJcbiAgcHVibGljIGlzSW1hZ2UgPSBmYWxzZTtcclxuICBwdWJsaWMgZmlsZU5hbWUgPSAnJztcclxuICBjdXJyZW50RmlsZTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgU2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSwgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlXHJcbiAgKSB7IH1cclxuICAvL1JTIDA5SkFOMjAyNVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0aWFsaXplRmlsZUNvbmZpZ3MoKTtcclxuICAgfVxyXG4gIC8vIFZEIDAzTWF5MjQgZmlsZSB1cGxvYWQgZml4XHJcbiAgLy8gb25GaWxlVXBsb2FkKGV2ZW50OiBhbnkpIHtcclxuICAvLyAgIGNvbnN0IGZpbGVVcGxvYWRlckVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXHJcbiAgLy8gICAgICdmaWxlVXBsb2FkJ1xyXG4gIC8vICAgKSBhcyBIVE1MRWxlbWVudDtcclxuICAvLyAgIGZpbGVVcGxvYWRlckVsZW1lbnQuY2xpY2soKTtcclxuICAvLyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnNvbGUubG9nKCdzaW1wbGUgY2hhbmdlcycsIHNpbXBsZUNoYW5nZXMpO1xyXG4gICAgaWYgKHNpbXBsZUNoYW5nZXMuYWxsRmlsZXMpIHsgIC8vU0tTNU5PVjI1XHJcbiAgICAgIHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA9IHNpbXBsZUNoYW5nZXMuYWxsRmlsZXMuY3VycmVudFZhbHVlIHx8IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaW1wbGVDaGFuZ2VzLmxpbWl0RmlsZVVwbG9hZGluZykge1xyXG4gICAgICB0aGlzLmNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdCA9IHNpbXBsZUNoYW5nZXMubGltaXRGaWxlVXBsb2FkaW5nPy5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLy9SUyAwOUpBTjIwMjUgSW5pdGlhbGl6ZXMgZmlsZSB1cGxvYWQgc2V0dGluZ3MgKGFsbG93ZWQgdHlwZXMsIG1heCBzaXplLCBhbmQgbWF4IGZpbGVzKSBieSBwYXJzaW5nIG1ldGFkYXRhIGZyb20gZmllbGRzTWV0YVxyXG4gICBpbml0aWFsaXplRmlsZUNvbmZpZ3MoKSB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbj8uZmllbGRzTWV0YSkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IG1ldGFEYXRhID0gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmZpZWxkc01ldGEpO1xyXG4gICAgICAgIGNvbnN0IGZpbGVDb25maWcgPSBtZXRhRGF0YVswXTsgIC8vIEdldCBmaXJzdCBjb25maWcgb2JqZWN0XHJcbiAgICAgICAgaWYgKGZpbGVDb25maWcpIHtcclxuICAgICAgICAgIHRoaXMuYWxsb3dlZEZpbGVUeXBlcyA9IGZpbGVDb25maWcuYWxsb3dlZFR5cGVzIHx8IFtdO1xyXG4gICAgICAgICAgdGhpcy5tYXhGaWxlU2l6ZSA9IGZpbGVDb25maWcubWF4RmlsZVNpemUgfHwgMDtcclxuICAgICAgICAgIHRoaXMubWF4RmlsZXMgPSBmaWxlQ29uZmlnLm1heEZpbGVzIHx8IDU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgZmllbGRzTWV0YTonLCBlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwbG9hZE11bHRpcGxlRmlsZXMoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ0ZpbGUgdXBsb2FkZXIgaW5pdGlhdGVkJyk7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSBbXTsgLy8gUlMgMTdKQU4yMDI1IENsZWFyIHByZXZpb3VzIGVycm9yc1xyXG4gICAgbGV0IGlucHV0RmlsZXM6IGFueVtdID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID8gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzIDogW107XHJcbiAgICBjb25zdCBzZWxlY3RlZEZpbGVEYXRhID0gW107XHJcbiAgICBjb25zdCB1cGxvYWRlZEZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xyXG5cclxuICAgIC8vIFJTIDA5SkFOMjAyNSBDaGVjayBmaWxlIGNvdW50IGxpbWl0XHJcbiAgICBpZiAodXBsb2FkZWRGaWxlcy5sZW5ndGggKyBpbnB1dEZpbGVzLmxlbmd0aCA+IHRoaXMubWF4RmlsZXMpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goYE1heGltdW0gJHt0aGlzLm1heEZpbGVzfSBmaWxlcyBhbGxvd2VkYCk7XHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVhZEZpbGVzUHJvbWlzZXMgPSBbXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGVhY2hVcGxvYWRlZEZpbGUgb2YgdXBsb2FkZWRGaWxlcykge1xyXG4gICAgICBjb25zdCBmaWxlOiBGaWxlID0gZWFjaFVwbG9hZGVkRmlsZTtcclxuICAgICAgXHJcbiAgICAgIC8vUlMgMDlKQU4yMDI1IENoZWNrIGZpbGUgdHlwZVxyXG4gICAgICBjb25zdCBmaWxlRXh0ID0gJy4nICsgZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgaWYgKHRoaXMuYWxsb3dlZEZpbGVUeXBlcy5sZW5ndGggPiAwICYmICF0aGlzLmFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZUV4dCkpIHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaChgRmlsZSB0eXBlICR7ZmlsZUV4dH0gbm90IGFsbG93ZWQuIEFsbG93ZWQgdHlwZXM6ICR7dGhpcy5hbGxvd2VkRmlsZVR5cGVzLmpvaW4oJywgJyl9YCk7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vUlMgMDlKQU4yMDI1IENoZWNrIGZpbGUgc2l6ZVxyXG4gICAgICBpZiAodGhpcy5tYXhGaWxlU2l6ZSA+IDAgJiYgZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKGBGaWxlIFwiJHtmaWxlLm5hbWV9XCIgZXhjZWVkcyBzaXplIGxpbWl0IG9mICR7dGhpcy5tYXhGaWxlU2l6ZSAvIDEwNDg1NzZ9TUJgKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRpb25FcnJvcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gZmlsZUV4dC5zdWJzdHJpbmcoMSk7XHJcbiAgICAgICAgY29uc3QgZmlsZVJlYWRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gIFxyXG4gICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsZURhdGEgPSB7XHJcbiAgICAgICAgICAgICAgZG9jOiByZWFkZXIucmVzdWx0LFxyXG4gICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXHJcbiAgICAgICAgICAgICAgZm9ybWF0LFxyXG4gICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSwgLy8gUlMgMTdKQU4yMDI1IFxyXG4gICAgICAgICAgICAgIGlkOiBudWxsLFxyXG4gICAgICAgICAgICB9O1xyXG4gIFxyXG4gICAgICAgICAgICBzZWxlY3RlZEZpbGVEYXRhLnB1c2goZmlsZURhdGEpO1xyXG4gICAgICAgICAgICBpbnB1dEZpbGVzLnB1c2goZmlsZURhdGEpO1xyXG4gICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICB9O1xyXG4gIFxyXG4gICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJlamVjdCgpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaChgRXJyb3IgcmVhZGluZyBmaWxlIFwiJHtmaWxlLm5hbWV9XCJgKTsvLyBSUyAxN0pBTjIwMjUgXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJlYWRGaWxlc1Byb21pc2VzLnB1c2goZmlsZVJlYWRQcm9taXNlKTsgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuICAgIGlmIChyZWFkRmlsZXNQcm9taXNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vIFdhaXQgZm9yIGFsbCBwcm9taXNlcyB0byByZXNvbHZlXHJcbiAgICAgIFByb21pc2UuYWxsKHJlYWRGaWxlc1Byb21pc2VzKS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPSBpbnB1dEZpbGVzO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd1cGxvYWRlZEZpbGVzJywgaW5wdXRGaWxlcyk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGVEYXRhLmVtaXQoaW5wdXRGaWxlcyk7XHJcbiAgICAgIH0pLmNhdGNoKCgpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZWFkaW5nIGZpbGVzJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKCdZb3UgY2FuIHVwbG9hZCBtYXggNSBmaWxlcycpO1xyXG4gICAgICAvLyB0aGlzLnRvYXN0ci53YXJuaW5nKFRPQVNURVJfTUVTU0FHRVMuTUFYX0ZJVkVfRklMRVMsIFRPQVNURVJfTUVTU0FHRVMuV0FSTklOR19USVRMRSk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICB9XHJcbiAgXHJcblxyXG4gIC8vIHVwbG9hZE11bHRpcGxlRmlsZXMoZXZlbnQ6IGFueSkge1xyXG4gIC8vICAgY29uc29sZS5sb2coJ0ZpbGUgdXBsb2FkZXIgaW5pdGlhdGVkJyk7XHJcbiAgLy8gICBsZXQgaW5wdXRGaWxlczogYW55W10gPSB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPyB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgOiBbXTtcclxuICAvLyAgIGNvbnN0IHNlbGVjdGVkRmlsZURhdGEgPSBbXTtcclxuICAvLyAgIGNvbnN0IHVwbG9hZGVkRmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgLy8gICBpZiAodXBsb2FkZWRGaWxlcy5sZW5ndGggKyBpbnB1dEZpbGVzLmxlbmd0aCA8PSB0aGlzLmNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdCkge1xyXG4gIC8vICAgICBmb3IgKGNvbnN0IGVhY2hVcGxvYWRlZEZpbGUgb2YgdXBsb2FkZWRGaWxlcykge1xyXG4gIC8vICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgLy8gICAgICAgY29uc3QgZmlsZTogRmlsZSA9IGVhY2hVcGxvYWRlZEZpbGU7XHJcbiAgLy8gICAgICAgY29uc3QgZm9ybWF0ID0gZmlsZS5uYW1lLnNwbGl0KCcuJylbMV07XHJcbiAgLy8gICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgLy8gICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAvLyAgICAgICAgIHNlbGVjdGVkRmlsZURhdGEucHVzaCh7XHJcbiAgLy8gICAgICAgICAgIGRvYzogcmVhZGVyLnJlc3VsdCxcclxuICAvLyAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxyXG4gIC8vICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXHJcbiAgLy8gICAgICAgICAgIGZvcm1hdCxcclxuICAvLyAgICAgICAgICAgaWQ6IG51bGwsXHJcbiAgLy8gICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIGlucHV0RmlsZXMucHVzaCh7XHJcbiAgLy8gICAgICAgICAgIGRvYzogcmVhZGVyLnJlc3VsdCxcclxuICAvLyAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxyXG4gIC8vICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXHJcbiAgLy8gICAgICAgICAgIGZvcm1hdCxcclxuICAvLyAgICAgICAgICAgaWQ6IG51bGwsXHJcbiAgLy8gICAgICAgICB9KTtcclxuICAvLyAgICAgICB9O1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICBjb25zb2xlLndhcm4oJ1lvdSBjYW4gdXBsb2FkIG1heCA1IGZpbGVzJyk7XHJcbiAgLy8gICAgIC8vdGhpcy50b2FzdHIud2FybmluZyhUT0FTVEVSX01FU1NBR0VTLk1BWF9GSVZFX0ZJTEVTLCBUT0FTVEVSX01FU1NBR0VTLldBUk5JTkdfVElUTEUpO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgLy8gICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPSBpbnB1dEZpbGVzO1xyXG4gIC8vICAgY29uc29sZS5sb2coJ3VwbG9hZGVkRmlsZXMnLGlucHV0RmlsZXMpO1xyXG4gIC8vICAgdGhpcy5zZWxlY3RlZEZpbGVEYXRhLmVtaXQoaW5wdXRGaWxlcyk7XHJcbiAgLy8gfVxyXG5cclxuXHJcbiAgZGVsZXRlRmlsZShjdXJyZW50RmlsZUluZGV4KSB7XHJcbiAgICAgICAgY29uc3QgZGVsZXRlZEZpbGVOYW1lID0gdGhpcy5zZWxlY3RlZEZpbGVOYW1lQXJyYXkuc3BsaWNlKGN1cnJlbnRGaWxlSW5kZXgsIDEpO1xyXG4gICAgICAgIGNvbnN0IGRlbGV0ZWRGaWxlID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzLnNwbGljZShjdXJyZW50RmlsZUluZGV4LCAxKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnZW1pdCcsIGRlbGV0ZWRGaWxlWzBdKTtcclxuICAgICAgICB0aGlzLmRlbGV0ZWRGaWxlRGF0YS5lbWl0KGRlbGV0ZWRGaWxlWzBdKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZURhdGEuZW1pdCh0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMpO1xyXG4gIH1cclxuXHJcblxyXG4vLyBWRCAyME1heTI0IC0gcHJldmlldyBjaGFuZ2VzXHJcbi8vIFJTIDA5REVDMjQgQ2hhbmdlZCBrZXlzXHJcbiAgdmlld0ZpbGUoY3VycmVudEZpbGUpIHtcclxuICAgIHRoaXMuY3VycmVudEZpbGUgPSBjdXJyZW50RmlsZTtcclxuICAgIHRoaXMuc2hvd0ZpbGUgPSB0cnVlO1xyXG4gICAgY29uc29sZS5sb2coY3VycmVudEZpbGUpO1xyXG4gICAgaWYodGhpcy5xdWVzdGlvbi5zdWJUZXh0ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBsZXQgZmlsZU1ldGEgPSBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uc3ViVGV4dCk7XHJcbiAgICAgIGxldCBlbmRwb2ludCA9IGZpbGVNZXRhLmVuZHBvaW50O1xyXG4gICAgICBsZXQgcXVlcnlQYXJhbWV0ZXIgPSBmaWxlTWV0YS5xdWVyeVBhcmFtZXRlcjtcclxuICAgICAgICBsZXQgZmlsZSA9IGN1cnJlbnRGaWxlO1xyXG4gICAgICAgICAgaWYoZW5kcG9pbnQpe1xyXG4gICAgICAgICAgICBjb25zdCBmdWxsRW5kUG9pbnQgPSBlbmRwb2ludCArICc/JysgcXVlcnlQYXJhbWV0ZXIgKyAnPScgKyBmaWxlW3F1ZXJ5UGFyYW1ldGVyXTtcclxuICAgICAgICAgICAgaWYoZnVsbEVuZFBvaW50KXtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmFwaVJlc3BvbnNlKGZ1bGxFbmRQb2ludCkuc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYoYXBpUmVzcG9uc2Upe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUZpbGVDb250ZW50KGFwaVJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICB9XHJcbiAgICAgICB9XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgICAgdGhpcy52aWV3TG9jYWxGaWxlKClcclxuICAgIH1cclxuICB9XHJcblxyXG4vLyAvLyBWRCAwM0F1ZzI0IHByb2Nlc3MgbG9jYWwgcHJldmlldyBcclxuICB2aWV3TG9jYWxGaWxlKCl7XHJcbiAgICBpZih0aGlzLmN1cnJlbnRGaWxlKXtcclxuICAgICAgdGhpcy5zZXRGaWxlVXJsKHRoaXMuY3VycmVudEZpbGU/LmRvYyk7XHJcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSB0aGlzLmN1cnJlbnRGaWxlLm5hbWU7XHJcbiAgICAgIHRoaXMuaXNJbWFnZSA9IHRoaXMuY3VycmVudEZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuIFxyXG4gIGhhbmRsZUZpbGVDb250ZW50KGZpbGVSZXNwb25zZTogYW55KSB7XHJcbiAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShmaWxlUmVzcG9uc2UuY29udGVudC5kYXRhKTtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBmaWxlUmVzcG9uc2UudHlwZSB9KTtcclxuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgdGhpcy5zZXRGaWxlVXJsKHVybCk7XHJcbiAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgIGlmKGZpbGVSZXNwb25zZS5uYW1lKXtcclxuICAgICAgdGhpcy5maWxlTmFtZSA9IGZpbGVSZXNwb25zZS5uYW1lO1xyXG4gICAgICBjb25zdCBpbWFnZUV4dGVuc2lvbnMgPSBbJ2pwZycsICdqcGVnJywgJ3BuZycsICdnaWYnLCAnYm1wJywgJ3dlYnAnXTtcclxuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVSZXNwb25zZS5uYW1lLnNwbGl0KCcuJykucG9wKCk/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMuaXNJbWFnZSA9IGltYWdlRXh0ZW5zaW9ucy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uIHx8ICcnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEZpbGVVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZmlsZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RG9jSWNvbihkb2NOYW1lKSB7XHJcbiAgICBjb25zdCBleHQgPSBkb2NOYW1lLnNwbGl0KCcuJykucG9wKC0xKTtcclxuICAgIHJldHVybiB0aGlzLlNoYXJlZFNlcnZpY2UuZG9jSWNvbihleHQpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKXtcclxuICAgIHRoaXMuc2hvd0ZpbGUgPSBmYWxzZTtcclxuICAgIHRoaXMuZmlsZU5hbWUgPSAnJztcclxuICAgIHRoaXMuZmlsZVVybCA9ICcnO1xyXG4gICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5maWxlVXJsKSB7XHJcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5maWxlVXJsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbjogMDtcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgKm5nSWY9XCIhaXNEZWxldGVGaWxlQnV0dG9uVmlzaWJsZVwiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIj5cclxuICAgIDwhLS0gSEEgMTlERUMyMyBGb3IgdHJhbnNsYXRpb24gLS0+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJzaGUtbGFiZWxcIj57eyAnYXR0YWNobWVudCcgfCBpMThuOmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSB9fTwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtbGctNSBkb2N1bWVudC1jbnQgbS10LTEwIG0tYi0xMFwiXHJcbiAgICAqbmdGb3I9XCJsZXQgZWFjaEZpbGUgb2YgY29weU9mSW5wdXRBbGxGaWxlczsgbGV0IGN1cnJlbnRGaWxlSW5kZXggPSBpbmRleFwiPlxyXG4gICAgIDxkaXYgKm5nSWY9XCIhdGFibGVGaWxlXCI+IDwhLS0gKGNsaWNrKT1cInZpZXdGaWxlKGVhY2hGaWxlKVwiICAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50X2ltYWdlXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImdldERvY0ljb24oZWFjaEZpbGU/Lm5hbWUpXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05IGRvY3VtZW50X25hbWVcIj5cclxuICAgICAgICB7e2VhY2hGaWxlPy5uYW1lfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkb2N1bWVudF9kZWxldGVcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShjdXJyZW50RmlsZUluZGV4KTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAqbmdJZj1cImlzRGVsZXRlRmlsZUJ1dHRvblZpc2libGVcIj5cclxuICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcm54dC5zMy5hbWF6b25hd3MuY29tL0ljb25zL2ZpbGVUeXBlSWNvbnMvYmluLnN2Z1wiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSBWRCAyME1heTI0IC0gcHJldmlldyBjaGFuZ2VzLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWljb25cIiAoY2xpY2spPVwidmlld0ZpbGUoZWFjaEZpbGUpXCIgKm5nSWY9XCJpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCI+XHJcbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3JueHQuczMuYW1hem9uYXdzLmNvbS9JY29ucy9maWxlVHlwZUljb25zL2ljb25zOC1leWUtMjQucG5nXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidGFibGVGaWxlXCIgY2xhc3M9XCJyb3dcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50X2ltYWdlXCI+XHJcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZ2V0RG9jSWNvbihlYWNoRmlsZT8uZG9jKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O2hlaWdodDogNDBweDtcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOSBkb2N1bWVudF9uYW1lXCIgc3R5bGU9XCJvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjM1cHg7XCI+XHJcbiAgICAgICAgICB7e2VhY2hGaWxlPy5uYW1lfX1cclxuICAgICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtLWItMzAgdGV4dC1jZW50ZXJcIiAqbmdJZj1cImNvcHlPZklucHV0QWxsRmlsZXM/Lmxlbmd0aCA9PT0gMCAmJiBpc1Nob3dOb0ZpbGVJY29uXCI+XHJcbiAgICA8aW1nIHNyYz1cImh0dHBzOi8vcm54dC5zMy5hbWF6b25hd3MuY29tL0ljb25zL2ZpbGVUeXBlSWNvbnMvaWNfbm9fYXR0YWNobWVudHMuc3ZnXCIgc3R5bGU9XCJoZWlnaHQ6IDE0MHB4O1wiPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb2wtbGctNlwiIHN0eWxlPVwicGFkZGluZzowO21hcmdpbi10b3A6IDEwcHg7XCI+XHJcbiAgPGxhYmVsIGNsYXNzPVwiY3VzdG9tLWZpbGVcIiAqbmdJZj1cImlzRGVsZXRlRmlsZUJ1dHRvblZpc2libGUgJiYgIXRhYmxlRmlsZVwiPlxyXG4gICAgPCEtLSBIQSAxOURFQzIzIEZvciB0cmFuc2xhdGlvbiAtLT5cclxuICAgIDwhLS0gVkQgMDNNYXkyNCBmaWxlIHVwbG9hZCBmaXgtLT5cclxuICAgIDwhLS0gUlMgMDlKQU4yMDI1IC0tPlxyXG4gICAgPGJ1dHRvbiBbY2xhc3NdPVwiZXJyb3IgPyAnc2hlLWJ0bi1wcmltYXJ5LWJvcmRlcmVkIEludmFsaWQnIDogJ3NoZS1idG4tcHJpbWFyeS1ib3JkZXJlZCdcIiBzdHlsZT1cIndpZHRoOjI3NXB4O1wiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiW25nQ2xhc3NdPVwieyAnYnRuLWRpc2FibGVkJzogY29weU9mSW5wdXRBbGxGaWxlcz8ubGVuZ3RoID49IG1heEZpbGVzIH1cIiBbZGlzYWJsZWRdPVwiY29weU9mSW5wdXRBbGxGaWxlcz8ubGVuZ3RoID49IG1heEZpbGVzXCI+Q2hvb3NlIEZpbGVzPC9idXR0b24+XHJcbiAgICA8aW5wdXQgI2ZpbGVJbnB1dCB0eXBlPVwiZmlsZVwiICBuYW1lPVwiZmlsZVVwbG9hZFwiIG11bHRpcGxlPVwibXVsdGlwbGVcIiAgW2FjY2VwdF09XCJhbGxvd2VkRmlsZVR5cGVzLmpvaW4oJywnKVwiXHJcbiAgICBzdHlsZT1cImRpc3BsYXk6bm9uZTtcIlxyXG4gICAgKGNoYW5nZSkgPSB1cGxvYWRNdWx0aXBsZUZpbGVzKCRldmVudClcclxuICAgIC8+XHJcbiAgPC9sYWJlbD5cclxuXHJcbiAgPCEtLSBSUyAwOUpBTjIwMjUgLS0+XHJcbiAgPCEtLSBFcnJvciBtZXNzYWdlcyBzZWN0aW9uIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnN0cmFpbnRzXCIgKm5nSWY9XCJ2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCA+IDBcIj5cclxuICAgIDxzbWFsbCBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yIG9mIHZhbGlkYXRpb25FcnJvcnNcIj57eyBlcnJvciB9fTwvZGl2PlxyXG4gICAgPC9zbWFsbD5cclxuICA8L2Rpdj5cclxuXHJcbjwhLS0gSEEgMTlERUMyMyBGb3IgdHJhbnNsYXRpb24gLS0+XHJcbiAgPGxhYmVsICpuZ0lmPVwidGFibGVGaWxlXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj5cclxuICAgIHt7ICd1cGxvYWRGaWxlJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19XHJcbiAgICA8aW5wdXQgaWQ9XCJmaWxlXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIHR5cGU9XCJmaWxlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAoY2hhbmdlKT0gdXBsb2FkTXVsdGlwbGVGaWxlcygkZXZlbnQpIC8+XHJcbiAgPC9sYWJlbD5cclxuICA8IS0tIDxzcGFuIGNsYXNzPVwiZXJyb3ItbXNnXCIgKm5nSWY9XCIoZm9ybUNvbnRyb2w/LmRvY3VtZW50cz8udG91Y2hlZCB8fCAgICAgICAgZm9ybUNvbnRyb2w/LmRvY3VtZW50cz8uZGlydHkpICYmXHJcbiAgZm9ybUNvbnRyb2w/LmRvY3VtZW50cz8uZXJyb3JzPy5yZXF1aXJlZFwiPlxyXG4gICAge3tMTV9QT0xJQ1lfVkFMSURBVElPTl9NRVNTQUdFLlJFUVVJUkVEfX1cclxuICA8L3NwYW4+IC0tPlxyXG4gIDwhLS0gUlMgMDlERUMyNCBDaGFuZ2VkIGtleXMtLT4gXHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1zZ1wiIHN0eWxlPVwibWFyZ2luLXRvcDogMTBweDtcIj57e3F1ZXN0aW9uPy5lcnJvck1lc3NhZ2V9fTwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibnh0LWZpbGUtb3ZlcmxheVwiICpuZ0lmPVwic2hvd0ZpbGVcIj5cclxuICA8ZGl2IGNsYXNzPVwibnh0LWZpbGUtbWFwLW1vZGFsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibnh0LWZpbGUtbW9kZWwtY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibnh0LWZpbGUtbW9kZWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGg0Pnt7ZmlsZU5hbWV9fTwvaDQ+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiIChjbGljayk9XCJjbG9zZSgpXCI+WDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSW1hZ2U7IGVsc2Ugb3RoZXJGaWxlXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImZpbGVVcmxcIiBjbGFzcz1cImltZy1mbHVpZFwiIGFsdD1cIkZpbGUgUHJldmlld1wiIC8+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI290aGVyRmlsZT5cclxuICAgICAgICA8aWZyYW1lIFtzcmNdPVwiZmlsZVVybFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjUwMHB4XCI+PC9pZnJhbWU+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuIl19
|