@sapphire-ion/framework 0.30.4 → 0.30.6

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.
@@ -15,7 +15,8 @@ import * as i5 from "@angular/common";
15
15
  import * as i6 from "@ionic/angular";
16
16
  import * as i7 from "../../../directives/ng-var.directive";
17
17
  import * as i8 from "../../loading/loading.component";
18
- import * as i9 from "../input-loading/input-loading.component";
18
+ import * as i9 from "../../image/image.component";
19
+ import * as i10 from "../input-loading/input-loading.component";
19
20
  export class InputFileComponent extends CustomInput {
20
21
  constructor(controlContainer, elementRef, utilsService, apiUrlProviderService, storageService) {
21
22
  super();
@@ -98,11 +99,11 @@ export class InputFileComponent extends CustomInput {
98
99
  return this.lstLoading.indexOf(path) != -1;
99
100
  }
100
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputFileComponent, deps: [{ token: i1.ControlContainer, host: true, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i2.UtilsService }, { token: i3.ApiUrlProviderService }, { token: i4.StorageService }], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputFileComponent, selector: "input-file", inputs: { configuration: "configuration" }, providers: InputProviderFactory.GetProvider(InputFileComponent), usesInheritance: true, ngImport: i0, template: "<div class=\"flex relative overflow-hidden\">\r\n <ion-card [disabled]=\"loading || disabled\"\r\n class=\"!border-r-0 !rounded-r-none focus-within:on-focus ion-card-input\"\r\n [ngClass]=\"{\r\n 'invalid' : invalid,\r\n 'submitted': submitted,\r\n 'disabled': disabled,\r\n }\"\r\n >\r\n <ion-card-content>\r\n <ion-item lines=\"none\">\r\n <ion-input [readonly]=\"true\" class=\"!opacity-100\" labelPlacement=\"stacked\" [(ngModel)]=\"model\">\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required}\" slot=\"label\"> {{label}} </ion-text>\r\n </ion-input>\r\n </ion-item>\r\n <div class=\"absolute h-full right-2 top-0 z-50 flex items-center justify-center\">\r\n <ion-button [id]=\"guid\" [disabled]=\"!(lstFiles.length > 1)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': lstFiles.length > 1 }\" \r\n size=\"small\" fill=\"outline\" color=\"medium\"\r\n >\r\n <ion-icon name=\"ellipsis-vertical\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"absolute h-full right-12 top-0 z-50 flex items-center justify-center\" [ngClass]=\"{'!z-0': !(_model && lstFiles.length == 1 && PopoverImg)}\" >\r\n <ion-button [id]=\"guid + 'image'\" [disabled]=\"!(_model && lstFiles.length == 1 && PopoverImg)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': _model && lstFiles.length == 1 && PopoverImg }\" \r\n size=\"small\" fill=\"outline\" color=\"medium\"\r\n >\r\n <ion-icon name=\"image\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"absolute h-full right-2 top-0 z-50 flex items-center justify-center\" [ngClass]=\"{'!z-0': !(_model && lstFiles.length == 1 && PopoverImg)}\" >\r\n <ion-button (click)=\"Download(_model.toString())\" [disabled]=\"!(_model && lstFiles.length == 1)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': _model && lstFiles.length == 1 }\" \r\n size=\"small\" fill=\"outline\"\r\n >\r\n <ion-icon name=\"cloud-download\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n @if (model) {\r\n <ion-progress-bar *ngVar=\"storageService.GetProgress(_model.toString()) as val\" [value]=\"val\" class=\"absolute bottom-0 left-0 w-full h-1 default-transition\" [ngClass]=\"{'!h-0': !val}\"></ion-progress-bar>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n <div class=\"w-12\"> \r\n <ion-button (click)=\"Upload()\" class=\"m-0 h-full w-full rou on-hover rounded-r-2xl\" [disabled]=\"loading || disabled\" style=\"--border-width: 1px 1px 2px 1px; --border-radius: 0rem 1rem 1rem 0rem;\" size=\"small\" color=\"secondary\" fill=\"outline\"> \r\n <ion-icon slot=\"icon-only\" name=\"cloud-upload\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n <input-loading [loading]=\"loading\"></input-loading>\r\n\r\n</div>\r\n\r\n@if (PopoverImg) {\r\n <ion-popover [trigger]=\"guid + 'image'\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-img [src]=\"src\"></ion-img> \r\n </ng-template>\r\n </ion-popover>\r\n}\r\n@if(configuration.multiple){\r\n <ion-popover [trigger]=\"guid\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content class=\"p-0 bg-transparent\">\r\n <ion-list>\r\n @for (item of lstFiles; track item; let i = $index; let l = $last) {\r\n <section *ngVar=\"storageService.GetProgress(item) as val\">\r\n <ion-item style=\"--background: transparent\" lines=\"{{l ? 'none' : 'full'}}\" button [detail]=\"false\">\r\n\r\n <ion-icon name=\"download\" (click)=\"Download(item)\" slot=\"start\"></ion-icon> \r\n @if (ExtensionIsImage(item)) {\r\n <ion-icon [id]=\"guid + '-' + i + '-nested-popover'\" name=\"image\" slot=\"start\"></ion-icon> \r\n }\r\n\r\n <ion-label>{{Sanitize(item)}}</ion-label>\r\n <ion-text *ngIf=\"val != 0\" slot=\"end\" class=\"text-sm\"><b>{{val * 100 | number : '1.2-2'}}%</b></ion-text>\r\n </ion-item>\r\n <ion-progress-bar class=\"h-0 default-transition\" [ngClass]=\"{'h-1': val != 0 }\" [value]=\"val\"></ion-progress-bar>\r\n <ion-popover *ngIf=\"ExtensionIsImage(item)\" side=\"end\" alignment=\"center\" [trigger]=\"guid + '-' + i + '-nested-popover'\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content *ngVar=\"isLoading(item) as isLoading\">\r\n <loading [hidden]=\"!isLoading\"></loading>\r\n <ion-img [hidden]=\"isLoading\" [src]=\"apiUrl + item\" (ionImgWillLoad)=\"SetLoading(item)\" (ionImgDidLoad)=\"SetNotLoading(item)\"></ion-img>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n </section>\r\n }\r\n </ion-list>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}\r\n", styles: ["ion-popover{--width: 30rem }\n", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i6.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i6.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i6.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i6.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i6.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i6.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i6.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i6.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i6.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i6.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i6.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgVarDirective, selector: "[ngVar]", inputs: ["ngVar"] }, { kind: "component", type: i8.LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: i9.InputLoadingComponent, selector: "input-loading", inputs: ["loading"] }, { kind: "pipe", type: i5.DecimalPipe, name: "number" }] }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputFileComponent, selector: "input-file", inputs: { configuration: "configuration" }, providers: InputProviderFactory.GetProvider(InputFileComponent), usesInheritance: true, ngImport: i0, template: "<div class=\"flex relative overflow-hidden\">\r\n <ion-card [disabled]=\"loading || disabled\"\r\n class=\"!border-r-0 !rounded-r-none focus-within:on-focus ion-card-input\"\r\n [ngClass]=\"{\r\n 'invalid' : invalid,\r\n 'submitted': submitted,\r\n 'disabled': disabled,\r\n }\"\r\n >\r\n <ion-card-content>\r\n <ion-item lines=\"none\">\r\n <ion-input [readonly]=\"true\" class=\"!opacity-100\" labelPlacement=\"stacked\" [(ngModel)]=\"model\">\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required}\" slot=\"label\"> {{label}} </ion-text>\r\n </ion-input>\r\n </ion-item>\r\n <div class=\"absolute h-full right-2 top-0 z-50 flex items-center justify-center\">\r\n <ion-button [id]=\"guid\" [disabled]=\"!(lstFiles.length > 1)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': lstFiles.length > 1 }\" \r\n size=\"small\" fill=\"outline\" color=\"medium\"\r\n >\r\n <ion-icon name=\"ellipsis-vertical\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"absolute h-full right-12 top-0 z-50 flex items-center justify-center\" [ngClass]=\"{'!z-0': !(_model && lstFiles.length == 1 && PopoverImg)}\" >\r\n <ion-button [id]=\"guid + 'image'\" [disabled]=\"!(_model && lstFiles.length == 1 && PopoverImg)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': _model && lstFiles.length == 1 && PopoverImg }\" \r\n size=\"small\" fill=\"outline\" color=\"medium\"\r\n >\r\n <ion-icon name=\"image\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"absolute h-full right-2 top-0 z-50 flex items-center justify-center\" [ngClass]=\"{'!z-0': !(_model && lstFiles.length == 1 && PopoverImg)}\" >\r\n <ion-button (click)=\"Download(_model.toString())\" [disabled]=\"!(_model && lstFiles.length == 1)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': _model && lstFiles.length == 1 }\" \r\n size=\"small\" fill=\"outline\"\r\n >\r\n <ion-icon name=\"cloud-download\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n @if (model) {\r\n <ion-progress-bar *ngVar=\"storageService.GetProgress(_model.toString()) as val\" [value]=\"val\" class=\"absolute bottom-0 left-0 w-full h-1 default-transition\" [ngClass]=\"{'!h-0': !val}\"></ion-progress-bar>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n <div class=\"w-12\"> \r\n <ion-button (click)=\"Upload()\" class=\"m-0 h-full w-full rou on-hover rounded-r-2xl\" [disabled]=\"loading || disabled\" style=\"--border-width: 1px 1px 2px 1px; --border-radius: 0rem 1rem 1rem 0rem;\" size=\"small\" color=\"secondary\" fill=\"outline\"> \r\n <ion-icon slot=\"icon-only\" name=\"cloud-upload\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n <input-loading [loading]=\"loading\"></input-loading>\r\n\r\n</div>\r\n\r\n@if (PopoverImg) {\r\n <ion-popover [trigger]=\"guid + 'image'\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <image [src]=\"src\"></image> \r\n </ng-template>\r\n </ion-popover>\r\n}\r\n@if(configuration.multiple){\r\n <ion-popover [trigger]=\"guid\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content class=\"p-0 bg-transparent\">\r\n <ion-list>\r\n @for (item of lstFiles; track item; let i = $index; let l = $last) {\r\n <section *ngVar=\"storageService.GetProgress(item) as val\">\r\n <ion-item style=\"--background: transparent\" lines=\"{{l ? 'none' : 'full'}}\" button [detail]=\"false\">\r\n\r\n <ion-icon name=\"download\" (click)=\"Download(item)\" slot=\"start\"></ion-icon> \r\n @if (ExtensionIsImage(item)) {\r\n <ion-icon [id]=\"guid + '-' + i + '-nested-popover'\" name=\"image\" slot=\"start\"></ion-icon> \r\n }\r\n\r\n <ion-label>{{Sanitize(item)}}</ion-label>\r\n <ion-text *ngIf=\"val != 0\" slot=\"end\" class=\"text-sm\"><b>{{val * 100 | number : '1.2-2'}}%</b></ion-text>\r\n </ion-item>\r\n <ion-progress-bar class=\"h-0 default-transition\" [ngClass]=\"{'h-1': val != 0 }\" [value]=\"val\"></ion-progress-bar>\r\n <ion-popover *ngIf=\"ExtensionIsImage(item)\" side=\"end\" alignment=\"center\" [trigger]=\"guid + '-' + i + '-nested-popover'\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content *ngVar=\"isLoading(item) as isLoading\">\r\n @if(isLoading){\r\n <loading [loading]=\"isLoading\"></loading>\r\n }\r\n <image [hidden]=\"isLoading\" [src]=\"apiUrl + item\"></image>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n </section>\r\n }\r\n </ion-list>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}\r\n", styles: ["ion-popover{--width: 30rem }\n", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i6.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i6.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i6.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i6.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i6.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i6.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i6.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i6.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i6.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i6.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgVarDirective, selector: "[ngVar]", inputs: ["ngVar"] }, { kind: "component", type: i8.LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: i9.ImageComponent, selector: "image", inputs: ["fill", "object", "src"] }, { kind: "component", type: i10.InputLoadingComponent, selector: "input-loading", inputs: ["loading"] }, { kind: "pipe", type: i5.DecimalPipe, name: "number" }] }); }
102
103
  }
