keevo-components 2.0.264 → 2.0.266

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.
@@ -0,0 +1,18 @@
1
+ import { Component, input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class KvCardColorComponent {
4
+ constructor() {
5
+ this.color = input.required();
6
+ this.icon = input.required();
7
+ this.title = input.required();
8
+ this.subtitle = input();
9
+ this.value = input();
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvCardColorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvCardColorComponent, isStandalone: true, selector: "kv-card-color", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"border-1 border-{{color()}}-100 bg-{{color()}}-50 flex flex-row align-items-start justify-content-between gap-2 p-3 border-round-lg w-full shadow-1\">\r\n\r\n <span class=\"material-symbols-outlined bg-{{color()}}-400 text-white p-2 border-round-lg text-xl\">{{icon()}}</span>\r\n\r\n <div class=\"flex flex-column align-items-end\">\r\n <span class=\"font-bold text-{{color()}}-700\">{{title()}}</span>\r\n <span class=\"text-xs text-gray-500\">{{subtitle() || '\u00A0'}}</span>\r\n <span class=\"font-bold mt-2\">{{value() || '\u00A0'}}</span>\r\n </div>\r\n</div>", styles: [""] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvCardColorComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'kv-card-color', standalone: true, imports: [], template: "<div class=\"border-1 border-{{color()}}-100 bg-{{color()}}-50 flex flex-row align-items-start justify-content-between gap-2 p-3 border-round-lg w-full shadow-1\">\r\n\r\n <span class=\"material-symbols-outlined bg-{{color()}}-400 text-white p-2 border-round-lg text-xl\">{{icon()}}</span>\r\n\r\n <div class=\"flex flex-column align-items-end\">\r\n <span class=\"font-bold text-{{color()}}-700\">{{title()}}</span>\r\n <span class=\"text-xs text-gray-500\">{{subtitle() || '\u00A0'}}</span>\r\n <span class=\"font-bold mt-2\">{{value() || '\u00A0'}}</span>\r\n </div>\r\n</div>" }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtY2FyZC1jb2xvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1jYXJkLWNvbG9yL2t2LWNhcmQtY29sb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtY2FyZC1jb2xvci9rdi1jYXJkLWNvbG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVNqRCxNQUFNLE9BQU8sb0JBQW9CO0lBUGpDO1FBUUUsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNqQyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBRWhDLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDakMsYUFBUSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzNCLFVBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQztLQUN6Qjs4R0FQWSxvQkFBb0I7a0dBQXBCLG9CQUFvQixnckJDVGpDLG1tQkFTTTs7MkZEQU8sb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtY2FyZC1jb2xvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXSxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtY2FyZC1jb2xvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWNhcmQtY29sb3IuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkNhcmRDb2xvckNvbXBvbmVudCB7XHJcbiAgY29sb3IgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgaWNvbiA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuICBcclxuICB0aXRsZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuICBzdWJ0aXRsZSA9IGlucHV0PHN0cmluZz4oKTtcclxuICB2YWx1ZSA9IGlucHV0PHN0cmluZz4oKTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYm9yZGVyLTEgYm9yZGVyLXt7Y29sb3IoKX19LTEwMCBiZy17e2NvbG9yKCl9fS01MCBmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLXN0YXJ0IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yIHAtMyBib3JkZXItcm91bmQtbGcgdy1mdWxsIHNoYWRvdy0xXCI+XHJcblxyXG4gICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGJnLXt7Y29sb3IoKX19LTQwMCB0ZXh0LXdoaXRlIHAtMiBib3JkZXItcm91bmQtbGcgdGV4dC14bFwiPnt7aWNvbigpfX08L3NwYW4+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC17e2NvbG9yKCl9fS03MDBcIj57e3RpdGxlKCl9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTUwMFwiPnt7c3VidGl0bGUoKSB8fCAnwqAnfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgbXQtMlwiPnt7dmFsdWUoKSB8fCAnwqAnfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -167,7 +167,7 @@ export class KvFileUploadNewComponent {
167
167
  return types.slice(0, -2); // Remove a última vírgula e espaço
168
168
  }
169
169
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadNewComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
170
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFileUploadNewComponent, isStandalone: true, selector: "kv-file-upload-new", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: false, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: false, isRequired: false, transformFunction: null }, widthComponent: { classPropertyName: "widthComponent", publicName: "widthComponent", isSignal: false, isRequired: false, transformFunction: null }, heightComponent: { classPropertyName: "heightComponent", publicName: "heightComponent", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, validFileTypes: { classPropertyName: "validFileTypes", publicName: "validFileTypes", isSignal: false, isRequired: false, transformFunction: null }, tamanhoMaximoPermitido: { classPropertyName: "tamanhoMaximoPermitido", publicName: "tamanhoMaximoPermitido", isSignal: false, isRequired: false, transformFunction: null }, includeOfficeTypes: { classPropertyName: "includeOfficeTypes", publicName: "includeOfficeTypes", isSignal: false, isRequired: false, transformFunction: null }, maxSizeFile: { classPropertyName: "maxSizeFile", publicName: "maxSizeFile", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileEmit: "fileEmit", removeFileEmit: "removeFileEmit" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }], ngImport: i0, template: "<div\r\n *ngIf=\"formGroup\"\r\n class=\"file-upload-container w-full\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched,\r\n 'has-file': formGroup.get(formControlName)?.value,\r\n }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"triggerClick()\"\r\n [style.width]=\"widthComponent\"\r\n>\r\n <input\r\n type=\"file\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n <div *ngIf=\"!formGroup.get(formControlName)?.value\" class=\"dropzone-content\">\r\n <div class=\"cloud-icon-wrapper\">\r\n <span class=\"material-symbols-outlined\">cloud_upload</span>\r\n </div>\r\n <div class=\"text-center\">\r\n <p class=\"main-text\">\r\n <span class=\"blue-text\">Clique para selecionar</span> ou arraste aqui\r\n </p>\r\n\r\n @if(subtitle()) {\r\n <p class=\"sub-text\">{{ subtitle() }} (max. {{ maxSizeFile() }}MB)</p>\r\n } @else {\r\n <p class=\"sub-text\">PDF, Imagens (max. {{ maxSizeFile() }}MB)</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formGroup.get(formControlName)?.value as file\"\r\n class=\"selected-file-card\"\r\n >\r\n <div class=\"card-header\">\r\n <div class=\"file-info\">\r\n <span class=\"material-symbols-outlined file-icon\">description</span>\r\n <span class=\"file-name\" [title]=\"file.name\">{{ file.name }}</span>\r\n </div>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger close-btn\"\r\n (click)=\"deleteFile(); $event.stopPropagation()\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"card-footer\">\r\n <div class=\"progress-container\">\r\n <div\r\n class=\"progress-bar\"\r\n [style.width.%]=\"progressValue()(file.size)\"\r\n [class.limit-exceeded]=\"progressValue()(file.size) >= 100\"\r\n ></div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mt-1\">\r\n <small class=\"error-text\" *ngIf=\"progressValue()(file.size) >= 100\"\r\n >Limite excedido</small\r\n >\r\n <span class=\"file-size-label ml-auto\">{{\r\n formatBytes(file.size)\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p\r\n *ngIf=\"\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched\r\n \"\r\n class=\"error-message\"\r\n>\r\n Campo obrigat\u00F3rio\r\n</p>\r\n", styles: [".file-upload-container{border:1px dashed #cbd5e1;border-radius:.75rem;background-color:#f8fafc;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease-in-out;position:relative;height:100%}.file-upload-container:hover,.file-upload-container.dragover{border-color:#3b82f6;background-color:#eff6ff}.file-upload-container.has-file{cursor:default;background-color:#f1f5f9;padding:0;border-style:solid}.selected-file-card{background:#fff;border-radius:.75rem;padding:1.5rem;width:100%;height:100%;min-height:160px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex-direction:column;justify-content:center;gap:1rem;animation:fadeIn .3s ease-out;box-sizing:border-box}.selected-file-card .card-header{display:flex;justify-content:space-between;align-items:center}.selected-file-card .card-header .file-info{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-file-card .card-header .file-info .file-icon{color:#64748b;font-size:24px}.selected-file-card .card-header .file-info .file-name{font-size:1rem;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .card-header .close-btn{width:32px!important;height:32px!important;padding:0!important}.selected-file-card .card-header .close-btn ::ng-deep .p-button-icon{font-size:1rem}.selected-file-card .card-footer .progress-container{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.selected-file-card .card-footer .progress-container .progress-bar{height:100%;background:#3b82f6;transition:width .4s cubic-bezier(.4,0,.2,1)}.selected-file-card .card-footer .progress-container .progress-bar.limit-exceeded{background:#ef4444}.selected-file-card .card-footer .file-size-label{font-size:.85rem;color:#94a3b8;font-weight:500}.selected-file-card .card-footer .error-text{color:#ef4444;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::ng-deep .file-upload-container .p-button.p-button-text{background-color:transparent!important;border:none}::ng-deep .file-upload-container .p-button.p-button-text:hover{background-color:#fee2e2!important}.cloud-icon-wrapper{background-color:#e0f2fe;color:#3b82f6;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.cloud-icon-wrapper span{font-size:24px}.main-text{font-size:.9rem;color:#334155}.main-text .blue-text{color:#3b82f6;font-weight:600}.sub-text{color:#64748b;font-size:.8rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: KvProgressBarModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFileUploadNewComponent, isStandalone: true, selector: "kv-file-upload-new", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: false, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: false, isRequired: false, transformFunction: null }, widthComponent: { classPropertyName: "widthComponent", publicName: "widthComponent", isSignal: false, isRequired: false, transformFunction: null }, heightComponent: { classPropertyName: "heightComponent", publicName: "heightComponent", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, validFileTypes: { classPropertyName: "validFileTypes", publicName: "validFileTypes", isSignal: false, isRequired: false, transformFunction: null }, tamanhoMaximoPermitido: { classPropertyName: "tamanhoMaximoPermitido", publicName: "tamanhoMaximoPermitido", isSignal: false, isRequired: false, transformFunction: null }, includeOfficeTypes: { classPropertyName: "includeOfficeTypes", publicName: "includeOfficeTypes", isSignal: false, isRequired: false, transformFunction: null }, maxSizeFile: { classPropertyName: "maxSizeFile", publicName: "maxSizeFile", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileEmit: "fileEmit", removeFileEmit: "removeFileEmit" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }], ngImport: i0, template: "<div\r\n *ngIf=\"formGroup\"\r\n class=\"file-upload-container w-full\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched,\r\n 'has-file': formGroup.get(formControlName)?.value,\r\n }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"triggerClick()\"\r\n [style.width]=\"widthComponent\"\r\n>\r\n <input\r\n type=\"file\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n <div *ngIf=\"!formGroup.get(formControlName)?.value\" class=\"dropzone-content\">\r\n <div class=\"cloud-icon-wrapper\">\r\n <span class=\"material-symbols-outlined\">cloud_upload</span>\r\n </div>\r\n <div class=\"text-center\">\r\n <p class=\"main-text\">\r\n <span class=\"blue-text\">Clique para selecionar</span> ou arraste aqui\r\n </p>\r\n\r\n @if(subtitle()) {\r\n <p class=\"sub-text\">{{ subtitle() }} (max. {{ maxSizeFile() }}MB)</p>\r\n } @else {\r\n <p class=\"sub-text\">PDF, Imagens (max. {{ maxSizeFile() }}MB)</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formGroup.get(formControlName)?.value as file\"\r\n class=\"selected-file-card\"\r\n >\r\n <div class=\"card-header\">\r\n <div class=\"file-info\">\r\n <span class=\"material-symbols-outlined file-icon\">description</span>\r\n <span class=\"file-name\" [title]=\"file.name\">{{ file.name }}</span>\r\n </div>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger close-btn\"\r\n (click)=\"deleteFile(); $event.stopPropagation()\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"card-footer\">\r\n <div class=\"progress-container\">\r\n <div\r\n class=\"progress-bar\"\r\n [style.width.%]=\"progressValue()(file.size)\"\r\n [class.limit-exceeded]=\"progressValue()(file.size) >= 100\"\r\n ></div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mt-1\">\r\n <small class=\"error-text\" *ngIf=\"progressValue()(file.size) >= 100\"\r\n >Limite excedido</small\r\n >\r\n <span class=\"file-size-label ml-auto\">{{\r\n formatBytes(file.size)\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p\r\n *ngIf=\"\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched\r\n \"\r\n class=\"error-message\"\r\n>\r\n Campo obrigat\u00F3rio\r\n</p>\r\n", styles: [".file-upload-container{border:1px dashed #cbd5e1;border-radius:.75rem;background-color:#f8fafc;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease-in-out;position:relative;height:100%}.file-upload-container:hover,.file-upload-container.dragover{border-color:#3b82f6;background-color:#eff6ff}.file-upload-container.has-file{cursor:default;background-color:#f1f5f9;padding:0;border-style:solid}.selected-file-card{background:#fff;border-radius:.75rem;padding:1.5rem;width:100%;height:100%;min-height:160px;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;animation:fadeIn .3s ease-out;box-sizing:border-box}.selected-file-card .card-header{display:flex;justify-content:space-between;align-items:center}.selected-file-card .card-header .file-info{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-file-card .card-header .file-info .file-icon{color:#64748b;font-size:24px}.selected-file-card .card-header .file-info .file-name{font-size:1rem;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .card-header .close-btn{width:32px!important;height:32px!important;padding:0!important}.selected-file-card .card-header .close-btn ::ng-deep .p-button-icon{font-size:1rem}.selected-file-card .card-footer .progress-container{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.selected-file-card .card-footer .progress-container .progress-bar{height:100%;background:#3b82f6;transition:width .4s cubic-bezier(.4,0,.2,1)}.selected-file-card .card-footer .progress-container .progress-bar.limit-exceeded{background:#ef4444}.selected-file-card .card-footer .file-size-label{font-size:.85rem;color:#94a3b8;font-weight:500}.selected-file-card .card-footer .error-text{color:#ef4444;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::ng-deep .file-upload-container .p-button.p-button-text{background-color:transparent!important;border:none}::ng-deep .file-upload-container .p-button.p-button-text:hover{background-color:#fee2e2!important}.cloud-icon-wrapper{background-color:#e0f2fe;color:#3b82f6;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.cloud-icon-wrapper span{font-size:24px}.main-text{font-size:.9rem;color:#334155}.main-text .blue-text{color:#3b82f6;font-weight:600}.sub-text{color:#64748b;font-size:.8rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: KvProgressBarModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
171
171
  }
172
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadNewComponent, decorators: [{
173
173
  type: Component,
@@ -175,7 +175,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
175
175
  CommonModule,
176
176
  KvProgressBarModule,
177
177
  ButtonModule
178
- ], template: "<div\r\n *ngIf=\"formGroup\"\r\n class=\"file-upload-container w-full\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched,\r\n 'has-file': formGroup.get(formControlName)?.value,\r\n }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"triggerClick()\"\r\n [style.width]=\"widthComponent\"\r\n>\r\n <input\r\n type=\"file\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n <div *ngIf=\"!formGroup.get(formControlName)?.value\" class=\"dropzone-content\">\r\n <div class=\"cloud-icon-wrapper\">\r\n <span class=\"material-symbols-outlined\">cloud_upload</span>\r\n </div>\r\n <div class=\"text-center\">\r\n <p class=\"main-text\">\r\n <span class=\"blue-text\">Clique para selecionar</span> ou arraste aqui\r\n </p>\r\n\r\n @if(subtitle()) {\r\n <p class=\"sub-text\">{{ subtitle() }} (max. {{ maxSizeFile() }}MB)</p>\r\n } @else {\r\n <p class=\"sub-text\">PDF, Imagens (max. {{ maxSizeFile() }}MB)</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formGroup.get(formControlName)?.value as file\"\r\n class=\"selected-file-card\"\r\n >\r\n <div class=\"card-header\">\r\n <div class=\"file-info\">\r\n <span class=\"material-symbols-outlined file-icon\">description</span>\r\n <span class=\"file-name\" [title]=\"file.name\">{{ file.name }}</span>\r\n </div>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger close-btn\"\r\n (click)=\"deleteFile(); $event.stopPropagation()\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"card-footer\">\r\n <div class=\"progress-container\">\r\n <div\r\n class=\"progress-bar\"\r\n [style.width.%]=\"progressValue()(file.size)\"\r\n [class.limit-exceeded]=\"progressValue()(file.size) >= 100\"\r\n ></div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mt-1\">\r\n <small class=\"error-text\" *ngIf=\"progressValue()(file.size) >= 100\"\r\n >Limite excedido</small\r\n >\r\n <span class=\"file-size-label ml-auto\">{{\r\n formatBytes(file.size)\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p\r\n *ngIf=\"\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched\r\n \"\r\n class=\"error-message\"\r\n>\r\n Campo obrigat\u00F3rio\r\n</p>\r\n", styles: [".file-upload-container{border:1px dashed #cbd5e1;border-radius:.75rem;background-color:#f8fafc;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease-in-out;position:relative;height:100%}.file-upload-container:hover,.file-upload-container.dragover{border-color:#3b82f6;background-color:#eff6ff}.file-upload-container.has-file{cursor:default;background-color:#f1f5f9;padding:0;border-style:solid}.selected-file-card{background:#fff;border-radius:.75rem;padding:1.5rem;width:100%;height:100%;min-height:160px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex-direction:column;justify-content:center;gap:1rem;animation:fadeIn .3s ease-out;box-sizing:border-box}.selected-file-card .card-header{display:flex;justify-content:space-between;align-items:center}.selected-file-card .card-header .file-info{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-file-card .card-header .file-info .file-icon{color:#64748b;font-size:24px}.selected-file-card .card-header .file-info .file-name{font-size:1rem;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .card-header .close-btn{width:32px!important;height:32px!important;padding:0!important}.selected-file-card .card-header .close-btn ::ng-deep .p-button-icon{font-size:1rem}.selected-file-card .card-footer .progress-container{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.selected-file-card .card-footer .progress-container .progress-bar{height:100%;background:#3b82f6;transition:width .4s cubic-bezier(.4,0,.2,1)}.selected-file-card .card-footer .progress-container .progress-bar.limit-exceeded{background:#ef4444}.selected-file-card .card-footer .file-size-label{font-size:.85rem;color:#94a3b8;font-weight:500}.selected-file-card .card-footer .error-text{color:#ef4444;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::ng-deep .file-upload-container .p-button.p-button-text{background-color:transparent!important;border:none}::ng-deep .file-upload-container .p-button.p-button-text:hover{background-color:#fee2e2!important}.cloud-icon-wrapper{background-color:#e0f2fe;color:#3b82f6;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.cloud-icon-wrapper span{font-size:24px}.main-text{font-size:.9rem;color:#334155}.main-text .blue-text{color:#3b82f6;font-weight:600}.sub-text{color:#64748b;font-size:.8rem}\n"] }]
178
+ ], template: "<div\r\n *ngIf=\"formGroup\"\r\n class=\"file-upload-container w-full\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched,\r\n 'has-file': formGroup.get(formControlName)?.value,\r\n }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"triggerClick()\"\r\n [style.width]=\"widthComponent\"\r\n>\r\n <input\r\n type=\"file\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n <div *ngIf=\"!formGroup.get(formControlName)?.value\" class=\"dropzone-content\">\r\n <div class=\"cloud-icon-wrapper\">\r\n <span class=\"material-symbols-outlined\">cloud_upload</span>\r\n </div>\r\n <div class=\"text-center\">\r\n <p class=\"main-text\">\r\n <span class=\"blue-text\">Clique para selecionar</span> ou arraste aqui\r\n </p>\r\n\r\n @if(subtitle()) {\r\n <p class=\"sub-text\">{{ subtitle() }} (max. {{ maxSizeFile() }}MB)</p>\r\n } @else {\r\n <p class=\"sub-text\">PDF, Imagens (max. {{ maxSizeFile() }}MB)</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formGroup.get(formControlName)?.value as file\"\r\n class=\"selected-file-card\"\r\n >\r\n <div class=\"card-header\">\r\n <div class=\"file-info\">\r\n <span class=\"material-symbols-outlined file-icon\">description</span>\r\n <span class=\"file-name\" [title]=\"file.name\">{{ file.name }}</span>\r\n </div>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger close-btn\"\r\n (click)=\"deleteFile(); $event.stopPropagation()\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"card-footer\">\r\n <div class=\"progress-container\">\r\n <div\r\n class=\"progress-bar\"\r\n [style.width.%]=\"progressValue()(file.size)\"\r\n [class.limit-exceeded]=\"progressValue()(file.size) >= 100\"\r\n ></div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mt-1\">\r\n <small class=\"error-text\" *ngIf=\"progressValue()(file.size) >= 100\"\r\n >Limite excedido</small\r\n >\r\n <span class=\"file-size-label ml-auto\">{{\r\n formatBytes(file.size)\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p\r\n *ngIf=\"\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched\r\n \"\r\n class=\"error-message\"\r\n>\r\n Campo obrigat\u00F3rio\r\n</p>\r\n", styles: [".file-upload-container{border:1px dashed #cbd5e1;border-radius:.75rem;background-color:#f8fafc;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease-in-out;position:relative;height:100%}.file-upload-container:hover,.file-upload-container.dragover{border-color:#3b82f6;background-color:#eff6ff}.file-upload-container.has-file{cursor:default;background-color:#f1f5f9;padding:0;border-style:solid}.selected-file-card{background:#fff;border-radius:.75rem;padding:1.5rem;width:100%;height:100%;min-height:160px;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;animation:fadeIn .3s ease-out;box-sizing:border-box}.selected-file-card .card-header{display:flex;justify-content:space-between;align-items:center}.selected-file-card .card-header .file-info{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-file-card .card-header .file-info .file-icon{color:#64748b;font-size:24px}.selected-file-card .card-header .file-info .file-name{font-size:1rem;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .card-header .close-btn{width:32px!important;height:32px!important;padding:0!important}.selected-file-card .card-header .close-btn ::ng-deep .p-button-icon{font-size:1rem}.selected-file-card .card-footer .progress-container{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.selected-file-card .card-footer .progress-container .progress-bar{height:100%;background:#3b82f6;transition:width .4s cubic-bezier(.4,0,.2,1)}.selected-file-card .card-footer .progress-container .progress-bar.limit-exceeded{background:#ef4444}.selected-file-card .card-footer .file-size-label{font-size:.85rem;color:#94a3b8;font-weight:500}.selected-file-card .card-footer .error-text{color:#ef4444;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::ng-deep .file-upload-container .p-button.p-button-text{background-color:transparent!important;border:none}::ng-deep .file-upload-container .p-button.p-button-text:hover{background-color:#fee2e2!important}.cloud-icon-wrapper{background-color:#e0f2fe;color:#3b82f6;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.cloud-icon-wrapper span{font-size:24px}.main-text{font-size:.9rem;color:#334155}.main-text .blue-text{color:#3b82f6;font-weight:600}.sub-text{color:#64748b;font-size:.8rem}\n"] }]
179
179
  }], ctorParameters: () => [{ type: i1.NotificationService }], propDecorators: { formGroup: [{
180
180
  type: Input
181
181
  }], formControlName: [{
@@ -203,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
203
203
  type: ViewChild,
204
204
  args: ['inputUpload']
205
205
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS11cGxvYWQtbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdXBsb2FkLW5ldy9rdi1maWxlLXVwbG9hZC1uZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQtbmV3L2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3ZILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7O0FBYWhGLE1BQU0sT0FBTyx3QkFBd0I7SUFrQm5DLG9CQUFvQjtJQUVwQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWpCbkQsbUJBQWMsR0FBVyxPQUFPLENBQUM7UUFDakMsb0JBQWUsR0FBVyxNQUFNLENBQUM7UUFFakMsbUJBQWMsR0FBYSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25ILDJCQUFzQixHQUFXLEVBQUUsQ0FBQztRQUNwQyx1QkFBa0IsR0FBWSxLQUFLLENBQUMsQ0FBQyxnREFBZ0Q7UUFFOUYsZ0JBQVcsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUE7UUFDL0IsYUFBUSxHQUFHLEtBQUssQ0FBZ0IsSUFBSSxDQUFDLENBQUE7UUFFM0IsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFzRGpFLGtEQUFrRDtRQUNsRCxpREFBaUQ7UUFDakQscUJBQXFCO1FBQ3JCLE1BQU07UUFFTiwwQ0FBMEM7UUFFMUMsd0NBQXdDO1FBQ3hDLE1BQU07UUFFTixrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzVDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNyQyxJQUFJLGFBQWEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7WUFFaEUsNENBQTRDO1lBQzVDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztRQUVILHdCQUFtQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2xELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzFDLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDckMsbUVBQW1FO1lBQ25FLHlDQUF5QztZQUN6Qyw2REFBNkQ7WUFDN0QsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUE7SUFoRjhELENBQUM7SUFFakUsd0RBQXdEO0lBQ3hELFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUxQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBRTVCLFVBQVUsQ0FBQyxJQUFJLENBQ2Isb0JBQW9CLEVBQUUsT0FBTztZQUM3Qix5RUFBeUUsRUFBRSxRQUFRO1lBQ25GLCtCQUErQixFQUFFLE9BQU87WUFDeEMsMkVBQTJFLENBQUMsUUFBUTthQUNyRixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPO1FBRTNDLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUN6RixDQUFDLElBQUksS0FBSyxpQkFBaUIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLENBQUM7WUFDaEYsQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsQ0FDbkUsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU3RCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFFeEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFvQ0QsV0FBVyxDQUFDLEtBQVUsRUFBRSxRQUFRLEdBQUcsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2YsTUFBTSxFQUFFLEdBQUcsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDeEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFnQjtRQUMvQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUM5QyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBZ0I7UUFDbEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDOUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFVO1FBRW5CLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsSUFBSSxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUUxQyxVQUFVLENBQUMsSUFBSSxDQUNiLG9CQUFvQixFQUFFLE9BQU87WUFDN0IseUVBQXlFLEVBQUUsUUFBUTtZQUNuRiwrQkFBK0IsRUFBRSxPQUFPO1lBQ3hDLDJFQUEyRSxDQUFDLFFBQVE7YUFDckYsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUI7WUFDL0IsSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLENBQ3pCLENBQUM7UUFFRixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0QsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3ZFLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0I7UUFDekIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFnQjtRQUMxQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWdCO1FBQ3JCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhDLElBQUksS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQTtRQUVkLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQUUsS0FBSyxJQUFJLG9CQUFvQixDQUFDO1lBQzFELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQUUsS0FBSyxJQUFJLFNBQVMsQ0FBQztZQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUFFLEtBQUssSUFBSSxRQUFRLENBQUM7WUFDNUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFBRSxLQUFLLElBQUksUUFBUSxDQUFDO1lBQzVDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQUUsS0FBSyxJQUFJLFFBQVEsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztRQUVILHNFQUFzRTtRQUN0RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLEtBQUssSUFBSSw0QkFBNEIsQ0FBQztRQUN4QyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQ2hFLENBQUM7OEdBMU1VLHdCQUF3QjtrR0FBeEIsd0JBQXdCLGl5RENsQnJDLDJyRkFzRkEsNmtGRDNFSSxZQUFZLGdPQUNaLG1CQUFtQiw4QkFDbkIsWUFBWTs7MkZBS0gsd0JBQXdCO2tCQVhwQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFlBQVk7cUJBQ2I7d0ZBS1EsU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFLSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBRWlCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBpbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IEt2UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICcuLi9rdi1wcm9ncmVzcy1iYXIva3YtcHJvZ3Jlc3MtYmFyLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWZpbGUtdXBsb2FkLW5ldycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBLdlByb2dyZXNzQmFyTW9kdWxlLCBcclxuICAgIEJ1dHRvbk1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RmlsZVVwbG9hZE5ld0NvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSB3aWR0aENvbXBvbmVudDogc3RyaW5nID0gJzQwMHB4JztcclxuICBASW5wdXQoKSBoZWlnaHRDb21wb25lbnQ6IHN0cmluZyA9ICdhdXRvJztcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbiE6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWxpZEZpbGVUeXBlczogc3RyaW5nW10gPSBbJ2ltYWdlLycsICdhcHBsaWNhdGlvbi9wZGYnLCAndGV4dC9odG1sJywgJ3RleHQveG1sJywgJ2FwcGxpY2F0aW9uL3htbCcsICd0ZXh0L3BsYWluJ107XHJcbiAgQElucHV0KCkgdGFtYW5ob01heGltb1Blcm1pdGlkbzogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaW5jbHVkZU9mZmljZVR5cGVzOiBib29sZWFuID0gZmFsc2U7IC8vIFByb3ByaWVkYWRlIHBhcmEgY29udHJvbGFyIG9zIHRpcG9zIGRlIE9mZmljZVxyXG4gIFxyXG4gIG1heFNpemVGaWxlID0gaW5wdXQ8bnVtYmVyPigxMClcclxuICBzdWJ0aXRsZSA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpXHJcblxyXG4gIEBPdXRwdXQoKSBmaWxlRW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlbW92ZUZpbGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdpbnB1dFVwbG9hZCcpIGlucHV0VXBsb2FkITogRWxlbWVudFJlZjtcclxuICAvLyBObyB0b3BvIGRhIGNsYXNzZVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHsgfVxyXG5cclxuICAvLyBNw6l0b2RvIHBhcmEgZGlzcGFyYXIgbyBjbGlxdWUgc2VtIGVycm8gZGUgcHJvcHJpZWRhZGVcclxuICB0cmlnZ2VyQ2xpY2soKSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSk/LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCB2YWxpZFR5cGVzID0gWy4uLnRoaXMudmFsaWRGaWxlVHlwZXNdO1xyXG5cclxuICAgIGlmICh0aGlzLmluY2x1ZGVPZmZpY2VUeXBlcykge1xyXG5cclxuICAgICAgdmFsaWRUeXBlcy5wdXNoKFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi9tc3dvcmQnLCAvLyAuZG9jXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JywgLy8gLmRvY3hcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLCAvLyAucHB0XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nIC8vIC5wcHR4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5maWxlcy5sZW5ndGggPT0gMCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGlzVmFsaWRGaWxlVHlwZSA9IHZhbGlkVHlwZXMuc29tZSh0eXBlID0+IGV2ZW50LnRhcmdldC5maWxlc1swXS50eXBlLnN0YXJ0c1dpdGgodHlwZSkgfHxcclxuICAgICAgKHR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnICYmIGV2ZW50LnRhcmdldC5maWxlc1swXS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJykgfHxcclxuICAgICAgKHR5cGUgPT09ICd0ZXh0L3htbCcgJiYgZXZlbnQudGFyZ2V0LmZpbGVzWzBdLnR5cGUgPT09ICd0ZXh0L3htbCcpXHJcbiAgICApO1xyXG5cclxuICAgIGlmICghaXNWYWxpZEZpbGVUeXBlKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdEVycm9yKCdUaXBvIGRlIGFycXVpdm8gaW52w6FsaWRvJyk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuXHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShldmVudC50YXJnZXQuZmlsZXNbMF0pO1xyXG4gICAgdGhpcy5maWxlRW1pdC5lbWl0KGV2ZW50LnRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKCkge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5yZW1vdmVGaWxlRW1pdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5NYlNpemUgPSBjb21wdXRlZCgoKSA9PiAoYnl0ZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgaWYgKGJ5dGVzID09PSBudWxsIHx8IGJ5dGVzID09PSB1bmRlZmluZWQpIHtcclxuICAvLyAgICAgcmV0dXJuICcwIE1CJztcclxuICAvLyAgIH1cclxuXHJcbiAgLy8gICBjb25zdCBtYlNpemUgPSBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcblxyXG4gIC8vICAgcmV0dXJuIHRoaXMuZm9ybWF0Qnl0ZXMobWJTaXplLCAyKTtcclxuICAvLyB9KTtcclxuXHJcbiAgcHJvZ3Jlc3NWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IChieXRlczogYW55KSA9PiB7XHJcbiAgICBpZiAoYnl0ZXMgPT09IG51bGwgfHwgYnl0ZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYlNpemUgPSBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcbiAgICBsZXQgcHJvZ3Jlc3NWYWx1ZSA9IChOdW1iZXIobWJTaXplKSAvIHRoaXMubWF4U2l6ZUZpbGUoKSkgKiAxMDA7XHJcblxyXG4gICAgLy8gTGltaXRhIG8gdmFsb3IgZG8gcHJvZ3Jlc3NvIGVudHJlIDAgZSAxMDBcclxuICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChwcm9ncmVzc1ZhbHVlLCAwKSwgMTAwKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuUHJvZ3Jlc3NMYWJlbCA9IGNvbXB1dGVkKCgpID0+IChieXRlczogYW55KSA9PiB7XHJcbiAgICBpZiAoYnl0ZXMgPT09IG51bGwgfHwgYnl0ZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gJzAgTUInO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1iU2l6ZSA9IGJ5dGVzIC8gKDEwMjQgKiAxMDI0KTtcclxuICAgIC8vIGxldCBwcm9ncmVzc1ZhbHVlID0gKE51bWJlcihtYlNpemUpIC8gdGhpcy5tYXhTaXplRmlsZSgpKSAqIDEwMDtcclxuICAgIC8vIHRoaXMucHJvZ3Jlc3NWYWx1ZS5zZXQocHJvZ3Jlc3NWYWx1ZSk7XHJcbiAgICAvLyB0aGlzLnByb2dyZXNzVmFsdWUuc2V0KChtYlNpemUgLyB0aGlzLm1heFNpemVGaWxlKCkpKjEwMCk7XHJcbiAgICByZXR1cm4gYCR7bWJTaXplLnRvRml4ZWQoMil9LyR7dGhpcy5tYXhTaXplRmlsZSgpfSBNQmA7XHJcbiAgfSlcclxuXHJcbiAgZm9ybWF0Qnl0ZXMoYnl0ZXM6IGFueSwgZGVjaW1hbHMgPSAyKSB7XHJcbiAgICBpZiAoIWJ5dGVzKSB7XHJcbiAgICAgIHJldHVybiBcIjAgQnl0ZXNcIjtcclxuICAgIH1cclxuICAgIGNvbnN0IGsgPSAxMDI0O1xyXG4gICAgY29uc3QgZG0gPSBkZWNpbWFscyA8PSAwID8gMCA6IGRlY2ltYWxzO1xyXG4gICAgY29uc3Qgc2l6ZXMgPSBbXCJCeXRlc1wiLCBcIktCXCIsIFwiTUJcIiwgXCJHQlwiLCBcIlRCXCIsIFwiUEJcIiwgXCJFQlwiLCBcIlpCXCIsIFwiWUJcIl07XHJcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChkbSkpICsgXCIgXCIgKyBzaXplc1tpXTtcclxuICB9XHJcblxyXG4gIGFkZERyYWdPdmVyQ2xhc3MoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2RyYWdvdmVyJyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnb3ZlcicpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsZShmaWxlOiBGaWxlKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5jbHVkZU9mZmljZVR5cGVzKSB7XHJcbiAgICAgIGxldCB2YWxpZFR5cGVzID0gWy4uLnRoaXMudmFsaWRGaWxlVHlwZXNdO1xyXG5cclxuICAgICAgdmFsaWRUeXBlcy5wdXNoKFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi9tc3dvcmQnLCAvLyAuZG9jXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JywgLy8gLmRvY3hcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLCAvLyAucHB0XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nIC8vIC5wcHR4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNWYWxpZEZpbGVUeXBlID0gdGhpcy52YWxpZEZpbGVUeXBlcy5zb21lKHR5cGUgPT5cclxuICAgICAgZmlsZS50eXBlLnN0YXJ0c1dpdGgodHlwZSkgfHxcclxuICAgICAgZmlsZS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJyB8fFxyXG4gICAgICBmaWxlLnR5cGUgPT09ICd0ZXh0L3htbCdcclxuICAgICk7XHJcblxyXG4gICAgaWYgKCFpc1ZhbGlkRmlsZVR5cGUpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoJ1RpcG8gZGUgYXJxdWl2byBpbnbDoWxpZG8nKTtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKGZpbGUpO1xyXG5cclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG4gICAgaWYgKGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xyXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgIH0gZWxzZSBpZiAoZmlsZS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJyB8fCBmaWxlLnR5cGUgPT09ICd0ZXh0L3htbCcpIHtcclxuICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWxlRW1pdC5lbWl0KGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmFkZERyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5yZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG5cclxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVGaWxlKGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBY2NlcHQoKTogc3RyaW5nIHtcclxuICAgIGxldCB0eXBlcyA9ICcnXHJcblxyXG4gICAgdGhpcy52YWxpZEZpbGVUeXBlcy5mb3JFYWNoKHR5cGUgPT4ge1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygnaW1hZ2UnKSkgdHlwZXMgKz0gJy5qcGcsIC5wbmcsIC5ibXAsICc7XHJcbiAgICAgIGlmICh0eXBlLmluY2x1ZGVzKCdodG1sJykpIHR5cGVzICs9ICcuaHRtbCwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3BkZicpKSB0eXBlcyArPSAnLnBkZiwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3htbCcpKSB0eXBlcyArPSAnLnhtbCwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3BsYWluJykpIHR5cGVzICs9ICcudHh0LCAnO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQWRpY2lvbmEgdGlwb3MgZGUgYXJxdWl2b3MgZG8gT2ZmaWNlIHNlIGluY2x1ZGVPZmZpY2VUeXBlcyBmb3IgdHJ1ZVxyXG4gICAgaWYgKHRoaXMuaW5jbHVkZU9mZmljZVR5cGVzKSB7XHJcbiAgICAgIHR5cGVzICs9ICcuZG9jLCAuZG9jeCwgLnBwdCwgLnBwdHgsICc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHR5cGVzLnNsaWNlKDAsIC0yKTsgLy8gUmVtb3ZlIGEgw7psdGltYSB2w61yZ3VsYSBlIGVzcGHDp29cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICpuZ0lmPVwiZm9ybUdyb3VwXCJcclxuICBjbGFzcz1cImZpbGUtdXBsb2FkLWNvbnRhaW5lciB3LWZ1bGxcIlxyXG4gIFtuZ0NsYXNzXT1cIntcclxuICAgICdpbnZhbGlkLWJvcmRlcic6XHJcbiAgICAgIGZvcm1Hcm91cC5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uaW52YWxpZCAmJlxyXG4gICAgICBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWQsXHJcbiAgICAnaGFzLWZpbGUnOiBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlLFxyXG4gIH1cIlxyXG4gIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxyXG4gIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXHJcbiAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxyXG4gIChjbGljayk9XCJ0cmlnZ2VyQ2xpY2soKVwiXHJcbiAgW3N0eWxlLndpZHRoXT1cIndpZHRoQ29tcG9uZW50XCJcclxuPlxyXG4gIDxpbnB1dFxyXG4gICAgdHlwZT1cImZpbGVcIlxyXG4gICAgI2ZpbGVJbnB1dFxyXG4gICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgIFthY2NlcHRdPVwic2V0QWNjZXB0KClcIlxyXG4gICAgaGlkZGVuXHJcbiAgLz5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlXCIgY2xhc3M9XCJkcm9wem9uZS1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2xvdWQtaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmNsb3VkX3VwbG9hZDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxwIGNsYXNzPVwibWFpbi10ZXh0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJibHVlLXRleHRcIj5DbGlxdWUgcGFyYSBzZWxlY2lvbmFyPC9zcGFuPiBvdSBhcnJhc3RlIGFxdWlcclxuICAgICAgPC9wPlxyXG5cclxuICAgICAgQGlmKHN1YnRpdGxlKCkpIHtcclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10ZXh0XCI+e3sgc3VidGl0bGUoKSB9fSAobWF4LiB7eyBtYXhTaXplRmlsZSgpIH19TUIpPC9wPlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10ZXh0XCI+UERGLCBJbWFnZW5zIChtYXguIHt7IG1heFNpemVGaWxlKCkgfX1NQik8L3A+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImZvcm1Hcm91cC5nZXQoZm9ybUNvbnRyb2xOYW1lKT8udmFsdWUgYXMgZmlsZVwiXHJcbiAgICBjbGFzcz1cInNlbGVjdGVkLWZpbGUtY2FyZFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWluZm9cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgZmlsZS1pY29uXCI+ZGVzY3JpcHRpb248L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIiBbdGl0bGVdPVwiZmlsZS5uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBpY29uPVwicGkgcGktdGltZXNcIlxyXG4gICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLWRhbmdlciBjbG9zZS1idG5cIlxyXG4gICAgICAgIChjbGljayk9XCJkZWxldGVGaWxlKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgID48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIlxyXG4gICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwicHJvZ3Jlc3NWYWx1ZSgpKGZpbGUuc2l6ZSlcIlxyXG4gICAgICAgICAgW2NsYXNzLmxpbWl0LWV4Y2VlZGVkXT1cInByb2dyZXNzVmFsdWUoKShmaWxlLnNpemUpID49IDEwMFwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTFcIj5cclxuICAgICAgICA8c21hbGwgY2xhc3M9XCJlcnJvci10ZXh0XCIgKm5nSWY9XCJwcm9ncmVzc1ZhbHVlKCkoZmlsZS5zaXplKSA+PSAxMDBcIlxyXG4gICAgICAgICAgPkxpbWl0ZSBleGNlZGlkbzwvc21hbGxcclxuICAgICAgICA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXNpemUtbGFiZWwgbWwtYXV0b1wiPnt7XHJcbiAgICAgICAgICBmb3JtYXRCeXRlcyhmaWxlLnNpemUpXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHBcclxuICAqbmdJZj1cIlxyXG4gICAgZm9ybUdyb3VwLmdldChmb3JtQ29udHJvbE5hbWUpPy5pbnZhbGlkICYmXHJcbiAgICBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWRcclxuICBcIlxyXG4gIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXHJcbj5cclxuICBDYW1wbyBvYnJpZ2F0w7NyaW9cclxuPC9wPlxyXG4iXX0=
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS11cGxvYWQtbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdXBsb2FkLW5ldy9rdi1maWxlLXVwbG9hZC1uZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQtbmV3L2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3ZILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7O0FBYWhGLE1BQU0sT0FBTyx3QkFBd0I7SUFrQm5DLG9CQUFvQjtJQUVwQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWpCbkQsbUJBQWMsR0FBVyxPQUFPLENBQUM7UUFDakMsb0JBQWUsR0FBVyxNQUFNLENBQUM7UUFFakMsbUJBQWMsR0FBYSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25ILDJCQUFzQixHQUFXLEVBQUUsQ0FBQztRQUNwQyx1QkFBa0IsR0FBWSxLQUFLLENBQUMsQ0FBQyxnREFBZ0Q7UUFFOUYsZ0JBQVcsR0FBRyxLQUFLLENB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Q0FBQztnQkFBRSxLQUFLLElBQUksUUFBUSxDQUFDO1lBQzVDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQUUsS0FBSyxJQUFJLFFBQVEsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztRQUVILHNFQUFzRTtRQUN0RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLEtBQUssSUFBSSw0QkFBNEIsQ0FBQztRQUN4QyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQ2hFLENBQUM7OEdBMU1VLHdCQUF3QjtrR0FBeEIsd0JBQXdCLGl5RENsQnJDLDJyRkFzRkEscWhGRDNFSSxZQUFZLGdPQUNaLG1CQUFtQiw4QkFDbkIsWUFBWTs7MkZBS0gsd0JBQXdCO2tCQVhwQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFlBQVk7cUJBQ2I7d0ZBS1EsU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFLSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBRWlCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBpbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IEt2UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICcuLi9rdi1wcm9ncmVzcy1iYXIva3YtcHJvZ3Jlc3MtYmFyLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWZpbGUtdXBsb2FkLW5ldycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBLdlByb2dyZXNzQmFyTW9kdWxlLCBcclxuICAgIEJ1dHRvbk1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RmlsZVVwbG9hZE5ld0NvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSB3aWR0aENvbXBvbmVudDogc3RyaW5nID0gJzQwMHB4JztcclxuICBASW5wdXQoKSBoZWlnaHRDb21wb25lbnQ6IHN0cmluZyA9ICdhdXRvJztcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbiE6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWxpZEZpbGVUeXBlczogc3RyaW5nW10gPSBbJ2ltYWdlLycsICdhcHBsaWNhdGlvbi9wZGYnLCAndGV4dC9odG1sJywgJ3RleHQveG1sJywgJ2FwcGxpY2F0aW9uL3htbCcsICd0ZXh0L3BsYWluJ107XHJcbiAgQElucHV0KCkgdGFtYW5ob01heGltb1Blcm1pdGlkbzogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaW5jbHVkZU9mZmljZVR5cGVzOiBib29sZWFuID0gZmFsc2U7IC8vIFByb3ByaWVkYWRlIHBhcmEgY29udHJvbGFyIG9zIHRpcG9zIGRlIE9mZmljZVxyXG4gIFxyXG4gIG1heFNpemVGaWxlID0gaW5wdXQ8bnVtYmVyPigxMClcclxuICBzdWJ0aXRsZSA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpXHJcblxyXG4gIEBPdXRwdXQoKSBmaWxlRW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlbW92ZUZpbGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdpbnB1dFVwbG9hZCcpIGlucHV0VXBsb2FkITogRWxlbWVudFJlZjtcclxuICAvLyBObyB0b3BvIGRhIGNsYXNzZVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHsgfVxyXG5cclxuICAvLyBNw6l0b2RvIHBhcmEgZGlzcGFyYXIgbyBjbGlxdWUgc2VtIGVycm8gZGUgcHJvcHJpZWRhZGVcclxuICB0cmlnZ2VyQ2xpY2soKSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSk/LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCB2YWxpZFR5cGVzID0gWy4uLnRoaXMudmFsaWRGaWxlVHlwZXNdO1xyXG5cclxuICAgIGlmICh0aGlzLmluY2x1ZGVPZmZpY2VUeXBlcykge1xyXG5cclxuICAgICAgdmFsaWRUeXBlcy5wdXNoKFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi9tc3dvcmQnLCAvLyAuZG9jXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JywgLy8gLmRvY3hcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLCAvLyAucHB0XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nIC8vIC5wcHR4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5maWxlcy5sZW5ndGggPT0gMCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGlzVmFsaWRGaWxlVHlwZSA9IHZhbGlkVHlwZXMuc29tZSh0eXBlID0+IGV2ZW50LnRhcmdldC5maWxlc1swXS50eXBlLnN0YXJ0c1dpdGgodHlwZSkgfHxcclxuICAgICAgKHR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnICYmIGV2ZW50LnRhcmdldC5maWxlc1swXS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJykgfHxcclxuICAgICAgKHR5cGUgPT09ICd0ZXh0L3htbCcgJiYgZXZlbnQudGFyZ2V0LmZpbGVzWzBdLnR5cGUgPT09ICd0ZXh0L3htbCcpXHJcbiAgICApO1xyXG5cclxuICAgIGlmICghaXNWYWxpZEZpbGVUeXBlKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdEVycm9yKCdUaXBvIGRlIGFycXVpdm8gaW52w6FsaWRvJyk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuXHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShldmVudC50YXJnZXQuZmlsZXNbMF0pO1xyXG4gICAgdGhpcy5maWxlRW1pdC5lbWl0KGV2ZW50LnRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKCkge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5yZW1vdmVGaWxlRW1pdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5NYlNpemUgPSBjb21wdXRlZCgoKSA9PiAoYnl0ZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgaWYgKGJ5dGVzID09PSBudWxsIHx8IGJ5dGVzID09PSB1bmRlZmluZWQpIHtcclxuICAvLyAgICAgcmV0dXJuICcwIE1CJztcclxuICAvLyAgIH1cclxuXHJcbiAgLy8gICBjb25zdCBtYlNpemUgPSBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcblxyXG4gIC8vICAgcmV0dXJuIHRoaXMuZm9ybWF0Qnl0ZXMobWJTaXplLCAyKTtcclxuICAvLyB9KTtcclxuXHJcbiAgcHJvZ3Jlc3NWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IChieXRlczogYW55KSA9PiB7XHJcbiAgICBpZiAoYnl0ZXMgPT09IG51bGwgfHwgYnl0ZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYlNpemUgPSBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcbiAgICBsZXQgcHJvZ3Jlc3NWYWx1ZSA9IChOdW1iZXIobWJTaXplKSAvIHRoaXMubWF4U2l6ZUZpbGUoKSkgKiAxMDA7XHJcblxyXG4gICAgLy8gTGltaXRhIG8gdmFsb3IgZG8gcHJvZ3Jlc3NvIGVudHJlIDAgZSAxMDBcclxuICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChwcm9ncmVzc1ZhbHVlLCAwKSwgMTAwKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuUHJvZ3Jlc3NMYWJlbCA9IGNvbXB1dGVkKCgpID0+IChieXRlczogYW55KSA9PiB7XHJcbiAgICBpZiAoYnl0ZXMgPT09IG51bGwgfHwgYnl0ZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gJzAgTUInO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1iU2l6ZSA9IGJ5dGVzIC8gKDEwMjQgKiAxMDI0KTtcclxuICAgIC8vIGxldCBwcm9ncmVzc1ZhbHVlID0gKE51bWJlcihtYlNpemUpIC8gdGhpcy5tYXhTaXplRmlsZSgpKSAqIDEwMDtcclxuICAgIC8vIHRoaXMucHJvZ3Jlc3NWYWx1ZS5zZXQocHJvZ3Jlc3NWYWx1ZSk7XHJcbiAgICAvLyB0aGlzLnByb2dyZXNzVmFsdWUuc2V0KChtYlNpemUgLyB0aGlzLm1heFNpemVGaWxlKCkpKjEwMCk7XHJcbiAgICByZXR1cm4gYCR7bWJTaXplLnRvRml4ZWQoMil9LyR7dGhpcy5tYXhTaXplRmlsZSgpfSBNQmA7XHJcbiAgfSlcclxuXHJcbiAgZm9ybWF0Qnl0ZXMoYnl0ZXM6IGFueSwgZGVjaW1hbHMgPSAyKSB7XHJcbiAgICBpZiAoIWJ5dGVzKSB7XHJcbiAgICAgIHJldHVybiBcIjAgQnl0ZXNcIjtcclxuICAgIH1cclxuICAgIGNvbnN0IGsgPSAxMDI0O1xyXG4gICAgY29uc3QgZG0gPSBkZWNpbWFscyA8PSAwID8gMCA6IGRlY2ltYWxzO1xyXG4gICAgY29uc3Qgc2l6ZXMgPSBbXCJCeXRlc1wiLCBcIktCXCIsIFwiTUJcIiwgXCJHQlwiLCBcIlRCXCIsIFwiUEJcIiwgXCJFQlwiLCBcIlpCXCIsIFwiWUJcIl07XHJcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChkbSkpICsgXCIgXCIgKyBzaXplc1tpXTtcclxuICB9XHJcblxyXG4gIGFkZERyYWdPdmVyQ2xhc3MoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2RyYWdvdmVyJyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnb3ZlcicpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsZShmaWxlOiBGaWxlKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5jbHVkZU9mZmljZVR5cGVzKSB7XHJcbiAgICAgIGxldCB2YWxpZFR5cGVzID0gWy4uLnRoaXMudmFsaWRGaWxlVHlwZXNdO1xyXG5cclxuICAgICAgdmFsaWRUeXBlcy5wdXNoKFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi9tc3dvcmQnLCAvLyAuZG9jXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JywgLy8gLmRvY3hcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLCAvLyAucHB0XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nIC8vIC5wcHR4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNWYWxpZEZpbGVUeXBlID0gdGhpcy52YWxpZEZpbGVUeXBlcy5zb21lKHR5cGUgPT5cclxuICAgICAgZmlsZS50eXBlLnN0YXJ0c1dpdGgodHlwZSkgfHxcclxuICAgICAgZmlsZS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJyB8fFxyXG4gICAgICBmaWxlLnR5cGUgPT09ICd0ZXh0L3htbCdcclxuICAgICk7XHJcblxyXG4gICAgaWYgKCFpc1ZhbGlkRmlsZVR5cGUpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoJ1RpcG8gZGUgYXJxdWl2byBpbnbDoWxpZG8nKTtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKGZpbGUpO1xyXG5cclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG4gICAgaWYgKGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xyXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgIH0gZWxzZSBpZiAoZmlsZS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJyB8fCBmaWxlLnR5cGUgPT09ICd0ZXh0L3htbCcpIHtcclxuICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWxlRW1pdC5lbWl0KGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmFkZERyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5yZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG5cclxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVGaWxlKGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBY2NlcHQoKTogc3RyaW5nIHtcclxuICAgIGxldCB0eXBlcyA9ICcnXHJcblxyXG4gICAgdGhpcy52YWxpZEZpbGVUeXBlcy5mb3JFYWNoKHR5cGUgPT4ge1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygnaW1hZ2UnKSkgdHlwZXMgKz0gJy5qcGcsIC5wbmcsIC5ibXAsICc7XHJcbiAgICAgIGlmICh0eXBlLmluY2x1ZGVzKCdodG1sJykpIHR5cGVzICs9ICcuaHRtbCwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3BkZicpKSB0eXBlcyArPSAnLnBkZiwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3htbCcpKSB0eXBlcyArPSAnLnhtbCwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3BsYWluJykpIHR5cGVzICs9ICcudHh0LCAnO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQWRpY2lvbmEgdGlwb3MgZGUgYXJxdWl2b3MgZG8gT2ZmaWNlIHNlIGluY2x1ZGVPZmZpY2VUeXBlcyBmb3IgdHJ1ZVxyXG4gICAgaWYgKHRoaXMuaW5jbHVkZU9mZmljZVR5cGVzKSB7XHJcbiAgICAgIHR5cGVzICs9ICcuZG9jLCAuZG9jeCwgLnBwdCwgLnBwdHgsICc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHR5cGVzLnNsaWNlKDAsIC0yKTsgLy8gUmVtb3ZlIGEgw7psdGltYSB2w61yZ3VsYSBlIGVzcGHDp29cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICpuZ0lmPVwiZm9ybUdyb3VwXCJcclxuICBjbGFzcz1cImZpbGUtdXBsb2FkLWNvbnRhaW5lciB3LWZ1bGxcIlxyXG4gIFtuZ0NsYXNzXT1cIntcclxuICAgICdpbnZhbGlkLWJvcmRlcic6XHJcbiAgICAgIGZvcm1Hcm91cC5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uaW52YWxpZCAmJlxyXG4gICAgICBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWQsXHJcbiAgICAnaGFzLWZpbGUnOiBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlLFxyXG4gIH1cIlxyXG4gIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxyXG4gIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXHJcbiAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxyXG4gIChjbGljayk9XCJ0cmlnZ2VyQ2xpY2soKVwiXHJcbiAgW3N0eWxlLndpZHRoXT1cIndpZHRoQ29tcG9uZW50XCJcclxuPlxyXG4gIDxpbnB1dFxyXG4gICAgdHlwZT1cImZpbGVcIlxyXG4gICAgI2ZpbGVJbnB1dFxyXG4gICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgIFthY2NlcHRdPVwic2V0QWNjZXB0KClcIlxyXG4gICAgaGlkZGVuXHJcbiAgLz5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlXCIgY2xhc3M9XCJkcm9wem9uZS1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2xvdWQtaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmNsb3VkX3VwbG9hZDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxwIGNsYXNzPVwibWFpbi10ZXh0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJibHVlLXRleHRcIj5DbGlxdWUgcGFyYSBzZWxlY2lvbmFyPC9zcGFuPiBvdSBhcnJhc3RlIGFxdWlcclxuICAgICAgPC9wPlxyXG5cclxuICAgICAgQGlmKHN1YnRpdGxlKCkpIHtcclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10ZXh0XCI+e3sgc3VidGl0bGUoKSB9fSAobWF4LiB7eyBtYXhTaXplRmlsZSgpIH19TUIpPC9wPlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10ZXh0XCI+UERGLCBJbWFnZW5zIChtYXguIHt7IG1heFNpemVGaWxlKCkgfX1NQik8L3A+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImZvcm1Hcm91cC5nZXQoZm9ybUNvbnRyb2xOYW1lKT8udmFsdWUgYXMgZmlsZVwiXHJcbiAgICBjbGFzcz1cInNlbGVjdGVkLWZpbGUtY2FyZFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWluZm9cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgZmlsZS1pY29uXCI+ZGVzY3JpcHRpb248L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIiBbdGl0bGVdPVwiZmlsZS5uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBpY29uPVwicGkgcGktdGltZXNcIlxyXG4gICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLWRhbmdlciBjbG9zZS1idG5cIlxyXG4gICAgICAgIChjbGljayk9XCJkZWxldGVGaWxlKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgID48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIlxyXG4gICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwicHJvZ3Jlc3NWYWx1ZSgpKGZpbGUuc2l6ZSlcIlxyXG4gICAgICAgICAgW2NsYXNzLmxpbWl0LWV4Y2VlZGVkXT1cInByb2dyZXNzVmFsdWUoKShmaWxlLnNpemUpID49IDEwMFwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTFcIj5cclxuICAgICAgICA8c21hbGwgY2xhc3M9XCJlcnJvci10ZXh0XCIgKm5nSWY9XCJwcm9ncmVzc1ZhbHVlKCkoZmlsZS5zaXplKSA+PSAxMDBcIlxyXG4gICAgICAgICAgPkxpbWl0ZSBleGNlZGlkbzwvc21hbGxcclxuICAgICAgICA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXNpemUtbGFiZWwgbWwtYXV0b1wiPnt7XHJcbiAgICAgICAgICBmb3JtYXRCeXRlcyhmaWxlLnNpemUpXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHBcclxuICAqbmdJZj1cIlxyXG4gICAgZm9ybUdyb3VwLmdldChmb3JtQ29udHJvbE5hbWUpPy5pbnZhbGlkICYmXHJcbiAgICBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWRcclxuICBcIlxyXG4gIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXHJcbj5cclxuICBDYW1wbyBvYnJpZ2F0w7NyaW9cclxuPC9wPlxyXG4iXX0=
@@ -61,6 +61,8 @@ export class KvImageUploadComponent {
61
61
  }
62
62
  };
63
63
  reader.readAsDataURL(file);
64
+ if (!this.fileSrc)
65
+ this.deleteImage();
64
66
  }
65
67
  else {
66
68
  // ?! Comportamneto padrão --> Preservar <-- !!!
@@ -133,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
133
135
  type: ViewChild,
134
136
  args: ['fileInput']
135
137
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWltYWdlLXVwbG9hZC9rdi1pbWFnZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtaW1hZ2UtdXBsb2FkL2t2LWltYWdlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVFyRyxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFlBQW9CLG1CQUF3QyxFQUFtQixrQkFBc0M7UUFBakcsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUFtQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBR3JILFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ2hCLFlBQU8sR0FBZ0MsSUFBSSxDQUFDO1FBRzVDLG1CQUFjLEdBQVcsT0FBTyxDQUFDO1FBQ2pDLG9CQUFlLEdBQVcsTUFBTSxDQUFDO1FBRzFDLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakMsYUFBUSxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQTtRQUMzQixjQUFTLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFBO1FBQzVCLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUE7UUFDakMsd0JBQW1CLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRWxDLG1CQUFjLEdBQVcsT0FBTyxDQUFDO1FBSWhDLGFBQVEsR0FBc0IsSUFB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QVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbWFnZUN1dHRlclNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL2FwaS9zZXJ2aWNlcy9pbWFnZS5jdXR0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbnB1dCwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1pbWFnZS11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1pbWFnZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1pbWFnZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkltYWdlVXBsb2FkQ29tcG9uZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGltYWdlQ3V0dGVyU2VydmljZTogSW1hZ2VDdXR0ZXJTZXJ2aWNlKSB7XHJcblxyXG4gIH1cclxuICBmaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZmlsZVNyYzogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gIEBJbnB1dCgpIHdpZHRoQ29tcG9uZW50OiBzdHJpbmcgPSAnNDAwcHgnO1xyXG4gIEBJbnB1dCgpIGhlaWdodENvbXBvbmVudDogc3RyaW5nID0gJ2F1dG8nO1xyXG5cclxuXHJcbiAgY3V0SW1hZ2UgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgY3V0V2lkdGggPSBpbnB1dDxudW1iZXI+KDApXHJcbiAgY3V0SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyPigwKVxyXG4gIGN1dENpcmNsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKVxyXG4gIG1haW50YWluQXNwZWN0UmF0aW8gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHJcbiAgQElucHV0KCkgbWF4SGVpZ2h0SW1hZ2U6IHN0cmluZyA9ICc0MDBweCc7XHJcblxyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uITogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgZmlsZUVtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkZWxldGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0PzogRWxlbWVudFJlZjtcclxuXHJcblxyXG5cclxuXHJcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmFkZERyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5yZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG5cclxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVGaWxlKGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKGlucHV0LmZpbGVzICYmIGlucHV0LmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVGaWxlKGlucHV0LmZpbGVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUZpbGUoZmlsZTogRmlsZSkge1xyXG4gICAgaWYgKGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xyXG5cclxuICAgICAgaWYodGhpcy5jdXRJbWFnZSgpID09IHRydWUpe1xyXG4gICAgICAgIHRoaXMuZmlsZSA9IGZpbGU7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICByZWFkZXIub25sb2FkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICB0cnkge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuaW1hZ2VDdXR0ZXJTZXJ2aWNlLmN1dChyZWFkZXIucmVzdWx0Py50b1N0cmluZygpID8/ICcnLHRoaXMuY3V0V2lkdGgoKSx0aGlzLmN1dEhlaWdodCgpLHRoaXMuY3V0Q2lyY2xlKCksIGZhbHNlLCB0aGlzLm1haW50YWluQXNwZWN0UmF0aW8oKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVTcmMgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gdGhpcy5iYXNlNjRUb0ZpbGUodGhpcy5maWxlU3JjIGFzIHN0cmluZywgdGhpcy5maWxlPy5uYW1lID8/ICdmaWxlLnBuZycpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlRW1pdC5lbWl0KGZpbGUpXHJcblxyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuXHJcblxyXG5cclxuXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIC8vID8hIENvbXBvcnRhbW5ldG8gcGFkcsOjbyAtLT4gUHJlc2VydmFyIDwtLSAhISFcclxuICAgICAgICB0aGlzLmZpbGUgPSBmaWxlO1xyXG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVTcmMgPSByZWFkZXIucmVzdWx0O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgICAgdGhpcy5maWxlRW1pdC5lbWl0KGZpbGUpXHJcblxyXG4gICAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoJ0FwZW5hcyBhcnF1aXZvcyBkZSBpbWFnZW0gc8OjbyBwZXJtaXRpZG9zLicpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBiYXNlNjRUb0ZpbGUoYmFzZTY0U3RyaW5nOnN0cmluZywgZmlsZU5hbWU6c3RyaW5nKSB7XHJcbiAgICAvLyBFeHRyYWlyIG8gdGlwbyBNSU1FIGRhIHN0cmluZyBiYXNlNjRcclxuICAgIGNvbnN0IGFyciA9IGJhc2U2NFN0cmluZy5zcGxpdCgnLCcpO1xyXG4gICAgY29uc3QgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pOy8pIVsxXTtcclxuXHJcbiAgICAvLyBDb252ZXJ0ZXIgQmFzZTY0IHBhcmEgQmluw6FyaW9cclxuICAgIGNvbnN0IGJpbmFyeVN0cmluZyA9IGF0b2IoYXJyWzFdKTtcclxuICAgIGNvbnN0IGxlbiA9IGJpbmFyeVN0cmluZy5sZW5ndGg7XHJcbiAgICBjb25zdCB1aW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgdWludDhBcnJheVtpXSA9IGJpbmFyeVN0cmluZy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENyaWFyIHVtIEJsb2IgZSwgZW0gc2VndWlkYSwgdW0gb2JqZXRvIEZpbGVcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbdWludDhBcnJheV0sIHsgdHlwZTogbWltZSB9KTtcclxuICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbYmxvYl0sIGZpbGVOYW1lLCB7IHR5cGU6IG1pbWUgfSk7XHJcblxyXG4gICAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbiAgYWRkRHJhZ092ZXJDbGFzcyhldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZHJhZ292ZXInKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWdvdmVyJyk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVJbWFnZSgpIHtcclxuICAgIHRoaXMuZmlsZSA9IG51bGw7XHJcbiAgICB0aGlzLmZpbGVTcmMgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMuZGVsZXRlRW1pdC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxyXG4gICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAgIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcclxuICAgIGNsYXNzPVwicmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuIGJvcmRlci1kYXNoZWQgYm9yZGVyLTIgYm9yZGVyLXJvdW5kLWxnIGJvcmRlci1ncmF5LTQwMCBmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIlxyXG4gICAgW3N0eWxlLndpZHRoXT1cIndpZHRoQ29tcG9uZW50XCJcclxuICAgIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0Q29tcG9uZW50XCJcclxuPlxyXG5cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInctZnVsbCBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIlxyXG4gICAgICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgI2ZpbGVJbnB1dFxyXG4gICAgICAgICAgICBoaWRkZW5cclxuICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvKlwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCIhZmlsZVNyY1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIG10LTJcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDNyZW07XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgY2xvdWRfdXBsb2FkXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgIEBpZihkZXNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj57e2Rlc2NyaXB0aW9ufX08L3A+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj5BcnJhc3RlIGUgc29sdGUgdW1hIGltYWdlbSBhcXVpLCBvdTwvcD5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LXNlbWlib2xkXCI+Y2xpcXVlIHBhcmEgc2VsZWNpb27DoS1sYTwvcD5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZVNyYyB8fCBmaWxlXCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgIFtzcmNdPVwiZmlsZVNyY1wiXHJcbiAgICAgICAgICAgICAgICBbYWx0XT1cImZpbGU/Lm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1heEhlaWdodF09XCJtYXhIZWlnaHRJbWFnZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZihmaWxlU3JjIHx8IGZpbGUpIHtcclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XCJcclxuICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSW1hZ2UoKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdHJhbnNpdGlvbi1jb2xvcnMgdHJhbnNpdGlvbi1kdXJhdGlvbi01MDAgdGV4dC1yZWQtNzAwIGhvdmVyOnRleHQtcmVkLTUwMCB3LTJyZW0gaC0ycmVtXCJcclxuICAgICAgICAgICAgW3RleHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtpY29uXT1cIidwaSBwaS10cmFzaCdcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcblxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWltYWdlLXVwbG9hZC9rdi1pbWFnZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtaW1hZ2UtdXBsb2FkL2t2LWltYWdlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVFyRyxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFlBQW9CLG1CQUF3QyxFQUFtQixrQkFBc0M7UUFBakcsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUFtQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBR3JILFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ2hCLFlBQU8sR0FBZ0MsSUFBSSxDQUFDO1FBRzVDLG1CQUFjLEdBQVcsT0FBTyxDQUFDO1FBQ2pDLG9CQUFlLEdBQVcsTUFBTSxDQUFDO1FBRzFDLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakMsYUFBUSxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQTtRQUMzQixjQUFTLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFBO1FBQzVCLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUE7UUFDakMsd0JBQW1CLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRWxDLG1CQUFjLEdBQVcsT0FBTyxDQUFDO1FBSWhDLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFwQjdELENBQUM7SUEyQkQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBZ0I7UUFDMUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQjtRQUNyQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoQyxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFZO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBRS9DLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFVO1FBQ25CLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUVuQyxJQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBRWpCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxJQUFJLEVBQUU7b0JBQ3pCLElBQUksQ0FBQzt3QkFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7d0JBQ3ZLLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO3dCQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDO3dCQUN0RixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFFNUIsQ0FBQztvQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNqQixDQUFDO2dCQUNMLENBQUMsQ0FBQztnQkFDRixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUkzQixJQUFHLENBQUMsSUFBSSxDQUFDLE9BQU87b0JBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBRXRDLENBQUM7aUJBQUksQ0FBQztnQkFDSixnREFBZ0Q7Z0JBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDL0IsQ0FBQyxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBRTFCLENBQUM7UUFLSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsMkNBQTJDLENBQUMsQ0FBQTtRQUNsRixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFtQixFQUFFLFFBQWU7UUFDL0MsdUNBQXVDO1FBQ3ZDLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV6QyxnQ0FBZ0M7UUFDaEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCw4Q0FBOEM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFeEQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVDLGdCQUFnQixDQUFDLEtBQWdCO1FBQy9CLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQzlDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFnQjtRQUNsQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUM5QyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQzs4R0EvSVUsc0JBQXNCO2tHQUF0QixzQkFBc0IsNmxEQ1RuQyx3aUVBZ0VBOzsyRkR2RGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQjt5SEFVbEIsT0FBTztzQkFBZixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFTRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbWFnZUN1dHRlclNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL2FwaS9zZXJ2aWNlcy9pbWFnZS5jdXR0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbnB1dCwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1pbWFnZS11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1pbWFnZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1pbWFnZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkltYWdlVXBsb2FkQ29tcG9uZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGltYWdlQ3V0dGVyU2VydmljZTogSW1hZ2VDdXR0ZXJTZXJ2aWNlKSB7XHJcblxyXG4gIH1cclxuICBmaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZmlsZVNyYzogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gIEBJbnB1dCgpIHdpZHRoQ29tcG9uZW50OiBzdHJpbmcgPSAnNDAwcHgnO1xyXG4gIEBJbnB1dCgpIGhlaWdodENvbXBvbmVudDogc3RyaW5nID0gJ2F1dG8nO1xyXG5cclxuXHJcbiAgY3V0SW1hZ2UgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgY3V0V2lkdGggPSBpbnB1dDxudW1iZXI+KDApXHJcbiAgY3V0SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyPigwKVxyXG4gIGN1dENpcmNsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKVxyXG4gIG1haW50YWluQXNwZWN0UmF0aW8gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHJcbiAgQElucHV0KCkgbWF4SGVpZ2h0SW1hZ2U6IHN0cmluZyA9ICc0MDBweCc7XHJcblxyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uITogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgZmlsZUVtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkZWxldGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0PzogRWxlbWVudFJlZjtcclxuXHJcblxyXG5cclxuXHJcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmFkZERyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5yZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG5cclxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVGaWxlKGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKGlucHV0LmZpbGVzICYmIGlucHV0LmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVGaWxlKGlucHV0LmZpbGVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUZpbGUoZmlsZTogRmlsZSkge1xyXG4gICAgaWYgKGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xyXG5cclxuICAgICAgaWYodGhpcy5jdXRJbWFnZSgpID09IHRydWUpe1xyXG4gICAgICAgIHRoaXMuZmlsZSA9IGZpbGU7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICByZWFkZXIub25sb2FkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICB0cnkge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuaW1hZ2VDdXR0ZXJTZXJ2aWNlLmN1dChyZWFkZXIucmVzdWx0Py50b1N0cmluZygpID8/ICcnLHRoaXMuY3V0V2lkdGgoKSx0aGlzLmN1dEhlaWdodCgpLHRoaXMuY3V0Q2lyY2xlKCksIGZhbHNlLCB0aGlzLm1haW50YWluQXNwZWN0UmF0aW8oKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVTcmMgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gdGhpcy5iYXNlNjRUb0ZpbGUodGhpcy5maWxlU3JjIGFzIHN0cmluZywgdGhpcy5maWxlPy5uYW1lID8/ICdmaWxlLnBuZycpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlRW1pdC5lbWl0KGZpbGUpXHJcblxyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuXHJcblxyXG5cclxuICAgICAgICBpZighdGhpcy5maWxlU3JjKSB0aGlzLmRlbGV0ZUltYWdlKClcclxuXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIC8vID8hIENvbXBvcnRhbW5ldG8gcGFkcsOjbyAtLT4gUHJlc2VydmFyIDwtLSAhISFcclxuICAgICAgICB0aGlzLmZpbGUgPSBmaWxlO1xyXG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVTcmMgPSByZWFkZXIucmVzdWx0O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgICAgdGhpcy5maWxlRW1pdC5lbWl0KGZpbGUpXHJcblxyXG4gICAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoJ0FwZW5hcyBhcnF1aXZvcyBkZSBpbWFnZW0gc8OjbyBwZXJtaXRpZG9zLicpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBiYXNlNjRUb0ZpbGUoYmFzZTY0U3RyaW5nOnN0cmluZywgZmlsZU5hbWU6c3RyaW5nKSB7XHJcbiAgICAvLyBFeHRyYWlyIG8gdGlwbyBNSU1FIGRhIHN0cmluZyBiYXNlNjRcclxuICAgIGNvbnN0IGFyciA9IGJhc2U2NFN0cmluZy5zcGxpdCgnLCcpO1xyXG4gICAgY29uc3QgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pOy8pIVsxXTtcclxuXHJcbiAgICAvLyBDb252ZXJ0ZXIgQmFzZTY0IHBhcmEgQmluw6FyaW9cclxuICAgIGNvbnN0IGJpbmFyeVN0cmluZyA9IGF0b2IoYXJyWzFdKTtcclxuICAgIGNvbnN0IGxlbiA9IGJpbmFyeVN0cmluZy5sZW5ndGg7XHJcbiAgICBjb25zdCB1aW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgdWludDhBcnJheVtpXSA9IGJpbmFyeVN0cmluZy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENyaWFyIHVtIEJsb2IgZSwgZW0gc2VndWlkYSwgdW0gb2JqZXRvIEZpbGVcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbdWludDhBcnJheV0sIHsgdHlwZTogbWltZSB9KTtcclxuICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbYmxvYl0sIGZpbGVOYW1lLCB7IHR5cGU6IG1pbWUgfSk7XHJcblxyXG4gICAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbiAgYWRkRHJhZ092ZXJDbGFzcyhldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZHJhZ292ZXInKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWdvdmVyJyk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVJbWFnZSgpIHtcclxuICAgIHRoaXMuZmlsZSA9IG51bGw7XHJcbiAgICB0aGlzLmZpbGVTcmMgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMuZGVsZXRlRW1pdC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxyXG4gICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAgIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcclxuICAgIGNsYXNzPVwicmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuIGJvcmRlci1kYXNoZWQgYm9yZGVyLTIgYm9yZGVyLXJvdW5kLWxnIGJvcmRlci1ncmF5LTQwMCBmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIlxyXG4gICAgW3N0eWxlLndpZHRoXT1cIndpZHRoQ29tcG9uZW50XCJcclxuICAgIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0Q29tcG9uZW50XCJcclxuPlxyXG5cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInctZnVsbCBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIlxyXG4gICAgICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgI2ZpbGVJbnB1dFxyXG4gICAgICAgICAgICBoaWRkZW5cclxuICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvKlwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCIhZmlsZVNyY1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIG10LTJcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDNyZW07XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgY2xvdWRfdXBsb2FkXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgIEBpZihkZXNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj57e2Rlc2NyaXB0aW9ufX08L3A+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj5BcnJhc3RlIGUgc29sdGUgdW1hIGltYWdlbSBhcXVpLCBvdTwvcD5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LXNlbWlib2xkXCI+Y2xpcXVlIHBhcmEgc2VsZWNpb27DoS1sYTwvcD5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZVNyYyB8fCBmaWxlXCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgIFtzcmNdPVwiZmlsZVNyY1wiXHJcbiAgICAgICAgICAgICAgICBbYWx0XT1cImZpbGU/Lm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1heEhlaWdodF09XCJtYXhIZWlnaHRJbWFnZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZihmaWxlU3JjIHx8IGZpbGUpIHtcclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XCJcclxuICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSW1hZ2UoKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdHJhbnNpdGlvbi1jb2xvcnMgdHJhbnNpdGlvbi1kdXJhdGlvbi01MDAgdGV4dC1yZWQtNzAwIGhvdmVyOnRleHQtcmVkLTUwMCB3LTJyZW0gaC0ycmVtXCJcclxuICAgICAgICAgICAgW3RleHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtpY29uXT1cIidwaSBwaS10cmFzaCdcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcblxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, HostListener, Input, Output, ViewChild, } from '@angular/core';
1
+ import { Component, EventEmitter, HostListener, input, Input, Output, ViewChild, } from '@angular/core';
2
2
  import { BaseComponentInput } from '../../../api/base-components/base-component-input';
3
3
  import { ComponentProviders } from '../../../api/helpers/component-providers';
4
4
  import * as i0 from "@angular/core";
@@ -8,16 +8,21 @@ import * as i3 from "../../kv-error/kv-error.component";
8
8
  import * as i4 from "../../kv-label/kv-label.component";
9
9
  import * as i5 from "primeng/calendar";
10
10
  export class KvInputCalendarComponent extends BaseComponentInput {
11
+ clearEmit(event) {
12
+ this.onClear.emit(event);
13
+ }
11
14
  constructor(componentService) {
12
15
  super(componentService);
13
16
  this.isYear = false;
14
17
  this.isMonthYear = false;
18
+ this.showClear = input();
15
19
  this.showButtonBar = false;
16
20
  this.showIcon = true;
17
21
  this.showTime = false;
18
22
  this.selectionMode = 'single';
19
23
  this.onSelectionChange = new EventEmitter();
20
24
  this.onSelectionValue = new EventEmitter();
25
+ this.onClear = new EventEmitter();
21
26
  this.typeView = 'date';
22
27
  this.dateFormat = 'dd/mm/yy';
23
28
  this.lastInputValue = '';
@@ -126,11 +131,11 @@ export class KvInputCalendarComponent extends BaseComponentInput {
126
131
  return dateMasked;
127
132
  }
128
133
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvInputCalendarComponent, deps: [{ token: i1.ComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvInputCalendarComponent, selector: "kv-input-calendar", inputs: { isYear: "isYear", isMonthYear: "isMonthYear", minDate: "minDate", maxDate: "maxDate", defaultDate: "defaultDate", showButtonBar: "showButtonBar", showIcon: "showIcon", showTime: "showTime", selectionMode: "selectionMode" }, outputs: { onSelectionChange: "onSelectionChange", onSelectionValue: "onSelectionValue" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, providers: ComponentProviders(KvInputCalendarComponent), viewQueries: [{ propertyName: "dateFilter", first: true, predicate: ["dateFilter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span>\r\n <kv-label\r\n [componentId]=\"componentId\"\r\n [label]=\"label && label + (showAsterisk ? '*' : '')\"\r\n />\r\n <p-calendar\r\n\r\n dateMask\r\n (onInput)=\"onKeyDate($event)\"\r\n\r\n #dateFilter\r\n appendTo=\"body\"\r\n [class]=\"baseInputClass\"\r\n [id]=\"componentId\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [selectionMode]=\"selectionMode\"\r\n [showButtonBar]=\"showButtonBar\"\r\n [showIcon]=\"showIcon\"\r\n [showTime]=\"showTime\"\r\n [showOnFocus]=\"showTime || screenWidth > 1366 || selectionMode == 'range'\"\r\n [view]=\"typeView\"\r\n [dateFormat]=\"dateFormat\"\r\n (onBlur)=\"onInputBlur($event)\"\r\n (onClose)=\"onInputClose($event)\"\r\n (onSelect)=\"onInputChange($event)\"\r\n styleClass=\"inputs\"\r\n [placeholder]=\"placeholder\"\r\n >\r\n </p-calendar>\r\n\r\n <kv-error [hasError]=\"hasControlError()\">{{ erroMessage() }}</kv-error>\r\n</span>\r\n<ng-content></ng-content>\r\n", styles: ["::ng-deep .p-calendar-w-btn .p-datepicker-trigger{background-color:#f2f3f5;border:none;color:#000;border:solid 1px #d1d5db;width:1.875rem}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:hover{background-color:#d9dadb}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:disabled{background-color:#f2f3f5}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:active{background-color:#c0c1c2}::ng-deep input{font-size:.875rem}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165;--kv-danger-color: 220, 53, 69;--kv-success-color: 75, 181, 67;--kv-info-color: 58, 170, 208;--kv-warn-color: 241, 90, 36;--kv-contrast-color: 33, 37, 41}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::ng-deep .p-dialog{min-width:320px}::ng-deep *::-webkit-scrollbar{width:5px}::ng-deep *::-webkit-scrollbar-thumb{background-color:#00000080}::ng-deep *::-webkit-scrollbar-track{background-color:#dededebf}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.KvErrorComponent, selector: "kv-error", inputs: ["formControl", "hasError"] }, { kind: "component", type: i4.KvLabelComponent, selector: "kv-label", inputs: ["componentId", "label"] }, { kind: "component", type: i5.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }] }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvInputCalendarComponent, selector: "kv-input-calendar", inputs: { isYear: { classPropertyName: "isYear", publicName: "isYear", isSignal: false, isRequired: false, transformFunction: null }, isMonthYear: { classPropertyName: "isMonthYear", publicName: "isMonthYear", isSignal: false, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: false, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: false, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, defaultDate: { classPropertyName: "defaultDate", publicName: "defaultDate", isSignal: false, isRequired: false, transformFunction: null }, showButtonBar: { classPropertyName: "showButtonBar", publicName: "showButtonBar", isSignal: false, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: false, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: false, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange", onSelectionValue: "onSelectionValue", onClear: "onClear" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, providers: ComponentProviders(KvInputCalendarComponent), viewQueries: [{ propertyName: "dateFilter", first: true, predicate: ["dateFilter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span>\r\n <kv-label\r\n [componentId]=\"componentId\"\r\n [label]=\"label && label + (showAsterisk ? '*' : '')\"\r\n />\r\n <p-calendar\r\n\r\n dateMask\r\n (onInput)=\"onKeyDate($event)\"\r\n\r\n #dateFilter\r\n appendTo=\"body\"\r\n [class]=\"baseInputClass\"\r\n [id]=\"componentId\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n [minDate]=\"minDate\"\r\n (onClearClick)=\"this.onClear.emit($event)\"\r\n (onClear)=\"this.onClear.emit($event)\"\r\n [showClear]=\"showClear() && !showIcon\"\r\n [maxDate]=\"maxDate\"\r\n [selectionMode]=\"selectionMode\"\r\n [showButtonBar]=\"showButtonBar\"\r\n [showIcon]=\"showIcon\"\r\n [showTime]=\"showTime\"\r\n [showOnFocus]=\"showTime || screenWidth > 1366 || selectionMode == 'range'\"\r\n [view]=\"typeView\"\r\n [dateFormat]=\"dateFormat\"\r\n (onBlur)=\"onInputBlur($event)\"\r\n (onClose)=\"onInputClose($event)\"\r\n (onSelect)=\"onInputChange($event)\"\r\n styleClass=\"inputs\"\r\n [placeholder]=\"placeholder\"\r\n >\r\n </p-calendar>\r\n\r\n <kv-error [hasError]=\"hasControlError()\">{{ erroMessage() }}</kv-error>\r\n</span>\r\n<ng-content></ng-content>\r\n", styles: ["::ng-deep .p-calendar-w-btn .p-datepicker-trigger{background-color:#f2f3f5;border:none;color:#000;border:solid 1px #d1d5db;width:1.875rem}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:hover{background-color:#d9dadb}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:disabled{background-color:#f2f3f5}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:active{background-color:#c0c1c2}::ng-deep input{font-size:.875rem}:host ::ng-deep .p-calendar-clear-icon.p-icon{right:10%}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165;--kv-danger-color: 220, 53, 69;--kv-success-color: 75, 181, 67;--kv-info-color: 58, 170, 208;--kv-warn-color: 241, 90, 36;--kv-contrast-color: 33, 37, 41}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::ng-deep .p-dialog{min-width:320px}::ng-deep *::-webkit-scrollbar{width:5px}::ng-deep *::-webkit-scrollbar-thumb{background-color:#00000080}::ng-deep *::-webkit-scrollbar-track{background-color:#dededebf}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.KvErrorComponent, selector: "kv-error", inputs: ["formControl", "hasError"] }, { kind: "component", type: i4.KvLabelComponent, selector: "kv-label", inputs: ["componentId", "label"] }, { kind: "component", type: i5.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }] }); }
130
135
  }
131
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvInputCalendarComponent, decorators: [{
132
137
  type: Component,
133
- args: [{ selector: 'kv-input-calendar', providers: ComponentProviders(KvInputCalendarComponent), template: "<span>\r\n <kv-label\r\n [componentId]=\"componentId\"\r\n [label]=\"label && label + (showAsterisk ? '*' : '')\"\r\n />\r\n <p-calendar\r\n\r\n dateMask\r\n (onInput)=\"onKeyDate($event)\"\r\n\r\n #dateFilter\r\n appendTo=\"body\"\r\n [class]=\"baseInputClass\"\r\n [id]=\"componentId\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [selectionMode]=\"selectionMode\"\r\n [showButtonBar]=\"showButtonBar\"\r\n [showIcon]=\"showIcon\"\r\n [showTime]=\"showTime\"\r\n [showOnFocus]=\"showTime || screenWidth > 1366 || selectionMode == 'range'\"\r\n [view]=\"typeView\"\r\n [dateFormat]=\"dateFormat\"\r\n (onBlur)=\"onInputBlur($event)\"\r\n (onClose)=\"onInputClose($event)\"\r\n (onSelect)=\"onInputChange($event)\"\r\n styleClass=\"inputs\"\r\n [placeholder]=\"placeholder\"\r\n >\r\n </p-calendar>\r\n\r\n <kv-error [hasError]=\"hasControlError()\">{{ erroMessage() }}</kv-error>\r\n</span>\r\n<ng-content></ng-content>\r\n", styles: ["::ng-deep .p-calendar-w-btn .p-datepicker-trigger{background-color:#f2f3f5;border:none;color:#000;border:solid 1px #d1d5db;width:1.875rem}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:hover{background-color:#d9dadb}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:disabled{background-color:#f2f3f5}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:active{background-color:#c0c1c2}::ng-deep input{font-size:.875rem}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165;--kv-danger-color: 220, 53, 69;--kv-success-color: 75, 181, 67;--kv-info-color: 58, 170, 208;--kv-warn-color: 241, 90, 36;--kv-contrast-color: 33, 37, 41}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::ng-deep .p-dialog{min-width:320px}::ng-deep *::-webkit-scrollbar{width:5px}::ng-deep *::-webkit-scrollbar-thumb{background-color:#00000080}::ng-deep *::-webkit-scrollbar-track{background-color:#dededebf}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"] }]
138
+ args: [{ selector: 'kv-input-calendar', providers: ComponentProviders(KvInputCalendarComponent), template: "<span>\r\n <kv-label\r\n [componentId]=\"componentId\"\r\n [label]=\"label && label + (showAsterisk ? '*' : '')\"\r\n />\r\n <p-calendar\r\n\r\n dateMask\r\n (onInput)=\"onKeyDate($event)\"\r\n\r\n #dateFilter\r\n appendTo=\"body\"\r\n [class]=\"baseInputClass\"\r\n [id]=\"componentId\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n [minDate]=\"minDate\"\r\n (onClearClick)=\"this.onClear.emit($event)\"\r\n (onClear)=\"this.onClear.emit($event)\"\r\n [showClear]=\"showClear() && !showIcon\"\r\n [maxDate]=\"maxDate\"\r\n [selectionMode]=\"selectionMode\"\r\n [showButtonBar]=\"showButtonBar\"\r\n [showIcon]=\"showIcon\"\r\n [showTime]=\"showTime\"\r\n [showOnFocus]=\"showTime || screenWidth > 1366 || selectionMode == 'range'\"\r\n [view]=\"typeView\"\r\n [dateFormat]=\"dateFormat\"\r\n (onBlur)=\"onInputBlur($event)\"\r\n (onClose)=\"onInputClose($event)\"\r\n (onSelect)=\"onInputChange($event)\"\r\n styleClass=\"inputs\"\r\n [placeholder]=\"placeholder\"\r\n >\r\n </p-calendar>\r\n\r\n <kv-error [hasError]=\"hasControlError()\">{{ erroMessage() }}</kv-error>\r\n</span>\r\n<ng-content></ng-content>\r\n", styles: ["::ng-deep .p-calendar-w-btn .p-datepicker-trigger{background-color:#f2f3f5;border:none;color:#000;border:solid 1px #d1d5db;width:1.875rem}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:hover{background-color:#d9dadb}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:disabled{background-color:#f2f3f5}::ng-deep .p-calendar-w-btn .p-datepicker-trigger:active{background-color:#c0c1c2}::ng-deep input{font-size:.875rem}:host ::ng-deep .p-calendar-clear-icon.p-icon{right:10%}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165;--kv-danger-color: 220, 53, 69;--kv-success-color: 75, 181, 67;--kv-info-color: 58, 170, 208;--kv-warn-color: 241, 90, 36;--kv-contrast-color: 33, 37, 41}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::ng-deep .p-dialog{min-width:320px}::ng-deep *::-webkit-scrollbar{width:5px}::ng-deep *::-webkit-scrollbar-thumb{background-color:#00000080}::ng-deep *::-webkit-scrollbar-track{background-color:#dededebf}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"] }]
134
139
  }], ctorParameters: () => [{ type: i1.ComponentService }], propDecorators: { isYear: [{
135
140
  type: Input
136
141
  }], isMonthYear: [{
@@ -153,6 +158,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
153
158
  type: Output
154
159
  }], onSelectionValue: [{
155
160
  type: Output
161
+ }], onClear: [{
162
+ type: Output
156
163
  }], dateFilter: [{
157
164
  type: ViewChild,
158
165
  args: ['dateFilter']
@@ -160,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
160
167
  type: HostListener,
161
168
  args: ['window:resize', ['$event']]
162
169
  }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtaW5wdXQtY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0LWNhbGVuZGFyL2t2LWlucHV0LWNhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1pbnB1dC1jYWxlbmRhci9rdi1pbnB1dC1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7QUFhOUUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGtCQUF3QjtJQWlCcEUsWUFBWSxnQkFBa0M7UUFDNUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFqQmpCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFJN0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGtCQUFhLEdBQW9DLFFBQVEsQ0FBQztRQUN6RCxzQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxRCxxQkFBZ0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuRSxhQUFRLEdBQXFCLE1BQU0sQ0FBQztR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cUI7UUFDaEYsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7OEdBN0lVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHFiQUh4QixrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQywySkNyQnpELGtsQ0FxQ0E7OzJGRGJhLHdCQUF3QjtrQkFWcEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFNbEIsa0JBQWtCLDBCQUEwQjtxRkFJOUMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDMEIsVUFBVTtzQkFBMUMsU0FBUzt1QkFBQyxZQUFZO2dCQVV2QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJUeXBlVmlldyB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50SW5wdXQgfSBmcm9tICcuLi8uLi8uLi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWlucHV0JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UHJvdmlkZXJzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2hlbHBlcnMvY29tcG9uZW50LXByb3ZpZGVycyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvY29tcG9uZW50LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1pbnB1dC1jYWxlbmRhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWlucHV0LWNhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL2t2LWlucHV0LWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJyxcclxuICAgICcuLi8uLi9rZWV2by1jb21wb25lbnRzLXN0eWxlcy5zY3NzJyxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogQ29tcG9uZW50UHJvdmlkZXJzKEt2SW5wdXRDYWxlbmRhckNvbXBvbmVudCksXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgS3ZJbnB1dENhbGVuZGFyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudElucHV0PERhdGU+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBpc1llYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc01vbnRoWWVhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1pbkRhdGUhOiBEYXRlO1xyXG4gIEBJbnB1dCgpIG1heERhdGUhOiBEYXRlO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHREYXRlITogRGF0ZTtcclxuICBASW5wdXQoKSBzaG93QnV0dG9uQmFyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0ljb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dUaW1lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgJ3JhbmdlJyA9ICdzaW5nbGUnO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uVmFsdWU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVGaWx0ZXInKSBwcml2YXRlIGRhdGVGaWx0ZXI6IGFueTtcclxuICB0eXBlVmlldzogQ2FsZW5kYXJUeXBlVmlldyA9ICdkYXRlJztcclxuICBkYXRlRm9ybWF0OiBzdHJpbmcgPSAnZGQvbW0veXknO1xyXG4gIHNjcmVlbldpZHRoITogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uV2luZG93UmVzaXplKCkge1xyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNZZWFyKSB7XHJcbiAgICAgIHRoaXMudHlwZVZpZXcgPSAneWVhcic7XHJcbiAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9ICd5eSc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNNb250aFllYXIpIHtcclxuICAgICAgdGhpcy50eXBlVmlldyA9ICdtb250aCc7XHJcbiAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9ICdtbS95eSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnR5cGVWaWV3ID0gJ2RhdGUnO1xyXG4gICAgICB0aGlzLmRhdGVGb3JtYXQgPSAnZGQvbW0veXknO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5oaWRlT25SYW5nZU1vZGUoKTtcclxuICAgIHRoaXMub25TZWxlY3Rpb25WYWx1ZS5lbWl0KGV2ZW50KTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbCkge1xyXG4gICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5mb3JtQ29udHJvbC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlT25SYW5nZU1vZGUoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09ICdyYW5nZScpIHtcclxuICAgICAgaWYgKHRoaXMuZGF0ZUZpbHRlci52YWx1ZVsxXSkge1xyXG4gICAgICAgIHRoaXMuZGF0ZUZpbHRlci5oaWRlT3ZlcmxheSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsYXN0SW5wdXRWYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgb25LZXlEYXRlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnR5cGVWaWV3ID09PSAnZGF0ZScpIHtcclxuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICBsZXQgaW5wdXRWYWx1ZSA9IGlucHV0RWxlbWVudC52YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpOyAvLyBSZW1vdmUgdHVkbyBxdWUgbsOjbyBzZWphIGTDrWdpdG9cclxuICAgICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSBpbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7IC8vIFBlZ2EgYSBwb3Npw6fDo28gYXR1YWwgZG8gY3Vyc29yXHJcblxyXG4gICAgICAvLyBMaW1pdGEgYSBlbnRyYWRhIGEgOCBjYXJhY3RlcmVzIChkZG1teXl5eSlcclxuICAgICAgaWYgKGlucHV0VmFsdWUubGVuZ3RoID4gOCkge1xyXG4gICAgICAgIGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlLnN1YnN0cmluZygwLCA4KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaW5wdXRWYWx1ZSA9IHRoaXMubWFza0RhdGUoaW5wdXRWYWx1ZSk7XHJcbiAgICAgIGxldCBpbmRBZGljYW8gPSBpbnB1dFZhbHVlLmxlbmd0aCA+IHRoaXMubGFzdElucHV0VmFsdWUubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLmxhc3RJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZTtcclxuXHJcbiAgICAgIC8vIENhbGN1bGEgYSBkaWZlcmVuw6dhIGRlIHRhbWFuaG8gYXDDs3MgYXBsaWNhciBhIG3DoXNjYXJhXHJcbiAgICAgIGNvbnN0IG1hc2tlZExlbmd0aCA9IGlucHV0VmFsdWUubGVuZ3RoO1xyXG4gICAgICBjb25zdCBsZW5ndGhEaWZmID0gbWFza2VkTGVuZ3RoIC0gdGhpcy5sYXN0SW5wdXRWYWx1ZS5sZW5ndGg7XHJcblxyXG4gICAgICAvLyBBdHVhbGl6YSBvIHZhbG9yIGRvIGlucHV0IHNlbSBwZXJkZXIgYSBwb3Npw6fDo28gZG8gY3Vyc29yXHJcbiAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGlucHV0VmFsdWU7XHJcblxyXG4gICAgICAvLyBBanVzdGEgYSBwb3Npw6fDo28gZG8gY3Vyc29yIGRlIGFjb3JkbyBjb20gYSBtdWRhbsOnYSBjYXVzYWRhIHBlbGEgbcOhc2NhcmFcclxuICAgICAgbGV0IG5ld0N1cnNvclBvc2l0aW9uID0gY3Vyc29yUG9zaXRpb24gKyBsZW5ndGhEaWZmO1xyXG5cclxuICAgICAgLy8gU2UgbyBjdXJzb3IgZXN0YXZhIGV4YXRhbWVudGUgZW0gdW1hIHBvc2nDp8OjbyBkZSBiYXJyYSBlIGZvaSB1bWEgYWRpw6fDo28sIGFqdXN0YSBwYXJhIHB1bGFyIGEgYmFycmEgKCBzb21lbnRlIG5hIGFkacOnw6NvIGRlIGNhcmFjdGVyZXMgKVxyXG4gICAgICBpZiAoaW5kQWRpY2FvKSB7XHJcbiAgICAgICAgaWYgKGN1cnNvclBvc2l0aW9uID09PSAzIHx8IGN1cnNvclBvc2l0aW9uID09PSA2KSB7XHJcbiAgICAgICAgICBuZXdDdXJzb3JQb3NpdGlvbiArPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyBFdml0YSBxdWUgbyBjdXJzb3IgdsOhIGFsw6ltIGRvIGZpbmFsIGRvIHZhbG9yIGRpZ2l0YWRvXHJcbiAgICAgIGlmIChuZXdDdXJzb3JQb3NpdGlvbiA+IGlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICBuZXdDdXJzb3JQb3NpdGlvbiA9IGlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIERlZmluZSBhIG5vdmEgcG9zacOnw6NvIGRvIGN1cnNvclxyXG4gICAgICBpbnB1dEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UobmV3Q3Vyc29yUG9zaXRpb24sIG5ld0N1cnNvclBvc2l0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uSW5wdXRCbHVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25JbnB1dEJsdXIoZXZlbnQpO1xyXG5cclxuICAgIGlmICh0aGlzLnR5cGVWaWV3ID09PSAnZGF0ZScpIHtcclxuICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDsgLy8gQ2FzdCBwYXJhIEhUTUxJbnB1dEVsZW1lbnRcclxuICAgICAgaWYgKGlucHV0ICYmIGlucHV0LnZhbHVlKSB7XHJcbiAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGlucHV0LnZhbHVlOyAvLyBQZWdhIG8gdmFsb3IgZG8gaW5wdXRcclxuICAgICAgICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlU3RyaW5nLnNwbGl0KCcvJyk7XHJcblxyXG4gICAgICAgIC8vIFZlcmlmaWNhIHNlIMOpIHVtYSBkYXRhIHbDoWxpZGFcclxuICAgICAgICBpZiAoZGF5ICYmIG1vbnRoICYmIHllYXIgJiYgZGF5Lmxlbmd0aCA9PT0gMiAmJiBtb250aC5sZW5ndGggPT09IDIgJiYgeWVhci5sZW5ndGggPT09IDQpIHtcclxuICAgICAgICAgIGNvbnN0IG9iakRhdGUgPSBuZXcgRGF0ZSgreWVhciwgK21vbnRoIC0gMSwgK2RheSk7XHJcblxyXG4gICAgICAgICAgaWYgKCghaXNOYU4ob2JqRGF0ZS5nZXRUaW1lKCkpKSAmJiAhKCttb250aCA+IDEyIHx8ICtkYXkgPiAzMSkpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlRmlsdGVyLnZhbHVlID0gb2JqRGF0ZTsgLy8gQXRyaWJ1aSBhIGRhdGEgc2VtIGJhcnJhcyBhbyBkYXRlRmlsdGVyXHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgaW52YWxpZERhdGU6IHRydWUsIGVycm9NZXNzYWdlOiAnRGF0YSBJbnZhbGlkYSEnIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFza0RhdGUoZGF0ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIC8vIEFwbGljYSBhIG3DoXNjYXJhIChkZC9tbS95eXl5KVxyXG4gICAgbGV0IGRhdGVNYXNrZWQgPSBkYXRlO1xyXG4gICAgaWYgKGRhdGUubGVuZ3RoID49IDUpIHtcclxuICAgICAgZGF0ZU1hc2tlZCA9IGRhdGUucmVwbGFjZSgvXihcXGR7Mn0pKFxcZHsyfSkoXFxkezAsNH0pLywgJyQxLyQyLyQzJyk7IC8vIEZvcm1hdGEgY29tbyBkZC9tbS95eXl5XHJcbiAgICB9IGVsc2UgaWYgKGRhdGUubGVuZ3RoID49IDMpIHtcclxuICAgICAgZGF0ZU1hc2tlZCA9IGRhdGUucmVwbGFjZSgvXihcXGR7Mn0pKFxcZHswLDJ9KS8sICckMS8kMicpOyAvLyBGb3JtYXRhIGNvbW8gZGQvbW1cclxuICAgIH1cclxuICAgIHJldHVybiBkYXRlTWFza2VkO1xyXG4gIH1cclxufVxyXG4iLCI8c3Bhbj5cclxuICA8a3YtbGFiZWxcclxuICAgIFtjb21wb25lbnRJZF09XCJjb21wb25lbnRJZFwiXHJcbiAgICBbbGFiZWxdPVwibGFiZWwgJiYgbGFiZWwgKyAoc2hvd0FzdGVyaXNrID8gJyonIDogJycpXCJcclxuICAvPlxyXG4gIDxwLWNhbGVuZGFyXHJcblxyXG4gICAgZGF0ZU1hc2tcclxuICAgIChvbklucHV0KT1cIm9uS2V5RGF0ZSgkZXZlbnQpXCJcclxuXHJcbiAgICAjZGF0ZUZpbHRlclxyXG4gICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgIFtjbGFzc109XCJiYXNlSW5wdXRDbGFzc1wiXHJcbiAgICBbaWRdPVwiY29tcG9uZW50SWRcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW2RlZmF1bHREYXRlXT1cImRlZmF1bHREYXRlXCJcclxuICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxyXG4gICAgW21heERhdGVdPVwibWF4RGF0ZVwiXHJcbiAgICBbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlXCJcclxuICAgIFtzaG93QnV0dG9uQmFyXT1cInNob3dCdXR0b25CYXJcIlxyXG4gICAgW3Nob3dJY29uXT1cInNob3dJY29uXCJcclxuICAgIFtzaG93VGltZV09XCJzaG93VGltZVwiXHJcbiAgICBbc2hvd09uRm9jdXNdPVwic2hvd1RpbWUgfHwgc2NyZWVuV2lkdGggPiAxMzY2IHx8IHNlbGVjdGlvbk1vZGUgPT0gJ3JhbmdlJ1wiXHJcbiAgICBbdmlld109XCJ0eXBlVmlld1wiXHJcbiAgICBbZGF0ZUZvcm1hdF09XCJkYXRlRm9ybWF0XCJcclxuICAgIChvbkJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICAob25DbG9zZSk9XCJvbklucHV0Q2xvc2UoJGV2ZW50KVwiXHJcbiAgICAob25TZWxlY3QpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICAgIHN0eWxlQ2xhc3M9XCJpbnB1dHNcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICA+XHJcbiAgPC9wLWNhbGVuZGFyPlxyXG5cclxuICA8a3YtZXJyb3IgW2hhc0Vycm9yXT1cImhhc0NvbnRyb2xFcnJvcigpXCI+e3sgZXJyb01lc3NhZ2UoKSB9fTwva3YtZXJyb3I+XHJcbjwvc3Bhbj5cclxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4iXX0=
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtaW5wdXQtY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0LWNhbGVuZGFyL2t2LWlucHV0LWNhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1pbnB1dC1jYWxlbmRhci9rdi1pbnB1dC1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7O0FBYTlFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxrQkFBd0I7SUFDdEUsU0FBUyxDQUFFLEtBQVU7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQXVCQyxZQUFZLGdCQUFrQztRQUM1QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQXZCakIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUl0QyxjQUFTLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFHcEIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGtCQUFh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RUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtRQUMvRixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVCLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMscUJBQXFCO1FBQ2hGLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOzhHQXRKVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixxaURBSHhCLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLDJKQ3RCekQscXVDQXdDQTs7MkZEZmEsd0JBQXdCO2tCQVZwQyxTQUFTOytCQUNFLG1CQUFtQixhQU1sQixrQkFBa0IsMEJBQTBCO3FGQU85QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBRXlCLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsWUFBWTtnQkFXdkIsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgaW5wdXQsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENhbGVuZGFyLCBDYWxlbmRhclR5cGVWaWV3IH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnRJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtaW5wdXQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQcm92aWRlcnMgfSBmcm9tICcuLi8uLi8uLi9hcGkvaGVscGVycy9jb21wb25lbnQtcHJvdmlkZXJzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FwaS9zZXJ2aWNlcy9jb21wb25lbnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWlucHV0LWNhbGVuZGFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtaW5wdXQtY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogW1xyXG4gICAgJy4va3YtaW5wdXQtY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgJy4uLy4uL2tlZXZvLWNvbXBvbmVudHMtc3R5bGVzLnNjc3MnLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBDb21wb25lbnRQcm92aWRlcnMoS3ZJbnB1dENhbGVuZGFyQ29tcG9uZW50KSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBLdklucHV0Q2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50SW5wdXQ8RGF0ZT4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5jbGVhckVtaXQoIGV2ZW50OiBhbnkpIHtcclxuICB0aGlzLm9uQ2xlYXIuZW1pdChldmVudCk7XHJcbn1cclxuICBASW5wdXQoKSBpc1llYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc01vbnRoWWVhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1pbkRhdGUhOiBEYXRlO1xyXG4gIEBJbnB1dCgpIG1heERhdGUhOiBEYXRlO1xyXG4gIFxyXG4gIHNob3dDbGVhciA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGRlZmF1bHREYXRlITogRGF0ZTtcclxuICBASW5wdXQoKSBzaG93QnV0dG9uQmFyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0ljb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dUaW1lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgJ3JhbmdlJyA9ICdzaW5nbGUnO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uVmFsdWU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkNsZWFyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZGF0ZUZpbHRlcicpIHB1YmxpYyBkYXRlRmlsdGVyITogQ2FsZW5kYXI7XHJcbiAgXHJcbiAgdHlwZVZpZXc6IENhbGVuZGFyVHlwZVZpZXcgPSAnZGF0ZSc7XHJcbiAgZGF0ZUZvcm1hdDogc3RyaW5nID0gJ2RkL21tL3l5JztcclxuICBzY3JlZW5XaWR0aCE6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvbldpbmRvd1Jlc2l6ZSgpIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IERhdGUpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzWWVhcikge1xyXG4gICAgICB0aGlzLnR5cGVWaWV3ID0gJ3llYXInO1xyXG4gICAgICB0aGlzLmRhdGVGb3JtYXQgPSAneXknO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzTW9udGhZZWFyKSB7XHJcbiAgICAgIHRoaXMudHlwZVZpZXcgPSAnbW9udGgnO1xyXG4gICAgICB0aGlzLmRhdGVGb3JtYXQgPSAnbW0veXknO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlVmlldyA9ICdkYXRlJztcclxuICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gJ2RkL21tL3l5JztcclxuICAgIH1cclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuaGlkZU9uUmFuZ2VNb2RlKCk7XHJcbiAgICB0aGlzLm9uU2VsZWN0aW9uVmFsdWUuZW1pdChldmVudCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZU9uUmFuZ2VNb2RlKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PSAncmFuZ2UnKSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGVGaWx0ZXIudmFsdWVbMV0pIHtcclxuICAgICAgICB0aGlzLmRhdGVGaWx0ZXIuaGlkZU92ZXJsYXkoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGFzdElucHV0VmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gIG9uS2V5RGF0ZShldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy50eXBlVmlldyA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgbGV0IGlucHV0VmFsdWUgPSBpbnB1dEVsZW1lbnQudmFsdWUucmVwbGFjZSgvXFxEL2csICcnKTsgLy8gUmVtb3ZlIHR1ZG8gcXVlIG7Do28gc2VqYSBkw61naXRvXHJcbiAgICAgIGNvbnN0IGN1cnNvclBvc2l0aW9uID0gaW5wdXRFbGVtZW50LnNlbGVjdGlvblN0YXJ0OyAvLyBQZWdhIGEgcG9zacOnw6NvIGF0dWFsIGRvIGN1cnNvclxyXG5cclxuICAgICAgLy8gTGltaXRhIGEgZW50cmFkYSBhIDggY2FyYWN0ZXJlcyAoZGRtbXl5eXkpXHJcbiAgICAgIGlmIChpbnB1dFZhbHVlLmxlbmd0aCA+IDgpIHtcclxuICAgICAgICBpbnB1dFZhbHVlID0gaW5wdXRWYWx1ZS5zdWJzdHJpbmcoMCwgOCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlucHV0VmFsdWUgPSB0aGlzLm1hc2tEYXRlKGlucHV0VmFsdWUpO1xyXG4gICAgICBsZXQgaW5kQWRpY2FvID0gaW5wdXRWYWx1ZS5sZW5ndGggPiB0aGlzLmxhc3RJbnB1dFZhbHVlLmxlbmd0aCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgdGhpcy5sYXN0SW5wdXRWYWx1ZSA9IGlucHV0VmFsdWU7XHJcblxyXG4gICAgICAvLyBDYWxjdWxhIGEgZGlmZXJlbsOnYSBkZSB0YW1hbmhvIGFww7NzIGFwbGljYXIgYSBtw6FzY2FyYVxyXG4gICAgICBjb25zdCBtYXNrZWRMZW5ndGggPSBpbnB1dFZhbHVlLmxlbmd0aDtcclxuICAgICAgY29uc3QgbGVuZ3RoRGlmZiA9IG1hc2tlZExlbmd0aCAtIHRoaXMubGFzdElucHV0VmFsdWUubGVuZ3RoO1xyXG5cclxuICAgICAgLy8gQXR1YWxpemEgbyB2YWxvciBkbyBpbnB1dCBzZW0gcGVyZGVyIGEgcG9zacOnw6NvIGRvIGN1cnNvclxyXG4gICAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSBpbnB1dFZhbHVlO1xyXG5cclxuICAgICAgLy8gQWp1c3RhIGEgcG9zacOnw6NvIGRvIGN1cnNvciBkZSBhY29yZG8gY29tIGEgbXVkYW7Dp2EgY2F1c2FkYSBwZWxhIG3DoXNjYXJhXHJcbiAgICAgIGxldCBuZXdDdXJzb3JQb3NpdGlvbiA9IGN1cnNvclBvc2l0aW9uICsgbGVuZ3RoRGlmZjtcclxuXHJcbiAgICAgIC8vIFNlIG8gY3Vyc29yIGVzdGF2YSBleGF0YW1lbnRlIGVtIHVtYSBwb3Npw6fDo28gZGUgYmFycmEgZSBmb2kgdW1hIGFkacOnw6NvLCBhanVzdGEgcGFyYSBwdWxhciBhIGJhcnJhICggc29tZW50ZSBuYSBhZGnDp8OjbyBkZSBjYXJhY3RlcmVzIClcclxuICAgICAgaWYgKGluZEFkaWNhbykge1xyXG4gICAgICAgIGlmIChjdXJzb3JQb3NpdGlvbiA9PT0gMyB8fCBjdXJzb3JQb3NpdGlvbiA9PT0gNikge1xyXG4gICAgICAgICAgbmV3Q3Vyc29yUG9zaXRpb24gKz0gMTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gRXZpdGEgcXVlIG8gY3Vyc29yIHbDoSBhbMOpbSBkbyBmaW5hbCBkbyB2YWxvciBkaWdpdGFkb1xyXG4gICAgICBpZiAobmV3Q3Vyc29yUG9zaXRpb24gPiBpbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgbmV3Q3Vyc29yUG9zaXRpb24gPSBpbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBEZWZpbmUgYSBub3ZhIHBvc2nDp8OjbyBkbyBjdXJzb3JcclxuICAgICAgaW5wdXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKG5ld0N1cnNvclBvc2l0aW9uLCBuZXdDdXJzb3JQb3NpdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvbklucHV0Qmx1cihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHN1cGVyLm9uSW5wdXRCbHVyKGV2ZW50KTtcclxuXHJcbiAgICBpZiAodGhpcy50eXBlVmlldyA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7IC8vIENhc3QgcGFyYSBIVE1MSW5wdXRFbGVtZW50XHJcbiAgICAgIGlmIChpbnB1dCAmJiBpbnB1dC52YWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGVTdHJpbmcgPSBpbnB1dC52YWx1ZTsgLy8gUGVnYSBvIHZhbG9yIGRvIGlucHV0XHJcbiAgICAgICAgY29uc3QgW2RheSwgbW9udGgsIHllYXJdID0gZGF0ZVN0cmluZy5zcGxpdCgnLycpO1xyXG5cclxuICAgICAgICAvLyBWZXJpZmljYSBzZSDDqSB1bWEgZGF0YSB2w6FsaWRhXHJcbiAgICAgICAgaWYgKGRheSAmJiBtb250aCAmJiB5ZWFyICYmIGRheS5sZW5ndGggPT09IDIgJiYgbW9udGgubGVuZ3RoID09PSAyICYmIHllYXIubGVuZ3RoID09PSA0KSB7XHJcbiAgICAgICAgICBjb25zdCBvYmpEYXRlID0gbmV3IERhdGUoK3llYXIsICttb250aCAtIDEsICtkYXkpO1xyXG5cclxuICAgICAgICAgIGlmICgoIWlzTmFOKG9iakRhdGUuZ2V0VGltZSgpKSkgJiYgISgrbW9udGggPiAxMiB8fCArZGF5ID4gMzEpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZUZpbHRlci52YWx1ZSA9IG9iakRhdGU7IC8vIEF0cmlidWkgYSBkYXRhIHNlbSBiYXJyYXMgYW8gZGF0ZUZpbHRlclxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGludmFsaWREYXRlOiB0cnVlLCBlcnJvTWVzc2FnZTogJ0RhdGEgSW52YWxpZGEhJyB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hc2tEYXRlKGRhdGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAvLyBBcGxpY2EgYSBtw6FzY2FyYSAoZGQvbW0veXl5eSlcclxuICAgIGxldCBkYXRlTWFza2VkID0gZGF0ZTtcclxuICAgIGlmIChkYXRlLmxlbmd0aCA+PSA1KSB7XHJcbiAgICAgIGRhdGVNYXNrZWQgPSBkYXRlLnJlcGxhY2UoL14oXFxkezJ9KShcXGR7Mn0pKFxcZHswLDR9KS8sICckMS8kMi8kMycpOyAvLyBGb3JtYXRhIGNvbW8gZGQvbW0veXl5eVxyXG4gICAgfSBlbHNlIGlmIChkYXRlLmxlbmd0aCA+PSAzKSB7XHJcbiAgICAgIGRhdGVNYXNrZWQgPSBkYXRlLnJlcGxhY2UoL14oXFxkezJ9KShcXGR7MCwyfSkvLCAnJDEvJDInKTsgLy8gRm9ybWF0YSBjb21vIGRkL21tXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0ZU1hc2tlZDtcclxuICB9XHJcbn1cclxuIiwiPHNwYW4+XHJcbiAgPGt2LWxhYmVsXHJcbiAgICBbY29tcG9uZW50SWRdPVwiY29tcG9uZW50SWRcIlxyXG4gICAgW2xhYmVsXT1cImxhYmVsICYmIGxhYmVsICsgKHNob3dBc3RlcmlzayA/ICcqJyA6ICcnKVwiXHJcbiAgLz5cclxuICA8cC1jYWxlbmRhclxyXG5cclxuICAgIGRhdGVNYXNrXHJcbiAgICAob25JbnB1dCk9XCJvbktleURhdGUoJGV2ZW50KVwiXHJcblxyXG4gICAgI2RhdGVGaWx0ZXJcclxuICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICBbY2xhc3NdPVwiYmFzZUlucHV0Q2xhc3NcIlxyXG4gICAgW2lkXT1cImNvbXBvbmVudElkXCJcclxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtkZWZhdWx0RGF0ZV09XCJkZWZhdWx0RGF0ZVwiXHJcbiAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcclxuICAgIChvbkNsZWFyQ2xpY2spPVwidGhpcy5vbkNsZWFyLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAob25DbGVhcik9XCJ0aGlzLm9uQ2xlYXIuZW1pdCgkZXZlbnQpXCJcclxuICAgIFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyKCkgJiYgIXNob3dJY29uXCJcclxuICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxyXG4gICAgW3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZVwiXHJcbiAgICBbc2hvd0J1dHRvbkJhcl09XCJzaG93QnV0dG9uQmFyXCJcclxuICAgIFtzaG93SWNvbl09XCJzaG93SWNvblwiXHJcbiAgICBbc2hvd1RpbWVdPVwic2hvd1RpbWVcIlxyXG4gICAgW3Nob3dPbkZvY3VzXT1cInNob3dUaW1lIHx8IHNjcmVlbldpZHRoID4gMTM2NiB8fCBzZWxlY3Rpb25Nb2RlID09ICdyYW5nZSdcIlxyXG4gICAgW3ZpZXddPVwidHlwZVZpZXdcIlxyXG4gICAgW2RhdGVGb3JtYXRdPVwiZGF0ZUZvcm1hdFwiXHJcbiAgICAob25CbHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxyXG4gICAgKG9uQ2xvc2UpPVwib25JbnB1dENsb3NlKCRldmVudClcIlxyXG4gICAgKG9uU2VsZWN0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBzdHlsZUNsYXNzPVwiaW5wdXRzXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgPlxyXG4gIDwvcC1jYWxlbmRhcj5cclxuXHJcbiAgPGt2LWVycm9yIFtoYXNFcnJvcl09XCJoYXNDb250cm9sRXJyb3IoKVwiPnt7IGVycm9NZXNzYWdlKCkgfX08L2t2LWVycm9yPlxyXG48L3NwYW4+XHJcbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuIl19
@@ -0,0 +1,35 @@
1
+ import { Component, input, computed } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class KvProgressBarNewComponent {
4
+ constructor() {
5
+ this.currentProgress = input(59);
6
+ this.totalProgress = input(87);
7
+ this.size = input('medium');
8
+ this.percentage = computed(() => {
9
+ const total = this.totalProgress();
10
+ if (total === 0)
11
+ return 0;
12
+ return Math.min(100, Math.max(0, (this.currentProgress() / total) * 100)).toFixed(2);
13
+ });
14
+ this.setSize = computed(() => {
15
+ let size = this.size();
16
+ switch (size) {
17
+ case 'small':
18
+ return 'xs';
19
+ case 'medium':
20
+ return 'sm';
21
+ case 'large':
22
+ return 'md';
23
+ default:
24
+ return 'sm';
25
+ }
26
+ });
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvProgressBarNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvProgressBarNewComponent, isStandalone: true, selector: "kv-progress-bar-new", inputs: { currentProgress: { classPropertyName: "currentProgress", publicName: "currentProgress", isSignal: true, isRequired: false, transformFunction: null }, totalProgress: { classPropertyName: "totalProgress", publicName: "totalProgress", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex flex-row align-items-center gap-2 p-2 w-full\">\r\n <span class=\"text-gray-500 text-{{setSize()}}\">{{ currentProgress() }} de {{ totalProgress() }} |</span>\r\n\r\n <div class=\"progress-bar\">\r\n <div class=\"progress-bar-fill\" [style.width.%]=\"percentage()\"></div>\r\n </div>\r\n\r\n <span class=\"text-gray-500 text-{{setSize()}}\">{{percentage()}}%</span>\r\n \r\n</div>\r\n", styles: [".progress-bar{flex:1;height:.5rem;background-color:#e0e0e0;border-radius:10px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#0a8765,#0fc288);border-radius:10px;transition:width .3s ease-in-out}\n"] }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvProgressBarNewComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'kv-progress-bar-new', standalone: true, imports: [], template: "<div class=\"flex flex-row align-items-center gap-2 p-2 w-full\">\r\n <span class=\"text-gray-500 text-{{setSize()}}\">{{ currentProgress() }} de {{ totalProgress() }} |</span>\r\n\r\n <div class=\"progress-bar\">\r\n <div class=\"progress-bar-fill\" [style.width.%]=\"percentage()\"></div>\r\n </div>\r\n\r\n <span class=\"text-gray-500 text-{{setSize()}}\">{{percentage()}}%</span>\r\n \r\n</div>\r\n", styles: [".progress-bar{flex:1;height:.5rem;background-color:#e0e0e0;border-radius:10px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#0a8765,#0fc288);border-radius:10px;transition:width .3s ease-in-out}\n"] }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcHJvZ3Jlc3MtYmFyLW5ldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1wcm9ncmVzcy1iYXItbmV3L2t2LXByb2dyZXNzLWJhci1uZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcHJvZ3Jlc3MtYmFyLW5ldy9rdi1wcm9ncmVzcy1iYXItbmV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTM0QsTUFBTSxPQUFPLHlCQUF5QjtJQVB0QztRQVFFLG9CQUFlLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLFNBQUksR0FBRyxLQUFLLENBQStCLFFBQVEsQ0FBQyxDQUFDO1FBRXJELGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQyxJQUFJLEtBQUssS0FBSyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkYsQ0FBQyxDQUFDLENBQUM7UUFFSCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFdkIsUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFDYixLQUFLLE9BQU87b0JBQ1YsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsS0FBSyxRQUFRO29CQUNYLE9BQU8sSUFBSSxDQUFDO2dCQUNkLEtBQUssT0FBTztvQkFDVixPQUFPLElBQUksQ0FBQztnQkFDZDtvQkFDRSxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7S0FHSDs4R0EzQlkseUJBQXlCO2tHQUF6Qix5QkFBeUIsc2ZDVHRDLDRaQVVBOzsyRkREYSx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtcHJvZ3Jlc3MtYmFyLW5ldycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXSxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtcHJvZ3Jlc3MtYmFyLW5ldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LXByb2dyZXNzLWJhci1uZXcuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlByb2dyZXNzQmFyTmV3Q29tcG9uZW50IHtcclxuICBjdXJyZW50UHJvZ3Jlc3MgPSBpbnB1dDxudW1iZXI+KDU5KTtcclxuICB0b3RhbFByb2dyZXNzID0gaW5wdXQ8bnVtYmVyPig4Nyk7XHJcbiAgc2l6ZSA9IGlucHV0PCdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZSc+KCdtZWRpdW0nKTtcclxuXHJcbiAgcGVyY2VudGFnZSA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IHRvdGFsID0gdGhpcy50b3RhbFByb2dyZXNzKCk7XHJcbiAgICBpZiAodG90YWwgPT09IDApIHJldHVybiAwO1xyXG4gICAgcmV0dXJuIE1hdGgubWluKDEwMCwgTWF0aC5tYXgoMCwgKHRoaXMuY3VycmVudFByb2dyZXNzKCkgLyB0b3RhbCkgKiAxMDApKS50b0ZpeGVkKDIpO1xyXG4gIH0pO1xyXG5cclxuICBzZXRTaXplID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgbGV0IHNpemUgPSB0aGlzLnNpemUoKTtcclxuXHJcbiAgICBzd2l0Y2ggKHNpemUpIHtcclxuICAgICAgY2FzZSAnc21hbGwnOlxyXG4gICAgICAgIHJldHVybiAneHMnO1xyXG4gICAgICBjYXNlICdtZWRpdW0nOlxyXG4gICAgICAgIHJldHVybiAnc20nO1xyXG4gICAgICBjYXNlICdsYXJnZSc6XHJcbiAgICAgICAgcmV0dXJuICdtZCc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICdzbSc7XHJcbiAgICB9XHJcbiAgfSlcclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBwLTIgdy1mdWxsXCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIHRleHQte3tzZXRTaXplKCl9fVwiPnt7IGN1cnJlbnRQcm9ncmVzcygpIH19IGRlIHt7IHRvdGFsUHJvZ3Jlc3MoKSB9fSB8PC9zcGFuPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyLWZpbGxcIiBbc3R5bGUud2lkdGguJV09XCJwZXJjZW50YWdlKClcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIHRleHQte3tzZXRTaXplKCl9fVwiPnt7cGVyY2VudGFnZSgpfX0lPC9zcGFuPlxyXG4gIFxyXG48L2Rpdj5cclxuIl19