@rangertechnologies/ngnxt 2.1.73 → 2.1.74
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-button/custom-button.component.mjs +4 -4
- package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +4 -4
- package/esm2022/lib/components/custom-date/custom-date.component.mjs +4 -4
- package/esm2022/lib/components/custom-date-picker/custom-date-picker.component.mjs +4 -4
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +4 -4
- package/esm2022/lib/components/custom-image/custom-image.component.mjs +4 -4
- package/esm2022/lib/components/custom-input/custom-input.component.mjs +4 -4
- package/esm2022/lib/components/custom-label/custom-label.component.mjs +13 -5
- package/esm2022/lib/components/custom-model/custom-model.component.mjs +4 -4
- package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +4 -4
- package/esm2022/lib/components/custom-table/custom-table.component.mjs +4 -4
- package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +4 -4
- package/esm2022/lib/components/custom-time/custom-time.component.mjs +4 -4
- package/esm2022/lib/components/dependent-table/dependent-table.component.mjs +4 -4
- package/esm2022/lib/components/dropdown-with-flag/dropdown-with-flag.component.mjs +5 -5
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +5 -5
- package/esm2022/lib/components/file-view/file-view.component.mjs +5 -5
- package/esm2022/lib/components/loader/loader.component.mjs +5 -5
- package/esm2022/lib/components/pick-location/pick-location.component.mjs +4 -4
- package/esm2022/lib/components/search-box/search-box.component.mjs +4 -4
- package/esm2022/lib/components/table-appendix/table-appendix.component.mjs +5 -5
- package/esm2022/lib/directives/componenthost/componenthost.directive.mjs +4 -4
- package/esm2022/lib/i18n.component.mjs +4 -4
- package/esm2022/lib/i18n.module.mjs +5 -5
- package/esm2022/lib/i18n.pipe.mjs +4 -4
- package/esm2022/lib/i18n.service.mjs +4 -4
- package/esm2022/lib/nxt-app.component.mjs +4 -4
- package/esm2022/lib/nxt-app.module.mjs +5 -5
- package/esm2022/lib/nxt-app.service.mjs +4 -4
- package/esm2022/lib/pages/booklet/booklet.component.mjs +64 -12
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +10 -5
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +5 -5
- package/esm2022/lib/pages/summary-page/summary-page.component.mjs +4 -4
- package/esm2022/lib/pipe/get-value.pipe.mjs +4 -4
- package/esm2022/lib/sample.mjs +2 -1
- package/esm2022/lib/services/change.service.mjs +4 -4
- package/esm2022/lib/services/code-execution.service.mjs +30 -0
- package/esm2022/lib/services/data.service.mjs +4 -4
- package/esm2022/lib/services/salesforce.service.mjs +4 -4
- package/esm2022/lib/services/shared.service.mjs +4 -4
- package/esm2022/lib/services/storage.service.mjs +4 -4
- package/esm2022/lib/wrapper.mjs +2 -1
- package/fesm2022/rangertechnologies-ngnxt.mjs +224 -131
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/components/custom-label/custom-label.component.d.ts +3 -1
- package/lib/pages/booklet/booklet.component.d.ts +8 -2
- package/lib/pages/questionbook/questionbook.component.d.ts +2 -1
- package/lib/services/code-execution.service.d.ts +9 -0
- package/lib/wrapper.d.ts +1 -0
- package/package.json +1 -1
- package/rangertechnologies-ngnxt-2.1.74.tgz +0 -0
- package/rangertechnologies-ngnxt-2.1.73.tgz +0 -0
|
@@ -23,12 +23,12 @@ export class DropdownWithFlagComponent {
|
|
|
23
23
|
onJobPerformerCertified(event) {
|
|
24
24
|
this.flagDropDownChange.emit(event);
|
|
25
25
|
}
|
|
26
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
27
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
26
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DropdownWithFlagComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DropdownWithFlagComponent, selector: "app-dropdown-with-flag", inputs: { certified: "certified", JobPerformerCertificates: "JobPerformerCertificates" }, outputs: { flagDropDownChange: "flagDropDownChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"she-title\">\n <label class=\"switch\">\n <input class=\"switch-input\" type=\"checkbox\" disabled=\"true\" [checked]=\"certified\"/>\n <span class=\"switch-label\" data-on=\"Certified\" data-off=\"Not Certified\"></span> \n <span class=\"switch-handle\"></span> \n </label> \n <!-- HA 19DEC23 For translation -->\n <ng-select *ngIf=\"certified\"\n style=\"margin-left: 36px; width: 205px; margin-bottom: 8px;\" \n [items]=\"JobPerformerCertificates\"\n [(ngModel)]=\"selectedValue\"\n (change)=\"onJobPerformerCertified($event)\"\n placeholder=\"---{{ 'select' | i18n:i18nService.currentLanguage }}---\">\n </ng-select>\n </div> ", styles: [".she-title{display:flex;flex-direction:row;align-items:center}.switch{position:relative;width:105px;height:23px;margin-left:5px;margin-top:3px;background:linear-gradient(to bottom,#eee,#fff 25px);background-image:-webkit-linear-gradient(top,#eeeeee,#FFFFFF 25px);border-radius:18px;box-shadow:inset 0 -1px #fff,inset 0 1px 1px #0000000d;cursor:pointer}.switch-input{position:absolute;top:0;left:0;opacity:0}.switch-label{position:relative;display:block;height:inherit;font-size:12px;background:#eceeef;border-radius:inherit;box-shadow:inset 0 1px 2px #0000001f,inset 0 0 2px #00000026}.switch-label:before,.switch-label:after{position:absolute;top:50%;margin-top:-.5em;line-height:1;transition:inherit}.switch-label:before{content:attr(data-off);right:11px;color:#aaa;text-shadow:0 1px rgba(255,255,255,.5)}.switch-label:after{content:attr(data-on);left:11px;color:#fff;text-shadow:0 1px rgba(0,0,0,.2);opacity:0}.switch-input:checked~.switch-label{background:#03a9f4;border-color:#03a9f4;box-shadow:inset 0 1px 2px #00000026,inset 0 0 3px #0003}.switch-input:checked~.switch-label:before{opacity:0}.switch-input:checked~.switch-label:after{opacity:1}.switch-handle{position:absolute;top:0;left:0;width:19px;height:22px;background:linear-gradient(to bottom,#fff 40%,#f0f0f0);background-image:-webkit-linear-gradient(top,#FFFFFF 40%,#f0f0f0);border-radius:100%;box-shadow:1px 1px 5px #0003}.switch-handle:before{content:\"\";position:absolute;top:50%;left:50%;margin:-6px 0 0 -6px;width:12px;height:12px;background:linear-gradient(to bottom,#eee,#fff);background-image:-webkit-linear-gradient(top,#eeeeee,#FFFFFF);border-radius:6px;box-shadow:inset 0 1px #00000005}.switch-input:checked~.switch-handle{left:86px;box-shadow:-1px 1px 5px #0003;border:2px solid aquamarine}.switch-label,.switch-handle{transition:All .3s ease;-webkit-transition:All .3s ease;-moz-transition:All .3s ease;-o-transition:All .3s ease}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] });
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DropdownWithFlagComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
|
-
args: [{ selector: 'app-dropdown-with-flag', template: "<div class=\"she-title\">\n <label class=\"switch\">\n <input class=\"switch-input\" type=\"checkbox\" disabled=\"true\" [checked]=\"certified\"/>\n <span class=\"switch-label\" data-on=\"Certified\" data-off=\"Not Certified\"></span> \n <span class=\"switch-handle\"></span> \n </label> \n <!-- HA 19DEC23 For translation -->\n <ng-select *ngIf=\"certified\"\n style=\"margin-left: 36px; width: 205px; margin-bottom: 8px;\" \n [items]=\"JobPerformerCertificates\"\n [(ngModel)]=\"selectedValue\"\n (change)=\"onJobPerformerCertified($event)\"\n placeholder=\"---{{ 'select' | i18n:i18nService.currentLanguage }}---\">\n </ng-select>\n </div> ", styles: [".she-title{display:flex;flex-direction:row;align-items:center}.switch{position:relative;width:105px;height:23px;margin-left:5px;margin-top:3px;background:linear-gradient(to bottom,#
|
|
31
|
+
args: [{ selector: 'app-dropdown-with-flag', template: "<div class=\"she-title\">\n <label class=\"switch\">\n <input class=\"switch-input\" type=\"checkbox\" disabled=\"true\" [checked]=\"certified\"/>\n <span class=\"switch-label\" data-on=\"Certified\" data-off=\"Not Certified\"></span> \n <span class=\"switch-handle\"></span> \n </label> \n <!-- HA 19DEC23 For translation -->\n <ng-select *ngIf=\"certified\"\n style=\"margin-left: 36px; width: 205px; margin-bottom: 8px;\" \n [items]=\"JobPerformerCertificates\"\n [(ngModel)]=\"selectedValue\"\n (change)=\"onJobPerformerCertified($event)\"\n placeholder=\"---{{ 'select' | i18n:i18nService.currentLanguage }}---\">\n </ng-select>\n </div> ", styles: [".she-title{display:flex;flex-direction:row;align-items:center}.switch{position:relative;width:105px;height:23px;margin-left:5px;margin-top:3px;background:linear-gradient(to bottom,#eee,#fff 25px);background-image:-webkit-linear-gradient(top,#eeeeee,#FFFFFF 25px);border-radius:18px;box-shadow:inset 0 -1px #fff,inset 0 1px 1px #0000000d;cursor:pointer}.switch-input{position:absolute;top:0;left:0;opacity:0}.switch-label{position:relative;display:block;height:inherit;font-size:12px;background:#eceeef;border-radius:inherit;box-shadow:inset 0 1px 2px #0000001f,inset 0 0 2px #00000026}.switch-label:before,.switch-label:after{position:absolute;top:50%;margin-top:-.5em;line-height:1;transition:inherit}.switch-label:before{content:attr(data-off);right:11px;color:#aaa;text-shadow:0 1px rgba(255,255,255,.5)}.switch-label:after{content:attr(data-on);left:11px;color:#fff;text-shadow:0 1px rgba(0,0,0,.2);opacity:0}.switch-input:checked~.switch-label{background:#03a9f4;border-color:#03a9f4;box-shadow:inset 0 1px 2px #00000026,inset 0 0 3px #0003}.switch-input:checked~.switch-label:before{opacity:0}.switch-input:checked~.switch-label:after{opacity:1}.switch-handle{position:absolute;top:0;left:0;width:19px;height:22px;background:linear-gradient(to bottom,#fff 40%,#f0f0f0);background-image:-webkit-linear-gradient(top,#FFFFFF 40%,#f0f0f0);border-radius:100%;box-shadow:1px 1px 5px #0003}.switch-handle:before{content:\"\";position:absolute;top:50%;left:50%;margin:-6px 0 0 -6px;width:12px;height:12px;background:linear-gradient(to bottom,#eee,#fff);background-image:-webkit-linear-gradient(top,#eeeeee,#FFFFFF);border-radius:6px;box-shadow:inset 0 1px #00000005}.switch-input:checked~.switch-handle{left:86px;box-shadow:-1px 1px 5px #0003;border:2px solid aquamarine}.switch-label,.switch-handle{transition:All .3s ease;-webkit-transition:All .3s ease;-moz-transition:All .3s ease;-o-transition:All .3s ease}\n"] }]
|
|
32
32
|
}], ctorParameters: function () { return [{ type: i1.I18nService }]; }, propDecorators: { certified: [{
|
|
33
33
|
type: Input
|
|
34
34
|
}], JobPerformerCertificates: [{
|
|
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
36
36
|
}], flagDropDownChange: [{
|
|
37
37
|
type: Output
|
|
38
38
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24td2l0aC1mbGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtZmxhZy9kcm9wZG93bi13aXRoLWZsYWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24td2l0aC1mbGFnL2Ryb3Bkb3duLXdpdGgtZmxhZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUy9FLE1BQU0sT0FBTyx5QkFBeUI7SUFPakI7SUFOVixTQUFTLEdBQVUsS0FBSyxDQUFDO0lBQ2xDLGlDQUFpQztJQUN4Qix3QkFBd0IsR0FBVSxFQUFFLENBQUM7SUFDcEMsa0JBQWtCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDMUUsYUFBYSxHQUFVLEVBQUUsQ0FBQztJQUUxQixZQUFtQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFJLENBQUM7SUFFaEQsUUFBUTtJQUNSLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLEtBQVM7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO3VHQWpCVSx5QkFBeUI7MkZBQXpCLHlCQUF5QixvT0NUdEMsZ3NCQWNXOzsyRkRMRSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO2tHQUt6QixTQUFTO3NCQUFqQixLQUFLO2dCQUVHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBIQSAxOURFQzIzIGltcG9ydGVkIHRyYW5zbGF0aW9uIHNlcnZpY2VcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRyb3Bkb3duLXdpdGgtZmxhZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi13aXRoLWZsYWcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi13aXRoLWZsYWcuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duV2l0aEZsYWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjZXJ0aWZpZWQ6Ym9vbGVhbj0gZmFsc2U7XG4gIC8vIEBJbnB1dCgpIGdldFZhbHVlOnN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBKb2JQZXJmb3JtZXJDZXJ0aWZpY2F0ZXM6IGFueVtdID0gW107XG4gIEBPdXRwdXQoKSBmbGFnRHJvcERvd25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7IFxuICBzZWxlY3RlZFZhbHVlOnN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG4gIG5nT25DaGFuZ2VzKCl7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gbnVsbDtcbiAgfVxuICBcbiAgb25Kb2JQZXJmb3JtZXJDZXJ0aWZpZWQoZXZlbnQ6YW55KXtcbiAgICAgdGhpcy5mbGFnRHJvcERvd25DaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInNoZS10aXRsZVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cInN3aXRjaFwiPlxuICAgICAgPGlucHV0ICBjbGFzcz1cInN3aXRjaC1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIGRpc2FibGVkPVwidHJ1ZVwiIFtjaGVja2VkXT1cImNlcnRpZmllZFwiLz5cbiAgICAgIDxzcGFuIGNsYXNzPVwic3dpdGNoLWxhYmVsXCIgZGF0YS1vbj1cIkNlcnRpZmllZFwiIGRhdGEtb2ZmPVwiTm90IENlcnRpZmllZFwiPjwvc3Bhbj4gXG4gICAgICA8c3BhbiBjbGFzcz1cInN3aXRjaC1oYW5kbGVcIj48L3NwYW4+IFxuICAgIDwvbGFiZWw+IFxuICAgIDwhLS0gSEEgMTlERUMyMyBGb3IgdHJhbnNsYXRpb24gLS0+XG4gICAgPG5nLXNlbGVjdCAqbmdJZj1cImNlcnRpZmllZFwiXG4gICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAzNnB4OyB3aWR0aDogMjA1cHg7IG1hcmdpbi1ib3R0b206IDhweDtcIiBcbiAgICAgIFtpdGVtc109XCJKb2JQZXJmb3JtZXJDZXJ0aWZpY2F0ZXNcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgICAgIChjaGFuZ2UpPVwib25Kb2JQZXJmb3JtZXJDZXJ0aWZpZWQoJGV2ZW50KVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIi0tLXt7ICdzZWxlY3QnIHwgaTE4bjppMThuU2VydmljZS5jdXJyZW50TGFuZ3VhZ2UgfX0tLS1cIj5cbiAgICA8L25nLXNlbGVjdD5cbiAgPC9kaXY+ICAgIl19
|
|
@@ -204,12 +204,12 @@ export class FileUploadComponent {
|
|
|
204
204
|
URL.revokeObjectURL(this.fileUrl);
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
208
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
207
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.SharedService }, { token: i2.DataService }, { token: i3.DomSanitizer }, { token: i4.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
208
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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;\">\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\n <!-- HA 19DEC23 For translation -->\n <label class=\"she-label\">{{ 'attachment' | i18n:i18nService.currentLanguage }}</label>\n </div>\n <div class=\"col-lg-5 document-cnt m-t-10 m-b-10\"\n *ngFor=\"let eachFile of copyOfInputAllFiles; let currentFileIndex = index\">\n <div *ngIf=\"!tableFile\"> <!-- (click)=\"viewFile(eachFile)\" -->\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(eachFile?.name)\">\n </div>\n <div class=\"col-lg-9 document_name\">\n {{eachFile?.name}}\n </div>\n <div class=\"document_delete\" (click)=\"deleteFile(currentFileIndex);$event.stopPropagation()\" *ngIf=\"isDeleteFileButtonVisible\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/bin.svg\">\n </div>\n <!-- VD 20May24 - preview changes-->\n <div class=\"preview-icon\" (click)=\"viewFile(eachFile)\" *ngIf=\"isDeleteFileButtonVisible\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/icons8-eye-24.png\">\n </div>\n </div>\n <div *ngIf=\"tableFile\" class=\"row\" style=\"cursor: pointer;\">\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(eachFile?.doc)\" style=\"margin-right: 10px;height: 40px;\">\n </div>\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\n {{eachFile?.name}}\n </div>\n </div>\n </div>\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"copyOfInputAllFiles?.length === 0 && isShowNoFileIcon\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <label class=\"custom-file\" *ngIf=\"isDeleteFileButtonVisible && !tableFile\">\n <!-- HA 19DEC23 For translation -->\n <!-- VD 03May24 file upload fix-->\n <button [class]=\"error ? 'she-btn-primary-bordered Invalid' : 'she-btn-primary-bordered'\" style=\"width:275px;\" (click)=\"fileInput.click()\"\n [ngClass]=\"{ 'btn-disabled': copyOfInputAllFiles?.length >= copyOfFileUploadingLimit }\" [disabled]=\"copyOfInputAllFiles?.length >= copyOfFileUploadingLimit\"\n >Choose Files</button>\n\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" accept=\"*\" style=\"display:none;\"\n (change) = uploadMultipleFiles($event)\n />\n </label>\n<!-- HA 19DEC23 For translation -->\n <label *ngIf=\"tableFile\" class=\"btn btn-primary\">\n {{ 'uploadFile' | i18n:i18nService.currentLanguage }}\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)= uploadMultipleFiles($event) />\n </label>\n <!-- <span class=\"error-msg\" *ngIf=\"(formControl?.documents?.touched || formControl?.documents?.dirty) &&\n formControl?.documents?.errors?.required\">\n {{LM_POLICY_VALIDATION_MESSAGE.REQUIRED}}\n </span> -->\n</div>\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.Error_Message__c}}</div>\n<div class=\"nxt-file-overlay\" *ngIf=\"showFile\">\n <div class=\"nxt-file-map-modal\">\n <div class=\"nxt-file-model-content\">\n <div class=\"nxt-file-model-header\">\n <h4>{{fileName}}</h4>\n <button class=\"close-button\" (click)=\"close()\">X</button>\n </div>\n <ng-container *ngIf=\"isImage; else otherFile\">\n <img [src]=\"fileUrl\" class=\"img-fluid\" alt=\"File Preview\" />\n </ng-container>\n <ng-template #otherFile>\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\n </ng-template>\n </div>\n </div>\n</div>\n\n\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" }] });
|
|
209
209
|
}
|
|
210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
211
211
|
type: Component,
|
|
212
|
-
args: [{ selector: 'app-file-upload', template: "<div class=\"row\" style=\"margin: 0;\">\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\n <!-- HA 19DEC23 For translation -->\n <label class=\"she-label\">{{ 'attachment' | i18n:i18nService.currentLanguage }}</label>\n </div>\n <div class=\"col-lg-5 document-cnt m-t-10 m-b-10\"\n *ngFor=\"let eachFile of copyOfInputAllFiles; let currentFileIndex = index\">\n <div *ngIf=\"!tableFile\"> <!-- (click)=\"viewFile(eachFile)\" -->\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(eachFile?.name)\">\n </div>\n <div class=\"col-lg-9 document_name\">\n {{eachFile?.name}}\n </div>\n <div class=\"document_delete\" (click)=\"deleteFile(currentFileIndex);$event.stopPropagation()\" *ngIf=\"isDeleteFileButtonVisible\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/bin.svg\">\n </div>\n <!-- VD 20May24 - preview changes-->\n <div class=\"preview-icon\" (click)=\"viewFile(eachFile)\" *ngIf=\"isDeleteFileButtonVisible\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/icons8-eye-24.png\">\n </div>\n </div>\n <div *ngIf=\"tableFile\" class=\"row\" style=\"cursor: pointer;\">\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(eachFile?.doc)\" style=\"margin-right: 10px;height: 40px;\">\n </div>\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\n {{eachFile?.name}}\n </div>\n </div>\n </div>\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"copyOfInputAllFiles?.length === 0 && isShowNoFileIcon\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <label class=\"custom-file\" *ngIf=\"isDeleteFileButtonVisible && !tableFile\">\n <!-- HA 19DEC23 For translation -->\n <!-- VD 03May24 file upload fix-->\n <button [class]=\"error ? 'she-btn-primary-bordered Invalid' : 'she-btn-primary-bordered'\" style=\"width:275px;\" (click)=\"fileInput.click()\"\n [ngClass]=\"{ 'btn-disabled': copyOfInputAllFiles?.length >= copyOfFileUploadingLimit }\" [disabled]=\"copyOfInputAllFiles?.length >= copyOfFileUploadingLimit\"\n >Choose Files</button>\n\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" accept=\"*\" style=\"display:none;\"\n (change) = uploadMultipleFiles($event)\n />\n </label>\n<!-- HA 19DEC23 For translation -->\n <label *ngIf=\"tableFile\" class=\"btn btn-primary\">\n {{ 'uploadFile' | i18n:i18nService.currentLanguage }}\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)= uploadMultipleFiles($event) />\n </label>\n <!-- <span class=\"error-msg\" *ngIf=\"(formControl?.documents?.touched || formControl?.documents?.dirty) &&\n formControl?.documents?.errors?.required\">\n {{LM_POLICY_VALIDATION_MESSAGE.REQUIRED}}\n </span> -->\n</div>\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.Error_Message__c}}</div>\n<div class=\"nxt-file-overlay\" *ngIf=\"showFile\">\n <div class=\"nxt-file-map-modal\">\n <div class=\"nxt-file-model-content\">\n <div class=\"nxt-file-model-header\">\n <h4>{{fileName}}</h4>\n <button class=\"close-button\" (click)=\"close()\">X</button>\n </div>\n <ng-container *ngIf=\"isImage; else otherFile\">\n <img [src]=\"fileUrl\" class=\"img-fluid\" alt=\"File Preview\" />\n </ng-container>\n <ng-template #otherFile>\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\n </ng-template>\n </div>\n </div>\n</div>\n\n\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:#
|
|
212
|
+
args: [{ selector: 'app-file-upload', template: "<div class=\"row\" style=\"margin: 0;\">\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\n <!-- HA 19DEC23 For translation -->\n <label class=\"she-label\">{{ 'attachment' | i18n:i18nService.currentLanguage }}</label>\n </div>\n <div class=\"col-lg-5 document-cnt m-t-10 m-b-10\"\n *ngFor=\"let eachFile of copyOfInputAllFiles; let currentFileIndex = index\">\n <div *ngIf=\"!tableFile\"> <!-- (click)=\"viewFile(eachFile)\" -->\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(eachFile?.name)\">\n </div>\n <div class=\"col-lg-9 document_name\">\n {{eachFile?.name}}\n </div>\n <div class=\"document_delete\" (click)=\"deleteFile(currentFileIndex);$event.stopPropagation()\" *ngIf=\"isDeleteFileButtonVisible\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/bin.svg\">\n </div>\n <!-- VD 20May24 - preview changes-->\n <div class=\"preview-icon\" (click)=\"viewFile(eachFile)\" *ngIf=\"isDeleteFileButtonVisible\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/icons8-eye-24.png\">\n </div>\n </div>\n <div *ngIf=\"tableFile\" class=\"row\" style=\"cursor: pointer;\">\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(eachFile?.doc)\" style=\"margin-right: 10px;height: 40px;\">\n </div>\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\n {{eachFile?.name}}\n </div>\n </div>\n </div>\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"copyOfInputAllFiles?.length === 0 && isShowNoFileIcon\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <label class=\"custom-file\" *ngIf=\"isDeleteFileButtonVisible && !tableFile\">\n <!-- HA 19DEC23 For translation -->\n <!-- VD 03May24 file upload fix-->\n <button [class]=\"error ? 'she-btn-primary-bordered Invalid' : 'she-btn-primary-bordered'\" style=\"width:275px;\" (click)=\"fileInput.click()\"\n [ngClass]=\"{ 'btn-disabled': copyOfInputAllFiles?.length >= copyOfFileUploadingLimit }\" [disabled]=\"copyOfInputAllFiles?.length >= copyOfFileUploadingLimit\"\n >Choose Files</button>\n\n <input #fileInput type=\"file\" name=\"fileUpload\" multiple=\"multiple\" accept=\"*\" style=\"display:none;\"\n (change) = uploadMultipleFiles($event)\n />\n </label>\n<!-- HA 19DEC23 For translation -->\n <label *ngIf=\"tableFile\" class=\"btn btn-primary\">\n {{ 'uploadFile' | i18n:i18nService.currentLanguage }}\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)= uploadMultipleFiles($event) />\n </label>\n <!-- <span class=\"error-msg\" *ngIf=\"(formControl?.documents?.touched || formControl?.documents?.dirty) &&\n formControl?.documents?.errors?.required\">\n {{LM_POLICY_VALIDATION_MESSAGE.REQUIRED}}\n </span> -->\n</div>\n<div *ngIf=\"error\" class=\"error-msg\" style=\"margin-top: 10px;\">{{question?.Error_Message__c}}</div>\n<div class=\"nxt-file-overlay\" *ngIf=\"showFile\">\n <div class=\"nxt-file-map-modal\">\n <div class=\"nxt-file-model-content\">\n <div class=\"nxt-file-model-header\">\n <h4>{{fileName}}</h4>\n <button class=\"close-button\" (click)=\"close()\">X</button>\n </div>\n <ng-container *ngIf=\"isImage; else otherFile\">\n <img [src]=\"fileUrl\" class=\"img-fluid\" alt=\"File Preview\" />\n </ng-container>\n <ng-template #otherFile>\n <iframe [src]=\"fileUrl\" width=\"100%\" height=\"500px\"></iframe>\n </ng-template>\n </div>\n </div>\n</div>\n\n\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"] }]
|
|
213
213
|
}], ctorParameters: function () { return [{ type: i1.SharedService }, { type: i2.DataService }, { type: i3.DomSanitizer }, { type: i4.I18nService }]; }, propDecorators: { selectedFileData: [{
|
|
214
214
|
type: Output
|
|
215
215
|
}], deletedFileData: [{
|
|
@@ -229,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
229
229
|
}], error: [{
|
|
230
230
|
type: Input
|
|
231
231
|
}] } });
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBc0MsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBV2pILE1BQU0sT0FBTyxtQkFBbUI7SUFtQlY7SUFBdUM7SUFBaUM7SUFDbkY7SUFuQkMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUM3QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxRQUFRLENBQUM7SUFDVCxrQkFBa0IsQ0FBQztJQUNuQix5QkFBeUIsQ0FBQztJQUMxQixnQkFBZ0IsQ0FBQztJQUNqQixTQUFTLENBQUMsQ0FBRSx5QkFBeUI7SUFDckMsUUFBUSxDQUFDO0lBQ1QsS0FBSyxDQUFLO0lBRVoscUJBQXFCLEdBQWEsRUFBRSxDQUFDO0lBQ3JDLG1CQUFtQixDQUFDO0lBQ3BCLHdCQUF3QixDQUFDO0lBQ3pCLE9BQU8sQ0FBQztJQUNSLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLFdBQVcsQ0FBTTtJQUNqQixZQUFvQixhQUE0QixFQUFXLFdBQXdCLEVBQVMsU0FBdUIsRUFDMUcsV0FBd0I7UUFEYixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFXLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVMsY0FBUyxH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QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LE91dHB1dCxFdmVudEVtaXR0ZXIsIElucHV0ICxFbGVtZW50UmVmLCBPbkNoYW5nZXMsU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBIQSAxOURFQzIzIGltcG9ydGVkIHRyYW5zbGF0aW9uIHNlcnZpY2VcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaGFyZWQuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZpbGUtdXBsb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25DaGFuZ2VzIHtcbiAgQE91dHB1dCgpIHNlbGVjdGVkRmlsZURhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkgZGVsZXRlZEZpbGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGFsbEZpbGVzO1xuICBASW5wdXQoKSBsaW1pdEZpbGVVcGxvYWRpbmc7XG4gIEBJbnB1dCgpIGlzRGVsZXRlRmlsZUJ1dHRvblZpc2libGU7XG4gIEBJbnB1dCgpIGlzU2hvd05vRmlsZUljb247XG4gIEBJbnB1dCgpIHRhYmxlRmlsZTsgIC8vIGZpbGUgVXBsb2FkIGZyb20gdGFibGVcbiAgQElucHV0KCkgcXVlc3Rpb247XG4gIEBJbnB1dCgpIGVycm9yOmFueTtcblxuICBwdWJsaWMgc2VsZWN0ZWRGaWxlTmFtZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgY29weU9mSW5wdXRBbGxGaWxlcztcbiAgcHVibGljIGNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdDtcbiAgcHVibGljIGZpbGVVcmw7XG4gIHB1YmxpYyBzaG93RmlsZSA9IGZhbHNlO1xuICBwdWJsaWMgaXNJbWFnZSA9IGZhbHNlO1xuICBwdWJsaWMgZmlsZU5hbWUgPSAnJztcbiAgY3VycmVudEZpbGU6IGFueTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBTaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLCAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UscHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7IH1cbiAgLy8gVkQgMDNNYXkyNCBmaWxlIHVwbG9hZCBmaXhcbiAgLy8gb25GaWxlVXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgLy8gICBjb25zdCBmaWxlVXBsb2FkZXJFbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAvLyAgICAgJ2ZpbGVVcGxvYWQnXG4gIC8vICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgLy8gICBmaWxlVXBsb2FkZXJFbGVtZW50LmNsaWNrKCk7XG4gIC8vIH1cblxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc29sZS5sb2coJ3NpbXBsZSBjaGFuZ2VzJywgc2ltcGxlQ2hhbmdlcyk7XG4gICAgaWYgKHNpbXBsZUNoYW5nZXMuYWxsRmlsZXMpIHsgIC8vU0tTNU5PVjI1XG4gICAgICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPSBzaW1wbGVDaGFuZ2VzLmFsbEZpbGVzLmN1cnJlbnRWYWx1ZSB8fCBbXTtcbiAgICB9XG5cbiAgICBpZiAoc2ltcGxlQ2hhbmdlcy5saW1pdEZpbGVVcGxvYWRpbmcpIHtcbiAgICAgIHRoaXMuY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0ID0gc2ltcGxlQ2hhbmdlcy5saW1pdEZpbGVVcGxvYWRpbmc/LmN1cnJlbnRWYWx1ZTtcbiAgICB9XG5cbiAgfVxuXG4gIHVwbG9hZE11bHRpcGxlRmlsZXMoZXZlbnQ6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdGaWxlIHVwbG9hZGVyIGluaXRpYXRlZCcpO1xuICAgIGxldCBpbnB1dEZpbGVzOiBhbnlbXSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA/IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA6IFtdO1xuICAgIGNvbnN0IHNlbGVjdGVkRmlsZURhdGEgPSBbXTtcbiAgICBjb25zdCB1cGxvYWRlZEZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgIGlmICh1cGxvYWRlZEZpbGVzLmxlbmd0aCArIGlucHV0RmlsZXMubGVuZ3RoIDw9IHRoaXMuY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0KSB7XG4gICAgICBjb25zdCByZWFkRmlsZXNQcm9taXNlcyA9IFtdO1xuICBcbiAgICAgIGZvciAoY29uc3QgZWFjaFVwbG9hZGVkRmlsZSBvZiB1cGxvYWRlZEZpbGVzKSB7XG4gICAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBlYWNoVXBsb2FkZWRGaWxlO1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgXG4gICAgICAgIC8vIENyZWF0ZSBhIHByb21pc2UgZm9yIGVhY2ggZmlsZSByZWFkXG4gICAgICAgIGNvbnN0IGZpbGVSZWFkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICBcbiAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsZURhdGEgPSB7XG4gICAgICAgICAgICAgIGRvYzogcmVhZGVyLnJlc3VsdCxcbiAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgIGZvcm1hdCxcbiAgICAgICAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgICAgICB9O1xuICBcbiAgICAgICAgICAgIHNlbGVjdGVkRmlsZURhdGEucHVzaChmaWxlRGF0YSk7XG4gICAgICAgICAgICBpbnB1dEZpbGVzLnB1c2goZmlsZURhdGEpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH07XG4gIFxuICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gIFxuICAgICAgICByZWFkRmlsZXNQcm9taXNlcy5wdXNoKGZpbGVSZWFkUHJvbWlzZSk7XG4gICAgICB9XG4gIFxuICAgICAgLy8gV2FpdCBmb3IgYWxsIHByb21pc2VzIHRvIHJlc29sdmVcbiAgICAgIFByb21pc2UuYWxsKHJlYWRGaWxlc1Byb21pc2VzKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID0gaW5wdXRGaWxlcztcbiAgICAgICAgY29uc29sZS5sb2coJ3VwbG9hZGVkRmlsZXMnLCBpbnB1dEZpbGVzKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGVEYXRhLmVtaXQoaW5wdXRGaWxlcyk7XG4gICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlYWRpbmcgZmlsZXMnKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1lvdSBjYW4gdXBsb2FkIG1heCA1IGZpbGVzJyk7XG4gICAgICAvLyB0aGlzLnRvYXN0ci53YXJuaW5nKFRPQVNURVJfTUVTU0FHRVMuTUFYX0ZJVkVfRklMRVMsIFRPQVNURVJfTUVTU0FHRVMuV0FSTklOR19USVRMRSk7XG4gICAgfVxuICBcbiAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgfVxuICBcblxuICAvLyB1cGxvYWRNdWx0aXBsZUZpbGVzKGV2ZW50OiBhbnkpIHtcbiAgLy8gICBjb25zb2xlLmxvZygnRmlsZSB1cGxvYWRlciBpbml0aWF0ZWQnKTtcbiAgLy8gICBsZXQgaW5wdXRGaWxlczogYW55W10gPSB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPyB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgOiBbXTtcbiAgLy8gICBjb25zdCBzZWxlY3RlZEZpbGVEYXRhID0gW107XG4gIC8vICAgY29uc3QgdXBsb2FkZWRGaWxlcyA9IGV2ZW50LnRhcmdldC5maWxlcztcbiAgLy8gICBpZiAodXBsb2FkZWRGaWxlcy5sZW5ndGggKyBpbnB1dEZpbGVzLmxlbmd0aCA8PSB0aGlzLmNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdCkge1xuICAvLyAgICAgZm9yIChjb25zdCBlYWNoVXBsb2FkZWRGaWxlIG9mIHVwbG9hZGVkRmlsZXMpIHtcbiAgLy8gICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgLy8gICAgICAgY29uc3QgZmlsZTogRmlsZSA9IGVhY2hVcGxvYWRlZEZpbGU7XG4gIC8vICAgICAgIGNvbnN0IGZvcm1hdCA9IGZpbGUubmFtZS5zcGxpdCgnLicpWzFdO1xuICAvLyAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgLy8gICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgLy8gICAgICAgICBzZWxlY3RlZEZpbGVEYXRhLnB1c2goe1xuICAvLyAgICAgICAgICAgZG9jOiByZWFkZXIucmVzdWx0LFxuICAvLyAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAvLyAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAvLyAgICAgICAgICAgZm9ybWF0LFxuICAvLyAgICAgICAgICAgaWQ6IG51bGwsXG4gIC8vICAgICAgICAgfSk7XG4gIC8vICAgICAgICAgaW5wdXRGaWxlcy5wdXNoKHtcbiAgLy8gICAgICAgICAgIGRvYzogcmVhZGVyLnJlc3VsdCxcbiAgLy8gICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgLy8gICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgLy8gICAgICAgICAgIGZvcm1hdCxcbiAgLy8gICAgICAgICAgIGlkOiBudWxsLFxuICAvLyAgICAgICAgIH0pO1xuICAvLyAgICAgICB9O1xuICAvLyAgICAgfVxuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICBjb25zb2xlLndhcm4oJ1lvdSBjYW4gdXBsb2FkIG1heCA1IGZpbGVzJyk7XG4gIC8vICAgICAvL3RoaXMudG9hc3RyLndhcm5pbmcoVE9BU1RFUl9NRVNTQUdFUy5NQVhfRklWRV9GSUxFUywgVE9BU1RFUl9NRVNTQUdFUy5XQVJOSU5HX1RJVExFKTtcbiAgLy8gICB9XG4gIC8vICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XG4gIC8vICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID0gaW5wdXRGaWxlcztcbiAgLy8gICBjb25zb2xlLmxvZygndXBsb2FkZWRGaWxlcycsaW5wdXRGaWxlcyk7XG4gIC8vICAgdGhpcy5zZWxlY3RlZEZpbGVEYXRhLmVtaXQoaW5wdXRGaWxlcyk7XG4gIC8vIH1cblxuXG4gIGRlbGV0ZUZpbGUoY3VycmVudEZpbGVJbmRleCkge1xuICAgICAgICBjb25zdCBkZWxldGVkRmlsZU5hbWUgPSB0aGlzLnNlbGVjdGVkRmlsZU5hbWVBcnJheS5zcGxpY2UoY3VycmVudEZpbGVJbmRleCwgMSk7XG4gICAgICAgIGNvbnN0IGRlbGV0ZWRGaWxlID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzLnNwbGljZShjdXJyZW50RmlsZUluZGV4LCAxKTtcbiAgICAgICAgY29uc29sZS5sb2coJ2VtaXQnLCBkZWxldGVkRmlsZVswXSk7XG4gICAgICAgIHRoaXMuZGVsZXRlZEZpbGVEYXRhLmVtaXQoZGVsZXRlZEZpbGVbMF0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZURhdGEuZW1pdCh0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMpO1xuICB9XG5cblxuLy8gVkQgMjBNYXkyNCAtIHByZXZpZXcgY2hhbmdlc1xuICB2aWV3RmlsZShjdXJyZW50RmlsZSkge1xuICAgIHRoaXMuY3VycmVudEZpbGUgPSBjdXJyZW50RmlsZTtcbiAgICB0aGlzLnNob3dGaWxlID0gdHJ1ZTtcbiAgICBjb25zb2xlLmxvZyhjdXJyZW50RmlsZSk7XG4gICAgaWYodGhpcy5xdWVzdGlvbi5TdWJfVGV4dF9fYyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBmaWxlTWV0YSA9IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5TdWJfVGV4dF9fYyk7XG4gICAgICBsZXQgZW5kcG9pbnQgPSBmaWxlTWV0YS5lbmRwb2ludDtcbiAgICAgIGxldCBxdWVyeVBhcmFtZXRlciA9IGZpbGVNZXRhLnF1ZXJ5UGFyYW1ldGVyO1xuICAgICAgICBsZXQgZmlsZSA9IGN1cnJlbnRGaWxlO1xuICAgICAgICAgIGlmKGVuZHBvaW50KXtcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxFbmRQb2ludCA9IGVuZHBvaW50ICsgJz8nKyBxdWVyeVBhcmFtZXRlciArICc9JyArIGZpbGVbcXVlcnlQYXJhbWV0ZXJdO1xuICAgICAgICAgICAgaWYoZnVsbEVuZFBvaW50KXtcbiAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5hcGlSZXNwb25zZShmdWxsRW5kUG9pbnQpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBpZihhcGlSZXNwb25zZSl7XG4gICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUZpbGVDb250ZW50KGFwaVJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICB9XG4gICAgICAgfVxuICAgIH1lbHNlIHtcbiAgICAgICAgdGhpcy52aWV3TG9jYWxGaWxlKClcbiAgICB9XG4gIH1cblxuLy8gLy8gVkQgMDNBdWcyNCBwcm9jZXNzIGxvY2FsIHByZXZpZXcgXG4gIHZpZXdMb2NhbEZpbGUoKXtcbiAgICBpZih0aGlzLmN1cnJlbnRGaWxlKXtcbiAgICAgIHRoaXMuc2V0RmlsZVVybCh0aGlzLmN1cnJlbnRGaWxlPy5kb2MpO1xuICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuY3VycmVudEZpbGUubmFtZTtcbiAgICAgIHRoaXMuaXNJbWFnZSA9IHRoaXMuY3VycmVudEZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKTtcbiAgICB9XG5cbiAgfVxuXG4gXG4gIGhhbmRsZUZpbGVDb250ZW50KGZpbGVSZXNwb25zZTogYW55KSB7XG4gICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoZmlsZVJlc3BvbnNlLmNvbnRlbnQuZGF0YSk7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IGZpbGVSZXNwb25zZS50eXBlIH0pO1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIHRoaXMuc2V0RmlsZVVybCh1cmwpO1xuICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xuICAgIGlmKGZpbGVSZXNwb25zZS5uYW1lKXtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSBmaWxlUmVzcG9uc2UubmFtZTtcbiAgICAgIGNvbnN0IGltYWdlRXh0ZW5zaW9ucyA9IFsnanBnJywgJ2pwZWcnLCAncG5nJywgJ2dpZicsICdibXAnLCAnd2VicCddO1xuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVSZXNwb25zZS5uYW1lLnNwbGl0KCcuJykucG9wKCk/LnRvTG93ZXJDYXNlKCk7XG4gICAgICB0aGlzLmlzSW1hZ2UgPSBpbWFnZUV4dGVuc2lvbnMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbiB8fCAnJyk7XG4gICAgfVxuICB9XG5cbiAgc2V0RmlsZVVybCh1cmw6IHN0cmluZykge1xuICAgIHRoaXMuZmlsZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwpO1xuICB9XG5cbiAgZ2V0RG9jSWNvbihkb2NOYW1lKSB7XG4gICAgY29uc3QgZXh0ID0gZG9jTmFtZS5zcGxpdCgnLicpLnBvcCgtMSk7XG4gICAgcmV0dXJuIHRoaXMuU2hhcmVkU2VydmljZS5kb2NJY29uKGV4dCk7XG4gIH1cblxuICBjbG9zZSgpe1xuICAgIHRoaXMuc2hvd0ZpbGUgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVOYW1lID0gJyc7XG4gICAgdGhpcy5maWxlVXJsID0gJyc7XG4gICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuZmlsZVVybCkge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmZpbGVVcmwpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW46IDA7XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdJZj1cIiFpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPlxuICAgIDwhLS0gSEEgMTlERUMyMyBGb3IgdHJhbnNsYXRpb24gLS0+XG4gICAgPGxhYmVsIGNsYXNzPVwic2hlLWxhYmVsXCI+e3sgJ2F0dGFjaG1lbnQnIHwgaTE4bjppMThuU2VydmljZS5jdXJyZW50TGFuZ3VhZ2UgfX08L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbC1sZy01IGRvY3VtZW50LWNudCBtLXQtMTAgbS1iLTEwXCJcbiAgICAqbmdGb3I9XCJsZXQgZWFjaEZpbGUgb2YgY29weU9mSW5wdXRBbGxGaWxlczsgbGV0IGN1cnJlbnRGaWxlSW5kZXggPSBpbmRleFwiPlxuICAgICA8ZGl2ICpuZ0lmPVwiIXRhYmxlRmlsZVwiPiA8IS0tIChjbGljayk9XCJ2aWV3RmlsZShlYWNoRmlsZSlcIiAgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgZG9jdW1lbnRfaW1hZ2VcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cImdldERvY0ljb24oZWFjaEZpbGU/Lm5hbWUpXCI+XG4gICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTkgZG9jdW1lbnRfbmFtZVwiPlxuICAgICAgICB7e2VhY2hGaWxlPy5uYW1lfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50X2RlbGV0ZVwiIChjbGljayk9XCJkZWxldGVGaWxlKGN1cnJlbnRGaWxlSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiICpuZ0lmPVwiaXNEZWxldGVGaWxlQnV0dG9uVmlzaWJsZVwiPlxuICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcm54dC5zMy5hbWF6b25hd3MuY29tL0ljb25zL2ZpbGVUeXBlSWNvbnMvYmluLnN2Z1wiPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFZEIDIwTWF5MjQgLSBwcmV2aWV3IGNoYW5nZXMtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWljb25cIiAoY2xpY2spPVwidmlld0ZpbGUoZWFjaEZpbGUpXCIgKm5nSWY9XCJpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9ybnh0LnMzLmFtYXpvbmF3cy5jb20vSWNvbnMvZmlsZVR5cGVJY29ucy9pY29uczgtZXllLTI0LnBuZ1wiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInRhYmxlRmlsZVwiIGNsYXNzPVwicm93XCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgZG9jdW1lbnRfaW1hZ2VcIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZ2V0RG9jSWNvbihlYWNoRmlsZT8uZG9jKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O2hlaWdodDogNDBweDtcIj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05IGRvY3VtZW50X25hbWVcIiBzdHlsZT1cIm92ZXJmbG93OmhpZGRlbjtoZWlnaHQ6MzVweDtcIj5cbiAgICAgICAgICB7e2VhY2hGaWxlPy5uYW1lfX1cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbS1iLTMwIHRleHQtY2VudGVyXCIgKm5nSWY9XCJjb3B5T2ZJbnB1dEFsbEZpbGVzPy5sZW5ndGggPT09IDAgJiYgaXNTaG93Tm9GaWxlSWNvblwiPlxuICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9ybnh0LnMzLmFtYXpvbmF3cy5jb20vSWNvbnMvZmlsZVR5cGVJY29ucy9pY19ub19hdHRhY2htZW50cy5zdmdcIiBzdHlsZT1cImhlaWdodDogMTQwcHg7XCI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb2wtbGctNlwiIHN0eWxlPVwicGFkZGluZzowO21hcmdpbi10b3A6IDEwcHg7XCI+XG4gIDxsYWJlbCBjbGFzcz1cImN1c3RvbS1maWxlXCIgKm5nSWY9XCJpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlICYmICF0YWJsZUZpbGVcIj5cbiAgICA8IS0tIEhBIDE5REVDMjMgRm9yIHRyYW5zbGF0aW9uIC0tPlxuICAgIDwhLS0gVkQgMDNNYXkyNCBmaWxlIHVwbG9hZCBmaXgtLT5cbiAgICA8YnV0dG9uIFtjbGFzc109XCJlcnJvciA/ICdzaGUtYnRuLXByaW1hcnktYm9yZGVyZWQgSW52YWxpZCcgOiAnc2hlLWJ0bi1wcmltYXJ5LWJvcmRlcmVkJ1wiIHN0eWxlPVwid2lkdGg6Mjc1cHg7XCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCJcbiAgICBbbmdDbGFzc109XCJ7ICdidG4tZGlzYWJsZWQnOiBjb3B5T2ZJbnB1dEFsbEZpbGVzPy5sZW5ndGggPj0gY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0IH1cIiBbZGlzYWJsZWRdPVwiY29weU9mSW5wdXRBbGxGaWxlcz8ubGVuZ3RoID49IGNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdFwiXG4gICAgPkNob29zZSBGaWxlczwvYnV0dG9uPlxuXG4gICAgPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiAgbmFtZT1cImZpbGVVcGxvYWRcIiBtdWx0aXBsZT1cIm11bHRpcGxlXCIgYWNjZXB0PVwiKlwiIHN0eWxlPVwiZGlzcGxheTpub25lO1wiXG4gICAgKGNoYW5nZSkgPSB1cGxvYWRNdWx0aXBsZUZpbGVzKCRldmVudClcbiAgICAvPlxuICA8L2xhYmVsPlxuPCEtLSBIQSAxOURFQzIzIEZvciB0cmFuc2xhdGlvbiAtLT5cbiAgPGxhYmVsICpuZ0lmPVwidGFibGVGaWxlXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj5cbiAgICB7eyAndXBsb2FkRmlsZScgfCBpMThuOmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSB9fVxuICAgIDxpbnB1dCBpZD1cImZpbGVcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgdHlwZT1cImZpbGVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIChjaGFuZ2UpPSB1cGxvYWRNdWx0aXBsZUZpbGVzKCRldmVudCkgLz5cbiAgPC9sYWJlbD5cbiAgPCEtLSA8c3BhbiBjbGFzcz1cImVycm9yLW1zZ1wiICpuZ0lmPVwiKGZvcm1Db250cm9sPy5kb2N1bWVudHM/LnRvdWNoZWQgfHwgICAgICAgIGZvcm1Db250cm9sPy5kb2N1bWVudHM/LmRpcnR5KSAmJlxuICBmb3JtQ29udHJvbD8uZG9jdW1lbnRzPy5lcnJvcnM/LnJlcXVpcmVkXCI+XG4gICAge3tMTV9QT0xJQ1lfVkFMSURBVElPTl9NRVNTQUdFLlJFUVVJUkVEfX1cbiAgPC9zcGFuPiAtLT5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJlcnJvci1tc2dcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCI+e3txdWVzdGlvbj8uRXJyb3JfTWVzc2FnZV9fY319PC9kaXY+XG48ZGl2IGNsYXNzPVwibnh0LWZpbGUtb3ZlcmxheVwiICpuZ0lmPVwic2hvd0ZpbGVcIj5cbiAgPGRpdiBjbGFzcz1cIm54dC1maWxlLW1hcC1tb2RhbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJueHQtZmlsZS1tb2RlbC1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibnh0LWZpbGUtbW9kZWwtaGVhZGVyXCI+XG4gICAgICAgIDxoND57e2ZpbGVOYW1lfX08L2g0PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5YPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ltYWdlOyBlbHNlIG90aGVyRmlsZVwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiZmlsZVVybFwiIGNsYXNzPVwiaW1nLWZsdWlkXCIgYWx0PVwiRmlsZSBQcmV2aWV3XCIgLz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNvdGhlckZpbGU+XG4gICAgICAgIDxpZnJhbWUgW3NyY109XCJmaWxlVXJsXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiNTAwcHhcIj48L2lmcmFtZT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuIl19
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBc0MsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBV2pILE1BQU0sT0FBTyxtQkFBbUI7SUFtQlY7SUFBdUM7SUFBaUM7SUFDbkY7SUFuQkMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUM3QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxRQUFRLENBQUM7SUFDVCxrQkFBa0IsQ0FBQztJQUNuQix5QkFBeUIsQ0FBQztJQUMxQixnQkFBZ0IsQ0FBQztJQUNqQixTQUFTLENBQUMsQ0FBRSx5QkFBeUI7SUFDckMsUUFBUSxDQUFDO0lBQ1QsS0FBSyxDQUFLO0lBRVoscUJBQXFCLEdBQWEsRUFBRSxDQUFDO0lBQ3JDLG1CQUFtQixDQUFDO0lBQ3BCLHdCQUF3QixDQUFDO0lBQ3pCLE9BQU8sQ0FBQztJQUNSLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLFdBQVcsQ0FBTTtJQUNqQixZQUFvQixhQUE0QixFQUFXLFdBQXdCLEVBQVMsU0FBdUIsRUFDMUcsV0FBd0I7UUFEYixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFXLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVMsY0FBUyxH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QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LE91dHB1dCxFdmVudEVtaXR0ZXIsIElucHV0ICxFbGVtZW50UmVmLCBPbkNoYW5nZXMsU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBIQSAxOURFQzIzIGltcG9ydGVkIHRyYW5zbGF0aW9uIHNlcnZpY2VcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaGFyZWQuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZpbGUtdXBsb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25DaGFuZ2VzIHtcbiAgQE91dHB1dCgpIHNlbGVjdGVkRmlsZURhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkgZGVsZXRlZEZpbGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGFsbEZpbGVzO1xuICBASW5wdXQoKSBsaW1pdEZpbGVVcGxvYWRpbmc7XG4gIEBJbnB1dCgpIGlzRGVsZXRlRmlsZUJ1dHRvblZpc2libGU7XG4gIEBJbnB1dCgpIGlzU2hvd05vRmlsZUljb247XG4gIEBJbnB1dCgpIHRhYmxlRmlsZTsgIC8vIGZpbGUgVXBsb2FkIGZyb20gdGFibGVcbiAgQElucHV0KCkgcXVlc3Rpb247XG4gIEBJbnB1dCgpIGVycm9yOmFueTtcblxuICBwdWJsaWMgc2VsZWN0ZWRGaWxlTmFtZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgY29weU9mSW5wdXRBbGxGaWxlcztcbiAgcHVibGljIGNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdDtcbiAgcHVibGljIGZpbGVVcmw7XG4gIHB1YmxpYyBzaG93RmlsZSA9IGZhbHNlO1xuICBwdWJsaWMgaXNJbWFnZSA9IGZhbHNlO1xuICBwdWJsaWMgZmlsZU5hbWUgPSAnJztcbiAgY3VycmVudEZpbGU6IGFueTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBTaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLCAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UscHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7IH1cbiAgLy8gVkQgMDNNYXkyNCBmaWxlIHVwbG9hZCBmaXhcbiAgLy8gb25GaWxlVXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgLy8gICBjb25zdCBmaWxlVXBsb2FkZXJFbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAvLyAgICAgJ2ZpbGVVcGxvYWQnXG4gIC8vICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgLy8gICBmaWxlVXBsb2FkZXJFbGVtZW50LmNsaWNrKCk7XG4gIC8vIH1cblxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc29sZS5sb2coJ3NpbXBsZSBjaGFuZ2VzJywgc2ltcGxlQ2hhbmdlcyk7XG4gICAgaWYgKHNpbXBsZUNoYW5nZXMuYWxsRmlsZXMpIHsgIC8vU0tTNU5PVjI1XG4gICAgICB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPSBzaW1wbGVDaGFuZ2VzLmFsbEZpbGVzLmN1cnJlbnRWYWx1ZSB8fCBbXTtcbiAgICB9XG5cbiAgICBpZiAoc2ltcGxlQ2hhbmdlcy5saW1pdEZpbGVVcGxvYWRpbmcpIHtcbiAgICAgIHRoaXMuY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0ID0gc2ltcGxlQ2hhbmdlcy5saW1pdEZpbGVVcGxvYWRpbmc/LmN1cnJlbnRWYWx1ZTtcbiAgICB9XG5cbiAgfVxuXG4gIHVwbG9hZE11bHRpcGxlRmlsZXMoZXZlbnQ6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdGaWxlIHVwbG9hZGVyIGluaXRpYXRlZCcpO1xuICAgIGxldCBpbnB1dEZpbGVzOiBhbnlbXSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA/IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA6IFtdO1xuICAgIGNvbnN0IHNlbGVjdGVkRmlsZURhdGEgPSBbXTtcbiAgICBjb25zdCB1cGxvYWRlZEZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgIGlmICh1cGxvYWRlZEZpbGVzLmxlbmd0aCArIGlucHV0RmlsZXMubGVuZ3RoIDw9IHRoaXMuY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0KSB7XG4gICAgICBjb25zdCByZWFkRmlsZXNQcm9taXNlcyA9IFtdO1xuICBcbiAgICAgIGZvciAoY29uc3QgZWFjaFVwbG9hZGVkRmlsZSBvZiB1cGxvYWRlZEZpbGVzKSB7XG4gICAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBlYWNoVXBsb2FkZWRGaWxlO1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgXG4gICAgICAgIC8vIENyZWF0ZSBhIHByb21pc2UgZm9yIGVhY2ggZmlsZSByZWFkXG4gICAgICAgIGNvbnN0IGZpbGVSZWFkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICBcbiAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsZURhdGEgPSB7XG4gICAgICAgICAgICAgIGRvYzogcmVhZGVyLnJlc3VsdCxcbiAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgIGZvcm1hdCxcbiAgICAgICAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgICAgICB9O1xuICBcbiAgICAgICAgICAgIHNlbGVjdGVkRmlsZURhdGEucHVzaChmaWxlRGF0YSk7XG4gICAgICAgICAgICBpbnB1dEZpbGVzLnB1c2goZmlsZURhdGEpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH07XG4gIFxuICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gIFxuICAgICAgICByZWFkRmlsZXNQcm9taXNlcy5wdXNoKGZpbGVSZWFkUHJvbWlzZSk7XG4gICAgICB9XG4gIFxuICAgICAgLy8gV2FpdCBmb3IgYWxsIHByb21pc2VzIHRvIHJlc29sdmVcbiAgICAgIFByb21pc2UuYWxsKHJlYWRGaWxlc1Byb21pc2VzKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID0gaW5wdXRGaWxlcztcbiAgICAgICAgY29uc29sZS5sb2coJ3VwbG9hZGVkRmlsZXMnLCBpbnB1dEZpbGVzKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGVEYXRhLmVtaXQoaW5wdXRGaWxlcyk7XG4gICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlYWRpbmcgZmlsZXMnKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1lvdSBjYW4gdXBsb2FkIG1heCA1IGZpbGVzJyk7XG4gICAgICAvLyB0aGlzLnRvYXN0ci53YXJuaW5nKFRPQVNURVJfTUVTU0FHRVMuTUFYX0ZJVkVfRklMRVMsIFRPQVNURVJfTUVTU0FHRVMuV0FSTklOR19USVRMRSk7XG4gICAgfVxuICBcbiAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgfVxuICBcblxuICAvLyB1cGxvYWRNdWx0aXBsZUZpbGVzKGV2ZW50OiBhbnkpIHtcbiAgLy8gICBjb25zb2xlLmxvZygnRmlsZSB1cGxvYWRlciBpbml0aWF0ZWQnKTtcbiAgLy8gICBsZXQgaW5wdXRGaWxlczogYW55W10gPSB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgPyB0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMgOiBbXTtcbiAgLy8gICBjb25zdCBzZWxlY3RlZEZpbGVEYXRhID0gW107XG4gIC8vICAgY29uc3QgdXBsb2FkZWRGaWxlcyA9IGV2ZW50LnRhcmdldC5maWxlcztcbiAgLy8gICBpZiAodXBsb2FkZWRGaWxlcy5sZW5ndGggKyBpbnB1dEZpbGVzLmxlbmd0aCA8PSB0aGlzLmNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdCkge1xuICAvLyAgICAgZm9yIChjb25zdCBlYWNoVXBsb2FkZWRGaWxlIG9mIHVwbG9hZGVkRmlsZXMpIHtcbiAgLy8gICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgLy8gICAgICAgY29uc3QgZmlsZTogRmlsZSA9IGVhY2hVcGxvYWRlZEZpbGU7XG4gIC8vICAgICAgIGNvbnN0IGZvcm1hdCA9IGZpbGUubmFtZS5zcGxpdCgnLicpWzFdO1xuICAvLyAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgLy8gICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgLy8gICAgICAgICBzZWxlY3RlZEZpbGVEYXRhLnB1c2goe1xuICAvLyAgICAgICAgICAgZG9jOiByZWFkZXIucmVzdWx0LFxuICAvLyAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAvLyAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAvLyAgICAgICAgICAgZm9ybWF0LFxuICAvLyAgICAgICAgICAgaWQ6IG51bGwsXG4gIC8vICAgICAgICAgfSk7XG4gIC8vICAgICAgICAgaW5wdXRGaWxlcy5wdXNoKHtcbiAgLy8gICAgICAgICAgIGRvYzogcmVhZGVyLnJlc3VsdCxcbiAgLy8gICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgLy8gICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgLy8gICAgICAgICAgIGZvcm1hdCxcbiAgLy8gICAgICAgICAgIGlkOiBudWxsLFxuICAvLyAgICAgICAgIH0pO1xuICAvLyAgICAgICB9O1xuICAvLyAgICAgfVxuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICBjb25zb2xlLndhcm4oJ1lvdSBjYW4gdXBsb2FkIG1heCA1IGZpbGVzJyk7XG4gIC8vICAgICAvL3RoaXMudG9hc3RyLndhcm5pbmcoVE9BU1RFUl9NRVNTQUdFUy5NQVhfRklWRV9GSUxFUywgVE9BU1RFUl9NRVNTQUdFUy5XQVJOSU5HX1RJVExFKTtcbiAgLy8gICB9XG4gIC8vICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XG4gIC8vICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID0gaW5wdXRGaWxlcztcbiAgLy8gICBjb25zb2xlLmxvZygndXBsb2FkZWRGaWxlcycsaW5wdXRGaWxlcyk7XG4gIC8vICAgdGhpcy5zZWxlY3RlZEZpbGVEYXRhLmVtaXQoaW5wdXRGaWxlcyk7XG4gIC8vIH1cblxuXG4gIGRlbGV0ZUZpbGUoY3VycmVudEZpbGVJbmRleCkge1xuICAgICAgICBjb25zdCBkZWxldGVkRmlsZU5hbWUgPSB0aGlzLnNlbGVjdGVkRmlsZU5hbWVBcnJheS5zcGxpY2UoY3VycmVudEZpbGVJbmRleCwgMSk7XG4gICAgICAgIGNvbnN0IGRlbGV0ZWRGaWxlID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzLnNwbGljZShjdXJyZW50RmlsZUluZGV4LCAxKTtcbiAgICAgICAgY29uc29sZS5sb2coJ2VtaXQnLCBkZWxldGVkRmlsZVswXSk7XG4gICAgICAgIHRoaXMuZGVsZXRlZEZpbGVEYXRhLmVtaXQoZGVsZXRlZEZpbGVbMF0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZURhdGEuZW1pdCh0aGlzLmNvcHlPZklucHV0QWxsRmlsZXMpO1xuICB9XG5cblxuLy8gVkQgMjBNYXkyNCAtIHByZXZpZXcgY2hhbmdlc1xuICB2aWV3RmlsZShjdXJyZW50RmlsZSkge1xuICAgIHRoaXMuY3VycmVudEZpbGUgPSBjdXJyZW50RmlsZTtcbiAgICB0aGlzLnNob3dGaWxlID0gdHJ1ZTtcbiAgICBjb25zb2xlLmxvZyhjdXJyZW50RmlsZSk7XG4gICAgaWYodGhpcy5xdWVzdGlvbi5TdWJfVGV4dF9fYyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBmaWxlTWV0YSA9IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5TdWJfVGV4dF9fYyk7XG4gICAgICBsZXQgZW5kcG9pbnQgPSBmaWxlTWV0YS5lbmRwb2ludDtcbiAgICAgIGxldCBxdWVyeVBhcmFtZXRlciA9IGZpbGVNZXRhLnF1ZXJ5UGFyYW1ldGVyO1xuICAgICAgICBsZXQgZmlsZSA9IGN1cnJlbnRGaWxlO1xuICAgICAgICAgIGlmKGVuZHBvaW50KXtcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxFbmRQb2ludCA9IGVuZHBvaW50ICsgJz8nKyBxdWVyeVBhcmFtZXRlciArICc9JyArIGZpbGVbcXVlcnlQYXJhbWV0ZXJdO1xuICAgICAgICAgICAgaWYoZnVsbEVuZFBvaW50KXtcbiAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5hcGlSZXNwb25zZShmdWxsRW5kUG9pbnQpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBpZihhcGlSZXNwb25zZSl7XG4gICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUZpbGVDb250ZW50KGFwaVJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICB9XG4gICAgICAgfVxuICAgIH1lbHNlIHtcbiAgICAgICAgdGhpcy52aWV3TG9jYWxGaWxlKClcbiAgICB9XG4gIH1cblxuLy8gLy8gVkQgMDNBdWcyNCBwcm9jZXNzIGxvY2FsIHByZXZpZXcgXG4gIHZpZXdMb2NhbEZpbGUoKXtcbiAgICBpZih0aGlzLmN1cnJlbnRGaWxlKXtcbiAgICAgIHRoaXMuc2V0RmlsZVVybCh0aGlzLmN1cnJlbnRGaWxlPy5kb2MpO1xuICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuY3VycmVudEZpbGUubmFtZTtcbiAgICAgIHRoaXMuaXNJbWFnZSA9IHRoaXMuY3VycmVudEZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKTtcbiAgICB9XG5cbiAgfVxuXG4gXG4gIGhhbmRsZUZpbGVDb250ZW50KGZpbGVSZXNwb25zZTogYW55KSB7XG4gICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoZmlsZVJlc3BvbnNlLmNvbnRlbnQuZGF0YSk7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IGZpbGVSZXNwb25zZS50eXBlIH0pO1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIHRoaXMuc2V0RmlsZVVybCh1cmwpO1xuICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xuICAgIGlmKGZpbGVSZXNwb25zZS5uYW1lKXtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSBmaWxlUmVzcG9uc2UubmFtZTtcbiAgICAgIGNvbnN0IGltYWdlRXh0ZW5zaW9ucyA9IFsnanBnJywgJ2pwZWcnLCAncG5nJywgJ2dpZicsICdibXAnLCAnd2VicCddO1xuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVSZXNwb25zZS5uYW1lLnNwbGl0KCcuJykucG9wKCk/LnRvTG93ZXJDYXNlKCk7XG4gICAgICB0aGlzLmlzSW1hZ2UgPSBpbWFnZUV4dGVuc2lvbnMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbiB8fCAnJyk7XG4gICAgfVxuICB9XG5cbiAgc2V0RmlsZVVybCh1cmw6IHN0cmluZykge1xuICAgIHRoaXMuZmlsZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwpO1xuICB9XG5cbiAgZ2V0RG9jSWNvbihkb2NOYW1lKSB7XG4gICAgY29uc3QgZXh0ID0gZG9jTmFtZS5zcGxpdCgnLicpLnBvcCgtMSk7XG4gICAgcmV0dXJuIHRoaXMuU2hhcmVkU2VydmljZS5kb2NJY29uKGV4dCk7XG4gIH1cblxuICBjbG9zZSgpe1xuICAgIHRoaXMuc2hvd0ZpbGUgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVOYW1lID0gJyc7XG4gICAgdGhpcy5maWxlVXJsID0gJyc7XG4gICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuZmlsZVVybCkge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmZpbGVVcmwpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW46IDA7XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdJZj1cIiFpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPlxuICAgIDwhLS0gSEEgMTlERUMyMyBGb3IgdHJhbnNsYXRpb24gLS0+XG4gICAgPGxhYmVsIGNsYXNzPVwic2hlLWxhYmVsXCI+e3sgJ2F0dGFjaG1lbnQnIHwgaTE4bjppMThuU2VydmljZS5jdXJyZW50TGFuZ3VhZ2UgfX08L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbC1sZy01IGRvY3VtZW50LWNudCBtLXQtMTAgbS1iLTEwXCJcbiAgICAqbmdGb3I9XCJsZXQgZWFjaEZpbGUgb2YgY29weU9mSW5wdXRBbGxGaWxlczsgbGV0IGN1cnJlbnRGaWxlSW5kZXggPSBpbmRleFwiPlxuICAgICA8ZGl2ICpuZ0lmPVwiIXRhYmxlRmlsZVwiPiA8IS0tIChjbGljayk9XCJ2aWV3RmlsZShlYWNoRmlsZSlcIiAgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgZG9jdW1lbnRfaW1hZ2VcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cImdldERvY0ljb24oZWFjaEZpbGU/Lm5hbWUpXCI+XG4gICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTkgZG9jdW1lbnRfbmFtZVwiPlxuICAgICAgICB7e2VhY2hGaWxlPy5uYW1lfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50X2RlbGV0ZVwiIChjbGljayk9XCJkZWxldGVGaWxlKGN1cnJlbnRGaWxlSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiICpuZ0lmPVwiaXNEZWxldGVGaWxlQnV0dG9uVmlzaWJsZVwiPlxuICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcm54dC5zMy5hbWF6b25hd3MuY29tL0ljb25zL2ZpbGVUeXBlSWNvbnMvYmluLnN2Z1wiPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFZEIDIwTWF5MjQgLSBwcmV2aWV3IGNoYW5nZXMtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWljb25cIiAoY2xpY2spPVwidmlld0ZpbGUoZWFjaEZpbGUpXCIgKm5nSWY9XCJpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9ybnh0LnMzLmFtYXpvbmF3cy5jb20vSWNvbnMvZmlsZVR5cGVJY29ucy9pY29uczgtZXllLTI0LnBuZ1wiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInRhYmxlRmlsZVwiIGNsYXNzPVwicm93XCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgZG9jdW1lbnRfaW1hZ2VcIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZ2V0RG9jSWNvbihlYWNoRmlsZT8uZG9jKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O2hlaWdodDogNDBweDtcIj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05IGRvY3VtZW50X25hbWVcIiBzdHlsZT1cIm92ZXJmbG93OmhpZGRlbjtoZWlnaHQ6MzVweDtcIj5cbiAgICAgICAgICB7e2VhY2hGaWxlPy5uYW1lfX1cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbS1iLTMwIHRleHQtY2VudGVyXCIgKm5nSWY9XCJjb3B5T2ZJbnB1dEFsbEZpbGVzPy5sZW5ndGggPT09IDAgJiYgaXNTaG93Tm9GaWxlSWNvblwiPlxuICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9ybnh0LnMzLmFtYXpvbmF3cy5jb20vSWNvbnMvZmlsZVR5cGVJY29ucy9pY19ub19hdHRhY2htZW50cy5zdmdcIiBzdHlsZT1cImhlaWdodDogMTQwcHg7XCI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb2wtbGctNlwiIHN0eWxlPVwicGFkZGluZzowO21hcmdpbi10b3A6IDEwcHg7XCI+XG4gIDxsYWJlbCBjbGFzcz1cImN1c3RvbS1maWxlXCIgKm5nSWY9XCJpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlICYmICF0YWJsZUZpbGVcIj5cbiAgICA8IS0tIEhBIDE5REVDMjMgRm9yIHRyYW5zbGF0aW9uIC0tPlxuICAgIDwhLS0gVkQgMDNNYXkyNCBmaWxlIHVwbG9hZCBmaXgtLT5cbiAgICA8YnV0dG9uIFtjbGFzc109XCJlcnJvciA/ICdzaGUtYnRuLXByaW1hcnktYm9yZGVyZWQgSW52YWxpZCcgOiAnc2hlLWJ0bi1wcmltYXJ5LWJvcmRlcmVkJ1wiIHN0eWxlPVwid2lkdGg6Mjc1cHg7XCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCJcbiAgICBbbmdDbGFzc109XCJ7ICdidG4tZGlzYWJsZWQnOiBjb3B5T2ZJbnB1dEFsbEZpbGVzPy5sZW5ndGggPj0gY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0IH1cIiBbZGlzYWJsZWRdPVwiY29weU9mSW5wdXRBbGxGaWxlcz8ubGVuZ3RoID49IGNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdFwiXG4gICAgPkNob29zZSBGaWxlczwvYnV0dG9uPlxuXG4gICAgPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiAgbmFtZT1cImZpbGVVcGxvYWRcIiBtdWx0aXBsZT1cIm11bHRpcGxlXCIgYWNjZXB0PVwiKlwiIHN0eWxlPVwiZGlzcGxheTpub25lO1wiXG4gICAgKGNoYW5nZSkgPSB1cGxvYWRNdWx0aXBsZUZpbGVzKCRldmVudClcbiAgICAvPlxuICA8L2xhYmVsPlxuPCEtLSBIQSAxOURFQzIzIEZvciB0cmFuc2xhdGlvbiAtLT5cbiAgPGxhYmVsICpuZ0lmPVwidGFibGVGaWxlXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj5cbiAgICB7eyAndXBsb2FkRmlsZScgfCBpMThuOmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSB9fVxuICAgIDxpbnB1dCBpZD1cImZpbGVcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgdHlwZT1cImZpbGVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIChjaGFuZ2UpPSB1cGxvYWRNdWx0aXBsZUZpbGVzKCRldmVudCkgLz5cbiAgPC9sYWJlbD5cbiAgPCEtLSA8c3BhbiBjbGFzcz1cImVycm9yLW1zZ1wiICpuZ0lmPVwiKGZvcm1Db250cm9sPy5kb2N1bWVudHM/LnRvdWNoZWQgfHwgICAgICAgIGZvcm1Db250cm9sPy5kb2N1bWVudHM/LmRpcnR5KSAmJlxuICBmb3JtQ29udHJvbD8uZG9jdW1lbnRzPy5lcnJvcnM/LnJlcXVpcmVkXCI+XG4gICAge3tMTV9QT0xJQ1lfVkFMSURBVElPTl9NRVNTQUdFLlJFUVVJUkVEfX1cbiAgPC9zcGFuPiAtLT5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJlcnJvci1tc2dcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCI+e3txdWVzdGlvbj8uRXJyb3JfTWVzc2FnZV9fY319PC9kaXY+XG48ZGl2IGNsYXNzPVwibnh0LWZpbGUtb3ZlcmxheVwiICpuZ0lmPVwic2hvd0ZpbGVcIj5cbiAgPGRpdiBjbGFzcz1cIm54dC1maWxlLW1hcC1tb2RhbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJueHQtZmlsZS1tb2RlbC1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibnh0LWZpbGUtbW9kZWwtaGVhZGVyXCI+XG4gICAgICAgIDxoND57e2ZpbGVOYW1lfX08L2g0PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5YPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ltYWdlOyBlbHNlIG90aGVyRmlsZVwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiZmlsZVVybFwiIGNsYXNzPVwiaW1nLWZsdWlkXCIgYWx0PVwiRmlsZSBQcmV2aWV3XCIgLz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNvdGhlckZpbGU+XG4gICAgICAgIDxpZnJhbWUgW3NyY109XCJmaWxlVXJsXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiNTAwcHhcIj48L2lmcmFtZT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuIl19
|
|
@@ -32,15 +32,15 @@ export class FileViewComponent {
|
|
|
32
32
|
const ext = docName.split('.').pop(-1);
|
|
33
33
|
return this.SharedService.docIcon(ext);
|
|
34
34
|
}
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileViewComponent, deps: [{ token: i1.SharedService }, { token: i2.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FileViewComponent, selector: "app-file-view", inputs: { documentData: "documentData", api: "api" }, ngImport: i0, template: "<div class=\"col-lg-12\">\n <div class=\"row\" style=\"text-align: left;\">\n <div class=\"col-md-12\">\n <!-- HA 19DEC23 For translation -->\n <label class=\"she-label attachment\">{{ 'attachment' | i18n:i18nService.currentLanguage }}</label>\n </div>\n </div>\n <div class=\"row\" style=\"margin: 0;\">\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of documentData;let i = index;\" style=\"margin-bottom: 10px;\">\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\n </div>\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\n {{file?.name}}\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"documentData?.length === 0\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\n </div>\n </div>\n ", styles: [".document-cnt{border:1px solid #48B7FF;border-radius:5px;margin-right:30px}.document_image{background:#48b7ff66;padding:10px}.document_name{padding:15px 5px}.document_delete{position:absolute;background:#c20808;display:block;height:30px;width:30px;border-radius:50px;bottom:32px;right:-15px;cursor:pointer}.document_delete img{position:relative;left:8px;top:3px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] });
|
|
37
37
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileViewComponent, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
|
-
args: [{ selector: 'app-file-view', template: "<div class=\"col-lg-12\">\n <div class=\"row\" style=\"text-align: left;\">\n <div class=\"col-md-12\">\n <!-- HA 19DEC23 For translation -->\n <label class=\"she-label attachment\">{{ 'attachment' | i18n:i18nService.currentLanguage }}</label>\n </div>\n </div>\n <div class=\"row\" style=\"margin: 0;\">\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of documentData;let i = index;\" style=\"margin-bottom: 10px;\">\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\n </div>\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\n {{file?.name}}\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"documentData?.length === 0\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\n </div>\n </div>\n ", styles: [".document-cnt{border:1px solid #48B7FF;border-radius:5px;margin-right:30px}.document_image{background:#
|
|
40
|
+
args: [{ selector: 'app-file-view', template: "<div class=\"col-lg-12\">\n <div class=\"row\" style=\"text-align: left;\">\n <div class=\"col-md-12\">\n <!-- HA 19DEC23 For translation -->\n <label class=\"she-label attachment\">{{ 'attachment' | i18n:i18nService.currentLanguage }}</label>\n </div>\n </div>\n <div class=\"row\" style=\"margin: 0;\">\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of documentData;let i = index;\" style=\"margin-bottom: 10px;\">\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\n </div>\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\n {{file?.name}}\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"documentData?.length === 0\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\n </div>\n </div>\n ", styles: [".document-cnt{border:1px solid #48B7FF;border-radius:5px;margin-right:30px}.document_image{background:#48b7ff66;padding:10px}.document_name{padding:15px 5px}.document_delete{position:absolute;background:#c20808;display:block;height:30px;width:30px;border-radius:50px;bottom:32px;right:-15px;cursor:pointer}.document_delete img{position:relative;left:8px;top:3px}\n"] }]
|
|
41
41
|
}], ctorParameters: function () { return [{ type: i1.SharedService }, { type: i2.I18nService }]; }, propDecorators: { documentData: [{
|
|
42
42
|
type: Input
|
|
43
43
|
}], api: [{
|
|
44
44
|
type: Input
|
|
45
45
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtdmlldy9maWxlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS12aWV3L2ZpbGUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBVXpELE1BQU0sT0FBTyxpQkFBaUI7SUFJUjtJQUNUO0lBSkYsWUFBWSxDQUFDO0lBQ2IsR0FBRyxDQUFDO0lBRWIsWUFBb0IsYUFBNEIsRUFDckMsV0FBd0I7UUFEZixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUM3QixDQUFDO0lBRVAsUUFBUTtJQUNSLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBSTtRQUNUOzs7Ozs7T0FNRDtRQUNELElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEU7UUFDQywwRkFBMEY7SUFDNUYsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFPO1FBQ2hCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO3VHQTVCVSxpQkFBaUI7MkZBQWpCLGlCQUFpQiwyR0NWOUIsd3BDQXVCRTs7MkZEYlcsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7OEhBS2hCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBIQSAxOURFQzIzIGltcG9ydGVkIHRyYW5zbGF0aW9uIHNlcnZpY2VcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaGFyZWQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maWxlLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS12aWV3LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRvY3VtZW50RGF0YTtcbiAgQElucHV0KCkgYXBpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgU2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcbiAgICAgIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2VcbiAgICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgdmlld0RvYyhsaW5rKSB7XG4gICAgIC8qXG4gICAgQXV0aG9yOiBWaW5heSBKYWRoYXZcbiAgICBAZGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gd2lsbCB2aWV3IHRoZSBmaWxlIGZyb20gYXp1cmUgYmxvYi5cbiAgICAgICAgICAgICAgICAgIFRoZSBsaW5rIHBhc3NlZCBhcyBhIHBhcmFtZXRlciB3aWxsIGV4dHJhY3QgZmlsZSBuYW1lIGFuZCBwYXNzIGl0IHRvIHRoZSBzZXJ2aWNlXG4gICAgQHBhcmFtIGxpbms6IEl0IHdpbGwgYWNjZXB0IGEgZG9jIGxpbmtcbiAgICBAcmV0dXJuOiBJdCB3aWxsIG5vdCByZXR1cm4gYW55dGhpbmcgYnV0IGl0IHdpbGwgZWl0aGVyIHNob3cgb3IgZG93bmxvYWQgdGhlIGZpbGUuXG4gICovXG4gICBpZiAobGluayAmJiBsaW5rICE9PSBudWxsKSB7XG4gICAgdGhpcy5TaGFyZWRTZXJ2aWNlLnByb2Nlc3NWaWV3RmlsZShsaW5rLnNwbGl0KCcvJykucG9wKCksdGhpcy5hcGkpO1xuICB9XG4gICAgLy8gd2luZG93Lm9wZW4oZW52aXJvbm1lbnQuYXBpLnN1YnN0cmluZygwLCBlbnZpcm9ubWVudC5hcGkubGVuZ3RoIC0gMSkgKyBsaW5rLCAnX2JsYW5rJyk7XG4gIH1cblxuICBnZXREb2NJY29uKGRvY05hbWUpIHtcbiAgICBjb25zdCBleHQgPSBkb2NOYW1lLnNwbGl0KCcuJykucG9wKC0xKTtcbiAgICByZXR1cm4gdGhpcy5TaGFyZWRTZXJ2aWNlLmRvY0ljb24oZXh0KTtcbiAgfVxuXG4gIFxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICA8IS0tIEhBIDE5REVDMjMgRm9yIHRyYW5zbGF0aW9uIC0tPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJzaGUtbGFiZWwgYXR0YWNobWVudFwiPnt7ICdhdHRhY2htZW50JyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbjogMDtcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50LWNudFwiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGRvY3VtZW50RGF0YTtsZXQgaSA9IGluZGV4O1wiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweDtcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAoY2xpY2spPVwidmlld0RvYyhmaWxlPy5kb2MpXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50X2ltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJnZXREb2NJY29uKGZpbGU/LmRvYylcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtoZWlnaHQ6IDQwcHg7XCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05IGRvY3VtZW50X25hbWVcIiBzdHlsZT1cIm92ZXJmbG93OmhpZGRlbjtoZWlnaHQ6MzVweDtcIj5cbiAgICAgICAgICAgICAgICAgICAge3tmaWxlPy5uYW1lfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG0tYi0zMCB0ZXh0LWNlbnRlclwiICpuZ0lmPVwiZG9jdW1lbnREYXRhPy5sZW5ndGggPT09IDBcIj5cbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9ybnh0LnMzLmFtYXpvbmF3cy5jb20vSWNvbnMvZmlsZVR5cGVJY29ucy9pY19ub19hdHRhY2htZW50cy5zdmdcIiBzdHlsZT1cImhlaWdodDogMTQwcHg7XCI+XG4gIDwvZGl2PlxuICA8L2Rpdj5cbiAgIl19
|
|
@@ -13,11 +13,11 @@ export class LoaderComponent {
|
|
|
13
13
|
this.isLoading = loading;
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
17
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LoaderComponent, deps: [{ token: i1.SharedService }], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LoaderComponent, selector: "app-loader", ngImport: i0, template: "<div class=\"loader\" *ngIf=\"isLoading\">\n <div class=\"spinner\"></div>\n </div>\n ", styles: [".loader{position:fixed;inset:0;background:#fffc;display:flex;justify-content:center;align-items:center;z-index:9999}.spinner{border:4px solid rgba(0,0,0,.1);border-left-color:#000;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LoaderComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ selector: 'app-loader', template: "<div class=\"loader\" *ngIf=\"isLoading\">\n <div class=\"spinner\"></div>\n </div>\n ", styles: [".loader{position:fixed;inset:0;background
|
|
21
|
+
args: [{ selector: 'app-loader', template: "<div class=\"loader\" *ngIf=\"isLoading\">\n <div class=\"spinner\"></div>\n </div>\n ", styles: [".loader{position:fixed;inset:0;background:#fffc;display:flex;justify-content:center;align-items:center;z-index:9999}.spinner{border:4px solid rgba(0,0,0,.1);border-left-color:#000;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
|
|
22
22
|
}], ctorParameters: function () { return [{ type: i1.SharedService }]; } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2xvYWRlci9sb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWxELE1BQU0sT0FBTyxlQUFlO0lBSU47SUFGcEIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUUzQixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFHLENBQUM7SUFFcEQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FWVSxlQUFlOzJGQUFmLGVBQWUsa0RDUjVCLDZGQUdFOzsyRkRLVyxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NoYXJlZC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWxvYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2FkZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIExvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGVyU2VydmljZS5pc0xvYWRpbmckLnN1YnNjcmliZSgobG9hZGluZykgPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBsb2FkaW5nO1xuICAgIH0pO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJsb2FkZXJcIiAqbmdJZj1cImlzTG9hZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+XG4gIDwvZGl2PlxuICAiXX0=
|
|
@@ -165,10 +165,10 @@ export class PickLocationComponent {
|
|
|
165
165
|
closeModal() {
|
|
166
166
|
this.showModal = false;
|
|
167
167
|
}
|
|
168
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
169
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
168
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PickLocationComponent, deps: [{ token: i1.I18nService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
169
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PickLocationComponent, selector: "app-pick-location", inputs: { address: "address", question: "question", apiKey: "apiKey" }, outputs: { locationSelected: "locationSelected" }, viewQueries: [{ propertyName: "searchElementRef", first: true, predicate: ["search"], descendants: true, static: true }], ngImport: i0, template: "<div>\n <!-- <label class=\"she-label\">Location</label> -->\n <!-- HA 19DEC23 For translation -->\n <input #search class=\"she-line-input form-control\" type=\"text\" placeholder=\"{{ 'enterLocation' | i18n:i18nService.currentLanguage }}\"\n (keydown.enter)=\"$event.preventDefault()\" placeholder=\"{{ 'searchNearestLocation' | i18n:i18nService.currentLanguage }}\" autocorrect=\"off\"\n autocapitalize=\"off\" spellcheck=\"off\" type=\"text\" [(ngModel)]=\"address\"\n >\n <a (click)=\"openMap()\"\n style=\"color:#48B7FF;position:relative;top:5px;cursor: pointer;\">\n <i class=\"fa fa-location-arrow\" aria-hidden=\"true\">\n <!-- HA 19DEC23 For translation -->\n </i> {{ 'pickLocation' | i18n:i18nService.currentLanguage }}</a>\n</div>\n\n<div class=\"map-overlay\" *ngIf=\"showModal\">\n <div class=\"map-modal\">\n <div class=\"map-modal-content\">\n <div class=\"map-modal-header\">\n <!-- HA 19DEC23 For translation -->\n <h4>{{ 'pickYourLocation' | i18n:i18nService.currentLanguage }}</h4>\n <button class=\"close-button\" (click)=\"closeModal()\">X</button>\n </div>\n <!-- Modal content goes here -->\n <!-- <agm-map [latitude]=\"latitude\" [longitude]=\"longitude\" [zoom]=\"zoom\" (mapClick)=\"markerDragEnd($event)\"\n [fullscreenControl]=\"true\">\n <agm-marker [latitude]=\"latitude\" [longitude]=\"longitude\" [markerDraggable]=\"true\"\n (dragEnd)=\"markerDragEnd($event)\"></agm-marker>\n </agm-map> -->\n <google-map [latitude]=\"latitude\" [longitude]=\"longitude\" [zoom]=\"zoom\" [center]=\"center\" (mapClick)=\"onMapClick($event)\">\n <map-marker [position]=\"markerPosition\" [options]=\"markerOptions\"></map-marker>\n </google-map>\n </div>\n </div>\n</div>\n\n\n\n\n\n\n", styles: [".she-label{font-weight:400;color:#9a9a9a;padding-bottom:5px;padding-top:5px;padding-right:15px;font-size:14px}.she-line-input{border:none;background:#fff;border-bottom:1px solid #eeeeee;border-radius:0}.fa-location-arrow:before{content:\"\\f124\"}google-map .map-container{width:auto!important}.map-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1}.map-modal{width:600px;background-color:#fff;border-radius:5px;box-shadow:0 2px 4px #0003}.map-modal-header{display:flex;align-items:center;justify-content:space-between;padding:0 0 10px;background-color:#fff;border-bottom:2px solid #e5e5e5}.map-modal-header h3{margin:0}.map-modal-content{padding:20px}.close-button{border:none;cursor:pointer;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "component", type: i4.GoogleMap, selector: "google-map", inputs: ["height", "width", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "directive", type: i4.MapMarker, selector: "map-marker", inputs: ["title", "position", "label", "clickable", "options", "icon", "visible"], outputs: ["animationChanged", "mapClick", "clickableChanged", "cursorChanged", "mapDblclick", "mapDrag", "mapDragend", "draggableChanged", "mapDragstart", "flatChanged", "iconChanged", "mapMousedown", "mapMouseout", "mapMouseover", "mapMouseup", "positionChanged", "mapRightclick", "shapeChanged", "titleChanged", "visibleChanged", "zindexChanged"], exportAs: ["mapMarker"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] });
|
|
170
170
|
}
|
|
171
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
171
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PickLocationComponent, decorators: [{
|
|
172
172
|
type: Component,
|
|
173
173
|
args: [{ selector: 'app-pick-location', template: "<div>\n <!-- <label class=\"she-label\">Location</label> -->\n <!-- HA 19DEC23 For translation -->\n <input #search class=\"she-line-input form-control\" type=\"text\" placeholder=\"{{ 'enterLocation' | i18n:i18nService.currentLanguage }}\"\n (keydown.enter)=\"$event.preventDefault()\" placeholder=\"{{ 'searchNearestLocation' | i18n:i18nService.currentLanguage }}\" autocorrect=\"off\"\n autocapitalize=\"off\" spellcheck=\"off\" type=\"text\" [(ngModel)]=\"address\"\n >\n <a (click)=\"openMap()\"\n style=\"color:#48B7FF;position:relative;top:5px;cursor: pointer;\">\n <i class=\"fa fa-location-arrow\" aria-hidden=\"true\">\n <!-- HA 19DEC23 For translation -->\n </i> {{ 'pickLocation' | i18n:i18nService.currentLanguage }}</a>\n</div>\n\n<div class=\"map-overlay\" *ngIf=\"showModal\">\n <div class=\"map-modal\">\n <div class=\"map-modal-content\">\n <div class=\"map-modal-header\">\n <!-- HA 19DEC23 For translation -->\n <h4>{{ 'pickYourLocation' | i18n:i18nService.currentLanguage }}</h4>\n <button class=\"close-button\" (click)=\"closeModal()\">X</button>\n </div>\n <!-- Modal content goes here -->\n <!-- <agm-map [latitude]=\"latitude\" [longitude]=\"longitude\" [zoom]=\"zoom\" (mapClick)=\"markerDragEnd($event)\"\n [fullscreenControl]=\"true\">\n <agm-marker [latitude]=\"latitude\" [longitude]=\"longitude\" [markerDraggable]=\"true\"\n (dragEnd)=\"markerDragEnd($event)\"></agm-marker>\n </agm-map> -->\n <google-map [latitude]=\"latitude\" [longitude]=\"longitude\" [zoom]=\"zoom\" [center]=\"center\" (mapClick)=\"onMapClick($event)\">\n <map-marker [position]=\"markerPosition\" [options]=\"markerOptions\"></map-marker>\n </google-map>\n </div>\n </div>\n</div>\n\n\n\n\n\n\n", styles: [".she-label{font-weight:400;color:#9a9a9a;padding-bottom:5px;padding-top:5px;padding-right:15px;font-size:14px}.she-line-input{border:none;background:#fff;border-bottom:1px solid #eeeeee;border-radius:0}.fa-location-arrow:before{content:\"\\f124\"}google-map .map-container{width:auto!important}.map-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1}.map-modal{width:600px;background-color:#fff;border-radius:5px;box-shadow:0 2px 4px #0003}.map-modal-header{display:flex;align-items:center;justify-content:space-between;padding:0 0 10px;background-color:#fff;border-bottom:2px solid #e5e5e5}.map-modal-header h3{margin:0}.map-modal-content{padding:20px}.close-button{border:none;cursor:pointer;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}\n"] }]
|
|
174
174
|
}], ctorParameters: function () { return [{ type: i1.I18nService }, { type: i0.NgZone }]; }, propDecorators: { searchElementRef: [{
|
|
@@ -183,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
183
183
|
}], apiKey: [{
|
|
184
184
|
type: Input
|
|
185
185
|
}] } });
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGljay1sb2NhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9waWNrLWxvY2F0aW9uL3BpY2stbG9jYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvcGljay1sb2NhdGlvbi9waWNrLWxvY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2SCxzQ0FBc0M7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBUzFELE1BQU0sT0FBTyxxQkFBcUI7SUFxQnhCO0lBQ0U7SUFyQlYsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNoQixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLElBQUksR0FBVyxFQUFFLENBQUM7SUFDVixRQUFRLENBQUM7SUFDbEIsK0JBQStCO0lBRXZCLGdCQUFnQixDQUErQjtJQUN0RCxTQUFTLEdBQVksS0FBSyxDQUFDO0lBQ2xCLE9BQU8sQ0FBUTtJQUN2QixzQ0FBc0M7SUFDOUIsUUFBUSxDQUFVO0lBQ2pCLGdCQUFnQixHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUM1RixvQkFBb0IsQ0FBTTtJQUMxQixjQUFjLENBQTBCO0lBQ3hDLE1BQU0sQ0FBMEI7SUFDaEMsYUFBYSxDQUFLO0lBQ1QsTUFBTSxDQUFNLENBQUMscUNBQXFDO0lBRTNEO0lBQ0Msd0NBQXdDO0lBQ2pDLFdBQXdCLEVBQ3RCLE1BQWM7UUFEaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtR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QUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUMzQjthQUFJO1lBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQzt3R0FyS1UscUJBQXFCOzRGQUFyQixxQkFBcUIsOFNDYmxDLG96REF3Q0E7OzRGRDNCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO3VIQVd0QixnQkFBZ0I7c0JBRHRCLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHNUIsT0FBTztzQkFBZixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUtFLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdNb2R1bGUsIE5nWm9uZSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XG4gLy8gVkQgMjFERUMyMyAtIGRlcGVuZGVudCBmaWVsZCBjaGFuZ2VcbmltcG9ydCB7IENoYW5nZVdyYXBwZXIgfSBmcm9tICcuLi8uLi9tb2RlbC9jaGFuZ2VXcmFwcGVyJztcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vd3JhcHBlcic7XG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1waWNrLWxvY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BpY2stbG9jYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waWNrLWxvY2F0aW9uLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQaWNrTG9jYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBsYXRpdHVkZSA9IG51bGw7XG4gIGxvbmdpdHVkZSA9IG51bGw7XG4gIHpvb206IG51bWJlciA9IDEwO1xuICBwcml2YXRlIGdlb0NvZGVyO1xuIC8vIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHNlYXJjaEVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHNob3dNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhZGRyZXNzOnN0cmluZztcbiAgIC8vIFZEIDIxREVDMjMgLSBkZXBlbmRlbnQgZmllbGQgY2hhbmdlXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBRdWVzdGlvblxuICBAT3V0cHV0KCkgbG9jYXRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPENoYW5nZVdyYXBwZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGFuZ2VXcmFwcGVyPigpO1xuICBuYXZpZ2F0b3JHZW9sb2NhdGlvbjogYW55O1xuICBtYXJrZXJQb3NpdGlvbjogeyBsYXQ6IGFueTsgbG5nOiBhbnk7IH07XG4gIGNlbnRlcjogeyBsYXQ6IGFueTsgbG5nOiBhbnk7IH07XG4gIG1hcmtlck9wdGlvbnM6YW55O1xuICBASW5wdXQoKSBhcGlLZXk6IGFueTsgLy8gSEExMDAxMjAyNCBkZWNsYXJlZCBBcGkga2V5IHRvIHNyY1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgLy8gcHJpdmF0ZSBtYXBzQVBJTG9hZGVyOiBNYXBzQVBJTG9hZGVyLFxuICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSxcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7IFxuICAgICAgLy8gSEEwOTAxMjAyNCBpcyB0byBhdm9pZCBnb29nbGUgaXMgdW5kZWZpbmVkIGVycm9yIGFuZCBjYWxsaW5nIHRoZSBiZWxvdyBjcmVhdGVkIGZ1bmN0aW9uXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBIQS0xMS0wMS0yMDI0IENoYW5nZWQgdGhlIG1hcCBDYWxsIGZyb20gY29uc3RydWN0b3IgdG8gbmdPbkluaXQgYXMgaXQgd2FzIGdpdmluZyB1bmRlZmluZWQgdmFsdWVzIGluIHRoZSBvdXRzb3VyY2VkXG4gICAgaWYodGhpcy5hcGlLZXkpe1xuICAgICAgdGhpcy5sb2FkR29vZ2xlTWFwc1NjcmlwdCgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmdlb0NvZGVyID0gbmV3IGdvb2dsZS5tYXBzLkdlb2NvZGVyKCk7XG4gICAgICAgIHRoaXMubWFya2VyT3B0aW9ucyA9IG5ldyBnb29nbGUubWFwcy5NYXJrZXIgKHtcbiAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgICAgICAgYW5pbWF0aW9uOiBnb29nbGUubWFwcy5BbmltYXRpb24uRFJPUFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0QXV0b2NvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMub25NYXJrZXJEcmFnRW5kKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgLy8gSEEwOTAxMjAyNCBpcyB0byBhdm9pZCBnb29nbGUgaXMgdW5kZWZpbmVkIGVycm9yXG4gIHByaXZhdGUgbG9hZEdvb2dsZU1hcHNTY3JpcHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAvLyBIQTEwMDEyMDI0IEFzc2lnbmVkIEFwaSBrZXkgdG8gc3JjXG4gICAgc2NyaXB0LnNyYyA9IGBodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvanM/a2V5PSR7dGhpcy5hcGlLZXl9JmxpYnJhcmllcz1nZW9tZXRyeSxwbGFjZXNgO1xuICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfTtcbiAgICAgIHNjcmlwdC5vbmVycm9yID0gKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cbiAgXG4gIGluaXRBdXRvY29tcGxldGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2VvQ29kZXIpIHtcbiAgICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKHRoaXMuc2VhcmNoRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCwge1xuICAgICAgICB0eXBlczogW11cbiAgICAgIH0pO1xuICAgICAgYXV0b2NvbXBsZXRlLmFkZExpc3RlbmVyKCdwbGFjZV9jaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBsYWNlOiBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VSZXN1bHQgPSBhdXRvY29tcGxldGUuZ2V0UGxhY2UoKTtcblxuICAgICAgICAgIGlmIChwbGFjZS5nZW9tZXRyeSA9PT0gdW5kZWZpbmVkIHx8IHBsYWNlLmdlb21ldHJ5ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubGF0aXR1ZGUgPSBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKTtcbiAgICAgICAgICB0aGlzLmxvbmdpdHVkZSA9IHBsYWNlLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpO1xuICAgICAgICAgIHRoaXMuem9vbSA9IDE4O1xuICAgICAgICAgIHRoaXMuYWRkcmVzcyA9IHBsYWNlLmZvcm1hdHRlZF9hZGRyZXNzO1xuICAgICAgICAgIC8vIFZEIDIxREVDMjMgLSBkZXBlbmRlbnQgZmllbGQgY2hhbmdlXG4gICAgICAgICAgbGV0IGNoYW5nZSA9IG5ldyBDaGFuZ2VXcmFwcGVyKCk7XG4gICAgICAgICAgY2hhbmdlLmZyb21RdWVzdGlvbklkID0gdGhpcy5xdWVzdGlvbi5JZDtcbiAgICAgICAgICBsZXQgYWRkT2JqID0ge307XG4gICAgICAgICAgYWRkT2JqWydhZGRyZXNzJ10gPSB0aGlzLmFkZHJlc3M7XG4gICAgICAgICAgYWRkT2JqWydsYXRpdHVkZSddID0gdGhpcy5sYXRpdHVkZTtcbiAgICAgICAgICBhZGRPYmpbJ2xvbmdpdHVkZSddID0gdGhpcy5sb25naXR1ZGU7XG4gICAgICAgICAgY2hhbmdlLnZhbHVlT2JqID0gYWRkT2JqO1xuICAgICAgICAgdGhpcy5sb2NhdGlvblNlbGVjdGVkLmVtaXQoY2hhbmdlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbk1hcmtlckRyYWdFbmQoKTogdm9pZCB7XG4gICAgZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIodGhpcy5tYXJrZXJPcHRpb25zLCAnZHJhZ2VuZCcsIChldmVudCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ2RyYWdhYmxlIHdvcmtpbmcnLGV2ZW50KTtcbiAgICAgIHRoaXMubGF0aXR1ZGUgPSBldmVudC5sYXRMbmcubGF0KCk7XG4gICAgICB0aGlzLmxvbmdpdHVkZSA9IGV2ZW50LmxhdExuZy5sbmcoKTtcbiAgICAgIHRoaXMuZ2V0QWRkcmVzcyh0aGlzLmxhdGl0dWRlLCB0aGlzLmxvbmdpdHVkZSk7XG4gIH0pO1xuICB9XG5cbiAgb25NYXBDbGljayhldmVudDogZ29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdvbk1hcENsaWNrJyxldmVudCk7XG4gICAgdGhpcy5sYXRpdHVkZSA9IGV2ZW50LmxhdExuZy5sYXQoKTtcbiAgICB0aGlzLmxvbmdpdHVkZSA9IGV2ZW50LmxhdExuZy5sbmcoKTtcbiAgICB0aGlzLmdldEFkZHJlc3ModGhpcy5sYXRpdHVkZSwgdGhpcy5sb25naXR1ZGUpO1xuICB9XG5cblxuICBwcml2YXRlIHNldEN1cnJlbnRMb2NhdGlvbigpIHtcbiAgICBpZiAoJ2dlb2xvY2F0aW9uJyBpbiBuYXZpZ2F0b3IpIHtcbiAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oKHBvc2l0aW9uKSA9PiB7XG4gICAgICAgIHRoaXMubGF0aXR1ZGUgPSBwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGU7XG4gICAgICAgIHRoaXMubG9uZ2l0dWRlID0gcG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZTtcbiAgICAgICAgdGhpcy5tYXJrZXJQb3NpdGlvbiA9IHsgbGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlIH07XG4gICAgICAgIHRoaXMuY2VudGVyID0geyBsYXQ6IHRoaXMubGF0aXR1ZGUsIGxuZzogdGhpcy5sb25naXR1ZGUgfTtcbiAgICAgICAgdGhpcy56b29tID0gODtcbiAgICAgICAgdGhpcy5nZXRBZGRyZXNzKHRoaXMubGF0aXR1ZGUsIHRoaXMubG9uZ2l0dWRlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG5cbiAgZ2V0QWRkcmVzcyhsYXRpdHVkZTogbnVtYmVyLCBsb25naXR1ZGU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmdlb0NvZGVyKSB7XG4gICAgICB0aGlzLmdlb0NvZGVyLmdlb2NvZGUoeyBsb2NhdGlvbjogeyBsYXQ6IGxhdGl0dWRlLCBsbmc6IGxvbmdpdHVkZSB9IH0sIChyZXN1bHRzLCBzdGF0dXMpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ3Jlc3VsdHMnLHJlc3VsdHMpO1xuICAgICAgICBjb25zb2xlLmxvZygnc3RhdHVzJyxzdGF0dXMpO1xuICAgICAgICBpZiAoc3RhdHVzID09PSAnT0snKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdHNbMF0pIHtcbiAgICAgICAgICAgLy8gdGhpcy56b29tID0gMTg7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3MgPSByZXN1bHRzWzBdLmZvcm1hdHRlZF9hZGRyZXNzO1xuICAgICAgICAgICAgIC8vIFZEIDIxREVDMjMgLSBkZXBlbmRlbnQgZmllbGQgY2hhbmdlXG4gICAgICAgICAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTtcbiAgICAgICAgICAgIGNoYW5nZS5mcm9tUXVlc3Rpb25JZCA9IHRoaXMucXVlc3Rpb24uSWQ7XG4gICAgICAgICAgICBsZXQgYWRkT2JqMSA9IHt9O1xuICAgICAgICAgICAgYWRkT2JqMVsnYWRkcmVzcyddID0gdGhpcy5hZGRyZXNzO1xuICAgICAgICAgICAgYWRkT2JqMVsnbGF0aXR1ZGUnXSA9IGxhdGl0dWRlO1xuICAgICAgICAgICAgYWRkT2JqMVsnbG9uZ2l0dWRlJ10gPSBsb25naXR1ZGU7XG4gICAgICAgICAgICBjaGFuZ2UudmFsdWVPYmogPSBhZGRPYmoxO1xuICAgICAgICAgICAgdGhpcy5sb2NhdGlvblNlbGVjdGVkLmVtaXQoY2hhbmdlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ05vIHJlc3VsdHMgZm91bmQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0dlb2NvZGVyIGZhaWxlZCBkdWUgdG86ICcgKyBzdGF0dXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvcGVuTWFwKCkge1xuICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZTtcbiAgICBpZighdGhpcy5hZGRyZXNzKXtcbiAgICAgIHRoaXMubGF0aXR1ZGUgPSB0aGlzLmxvbmdpdHVkZSA9IG51bGw7XG4gICAgfVxuICAgIGlmICghKHRoaXMubGF0aXR1ZGUgJiYgdGhpcy5sb25naXR1ZGUpKSB7XG4gICAgICB0aGlzLnNldEN1cnJlbnRMb2NhdGlvbigpO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5tYXJrZXJQb3NpdGlvbiA9IHsgbGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlIH07XG4gICAgICB0aGlzLmNlbnRlciA9IHsgbGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlIH07XG4gICAgICB0aGlzLnpvb20gPSA4O1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5zaG93TW9kYWwgPSBmYWxzZTtcbiAgfVxuXG5cbn1cbiIsIjxkaXY+XG4gICAgIDwhLS0gPGxhYmVsIGNsYXNzPVwic2hlLWxhYmVsXCI+TG9jYXRpb248L2xhYmVsPiAtLT5cbiAgICA8IS0tIEhBIDE5REVDMjMgRm9yIHRyYW5zbGF0aW9uIC0tPlxuICAgICA8aW5wdXQgI3NlYXJjaCBjbGFzcz1cInNoZS1saW5lLWlucHV0IGZvcm0tY29udHJvbFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJ7eyAnZW50ZXJMb2NhdGlvbicgfCBpMThuOmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSB9fVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgcGxhY2Vob2xkZXI9XCJ7eyAnc2VhcmNoTmVhcmVzdExvY2F0aW9uJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19XCIgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiIHNwZWxsY2hlY2s9XCJvZmZcIiB0eXBlPVwidGV4dFwiICBbKG5nTW9kZWwpXT1cImFkZHJlc3NcIlxuICAgICAgICA+XG4gICAgICAgIDxhIChjbGljayk9XCJvcGVuTWFwKClcIlxuICAgICAgICBzdHlsZT1cImNvbG9yOiM0OEI3RkY7cG9zaXRpb246cmVsYXRpdmU7dG9wOjVweDtjdXJzb3I6IHBvaW50ZXI7XCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtbG9jYXRpb24tYXJyb3dcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgPCEtLSBIQSAxOURFQzIzIEZvciB0cmFuc2xhdGlvbiAtLT5cbiAgICAgICAgPC9pPiB7eyAncGlja0xvY2F0aW9uJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19PC9hPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJtYXAtb3ZlcmxheVwiICpuZ0lmPVwic2hvd01vZGFsXCI+XG4gIDxkaXYgY2xhc3M9XCJtYXAtbW9kYWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWFwLW1vZGFsLWNvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXAtbW9kYWwtaGVhZGVyXCI+XG4gICAgICAgIDwhLS0gSEEgMTlERUMyMyBGb3IgdHJhbnNsYXRpb24gLS0+XG4gICAgICAgIDxoND57eyAncGlja1lvdXJMb2NhdGlvbicgfCBpMThuOmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSB9fTwvaDQ+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+WDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIE1vZGFsIGNvbnRlbnQgZ29lcyBoZXJlIC0tPlxuICAgIDwhLS0gPGFnbS1tYXAgW2xhdGl0dWRlXT1cImxhdGl0dWRlXCIgW2xvbmdpdHVkZV09XCJsb25naXR1ZGVcIiBbem9vbV09XCJ6b29tXCIgKG1hcENsaWNrKT1cIm1hcmtlckRyYWdFbmQoJGV2ZW50KVwiXG4gICAgW2Z1bGxzY3JlZW5Db250cm9sXT1cInRydWVcIj5cbiAgICA8YWdtLW1hcmtlciBbbGF0aXR1ZGVdPVwibGF0aXR1ZGVcIiBbbG9uZ2l0dWRlXT1cImxvbmdpdHVkZVwiIFttYXJrZXJEcmFnZ2FibGVdPVwidHJ1ZVwiXG4gICAgICAoZHJhZ0VuZCk9XCJtYXJrZXJEcmFnRW5kKCRldmVudClcIj48L2FnbS1tYXJrZXI+XG4gICAgPC9hZ20tbWFwPiAtLT5cbiAgICA8Z29vZ2xlLW1hcCBbbGF0aXR1ZGVdPVwibGF0aXR1ZGVcIiAgW2xvbmdpdHVkZV09XCJsb25naXR1ZGVcIiBbem9vbV09XCJ6b29tXCIgW2NlbnRlcl09XCJjZW50ZXJcIiAobWFwQ2xpY2spPVwib25NYXBDbGljaygkZXZlbnQpXCI+XG4gICAgICA8bWFwLW1hcmtlciBbcG9zaXRpb25dPVwibWFya2VyUG9zaXRpb25cIiBbb3B0aW9uc109XCJtYXJrZXJPcHRpb25zXCI+PC9tYXAtbWFya2VyPlxuICAgIDwvZ29vZ2xlLW1hcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG5cblxuXG5cbiJdfQ==
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGljay1sb2NhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9waWNrLWxvY2F0aW9uL3BpY2stbG9jYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvcGljay1sb2NhdGlvbi9waWNrLWxvY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2SCxzQ0FBc0M7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBUzFELE1BQU0sT0FBTyxxQkFBcUI7SUFxQnhCO0lBQ0U7SUFyQlYsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNoQixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLElBQUksR0FBVyxFQUFFLENBQUM7SUFDVixRQUFRLENBQUM7SUFDbEIsK0JBQStCO0lBRXZCLGdCQUFnQixDQUErQjtJQUN0RCxTQUFTLEdBQVksS0FBSyxDQUFDO0lBQ2xCLE9BQU8sQ0FBUTtJQUN2QixzQ0FBc0M7SUFDOUIsUUFBUSxDQUFVO0lBQ2pCLGdCQUFnQixHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUM1RixvQkFBb0IsQ0FBTTtJQUMxQixjQUFjLENBQTBCO0lBQ3hDLE1BQU0sQ0FBMEI7SUFDaEMsYUFBYSxDQUFLO0lBQ1QsTUFBTSxDQUFNLENBQUMscUNBQXFDO0lBRTNEO0lBQ0Msd0NBQXdDO0lBQ2pDLFdBQXdCLEVBQ3RCLE1BQWM7UUFEaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtR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QUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUMzQjthQUFJO1lBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQzt1R0FyS1UscUJBQXFCOzJGQUFyQixxQkFBcUIsOFNDYmxDLG96REF3Q0E7OzJGRDNCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO3VIQVd0QixnQkFBZ0I7c0JBRHRCLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHNUIsT0FBTztzQkFBZixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUtFLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdNb2R1bGUsIE5nWm9uZSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XG4gLy8gVkQgMjFERUMyMyAtIGRlcGVuZGVudCBmaWVsZCBjaGFuZ2VcbmltcG9ydCB7IENoYW5nZVdyYXBwZXIgfSBmcm9tICcuLi8uLi9tb2RlbC9jaGFuZ2VXcmFwcGVyJztcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vd3JhcHBlcic7XG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1waWNrLWxvY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BpY2stbG9jYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waWNrLWxvY2F0aW9uLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQaWNrTG9jYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBsYXRpdHVkZSA9IG51bGw7XG4gIGxvbmdpdHVkZSA9IG51bGw7XG4gIHpvb206IG51bWJlciA9IDEwO1xuICBwcml2YXRlIGdlb0NvZGVyO1xuIC8vIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHNlYXJjaEVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHNob3dNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhZGRyZXNzOnN0cmluZztcbiAgIC8vIFZEIDIxREVDMjMgLSBkZXBlbmRlbnQgZmllbGQgY2hhbmdlXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBRdWVzdGlvblxuICBAT3V0cHV0KCkgbG9jYXRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPENoYW5nZVdyYXBwZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGFuZ2VXcmFwcGVyPigpO1xuICBuYXZpZ2F0b3JHZW9sb2NhdGlvbjogYW55O1xuICBtYXJrZXJQb3NpdGlvbjogeyBsYXQ6IGFueTsgbG5nOiBhbnk7IH07XG4gIGNlbnRlcjogeyBsYXQ6IGFueTsgbG5nOiBhbnk7IH07XG4gIG1hcmtlck9wdGlvbnM6YW55O1xuICBASW5wdXQoKSBhcGlLZXk6IGFueTsgLy8gSEExMDAxMjAyNCBkZWNsYXJlZCBBcGkga2V5IHRvIHNyY1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgLy8gcHJpdmF0ZSBtYXBzQVBJTG9hZGVyOiBNYXBzQVBJTG9hZGVyLFxuICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSxcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7IFxuICAgICAgLy8gSEEwOTAxMjAyNCBpcyB0byBhdm9pZCBnb29nbGUgaXMgdW5kZWZpbmVkIGVycm9yIGFuZCBjYWxsaW5nIHRoZSBiZWxvdyBjcmVhdGVkIGZ1bmN0aW9uXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBIQS0xMS0wMS0yMDI0IENoYW5nZWQgdGhlIG1hcCBDYWxsIGZyb20gY29uc3RydWN0b3IgdG8gbmdPbkluaXQgYXMgaXQgd2FzIGdpdmluZyB1bmRlZmluZWQgdmFsdWVzIGluIHRoZSBvdXRzb3VyY2VkXG4gICAgaWYodGhpcy5hcGlLZXkpe1xuICAgICAgdGhpcy5sb2FkR29vZ2xlTWFwc1NjcmlwdCgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmdlb0NvZGVyID0gbmV3IGdvb2dsZS5tYXBzLkdlb2NvZGVyKCk7XG4gICAgICAgIHRoaXMubWFya2VyT3B0aW9ucyA9IG5ldyBnb29nbGUubWFwcy5NYXJrZXIgKHtcbiAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgICAgICAgYW5pbWF0aW9uOiBnb29nbGUubWFwcy5BbmltYXRpb24uRFJPUFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0QXV0b2NvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMub25NYXJrZXJEcmFnRW5kKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgLy8gSEEwOTAxMjAyNCBpcyB0byBhdm9pZCBnb29nbGUgaXMgdW5kZWZpbmVkIGVycm9yXG4gIHByaXZhdGUgbG9hZEdvb2dsZU1hcHNTY3JpcHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAvLyBIQTEwMDEyMDI0IEFzc2lnbmVkIEFwaSBrZXkgdG8gc3JjXG4gICAgc2NyaXB0LnNyYyA9IGBodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvanM/a2V5PSR7dGhpcy5hcGlLZXl9JmxpYnJhcmllcz1nZW9tZXRyeSxwbGFjZXNgO1xuICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfTtcbiAgICAgIHNjcmlwdC5vbmVycm9yID0gKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cbiAgXG4gIGluaXRBdXRvY29tcGxldGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2VvQ29kZXIpIHtcbiAgICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKHRoaXMuc2VhcmNoRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCwge1xuICAgICAgICB0eXBlczogW11cbiAgICAgIH0pO1xuICAgICAgYXV0b2NvbXBsZXRlLmFkZExpc3RlbmVyKCdwbGFjZV9jaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBsYWNlOiBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VSZXN1bHQgPSBhdXRvY29tcGxldGUuZ2V0UGxhY2UoKTtcblxuICAgICAgICAgIGlmIChwbGFjZS5nZW9tZXRyeSA9PT0gdW5kZWZpbmVkIHx8IHBsYWNlLmdlb21ldHJ5ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubGF0aXR1ZGUgPSBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKTtcbiAgICAgICAgICB0aGlzLmxvbmdpdHVkZSA9IHBsYWNlLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpO1xuICAgICAgICAgIHRoaXMuem9vbSA9IDE4O1xuICAgICAgICAgIHRoaXMuYWRkcmVzcyA9IHBsYWNlLmZvcm1hdHRlZF9hZGRyZXNzO1xuICAgICAgICAgIC8vIFZEIDIxREVDMjMgLSBkZXBlbmRlbnQgZmllbGQgY2hhbmdlXG4gICAgICAgICAgbGV0IGNoYW5nZSA9IG5ldyBDaGFuZ2VXcmFwcGVyKCk7XG4gICAgICAgICAgY2hhbmdlLmZyb21RdWVzdGlvbklkID0gdGhpcy5xdWVzdGlvbi5JZDtcbiAgICAgICAgICBsZXQgYWRkT2JqID0ge307XG4gICAgICAgICAgYWRkT2JqWydhZGRyZXNzJ10gPSB0aGlzLmFkZHJlc3M7XG4gICAgICAgICAgYWRkT2JqWydsYXRpdHVkZSddID0gdGhpcy5sYXRpdHVkZTtcbiAgICAgICAgICBhZGRPYmpbJ2xvbmdpdHVkZSddID0gdGhpcy5sb25naXR1ZGU7XG4gICAgICAgICAgY2hhbmdlLnZhbHVlT2JqID0gYWRkT2JqO1xuICAgICAgICAgdGhpcy5sb2NhdGlvblNlbGVjdGVkLmVtaXQoY2hhbmdlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbk1hcmtlckRyYWdFbmQoKTogdm9pZCB7XG4gICAgZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIodGhpcy5tYXJrZXJPcHRpb25zLCAnZHJhZ2VuZCcsIChldmVudCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ2RyYWdhYmxlIHdvcmtpbmcnLGV2ZW50KTtcbiAgICAgIHRoaXMubGF0aXR1ZGUgPSBldmVudC5sYXRMbmcubGF0KCk7XG4gICAgICB0aGlzLmxvbmdpdHVkZSA9IGV2ZW50LmxhdExuZy5sbmcoKTtcbiAgICAgIHRoaXMuZ2V0QWRkcmVzcyh0aGlzLmxhdGl0dWRlLCB0aGlzLmxvbmdpdHVkZSk7XG4gIH0pO1xuICB9XG5cbiAgb25NYXBDbGljayhldmVudDogZ29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdvbk1hcENsaWNrJyxldmVudCk7XG4gICAgdGhpcy5sYXRpdHVkZSA9IGV2ZW50LmxhdExuZy5sYXQoKTtcbiAgICB0aGlzLmxvbmdpdHVkZSA9IGV2ZW50LmxhdExuZy5sbmcoKTtcbiAgICB0aGlzLmdldEFkZHJlc3ModGhpcy5sYXRpdHVkZSwgdGhpcy5sb25naXR1ZGUpO1xuICB9XG5cblxuICBwcml2YXRlIHNldEN1cnJlbnRMb2NhdGlvbigpIHtcbiAgICBpZiAoJ2dlb2xvY2F0aW9uJyBpbiBuYXZpZ2F0b3IpIHtcbiAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oKHBvc2l0aW9uKSA9PiB7XG4gICAgICAgIHRoaXMubGF0aXR1ZGUgPSBwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGU7XG4gICAgICAgIHRoaXMubG9uZ2l0dWRlID0gcG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZTtcbiAgICAgICAgdGhpcy5tYXJrZXJQb3NpdGlvbiA9IHsgbGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlIH07XG4gICAgICAgIHRoaXMuY2VudGVyID0geyBsYXQ6IHRoaXMubGF0aXR1ZGUsIGxuZzogdGhpcy5sb25naXR1ZGUgfTtcbiAgICAgICAgdGhpcy56b29tID0gODtcbiAgICAgICAgdGhpcy5nZXRBZGRyZXNzKHRoaXMubGF0aXR1ZGUsIHRoaXMubG9uZ2l0dWRlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG5cbiAgZ2V0QWRkcmVzcyhsYXRpdHVkZTogbnVtYmVyLCBsb25naXR1ZGU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmdlb0NvZGVyKSB7XG4gICAgICB0aGlzLmdlb0NvZGVyLmdlb2NvZGUoeyBsb2NhdGlvbjogeyBsYXQ6IGxhdGl0dWRlLCBsbmc6IGxvbmdpdHVkZSB9IH0sIChyZXN1bHRzLCBzdGF0dXMpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ3Jlc3VsdHMnLHJlc3VsdHMpO1xuICAgICAgICBjb25zb2xlLmxvZygnc3RhdHVzJyxzdGF0dXMpO1xuICAgICAgICBpZiAoc3RhdHVzID09PSAnT0snKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdHNbMF0pIHtcbiAgICAgICAgICAgLy8gdGhpcy56b29tID0gMTg7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3MgPSByZXN1bHRzWzBdLmZvcm1hdHRlZF9hZGRyZXNzO1xuICAgICAgICAgICAgIC8vIFZEIDIxREVDMjMgLSBkZXBlbmRlbnQgZmllbGQgY2hhbmdlXG4gICAgICAgICAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTtcbiAgICAgICAgICAgIGNoYW5nZS5mcm9tUXVlc3Rpb25JZCA9IHRoaXMucXVlc3Rpb24uSWQ7XG4gICAgICAgICAgICBsZXQgYWRkT2JqMSA9IHt9O1xuICAgICAgICAgICAgYWRkT2JqMVsnYWRkcmVzcyddID0gdGhpcy5hZGRyZXNzO1xuICAgICAgICAgICAgYWRkT2JqMVsnbGF0aXR1ZGUnXSA9IGxhdGl0dWRlO1xuICAgICAgICAgICAgYWRkT2JqMVsnbG9uZ2l0dWRlJ10gPSBsb25naXR1ZGU7XG4gICAgICAgICAgICBjaGFuZ2UudmFsdWVPYmogPSBhZGRPYmoxO1xuICAgICAgICAgICAgdGhpcy5sb2NhdGlvblNlbGVjdGVkLmVtaXQoY2hhbmdlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ05vIHJlc3VsdHMgZm91bmQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0dlb2NvZGVyIGZhaWxlZCBkdWUgdG86ICcgKyBzdGF0dXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvcGVuTWFwKCkge1xuICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZTtcbiAgICBpZighdGhpcy5hZGRyZXNzKXtcbiAgICAgIHRoaXMubGF0aXR1ZGUgPSB0aGlzLmxvbmdpdHVkZSA9IG51bGw7XG4gICAgfVxuICAgIGlmICghKHRoaXMubGF0aXR1ZGUgJiYgdGhpcy5sb25naXR1ZGUpKSB7XG4gICAgICB0aGlzLnNldEN1cnJlbnRMb2NhdGlvbigpO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5tYXJrZXJQb3NpdGlvbiA9IHsgbGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlIH07XG4gICAgICB0aGlzLmNlbnRlciA9IHsgbGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlIH07XG4gICAgICB0aGlzLnpvb20gPSA4O1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5zaG93TW9kYWwgPSBmYWxzZTtcbiAgfVxuXG5cbn1cbiIsIjxkaXY+XG4gICAgIDwhLS0gPGxhYmVsIGNsYXNzPVwic2hlLWxhYmVsXCI+TG9jYXRpb248L2xhYmVsPiAtLT5cbiAgICA8IS0tIEhBIDE5REVDMjMgRm9yIHRyYW5zbGF0aW9uIC0tPlxuICAgICA8aW5wdXQgI3NlYXJjaCBjbGFzcz1cInNoZS1saW5lLWlucHV0IGZvcm0tY29udHJvbFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJ7eyAnZW50ZXJMb2NhdGlvbicgfCBpMThuOmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSB9fVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgcGxhY2Vob2xkZXI9XCJ7eyAnc2VhcmNoTmVhcmVzdExvY2F0aW9uJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19XCIgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiIHNwZWxsY2hlY2s9XCJvZmZcIiB0eXBlPVwidGV4dFwiICBbKG5nTW9kZWwpXT1cImFkZHJlc3NcIlxuICAgICAgICA+XG4gICAgICAgIDxhIChjbGljayk9XCJvcGVuTWFwKClcIlxuICAgICAgICBzdHlsZT1cImNvbG9yOiM0OEI3RkY7cG9zaXRpb246cmVsYXRpdmU7dG9wOjVweDtjdXJzb3I6IHBvaW50ZXI7XCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtbG9jYXRpb24tYXJyb3dcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgPCEtLSBIQSAxOURFQzIzIEZvciB0cmFuc2xhdGlvbiAtLT5cbiAgICAgICAgPC9pPiB7eyAncGlja0xvY2F0aW9uJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19PC9hPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJtYXAtb3ZlcmxheVwiICpuZ0lmPVwic2hvd01vZGFsXCI+XG4gIDxkaXYgY2xhc3M9XCJtYXAtbW9kYWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWFwLW1vZGFsLWNvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXAtbW9kYWwtaGVhZGVyXCI+XG4gICAgICAgIDwhLS0gSEEgMTlERUMyMyBGb3IgdHJhbnNsYXRpb24gLS0+XG4gICAgICAgIDxoND57eyAncGlja1lvdXJMb2NhdGlvbicgfCBpMThuOmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSB9fTwvaDQ+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+WDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIE1vZGFsIGNvbnRlbnQgZ29lcyBoZXJlIC0tPlxuICAgIDwhLS0gPGFnbS1tYXAgW2xhdGl0dWRlXT1cImxhdGl0dWRlXCIgW2xvbmdpdHVkZV09XCJsb25naXR1ZGVcIiBbem9vbV09XCJ6b29tXCIgKG1hcENsaWNrKT1cIm1hcmtlckRyYWdFbmQoJGV2ZW50KVwiXG4gICAgW2Z1bGxzY3JlZW5Db250cm9sXT1cInRydWVcIj5cbiAgICA8YWdtLW1hcmtlciBbbGF0aXR1ZGVdPVwibGF0aXR1ZGVcIiBbbG9uZ2l0dWRlXT1cImxvbmdpdHVkZVwiIFttYXJrZXJEcmFnZ2FibGVdPVwidHJ1ZVwiXG4gICAgICAoZHJhZ0VuZCk9XCJtYXJrZXJEcmFnRW5kKCRldmVudClcIj48L2FnbS1tYXJrZXI+XG4gICAgPC9hZ20tbWFwPiAtLT5cbiAgICA8Z29vZ2xlLW1hcCBbbGF0aXR1ZGVdPVwibGF0aXR1ZGVcIiAgW2xvbmdpdHVkZV09XCJsb25naXR1ZGVcIiBbem9vbV09XCJ6b29tXCIgW2NlbnRlcl09XCJjZW50ZXJcIiAobWFwQ2xpY2spPVwib25NYXBDbGljaygkZXZlbnQpXCI+XG4gICAgICA8bWFwLW1hcmtlciBbcG9zaXRpb25dPVwibWFya2VyUG9zaXRpb25cIiBbb3B0aW9uc109XCJtYXJrZXJPcHRpb25zXCI+PC9tYXAtbWFya2VyPlxuICAgIDwvZ29vZ2xlLW1hcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG5cblxuXG5cbiJdfQ==
|