103
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputFileComponent, decorators: [{
104
105
  type: Component,
105
- args: [{ selector: 'input-file', providers: InputProviderFactory.GetProvider(InputFileComponent), template: "<div class=\"flex relative overflow-hidden\">\r\n <ion-card [disabled]=\"loading || disabled\"\r\n class=\"!border-r-0 !rounded-r-none focus-within:on-focus ion-card-input\"\r\n [ngClass]=\"{\r\n 'invalid' : invalid,\r\n 'submitted': submitted,\r\n 'disabled': disabled,\r\n }\"\r\n >\r\n <ion-card-content>\r\n <ion-item lines=\"none\">\r\n <ion-input [readonly]=\"true\" class=\"!opacity-100\" labelPlacement=\"stacked\" [(ngModel)]=\"model\">\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required}\" slot=\"label\"> {{label}} </ion-text>\r\n </ion-input>\r\n </ion-item>\r\n <div class=\"absolute h-full right-2 top-0 z-50 flex items-center justify-center\">\r\n <ion-button [id]=\"guid\" [disabled]=\"!(lstFiles.length > 1)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': lstFiles.length > 1 }\" \r\n size=\"small\" fill=\"outline\" color=\"medium\"\r\n >\r\n <ion-icon name=\"ellipsis-vertical\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"absolute h-full right-12 top-0 z-50 flex items-center justify-center\" [ngClass]=\"{'!z-0': !(_model && lstFiles.length == 1 && PopoverImg)}\" >\r\n <ion-button [id]=\"guid + 'image'\" [disabled]=\"!(_model && lstFiles.length == 1 && PopoverImg)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': _model && lstFiles.length == 1 && PopoverImg }\" \r\n size=\"small\" fill=\"outline\" color=\"medium\"\r\n >\r\n <ion-icon name=\"image\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"absolute h-full right-2 top-0 z-50 flex items-center justify-center\" [ngClass]=\"{'!z-0': !(_model && lstFiles.length == 1 && PopoverImg)}\" >\r\n <ion-button (click)=\"Download(_model.toString())\" [disabled]=\"!(_model && lstFiles.length == 1)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': _model && lstFiles.length == 1 }\" \r\n size=\"small\" fill=\"outline\"\r\n >\r\n <ion-icon name=\"cloud-download\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n @if (model) {\r\n <ion-progress-bar *ngVar=\"storageService.GetProgress(_model.toString()) as val\" [value]=\"val\" class=\"absolute bottom-0 left-0 w-full h-1 default-transition\" [ngClass]=\"{'!h-0': !val}\"></ion-progress-bar>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n <div class=\"w-12\"> \r\n <ion-button (click)=\"Upload()\" class=\"m-0 h-full w-full rou on-hover rounded-r-2xl\" [disabled]=\"loading || disabled\" style=\"--border-width: 1px 1px 2px 1px; --border-radius: 0rem 1rem 1rem 0rem;\" size=\"small\" color=\"secondary\" fill=\"outline\"> \r\n <ion-icon slot=\"icon-only\" name=\"cloud-upload\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n <input-loading [loading]=\"loading\"></input-loading>\r\n\r\n</div>\r\n\r\n@if (PopoverImg) {\r\n <ion-popover [trigger]=\"guid + 'image'\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-img [src]=\"src\"></ion-img> \r\n </ng-template>\r\n </ion-popover>\r\n}\r\n@if(configuration.multiple){\r\n <ion-popover [trigger]=\"guid\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content class=\"p-0 bg-transparent\">\r\n <ion-list>\r\n @for (item of lstFiles; track item; let i = $index; let l = $last) {\r\n <section *ngVar=\"storageService.GetProgress(item) as val\">\r\n <ion-item style=\"--background: transparent\" lines=\"{{l ? 'none' : 'full'}}\" button [detail]=\"false\">\r\n\r\n <ion-icon name=\"download\" (click)=\"Download(item)\" slot=\"start\"></ion-icon> \r\n @if (ExtensionIsImage(item)) {\r\n <ion-icon [id]=\"guid + '-' + i + '-nested-popover'\" name=\"image\" slot=\"start\"></ion-icon> \r\n }\r\n\r\n <ion-label>{{Sanitize(item)}}</ion-label>\r\n <ion-text *ngIf=\"val != 0\" slot=\"end\" class=\"text-sm\"><b>{{val * 100 | number : '1.2-2'}}%</b></ion-text>\r\n </ion-item>\r\n <ion-progress-bar class=\"h-0 default-transition\" [ngClass]=\"{'h-1': val != 0 }\" [value]=\"val\"></ion-progress-bar>\r\n <ion-popover *ngIf=\"ExtensionIsImage(item)\" side=\"end\" alignment=\"center\" [trigger]=\"guid + '-' + i + '-nested-popover'\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content *ngVar=\"isLoading(item) as isLoading\">\r\n <loading [hidden]=\"!isLoading\"></loading>\r\n <ion-img [hidden]=\"isLoading\" [src]=\"apiUrl + item\" (ionImgWillLoad)=\"SetLoading(item)\" (ionImgDidLoad)=\"SetNotLoading(item)\"></ion-img>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n </section>\r\n }\r\n </ion-list>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}\r\n", styles: ["ion-popover{--width: 30rem }\n", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"] }]
106
+ args: [{ selector: 'input-file', providers: InputProviderFactory.GetProvider(InputFileComponent), template: "<div class=\"flex relative overflow-hidden\">\r\n <ion-card [disabled]=\"loading || disabled\"\r\n class=\"!border-r-0 !rounded-r-none focus-within:on-focus ion-card-input\"\r\n [ngClass]=\"{\r\n 'invalid' : invalid,\r\n 'submitted': submitted,\r\n 'disabled': disabled,\r\n }\"\r\n >\r\n <ion-card-content>\r\n <ion-item lines=\"none\">\r\n <ion-input [readonly]=\"true\" class=\"!opacity-100\" labelPlacement=\"stacked\" [(ngModel)]=\"model\">\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required}\" slot=\"label\"> {{label}} </ion-text>\r\n </ion-input>\r\n </ion-item>\r\n <div class=\"absolute h-full right-2 top-0 z-50 flex items-center justify-center\">\r\n <ion-button [id]=\"guid\" [disabled]=\"!(lstFiles.length > 1)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': lstFiles.length > 1 }\" \r\n size=\"small\" fill=\"outline\" color=\"medium\"\r\n >\r\n <ion-icon name=\"ellipsis-vertical\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"absolute h-full right-12 top-0 z-50 flex items-center justify-center\" [ngClass]=\"{'!z-0': !(_model && lstFiles.length == 1 && PopoverImg)}\" >\r\n <ion-button [id]=\"guid + 'image'\" [disabled]=\"!(_model && lstFiles.length == 1 && PopoverImg)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': _model && lstFiles.length == 1 && PopoverImg }\" \r\n size=\"small\" fill=\"outline\" color=\"medium\"\r\n >\r\n <ion-icon name=\"image\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"absolute h-full right-2 top-0 z-50 flex items-center justify-center\" [ngClass]=\"{'!z-0': !(_model && lstFiles.length == 1 && PopoverImg)}\" >\r\n <ion-button (click)=\"Download(_model.toString())\" [disabled]=\"!(_model && lstFiles.length == 1)\"\r\n class=\"aspect-square default-transition opacity-0 translate-x-12\" \r\n [ngClass]=\"{'opacity-100 !translate-x-0 size-8': _model && lstFiles.length == 1 }\" \r\n size=\"small\" fill=\"outline\"\r\n >\r\n <ion-icon name=\"cloud-download\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n @if (model) {\r\n <ion-progress-bar *ngVar=\"storageService.GetProgress(_model.toString()) as val\" [value]=\"val\" class=\"absolute bottom-0 left-0 w-full h-1 default-transition\" [ngClass]=\"{'!h-0': !val}\"></ion-progress-bar>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n <div class=\"w-12\"> \r\n <ion-button (click)=\"Upload()\" class=\"m-0 h-full w-full rou on-hover rounded-r-2xl\" [disabled]=\"loading || disabled\" style=\"--border-width: 1px 1px 2px 1px; --border-radius: 0rem 1rem 1rem 0rem;\" size=\"small\" color=\"secondary\" fill=\"outline\"> \r\n <ion-icon slot=\"icon-only\" name=\"cloud-upload\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n <input-loading [loading]=\"loading\"></input-loading>\r\n\r\n</div>\r\n\r\n@if (PopoverImg) {\r\n <ion-popover [trigger]=\"guid + 'image'\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <image [src]=\"src\"></image> \r\n </ng-template>\r\n </ion-popover>\r\n}\r\n@if(configuration.multiple){\r\n <ion-popover [trigger]=\"guid\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content class=\"p-0 bg-transparent\">\r\n <ion-list>\r\n @for (item of lstFiles; track item; let i = $index; let l = $last) {\r\n <section *ngVar=\"storageService.GetProgress(item) as val\">\r\n <ion-item style=\"--background: transparent\" lines=\"{{l ? 'none' : 'full'}}\" button [detail]=\"false\">\r\n\r\n <ion-icon name=\"download\" (click)=\"Download(item)\" slot=\"start\"></ion-icon> \r\n @if (ExtensionIsImage(item)) {\r\n <ion-icon [id]=\"guid + '-' + i + '-nested-popover'\" name=\"image\" slot=\"start\"></ion-icon> \r\n }\r\n\r\n <ion-label>{{Sanitize(item)}}</ion-label>\r\n <ion-text *ngIf=\"val != 0\" slot=\"end\" class=\"text-sm\"><b>{{val * 100 | number : '1.2-2'}}%</b></ion-text>\r\n </ion-item>\r\n <ion-progress-bar class=\"h-0 default-transition\" [ngClass]=\"{'h-1': val != 0 }\" [value]=\"val\"></ion-progress-bar>\r\n <ion-popover *ngIf=\"ExtensionIsImage(item)\" side=\"end\" alignment=\"center\" [trigger]=\"guid + '-' + i + '-nested-popover'\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content *ngVar=\"isLoading(item) as isLoading\">\r\n @if(isLoading){\r\n <loading [loading]=\"isLoading\"></loading>\r\n }\r\n <image [hidden]=\"isLoading\" [src]=\"apiUrl + item\"></image>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n </section>\r\n }\r\n </ion-list>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}\r\n", styles: ["ion-popover{--width: 30rem }\n", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"] }]
106
107
  }], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
107
108
  type: Optional
108
109
  }, {
@@ -125,4 +126,4 @@ export const imageTypes = [
125
126
  'tif',
126
127
  'tiff',
127
128
  ];
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7OztBQVF2RSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBNEI7SUFJbEUsWUFFVyxnQkFBa0MsRUFDbEMsVUFBc0IsRUFDdkIsWUFBMEIsRUFDMUIscUJBQTRDLEVBQzdDLGNBQThCO1FBQ25DLEtBQUssRUFBRSxDQUFBO1FBTEEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLDBCQUFxQixH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QWtCLGlGQUZsQixvQkFBb0IsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsaURDZGpFLDQ0S0FtR0E7OzRGRG5GYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsWUFBWSxhQUdYLG9CQUFvQixDQUFDLFdBQVcsb0JBQW9COzswQkFPNUQsUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksUUFBUTs4SkFIdEIsYUFBYTtzQkFBckIsS0FBSzs7QUF1RlIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFhO0lBQ2xDLEtBQUs7SUFDTCxLQUFLO0lBQ0wsTUFBTTtJQUNOLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsTUFBTTtJQUNOLEtBQUs7SUFDTCxNQUFNO0NBQ1AsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdCwgSW5wdXQsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgSW5wdXRGaWxlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vaW5wdXQtZmlsZS5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgQXBpVXJsUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvd2ViL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IElucHV0UHJvdmlkZXJGYWN0b3J5IH0gZnJvbSAnLi4vaW5wdXQtcHJvdmlkZXItZmFjdG9yeSc7XHJcbmltcG9ydCB7IFV0aWxzLCBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3VzdG9tSW5wdXQgfSBmcm9tICcuLi9jdXN0b20taW5wdXQnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3dlYi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbnB1dC1maWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZmlsZS5jb21wb25lbnQuc2NzcycsICcuLi9pbnB1dHMuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogSW5wdXRQcm92aWRlckZhY3RvcnkuR2V0UHJvdmlkZXIoSW5wdXRGaWxlQ29tcG9uZW50KVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRGaWxlQ29tcG9uZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXQ8RmlsZVtdIHwgc3RyaW5nPiB7XHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZ3VyYXRpb246IElucHV0RmlsZUNvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRGaWxlQ29uZmlndXJhdGlvbigpXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBAU2tpcFNlbGYoKVxyXG4gICAgb3ZlcnJpZGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcclxuICAgIG92ZXJyaWRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcGlVcmxQcm92aWRlclNlcnZpY2U6IEFwaVVybFByb3ZpZGVyU2VydmljZSxcclxuICAgIHB1YmxpYyBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VcclxuICApIHsgc3VwZXIoKSB9XHJcblxyXG4gIGd1aWQ6IHN0cmluZztcclxuICBhcGlVcmw6IHN0cmluZztcclxuXHJcbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5hcGlVcmwgPSB0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZS5hcGlVcmw7XHJcbiAgICB0aGlzLmd1aWQgPSBgJHt0aGlzLmZvcm1Db250cm9sTmFtZX0ke3RoaXMuaWR9JHtVdGlscy5HZW5lcmF0ZUdVSUQoKX0ke3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKX1gXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBGaWxlW10gfCBzdHJpbmcpOiB2b2lkIHsgdGhpcy5zZXRNb2RlbCh2YWx1ZSk7IH1cclxuICBcclxuICBvdmVycmlkZSBnZXQgbW9kZWwoKXtcclxuICAgIGlmKCF0aGlzLl9tb2RlbCl7IHJldHVybiBcIlwiOyB9XHJcbiAgICBcclxuICAgIGlmKHR5cGVvZih0aGlzLl9tb2RlbCkgPT0gXCJzdHJpbmdcIikgeyBcclxuICAgICAgY29uc3QgdCA9IHRoaXMuX21vZGVsLnNwbGl0KCc7JykubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gdCA9PSAxID8gU3RvcmFnZVNlcnZpY2UuU2FuaXRpemVGaWxlTmFtZSh0aGlzLl9tb2RlbCkgOiBgJHt0fSBBcnF1aXZvcyBBcm1hemVuYWRvc2A7IFxyXG4gICAgfSBlbHNlIHsgXHJcbiAgICAgIGlmKHRoaXMuX21vZGVsLmxlbmd0aCA+IDEpeyByZXR1cm4gYCR7dGhpcy5fbW9kZWwubGVuZ3RofSBBcnF1aXZvcyBTZWxlY2lvbmFkb3NgIH1cclxuICAgICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiB0aGlzLl9tb2RlbFswXS5uYW1lIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIG92ZXJyaWRlIHNldCBtb2RlbCh2YWx1ZTogRmlsZVtdIHwgc3RyaW5nKSB7IFxyXG4gICAgdGhpcy5zZXRNb2RlbCh2YWx1ZSk7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl9tb2RlbCk7IFxyXG4gIH1cclxuICBzZXRNb2RlbCh2YWx1ZTogRmlsZVtdIHwgc3RyaW5nKSB7IFxyXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcclxuICAgIFxyXG4gICAgaWYodHlwZW9mKHRoaXMuX21vZGVsKSA9PSBcInN0cmluZ1wiKXtcclxuICAgICAgdGhpcy5sc3RGaWxlcyA9IHRoaXMuX21vZGVsLnNwbGl0KCc7Jyk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5sc3RGaWxlcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbHN0RmlsZXM6IGFueVtdID0gW107XHJcblxyXG4gIFVwbG9hZCgpOiB2b2lke1xyXG4gICAgdGhpcy51dGlsc1NlcnZpY2UuU2VsZWN0RmlsZSh0aGlzLmNvbmZpZ3VyYXRpb24pLnRoZW4oKHJlcykgPT4geyBpZihyZXMpeyB0aGlzLm1vZGVsID0gcmVzOyB9IH0pO1xyXG4gIH1cclxuICBEb3dubG9hZCh2YWx1ZTogc3RyaW5nKTogdm9pZHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuU3RhcnREb3dubG9hZCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBQb3BvdmVySW1nKCl7XHJcbiAgICByZXR1cm4gIXRoaXMuY29uZmlndXJhdGlvbi5tdWx0aXBsZSAmJiB0eXBlb2YodGhpcy5fbW9kZWwpID09IFwic3RyaW5nXCIgJiYgdGhpcy5FeHRlbnNpb25Jc0ltYWdlKHRoaXMuX21vZGVsKTtcclxuICB9XHJcbiAgRXh0ZW5zaW9uSXNJbWFnZSh2KXtcclxuICAgIHRyeXtcclxuICAgICAgcmV0dXJuIGltYWdlVHlwZXMuaW5jbHVkZXModi5zcGxpdCgnLicpW3Yuc3BsaXQoJy4nKS5sZW5ndGggLSAxXSlcclxuICAgIH1jYXRjaHt9XHJcbiAgfVxyXG5cclxuICBnZXQgc3JjKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlVcmwgKyB0aGlzLl9tb2RlbFxyXG4gIH1cclxuICBnZXQgaXNDbG91ZCgpe1xyXG4gICAgcmV0dXJuIHR5cGVvZih0aGlzLl9tb2RlbCkgPT0gXCJzdHJpbmdcIlxyXG4gIH1cclxuXHJcbiAgU2FuaXRpemUodik6IHN0cmluZyB7IHJldHVybiBTdG9yYWdlU2VydmljZS5TYW5pdGl6ZUZpbGVOYW1lKHYpOyB9XHJcblxyXG4gIGxzdExvYWRpbmc6IHN0cmluZ1tdID0gW107XHJcbiAgU2V0TG9hZGluZyhwYXRoOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5sc3RMb2FkaW5nLnB1c2gocGF0aCk7XHJcbiAgfVxyXG4gIFNldE5vdExvYWRpbmcocGF0aDogc3RyaW5nKXtcclxuICAgIHRoaXMubHN0TG9hZGluZy5zcGxpY2UodGhpcy5sc3RMb2FkaW5nLmluZGV4T2YocGF0aCksIDEpO1xyXG4gIH1cclxuICBpc0xvYWRpbmcocGF0aDogc3RyaW5nKXtcclxuICAgIHJldHVybiB0aGlzLmxzdExvYWRpbmcuaW5kZXhPZihwYXRoKSAhPSAtMTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBpbWFnZVR5cGVzOiBzdHJpbmdbXSA9IFtcclxuICAnanBlJyxcclxuICAnanBnJyxcclxuICAnanBlZycsXHJcbiAgJ2dpZicsXHJcbiAgJ3BuZycsXHJcbiAgJ2JtcCcsXHJcbiAgJ2ljbycsXHJcbiAgJ3N2ZycsXHJcbiAgJ3N2Z3onLFxyXG4gICd0aWYnLFxyXG4gICd0aWZmJyxcclxuXSAiLCI8ZGl2IGNsYXNzPVwiZmxleCByZWxhdGl2ZSBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICA8aW9uLWNhcmQgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZGlzYWJsZWRcIlxyXG4gICAgY2xhc3M9XCIhYm9yZGVyLXItMCAhcm91bmRlZC1yLW5vbmUgZm9jdXMtd2l0aGluOm9uLWZvY3VzIGlvbi1jYXJkLWlucHV0XCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ2ludmFsaWQnICA6IGludmFsaWQsXHJcbiAgICAgICdzdWJtaXR0ZWQnOiBzdWJtaXR0ZWQsXHJcbiAgICAgICdkaXNhYmxlZCc6IGRpc2FibGVkLFxyXG4gICAgfVwiXHJcbiAgPlxyXG4gICAgPGlvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIj5cclxuICAgICAgICA8aW9uLWlucHV0IFtyZWFkb25seV09XCJ0cnVlXCIgY2xhc3M9XCIhb3BhY2l0eS0xMDBcIiBsYWJlbFBsYWNlbWVudD1cInN0YWNrZWRcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCI+XHJcbiAgICAgICAgICA8aW9uLXRleHQgaWQ9XCJsYWJlbFwiIFtuZ0NsYXNzXT1cInsncmVxdWlyZWQnOiByZXF1aXJlZH1cIiBzbG90PVwibGFiZWxcIj4ge3tsYWJlbH19IDwvaW9uLXRleHQ+XHJcbiAgICAgICAgPC9pb24taW5wdXQ+XHJcbiAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGgtZnVsbCByaWdodC0yIHRvcC0wIHotNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIFtpZF09XCJndWlkXCIgIFtkaXNhYmxlZF09XCIhKGxzdEZpbGVzLmxlbmd0aCA+IDEpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhc3BlY3Qtc3F1YXJlIGRlZmF1bHQtdHJhbnNpdGlvbiBvcGFjaXR5LTAgdHJhbnNsYXRlLXgtMTJcIiBcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydvcGFjaXR5LTEwMCAhdHJhbnNsYXRlLXgtMCBzaXplLTgnOiAgbHN0RmlsZXMubGVuZ3RoID4gMSB9XCIgXHJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJtZWRpdW1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImVsbGlwc2lzLXZlcnRpY2FsXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBoLWZ1bGwgcmlnaHQtMTIgdG9wLTAgei01MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiIFtuZ0NsYXNzXT1cInsnIXotMCc6ICEoX21vZGVsICYmIGxzdEZpbGVzLmxlbmd0aCA9PSAxICYmIFBvcG92ZXJJbWcpfVwiID5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIFtpZF09XCJndWlkICsgJ2ltYWdlJ1wiIFtkaXNhYmxlZF09XCIhKF9tb2RlbCAmJiBsc3RGaWxlcy5sZW5ndGggPT0gMSAmJiBQb3BvdmVySW1nKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYXNwZWN0LXNxdWFyZSBkZWZhdWx0LXRyYW5zaXRpb24gb3BhY2l0eS0wIHRyYW5zbGF0ZS14LTEyXCIgXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0xMDAgIXRyYW5zbGF0ZS14LTAgc2l6ZS04JzogX21vZGVsICYmIGxzdEZpbGVzLmxlbmd0aCA9PSAxICYmIFBvcG92ZXJJbWcgfVwiIFxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwibWVkaXVtXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJpbWFnZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgaC1mdWxsIHJpZ2h0LTIgdG9wLTAgei01MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiIFtuZ0NsYXNzXT1cInsnIXotMCc6ICEoX21vZGVsICYmIGxzdEZpbGVzLmxlbmd0aCA9PSAxICYmIFBvcG92ZXJJbWcpfVwiID5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJEb3dubG9hZChfbW9kZWwudG9TdHJpbmcoKSlcIiBbZGlzYWJsZWRdPVwiIShfbW9kZWwgJiYgbHN0RmlsZXMubGVuZ3RoID09IDEpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhc3BlY3Qtc3F1YXJlIGRlZmF1bHQtdHJhbnNpdGlvbiBvcGFjaXR5LTAgdHJhbnNsYXRlLXgtMTJcIiBcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydvcGFjaXR5LTEwMCAhdHJhbnNsYXRlLXgtMCBzaXplLTgnOiBfbW9kZWwgJiYgbHN0RmlsZXMubGVuZ3RoID09IDEgfVwiIFxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIiBmaWxsPVwib3V0bGluZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvdWQtZG93bmxvYWRcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgQGlmIChtb2RlbCkge1xyXG4gICAgICAgICAgPGlvbi1wcm9ncmVzcy1iYXIgKm5nVmFyPVwic3RvcmFnZVNlcnZpY2UuR2V0UHJvZ3Jlc3MoX21vZGVsLnRvU3RyaW5nKCkpIGFzIHZhbFwiIFt2YWx1ZV09XCJ2YWxcIiBjbGFzcz1cImFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCB3LWZ1bGwgaC0xIGRlZmF1bHQtdHJhbnNpdGlvblwiIFtuZ0NsYXNzXT1cInsnIWgtMCc6ICF2YWx9XCI+PC9pb24tcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICAgIH1cclxuICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICA8L2lvbi1jYXJkPlxyXG4gIDxkaXYgY2xhc3M9XCJ3LTEyXCI+IFxyXG4gICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIlVwbG9hZCgpXCIgY2xhc3M9XCJtLTAgaC1mdWxsIHctZnVsbCByb3Ugb24taG92ZXIgcm91bmRlZC1yLTJ4bFwiICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBkaXNhYmxlZFwiICBzdHlsZT1cIi0tYm9yZGVyLXdpZHRoOiAxcHggMXB4IDJweCAxcHg7IC0tYm9yZGVyLXJhZGl1czogMHJlbSAxcmVtIDFyZW0gMHJlbTtcIiBzaXplPVwic21hbGxcIiBjb2xvcj1cInNlY29uZGFyeVwiIGZpbGw9XCJvdXRsaW5lXCI+IFxyXG4gICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG91ZC11cGxvYWRcIj48L2lvbi1pY29uPiBcclxuICAgIDwvaW9uLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8aW5wdXQtbG9hZGluZyBbbG9hZGluZ109XCJsb2FkaW5nXCI+PC9pbnB1dC1sb2FkaW5nPlxyXG5cclxuPC9kaXY+XHJcblxyXG5AaWYgKFBvcG92ZXJJbWcpIHtcclxuICA8aW9uLXBvcG92ZXIgW3RyaWdnZXJdPVwiZ3VpZCArICdpbWFnZSdcIiBba2VlcENvbnRlbnRzTW91bnRlZF09XCJ0cnVlXCIgdHJpZ2dlckFjdGlvbj1cImNsaWNrXCI+XHJcbiAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgIDxpb24taW1nIFtzcmNdPVwic3JjXCI+PC9pb24taW1nPiAgICAgIFxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2lvbi1wb3BvdmVyPlxyXG59XHJcbkBpZihjb25maWd1cmF0aW9uLm11bHRpcGxlKXtcclxuICA8aW9uLXBvcG92ZXIgW3RyaWdnZXJdPVwiZ3VpZFwiIFtrZWVwQ29udGVudHNNb3VudGVkXT1cInRydWVcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgPGlvbi1jb250ZW50IGNsYXNzPVwicC0wIGJnLXRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgPGlvbi1saXN0PlxyXG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBsc3RGaWxlczsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXg7IGxldCBsID0gJGxhc3QpIHtcclxuICAgICAgICAgICAgPHNlY3Rpb24gKm5nVmFyPVwic3RvcmFnZVNlcnZpY2UuR2V0UHJvZ3Jlc3MoaXRlbSkgYXMgdmFsXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1pdGVtIHN0eWxlPVwiLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudFwiIGxpbmVzPVwie3tsID8gJ25vbmUnIDogJ2Z1bGwnfX1cIiBidXR0b24gW2RldGFpbF09XCJmYWxzZVwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG93bmxvYWRcIiAoY2xpY2spPVwiRG93bmxvYWQoaXRlbSlcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPiBcclxuICAgICAgICAgICAgICAgIEBpZiAoRXh0ZW5zaW9uSXNJbWFnZShpdGVtKSkge1xyXG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gW2lkXT1cImd1aWQgKyAnLScgKyBpICsgJy1uZXN0ZWQtcG9wb3ZlcidcIiBuYW1lPVwiaW1hZ2VcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPiBcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8aW9uLWxhYmVsPnt7U2FuaXRpemUoaXRlbSl9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwidmFsICE9IDBcIiBzbG90PVwiZW5kXCIgY2xhc3M9XCJ0ZXh0LXNtXCI+PGI+e3t2YWwgKiAxMDAgfCBudW1iZXIgOiAnMS4yLTInfX0lPC9iPjwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICAgICAgICA8aW9uLXByb2dyZXNzLWJhciBjbGFzcz1cImgtMCBkZWZhdWx0LXRyYW5zaXRpb25cIiBbbmdDbGFzc109XCJ7J2gtMSc6IHZhbCAhPSAwIH1cIiBbdmFsdWVdPVwidmFsXCI+PC9pb24tcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICAgICAgICAgIDxpb24tcG9wb3ZlciAqbmdJZj1cIkV4dGVuc2lvbklzSW1hZ2UoaXRlbSlcIiBzaWRlPVwiZW5kXCIgYWxpZ25tZW50PVwiY2VudGVyXCIgW3RyaWdnZXJdPVwiZ3VpZCArICctJyArIGkgKyAnLW5lc3RlZC1wb3BvdmVyJ1wiIFtkaXNtaXNzT25TZWxlY3RdPVwidHJ1ZVwiIHRyaWdnZXJBY3Rpb249XCJjbGlja1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbnRlbnQgKm5nVmFyPVwiaXNMb2FkaW5nKGl0ZW0pIGFzIGlzTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsb2FkaW5nICAgIFtoaWRkZW5dPVwiIWlzTG9hZGluZ1wiPjwvbG9hZGluZz5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWltZyAgICBbaGlkZGVuXT1cImlzTG9hZGluZ1wiIFtzcmNdPVwiYXBpVXJsICsgaXRlbVwiIChpb25JbWdXaWxsTG9hZCk9XCJTZXRMb2FkaW5nKGl0ZW0pXCIgKGlvbkltZ0RpZExvYWQpPVwiU2V0Tm90TG9hZGluZyhpdGVtKVwiPjwvaW9uLWltZz5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29udGVudD5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9pb24tcG9wb3Zlcj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9pb24tbGlzdD5cclxuICAgICAgPC9pb24tY29udGVudD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9pb24tcG9wb3Zlcj5cclxufVxyXG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFRdkUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQTRCO0lBSWxFLFlBRVcsZ0JBQWtDLEVBQ2xDLFVBQXNCLEVBQ3ZCLFlBQTBCLEVBQzFCLHFCQUE0QyxFQUM3QyxjQUE4QjtRQUNuQyxLQUFLLEVBQUUsQ0FBQTtRQUxBLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQiwwQkFBcUIs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QUFrQixpRkFGbEIsb0JBQW9CLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLGlEQ2RqRSxrM0tBcUdBOzs0RkRyRmEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLFlBQVksYUFHWCxvQkFBb0IsQ0FBQyxXQUFXLG9CQUFvQjs7MEJBTzVELFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLFFBQVE7OEpBSHRCLGFBQWE7c0JBQXJCLEtBQUs7O0FBdUZSLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBYTtJQUNsQyxLQUFLO0lBQ0wsS0FBSztJQUNMLE1BQU07SUFDTixLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLE1BQU07SUFDTixLQUFLO0lBQ0wsTUFBTTtDQUNQLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3QsIElucHV0LCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IElucHV0RmlsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2lucHV0LWZpbGUuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IEFwaVVybFByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3dlYi9hcGktdXJsLXByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnB1dFByb3ZpZGVyRmFjdG9yeSB9IGZyb20gJy4uL2lucHV0LXByb3ZpZGVyLWZhY3RvcnknO1xyXG5pbXBvcnQgeyBVdGlscywgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbUlucHV0IH0gZnJvbSAnLi4vY3VzdG9tLWlucHV0JztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy93ZWIvc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaW5wdXQtZmlsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWZpbGUuY29tcG9uZW50LnNjc3MnLCAnLi4vaW5wdXRzLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IElucHV0UHJvdmlkZXJGYWN0b3J5LkdldFByb3ZpZGVyKElucHV0RmlsZUNvbXBvbmVudClcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RmlsZUNvbXBvbmVudCBleHRlbmRzIEN1c3RvbUlucHV0PEZpbGVbXSB8IHN0cmluZz4ge1xyXG5cclxuICBASW5wdXQoKSBjb25maWd1cmF0aW9uOiBJbnB1dEZpbGVDb25maWd1cmF0aW9uID0gbmV3IElucHV0RmlsZUNvbmZpZ3VyYXRpb24oKVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgQFNraXBTZWxmKClcclxuICAgIG92ZXJyaWRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXHJcbiAgICBvdmVycmlkZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlOiBBcGlVcmxQcm92aWRlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlXHJcbiAgKSB7IHN1cGVyKCkgfVxyXG5cclxuICBndWlkOiBzdHJpbmc7XHJcbiAgYXBpVXJsOiBzdHJpbmc7XHJcblxyXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuYXBpVXJsID0gdGhpcy5hcGlVcmxQcm92aWRlclNlcnZpY2UuYXBpVXJsO1xyXG4gICAgdGhpcy5ndWlkID0gYCR7dGhpcy5mb3JtQ29udHJvbE5hbWV9JHt0aGlzLmlkfSR7VXRpbHMuR2VuZXJhdGVHVUlEKCl9JHt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCl9YFxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogRmlsZVtdIHwgc3RyaW5nKTogdm9pZCB7IHRoaXMuc2V0TW9kZWwodmFsdWUpOyB9XHJcbiAgXHJcbiAgb3ZlcnJpZGUgZ2V0IG1vZGVsKCl7XHJcbiAgICBpZighdGhpcy5fbW9kZWwpeyByZXR1cm4gXCJcIjsgfVxyXG4gICAgXHJcbiAgICBpZih0eXBlb2YodGhpcy5fbW9kZWwpID09IFwic3RyaW5nXCIpIHsgXHJcbiAgICAgIGNvbnN0IHQgPSB0aGlzLl9tb2RlbC5zcGxpdCgnOycpLmxlbmd0aDtcclxuICAgICAgcmV0dXJuIHQgPT0gMSA/IFN0b3JhZ2VTZXJ2aWNlLlNhbml0aXplRmlsZU5hbWUodGhpcy5fbW9kZWwpIDogYCR7dH0gQXJxdWl2b3MgQXJtYXplbmFkb3NgOyBcclxuICAgIH0gZWxzZSB7IFxyXG4gICAgICBpZih0aGlzLl9tb2RlbC5sZW5ndGggPiAxKXsgcmV0dXJuIGAke3RoaXMuX21vZGVsLmxlbmd0aH0gQXJxdWl2b3MgU2VsZWNpb25hZG9zYCB9XHJcbiAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gdGhpcy5fbW9kZWxbMF0ubmFtZSB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBvdmVycmlkZSBzZXQgbW9kZWwodmFsdWU6IEZpbGVbXSB8IHN0cmluZykgeyBcclxuICAgIHRoaXMuc2V0TW9kZWwodmFsdWUpO1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fbW9kZWwpOyBcclxuICB9XHJcbiAgc2V0TW9kZWwodmFsdWU6IEZpbGVbXSB8IHN0cmluZykgeyBcclxuICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XHJcbiAgICBcclxuICAgIGlmKHR5cGVvZih0aGlzLl9tb2RlbCkgPT0gXCJzdHJpbmdcIil7XHJcbiAgICAgIHRoaXMubHN0RmlsZXMgPSB0aGlzLl9tb2RlbC5zcGxpdCgnOycpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMubHN0RmlsZXMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxzdEZpbGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBVcGxvYWQoKTogdm9pZHtcclxuICAgIHRoaXMudXRpbHNTZXJ2aWNlLlNlbGVjdEZpbGUodGhpcy5jb25maWd1cmF0aW9uKS50aGVuKChyZXMpID0+IHsgaWYocmVzKXsgdGhpcy5tb2RlbCA9IHJlczsgfSB9KTtcclxuICB9XHJcbiAgRG93bmxvYWQodmFsdWU6IHN0cmluZyk6IHZvaWR7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLlN0YXJ0RG93bmxvYWQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgUG9wb3ZlckltZygpe1xyXG4gICAgcmV0dXJuICF0aGlzLmNvbmZpZ3VyYXRpb24ubXVsdGlwbGUgJiYgdHlwZW9mKHRoaXMuX21vZGVsKSA9PSBcInN0cmluZ1wiICYmIHRoaXMuRXh0ZW5zaW9uSXNJbWFnZSh0aGlzLl9tb2RlbCk7XHJcbiAgfVxyXG4gIEV4dGVuc2lvbklzSW1hZ2Uodil7XHJcbiAgICB0cnl7XHJcbiAgICAgIHJldHVybiBpbWFnZVR5cGVzLmluY2x1ZGVzKHYuc3BsaXQoJy4nKVt2LnNwbGl0KCcuJykubGVuZ3RoIC0gMV0pXHJcbiAgICB9Y2F0Y2h7fVxyXG4gIH1cclxuXHJcbiAgZ2V0IHNyYygpe1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpVXJsICsgdGhpcy5fbW9kZWxcclxuICB9XHJcbiAgZ2V0IGlzQ2xvdWQoKXtcclxuICAgIHJldHVybiB0eXBlb2YodGhpcy5fbW9kZWwpID09IFwic3RyaW5nXCJcclxuICB9XHJcblxyXG4gIFNhbml0aXplKHYpOiBzdHJpbmcgeyByZXR1cm4gU3RvcmFnZVNlcnZpY2UuU2FuaXRpemVGaWxlTmFtZSh2KTsgfVxyXG5cclxuICBsc3RMb2FkaW5nOiBzdHJpbmdbXSA9IFtdO1xyXG4gIFNldExvYWRpbmcocGF0aDogc3RyaW5nKXtcclxuICAgIHRoaXMubHN0TG9hZGluZy5wdXNoKHBhdGgpO1xyXG4gIH1cclxuICBTZXROb3RMb2FkaW5nKHBhdGg6IHN0cmluZyl7XHJcbiAgICB0aGlzLmxzdExvYWRpbmcuc3BsaWNlKHRoaXMubHN0TG9hZGluZy5pbmRleE9mKHBhdGgpLCAxKTtcclxuICB9XHJcbiAgaXNMb2FkaW5nKHBhdGg6IHN0cmluZyl7XHJcbiAgICByZXR1cm4gdGhpcy5sc3RMb2FkaW5nLmluZGV4T2YocGF0aCkgIT0gLTE7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgaW1hZ2VUeXBlczogc3RyaW5nW10gPSBbXHJcbiAgJ2pwZScsXHJcbiAgJ2pwZycsXHJcbiAgJ2pwZWcnLFxyXG4gICdnaWYnLFxyXG4gICdwbmcnLFxyXG4gICdibXAnLFxyXG4gICdpY28nLFxyXG4gICdzdmcnLFxyXG4gICdzdmd6JyxcclxuICAndGlmJyxcclxuICAndGlmZicsXHJcbl0gIiwiPGRpdiBjbGFzcz1cImZsZXggcmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgPGlvbi1jYXJkIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGRpc2FibGVkXCJcclxuICAgIGNsYXNzPVwiIWJvcmRlci1yLTAgIXJvdW5kZWQtci1ub25lIGZvY3VzLXdpdGhpbjpvbi1mb2N1cyBpb24tY2FyZC1pbnB1dFwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdpbnZhbGlkJyAgOiBpbnZhbGlkLFxyXG4gICAgICAnc3VibWl0dGVkJzogc3VibWl0dGVkLFxyXG4gICAgICAnZGlzYWJsZWQnOiBkaXNhYmxlZCxcclxuICAgIH1cIlxyXG4gID5cclxuICAgIDxpb24tY2FyZC1jb250ZW50PlxyXG4gICAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCI+XHJcbiAgICAgICAgPGlvbi1pbnB1dCBbcmVhZG9ubHldPVwidHJ1ZVwiIGNsYXNzPVwiIW9wYWNpdHktMTAwXCIgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiPlxyXG4gICAgICAgICAgPGlvbi10ZXh0IGlkPVwibGFiZWxcIiBbbmdDbGFzc109XCJ7J3JlcXVpcmVkJzogcmVxdWlyZWR9XCIgc2xvdD1cImxhYmVsXCI+IHt7bGFiZWx9fSA8L2lvbi10ZXh0PlxyXG4gICAgICAgIDwvaW9uLWlucHV0PlxyXG4gICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBoLWZ1bGwgcmlnaHQtMiB0b3AtMCB6LTUwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBbaWRdPVwiZ3VpZFwiICBbZGlzYWJsZWRdPVwiIShsc3RGaWxlcy5sZW5ndGggPiAxKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYXNwZWN0LXNxdWFyZSBkZWZhdWx0LXRyYW5zaXRpb24gb3BhY2l0eS0wIHRyYW5zbGF0ZS14LTEyXCIgXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0xMDAgIXRyYW5zbGF0ZS14LTAgc2l6ZS04JzogIGxzdEZpbGVzLmxlbmd0aCA+IDEgfVwiIFxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwibWVkaXVtXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJlbGxpcHNpcy12ZXJ0aWNhbFwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgaC1mdWxsIHJpZ2h0LTEyIHRvcC0wIHotNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIiBbbmdDbGFzc109XCJ7JyF6LTAnOiAhKF9tb2RlbCAmJiBsc3RGaWxlcy5sZW5ndGggPT0gMSAmJiBQb3BvdmVySW1nKX1cIiA+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBbaWRdPVwiZ3VpZCArICdpbWFnZSdcIiBbZGlzYWJsZWRdPVwiIShfbW9kZWwgJiYgbHN0RmlsZXMubGVuZ3RoID09IDEgJiYgUG9wb3ZlckltZylcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFzcGVjdC1zcXVhcmUgZGVmYXVsdC10cmFuc2l0aW9uIG9wYWNpdHktMCB0cmFuc2xhdGUteC0xMlwiIFxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J29wYWNpdHktMTAwICF0cmFuc2xhdGUteC0wIHNpemUtOCc6IF9tb2RlbCAmJiBsc3RGaWxlcy5sZW5ndGggPT0gMSAmJiBQb3BvdmVySW1nIH1cIiBcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCIgZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cIm1lZGl1bVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiaW1hZ2VcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGgtZnVsbCByaWdodC0yIHRvcC0wIHotNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIiBbbmdDbGFzc109XCJ7JyF6LTAnOiAhKF9tb2RlbCAmJiBsc3RGaWxlcy5sZW5ndGggPT0gMSAmJiBQb3BvdmVySW1nKX1cIiA+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiRG93bmxvYWQoX21vZGVsLnRvU3RyaW5nKCkpXCIgW2Rpc2FibGVkXT1cIiEoX21vZGVsICYmIGxzdEZpbGVzLmxlbmd0aCA9PSAxKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYXNwZWN0LXNxdWFyZSBkZWZhdWx0LXRyYW5zaXRpb24gb3BhY2l0eS0wIHRyYW5zbGF0ZS14LTEyXCIgXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0xMDAgIXRyYW5zbGF0ZS14LTAgc2l6ZS04JzogX21vZGVsICYmIGxzdEZpbGVzLmxlbmd0aCA9PSAxIH1cIiBcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCIgZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3VkLWRvd25sb2FkXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIEBpZiAobW9kZWwpIHtcclxuICAgICAgICAgIDxpb24tcHJvZ3Jlc3MtYmFyICpuZ1Zhcj1cInN0b3JhZ2VTZXJ2aWNlLkdldFByb2dyZXNzKF9tb2RlbC50b1N0cmluZygpKSBhcyB2YWxcIiBbdmFsdWVdPVwidmFsXCIgY2xhc3M9XCJhYnNvbHV0ZSBib3R0b20tMCBsZWZ0LTAgdy1mdWxsIGgtMSBkZWZhdWx0LXRyYW5zaXRpb25cIiBbbmdDbGFzc109XCJ7JyFoLTAnOiAhdmFsfVwiPjwvaW9uLXByb2dyZXNzLWJhcj5cclxuICAgICAgICB9XHJcbiAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9pb24tY2FyZD5cclxuICA8ZGl2IGNsYXNzPVwidy0xMlwiPiBcclxuICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJVcGxvYWQoKVwiIGNsYXNzPVwibS0wIGgtZnVsbCB3LWZ1bGwgcm91IG9uLWhvdmVyIHJvdW5kZWQtci0yeGxcIiAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZGlzYWJsZWRcIiAgc3R5bGU9XCItLWJvcmRlci13aWR0aDogMXB4IDFweCAycHggMXB4OyAtLWJvcmRlci1yYWRpdXM6IDByZW0gMXJlbSAxcmVtIDByZW07XCIgc2l6ZT1cInNtYWxsXCIgY29sb3I9XCJzZWNvbmRhcnlcIiBmaWxsPVwib3V0bGluZVwiPiBcclxuICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvdWQtdXBsb2FkXCI+PC9pb24taWNvbj4gXHJcbiAgICA8L2lvbi1idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGlucHV0LWxvYWRpbmcgW2xvYWRpbmddPVwibG9hZGluZ1wiPjwvaW5wdXQtbG9hZGluZz5cclxuXHJcbjwvZGl2PlxyXG5cclxuQGlmIChQb3BvdmVySW1nKSB7XHJcbiAgPGlvbi1wb3BvdmVyIFt0cmlnZ2VyXT1cImd1aWQgKyAnaW1hZ2UnXCIgW2tlZXBDb250ZW50c01vdW50ZWRdPVwidHJ1ZVwiIHRyaWdnZXJBY3Rpb249XCJjbGlja1wiPlxyXG4gICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICA8aW1hZ2UgW3NyY109XCJzcmNcIj48L2ltYWdlPiAgICAgIFxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2lvbi1wb3BvdmVyPlxyXG59XHJcbkBpZihjb25maWd1cmF0aW9uLm11bHRpcGxlKXtcclxuICA8aW9uLXBvcG92ZXIgW3RyaWdnZXJdPVwiZ3VpZFwiIFtrZWVwQ29udGVudHNNb3VudGVkXT1cInRydWVcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgPGlvbi1jb250ZW50IGNsYXNzPVwicC0wIGJnLXRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgPGlvbi1saXN0PlxyXG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBsc3RGaWxlczsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXg7IGxldCBsID0gJGxhc3QpIHtcclxuICAgICAgICAgICAgPHNlY3Rpb24gKm5nVmFyPVwic3RvcmFnZVNlcnZpY2UuR2V0UHJvZ3Jlc3MoaXRlbSkgYXMgdmFsXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1pdGVtIHN0eWxlPVwiLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudFwiIGxpbmVzPVwie3tsID8gJ25vbmUnIDogJ2Z1bGwnfX1cIiBidXR0b24gW2RldGFpbF09XCJmYWxzZVwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG93bmxvYWRcIiAoY2xpY2spPVwiRG93bmxvYWQoaXRlbSlcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPiBcclxuICAgICAgICAgICAgICAgIEBpZiAoRXh0ZW5zaW9uSXNJbWFnZShpdGVtKSkge1xyXG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gW2lkXT1cImd1aWQgKyAnLScgKyBpICsgJy1uZXN0ZWQtcG9wb3ZlcidcIiBuYW1lPVwiaW1hZ2VcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPiBcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8aW9uLWxhYmVsPnt7U2FuaXRpemUoaXRlbSl9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwidmFsICE9IDBcIiBzbG90PVwiZW5kXCIgY2xhc3M9XCJ0ZXh0LXNtXCI+PGI+e3t2YWwgKiAxMDAgfCBudW1iZXIgOiAnMS4yLTInfX0lPC9iPjwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICAgICAgICA8aW9uLXByb2dyZXNzLWJhciBjbGFzcz1cImgtMCBkZWZhdWx0LXRyYW5zaXRpb25cIiBbbmdDbGFzc109XCJ7J2gtMSc6IHZhbCAhPSAwIH1cIiBbdmFsdWVdPVwidmFsXCI+PC9pb24tcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICAgICAgICAgIDxpb24tcG9wb3ZlciAqbmdJZj1cIkV4dGVuc2lvbklzSW1hZ2UoaXRlbSlcIiBzaWRlPVwiZW5kXCIgYWxpZ25tZW50PVwiY2VudGVyXCIgW3RyaWdnZXJdPVwiZ3VpZCArICctJyArIGkgKyAnLW5lc3RlZC1wb3BvdmVyJ1wiIFtkaXNtaXNzT25TZWxlY3RdPVwidHJ1ZVwiIHRyaWdnZXJBY3Rpb249XCJjbGlja1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbnRlbnQgKm5nVmFyPVwiaXNMb2FkaW5nKGl0ZW0pIGFzIGlzTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZihpc0xvYWRpbmcpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgPGxvYWRpbmcgW2xvYWRpbmddPVwiaXNMb2FkaW5nXCI+PC9sb2FkaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8aW1hZ2UgW2hpZGRlbl09XCJpc0xvYWRpbmdcIiBbc3JjXT1cImFwaVVybCArIGl0ZW1cIj48L2ltYWdlPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2lvbi1wb3BvdmVyPlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2lvbi1saXN0PlxyXG4gICAgICA8L2lvbi1jb250ZW50PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2lvbi1wb3BvdmVyPlxyXG59XHJcbiJdfQ==
@@ -21,6 +21,7 @@ import { InputSelectOptionComponent } from './input-select/input-select-option/i
21
21
  import { InputSelectTemplateDirective } from './input-select/input-select-template.directive';
22
22
  import { InputSelectInternalOptionComponent } from './input-select/input-select-internal-option/input-select-internal-option.component';
23
23
  import { TextTooltipComponent } from "../text-tooltip/text-tooltip.component";
24
+ import { ImageComponent } from '../image/image.component';
24
25
  import * as i0 from "@angular/core";
25
26
  const declare_export = [
26
27
  InputBoolComponent,
@@ -59,7 +60,8 @@ export class InputsModule {
59
60
  LoadingComponent,
60
61
  MaskitoDirective,
61
62
  ScrollingModule,
62
- TextTooltipComponent], exports: [InputBoolComponent,
63
+ TextTooltipComponent,
64
+ ImageComponent], exports: [InputBoolComponent,
63
65
  InputDateComponent,
64
66
  InputDecimalComponent,
65
67
  InputFileComponent,
@@ -78,7 +80,8 @@ export class InputsModule {
78
80
  FormsModule,
79
81
  LoadingComponent,
80
82
  ScrollingModule,
81
- TextTooltipComponent] }); }
83
+ TextTooltipComponent,
84
+ ImageComponent] }); }
82
85
  }
