@tilde-nlp/ngx-common 6.1.47 → 6.1.48
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/confirmation-modal/confirmation-modal.component.mjs +3 -3
- package/esm2022/lib/core/localization/select-language-dialog-component/select-language-dialog.component.mjs +11 -10
- package/esm2022/lib/file-upload/file-upload.component.mjs +4 -4
- package/esm2022/lib/filter-bar/filter-bar.component.mjs +3 -3
- package/esm2022/lib/helpers/file-size-label.helper.mjs +3 -16
- package/esm2022/lib/llm/components/llm-textarea-with-actions/llm-textarea-with-actions.component.mjs +12 -12
- package/esm2022/lib/multi-functional-table/multi-functional-table.component.mjs +3 -3
- package/esm2022/lib/pipes/file-size-label/file-size-label.pipe.mjs +3 -4
- package/esm2022/lib/pipes/file-size-label/index.mjs +1 -2
- package/esm2022/lib/pipes/language-translate/language-translate.pipe.mjs +3 -3
- package/esm2022/lib/subscription/subscription.component.mjs +3 -3
- package/fesm2022/tilde-nlp-ngx-common.mjs +53 -72
- package/fesm2022/tilde-nlp-ngx-common.mjs.map +1 -1
- package/lib/helpers/file-size-label.helper.d.ts +1 -2
- package/lib/pipes/file-size-label/file-size-label.pipe.d.ts +1 -2
- package/lib/pipes/file-size-label/index.d.ts +0 -1
- package/package.json +1 -1
- package/styles/material-overrides.scss +2 -2
- package/styles/mixins/material-overrides/mat-progress-bar-overrides.mixin.scss +2 -2
- package/styles/variables/colors.variables.scss +2 -3
- package/web-components/index.html +1 -1
- package/web-components/main.js +12 -12
- package/web-components/styles.css +1 -1
- package/esm2022/lib/pipes/file-size-label/enums/file-size-unit.enum.mjs +0 -8
- package/esm2022/lib/pipes/file-size-label/enums/index.mjs +0 -2
- package/lib/pipes/file-size-label/enums/file-size-unit.enum.d.ts +0 -6
- package/lib/pipes/file-size-label/enums/index.d.ts +0 -1
|
@@ -31,7 +31,7 @@ export class ConfirmationModalComponent {
|
|
|
31
31
|
this.confirmation = Confirmation;
|
|
32
32
|
}
|
|
33
33
|
static { this.ɵfac = function ConfirmationModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ConfirmationModalComponent)(i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); }; }
|
|
34
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConfirmationModalComponent, selectors: [["lib-confirmation-modal"]], decls: 15, vars: 15, consts: [["mat-dialog-title", ""], ["mat-dialog-content", ""], [1, "confirmation-description"], [4, "ngIf"], ["align", "end"], ["mat-button", "", 3, "mat-dialog-close"], ["mat-flat-button", "", "color", "
|
|
34
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConfirmationModalComponent, selectors: [["lib-confirmation-modal"]], decls: 15, vars: 15, consts: [["mat-dialog-title", ""], ["mat-dialog-content", ""], [1, "confirmation-description"], [4, "ngIf"], ["align", "end"], ["mat-button", "", 3, "mat-dialog-close"], ["mat-flat-button", "", "color", "accent", 3, "mat-dialog-close"], [4, "ngFor", "ngForOf"]], template: function ConfirmationModalComponent_Template(rf, ctx) { if (rf & 1) {
|
|
35
35
|
i0.ɵɵelementStart(0, "h1", 0);
|
|
36
36
|
i0.ɵɵtext(1);
|
|
37
37
|
i0.ɵɵpipe(2, "translate");
|
|
@@ -69,10 +69,10 @@ export class ConfirmationModalComponent {
|
|
|
69
69
|
}
|
|
70
70
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConfirmationModalComponent, [{
|
|
71
71
|
type: Component,
|
|
72
|
-
args: [{ selector: 'lib-confirmation-modal', template: "<h1 mat-dialog-title>{{ data.title | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"confirmation-description\">{{ data.descriptioon | translate }}</p>\r\n \r\n <ul *ngIf=\"data.details\">\r\n <li *ngFor=\"let extraData of data.details\">\r\n {{ extraData }}\r\n </li>\r\n </ul>\r\n</div>\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-button [mat-dialog-close]=\"confirmation.SECONDARY\">\r\n {{ data.rejectionText | translate }}\r\n </button>\r\n <button mat-flat-button color=\"
|
|
72
|
+
args: [{ selector: 'lib-confirmation-modal', template: "<h1 mat-dialog-title>{{ data.title | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"confirmation-description\">{{ data.descriptioon | translate }}</p>\r\n \r\n <ul *ngIf=\"data.details\">\r\n <li *ngFor=\"let extraData of data.details\">\r\n {{ extraData }}\r\n </li>\r\n </ul>\r\n</div>\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-button [mat-dialog-close]=\"confirmation.SECONDARY\">\r\n {{ data.rejectionText | translate }}\r\n </button>\r\n <button mat-flat-button color=\"accent\" [mat-dialog-close]=\"confirmation.PRIMARY\">\r\n {{ data.confirmationText | translate }}\r\n </button>\r\n</mat-dialog-actions>\r\n", styles: [".confirmation-description{color:var(--base-40)}.confirmation-description{margin-top:4px}\n"] }]
|
|
73
73
|
}], () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
74
74
|
type: Inject,
|
|
75
75
|
args: [MAT_DIALOG_DATA]
|
|
76
76
|
}] }], null); })();
|
|
77
77
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConfirmationModalComponent, { className: "ConfirmationModalComponent", filePath: "lib\\confirmation-modal\\confirmation-modal.component.ts", lineNumber: 11 }); })();
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9jb25maXJtYXRpb24tbW9kYWwvY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9jb25maXJtYXRpb24tbW9kYWwvY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0lDRXRELDBCQUEyQztJQUN6QyxZQUNGO0lBQUEsaUJBQUs7OztJQURILGNBQ0Y7SUFERSw2Q0FDRjs7O0lBSEYsMEJBQXlCO0lBQ3ZCLDhFQUEyQztJQUc3QyxpQkFBSzs7O0lBSHVCLGNBQWU7SUFBZiw2Q0FBZTs7QURLN0MsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUNTLFNBQW1ELEVBQzFCLElBQXNCO1FBRC9DLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBSnhELGlCQUFZLEdBQUcsWUFBWSxDQUFDO0lBTTVCLENBQUM7MkhBUFUsMEJBQTBCLDhEQUszQixlQUFlO29FQUxkLDBCQUEwQjtZQ1Z2Qyw2QkFBcUI7WUFBQSxZQUE0Qjs7WUFBQSxpQkFBSztZQUVwRCxBQURGLDhCQUF3QixXQUNjO1lBQUEsWUFBbUM7O1lBQUEsaUJBQUk7WUFFM0UseUVBQXlCO1lBSzNCLGlCQUFNO1lBRUosQUFERiw2Q0FBZ0MsZ0JBQ2lDO1lBQzdELGFBQ0Y7O1lBQUEsaUJBQVM7WUFDVCxrQ0FBaUY7WUFDL0UsYUFDRjs7WUFDRixBQURFLGlCQUFTLEVBQ1U7O1lBakJBLGNBQTRCO1lBQTVCLDBEQUE0QjtZQUVYLGVBQW1DO1lBQW5DLGlFQUFtQztZQUVsRSxlQUFrQjtZQUFsQix1Q0FBa0I7WUFPSixlQUEyQztZQUEzQyw2REFBMkM7WUFDNUQsY0FDRjtZQURFLCtFQUNGO1lBQ3VDLGVBQXlDO1lBQXpDLDJEQUF5QztZQUM5RSxjQUNGO1lBREUsa0ZBQ0Y7OztpRkROVywwQkFBMEI7Y0FMdEMsU0FBUzsyQkFDRSx3QkFBd0I7O3NCQVMvQixNQUFNO3VCQUFDLGVBQWU7O2tGQUxkLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uQm9keSB9IGZyb20gJy4vbW9kZWxzL2NvbmZpcm1hdGlvbi1ib2R5Lm1vZGVsJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uIH0gZnJvbSAnLi9tb2RlbHMvY29uZmlybWF0aW9uLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY29uZmlybWF0aW9uLW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IHtcclxuICBjb25maXJtYXRpb24gPSBDb25maXJtYXRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQ29uZmlybWF0aW9uQm9keVxyXG4gICkge1xyXG4gIH1cclxufVxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZT57eyBkYXRhLnRpdGxlIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHAgY2xhc3M9XCJjb25maXJtYXRpb24tZGVzY3JpcHRpb25cIj57eyBkYXRhLmRlc2NyaXB0aW9vbiB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuICBcclxuICA8dWwgKm5nSWY9XCJkYXRhLmRldGFpbHNcIj5cclxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZXh0cmFEYXRhIG9mIGRhdGEuZGV0YWlsc1wiPlxyXG4gICAgICB7eyBleHRyYURhdGEgfX1cclxuICAgIDwvbGk+XHJcbiAgPC91bD5cclxuPC9kaXY+XHJcbjxtYXQtZGlhbG9nLWFjdGlvbnMgYWxpZ249XCJlbmRcIj5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwiY29uZmlybWF0aW9uLlNFQ09OREFSWVwiPlxyXG4gICAge3sgZGF0YS5yZWplY3Rpb25UZXh0IHwgdHJhbnNsYXRlIH19XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJjb25maXJtYXRpb24uUFJJTUFSWVwiPlxyXG4gICAge3sgZGF0YS5jb25maXJtYXRpb25UZXh0IHwgdHJhbnNsYXRlIH19XHJcbiAgPC9idXR0b24+XHJcbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4iXX0=
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { AsyncPipe } from '@angular/common';
|
|
2
2
|
import { Component, inject } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
4
|
+
import { SortLanguageListPipe } from '../../../pipes';
|
|
5
|
+
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
|
4
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
|
|
6
7
|
import { MatSelectModule } from '@angular/material/select';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
8
|
+
import { DialogRef } from '@angular/cdk/dialog';
|
|
9
|
+
import { FormsModule } from '@angular/forms';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "@angular/material/dialog";
|
|
11
12
|
import * as i2 from "@angular/material/button";
|
|
@@ -31,7 +32,7 @@ export class SelectLanguageDialogComponent {
|
|
|
31
32
|
constructor() {
|
|
32
33
|
this.#data = inject(MAT_DIALOG_DATA);
|
|
33
34
|
this.#translate = inject(TranslateService);
|
|
34
|
-
this.#dialogRef = inject(
|
|
35
|
+
this.#dialogRef = inject(DialogRef);
|
|
35
36
|
this.selectedLanguage = this.#translate.currentLang;
|
|
36
37
|
}
|
|
37
38
|
#data;
|
|
@@ -42,10 +43,10 @@ export class SelectLanguageDialogComponent {
|
|
|
42
43
|
}
|
|
43
44
|
save() {
|
|
44
45
|
this.#translate.use(this.selectedLanguage);
|
|
45
|
-
this.#dialogRef.close(
|
|
46
|
+
this.#dialogRef.close();
|
|
46
47
|
}
|
|
47
48
|
static { this.ɵfac = function SelectLanguageDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SelectLanguageDialogComponent)(); }; }
|
|
48
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SelectLanguageDialogComponent, selectors: [["lib-extension-dialog"]], standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 23, vars: 20, consts: [["mat-dialog-title", ""], ["mat-dialog-content", ""], [1, "description"], ["appearance", "outline", 1, "w-full", "mb-9"], [3, "ngModelChange", "ngModel"], [3, "value"], ["align", "end"], ["mat-stroked-button", "", "color", "
|
|
49
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SelectLanguageDialogComponent, selectors: [["lib-extension-dialog"]], standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 23, vars: 20, consts: [["mat-dialog-title", ""], ["mat-dialog-content", ""], [1, "description"], ["appearance", "outline", 1, "w-full", "mb-9"], [3, "ngModelChange", "ngModel"], [3, "value"], ["align", "end"], ["mat-stroked-button", "", "color", "accent", "mat-dialog-close", ""], ["mat-flat-button", "", "color", "accent", 3, "click"], [1, "language-name"]], template: function SelectLanguageDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
49
50
|
i0.ɵɵelementStart(0, "h1", 0);
|
|
50
51
|
i0.ɵɵtext(1);
|
|
51
52
|
i0.ɵɵpipe(2, "translate");
|
|
@@ -103,7 +104,7 @@ export class SelectLanguageDialogComponent {
|
|
|
103
104
|
MatButtonModule,
|
|
104
105
|
MatSelectModule,
|
|
105
106
|
FormsModule
|
|
106
|
-
], template: "<h1 mat-dialog-title>{{ \"SELECT_LANGUAGE.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"description\">{{ \"SELECT_LANGUAGE.DESCRIPTION\" | translate }}</p>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-full mb-9\">\r\n <mat-label>{{ \"SELECT_LANGUAGE.INPUT_LABEL\" | translate }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedLanguage\">\r\n @for (language of languages | sortLanguageList | async; track $index) {\r\n <mat-option [value]=\"language.value\">\r\n <span class=\"language-name\">\r\n {{language.translation}}\r\n </span>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-stroked-button color=\"
|
|
107
|
+
], template: "<h1 mat-dialog-title>{{ \"SELECT_LANGUAGE.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"description\">{{ \"SELECT_LANGUAGE.DESCRIPTION\" | translate }}</p>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-full mb-9\">\r\n <mat-label>{{ \"SELECT_LANGUAGE.INPUT_LABEL\" | translate }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedLanguage\">\r\n @for (language of languages | sortLanguageList | async; track $index) {\r\n <mat-option [value]=\"language.value\">\r\n <span class=\"language-name\">\r\n {{language.translation}}\r\n </span>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-stroked-button color=\"accent\" mat-dialog-close>\r\n {{ \"SELECT_LANGUAGE.CANCEL\" | translate }}\r\n </button>\r\n <button mat-flat-button color=\"accent\" (click)=\"save()\">\r\n {{ \"SELECT_LANGUAGE.SAVE\" | translate }}\r\n </button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n" }]
|
|
107
108
|
}], null, null); })();
|
|
108
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectLanguageDialogComponent, { className: "SelectLanguageDialogComponent", filePath: "lib\\core\\localization\\select-language-dialog-component\\select-language-dialog.component.ts", lineNumber:
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectLanguageDialogComponent, { className: "SelectLanguageDialogComponent", filePath: "lib\\core\\localization\\select-language-dialog-component\\select-language-dialog.component.ts", lineNumber: 29 }); })();
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy1jb21wb25lbnQvc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy1jb21wb25lbnQvc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7SUNDckMsQUFERixxQ0FBcUMsY0FDUDtJQUMxQixZQUNGO0lBQ0YsQUFERSxpQkFBTyxFQUNJOzs7SUFKRCx5Q0FBd0I7SUFFaEMsZUFDRjtJQURFLHdEQUNGOztBREZSOzs7RUFHRTtBQWdCRixNQUFNLE9BQU8sNkJBQTZCO0lBZjFDO1FBZ0JXLFVBQUssR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RDLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFHeEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7S0FhaEQ7SUFsQlUsS0FBSyxDQUEyQjtJQUNoQyxVQUFVLENBQTRCO0lBQ3RDLFVBQVUsQ0FBcUI7SUFLeEMsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7OEhBZlUsNkJBQTZCO29FQUE3Qiw2QkFBNkI7WUM1QjFDLDZCQUFxQjtZQUFBLFlBQXlDOztZQUFBLGlCQUFLO1lBRWpFLEFBREYsOEJBQXdCLFdBQ0M7WUFBQSxZQUErQzs7WUFBQSxpQkFBSTtZQUd4RSxBQURGLHlDQUF5RCxnQkFDNUM7WUFBQSxZQUErQzs7WUFBQSxpQkFBWTtZQUN0RSxzQ0FBMkM7WUFBL0IsNk9BQThCO1lBQ3hDLHdIQU1DOzs7WUFHUCxBQURFLEFBREUsaUJBQWEsRUFDRSxFQUNiO1lBR0osQUFERiw4Q0FBZ0MsaUJBQzZCO1lBQ3pELGFBQ0Y7O1lBQUEsaUJBQVM7WUFDVCxrQ0FBd0Q7WUFBakIsMkdBQVMsVUFBTSxJQUFDO1lBQ3JELGFBQ0Y7O1lBQ0YsQUFERSxpQkFBUyxFQUNVOztZQXpCQSxjQUF5QztZQUF6QyxtRUFBeUM7WUFFckMsZUFBK0M7WUFBL0MseUVBQStDO1lBR3pELGVBQStDO1lBQS9DLDJFQUErQztZQUM5QyxlQUE4QjtZQUE5QixvREFBOEI7WUFDeEMsY0FNQztZQU5ELDRFQU1DO1lBT0gsZUFDRjtZQURFLGlGQUNGO1lBRUUsZUFDRjtZQURFLCtFQUNGOzRCRExFLG9CQUFvQjtZQUNwQixTQUFTO1lBQ1QsYUFBYTtZQUNiLGVBQWUsa0ZBQ2YsZUFBZSxnQkFDZixlQUFlLDREQUNmLFdBQVc7O2lGQUdGLDZCQUE2QjtjQWZ6QyxTQUFTOzJCQUNFLHNCQUFzQixjQUdwQixJQUFJLFdBQ1A7b0JBQ1Asb0JBQW9CO29CQUNwQixTQUFTO29CQUNULGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixlQUFlO29CQUNmLGVBQWU7b0JBQ2YsV0FBVztpQkFDWjs7a0ZBRVUsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFNvcnRMYW5ndWFnZUxpc3RQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuLyoqXHJcbiAgVGhpcyBpcyBhbiBleHRlbnNpb24gZGlhbG9nIGNvbXBvbmVudC5cclxuICBVc2UgPGxpYi1vcGVuLWV4dGVuc2lvbi1kaWFsb2c+IHRvIG9wZW4gdGhpcyBkaWFsb2csIGJ5IHByb2l2ZGluZyBbZXh0ZW5zaW9uc10gdG8gaXQgeW91IGNhbiBzcGVjaWZ5IHdoYXQgZXh0ZW5zaW9ucyBzaG91bGQgYmUgZGlzcGxheWVkLlxyXG4qL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1leHRlbnNpb24tZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU29ydExhbmd1YWdlTGlzdFBpcGUsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RMYW5ndWFnZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgI2RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcclxuICByZWFkb25seSAjdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gIHJlYWRvbmx5ICNkaWFsb2dSZWYgPSBpbmplY3QoRGlhbG9nUmVmKTtcclxuXHJcbiAgbGFuZ3VhZ2VzITogc3RyaW5nW107XHJcbiAgc2VsZWN0ZWRMYW5ndWFnZSA9IHRoaXMuI3RyYW5zbGF0ZS5jdXJyZW50TGFuZztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxhbmd1YWdlcyA9IHRoaXMuI2RhdGEubGFuZ3VhZ2VzO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpe1xyXG4gICAgdGhpcy4jdHJhbnNsYXRlLnVzZSh0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UpO1xyXG4gICAgdGhpcy4jZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IFwiU0VMRUNUX0xBTkdVQUdFLlRJVExFXCIgfCB0cmFuc2xhdGUgfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3sgXCJTRUxFQ1RfTEFOR1VBR0UuREVTQ1JJUFRJT05cIiB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuXHJcbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LWZ1bGwgbWItOVwiPlxyXG4gICAgPG1hdC1sYWJlbD57eyBcIlNFTEVDVF9MQU5HVUFHRS5JTlBVVF9MQUJFTFwiIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTGFuZ3VhZ2VcIj5cclxuICAgICAgQGZvciAobGFuZ3VhZ2Ugb2YgbGFuZ3VhZ2VzIHwgc29ydExhbmd1YWdlTGlzdCB8IGFzeW5jOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImxhbmd1YWdlLnZhbHVlXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsYW5ndWFnZS1uYW1lXCI+XHJcbiAgICAgICAgICB7e2xhbmd1YWdlLnRyYW5zbGF0aW9ufX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgfVxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZGl2PlxyXG5cclxuPG1hdC1kaWFsb2ctYWN0aW9ucyBhbGlnbj1cImVuZFwiPlxyXG4gIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgbWF0LWRpYWxvZy1jbG9zZT5cclxuICAgIHt7IFwiU0VMRUNUX0xBTkdVQUdFLkNBTkNFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwic2F2ZSgpXCI+XHJcbiAgICB7eyBcIlNFTEVDVF9MQU5HVUFHRS5TQVZFXCIgfCB0cmFuc2xhdGUgfX1cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcblxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -193,7 +193,7 @@ export class FileUploadComponent {
|
|
|
193
193
|
} if (rf & 2) {
|
|
194
194
|
let _t;
|
|
195
195
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileInput = _t.first);
|
|
196
|
-
} }, inputs: { accept: "accept", useCompactUpload: "useCompactUpload", maxSize: "maxSize", multiple: "multiple", filePreviewProgress: "filePreviewProgress", allowEmpty: "allowEmpty", disabled: "disabled", dragZoneLabel: "dragZoneLabel", uploadIconName: "uploadIconName", uploadButtonLabel: "uploadButtonLabel", openExtensionPopupLabel: "openExtensionPopupLabel", minSupportedFormatCount: "minSupportedFormatCount", extendedAcceptList: "extendedAcceptList" }, outputs: { fileChange: "fileChange", errorEvent: "errorEvent" }, ngContentSelectors: _c1, decls: 7, vars: 9, consts: [["regularUpload", ""], ["fileInput", ""], ["inputButton", ""], [1, "file-upload", 3, "ngClass.lt-sm"], ["color", "primary", "class", "tld-file-upload-progress", 3, "value", 4, "ngIf"], [4, "ngIf", "ngIfElse"], ["type", "file", "name", "files", 1, "native-file-input", 3, "change", "accept", "multiple", "disabled"], ["color", "primary", 1, "tld-file-upload-progress", 3, "value"], ["tldDragAndDrop", "", "mat-button", "", "type", "button", 1, "upload-button", "text-l", 3, "fileDropped", "click", "disabled"], [4, "ngIf"], ["tldDragAndDrop", "", 1, "upload-zone", 3, "fileDropped"], ["svgIcon", "file_upload_icon"], [1, "upload-zone-labels"], ["color", "
|
|
196
|
+
} }, inputs: { accept: "accept", useCompactUpload: "useCompactUpload", maxSize: "maxSize", multiple: "multiple", filePreviewProgress: "filePreviewProgress", allowEmpty: "allowEmpty", disabled: "disabled", dragZoneLabel: "dragZoneLabel", uploadIconName: "uploadIconName", uploadButtonLabel: "uploadButtonLabel", openExtensionPopupLabel: "openExtensionPopupLabel", minSupportedFormatCount: "minSupportedFormatCount", extendedAcceptList: "extendedAcceptList" }, outputs: { fileChange: "fileChange", errorEvent: "errorEvent" }, ngContentSelectors: _c1, decls: 7, vars: 9, consts: [["regularUpload", ""], ["fileInput", ""], ["inputButton", ""], [1, "file-upload", 3, "ngClass.lt-sm"], ["color", "primary", "class", "tld-file-upload-progress", 3, "value", 4, "ngIf"], [4, "ngIf", "ngIfElse"], ["type", "file", "name", "files", 1, "native-file-input", 3, "change", "accept", "multiple", "disabled"], ["color", "primary", 1, "tld-file-upload-progress", 3, "value"], ["tldDragAndDrop", "", "mat-button", "", "type", "button", 1, "upload-button", "text-l", 3, "fileDropped", "click", "disabled"], [4, "ngIf"], ["tldDragAndDrop", "", 1, "upload-zone", 3, "fileDropped"], ["svgIcon", "file_upload_icon"], [1, "upload-zone-labels"], ["color", "accent", 1, "file-upload--btn", 3, "click"], ["fxHide.lt-sm", "", 1, "upload-label", 3, "innerHTML"], [1, "upload-zone-formats"], [4, "ngFor", "ngForOf"], [3, "innerHTML", 4, "ngIf"], [1, "supported-formats-btn"], [3, "innerHTML"], [1, "supported-formats-btn", 3, "click"]], template: function FileUploadComponent_Template(rf, ctx) { if (rf & 1) {
|
|
197
197
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
198
198
|
i0.ɵɵprojectionDef();
|
|
199
199
|
i0.ɵɵelementStart(0, "div", 3);
|
|
@@ -211,11 +211,11 @@ export class FileUploadComponent {
|
|
|
211
211
|
i0.ɵɵproperty("ngIf", ctx.useCompactUpload)("ngIfElse", regularUpload_r9);
|
|
212
212
|
i0.ɵɵadvance(3);
|
|
213
213
|
i0.ɵɵproperty("accept", ctx.allowedExtensions)("multiple", ctx.multiple)("disabled", ctx.disabled);
|
|
214
|
-
} }, dependencies: [i1.NgForOf, i1.NgIf, i2.MatProgressBar, i3.DefaultShowHideDirective, i3.DefaultClassDirective, i4.MatButton, i5.DragAndDropDirective, i6.MatIcon, i7.TranslatePipe], styles: ["[_nghost-%COMP%]{width:100%}.file-upload[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;text-align:center}.file-upload[_ngcontent-%COMP%] .upload-button[_ngcontent-%COMP%], .file-upload[_ngcontent-%COMP%] .upload-zone[_ngcontent-%COMP%]{display:flex;border-radius:16px;border:1px dashed var(--base-65)}.file-upload[_ngcontent-%COMP%] .upload-button[_ngcontent-%COMP%]{justify-content:start;min-height:
|
|
214
|
+
} }, dependencies: [i1.NgForOf, i1.NgIf, i2.MatProgressBar, i3.DefaultShowHideDirective, i3.DefaultClassDirective, i4.MatButton, i5.DragAndDropDirective, i6.MatIcon, i7.TranslatePipe], styles: ["[_nghost-%COMP%]{width:100%}.file-upload[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;text-align:center}.file-upload[_ngcontent-%COMP%] .upload-button[_ngcontent-%COMP%], .file-upload[_ngcontent-%COMP%] .upload-zone[_ngcontent-%COMP%]{display:flex;border-radius:16px;border:1px dashed var(--base-65)}.file-upload[_ngcontent-%COMP%] .upload-button[_ngcontent-%COMP%]{justify-content:start;min-height:52px;overflow:hidden;padding:16px!important}.file-upload[_ngcontent-%COMP%] .upload-zone[_ngcontent-%COMP%]{flex-direction:column;justify-content:center;align-items:center;width:100%;padding:42px 0}.file-upload[_ngcontent-%COMP%] .upload-zone-labels[_ngcontent-%COMP%]{margin-top:10px;font-size:16px;font-weight:600;line-height:24px;text-align:center}.file-upload[_ngcontent-%COMP%] .upload-zone-labels[_ngcontent-%COMP%] .upload-zone-formats[_ngcontent-%COMP%]{font-weight:400}.file-upload[_ngcontent-%COMP%] .supported-formats-btn[_ngcontent-%COMP%]{cursor:pointer;color:var(--accent);font-weight:400}.file-upload[_ngcontent-%COMP%] .disabled-upload-zone[_ngcontent-%COMP%]{cursor:not-allowed}.file-upload[_ngcontent-%COMP%] .file-upload--btn[_ngcontent-%COMP%], .file-upload[_ngcontent-%COMP%] .upload-label[_ngcontent-%COMP%]:not(.file-upload-mobile){margin-top:10px}.file-upload[_ngcontent-%COMP%] .file-upload--btn[_ngcontent-%COMP%]{cursor:pointer;align-self:center;max-width:fit-content;color:var(--accent)}.file-upload[_ngcontent-%COMP%] .file-upload--btn[_ngcontent-%COMP%]:hover{text-decoration:underline}.file-upload[_ngcontent-%COMP%] .upload-zone-formats[_ngcontent-%COMP%]{margin:10px 0 4px;color:var(--base-40)}.disabled[_ngcontent-%COMP%] .file-upload--btn[_ngcontent-%COMP%]{pointer-events:none!important;text-decoration:none!important;color:var(--base-40)}.native-file-input[_ngcontent-%COMP%]{display:none}"] }); }
|
|
215
215
|
}
|
|
216
216
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FileUploadComponent, [{
|
|
217
217
|
type: Component,
|
|
218
|
-
args: [{ selector: 'lib-file-upload', template: "<div class=\"file-upload\" [ngClass.lt-sm]=\"'file-upload-mobile'\" [class.disabled]=\"disabled\">\r\n <mat-progress-bar \r\n *ngIf=\"filePreviewProgress\"\r\n color=\"primary\" \r\n class=\"tld-file-upload-progress\" \r\n [value]=\"filePreviewProgress\"\r\n >\r\n </mat-progress-bar>\r\n\r\n <ng-container *ngIf=\"useCompactUpload; else regularUpload\">\r\n <button tldDragAndDrop #inputButton mat-button (fileDropped)=\"onFileDrop($event)\" [disabled]=\"disabled\" type=\"button\"\r\n (click)=\"fileInput.click()\" class=\"upload-button text-l\"\r\n >\r\n <mat-icon *ngIf=\"uploadIconName\">{{uploadIconName}}</mat-icon>\r\n <ng-content></ng-content>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-template #regularUpload>\r\n <div class=\"upload-zone\" tldDragAndDrop (fileDropped)=\"onFileDrop($event)\" [class.disabled-upload-zone]=\"disabled\">\r\n <mat-icon svgIcon=\"file_upload_icon\"></mat-icon>\r\n\r\n \r\n <div class=\"upload-zone-labels\">\r\n <a color=\"
|
|
218
|
+
args: [{ selector: 'lib-file-upload', template: "<div class=\"file-upload\" [ngClass.lt-sm]=\"'file-upload-mobile'\" [class.disabled]=\"disabled\">\r\n <mat-progress-bar \r\n *ngIf=\"filePreviewProgress\"\r\n color=\"primary\" \r\n class=\"tld-file-upload-progress\" \r\n [value]=\"filePreviewProgress\"\r\n >\r\n </mat-progress-bar>\r\n\r\n <ng-container *ngIf=\"useCompactUpload; else regularUpload\">\r\n <button tldDragAndDrop #inputButton mat-button (fileDropped)=\"onFileDrop($event)\" [disabled]=\"disabled\" type=\"button\"\r\n (click)=\"fileInput.click()\" class=\"upload-button text-l\"\r\n >\r\n <mat-icon *ngIf=\"uploadIconName\">{{uploadIconName}}</mat-icon>\r\n <ng-content></ng-content>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-template #regularUpload>\r\n <div class=\"upload-zone\" tldDragAndDrop (fileDropped)=\"onFileDrop($event)\" [class.disabled-upload-zone]=\"disabled\">\r\n <mat-icon svgIcon=\"file_upload_icon\"></mat-icon>\r\n\r\n \r\n <div class=\"upload-zone-labels\">\r\n <a color=\"accent\" class=\"file-upload--btn\" (click)=\"fileInput.click()\">{{ uploadButtonLabel }}</a>\r\n \r\n <span fxHide.lt-sm class=\"upload-label\" [innerHTML]=\"dragZoneLabel\"></span>\r\n \r\n <p class=\"upload-zone-formats\">\r\n (<span *ngFor=\"let format of accept; let i = index\"\r\n >{{ format\r\n }}{{ accept.length - 1 === i ? \".\" : \", \" }}</span\r\n >\r\n\r\n <span *ngIf=\"maxSize\" [innerHTML]=\"'FILE_UPLOAD.LIMITS_MB' | translate: { maxSize: maxSizeLabel }\"></span>)\r\n </p>\r\n \r\n @if (accept.length > minSupportedFormatCount) {\r\n <a class=\"supported-formats-btn\" (click)=\"openSupportedFormatModal()\">{{openExtensionPopupLabel}}</a>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<input \r\n #fileInput \r\n type=\"file\" \r\n name=\"files\" \r\n class=\"native-file-input\"\r\n [accept]=\"allowedExtensions\" \r\n [multiple]=\"multiple\" \r\n [disabled]=\"disabled\"\r\n (change)=\"handleFileInput($event)\" \r\n/>\r\n", styles: [":host{width:100%}.file-upload{display:flex;flex-direction:column;justify-content:center;text-align:center}.file-upload .upload-button,.file-upload .upload-zone{display:flex;border-radius:16px;border:1px dashed var(--base-65)}.file-upload .upload-button{justify-content:start;min-height:52px;overflow:hidden;padding:16px!important}.file-upload .upload-zone{flex-direction:column;justify-content:center;align-items:center;width:100%;padding:42px 0}.file-upload .upload-zone-labels{margin-top:10px;font-size:16px;font-weight:600;line-height:24px;text-align:center}.file-upload .upload-zone-labels .upload-zone-formats{font-weight:400}.file-upload .supported-formats-btn{cursor:pointer;color:var(--accent);font-weight:400}.file-upload .disabled-upload-zone{cursor:not-allowed}.file-upload .file-upload--btn,.file-upload .upload-label:not(.file-upload-mobile){margin-top:10px}.file-upload .file-upload--btn{cursor:pointer;align-self:center;max-width:fit-content;color:var(--accent)}.file-upload .file-upload--btn:hover{text-decoration:underline}.file-upload .upload-zone-formats{margin:10px 0 4px;color:var(--base-40)}.disabled .file-upload--btn{pointer-events:none!important;text-decoration:none!important;color:var(--base-40)}.native-file-input{display:none}\n"] }]
|
|
219
219
|
}], () => [], { fileInput: [{
|
|
220
220
|
type: ViewChild,
|
|
221
221
|
args: ['fileInput']
|
|
@@ -251,4 +251,4 @@ export class FileUploadComponent {
|
|
|
251
251
|
type: Input
|
|
252
252
|
}] }); })();
|
|
253
253
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FileUploadComponent, { className: "FileUploadComponent", filePath: "lib\\file-upload\\file-upload.component.ts", lineNumber: 15 }); })();
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7O0lDTjVDLHNDQU1tQjs7O0lBRmpCLGtEQUE2Qjs7O0lBUTNCLGdDQUFpQztJQUFBLFlBQWtCO0lBQUEsaUJBQVc7OztJQUE3QixjQUFrQjtJQUFsQiwyQ0FBa0I7Ozs7SUFKdkQsNkJBQTJEO0lBQ3pELG9DQUVDO0lBREMsQUFENkMsME1BQWUseUJBQWtCLEtBQUMsb01BQ3RFLG9CQUFpQixLQUFDO0lBRTNCLDZGQUFpQztJQUNqQyxrQkFBeUI7SUFDM0IsaUJBQVM7Ozs7SUFMeUUsY0FBcUI7SUFBckIsMENBQXFCO0lBRzFGLGVBQW9CO0lBQXBCLDRDQUFvQjs7O0lBZ0IxQiw0QkFD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USxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsOEJBQThCLENBQUM7UUFDakwsQ0FBQztJQUNILENBQUM7b0hBM0dVLG1CQUFtQjtvRUFBbkIsbUJBQW1COzs7Ozs7OztZQ2RoQyw4QkFBNEY7WUFrQjFGLEFBVEEsQUFSQSw4RkFLRyx5RUFHd0QseUdBUy9CO1lBMEI5QixtQ0FTRTtZQURBLDZJQUFVLDJCQUF1QixLQUFDO1lBUnBDLGlCQVNFLEVBckQwRjs7O1lBQTVCLHdDQUEyQjtZQUFsRSxvREFBc0M7WUFFMUQsY0FBeUI7WUFBekIsOENBQXlCO1lBT2IsY0FBd0I7WUFBQSxBQUF4QiwyQ0FBd0IsOEJBQWtCO1lBd0N6RCxlQUE0QjtZQUU1QixBQURBLEFBREEsOENBQTRCLDBCQUNQLDBCQUNBOzs7aUZEckNWLG1CQUFtQjtjQUwvQixTQUFTOzJCQUNFLGlCQUFpQjtvQkFLSCxTQUFTO2tCQUFoQyxTQUFTO21CQUFDLFdBQVc7WUFFWixVQUFVO2tCQUFuQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTTtZQUVNLE1BQU07a0JBQWxCLEtBQUs7WUFLRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFFRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csbUJBQW1CO2tCQUEzQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLHVCQUF1QjtrQkFBL0IsS0FBSztZQUNHLHVCQUF1QjtrQkFBL0IsS0FBSztZQUdHLGtCQUFrQjtrQkFBMUIsS0FBSzs7a0ZBekJLLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRFcnJvclR5cGVFbnVtIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS11cGxvYWQtZXJyb3ItdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZEVycm9yIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS11cGxvYWQtZXJyb3IubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9leHRlbnNpb24tZGlhbG9nJztcclxuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEZJTEVfVVBMT0FEX0lDT04gfSBmcm9tICcuL21vZGVscy9maWxlLXVwbG9hZC5pY29uJztcclxuaW1wb3J0IHsgZ2V0RmlsZVNpemVMYWJlbCB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmlsZS11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuXHJcbiAgQE91dHB1dCgpIGZpbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XHJcbiAgQE91dHB1dCgpIGVycm9yRXZlbnQ6IEV2ZW50RW1pdHRlcjxGaWxlVXBsb2FkRXJyb3I+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlVXBsb2FkRXJyb3I+KCk7XHJcbiAgcHJpdmF0ZSBfYWNjZXB0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNldCBhY2NlcHQodmFsOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5fYWNjZXB0ID0gdmFsO1xyXG4gICAgdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyA9IHZhbCA/IHZhbC5qb2luKFwiLFwiKSA6IFwiXCI7XHJcbiAgfVxyXG4gIGdldCBhY2NlcHQoKSB7IHJldHVybiB0aGlzLl9hY2NlcHQgfVxyXG4gIEBJbnB1dCgpIHVzZUNvbXBhY3RVcGxvYWQgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBtYXhTaXplITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZmlsZVByZXZpZXdQcm9ncmVzcyE6IG51bWJlcjtcclxuICBASW5wdXQoKSBhbGxvd0VtcHR5ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZHJhZ1pvbmVMYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSB1cGxvYWRJY29uTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSB1cGxvYWRCdXR0b25MYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBvcGVuRXh0ZW5zaW9uUG9wdXBMYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBtaW5TdXBwb3J0ZWRGb3JtYXRDb3VudDogbnVtYmVyID0gOTtcclxuXHJcbiAgLyoqIHNhbWUgYXMgYWNjZXB0IGJ1dCBmb3IgcmVnaXN0ZXJlZCB1c2Vycy4gSXQgY2hhbmdlcyBlcnJvciBtZXNzYWdlIGlmIGV4dGVuc2lvbiBpcyBzdXBwb3J0ZWQgZm9yIHJlZ2lzdGVyZWQgdXNlcnMuICovXHJcbiAgQElucHV0KCkgZXh0ZW5kZWRBY2NlcHRMaXN0ITogc3RyaW5nW107XHJcblxyXG4gIG1heFNpemVMYWJlbCE6IHN0cmluZztcclxuICBhbGxvd2VkRXh0ZW5zaW9ucyE6IHN0cmluZztcclxuXHJcbiAgI2RpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xyXG4gICNpY29uID0gaW5qZWN0KEljb25TZXJ2aWNlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLiNpY29uLnJlZ2lzdGVySWNvbnMoe0ZJTEVfVVBMT0FEX0lDT059KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLnNldE1heFNpemVMYWJlbCgpO1xyXG4gIH1cclxuXHJcbiAgb3BlblN1cHBvcnRlZEZvcm1hdE1vZGFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy4jZGlhbG9nLm9wZW4oRXh0ZW5zaW9uRGlhbG9nQ29tcG9uZW50LCB7ZGF0YTogeyBleHRlbnNpb25zOiB0aGlzLmFjY2VwdC5tYXAoaXRlbSA9PiBpdGVtLnJlcGxhY2UoJy4nLCAnJykpIH19KVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsZUlucHV0KGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBmaWxlcyA9IHRhcmdldC5maWxlcyBhcyBGaWxlTGlzdDtcclxuICAgIHRoaXMudmFsaWRhdGUoZmlsZXMpO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBvbkZpbGVEcm9wKGZpbGVzOiBhbnkpIHtcclxuICAgIHRoaXMudmFsaWRhdGUoZmlsZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNYXhTaXplTGFiZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1heFNpemVMYWJlbCA9IGdldEZpbGVTaXplTGFiZWwodGhpcy5tYXhTaXplLCAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdChmaWxlczogRmlsZVtdKSB7XHJcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdChmaWxlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRFcnJvcihlcnJvcjogRmlsZVVwbG9hZEVycm9yKSB7XHJcbiAgICB0aGlzLmVycm9yRXZlbnQuZW1pdChlcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHZhbGlkYXRlKGZpbGVzOiBGaWxlTGlzdCkge1xyXG4gICAgLy9sZXQgc2l6ZSA9IDA7XHJcbiAgICBjb25zdCB2YWxpZEZpbGVzOiBGaWxlW10gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZSA9IGZpbGVzW2ldO1xyXG4gICAgICBpZiAoIXRoaXMuYWxsb3dFbXB0eSAmJiBmaWxlLnNpemUgPT0gMCkge1xyXG4gICAgICAgIHRoaXMuZW1pdEVycm9yKHsgY29kZTogRmlsZVVwbG9hZEVycm9yVHlwZUVudW0uRklMRV9FTVBUWSwgZXJyb3I6IFwiRmlsZSBpcyBlbXB0eVwiLCBmaWxlTmFtZTogZmlsZS5uYW1lLCBtYXhTaXplTGFiZWw6IHRoaXMubWF4U2l6ZUxhYmVsIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICAvL3NpemUgKz0gZmlsZS5zaXplO1xyXG4gICAgICBjb25zdCBleHRlbnNpb25FcnJvckNvZGUgPSB0aGlzLmdldEV4dGVuc2lvbkVycm9yQ29kZShmaWxlLm5hbWUpO1xyXG4gICAgICBpZiAoZXh0ZW5zaW9uRXJyb3JDb2RlKSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB7IGNvZGU6IGV4dGVuc2lvbkVycm9yQ29kZSwgZXJyb3I6IFwiTm90IHZhbGlkIGV4dGVuc2lvbi5cIiwgZmlsZU5hbWU6IGZpbGUubmFtZSwgbWF4U2l6ZUxhYmVsOiB0aGlzLm1heFNpemVMYWJlbCB9O1xyXG4gICAgICAgIHRoaXMuZW1pdEVycm9yKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLm1heFNpemUgJiYgZmlsZS5zaXplID4gdGhpcy5tYXhTaXplKSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB7IGNvZGU6IEZpbGVVcGxvYWRFcnJvclR5cGVFbnVtLk1BWF9TSVpFLCBlcnJvcjogXCJNYXhpbXVtIGFsbG93ZWQgZmlsZSBzaXplIGV4Y2VlZGVkLlwiLCBmaWxlTmFtZTogZmlsZS5uYW1lLCBtYXhTaXplTGFiZWw6IHRoaXMubWF4U2l6ZUxhYmVsfTtcclxuICAgICAgICB0aGlzLmVtaXRFcnJvcihlcnJvcik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdmFsaWRGaWxlcy5wdXNoKGZpbGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lbWl0KHZhbGlkRmlsZXMpO1xyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFeHRlbnNpb25FcnJvckNvZGUoZmlsZU5hbWU6IHN0cmluZyk6IEZpbGVVcGxvYWRFcnJvclR5cGVFbnVtIHwgbnVsbCB7XHJcbiAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlTmFtZS5zbGljZShmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpKS50b0xvd2VyQ2FzZSgpXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuYWNjZXB0Lmxlbmd0aCA9PSAwIHx8ICh0aGlzLmFjY2VwdC5sZW5ndGggPT0gMSAmJiB0aGlzLmFjY2VwdFswXSA9PSAnKicpIHx8IHRoaXMuYWNjZXB0LmluY2x1ZGVzKGV4dGVuc2lvbikpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kZWRBY2NlcHRMaXN0Py5pbmNsdWRlcyhleHRlbnNpb24pID8gRmlsZVVwbG9hZEVycm9yVHlwZUVudW0uRklMRV9VUExPQURfVU5TVVBQT1JURURfRk9STUFUX1JFR0lTVEVSIDogRmlsZVVwbG9hZEVycm9yVHlwZUVudW0uRklMRV9VUExPQURfVU5TVVBQT1JURURfRk9STUFUO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmlsZS11cGxvYWRcIiBbbmdDbGFzcy5sdC1zbV09XCInZmlsZS11cGxvYWQtbW9iaWxlJ1wiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gIDxtYXQtcHJvZ3Jlc3MtYmFyIFxyXG4gICAgKm5nSWY9XCJmaWxlUHJldmlld1Byb2dyZXNzXCJcclxuICAgIGNvbG9yPVwicHJpbWFyeVwiIFxyXG4gICAgY2xhc3M9XCJ0bGQtZmlsZS11cGxvYWQtcHJvZ3Jlc3NcIiBcclxuICAgIFt2YWx1ZV09XCJmaWxlUHJldmlld1Byb2dyZXNzXCJcclxuICAgID5cclxuICA8L21hdC1wcm9ncmVzcy1iYXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VDb21wYWN0VXBsb2FkOyBlbHNlIHJlZ3VsYXJVcGxvYWRcIj5cclxuICAgIDxidXR0b24gdGxkRHJhZ0FuZERyb3AgI2lucHV0QnV0dG9uIG1hdC1idXR0b24gKGZpbGVEcm9wcGVkKT1cIm9uRmlsZURyb3AoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBjbGFzcz1cInVwbG9hZC1idXR0b24gdGV4dC1sXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwidXBsb2FkSWNvbk5hbWVcIj57e3VwbG9hZEljb25OYW1lfX08L21hdC1pY29uPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNyZWd1bGFyVXBsb2FkPlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC16b25lXCIgdGxkRHJhZ0FuZERyb3AgKGZpbGVEcm9wcGVkKT1cIm9uRmlsZURyb3AoJGV2ZW50KVwiIFtjbGFzcy5kaXNhYmxlZC11cGxvYWQtem9uZV09XCJkaXNhYmxlZFwiPlxyXG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImZpbGVfdXBsb2FkX2ljb25cIj48L21hdC1pY29uPlxyXG5cclxuICBcclxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC16b25lLWxhYmVsc1wiPlxyXG4gICAgICAgIDxhIGNvbG9yPVwicHJpbWFyeS1hY2NlbnQtZGFya2VyXCIgY2xhc3M9XCJmaWxlLXVwbG9hZC0tYnRuXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+e3sgdXBsb2FkQnV0dG9uTGFiZWwgfX08L2E+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPHNwYW4gZnhIaWRlLmx0LXNtIGNsYXNzPVwidXBsb2FkLWxhYmVsXCIgW2lubmVySFRNTF09XCJkcmFnWm9uZUxhYmVsXCI+PC9zcGFuPlxyXG4gIFxyXG4gICAgICAgIDxwIGNsYXNzPVwidXBsb2FkLXpvbmUtZm9ybWF0c1wiPlxyXG4gICAgICAgICAgKDxzcGFuICpuZ0Zvcj1cImxldCBmb3JtYXQgb2YgYWNjZXB0OyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgPnt7IGZvcm1hdFxyXG4gICAgICAgICAgICB9fXt7IGFjY2VwdC5sZW5ndGggLSAxID09PSBpID8gXCIuXCIgOiBcIiwgXCIgfX08L3NwYW5cclxuICAgICAgICAgID5cclxuXHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1heFNpemVcIiBbaW5uZXJIVE1MXT1cIidGSUxFX1VQTE9BRC5MSU1JVFNfTUInIHwgdHJhbnNsYXRlOiB7IG1heFNpemU6IG1heFNpemVMYWJlbCB9XCI+PC9zcGFuPilcclxuICAgICAgICA8L3A+XHJcbiAgXHJcbiAgICAgICAgQGlmIChhY2NlcHQubGVuZ3RoID4gbWluU3VwcG9ydGVkRm9ybWF0Q291bnQpIHtcclxuICAgICAgICAgIDxhIGNsYXNzPVwic3VwcG9ydGVkLWZvcm1hdHMtYnRuXCIgKGNsaWNrKT1cIm9wZW5TdXBwb3J0ZWRGb3JtYXRNb2RhbCgpXCI+e3tvcGVuRXh0ZW5zaW9uUG9wdXBMYWJlbH19PC9hPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxpbnB1dCBcclxuICAjZmlsZUlucHV0IFxyXG4gIHR5cGU9XCJmaWxlXCIgXHJcbiAgbmFtZT1cImZpbGVzXCIgXHJcbiAgY2xhc3M9XCJuYXRpdmUtZmlsZS1pbnB1dFwiXHJcbiAgW2FjY2VwdF09XCJhbGxvd2VkRXh0ZW5zaW9uc1wiIFxyXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIFxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgKGNoYW5nZSk9XCJoYW5kbGVGaWxlSW5wdXQoJGV2ZW50KVwiIFxyXG4vPlxyXG4iXX0=
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7O0lDTjVDLHNDQU1tQjs7O0lBRmpCLGtEQUE2Qjs7O0lBUTNCLGdDQUFpQztJQUFBLFlBQWtCO0lBQUEsaUJBQVc7OztJQUE3QixjQUFrQjtJQUFsQiwyQ0FBa0I7Ozs7SUFKdkQsNkJBQTJEO0lBQ3pELG9DQUVDO0lBREMsQUFENkMsME1BQWUseUJBQWtCLEtBQUMsb01BQ3RFLG9CQUFpQixLQUFDO0lBRTNCLDZGQUFpQztJQUNqQyxrQkFBeUI7SUFDM0IsaUJBQVM7Ozs7SUFMeUUsY0FBcUI7SUFBckIsMENBQXFCO0lBRzFGLGVBQW9CO0lBQXBCLDRDQUFvQjs7O0lBZ0IxQiw0QkFD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USxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsOEJBQThCLENBQUM7UUFDakwsQ0FBQztJQUNILENBQUM7b0hBM0dVLG1CQUFtQjtvRUFBbkIsbUJBQW1COzs7Ozs7OztZQ2RoQyw4QkFBNEY7WUFrQjFGLEFBVEEsQUFSQSw4RkFLRyx5RUFHd0QseUdBUy9CO1lBMEI5QixtQ0FTRTtZQURBLDZJQUFVLDJCQUF1QixLQUFDO1lBUnBDLGlCQVNFLEVBckQwRjs7O1lBQTVCLHdDQUEyQjtZQUFsRSxvREFBc0M7WUFFMUQsY0FBeUI7WUFBekIsOENBQXlCO1lBT2IsY0FBd0I7WUFBQSxBQUF4QiwyQ0FBd0IsOEJBQWtCO1lBd0N6RCxlQUE0QjtZQUU1QixBQURBLEFBREEsOENBQTRCLDBCQUNQLDBCQUNBOzs7aUZEckNWLG1CQUFtQjtjQUwvQixTQUFTOzJCQUNFLGlCQUFpQjtvQkFLSCxTQUFTO2tCQUFoQyxTQUFTO21CQUFDLFdBQVc7WUFFWixVQUFVO2tCQUFuQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTTtZQUVNLE1BQU07a0JBQWxCLEtBQUs7WUFLRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFFRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csbUJBQW1CO2tCQUEzQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLHVCQUF1QjtrQkFBL0IsS0FBSztZQUNHLHVCQUF1QjtrQkFBL0IsS0FBSztZQUdHLGtCQUFrQjtrQkFBMUIsS0FBSzs7a0ZBekJLLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRFcnJvclR5cGVFbnVtIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS11cGxvYWQtZXJyb3ItdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZEVycm9yIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS11cGxvYWQtZXJyb3IubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9leHRlbnNpb24tZGlhbG9nJztcclxuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEZJTEVfVVBMT0FEX0lDT04gfSBmcm9tICcuL21vZGVscy9maWxlLXVwbG9hZC5pY29uJztcclxuaW1wb3J0IHsgZ2V0RmlsZVNpemVMYWJlbCB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmlsZS11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuXHJcbiAgQE91dHB1dCgpIGZpbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XHJcbiAgQE91dHB1dCgpIGVycm9yRXZlbnQ6IEV2ZW50RW1pdHRlcjxGaWxlVXBsb2FkRXJyb3I+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlVXBsb2FkRXJyb3I+KCk7XHJcbiAgcHJpdmF0ZSBfYWNjZXB0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNldCBhY2NlcHQodmFsOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5fYWNjZXB0ID0gdmFsO1xyXG4gICAgdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyA9IHZhbCA/IHZhbC5qb2luKFwiLFwiKSA6IFwiXCI7XHJcbiAgfVxyXG4gIGdldCBhY2NlcHQoKSB7IHJldHVybiB0aGlzLl9hY2NlcHQgfVxyXG4gIEBJbnB1dCgpIHVzZUNvbXBhY3RVcGxvYWQgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBtYXhTaXplITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZmlsZVByZXZpZXdQcm9ncmVzcyE6IG51bWJlcjtcclxuICBASW5wdXQoKSBhbGxvd0VtcHR5ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZHJhZ1pvbmVMYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSB1cGxvYWRJY29uTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSB1cGxvYWRCdXR0b25MYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBvcGVuRXh0ZW5zaW9uUG9wdXBMYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBtaW5TdXBwb3J0ZWRGb3JtYXRDb3VudDogbnVtYmVyID0gOTtcclxuXHJcbiAgLyoqIHNhbWUgYXMgYWNjZXB0IGJ1dCBmb3IgcmVnaXN0ZXJlZCB1c2Vycy4gSXQgY2hhbmdlcyBlcnJvciBtZXNzYWdlIGlmIGV4dGVuc2lvbiBpcyBzdXBwb3J0ZWQgZm9yIHJlZ2lzdGVyZWQgdXNlcnMuICovXHJcbiAgQElucHV0KCkgZXh0ZW5kZWRBY2NlcHRMaXN0ITogc3RyaW5nW107XHJcblxyXG4gIG1heFNpemVMYWJlbCE6IHN0cmluZztcclxuICBhbGxvd2VkRXh0ZW5zaW9ucyE6IHN0cmluZztcclxuXHJcbiAgI2RpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xyXG4gICNpY29uID0gaW5qZWN0KEljb25TZXJ2aWNlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLiNpY29uLnJlZ2lzdGVySWNvbnMoe0ZJTEVfVVBMT0FEX0lDT059KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLnNldE1heFNpemVMYWJlbCgpO1xyXG4gIH1cclxuXHJcbiAgb3BlblN1cHBvcnRlZEZvcm1hdE1vZGFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy4jZGlhbG9nLm9wZW4oRXh0ZW5zaW9uRGlhbG9nQ29tcG9uZW50LCB7ZGF0YTogeyBleHRlbnNpb25zOiB0aGlzLmFjY2VwdC5tYXAoaXRlbSA9PiBpdGVtLnJlcGxhY2UoJy4nLCAnJykpIH19KVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsZUlucHV0KGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBmaWxlcyA9IHRhcmdldC5maWxlcyBhcyBGaWxlTGlzdDtcclxuICAgIHRoaXMudmFsaWRhdGUoZmlsZXMpO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBvbkZpbGVEcm9wKGZpbGVzOiBhbnkpIHtcclxuICAgIHRoaXMudmFsaWRhdGUoZmlsZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNYXhTaXplTGFiZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1heFNpemVMYWJlbCA9IGdldEZpbGVTaXplTGFiZWwodGhpcy5tYXhTaXplLCAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdChmaWxlczogRmlsZVtdKSB7XHJcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdChmaWxlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRFcnJvcihlcnJvcjogRmlsZVVwbG9hZEVycm9yKSB7XHJcbiAgICB0aGlzLmVycm9yRXZlbnQuZW1pdChlcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHZhbGlkYXRlKGZpbGVzOiBGaWxlTGlzdCkge1xyXG4gICAgLy9sZXQgc2l6ZSA9IDA7XHJcbiAgICBjb25zdCB2YWxpZEZpbGVzOiBGaWxlW10gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZSA9IGZpbGVzW2ldO1xyXG4gICAgICBpZiAoIXRoaXMuYWxsb3dFbXB0eSAmJiBmaWxlLnNpemUgPT0gMCkge1xyXG4gICAgICAgIHRoaXMuZW1pdEVycm9yKHsgY29kZTogRmlsZVVwbG9hZEVycm9yVHlwZUVudW0uRklMRV9FTVBUWSwgZXJyb3I6IFwiRmlsZSBpcyBlbXB0eVwiLCBmaWxlTmFtZTogZmlsZS5uYW1lLCBtYXhTaXplTGFiZWw6IHRoaXMubWF4U2l6ZUxhYmVsIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICAvL3NpemUgKz0gZmlsZS5zaXplO1xyXG4gICAgICBjb25zdCBleHRlbnNpb25FcnJvckNvZGUgPSB0aGlzLmdldEV4dGVuc2lvbkVycm9yQ29kZShmaWxlLm5hbWUpO1xyXG4gICAgICBpZiAoZXh0ZW5zaW9uRXJyb3JDb2RlKSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB7IGNvZGU6IGV4dGVuc2lvbkVycm9yQ29kZSwgZXJyb3I6IFwiTm90IHZhbGlkIGV4dGVuc2lvbi5cIiwgZmlsZU5hbWU6IGZpbGUubmFtZSwgbWF4U2l6ZUxhYmVsOiB0aGlzLm1heFNpemVMYWJlbCB9O1xyXG4gICAgICAgIHRoaXMuZW1pdEVycm9yKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLm1heFNpemUgJiYgZmlsZS5zaXplID4gdGhpcy5tYXhTaXplKSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB7IGNvZGU6IEZpbGVVcGxvYWRFcnJvclR5cGVFbnVtLk1BWF9TSVpFLCBlcnJvcjogXCJNYXhpbXVtIGFsbG93ZWQgZmlsZSBzaXplIGV4Y2VlZGVkLlwiLCBmaWxlTmFtZTogZmlsZS5uYW1lLCBtYXhTaXplTGFiZWw6IHRoaXMubWF4U2l6ZUxhYmVsfTtcclxuICAgICAgICB0aGlzLmVtaXRFcnJvcihlcnJvcik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdmFsaWRGaWxlcy5wdXNoKGZpbGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lbWl0KHZhbGlkRmlsZXMpO1xyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFeHRlbnNpb25FcnJvckNvZGUoZmlsZU5hbWU6IHN0cmluZyk6IEZpbGVVcGxvYWRFcnJvclR5cGVFbnVtIHwgbnVsbCB7XHJcbiAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlTmFtZS5zbGljZShmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpKS50b0xvd2VyQ2FzZSgpXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuYWNjZXB0Lmxlbmd0aCA9PSAwIHx8ICh0aGlzLmFjY2VwdC5sZW5ndGggPT0gMSAmJiB0aGlzLmFjY2VwdFswXSA9PSAnKicpIHx8IHRoaXMuYWNjZXB0LmluY2x1ZGVzKGV4dGVuc2lvbikpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kZWRBY2NlcHRMaXN0Py5pbmNsdWRlcyhleHRlbnNpb24pID8gRmlsZVVwbG9hZEVycm9yVHlwZUVudW0uRklMRV9VUExPQURfVU5TVVBQT1JURURfRk9STUFUX1JFR0lTVEVSIDogRmlsZVVwbG9hZEVycm9yVHlwZUVudW0uRklMRV9VUExPQURfVU5TVVBQT1JURURfRk9STUFUO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmlsZS11cGxvYWRcIiBbbmdDbGFzcy5sdC1zbV09XCInZmlsZS11cGxvYWQtbW9iaWxlJ1wiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gIDxtYXQtcHJvZ3Jlc3MtYmFyIFxyXG4gICAgKm5nSWY9XCJmaWxlUHJldmlld1Byb2dyZXNzXCJcclxuICAgIGNvbG9yPVwicHJpbWFyeVwiIFxyXG4gICAgY2xhc3M9XCJ0bGQtZmlsZS11cGxvYWQtcHJvZ3Jlc3NcIiBcclxuICAgIFt2YWx1ZV09XCJmaWxlUHJldmlld1Byb2dyZXNzXCJcclxuICAgID5cclxuICA8L21hdC1wcm9ncmVzcy1iYXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VDb21wYWN0VXBsb2FkOyBlbHNlIHJlZ3VsYXJVcGxvYWRcIj5cclxuICAgIDxidXR0b24gdGxkRHJhZ0FuZERyb3AgI2lucHV0QnV0dG9uIG1hdC1idXR0b24gKGZpbGVEcm9wcGVkKT1cIm9uRmlsZURyb3AoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBjbGFzcz1cInVwbG9hZC1idXR0b24gdGV4dC1sXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwidXBsb2FkSWNvbk5hbWVcIj57e3VwbG9hZEljb25OYW1lfX08L21hdC1pY29uPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNyZWd1bGFyVXBsb2FkPlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC16b25lXCIgdGxkRHJhZ0FuZERyb3AgKGZpbGVEcm9wcGVkKT1cIm9uRmlsZURyb3AoJGV2ZW50KVwiIFtjbGFzcy5kaXNhYmxlZC11cGxvYWQtem9uZV09XCJkaXNhYmxlZFwiPlxyXG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImZpbGVfdXBsb2FkX2ljb25cIj48L21hdC1pY29uPlxyXG5cclxuICBcclxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC16b25lLWxhYmVsc1wiPlxyXG4gICAgICAgIDxhIGNvbG9yPVwiYWNjZW50XCIgY2xhc3M9XCJmaWxlLXVwbG9hZC0tYnRuXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+e3sgdXBsb2FkQnV0dG9uTGFiZWwgfX08L2E+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPHNwYW4gZnhIaWRlLmx0LXNtIGNsYXNzPVwidXBsb2FkLWxhYmVsXCIgW2lubmVySFRNTF09XCJkcmFnWm9uZUxhYmVsXCI+PC9zcGFuPlxyXG4gIFxyXG4gICAgICAgIDxwIGNsYXNzPVwidXBsb2FkLXpvbmUtZm9ybWF0c1wiPlxyXG4gICAgICAgICAgKDxzcGFuICpuZ0Zvcj1cImxldCBmb3JtYXQgb2YgYWNjZXB0OyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgPnt7IGZvcm1hdFxyXG4gICAgICAgICAgICB9fXt7IGFjY2VwdC5sZW5ndGggLSAxID09PSBpID8gXCIuXCIgOiBcIiwgXCIgfX08L3NwYW5cclxuICAgICAgICAgID5cclxuXHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1heFNpemVcIiBbaW5uZXJIVE1MXT1cIidGSUxFX1VQTE9BRC5MSU1JVFNfTUInIHwgdHJhbnNsYXRlOiB7IG1heFNpemU6IG1heFNpemVMYWJlbCB9XCI+PC9zcGFuPilcclxuICAgICAgICA8L3A+XHJcbiAgXHJcbiAgICAgICAgQGlmIChhY2NlcHQubGVuZ3RoID4gbWluU3VwcG9ydGVkRm9ybWF0Q291bnQpIHtcclxuICAgICAgICAgIDxhIGNsYXNzPVwic3VwcG9ydGVkLWZvcm1hdHMtYnRuXCIgKGNsaWNrKT1cIm9wZW5TdXBwb3J0ZWRGb3JtYXRNb2RhbCgpXCI+e3tvcGVuRXh0ZW5zaW9uUG9wdXBMYWJlbH19PC9hPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxpbnB1dCBcclxuICAjZmlsZUlucHV0IFxyXG4gIHR5cGU9XCJmaWxlXCIgXHJcbiAgbmFtZT1cImZpbGVzXCIgXHJcbiAgY2xhc3M9XCJuYXRpdmUtZmlsZS1pbnB1dFwiXHJcbiAgW2FjY2VwdF09XCJhbGxvd2VkRXh0ZW5zaW9uc1wiIFxyXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIFxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgKGNoYW5nZSk9XCJoYW5kbGVGaWxlSW5wdXQoJGV2ZW50KVwiIFxyXG4vPlxyXG4iXX0=
|
|
@@ -380,7 +380,7 @@ export class FilterBarComponent {
|
|
|
380
380
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optionSearchInputs = _t);
|
|
381
381
|
} }, hostBindings: function FilterBarComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
382
382
|
i0.ɵɵlistener("resize", function FilterBarComponent_resize_HostBindingHandler() { return ctx.onResize(); }, false, i0.ɵɵresolveWindow);
|
|
383
|
-
} }, inputs: { settings: "settings", filterRowVisible: "filterRowVisible" }, outputs: { filterBarChange: "filterBarChange" }, decls: 1, vars: 1, consts: [["filterWrapper", ""], ["select", ""], ["optionSearchInput", ""], ["sortedValuesByProperty", ""], ["defaultCase", ""], ["class", "filter-row", 4, "ngIf"], [1, "filter-row"], ["fxLayout", "row", 1, "filter-wrapper", 3, "formGroup"], [3, "formGroup"], ["mat-stroked-button", "", "color", "
|
|
383
|
+
} }, inputs: { settings: "settings", filterRowVisible: "filterRowVisible" }, outputs: { filterBarChange: "filterBarChange" }, decls: 1, vars: 1, consts: [["filterWrapper", ""], ["select", ""], ["optionSearchInput", ""], ["sortedValuesByProperty", ""], ["defaultCase", ""], ["class", "filter-row", 4, "ngIf"], [1, "filter-row"], ["fxLayout", "row", 1, "filter-wrapper", 3, "formGroup"], [3, "formGroup"], ["mat-stroked-button", "", "color", "accent", 1, "select-trigger-btn", 3, "filter-active"], [4, "ngIf"], ["mat-stroked-button", "", "color", "accent", 1, "select-trigger-btn", 3, "click"], [1, "select-trigger-btn-label"], ["class", "selected-count", 4, "ngIf"], ["multiple", "", 3, "openedChange", "selectionChange", "panelClass", "panelWidth", "formControlName"], [1, "selected-count"], ["type", "text", 1, "option-search-input", 3, "keyup", "keydown", "placeholder"], [4, "ngIf", "ngIfElse"], [1, "filter-option", 3, "hidden", "disabled", "value"], [1, "filter-option", 3, "disabled", "value"], [1, "filter-arrows"], ["mat-icon-button", "", 3, "click"], [1, "material-icons-outlined"]], template: function FilterBarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
384
384
|
i0.ɵɵtemplate(0, FilterBarComponent_div_0_Template, 7, 3, "div", 5);
|
|
385
385
|
} if (rf & 2) {
|
|
386
386
|
i0.ɵɵproperty("ngIf", ctx.filterRowVisible);
|
|
@@ -388,7 +388,7 @@ export class FilterBarComponent {
|
|
|
388
388
|
}
|
|
389
389
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FilterBarComponent, [{
|
|
390
390
|
type: Component,
|
|
391
|
-
args: [{ selector: 'tld-filter-bar', template: "<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n @for (filter of currentFilters; track filter.fieldName; let i = $index) {\r\n <button [class.filter-active]=\"filter.selectedValues?.length\" class=\"select-trigger-btn\" mat-stroked-button color=\"
|
|
391
|
+
args: [{ selector: 'tld-filter-bar', template: "<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n @for (filter of currentFilters; track filter.fieldName; let i = $index) {\r\n <button [class.filter-active]=\"filter.selectedValues?.length\" class=\"select-trigger-btn\" mat-stroked-button color=\"accent\" (click)=\"select.open()\">\r\n <div class=\"select-trigger-btn-label\">\r\n <span>{{filter.title | translate}}</span>\r\n <span *ngIf=\"filter.selectedValues?.length\" class=\"selected-count\">({{filter.selectedValues?.length}})</span>\r\n <mat-icon>{{ select.panelOpen ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\" }}</mat-icon>\r\n </div>\r\n\r\n <mat-select\r\n multiple \r\n #select\r\n [panelClass]=\"'filter-panel'\"\r\n [panelWidth]=\"filter?.maxPanelWidth ?? 'auto'\" \r\n [formControlName]=\"filter.fieldName\" \r\n (openedChange)=\"$event === true ? focusOptionSearchInput(filter, i) : clearOptionSearchInput(filter, i)\"\r\n (selectionChange)=\"selectEvent($event, filter)\" \r\n >\r\n <ng-container *ngIf=\"filter?.search?.placeholder\">\r\n <input #optionSearchInput class=\"option-search-input\" [class.hidden]=\"filter.values!.length < 10\" type=\"text\" [placeholder]=\"filter.search?.placeholder ?? '' | translate\" (keyup)=\"filterOptions($event, filter)\" (keydown)=\"$event.stopPropagation()\">\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"filter.values.length\">\r\n <ng-container *ngIf=\"filter.translated; else sortedValuesByProperty\">\r\n @for (value of (filter.search?.filteredValues ?? filter.values) | sortAlphabetically:'key'; track value.key) {\r\n <mat-option [class.hidden]=\"filter.search?.searchCriteria && value.isSelected && !value.matchesSearchCriteria\" class=\"filter-option\" [disabled]=\"filter.singleSelection?.selected && filter.singleSelection?.value !== value.value\" [value]=\"value\">\r\n {{ filter.disableTitleCase ? value.key : (value.key | titlecase) }}\r\n </mat-option>\r\n }\r\n </ng-container>\r\n \r\n <ng-template #sortedValuesByProperty>\r\n @for (value of (filter.search?.filteredValues ?? filter.values) | sortTranslationsByProperty:'key':'value'; track value.value) {\r\n <mat-option [class.hidden]=\"filter.search?.searchCriteria && value.isSelected && !value.matchesSearchCriteria\" class=\"filter-option\" [disabled]=\"filter.singleSelection?.selected && filter.singleSelection?.value !== value.value\" [value]=\"value\">\r\n <ng-container *ngIf=\"!filter.disableTitleCase; else defaultCase\">\r\n {{ value.key | translate : { default: value.value | titlecase } }}\r\n </ng-container>\r\n \r\n <ng-template #defaultCase>\r\n {{ value.key | translate : { default: value.value } }} \r\n </ng-template>\r\n </mat-option>\r\n }\r\n </ng-template>\r\n </ng-container>\r\n </mat-select>\r\n </button>\r\n }\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"filterOverflow\">\r\n <div class=\"filter-arrows\">\r\n <button mat-icon-button (click)=\"switchLeft()\">\r\n <span class=\"material-icons-outlined\">\r\n chevron_left\r\n </span>\r\n </button>\r\n <button mat-icon-button (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n chevron_right\r\n </span>\r\n </button>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: [":host{display:inline-block}.select-trigger-btn{position:relative}.select-trigger-btn mat-select{width:100%;height:100%;opacity:0;position:absolute;top:0;left:0}.select-trigger-btn-label{display:flex;align-items:center;white-space:nowrap}.selected-count{margin-left:3px}.filter-row{display:flex;min-height:40px;min-width:100%;border-radius:.5rem;max-width:100%;align-items:center;margin-bottom:.5rem}.option-search-input{font-size:14px;width:100%;padding:.5rem 1rem;margin-bottom:.5rem}.material-icons-outlined{color:var(--base-40)}.filter-wrapper{max-width:100%;overflow-x:hidden;overflow-y:hidden;display:flex;gap:8px;flex:1}.hidden{display:none}::ng-deep .cdk-overlay-pane:has(.filter-panel){margin:15px 0 0 -15px}::ng-deep .filter-panel{border-radius:4px!important}:host ::ng-deep .mat-mdc-form-field-flex{background-color:var(--base-100);max-height:36px}:host ::ng-deep .mat-mdc-form-field-infix{padding-top:6px!important}:host ::ng-deep .mat-mdc-form-field-focus-overlay,:host ::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--base-95)}:host ::ng-deep .mdc-text-field--focused{background-color:var(--base-70)!important}:host ::ng-deep .mat-mdc-select-placeholder,:host ::ng-deep .mat-mdc-select-value-text,:host ::ng-deep .mdc-floating-label{font-size:14px!important}:host ::ng-deep .mdc-text-field--filled{--mdc-filled-text-field-active-indicator-height: 0;--mdc-filled-text-field-focus-active-indicator-height: 0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}:host ::ng-deep .mat-mdc-text-field-wrapper:hover{background-color:var(--base-70)!important;transition:.1s}:host ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}:host ::ng-deep .mdc-floating-label--float-above{margin-top:3px}\n"] }]
|
|
392
392
|
}], () => [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }], { filterWrapper: [{
|
|
393
393
|
type: ViewChild,
|
|
394
394
|
args: ["filterWrapper"]
|
|
@@ -406,4 +406,4 @@ export class FilterBarComponent {
|
|
|
406
406
|
type: Output
|
|
407
407
|
}] }); })();
|
|
408
408
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterBarComponent, { className: "FilterBarComponent", filePath: "lib\\filter-bar\\filter-bar.component.ts", lineNumber: 16 }); })();
|
|
409
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvZmlsdGVyLWJhci9maWx0ZXItYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9maWx0ZXItYmFyL2ZpbHRlci1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9LLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNNNUMsZ0NBQW1FO0lBQUEsWUFBbUM7SUFBQSxpQkFBTzs7O0lBQTFDLGNBQW1DO0lBQW5DLDBHQUFtQzs7OztJQWF0Ryw2QkFBa0Q7SUFDaEQsb0NBQXdQOztJQUFyQyxBQUF4QywwUEFBUyx1Q0FBNkIsS0FBQyw2SkFBWSx3QkFBd0IsS0FBQztJQUF2UCxpQkFBd1A7Ozs7O0lBQWxNLGNBQTJDO0lBQTNDLHNEQUEyQztJQUFhLGtMQUE0RDs7O0lBTXBLLHNDQUFvUDtJQUNsUCxZQUNGOztJQUFBLGlCQUFhOzs7O0lBRkQsdUpBQWtHO0lBQXNILEFBQS9GLDZNQUE4RixtQkFBZ0I7SUFDalAsY0FDRjtJQURFLCtHQUNGOzs7SUFKTiw2QkFBcUU7SUFDakUsd0lBSUM7Ozs7OztJQUpELGNBSUM7SUFKRCxvTEFBc0UsS0FBSyxFQUkxRTs7O0lBTUcsNkJBQWlFO0lBQ2pFLFlBQ0E7Ozs7OztJQURBLGNBQ0E7SUFEQSxxSUFDQTs7O0lBR0UsWUFDRjs7OztJQURFLCtHQUNGOzs7SUFQRixzQ0FBb1A7SUFLbFAsQUFKQSxzSUFBaUUs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QUtFLGFBQWE7a0JBQXhDLFNBQVM7bUJBQUMsZUFBZTtZQUNTLGtCQUFrQjtrQkFBcEQsWUFBWTttQkFBQyxtQkFBbUI7WUFFakMsUUFBUTtrQkFEUCxZQUFZO21CQUFDLGVBQWUsRUFBRSxFQUFFO1lBS3hCLFFBQVE7a0JBQWhCLEtBQUs7WUFDTyxnQkFBZ0I7a0JBQTVCLEtBQUs7WUFNSSxlQUFlO2tCQUF4QixNQUFNOztrRkFmSSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJCYXJGaWx0ZXIsIEZpbHRlckJhckZpbHRlckl0ZW0gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IEZpbHRlckJhckNoYW5nZUV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvZmlsdGVyLWJhci1jaGFuZ2UtZXZlbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWx0ZXJCYXJTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWxzL2ZpbHRlci1iYXItc2V0dGluZ3MubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAndGxkLWZpbHRlci1iYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXItYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlckJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKFwiZmlsdGVyV3JhcHBlclwiKSBmaWx0ZXJXcmFwcGVyITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkcmVuKCdvcHRpb25TZWFyY2hJbnB1dCcpIG9wdGlvblNlYXJjaElucHV0cyE6IEVsZW1lbnRSZWZbXTtcclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgW10pXHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICB0aGlzLmNoZWNrT3ZlcmZsb3coKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldHRpbmdzITogRmlsdGVyQmFyU2V0dGluZ3M7XHJcbiAgQElucHV0KCkgc2V0IGZpbHRlclJvd1Zpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2ZpbHRlclJvd1Zpc2libGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RyZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5jaGVja092ZXJmbG93KCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgZmlsdGVyQmFyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmlsdGVyQmFyQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJCYXJDaGFuZ2VFdmVudD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfaW5wdXRUZXh0ID0gXCJcIjtcclxuICBwcml2YXRlIF9maWx0ZXJSb3dWaXNpYmxlITogYm9vbGVhbjtcclxuICBwcml2YXRlIGZvcm1DaGFuZ2VzU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICByZWFkb25seSBmaWx0ZXJGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICByZWFkb25seSBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlckZvcm1Hcm91cFxyXG4gIH0pO1xyXG5cclxuICBmaWx0ZXJzOiBGaWx0ZXJCYXJDaGFuZ2VFdmVudCA9IHtcclxuICAgIGlucHV0OiAnJyxcclxuICAgIGZpbHRlcnM6IHt9LFxyXG4gIH07XHJcblxyXG4gIGZpbHRlck92ZXJmbG93ID0gZmFsc2U7XHJcbiAgYWN0aXZlRmlsdGVySW5kZXggPSAwO1xyXG5cclxuICAvLyBnZXR0ZXIgZm9yIGNsZWFuZXIgdGVtcGxhdGUgaHRtbFxyXG4gIGdldCBmaWx0ZXJGb3JtR3JvdXBWYWx1ZSgpOiB7IFtrZXk6IHN0cmluZ106IEZpbHRlckJhckZpbHRlckl0ZW1bXSB9IHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm1Hcm91cC52YWx1ZTtcclxuICB9XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9hZGphY2VudC1vdmVybG9hZC1zaWduYXR1cmVzXHJcbiAgZ2V0IGZpbHRlclJvd1Zpc2libGUoKSB7IHJldHVybiB0aGlzLl9maWx0ZXJSb3dWaXNpYmxlOyB9XHJcbiAgZ2V0IGlucHV0VGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pbnB1dFRleHQ7XHJcbiAgfVxyXG4gIGdldCBvdXRwdXRGaWx0ZXJLZXlBbmRWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzPy5vdXRwdXRGaWx0ZXJLZXlBbmRWYWx1ZTtcclxuICB9XHJcbiAgZ2V0IGN1cnJlbnRGaWx0ZXJzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3M/LnNwbGl0dGVkRmlsdGVycz8ubGVuZ3RoID8gdGhpcy5zZXR0aW5ncy5zcGxpdHRlZEZpbHRlcnNbdGhpcy5hY3RpdmVGaWx0ZXJJbmRleF0gOiB0aGlzLnNldHRpbmdzPy5maWx0ZXJzO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9hZGphY2VudC1vdmVybG9hZC1zaWduYXR1cmVzXHJcbiAgc2V0IGlucHV0VGV4dCh2YWx1ZSkge1xyXG4gICAgdGhpcy5faW5wdXRUZXh0ID0gdmFsdWU7XHJcbiAgICB0aGlzLmZpbHRlcnMuaW5wdXQgPSB0aGlzLl9pbnB1dFRleHQ7XHJcbiAgICB0aGlzLmVtaXRGaWx0ZXJzKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuZmlsdGVycz8uZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuYWRkQ29udHJvbChmaWVsZC5maWVsZE5hbWUsIG5ldyBGb3JtQ29udHJvbChbXSkpO1xyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnN1YnNjcmliZVRvRm9ybVZhbHVlQ2hhbmdlcygpO1xyXG4gIFxyXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJJbmRleCA9IDA7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoZWNrT3ZlcmZsb3coKTtcclxuICAgIHRoaXMuY2RyZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUFsbEZpbHRlcnMoKTtcclxuICAgIHRoaXMuZm9ybUNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzT3B0aW9uU2VhcmNoSW5wdXQoZmlsdGVyOiBGaWx0ZXJCYXJGaWx0ZXIsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICghZmlsdGVyLnNlYXJjaD8ucGxhY2Vob2xkZXIgfHwgZmlsdGVyLnNlbGVjdGVkVmFsdWVzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub3B0aW9uU2VhcmNoSW5wdXRzLmZpbmQoKF9pdGVtLCBpKSA9PiBpID09PSBpbmRleCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuXHJcbiAgICBpZiAoZmlsdGVyLm1heFBhbmVsV2lkdGggPT09ICcnICYmIGZpbHRlci5zZWFyY2gucGxhY2Vob2xkZXIpIHtcclxuICAgICAgdGhpcy5zZXRQYW5lbFdpZHRoKGZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhck9wdGlvblNlYXJjaElucHV0KGZpbHRlcjogRmlsdGVyQmFyRmlsdGVyLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoIWZpbHRlci5zZWFyY2g/LnBsYWNlaG9sZGVyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMub3B0aW9uU2VhcmNoSW5wdXRzLmZpbmQoKF9pdGVtLCBpKSA9PiBpID09PSBpbmRleCk/Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKGlucHV0KSB7XHJcbiAgICAgIGlucHV0LnZhbHVlID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgZmlsdGVyLnNlYXJjaC5zZWFyY2hDcml0ZXJpYSA9ICcnO1xyXG4gICAgdGhpcy5maWx0ZXJPcHRpb25zKG51bGwsIGZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJPcHRpb25zKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgbnVsbCwgZmlsdGVyOiBGaWx0ZXJCYXJGaWx0ZXIpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50Py50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcclxuICAgIGZpbHRlci5zZWFyY2ghLnNlYXJjaENyaXRlcmlhID0gdGFyZ2V0Py52YWx1ZSA/PyAnJztcclxuICAgIHRoaXMuc2V0dGluZ3MuZmlsdGVycz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5maWVsZE5hbWUgPT09IGZpbHRlci5maWVsZE5hbWUgJiYgaXRlbS5zZWFyY2gpIHtcclxuICAgICAgICBpdGVtLnNlYXJjaC5maWx0ZXJlZFZhbHVlcyA9IGZpbHRlci52YWx1ZXMuZmlsdGVyKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBpdGVtLnRyYW5zbGF0ZWQgPyB2YWx1ZS5rZXkgOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHZhbHVlLmtleSk7XHJcbiAgICAgICAgICBjb25zdCBtYXRjaGVzU2VhcmNoID0gdmFsdWVLZXkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0YXJnZXQ/LnZhbHVlPy50b0xvd2VyQ2FzZSgpID8/ICcnKTtcclxuICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBmaWx0ZXIuc2VsZWN0ZWRWYWx1ZXM/LnNvbWUoKHNlbGVjdGVkVmFsdWUpID0+IHNlbGVjdGVkVmFsdWUua2V5ID09PSB2YWx1ZS5rZXkpO1xyXG4gICAgICAgICAgdmFsdWUuaXNTZWxlY3RlZCA9IGlzU2VsZWN0ZWQgPz8gZmFsc2U7XHJcbiAgICAgICAgICB2YWx1ZS5tYXRjaGVzU2VhcmNoQ3JpdGVyaWEgPSBtYXRjaGVzU2VhcmNoID8/IGZhbHNlO1xyXG4gICAgICAgICAgcmV0dXJuIG1hdGNoZXNTZWFyY2ggfHwgaXNTZWxlY3RlZDtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEV2ZW50KGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UsIGZpbHRlcjogRmlsdGVyQmFyRmlsdGVyKSB7XHJcbiAgICBjb25zdCBzZXR0aW5nRmlsdGVyID0gdGhpcy5zZXR0aW5ncy5maWx0ZXJzPy5maW5kKChpdGVtKSA9PiBpdGVtLmZpZWxkTmFtZSA9PT0gZmlsdGVyLmZpZWxkTmFtZSkgYXMgRmlsdGVyQmFyRmlsdGVyO1xyXG4gICAgc2V0dGluZ0ZpbHRlci5zZWxlY3RlZFZhbHVlcyA9IGV2ZW50LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFuZWxXaWR0aChmaWx0ZXI6IEZpbHRlckJhckZpbHRlcik6IHZvaWQge1xyXG4gICAgLy8gV2UgbXVzdCBzYXZlIHBhbmVsIHdpZHRoLCBzbyBmaWx0ZXJpbmcgZG9lcyBub3QgYWZmZWN0IGl0YHMgc2l6ZS5cclxuICAgIGNvbnN0IHNlbGVjdFBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNkay1vdmVybGF5LXBhbmUnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IHNlbGVjdFBhbmVsV2lkdGggPSBzZWxlY3RQYW5lbC5jbGllbnRXaWR0aCBhcyBudW1iZXI7XHJcbiAgICBjb25zdCBmaWx0ZXJPYmogPSB0aGlzLnNldHRpbmdzLmZpbHRlcnM/LmZpbmQoKGl0ZW0pID0+IGl0ZW0uZmllbGROYW1lID09PSBmaWx0ZXIuZmllbGROYW1lKSBhcyBGaWx0ZXJCYXJGaWx0ZXI7XHJcbiAgICBmaWx0ZXJPYmoubWF4UGFuZWxXaWR0aCA9IHNlbGVjdFBhbmVsV2lkdGg7XHJcbiAgICBzZWxlY3RQYW5lbC5zdHlsZS5taW5XaWR0aCA9IGAke3NlbGVjdFBhbmVsV2lkdGh9cHhgO1xyXG4gIH1cclxuXHJcbiAgZW1pdEZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmZpbHRlckJhckNoYW5nZS5uZXh0KHRoaXMuZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuICBzd2l0Y2hSaWdodCgpIHtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzPy5zcGxpdHRlZEZpbHRlcnM/Lmxlbmd0aCA9PT0gdGhpcy5hY3RpdmVGaWx0ZXJJbmRleCArIDEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJJbmRleCArPSAxO1xyXG4gIH1cclxuXHJcbiAgc3dpdGNoTGVmdCgpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZUZpbHRlckluZGV4ID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZlRmlsdGVySW5kZXggLT0gMTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUZpbHRlcihrZXk6IHN0cmluZywgaXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChrZXkpO1xyXG5cclxuICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbmV3QXJyYXkgPSBjb250cm9sLnZhbHVlIGFzIFtdO1xyXG4gICAgbmV3QXJyYXkuc3BsaWNlKGl4LCAxKTtcclxuICAgIGNvbnRyb2wuc2V0VmFsdWUobmV3QXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQWxsRmlsdGVycygpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuZmlsdGVycz8uZm9yRWFjaCgoZmlsdGVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gdGhpcy5maWx0ZXJGb3JtR3JvdXBWYWx1ZVtmaWx0ZXIuZmllbGROYW1lXTtcclxuICAgICAgd2hpbGUgKHZhbHVlc0FycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUZpbHRlcihmaWx0ZXIuZmllbGROYW1lLCAwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrT3ZlcmZsb3coKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJXcmFwcGVyPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IG1pbkZpbHRlcldpZHRoID0gMTAwO1xyXG4gIFxyXG4gICAgICBpZiAodGhpcy5zZXR0aW5ncz8uZmlsdGVycz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmZpbHRlcldyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcclxuICBcclxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHRvdGFsIHdpZHRoIG5lZWRlZCBmb3IgYWxsIGZpbHRlcnNcclxuICAgICAgICBjb25zdCB0b3RhbFdpZHRoTmVlZGVkID0gdGhpcy5zZXR0aW5ncy5maWx0ZXJzLmxlbmd0aCAqIG1pbkZpbHRlcldpZHRoO1xyXG4gIFxyXG4gICAgICAgIC8vIElmIGFsbCBmaWx0ZXJzIGNhbiBmaXQgd2l0aGluIHRoZSBjb250YWluZXIsIG5vIG5lZWQgdG8gc3BsaXRcclxuICAgICAgICBpZiAodG90YWxXaWR0aE5lZWRlZCA8PSBjb250YWluZXJXaWR0aCkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJJbmRleCA9IDA7XHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnNwbGl0dGVkRmlsdGVycyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJPdmVyZmxvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICBcclxuICAgICAgICAvLyBDYWxjdWxhdGUgaG93IG1hbnkgZmlsdGVycyBjYW4gZml0IHBlciByb3cgYmFzZWQgb24gdGhlIGNvbnRhaW5lciB3aWR0aFxyXG4gICAgICAgIGNvbnN0IGZpbHRlcnNQZXJSb3cgPSBNYXRoLmZsb29yKGNvbnRhaW5lcldpZHRoIC8gbWluRmlsdGVyV2lkdGgpO1xyXG4gIFxyXG4gICAgICAgIC8vIERldGVybWluZSBob3cgbWFueSBncm91cHMgYXJlIG5lZWRlZFxyXG4gICAgICAgIGNvbnN0IGdyb3VwQ291bnQgPSBNYXRoLmNlaWwodGhpcy5zZXR0aW5ncy5maWx0ZXJzLmxlbmd0aCAvIGZpbHRlcnNQZXJSb3cpO1xyXG5cclxuICAgICAgICBpZiAoZ3JvdXBDb3VudCA8IHRoaXMuYWN0aXZlRmlsdGVySW5kZXggKyAxKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZUZpbHRlckluZGV4ID0gMDtcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGdyb3VwIHNpemUgYmFzZWQgb24gdGhlIG51bWJlciBvZiBncm91cHNcclxuICAgICAgICBjb25zdCBncm91cFNpemUgPSBNYXRoLmNlaWwodGhpcy5zZXR0aW5ncy5maWx0ZXJzLmxlbmd0aCAvIGdyb3VwQ291bnQpO1xyXG4gIFxyXG4gICAgICAgIC8vIFNwbGl0IGZpbHRlcnMgaW50byB0aGUgY2FsY3VsYXRlZCBudW1iZXIgb2YgZ3JvdXBzXHJcbiAgICAgICAgY29uc3QgbmV3U3BsaXR0ZWRGaWx0ZXJzOiBGaWx0ZXJCYXJGaWx0ZXJbXVtdID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNldHRpbmdzLmZpbHRlcnMubGVuZ3RoOyBpICs9IGdyb3VwU2l6ZSkge1xyXG4gICAgICAgICAgbmV3U3BsaXR0ZWRGaWx0ZXJzLnB1c2godGhpcy5zZXR0aW5ncy5maWx0ZXJzLnNsaWNlKGksIGkgKyBncm91cFNpemUpKTtcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5zcGxpdHRlZEZpbHRlcnMgPSBuZXdTcGxpdHRlZEZpbHRlcnM7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPdmVyZmxvdyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0Zvcm1WYWx1ZUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmZvcm1DaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlcnMgPSB7XHJcbiAgICAgICAgaW5wdXQ6ICcnLFxyXG4gICAgICAgIGZpbHRlcnM6IHt9XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IGZpbHRlcktleSBpbiB0aGlzLmZvcm0udmFsdWUuZmlsdGVycykge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY29uc3QgZmlsdGVyOiBGaWx0ZXJCYXJGaWx0ZXJJdGVtW10gPSAodGhpcy5mb3JtLnZhbHVlLmZpbHRlcnMgYXMgYW55KVtmaWx0ZXJLZXldIGFzIEZpbHRlckJhckZpbHRlckl0ZW1bXTtcclxuICAgICAgICB0aGlzLmZpbHRlcnMuZmlsdGVyc1tmaWx0ZXJLZXldID0gZmlsdGVyLm1hcCgoaXRlbSkgPT4gdGhpcy5vdXRwdXRGaWx0ZXJLZXlBbmRWYWx1ZSA/IGl0ZW0gOiBpdGVtLnZhbHVlKVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZW1pdEZpbHRlcnMoKTtcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmaWx0ZXItcm93XCIgKm5nSWY9XCJmaWx0ZXJSb3dWaXNpYmxlXCI+XHJcbiAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwiZmlsdGVyLXdyYXBwZXJcIiAjZmlsdGVyV3JhcHBlciBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtR3JvdXBcIj5cclxuICAgICAgQGZvciAoZmlsdGVyIG9mIGN1cnJlbnRGaWx0ZXJzOyB0cmFjayBmaWx0ZXIuZmllbGROYW1lOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgIDxidXR0b24gW2NsYXNzLmZpbHRlci1hY3RpdmVdPVwiZmlsdGVyLnNlbGVjdGVkVmFsdWVzPy5sZW5ndGhcIiBjbGFzcz1cInNlbGVjdC10cmlnZ2VyLWJ0blwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnktYWNjZW50LWRhcmtlclwiIChjbGljayk9XCJzZWxlY3Qub3BlbigpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LXRyaWdnZXItYnRuLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ZmlsdGVyLnRpdGxlIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmlsdGVyLnNlbGVjdGVkVmFsdWVzPy5sZW5ndGhcIiBjbGFzcz1cInNlbGVjdGVkLWNvdW50XCI+KHt7ZmlsdGVyLnNlbGVjdGVkVmFsdWVzPy5sZW5ndGh9fSk8L3NwYW4+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj57eyBzZWxlY3QucGFuZWxPcGVuID8gXCJrZXlib2FyZF9hcnJvd191cFwiIDogXCJrZXlib2FyZF9hcnJvd19kb3duXCIgfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgbXVsdGlwbGUgXHJcbiAgICAgICAgICAgICNzZWxlY3RcclxuICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwiJ2ZpbHRlci1wYW5lbCdcIlxyXG4gICAgICAgICAgICBbcGFuZWxXaWR0aF09XCJmaWx0ZXI/Lm1heFBhbmVsV2lkdGggPz8gJ2F1dG8nXCIgXHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmlsdGVyLmZpZWxkTmFtZVwiIFxyXG4gICAgICAgICAgICAob3BlbmVkQ2hhbmdlKT1cIiRldmVudCA9PT0gdHJ1ZSA/IGZvY3VzT3B0aW9uU2VhcmNoSW5wdXQoZmlsdGVyLCBpKSA6IGNsZWFyT3B0aW9uU2VhcmNoSW5wdXQoZmlsdGVyLCBpKVwiXHJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0RXZlbnQoJGV2ZW50LCBmaWx0ZXIpXCIgXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXI/LnNlYXJjaD8ucGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgI29wdGlvblNlYXJjaElucHV0IGNsYXNzPVwib3B0aW9uLXNlYXJjaC1pbnB1dFwiIFtjbGFzcy5oaWRkZW5dPVwiZmlsdGVyLnZhbHVlcyEubGVuZ3RoIDwgMTBcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJmaWx0ZXIuc2VhcmNoPy5wbGFjZWhvbGRlciA/PyAnJyB8IHRyYW5zbGF0ZVwiIChrZXl1cCk9XCJmaWx0ZXJPcHRpb25zKCRldmVudCwgZmlsdGVyKVwiIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnZhbHVlcy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnRyYW5zbGF0ZWQ7IGVsc2Ugc29ydGVkVmFsdWVzQnlQcm9wZXJ0eVwiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yICh2YWx1ZSBvZiAoZmlsdGVyLnNlYXJjaD8uZmlsdGVyZWRWYWx1ZXMgPz8gZmlsdGVyLnZhbHVlcykgfCBzb3J0QWxwaGFiZXRpY2FsbHk6J2tleSc7IHRyYWNrIHZhbHVlLmtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFtjbGFzcy5oaWRkZW5dPVwiZmlsdGVyLnNlYXJjaD8uc2VhcmNoQ3JpdGVyaWEgJiYgdmFsdWUuaXNTZWxlY3RlZCAmJiAhdmFsdWUubWF0Y2hlc1NlYXJjaENyaXRlcmlhXCIgY2xhc3M9XCJmaWx0ZXItb3B0aW9uXCIgW2Rpc2FibGVkXT1cImZpbHRlci5zaW5nbGVTZWxlY3Rpb24/LnNlbGVjdGVkICYmIGZpbHRlci5zaW5nbGVTZWxlY3Rpb24/LnZhbHVlICE9PSB2YWx1ZS52YWx1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgZmlsdGVyLmRpc2FibGVUaXRsZUNhc2UgPyB2YWx1ZS5rZXkgOiAodmFsdWUua2V5IHwgdGl0bGVjYXNlKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc29ydGVkVmFsdWVzQnlQcm9wZXJ0eT5cclxuICAgICAgICAgICAgICAgICAgQGZvciAodmFsdWUgb2YgKGZpbHRlci5zZWFyY2g/LmZpbHRlcmVkVmFsdWVzID8/IGZpbHRlci52YWx1ZXMpIHwgc29ydFRyYW5zbGF0aW9uc0J5UHJvcGVydHk6J2tleSc6J3ZhbHVlJzsgdHJhY2sgdmFsdWUudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbY2xhc3MuaGlkZGVuXT1cImZpbHRlci5zZWFyY2g/LnNlYXJjaENyaXRlcmlhICYmIHZhbHVlLmlzU2VsZWN0ZWQgJiYgIXZhbHVlLm1hdGNoZXNTZWFyY2hDcml0ZXJpYVwiIGNsYXNzPVwiZmlsdGVyLW9wdGlvblwiIFtkaXNhYmxlZF09XCJmaWx0ZXIuc2luZ2xlU2VsZWN0aW9uPy5zZWxlY3RlZCAmJiBmaWx0ZXIuc2luZ2xlU2VsZWN0aW9uPy52YWx1ZSAhPT0gdmFsdWUudmFsdWVcIiBbdmFsdWVdPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlsdGVyLmRpc2FibGVUaXRsZUNhc2U7IGVsc2UgZGVmYXVsdENhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlLmtleSB8IHRyYW5zbGF0ZSA6IHsgZGVmYXVsdDogdmFsdWUudmFsdWUgfCB0aXRsZWNhc2UgfSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2FzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUua2V5IHwgdHJhbnNsYXRlIDogeyBkZWZhdWx0OiB2YWx1ZS52YWx1ZSB9IH19IFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlck92ZXJmbG93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWFycm93c1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic3dpdGNoTGVmdCgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxyXG4gICAgICAgICAgY2hldnJvbl9sZWZ0XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInN3aXRjaFJpZ2h0KClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+XHJcbiAgICAgICAgICBjaGV2cm9uX3JpZ2h0XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
|
|
409
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvZmlsdGVyLWJhci9maWx0ZXItYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9maWx0ZXItYmFyL2ZpbHRlci1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9LLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNNNUMsZ0NBQW1FO0lBQUEsWUFBbUM7SUFBQSxpQkFBTzs7O0lBQTFDLGNBQW1DO0lBQW5DLDBHQUFtQzs7OztJQWF0Ryw2QkFBa0Q7SUFDaEQsb0NBQXdQOztJQUFyQyxBQUF4QywwUEFBUyx1Q0FBNkIsS0FBQyw2SkFBWSx3QkFBd0IsS0FBQztJQUF2UCxpQkFBd1A7Ozs7O0lBQWxNLGNBQTJDO0lBQTNDLHNEQUEyQztJQUFhLGtMQUE0RDs7O0lBTXBLLHNDQUFvUDtJQUNsUCxZQUNGOztJQUFBLGlCQUFhOzs7O0lBRkQsdUpBQWtHO0lBQXNILEFBQS9GLDZNQUE4RixtQkFBZ0I7SUFDalAsY0FDRjtJQURFLCtHQUNGOzs7SUFKTiw2QkFBcUU7SUFDakUsd0lBSUM7Ozs7OztJQUpELGNBSUM7SUFKRCxvTEFBc0UsS0FBSyxFQUkxRTs7O0lBTUcsNkJBQWlFO0lBQ2pFLFlBQ0E7Ozs7OztJQURBLGNBQ0E7SUFEQSxxSUFDQTs7O0lBR0UsWUFDRjs7OztJQURFLCtHQUNGOzs7SUFQRixzQ0FBb1A7SUFLbFAsQUFKQSxzSUFBaUUsdUpBSXZDO0lBRzVCLGlCQUFhOzs7OztJQVJELHVKQUFrRztJQUFzSCxBQUEvRiw2TUFBOEYsbUJBQWdCO0lBQ2xPLGNBQWdDO0lBQUEsQUFBaEMsa0RBQWdDLDZCQUFnQjs7O0lBRm5FLHVJQVVDOzs7OztJQVZELG9MQUE4RSxLQUFLLEVBQUMsT0FBTyxFQVUxRjs7O0lBcEJQLDZCQUEyQztJQVN6QyxBQVJBLGtIQUFxRSxtSUFRaEM7Ozs7O0lBUnRCLGNBQXlCO0lBQUEsQUFBekIsMkNBQXlCLHdDQUEyQjs7OztJQXJCekUsa0NBQW1KO0lBQXhCLHNMQUFTLGdCQUFhLEtBQUM7SUFFOUksQUFERiwrQkFBc0MsV0FDOUI7SUFBQSxZQUE0Qjs7SUFBQSxpQkFBTztJQUN6QyxrRkFBbUU7SUFDbkUsZ0NBQVU7SUFBQSxZQUFvRTtJQUNoRixBQURnRixpQkFBVyxFQUNyRjtJQUVOLHlDQVFDO0lBREMsQUFEQSwrU0FBMkIsSUFBSSxHQUFHLHNEQUFpQyxHQUFHLHNEQUFpQyxLQUFDLGtPQUNyRixxQ0FBMkIsS0FBQztJQU0vQyxBQUpBLG9HQUFrRCx1RkFJUDtJQXdCL0MsQUFERSxpQkFBYSxFQUNOOzs7OztJQTVDRCwwR0FBcUQ7SUFFbkQsZUFBNEI7SUFBNUIsNERBQTRCO0lBQzNCLGVBQW1DO0lBQW5DLGdHQUFtQztJQUNoQyxlQUFvRTtJQUFwRSx1RkFBb0U7SUFNOUUsY0FBNkI7SUFFN0IsQUFEQSxBQURBLDJDQUE2QixzSUFDaUIsd0NBQ1Y7SUFJckIsZUFBaUM7SUFBakMsZ0hBQWlDO0lBSWpDLGNBQTBCO0lBQTFCLDhDQUEwQjs7OztJQTRCbkQsNkJBQXFDO0lBRWpDLEFBREYsK0JBQTJCLGlCQUNzQjtJQUF2QiwrTEFBUyxtQkFBWSxLQUFDO0lBQzVDLGdDQUFzQztJQUNwQyw4QkFDRjtJQUNGLEFBREUsaUJBQU8sRUFDQTtJQUNULGtDQUFnRDtJQUF4QiwrTEFBUyxvQkFBYSxLQUFDO0lBQzdDLGdDQUFzQztJQUNwQywrQkFDRjtJQUVKLEFBREUsQUFERSxpQkFBTyxFQUNBLEVBQ0w7Ozs7SUEvRFIsQUFERiw4QkFBaUQsZ0JBQzhCO0lBQzNFLGdDQUE0QztJQUMxQyxnR0E4Q0M7O0lBRUwsaUJBQU07SUFDTiw0RkFBcUM7SUFjdkMsaUJBQU07OztJQWpFc0QsY0FBa0I7SUFBbEIsdUNBQWtCO0lBQzVELGVBQTZCO0lBQTdCLGtEQUE2QjtJQUN6QyxjQThDQztJQTlDRCxvQ0E4Q0M7SUFHVSxlQUFvQjtJQUFwQiw0Q0FBb0I7O0FEckNyQyxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUdELElBQWEsZ0JBQWdCLENBQUMsS0FBYztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFxQkQsbUNBQW1DO0lBQ25DLElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUNELDJFQUEyRTtJQUMzRSxJQUFJLGdCQUFnQixLQUFLLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUN6RCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7SUFDakksQ0FBQztJQUVELDJFQUEyRTtJQUMzRSxJQUFJLFNBQVMsQ0FBQyxLQUFLO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxZQUFvQixLQUF3QixFQUFVLFNBQTJCO1FBQTdELFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUExQ3ZFLG9CQUFlLEdBQXVDLElBQUksWUFBWSxFQUF3QixDQUFDO1FBRWpHLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFJZixvQkFBZSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUM1QixPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsWUFBTyxHQUF5QjtZQUM5QixLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUVGLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLHNCQUFpQixHQUFHLENBQUMsQ0FBQztJQXlCK0QsQ0FBQztJQUV0RixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFFbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUF1QixFQUFFLEtBQWE7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDakUsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUUvRSxJQUFJLE1BQU0sQ0FBQyxhQUFhLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQXVCLEVBQUUsS0FBYTtRQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNoQyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsYUFBYSxDQUFDO1FBRXJGLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBMkIsRUFBRSxNQUF1QjtRQUNoRSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsTUFBNkIsQ0FBQztRQUNwRCxNQUFNLENBQUMsTUFBTyxDQUFDLGNBQWMsR0FBRyxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQzFELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDakYsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUMxRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25HLEtBQUssQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEtBQUssQ0FBQztvQkFDdkMsS0FBSyxDQUFDLHFCQUFxQixHQUFHLGFBQWEsSUFBSSxLQUFLLENBQUM7b0JBQ3JELE9BQU8sYUFBYSxJQUFJLFVBQVUsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXNCLEVBQUUsTUFBdUI7UUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTLENBQW9CLENBQUM7UUFDcEgsYUFBYSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzdDLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBdUI7UUFDbkMsb0VBQW9FO1FBQ3BFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQWdCLENBQUM7UUFDL0UsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsV0FBcUIsQ0FBQztRQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVMsQ0FBb0IsQ0FBQztRQUNoSCxTQUFTLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDO1FBQzNDLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUcsZ0JBQWdCLElBQUksQ0FBQztJQUN2RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsTUFBTSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxRSxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXLEVBQUUsRUFBVTtRQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFXLENBQUM7UUFDckMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoRSxPQUFPLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDdEMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO1lBRTNCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztnQkFFcEUsbURBQW1EO2dCQUNuRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUM7Z0JBRXZFLGdFQUFnRTtnQkFDaEUsSUFBSSxnQkFBZ0IsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO29CQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztvQkFDNUIsT0FBTztnQkFDVCxDQUFDO2dCQUVELDBFQUEwRTtnQkFDMUUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDLENBQUM7Z0JBRWxFLHVDQUF1QztnQkFDdkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUM7Z0JBRTNFLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDNUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztnQkFFRCxxREFBcUQ7Z0JBQ3JELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDO2dCQUV2RSxxREFBcUQ7Z0JBQ3JELE1BQU0sa0JBQWtCLEdBQXdCLEVBQUUsQ0FBQztnQkFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ2pFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUN6RSxDQUFDO2dCQUVELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLGtCQUFrQixDQUFDO2dCQUNuRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTywyQkFBMkI7UUFDakMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkUsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPLEVBQUUsRUFBRTthQUNaLENBQUM7WUFFRixLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNoRCw4REFBOEQ7Z0JBQzlELE1BQU0sTUFBTSxHQUEyQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFlLENBQUMsU0FBUyxDQUEwQixDQUFDO2dCQUMzRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzFHLENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO21IQXpPVSxrQkFBa0I7b0VBQWxCLGtCQUFrQjs7Ozs7Ozs7WUFBbEIseUZBQUEsY0FBVSwrQkFBUTs7WUNmL0IsbUVBQWlEOztZQUF4QiwyQ0FBc0I7OztpRkRlbEMsa0JBQWtCO2NBTjlCLFNBQVM7MkJBRUUsZ0JBQWdCO2lGQUtFLGFBQWE7a0JBQXhDLFNBQVM7bUJBQUMsZUFBZTtZQUNTLGtCQUFrQjtrQkFBcEQsWUFBWTttQkFBQyxtQkFBbUI7WUFFakMsUUFBUTtrQkFEUCxZQUFZO21CQUFDLGVBQWUsRUFBRSxFQUFFO1lBS3hCLFFBQVE7a0JBQWhCLEtBQUs7WUFDTyxnQkFBZ0I7a0JBQTVCLEtBQUs7WUFNSSxlQUFlO2tCQUF4QixNQUFNOztrRkFmSSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJCYXJGaWx0ZXIsIEZpbHRlckJhckZpbHRlckl0ZW0gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IEZpbHRlckJhckNoYW5nZUV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvZmlsdGVyLWJhci1jaGFuZ2UtZXZlbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWx0ZXJCYXJTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWxzL2ZpbHRlci1iYXItc2V0dGluZ3MubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAndGxkLWZpbHRlci1iYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXItYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlckJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKFwiZmlsdGVyV3JhcHBlclwiKSBmaWx0ZXJXcmFwcGVyITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkcmVuKCdvcHRpb25TZWFyY2hJbnB1dCcpIG9wdGlvblNlYXJjaElucHV0cyE6IEVsZW1lbnRSZWZbXTtcclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgW10pXHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICB0aGlzLmNoZWNrT3ZlcmZsb3coKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldHRpbmdzITogRmlsdGVyQmFyU2V0dGluZ3M7XHJcbiAgQElucHV0KCkgc2V0IGZpbHRlclJvd1Zpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2ZpbHRlclJvd1Zpc2libGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RyZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5jaGVja092ZXJmbG93KCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgZmlsdGVyQmFyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmlsdGVyQmFyQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJCYXJDaGFuZ2VFdmVudD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfaW5wdXRUZXh0ID0gXCJcIjtcclxuICBwcml2YXRlIF9maWx0ZXJSb3dWaXNpYmxlITogYm9vbGVhbjtcclxuICBwcml2YXRlIGZvcm1DaGFuZ2VzU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICByZWFkb25seSBmaWx0ZXJGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICByZWFkb25seSBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlckZvcm1Hcm91cFxyXG4gIH0pO1xyXG5cclxuICBmaWx0ZXJzOiBGaWx0ZXJCYXJDaGFuZ2VFdmVudCA9IHtcclxuICAgIGlucHV0OiAnJyxcclxuICAgIGZpbHRlcnM6IHt9LFxyXG4gIH07XHJcblxyXG4gIGZpbHRlck92ZXJmbG93ID0gZmFsc2U7XHJcbiAgYWN0aXZlRmlsdGVySW5kZXggPSAwO1xyXG5cclxuICAvLyBnZXR0ZXIgZm9yIGNsZWFuZXIgdGVtcGxhdGUgaHRtbFxyXG4gIGdldCBmaWx0ZXJGb3JtR3JvdXBWYWx1ZSgpOiB7IFtrZXk6IHN0cmluZ106IEZpbHRlckJhckZpbHRlckl0ZW1bXSB9IHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm1Hcm91cC52YWx1ZTtcclxuICB9XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9hZGphY2VudC1vdmVybG9hZC1zaWduYXR1cmVzXHJcbiAgZ2V0IGZpbHRlclJvd1Zpc2libGUoKSB7IHJldHVybiB0aGlzLl9maWx0ZXJSb3dWaXNpYmxlOyB9XHJcbiAgZ2V0IGlucHV0VGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pbnB1dFRleHQ7XHJcbiAgfVxyXG4gIGdldCBvdXRwdXRGaWx0ZXJLZXlBbmRWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzPy5vdXRwdXRGaWx0ZXJLZXlBbmRWYWx1ZTtcclxuICB9XHJcbiAgZ2V0IGN1cnJlbnRGaWx0ZXJzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3M/LnNwbGl0dGVkRmlsdGVycz8ubGVuZ3RoID8gdGhpcy5zZXR0aW5ncy5zcGxpdHRlZEZpbHRlcnNbdGhpcy5hY3RpdmVGaWx0ZXJJbmRleF0gOiB0aGlzLnNldHRpbmdzPy5maWx0ZXJzO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9hZGphY2VudC1vdmVybG9hZC1zaWduYXR1cmVzXHJcbiAgc2V0IGlucHV0VGV4dCh2YWx1ZSkge1xyXG4gICAgdGhpcy5faW5wdXRUZXh0ID0gdmFsdWU7XHJcbiAgICB0aGlzLmZpbHRlcnMuaW5wdXQgPSB0aGlzLl9pbnB1dFRleHQ7XHJcbiAgICB0aGlzLmVtaXRGaWx0ZXJzKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuZmlsdGVycz8uZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuYWRkQ29udHJvbChmaWVsZC5maWVsZE5hbWUsIG5ldyBGb3JtQ29udHJvbChbXSkpO1xyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnN1YnNjcmliZVRvRm9ybVZhbHVlQ2hhbmdlcygpO1xyXG4gIFxyXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJJbmRleCA9IDA7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoZWNrT3ZlcmZsb3coKTtcclxuICAgIHRoaXMuY2RyZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUFsbEZpbHRlcnMoKTtcclxuICAgIHRoaXMuZm9ybUNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzT3B0aW9uU2VhcmNoSW5wdXQoZmlsdGVyOiBGaWx0ZXJCYXJGaWx0ZXIsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICghZmlsdGVyLnNlYXJjaD8ucGxhY2Vob2xkZXIgfHwgZmlsdGVyLnNlbGVjdGVkVmFsdWVzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub3B0aW9uU2VhcmNoSW5wdXRzLmZpbmQoKF9pdGVtLCBpKSA9PiBpID09PSBpbmRleCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuXHJcbiAgICBpZiAoZmlsdGVyLm1heFBhbmVsV2lkdGggPT09ICcnICYmIGZpbHRlci5zZWFyY2gucGxhY2Vob2xkZXIpIHtcclxuICAgICAgdGhpcy5zZXRQYW5lbFdpZHRoKGZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhck9wdGlvblNlYXJjaElucHV0KGZpbHRlcjogRmlsdGVyQmFyRmlsdGVyLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoIWZpbHRlci5zZWFyY2g/LnBsYWNlaG9sZGVyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMub3B0aW9uU2VhcmNoSW5wdXRzLmZpbmQoKF9pdGVtLCBpKSA9PiBpID09PSBpbmRleCk/Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKGlucHV0KSB7XHJcbiAgICAgIGlucHV0LnZhbHVlID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgZmlsdGVyLnNlYXJjaC5zZWFyY2hDcml0ZXJpYSA9ICcnO1xyXG4gICAgdGhpcy5maWx0ZXJPcHRpb25zKG51bGwsIGZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJPcHRpb25zKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgbnVsbCwgZmlsdGVyOiBGaWx0ZXJCYXJGaWx0ZXIpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50Py50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcclxuICAgIGZpbHRlci5zZWFyY2ghLnNlYXJjaENyaXRlcmlhID0gdGFyZ2V0Py52YWx1ZSA/PyAnJztcclxuICAgIHRoaXMuc2V0dGluZ3MuZmlsdGVycz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5maWVsZE5hbWUgPT09IGZpbHRlci5maWVsZE5hbWUgJiYgaXRlbS5zZWFyY2gpIHtcclxuICAgICAgICBpdGVtLnNlYXJjaC5maWx0ZXJlZFZhbHVlcyA9IGZpbHRlci52YWx1ZXMuZmlsdGVyKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBpdGVtLnRyYW5zbGF0ZWQgPyB2YWx1ZS5rZXkgOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHZhbHVlLmtleSk7XHJcbiAgICAgICAgICBjb25zdCBtYXRjaGVzU2VhcmNoID0gdmFsdWVLZXkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0YXJnZXQ/LnZhbHVlPy50b0xvd2VyQ2FzZSgpID8/ICcnKTtcclxuICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBmaWx0ZXIuc2VsZWN0ZWRWYWx1ZXM/LnNvbWUoKHNlbGVjdGVkVmFsdWUpID0+IHNlbGVjdGVkVmFsdWUua2V5ID09PSB2YWx1ZS5rZXkpO1xyXG4gICAgICAgICAgdmFsdWUuaXNTZWxlY3RlZCA9IGlzU2VsZWN0ZWQgPz8gZmFsc2U7XHJcbiAgICAgICAgICB2YWx1ZS5tYXRjaGVzU2VhcmNoQ3JpdGVyaWEgPSBtYXRjaGVzU2VhcmNoID8/IGZhbHNlO1xyXG4gICAgICAgICAgcmV0dXJuIG1hdGNoZXNTZWFyY2ggfHwgaXNTZWxlY3RlZDtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEV2ZW50KGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UsIGZpbHRlcjogRmlsdGVyQmFyRmlsdGVyKSB7XHJcbiAgICBjb25zdCBzZXR0aW5nRmlsdGVyID0gdGhpcy5zZXR0aW5ncy5maWx0ZXJzPy5maW5kKChpdGVtKSA9PiBpdGVtLmZpZWxkTmFtZSA9PT0gZmlsdGVyLmZpZWxkTmFtZSkgYXMgRmlsdGVyQmFyRmlsdGVyO1xyXG4gICAgc2V0dGluZ0ZpbHRlci5zZWxlY3RlZFZhbHVlcyA9IGV2ZW50LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFuZWxXaWR0aChmaWx0ZXI6IEZpbHRlckJhckZpbHRlcik6IHZvaWQge1xyXG4gICAgLy8gV2UgbXVzdCBzYXZlIHBhbmVsIHdpZHRoLCBzbyBmaWx0ZXJpbmcgZG9lcyBub3QgYWZmZWN0IGl0YHMgc2l6ZS5cclxuICAgIGNvbnN0IHNlbGVjdFBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNkay1vdmVybGF5LXBhbmUnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IHNlbGVjdFBhbmVsV2lkdGggPSBzZWxlY3RQYW5lbC5jbGllbnRXaWR0aCBhcyBudW1iZXI7XHJcbiAgICBjb25zdCBmaWx0ZXJPYmogPSB0aGlzLnNldHRpbmdzLmZpbHRlcnM/LmZpbmQoKGl0ZW0pID0+IGl0ZW0uZmllbGROYW1lID09PSBmaWx0ZXIuZmllbGROYW1lKSBhcyBGaWx0ZXJCYXJGaWx0ZXI7XHJcbiAgICBmaWx0ZXJPYmoubWF4UGFuZWxXaWR0aCA9IHNlbGVjdFBhbmVsV2lkdGg7XHJcbiAgICBzZWxlY3RQYW5lbC5zdHlsZS5taW5XaWR0aCA9IGAke3NlbGVjdFBhbmVsV2lkdGh9cHhgO1xyXG4gIH1cclxuXHJcbiAgZW1pdEZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmZpbHRlckJhckNoYW5nZS5uZXh0KHRoaXMuZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuICBzd2l0Y2hSaWdodCgpIHtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzPy5zcGxpdHRlZEZpbHRlcnM/Lmxlbmd0aCA9PT0gdGhpcy5hY3RpdmVGaWx0ZXJJbmRleCArIDEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJJbmRleCArPSAxO1xyXG4gIH1cclxuXHJcbiAgc3dpdGNoTGVmdCgpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZUZpbHRlckluZGV4ID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZlRmlsdGVySW5kZXggLT0gMTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUZpbHRlcihrZXk6IHN0cmluZywgaXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChrZXkpO1xyXG5cclxuICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbmV3QXJyYXkgPSBjb250cm9sLnZhbHVlIGFzIFtdO1xyXG4gICAgbmV3QXJyYXkuc3BsaWNlKGl4LCAxKTtcclxuICAgIGNvbnRyb2wuc2V0VmFsdWUobmV3QXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQWxsRmlsdGVycygpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuZmlsdGVycz8uZm9yRWFjaCgoZmlsdGVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gdGhpcy5maWx0ZXJGb3JtR3JvdXBWYWx1ZVtmaWx0ZXIuZmllbGROYW1lXTtcclxuICAgICAgd2hpbGUgKHZhbHVlc0FycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUZpbHRlcihmaWx0ZXIuZmllbGROYW1lLCAwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrT3ZlcmZsb3coKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJXcmFwcGVyPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IG1pbkZpbHRlcldpZHRoID0gMTAwO1xyXG4gIFxyXG4gICAgICBpZiAodGhpcy5zZXR0aW5ncz8uZmlsdGVycz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmZpbHRlcldyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcclxuICBcclxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHRvdGFsIHdpZHRoIG5lZWRlZCBmb3IgYWxsIGZpbHRlcnNcclxuICAgICAgICBjb25zdCB0b3RhbFdpZHRoTmVlZGVkID0gdGhpcy5zZXR0aW5ncy5maWx0ZXJzLmxlbmd0aCAqIG1pbkZpbHRlcldpZHRoO1xyXG4gIFxyXG4gICAgICAgIC8vIElmIGFsbCBmaWx0ZXJzIGNhbiBmaXQgd2l0aGluIHRoZSBjb250YWluZXIsIG5vIG5lZWQgdG8gc3BsaXRcclxuICAgICAgICBpZiAodG90YWxXaWR0aE5lZWRlZCA8PSBjb250YWluZXJXaWR0aCkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJJbmRleCA9IDA7XHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnNwbGl0dGVkRmlsdGVycyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJPdmVyZmxvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICBcclxuICAgICAgICAvLyBDYWxjdWxhdGUgaG93IG1hbnkgZmlsdGVycyBjYW4gZml0IHBlciByb3cgYmFzZWQgb24gdGhlIGNvbnRhaW5lciB3aWR0aFxyXG4gICAgICAgIGNvbnN0IGZpbHRlcnNQZXJSb3cgPSBNYXRoLmZsb29yKGNvbnRhaW5lcldpZHRoIC8gbWluRmlsdGVyV2lkdGgpO1xyXG4gIFxyXG4gICAgICAgIC8vIERldGVybWluZSBob3cgbWFueSBncm91cHMgYXJlIG5lZWRlZFxyXG4gICAgICAgIGNvbnN0IGdyb3VwQ291bnQgPSBNYXRoLmNlaWwodGhpcy5zZXR0aW5ncy5maWx0ZXJzLmxlbmd0aCAvIGZpbHRlcnNQZXJSb3cpO1xyXG5cclxuICAgICAgICBpZiAoZ3JvdXBDb3VudCA8IHRoaXMuYWN0aXZlRmlsdGVySW5kZXggKyAxKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZUZpbHRlckluZGV4ID0gMDtcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGdyb3VwIHNpemUgYmFzZWQgb24gdGhlIG51bWJlciBvZiBncm91cHNcclxuICAgICAgICBjb25zdCBncm91cFNpemUgPSBNYXRoLmNlaWwodGhpcy5zZXR0aW5ncy5maWx0ZXJzLmxlbmd0aCAvIGdyb3VwQ291bnQpO1xyXG4gIFxyXG4gICAgICAgIC8vIFNwbGl0IGZpbHRlcnMgaW50byB0aGUgY2FsY3VsYXRlZCBudW1iZXIgb2YgZ3JvdXBzXHJcbiAgICAgICAgY29uc3QgbmV3U3BsaXR0ZWRGaWx0ZXJzOiBGaWx0ZXJCYXJGaWx0ZXJbXVtdID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNldHRpbmdzLmZpbHRlcnMubGVuZ3RoOyBpICs9IGdyb3VwU2l6ZSkge1xyXG4gICAgICAgICAgbmV3U3BsaXR0ZWRGaWx0ZXJzLnB1c2godGhpcy5zZXR0aW5ncy5maWx0ZXJzLnNsaWNlKGksIGkgKyBncm91cFNpemUpKTtcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5zcGxpdHRlZEZpbHRlcnMgPSBuZXdTcGxpdHRlZEZpbHRlcnM7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPdmVyZmxvdyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0Zvcm1WYWx1ZUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmZvcm1DaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlcnMgPSB7XHJcbiAgICAgICAgaW5wdXQ6ICcnLFxyXG4gICAgICAgIGZpbHRlcnM6IHt9XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IGZpbHRlcktleSBpbiB0aGlzLmZvcm0udmFsdWUuZmlsdGVycykge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY29uc3QgZmlsdGVyOiBGaWx0ZXJCYXJGaWx0ZXJJdGVtW10gPSAodGhpcy5mb3JtLnZhbHVlLmZpbHRlcnMgYXMgYW55KVtmaWx0ZXJLZXldIGFzIEZpbHRlckJhckZpbHRlckl0ZW1bXTtcclxuICAgICAgICB0aGlzLmZpbHRlcnMuZmlsdGVyc1tmaWx0ZXJLZXldID0gZmlsdGVyLm1hcCgoaXRlbSkgPT4gdGhpcy5vdXRwdXRGaWx0ZXJLZXlBbmRWYWx1ZSA/IGl0ZW0gOiBpdGVtLnZhbHVlKVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZW1pdEZpbHRlcnMoKTtcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmaWx0ZXItcm93XCIgKm5nSWY9XCJmaWx0ZXJSb3dWaXNpYmxlXCI+XHJcbiAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwiZmlsdGVyLXdyYXBwZXJcIiAjZmlsdGVyV3JhcHBlciBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtR3JvdXBcIj5cclxuICAgICAgQGZvciAoZmlsdGVyIG9mIGN1cnJlbnRGaWx0ZXJzOyB0cmFjayBmaWx0ZXIuZmllbGROYW1lOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgIDxidXR0b24gW2NsYXNzLmZpbHRlci1hY3RpdmVdPVwiZmlsdGVyLnNlbGVjdGVkVmFsdWVzPy5sZW5ndGhcIiBjbGFzcz1cInNlbGVjdC10cmlnZ2VyLWJ0blwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJzZWxlY3Qub3BlbigpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LXRyaWdnZXItYnRuLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ZmlsdGVyLnRpdGxlIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmlsdGVyLnNlbGVjdGVkVmFsdWVzPy5sZW5ndGhcIiBjbGFzcz1cInNlbGVjdGVkLWNvdW50XCI+KHt7ZmlsdGVyLnNlbGVjdGVkVmFsdWVzPy5sZW5ndGh9fSk8L3NwYW4+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj57eyBzZWxlY3QucGFuZWxPcGVuID8gXCJrZXlib2FyZF9hcnJvd191cFwiIDogXCJrZXlib2FyZF9hcnJvd19kb3duXCIgfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgbXVsdGlwbGUgXHJcbiAgICAgICAgICAgICNzZWxlY3RcclxuICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwiJ2ZpbHRlci1wYW5lbCdcIlxyXG4gICAgICAgICAgICBbcGFuZWxXaWR0aF09XCJmaWx0ZXI/Lm1heFBhbmVsV2lkdGggPz8gJ2F1dG8nXCIgXHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmlsdGVyLmZpZWxkTmFtZVwiIFxyXG4gICAgICAgICAgICAob3BlbmVkQ2hhbmdlKT1cIiRldmVudCA9PT0gdHJ1ZSA/IGZvY3VzT3B0aW9uU2VhcmNoSW5wdXQoZmlsdGVyLCBpKSA6IGNsZWFyT3B0aW9uU2VhcmNoSW5wdXQoZmlsdGVyLCBpKVwiXHJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0RXZlbnQoJGV2ZW50LCBmaWx0ZXIpXCIgXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXI/LnNlYXJjaD8ucGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgI29wdGlvblNlYXJjaElucHV0IGNsYXNzPVwib3B0aW9uLXNlYXJjaC1pbnB1dFwiIFtjbGFzcy5oaWRkZW5dPVwiZmlsdGVyLnZhbHVlcyEubGVuZ3RoIDwgMTBcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJmaWx0ZXIuc2VhcmNoPy5wbGFjZWhvbGRlciA/PyAnJyB8IHRyYW5zbGF0ZVwiIChrZXl1cCk9XCJmaWx0ZXJPcHRpb25zKCRldmVudCwgZmlsdGVyKVwiIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnZhbHVlcy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnRyYW5zbGF0ZWQ7IGVsc2Ugc29ydGVkVmFsdWVzQnlQcm9wZXJ0eVwiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yICh2YWx1ZSBvZiAoZmlsdGVyLnNlYXJjaD8uZmlsdGVyZWRWYWx1ZXMgPz8gZmlsdGVyLnZhbHVlcykgfCBzb3J0QWxwaGFiZXRpY2FsbHk6J2tleSc7IHRyYWNrIHZhbHVlLmtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFtjbGFzcy5oaWRkZW5dPVwiZmlsdGVyLnNlYXJjaD8uc2VhcmNoQ3JpdGVyaWEgJiYgdmFsdWUuaXNTZWxlY3RlZCAmJiAhdmFsdWUubWF0Y2hlc1NlYXJjaENyaXRlcmlhXCIgY2xhc3M9XCJmaWx0ZXItb3B0aW9uXCIgW2Rpc2FibGVkXT1cImZpbHRlci5zaW5nbGVTZWxlY3Rpb24/LnNlbGVjdGVkICYmIGZpbHRlci5zaW5nbGVTZWxlY3Rpb24/LnZhbHVlICE9PSB2YWx1ZS52YWx1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgZmlsdGVyLmRpc2FibGVUaXRsZUNhc2UgPyB2YWx1ZS5rZXkgOiAodmFsdWUua2V5IHwgdGl0bGVjYXNlKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc29ydGVkVmFsdWVzQnlQcm9wZXJ0eT5cclxuICAgICAgICAgICAgICAgICAgQGZvciAodmFsdWUgb2YgKGZpbHRlci5zZWFyY2g/LmZpbHRlcmVkVmFsdWVzID8/IGZpbHRlci52YWx1ZXMpIHwgc29ydFRyYW5zbGF0aW9uc0J5UHJvcGVydHk6J2tleSc6J3ZhbHVlJzsgdHJhY2sgdmFsdWUudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbY2xhc3MuaGlkZGVuXT1cImZpbHRlci5zZWFyY2g/LnNlYXJjaENyaXRlcmlhICYmIHZhbHVlLmlzU2VsZWN0ZWQgJiYgIXZhbHVlLm1hdGNoZXNTZWFyY2hDcml0ZXJpYVwiIGNsYXNzPVwiZmlsdGVyLW9wdGlvblwiIFtkaXNhYmxlZF09XCJmaWx0ZXIuc2luZ2xlU2VsZWN0aW9uPy5zZWxlY3RlZCAmJiBmaWx0ZXIuc2luZ2xlU2VsZWN0aW9uPy52YWx1ZSAhPT0gdmFsdWUudmFsdWVcIiBbdmFsdWVdPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlsdGVyLmRpc2FibGVUaXRsZUNhc2U7IGVsc2UgZGVmYXVsdENhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlLmtleSB8IHRyYW5zbGF0ZSA6IHsgZGVmYXVsdDogdmFsdWUudmFsdWUgfCB0aXRsZWNhc2UgfSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2FzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUua2V5IHwgdHJhbnNsYXRlIDogeyBkZWZhdWx0OiB2YWx1ZS52YWx1ZSB9IH19IFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlck92ZXJmbG93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWFycm93c1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic3dpdGNoTGVmdCgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxyXG4gICAgICAgICAgY2hldnJvbl9sZWZ0XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInN3aXRjaFJpZ2h0KClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+XHJcbiAgICAgICAgICBjaGV2cm9uX3JpZ2h0XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
export const getFileSizeLabel = (size, decimalPlaces = 2, unit = FILE_SIZE_UNIT.BYTES) => {
|
|
1
|
+
export const getFileSizeLabel = (sizeInBytes, decimalPlaces = 2) => {
|
|
3
2
|
const KB = 1024; // 1 KB = 1024 bytes
|
|
4
3
|
const MB = KB * KB; // 1 MB = 1024 * 1024 bytes
|
|
5
4
|
const GB = MB * KB; // 1 GB = 1024 * 1024 * 1024 bytes
|
|
6
|
-
let sizeInBytes = size;
|
|
7
|
-
switch (unit) {
|
|
8
|
-
case 'KB':
|
|
9
|
-
sizeInBytes *= KB;
|
|
10
|
-
break;
|
|
11
|
-
case 'MB':
|
|
12
|
-
sizeInBytes *= MB;
|
|
13
|
-
break;
|
|
14
|
-
case 'GB':
|
|
15
|
-
sizeInBytes *= GB;
|
|
16
|
-
break;
|
|
17
|
-
}
|
|
18
5
|
if (sizeInBytes >= GB) {
|
|
19
6
|
const sizeInGB = sizeInBytes / GB;
|
|
20
7
|
return `${sizeInGB.toFixed(decimalPlaces)} GB`;
|
|
@@ -27,6 +14,6 @@ export const getFileSizeLabel = (size, decimalPlaces = 2, unit = FILE_SIZE_UNIT.
|
|
|
27
14
|
const sizeInKB = sizeInBytes / KB;
|
|
28
15
|
return `${sizeInKB.toFixed(decimalPlaces)} KB`;
|
|
29
16
|
}
|
|
30
|
-
return `${sizeInBytes}
|
|
17
|
+
return `${sizeInBytes} Bytes`;
|
|
31
18
|
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zaXplLWxhYmVsLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9oZWxwZXJzL2ZpbGUtc2l6ZS1sYWJlbC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxXQUFtQixFQUFFLGdCQUF3QixDQUFDLEVBQVUsRUFBRTtJQUN6RixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxvQkFBb0I7SUFDckMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLDJCQUEyQjtJQUMvQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsa0NBQWtDO0lBRXRELElBQUksV0FBVyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDbEMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNqRCxDQUFDO1NBQU0sSUFBSSxXQUFXLElBQUksRUFBRSxFQUFFLENBQUM7UUFDN0IsTUFBTSxRQUFRLEdBQUcsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2pELENBQUM7U0FBTSxJQUFJLFdBQVcsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU8sR0FBRyxXQUFXLFFBQVEsQ0FBQztBQUNoQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZ2V0RmlsZVNpemVMYWJlbCA9IChzaXplSW5CeXRlczogbnVtYmVyLCBkZWNpbWFsUGxhY2VzOiBudW1iZXIgPSAyKTogc3RyaW5nID0+IHtcclxuICBjb25zdCBLQiA9IDEwMjQ7IC8vIDEgS0IgPSAxMDI0IGJ5dGVzXHJcbiAgY29uc3QgTUIgPSBLQiAqIEtCOyAvLyAxIE1CID0gMTAyNCAqIDEwMjQgYnl0ZXNcclxuICBjb25zdCBHQiA9IE1CICogS0I7IC8vIDEgR0IgPSAxMDI0ICogMTAyNCAqIDEwMjQgYnl0ZXNcclxuXHJcbiAgaWYgKHNpemVJbkJ5dGVzID49IEdCKSB7XHJcbiAgICBjb25zdCBzaXplSW5HQiA9IHNpemVJbkJ5dGVzIC8gR0I7XHJcbiAgICByZXR1cm4gYCR7c2l6ZUluR0IudG9GaXhlZChkZWNpbWFsUGxhY2VzKX0gR0JgO1xyXG4gIH0gZWxzZSBpZiAoc2l6ZUluQnl0ZXMgPj0gTUIpIHtcclxuICAgIGNvbnN0IHNpemVJbk1CID0gc2l6ZUluQnl0ZXMgLyBNQjtcclxuICAgIHJldHVybiBgJHtzaXplSW5NQi50b0ZpeGVkKGRlY2ltYWxQbGFjZXMpfSBNQmA7XHJcbiAgfSBlbHNlIGlmIChzaXplSW5CeXRlcyA+PSBLQikge1xyXG4gICAgY29uc3Qgc2l6ZUluS0IgPSBzaXplSW5CeXRlcyAvIEtCO1xyXG4gICAgcmV0dXJuIGAke3NpemVJbktCLnRvRml4ZWQoZGVjaW1hbFBsYWNlcyl9IEtCYDtcclxuICB9XHJcblxyXG4gIHJldHVybiBgJHtzaXplSW5CeXRlc30gQnl0ZXNgO1xyXG59O1xyXG4iXX0=
|