83
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputsModule, decorators: [{
84
87
  type: NgModule,
@@ -95,7 +98,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
95
98
  MaskitoDirective,
96
99
  ScrollingModule,
97
100
  TextTooltipComponent,
101
+ ImageComponent
98
102
  ],
99
103
  }]
100
104
  }] });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFHLE1BQU0seUNBQXlDLENBQUM7QUFFakYsT0FBTyxFQUFFLGtCQUFrQixFQUFPLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFakcsT0FBTyxFQUFFLGdCQUFnQixFQUFRLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFJLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFJLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFHLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFLLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFHLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDOUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDOUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDeEksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBQzlFLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQix1QkFBdUI7SUFFdkIsb0JBQW9CO0lBQ3BCLDBCQUEwQjtJQUMxQiw0QkFBNEI7SUFFNUIsb0JBQW9CO0lBQ3BCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLHFCQUFxQjtDQUN0QixDQUFBO0FBaUJELE1BQU0sT0FBTyxZQUFZOytHQUFaLFlBQVk7Z0hBQVosWUFBWSxpQkFoQ3ZCLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIscUJBQXFCO1lBQ3JCLGtCQUFrQjtZQUNsQix1QkFBdUI7WUFFdkIsb0JBQW9CO1lBQ3BCLDBCQUEwQjtZQUMxQiw0QkFBNEI7WUFFNUIsb0JBQW9CO1lBQ3BCLHNCQUFzQjtZQUN0QixxQkFBcUI7WUFDckIsbUJBQW1CO1lBQ25CLHFCQUFxQixFQUljLGtDQUFrQyxhQUduRSxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLG9CQUFvQixhQTdCdEIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixxQkFBcUI7WUFDckIsa0JBQWtCO1lBQ2xCLHVCQUF1QjtZQUV2QixvQkFBb0I7WUFDcEIsMEJBQTBCO1lBQzFCLDRCQUE0QjtZQUU1QixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIscUJBQXFCO2dIQWtCVixZQUFZLFlBWHJCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFdBQVc7WUFFWCxnQkFBZ0I7WUFFaEIsZUFBZTtZQUNmLG9CQUFvQjs7NEZBR1gsWUFBWTtrQkFmeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBRSxHQUFHLGNBQWMsRUFBRSxrQ0FBa0MsQ0FBRTtvQkFDdkUsT0FBTyxFQUFPLENBQUUsR0FBRyxjQUFjLENBQUU7b0JBQ25DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2Ysb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnOyBcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXNraXRvRGlyZWN0aXZlIH0gZnJvbSAnQG1hc2tpdG8vYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBOZ1ZhckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbmctdmFyLmRpcmVjdGl2ZSc7XHJcblxyXG5pbXBvcnQgeyBJbnB1dEJvb2xDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWJvb2wvaW5wdXQtYm9vbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dERhdGVDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgSW5wdXREZWNpbWFsQ29tcG9uZW50ICB9IGZyb20gJy4vaW5wdXQtZGVjaW1hbC9pbnB1dC1kZWNpbWFsLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBJbnB1dEZpbGVDb21wb25lbnQgICAgICB9IGZyb20gJy4vaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvd25sb2FkQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1maWxlL2Rvd25sb2FkLWJ1dHRvbi9kb3dubG9hZC1idXR0b24uY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IExvYWRpbmdDb21wb25lbnQgICAgICAgfSBmcm9tICcuLi9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRTZWxlY3RDb21wb25lbnQgICB9IGZyb20gJy4vaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFN0cmluZ0NvbXBvbmVudCAgIH0gZnJvbSAnLi9pbnB1dC1zdHJpbmcvaW5wdXQtc3RyaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0VGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LXRleHRhcmVhL2lucHV0LXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0TG9hZGluZ0NvbXBvbmVudCAgfSBmcm9tICcuL2lucHV0LWxvYWRpbmcvaW5wdXQtbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dENvbG9yQ29tcG9uZW50ICAgIH0gZnJvbSAnLi9pbnB1dC1jb2xvci9pbnB1dC1jb2xvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dENwZkNucGpDb21wb25lbnQgIH0gZnJvbSAnLi9pbnB1dC1jcGYtY25wai9pbnB1dC1jcGYtY25wai5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC1vcHRpb24vaW5wdXQtc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFNlbGVjdFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9pbnB1dC1zZWxlY3QvaW5wdXQtc2VsZWN0LXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IElucHV0U2VsZWN0SW50ZXJuYWxPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QtaW50ZXJuYWwtb3B0aW9uL2lucHV0LXNlbGVjdC1pbnRlcm5hbC1vcHRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dFRvb2x0aXBDb21wb25lbnQgfSBmcm9tIFwiLi4vdGV4dC10b29sdGlwL3RleHQtdG9vbHRpcC5jb21wb25lbnRcIjtcclxuY29uc3QgZGVjbGFyZV9leHBvcnQgPSBbXHJcbiAgSW5wdXRCb29sQ29tcG9uZW50ICAgICAsIFxyXG4gIElucHV0RGF0ZUNvbXBvbmVudCAgICAgLCBcclxuICBJbnB1dERlY2ltYWxDb21wb25lbnQgICwgXHJcbiAgSW5wdXRGaWxlQ29tcG9uZW50ICAgICAsIFxyXG4gIERvd25sb2FkQnV0dG9uQ29tcG9uZW50LCBcclxuXHJcbiAgSW5wdXRTZWxlY3RDb21wb25lbnQgICAgICAgICxcclxuICBJbnB1dFNlbGVjdE9wdGlvbkNvbXBvbmVudCAgLCBcclxuICBJbnB1dFNlbGVjdFRlbXBsYXRlRGlyZWN0aXZlLFxyXG5cclxuICBJbnB1dFN0cmluZ0NvbXBvbmVudCAgLCBcclxuICBJbnB1dFRleHRhcmVhQ29tcG9uZW50LCBcclxuICBJbnB1dExvYWRpbmdDb21wb25lbnQgLFxyXG4gIElucHV0Q29sb3JDb21wb25lbnQgICAsXHJcbiAgSW5wdXRDcGZDbnBqQ29tcG9uZW50XHJcbl1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbIC4uLmRlY2xhcmVfZXhwb3J0LCBJbnB1dFNlbGVjdEludGVybmFsT3B0aW9uQ29tcG9uZW50IF0sXHJcbiAgZXhwb3J0cyAgICAgOiBbIC4uLmRlY2xhcmVfZXhwb3J0IF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW9uaWNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBOZ1ZhckRpcmVjdGl2ZSxcclxuICAgIExvYWRpbmdDb21wb25lbnQsXHJcbiAgICBNYXNraXRvRGlyZWN0aXZlLFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxyXG4gICAgVGV4dFRvb2x0aXBDb21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0c01vZHVsZSB7IH1cclxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFHLE1BQU0seUNBQXlDLENBQUM7QUFFakYsT0FBTyxFQUFFLGtCQUFrQixFQUFPLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFakcsT0FBTyxFQUFFLGdCQUFnQixFQUFRLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFJLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFJLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFHLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFLLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFHLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDOUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDOUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDeEksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUMxRCxNQUFNLGNBQWMsR0FBRztJQUNyQixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixrQkFBa0I7SUFDbEIsdUJBQXVCO0lBRXZCLG9CQUFvQjtJQUNwQiwwQkFBMEI7SUFDMUIsNEJBQTRCO0lBRTVCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLG1CQUFtQjtJQUNuQixxQkFBcUI7Q0FDdEIsQ0FBQTtBQWtCRCxNQUFNLE9BQU8sWUFBWTsrR0FBWixZQUFZO2dIQUFaLFlBQVksaUJBakN2QixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBRXZCLG9CQUFvQjtZQUNwQiwwQkFBMEI7WUFDMUIsNEJBQTRCO1lBRTVCLG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixxQkFBcUIsRUFJYyxrQ0FBa0MsYUFHbkUsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsY0FBYyxhQTlCaEIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixxQkFBcUI7WUFDckIsa0JBQWtCO1lBQ2xCLHVCQUF1QjtZQUV2QixvQkFBb0I7WUFDcEIsMEJBQTBCO1lBQzFCLDRCQUE0QjtZQUU1QixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIscUJBQXFCO2dIQW1CVixZQUFZLFlBWnJCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFdBQVc7WUFFWCxnQkFBZ0I7WUFFaEIsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQixjQUFjOzs0RkFHTCxZQUFZO2tCQWhCeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBRSxHQUFHLGNBQWMsRUFBRSxrQ0FBa0MsQ0FBRTtvQkFDdkUsT0FBTyxFQUFPLENBQUUsR0FBRyxjQUFjLENBQUU7b0JBQ25DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixjQUFjO3FCQUNmO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7IFxyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hc2tpdG9EaXJlY3RpdmUgfSBmcm9tICdAbWFza2l0by9hbmd1bGFyJztcclxuXHJcbmltcG9ydCB7IE5nVmFyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZy12YXIuZGlyZWN0aXZlJztcclxuXHJcbmltcG9ydCB7IElucHV0Qm9vbENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtYm9vbC9pbnB1dC1ib29sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0RGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBJbnB1dERlY2ltYWxDb21wb25lbnQgIH0gZnJvbSAnLi9pbnB1dC1kZWNpbWFsL2lucHV0LWRlY2ltYWwuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IElucHV0RmlsZUNvbXBvbmVudCAgICAgIH0gZnJvbSAnLi9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRG93bmxvYWRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2lucHV0LWZpbGUvZG93bmxvYWQtYnV0dG9uL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCAgICAgICB9IGZyb20gJy4uL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFNlbGVjdENvbXBvbmVudCAgIH0gZnJvbSAnLi9pbnB1dC1zZWxlY3QvaW5wdXQtc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0U3RyaW5nQ29tcG9uZW50ICAgfSBmcm9tICcuL2lucHV0LXN0cmluZy9pbnB1dC1zdHJpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtdGV4dGFyZWEvaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRMb2FkaW5nQ29tcG9uZW50ICB9IGZyb20gJy4vaW5wdXQtbG9hZGluZy9pbnB1dC1sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0Q29sb3JDb21wb25lbnQgICAgfSBmcm9tICcuL2lucHV0LWNvbG9yL2lucHV0LWNvbG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0Q3BmQ25wakNvbXBvbmVudCAgfSBmcm9tICcuL2lucHV0LWNwZi1jbnBqL2lucHV0LWNwZi1jbnBqLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0U2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1zZWxlY3QvaW5wdXQtc2VsZWN0LW9wdGlvbi9pbnB1dC1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0U2VsZWN0VGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QtdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW5wdXRTZWxlY3RJbnRlcm5hbE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC1pbnRlcm5hbC1vcHRpb24vaW5wdXQtc2VsZWN0LWludGVybmFsLW9wdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0VG9vbHRpcENvbXBvbmVudCB9IGZyb20gXCIuLi90ZXh0LXRvb2x0aXAvdGV4dC10b29sdGlwLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XHJcbmNvbnN0IGRlY2xhcmVfZXhwb3J0ID0gW1xyXG4gIElucHV0Qm9vbENvbXBvbmVudCAgICAgLCBcclxuICBJbnB1dERhdGVDb21wb25lbnQgICAgICwgXHJcbiAgSW5wdXREZWNpbWFsQ29tcG9uZW50ICAsIFxyXG4gIElucHV0RmlsZUNvbXBvbmVudCAgICAgLCBcclxuICBEb3dubG9hZEJ1dHRvbkNvbXBvbmVudCwgXHJcblxyXG4gIElucHV0U2VsZWN0Q29tcG9uZW50ICAgICAgICAsXHJcbiAgSW5wdXRTZWxlY3RPcHRpb25Db21wb25lbnQgICwgXHJcbiAgSW5wdXRTZWxlY3RUZW1wbGF0ZURpcmVjdGl2ZSxcclxuXHJcbiAgSW5wdXRTdHJpbmdDb21wb25lbnQgICwgXHJcbiAgSW5wdXRUZXh0YXJlYUNvbXBvbmVudCwgXHJcbiAgSW5wdXRMb2FkaW5nQ29tcG9uZW50ICxcclxuICBJbnB1dENvbG9yQ29tcG9uZW50ICAgLFxyXG4gIElucHV0Q3BmQ25wakNvbXBvbmVudFxyXG5dXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogWyAuLi5kZWNsYXJlX2V4cG9ydCwgSW5wdXRTZWxlY3RJbnRlcm5hbE9wdGlvbkNvbXBvbmVudCBdLFxyXG4gIGV4cG9ydHMgICAgIDogWyAuLi5kZWNsYXJlX2V4cG9ydCBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIElvbmljTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTmdWYXJEaXJlY3RpdmUsXHJcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgTWFza2l0b0RpcmVjdGl2ZSxcclxuICAgIFNjcm9sbGluZ01vZHVsZSxcclxuICAgIFRleHRUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VDb21wb25lbnRcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRzTW9kdWxlIHsgfVxyXG4iXX0=
@@ -46,11 +46,11 @@ export class MainContentComponent {
46
46
  }
47
47
  }
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainContentComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MainContentComponent, isStandalone: true, selector: "main-content", inputs: { colapsed: "colapsed", drawerComponent: "drawerComponent" }, viewQueries: [{ propertyName: "FullScreenConteiner", first: true, predicate: ["target"], descendants: true }], ngImport: i0, template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex flex-row-reverse items-center justify-start gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n \r\n @if (!fullScreen) {\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square portrait:hidden\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n <ion-popover #userPopover [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"size-full\">\r\n <div class=\"w-full px-3 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n &#64;{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full px-3 py-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-10 shrink-0\" size=\"small\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 bg-light\">\r\n <div class=\"size-full relative rounded-2xl bg-primary/30 content-shadow overflow-hidden\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--color),0 6px 10px -4px var(--color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MainContentComponent, isStandalone: true, selector: "main-content", inputs: { colapsed: "colapsed", drawerComponent: "drawerComponent" }, viewQueries: [{ propertyName: "FullScreenConteiner", first: true, predicate: ["target"], descendants: true }], ngImport: i0, template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex flex-row-reverse items-center justify-start gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n \r\n @if (!fullScreen) {\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n <ion-popover #userPopover [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"size-full\">\r\n <div class=\"w-full px-3 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n &#64;{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full px-3 py-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-10 shrink-0\" size=\"small\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square portrait:hidden\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 bg-light\">\r\n <div class=\"size-full relative rounded-2xl bg-primary/30 content-shadow overflow-hidden\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--color),0 6px 10px -4px var(--color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainContentComponent, decorators: [{
52
52
  type: Component,
53
- args: [{ standalone: true, imports: [CommonModule, IonicModule, RouterLinkWithHref], selector: 'main-content', template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex flex-row-reverse items-center justify-start gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n \r\n @if (!fullScreen) {\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square portrait:hidden\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n <ion-popover #userPopover [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"size-full\">\r\n <div class=\"w-full px-3 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n &#64;{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full px-3 py-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-10 shrink-0\" size=\"small\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 bg-light\">\r\n <div class=\"size-full relative rounded-2xl bg-primary/30 content-shadow overflow-hidden\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--color),0 6px 10px -4px var(--color)}\n"] }]
53
+ args: [{ standalone: true, imports: [CommonModule, IonicModule, RouterLinkWithHref], selector: 'main-content', template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex flex-row-reverse items-center justify-start gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n \r\n @if (!fullScreen) {\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n <ion-popover #userPopover [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"size-full\">\r\n <div class=\"w-full px-3 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n &#64;{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full px-3 py-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-10 shrink-0\" size=\"small\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square portrait:hidden\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 bg-light\">\r\n <div class=\"size-full relative rounded-2xl bg-primary/30 content-shadow overflow-hidden\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--color),0 6px 10px -4px var(--color)}\n"] }]
54
54
  }], ctorParameters: () => [{ type: i1.AuthService }], propDecorators: { colapsed: [{
55
55
  type: Input
56
56
  }], drawerComponent: [{
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
59
59
  type: ViewChild,
60
60
  args: ['target']
61
61
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tYWluLWNvbnRlbnQvbWFpbi1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tYWluLWNvbnRlbnQvbWFpbi1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBUzFELE1BQU0sT0FBTyxvQkFBb0I7SUFLL0IsWUFDUyxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUp4QixhQUFRLEdBQVksS0FBSyxDQUFDO0lBSy9CLENBQUM7SUFHTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixJQUFHLFFBQVEsQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLEVBQUMsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFBQSxDQUFDO0lBRUYsVUFBVTtRQUNSLElBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLENBQUM7WUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztZQUVwRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQzthQUFJLENBQUM7WUFDSixRQUFRLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDM0IsQ0FBQztJQUNILENBQUM7K0dBdkNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDZQQ2RqQyxxNUdBNERNLDhPRG5ETyxZQUFZLDRIQUFFLFdBQVcseXlDQUFFLGtCQUFrQjs7NEZBSzdDLG9CQUFvQjtrQkFQaEMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixDQUFFLFlBQ2hELGNBQWM7Z0ZBTWYsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQW1CZSxtQkFBbUI7c0JBQXZDLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBSb3V0ZXJMaW5rV2l0aEhyZWYgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBEcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuLi9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUsIElvbmljTW9kdWxlLCBSb3V0ZXJMaW5rV2l0aEhyZWYgXSxcclxuICBzZWxlY3RvcjogJ21haW4tY29udGVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tY29udGVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWFpbi1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYWluQ29udGVudENvbXBvbmVudCAgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBjb2xhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRyYXdlckNvbXBvbmVudDogRHJhd2VyQ29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBUb2tlbjogYW55O1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5Mb2FkVG9rZW4oKS50aGVuKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5Ub2tlbiA9IHJlcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZ1bGxTY3JlZW4oKTogYm9vbGVhbiB7IFxyXG4gICAgaWYoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQgIT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlOyBcclxuICB9O1xyXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldCcpIEZ1bGxTY3JlZW5Db250ZWluZXI7XHJcbiAgRnVsbFNjcmVlbigpOiB2b2lke1xyXG4gICAgaWYoIXRoaXMuZnVsbFNjcmVlbil7XHJcbiAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLkZ1bGxTY3JlZW5Db250ZWluZXIubmF0aXZlRWxlbWVudDtcclxuICBcclxuICAgICAgaWYgKGVsZW0ucmVxdWVzdEZ1bGxzY3JlZW4pIHtcclxuICAgICAgICBlbGVtLnJlcXVlc3RGdWxsc2NyZWVuKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS5tc1JlcXVlc3RGdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgZWxlbS5tc1JlcXVlc3RGdWxsc2NyZWVuKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS5tb3pSZXF1ZXN0RnVsbFNjcmVlbikge1xyXG4gICAgICAgIGVsZW0ubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTtcclxuICAgICAgfSBlbHNlIGlmIChlbGVtLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgZWxlbS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbigpO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIGZsZXggZmxleC1jb2xcIiBbbmdDbGFzc109XCJ7J2JnLWxpZ2h0LzUwJzogZnVsbFNjcmVlbn1cIiAjdGFyZ2V0PlxyXG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC0xNCByZWxhdGl2ZSBzaHJpbmstMFwiPlxyXG4gICAgPGlvbi1jYXJkIGNsYXNzPVwibS0wIHJvdW5kZWQtbm9uZSBzaXplLWZ1bGwgYm9yZGVyLW5vbmVcIj5cclxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgY2xhc3M9XCJwLTAgcHgtMiBzaXplLWZ1bGwgZmxleFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEvMiBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydFwiPlxyXG4gICAgICAgICAgQGlmICghZnVsbFNjcmVlbikge1xyXG4gICAgICAgICAgICA8aW9uLW1lbnUtYnV0dG9uICBbcm91dGVyTGlua109XCJbJy8nXVwiIFthdXRvSGlkZV09XCJ0cnVlXCI+PC9pb24tbWVudS1idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1zdGFydF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEvMiBoLWZ1bGwgZmxleCBmbGV4LXJvdy1yZXZlcnNlIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGdhcC0yXCI+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1lbmRdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICBcclxuICAgICAgICAgIEBpZiAoIWZ1bGxTY3JlZW4pIHtcclxuICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInVzZXJQb3BvdmVyLnByZXNlbnQoJGV2ZW50KVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwic2l6ZS0xMCBhc3BlY3Qtc3F1YXJlIHBvcnRyYWl0OmhpZGRlblwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBwZXJjYXNlIHRleHQtd2hpdGVcIj57e1Rva2VuID8gVG9rZW4uTm9tZVswXSA6ICcnfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGlvbi1wb3BvdmVyICN1c2VyUG9wb3ZlciBbZGlzbWlzc09uU2VsZWN0XT1cInRydWVcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHB4LTMgZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXplLTEwIHNocmluay0wIGFzcGVjdC1zcXVhcmUgcm91bmRlZC0yeGwgdGV4dC1zbSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBkZWZhdWx0LXRyYW5zaXRpb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cHBlcmNhc2UgdGV4dC13aGl0ZVwiPnt7VG9rZW4gPyBUb2tlbi5Ob21lWzBdIDogJyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3cgbWluLXctMTAgcC0yIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlbiBibG9jayBkZWZhdWx0LXRyYW5zaXRpb25cIiBbbmdDbGFzc109XCJ7J29wYWNpdHktMCB3LTAnOiBjb2xhcHNlZH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tUb2tlbiA/IFRva2VuLk5vbWUgOiAnJ319PC9zcGFuPiA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tdGV4dCBjb2xvcj1cInNlY29uZGFyeVwiIGNsYXNzPVwidGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICYjNjQ7e3tUb2tlbiA/IFRva2VuLkFwZWxpZG8gOiAnJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBjbGFzcz1cInNpemUtZnVsbFwiIHNlbGVjdD1cIltzbG90PXVzZXItcG9wb3Zlcl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBweC0zIHB5LTIgdHJhbnNsdWNpZC1ib3JkZXIgIWJvcmRlci14LTAgIWJvcmRlci1iLTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLXRleHQ+IExvZyBPdXQgPC9pb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhdXRoU2VydmljZS5Mb2dnb3V0KClcIiBjbGFzcz1cInNpemUtMTAgc2hyaW5rLTBcIiBzaXplPVwic21hbGxcIiBjb2xvcj1cImRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJleGl0LW91dGxpbmVcIj48L2lvbi1pY29uPiBcclxuICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb250ZW50PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvaW9uLXBvcG92ZXI+XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIkZ1bGxTY3JlZW4oKVwiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJzaXplLTEwIGFzcGVjdC1zcXVhcmVcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiZXhwYW5kXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxyXG4gICAgPC9pb24tY2FyZD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIHJlbGF0aXZlIHAtMiBiZy1saWdodFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCByZWxhdGl2ZSByb3VuZGVkLTJ4bCBiZy1wcmltYXJ5LzMwIGNvbnRlbnQtc2hhZG93IG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tYWluLWNvbnRlbnQvbWFpbi1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tYWluLWNvbnRlbnQvbWFpbi1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBUzFELE1BQU0sT0FBTyxvQkFBb0I7SUFLL0IsWUFDUyxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUp4QixhQUFRLEdBQVksS0FBSyxDQUFDO0lBSy9CLENBQUM7SUFHTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixJQUFHLFFBQVEsQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLEVBQUMsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFBQSxDQUFDO0lBRUYsVUFBVTtRQUNSLElBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLENBQUM7WUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztZQUVwRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQzthQUFJLENBQUM7WUFDSixRQUFRLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDM0IsQ0FBQztJQUNILENBQUM7K0dBdkNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDZQQ2RqQyxzNUdBNERNLDhPRG5ETyxZQUFZLDRIQUFFLFdBQVcseXlDQUFFLGtCQUFrQjs7NEZBSzdDLG9CQUFvQjtrQkFQaEMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixDQUFFLFlBQ2hELGNBQWM7Z0ZBTWYsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQW1CZSxtQkFBbUI7c0JBQXZDLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBSb3V0ZXJMaW5rV2l0aEhyZWYgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBEcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuLi9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUsIElvbmljTW9kdWxlLCBSb3V0ZXJMaW5rV2l0aEhyZWYgXSxcclxuICBzZWxlY3RvcjogJ21haW4tY29udGVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tY29udGVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWFpbi1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYWluQ29udGVudENvbXBvbmVudCAgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBjb2xhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRyYXdlckNvbXBvbmVudDogRHJhd2VyQ29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBUb2tlbjogYW55O1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5Mb2FkVG9rZW4oKS50aGVuKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5Ub2tlbiA9IHJlcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZ1bGxTY3JlZW4oKTogYm9vbGVhbiB7IFxyXG4gICAgaWYoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQgIT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlOyBcclxuICB9O1xyXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldCcpIEZ1bGxTY3JlZW5Db250ZWluZXI7XHJcbiAgRnVsbFNjcmVlbigpOiB2b2lke1xyXG4gICAgaWYoIXRoaXMuZnVsbFNjcmVlbil7XHJcbiAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLkZ1bGxTY3JlZW5Db250ZWluZXIubmF0aXZlRWxlbWVudDtcclxuICBcclxuICAgICAgaWYgKGVsZW0ucmVxdWVzdEZ1bGxzY3JlZW4pIHtcclxuICAgICAgICBlbGVtLnJlcXVlc3RGdWxsc2NyZWVuKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS5tc1JlcXVlc3RGdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgZWxlbS5tc1JlcXVlc3RGdWxsc2NyZWVuKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS5tb3pSZXF1ZXN0RnVsbFNjcmVlbikge1xyXG4gICAgICAgIGVsZW0ubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTtcclxuICAgICAgfSBlbHNlIGlmIChlbGVtLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgZWxlbS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbigpO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIGZsZXggZmxleC1jb2xcIiBbbmdDbGFzc109XCJ7J2JnLWxpZ2h0LzUwJzogZnVsbFNjcmVlbn1cIiAjdGFyZ2V0PlxyXG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC0xNCByZWxhdGl2ZSBzaHJpbmstMFwiPlxyXG4gICAgPGlvbi1jYXJkIGNsYXNzPVwibS0wIHJvdW5kZWQtbm9uZSBzaXplLWZ1bGwgYm9yZGVyLW5vbmVcIj5cclxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgY2xhc3M9XCJwLTAgcHgtMiBzaXplLWZ1bGwgZmxleFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEvMiBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydFwiPlxyXG4gICAgICAgICAgQGlmICghZnVsbFNjcmVlbikge1xyXG4gICAgICAgICAgICA8aW9uLW1lbnUtYnV0dG9uICBbcm91dGVyTGlua109XCJbJy8nXVwiIFthdXRvSGlkZV09XCJ0cnVlXCI+PC9pb24tbWVudS1idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1zdGFydF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEvMiBoLWZ1bGwgZmxleCBmbGV4LXJvdy1yZXZlcnNlIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGdhcC0yXCI+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1lbmRdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICBcclxuICAgICAgICAgIEBpZiAoIWZ1bGxTY3JlZW4pIHtcclxuICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInVzZXJQb3BvdmVyLnByZXNlbnQoJGV2ZW50KVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwic2l6ZS0xMCBhc3BlY3Qtc3F1YXJlXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cHBlcmNhc2UgdGV4dC13aGl0ZVwiPnt7VG9rZW4gPyBUb2tlbi5Ob21lWzBdIDogJyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8aW9uLXBvcG92ZXIgI3VzZXJQb3BvdmVyIFtkaXNtaXNzT25TZWxlY3RdPVwidHJ1ZVwiIHRyaWdnZXJBY3Rpb249XCJjbGlja1wiPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxpb24tY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgcHgtMyBmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpemUtMTAgc2hyaW5rLTAgYXNwZWN0LXNxdWFyZSByb3VuZGVkLTJ4bCB0ZXh0LXNtIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGRlZmF1bHQtdHJhbnNpdGlvblwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwcGVyY2FzZSB0ZXh0LXdoaXRlXCI+e3tUb2tlbiA/IFRva2VuLk5vbWVbMF0gOiAnJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdyBtaW4tdy0xMCBwLTIganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHdoaXRlc3BhY2Utbm93cmFwIHRleHQtZWxsaXBzaXMgb3ZlcmZsb3ctaGlkZGVuIGJsb2NrIGRlZmF1bHQtdHJhbnNpdGlvblwiIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0wIHctMCc6IGNvbGFwc2VkfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e1Rva2VuID8gVG9rZW4uTm9tZSA6ICcnfX08L3NwYW4+IDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJ0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJiM2NDt7e1Rva2VuID8gVG9rZW4uQXBlbGlkbyA6ICcnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IGNsYXNzPVwic2l6ZS1mdWxsXCIgc2VsZWN0PVwiW3Nsb3Q9dXNlci1wb3BvdmVyXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHB4LTMgcHktMiB0cmFuc2x1Y2lkLWJvcmRlciAhYm9yZGVyLXgtMCAhYm9yZGVyLWItMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24tdGV4dD4gTG9nIE91dCA8L2lvbi10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImF1dGhTZXJ2aWNlLkxvZ2dvdXQoKVwiIGNsYXNzPVwic2l6ZS0xMCBzaHJpbmstMFwiIHNpemU9XCJzbWFsbFwiIGNvbG9yPVwiZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImV4aXQtb3V0bGluZVwiPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9pb24tcG9wb3Zlcj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiRnVsbFNjcmVlbigpXCIgZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cImRhcmtcIiBzaXplPVwic21hbGxcIiBjbGFzcz1cInNpemUtMTAgYXNwZWN0LXNxdWFyZSAgcG9ydHJhaXQ6aGlkZGVuXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImV4cGFuZFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICAgIDwvaW9uLWNhcmQ+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCByZWxhdGl2ZSBwLTIgYmctbGlnaHRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGwgcmVsYXRpdmUgcm91bmRlZC0yeGwgYmctcHJpbWFyeS8zMCBjb250ZW50LXNoYWRvdyBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -3,7 +3,6 @@ import { BehaviorSubject } from 'rxjs';
3
3
  import { Injectable } from '@angular/core';
4
4
  import { ApiUrlProviderService } from './api-url-provider.service';
5
5
  import { GenericService } from '../generics.service';
6
- import { Utils } from '../utils.service';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@angular/common/http";
9
8
  import * as i2 from "./api-url-provider.service";
@@ -39,7 +38,7 @@ export class StorageService {
39
38
  requestProgess.next(download.progress);
40
39
  }
41
40
  else if (event.type === HttpEventType.Response) {
42
- Utils.DownloadFile(event, download.file);
41
+ DownloadFile(event, download.file);
43
42
  this.currentlyDownloading.splice(this.currentlyDownloading.indexOf(download), 1);
44
43
  requestProgess.complete();
45
44
  }
@@ -112,4 +111,18 @@ export class Download {
112
111
  this.progress = 0.00001;
113
112
  }
114
113
  }
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQU16QyxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUNRLElBQWlCLEVBQ2pCLHFCQUE0QyxFQUM1QyxjQUE4QjtRQUY5QixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBRzlCLHlCQUFvQixHQUFlLEVBQUUsQ0FBQztJQUYxQyxDQUFDO0lBSUUsV0FBVyxDQUFDLElBQVk7UUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUE7UUFDcEUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQVksRUFBRSxNQUFZLEVBQUUsT0FBZ0IsS0FBSztRQUNwRSxJQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFD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O2dCQUNwQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsWUFBWSxFQUFFLE1BQU07YUFDckIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBN0ZVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQWlHRCxNQUFNLE9BQU8sUUFBUTtJQUduQixZQUFtQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUQvQixhQUFRLEdBQWlCLE9BQU8sQ0FBQztJQUNBLENBQUM7Q0FDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMuc2VydmljZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICBwcml2YXRlIGh0dHAgOiBIdHRwQ2xpZW50LFxyXG4gIHByaXZhdGUgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlOiBBcGlVcmxQcm92aWRlclNlcnZpY2UsXHJcbiAgcHJpdmF0ZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwcml2YXRlIGN1cnJlbnRseURvd25sb2FkaW5nOiBEb3dubG9hZFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBHZXRQcm9ncmVzcyhmaWxlOiBzdHJpbmcpOiBudW1iZXJ7XHJcbiAgICBjb25zdCBEb3dubG9hZCA9IHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKVxyXG4gICAgcmV0dXJuIERvd25sb2FkID8gRG93bmxvYWQucHJvZ3Jlc3MgOiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFN0YXJ0RG93bmxvYWQoZmlsZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSk6IERvd25sb2FkIHtcclxuICAgIGlmKCF0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmZpbmQocCA9PiBwLmZpbGUgPT0gZmlsZSkpe1xyXG4gICAgICBjb25zdCBkb3dubG9hZCA9IG5ldyBEb3dubG9hZChmaWxlKTtcclxuICAgICAgdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5wdXNoKGRvd25sb2FkKTtcclxuICAgICAgdGhpcy5IYW5kbGVEb3dubG9hZChkb3dubG9hZCwgcGFyYW1zLCBwb3N0KTtcclxuICAgICAgcmV0dXJuIGRvd25sb2FkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgSGFuZGxlRG93bmxvYWQoZG93bmxvYWQ6IERvd25sb2FkLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSl7XHJcbiAgICB2YXIgcmVxdWVzdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5HZXRGaWxlKGRvd25sb2FkLmZpbGUsIHBhcmFtcywgcG9zdCk7XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdFByb2dlc3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgICBkb3dubG9hZC5yZXF1ZXN0UHJvZ2VzcyA9IHJlcXVlc3RQcm9nZXNzO1xyXG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzKSB7IFxyXG4gICAgICAgICAgZG93bmxvYWQucHJvZ3Jlc3MgPSBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbDsgXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5uZXh0KGRvd25sb2FkLnByb2dyZXNzKTtcclxuICAgICAgICB9IGVsc2UgXHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgIFV0aWxzLkRvd25sb2FkRmlsZShldmVudCwgZG93bmxvYWQuZmlsZSk7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLnNwbGljZSh0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmluZGV4T2YoZG93bmxvYWQpLCAxKTtcclxuICAgICAgICAgIHJlcXVlc3RQcm9nZXNzLmNvbXBsZXRlKCk7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihldmVudC5zdGF0dXMgPT0gNDA0KXtcclxuICAgICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0KFwiQXJxdWl2byBuw6NvIGVuY29udHJhZG8gLyBVcmwgaW52w6FsaWRhXCIpXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5lcnJvcihldmVudCk7IFxyXG4gICAgICAgICAgcmVxdWVzdFByb2dlc3MuY29tcGxldGUoKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuc3BsaWNlKHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuaW5kZXhPZihkb3dubG9hZCksIDEpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIFNhbml0aXplRmlsZU5hbWUodik6IHN0cmluZ3tcclxuICAgIHRyeXtcclxuICAgICAgdmFyIGZpbGVuYW1lRW5kOiBzdHJpbmcgID0gdi5zcGxpdCgnLycpW3Yuc3BsaXQoJy8nKS5sZW5ndGggLSAxXVxyXG4gICAgICBcclxuICAgICAgaWYoZmlsZW5hbWVFbmQuc3BsaXQoJy4nKS5sZW5ndGggPD0gMil7XHJcbiAgICAgICAgcmV0dXJuIGZpbGVuYW1lRW5kO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB2YXIgbHN0ID0gZmlsZW5hbWVFbmQuc3BsaXQoJy4nKTtcclxuICAgICAgICBsc3RbMF0gPSAnJztcclxuICAgICAgICByZXR1cm4gbHN0LmpvaW4oJy4nKS5yZXBsYWNlKCcuJywgJycpO1xyXG4gICAgICB9XHJcbiAgICB9Y2F0Y2h7XHJcbiAgICAgIHJldHVybiB2O1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBHZXRGaWxlKGZpbGVVcmw6IHN0cmluZywgcGFyYW1zPzogYW55LCBwb3N0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdmFyIHVybDogc3RyaW5nO1xyXG4gICAgaWYoZmlsZVVybFswXSA9PSAnLycpeyBcclxuICAgICAgdXJsID0gZmlsZVVybC5zbGljZSgxLCBmaWxlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHVybCA9IGAke3RoaXMuYXBpVXJsUHJvdmlkZXJTZXJ2aWNlLmFwaVVybH0ke2ZpbGVVcmx9YDtcclxuICAgIH1cclxuICAgIHVybCA9IGVuY29kZVVSSSh1cmwpLnJlcGxhY2UoLyMvZywgJyUyMycpXHJcblxyXG4gICAgaWYoIXBvc3Qpe1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcclxuICAgICAgICBwYXJhbXM6IHBhcmFtc1xyXG4gICAgICB9KTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBwYXJhbXMsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEb3dubG9hZCB7XHJcbiAgcmVxdWVzdFByb2dlc3M6IE9ic2VydmFibGU8YW55PjtcclxuICBwcm9ncmVzcyAgICAgIDogbnVtYmVyID0gMC4wMDAwMTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlsZTogc3RyaW5nKXt9XHJcbn0iXX0=
114
+ function DownloadFile(data, fileUrl) {
115
+ const downloadedFile = new Blob([data.body], { type: data.body.type });
116
+ var fileURL = URL.createObjectURL(downloadedFile);
117
+ const linkElement = document.createElement("a");
118
+ linkElement.setAttribute("href", fileURL);
119
+ linkElement.setAttribute("target", "_blank");
120
+ linkElement.setAttribute("download", StorageService.SanitizeFileName(fileUrl));
121
+ let me = new MouseEvent("click", {
122
+ view: window,
123
+ bubbles: true,
124
+ cancelable: false,
125
+ });
126
+ linkElement.dispatchEvent(me);
127
+ }
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT3JELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQ1EsSUFBaUIsRUFDakIscUJBQTRDLEVBQzVDLGNBQThCO1FBRjlCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFHOUIseUJBQW9CLEdBQWUsRUFBRSxDQUFDO0lBRjFDLENBQUM7SUFJRSxXQUFXLENBQUMsSUFBWTtRQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQTtRQUNwRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBWSxFQUFFLE1BQVksRUFBRSxPQUFnQixLQUFLO1FBQ3BFLElBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElB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eXBlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMuc2VydmljZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICBwcml2YXRlIGh0dHAgOiBIdHRwQ2xpZW50LFxyXG4gIHByaXZhdGUgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlOiBBcGlVcmxQcm92aWRlclNlcnZpY2UsXHJcbiAgcHJpdmF0ZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwcml2YXRlIGN1cnJlbnRseURvd25sb2FkaW5nOiBEb3dubG9hZFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBHZXRQcm9ncmVzcyhmaWxlOiBzdHJpbmcpOiBudW1iZXJ7XHJcbiAgICBjb25zdCBEb3dubG9hZCA9IHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKVxyXG4gICAgcmV0dXJuIERvd25sb2FkID8gRG93bmxvYWQucHJvZ3Jlc3MgOiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFN0YXJ0RG93bmxvYWQoZmlsZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSk6IERvd25sb2FkIHtcclxuICAgIGlmKCF0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmZpbmQocCA9PiBwLmZpbGUgPT0gZmlsZSkpe1xyXG4gICAgICBjb25zdCBkb3dubG9hZCA9IG5ldyBEb3dubG9hZChmaWxlKTtcclxuICAgICAgdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5wdXNoKGRvd25sb2FkKTtcclxuICAgICAgdGhpcy5IYW5kbGVEb3dubG9hZChkb3dubG9hZCwgcGFyYW1zLCBwb3N0KTtcclxuICAgICAgcmV0dXJuIGRvd25sb2FkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgSGFuZGxlRG93bmxvYWQoZG93bmxvYWQ6IERvd25sb2FkLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSl7XHJcbiAgICB2YXIgcmVxdWVzdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5HZXRGaWxlKGRvd25sb2FkLmZpbGUsIHBhcmFtcywgcG9zdCk7XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdFByb2dlc3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgICBkb3dubG9hZC5yZXF1ZXN0UHJvZ2VzcyA9IHJlcXVlc3RQcm9nZXNzO1xyXG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzKSB7IFxyXG4gICAgICAgICAgZG93bmxvYWQucHJvZ3Jlc3MgPSBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbDsgXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5uZXh0KGRvd25sb2FkLnByb2dyZXNzKTtcclxuICAgICAgICB9IGVsc2UgXHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgIERvd25sb2FkRmlsZShldmVudCwgZG93bmxvYWQuZmlsZSk7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLnNwbGljZSh0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmluZGV4T2YoZG93bmxvYWQpLCAxKTtcclxuICAgICAgICAgIHJlcXVlc3RQcm9nZXNzLmNvbXBsZXRlKCk7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihldmVudC5zdGF0dXMgPT0gNDA0KXtcclxuICAgICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0KFwiQXJxdWl2byBuw6NvIGVuY29udHJhZG8gLyBVcmwgaW52w6FsaWRhXCIpXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5lcnJvcihldmVudCk7IFxyXG4gICAgICAgICAgcmVxdWVzdFByb2dlc3MuY29tcGxldGUoKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuc3BsaWNlKHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuaW5kZXhPZihkb3dubG9hZCksIDEpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIFNhbml0aXplRmlsZU5hbWUodik6IHN0cmluZ3tcclxuICAgIHRyeXtcclxuICAgICAgdmFyIGZpbGVuYW1lRW5kOiBzdHJpbmcgID0gdi5zcGxpdCgnLycpW3Yuc3BsaXQoJy8nKS5sZW5ndGggLSAxXVxyXG4gICAgICBcclxuICAgICAgaWYoZmlsZW5hbWVFbmQuc3BsaXQoJy4nKS5sZW5ndGggPD0gMil7XHJcbiAgICAgICAgcmV0dXJuIGZpbGVuYW1lRW5kO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB2YXIgbHN0ID0gZmlsZW5hbWVFbmQuc3BsaXQoJy4nKTtcclxuICAgICAgICBsc3RbMF0gPSAnJztcclxuICAgICAgICByZXR1cm4gbHN0LmpvaW4oJy4nKS5yZXBsYWNlKCcuJywgJycpO1xyXG4gICAgICB9XHJcbiAgICB9Y2F0Y2h7XHJcbiAgICAgIHJldHVybiB2O1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBHZXRGaWxlKGZpbGVVcmw6IHN0cmluZywgcGFyYW1zPzogYW55LCBwb3N0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdmFyIHVybDogc3RyaW5nO1xyXG4gICAgaWYoZmlsZVVybFswXSA9PSAnLycpeyBcclxuICAgICAgdXJsID0gZmlsZVVybC5zbGljZSgxLCBmaWxlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHVybCA9IGAke3RoaXMuYXBpVXJsUHJvdmlkZXJTZXJ2aWNlLmFwaVVybH0ke2ZpbGVVcmx9YDtcclxuICAgIH1cclxuICAgIHVybCA9IGVuY29kZVVSSSh1cmwpLnJlcGxhY2UoLyMvZywgJyUyMycpXHJcblxyXG4gICAgaWYoIXBvc3Qpe1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcclxuICAgICAgICBwYXJhbXM6IHBhcmFtc1xyXG4gICAgICB9KTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBwYXJhbXMsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEb3dubG9hZCB7XHJcbiAgcmVxdWVzdFByb2dlc3M6IE9ic2VydmFibGU8YW55PjtcclxuICBwcm9ncmVzcyAgICAgIDogbnVtYmVyID0gMC4wMDAwMTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlsZTogc3RyaW5nKXt9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIERvd25sb2FkRmlsZShkYXRhOiBIdHRwUmVzcG9uc2U8QmxvYj4sIGZpbGVVcmwpIHtcclxuICBjb25zdCBkb3dubG9hZGVkRmlsZSA9IG5ldyBCbG9iKFtkYXRhLmJvZHldLCB7IHR5cGU6IGRhdGEuYm9keS50eXBlIH0pO1xyXG5cclxuICB2YXIgZmlsZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZG93bmxvYWRlZEZpbGUpO1xyXG4gIGNvbnN0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCBmaWxlVVJMKTtcclxuICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0YXJnZXRcIiwgXCJfYmxhbmtcIik7XHJcbiAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiZG93bmxvYWRcIiwgU3RvcmFnZVNlcnZpY2UuU2FuaXRpemVGaWxlTmFtZShmaWxlVXJsKSk7XHJcblxyXG4gIGxldCBtZSA9IG5ldyBNb3VzZUV2ZW50KFwiY2xpY2tcIiwge1xyXG4gICAgICB2aWV3OiB3aW5kb3csXHJcbiAgICAgIGJ1YmJsZXM6IHRydWUsXHJcbiAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxyXG4gIH0pO1xyXG5cclxuICBsaW5rRWxlbWVudC5kaXNwYXRjaEV2ZW50KG1lKTtcclxufSJdfQ==