keevo-components 1.8.398 → 1.8.400

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.
@@ -23,6 +23,8 @@ export class KvContentViewerComponent {
23
23
  this.displaySidebar = false;
24
24
  this.isSelected = false;
25
25
  this.visualizadorDocumentos = false;
26
+ this.indvisualizado = false;
27
+ this.keyVisualizado = 'indvisualizado';
26
28
  // #endregion
27
29
  // #region Outputs
28
30
  this.onScrollHandler = new EventEmitter();
@@ -36,7 +38,11 @@ export class KvContentViewerComponent {
36
38
  trackByFn(index, item) {
37
39
  return item.idarquivo;
38
40
  }
41
+ isVisualizado(option) {
42
+ return option[this.keyVisualizado] || false;
43
+ }
39
44
  visualizarPreview(arquivo) {
45
+ arquivo[this.keyVisualizado] = true;
40
46
  this.arquivoPreview.set(arquivo);
41
47
  this.onSelectFile.emit(arquivo);
42
48
  }
@@ -45,15 +51,15 @@ export class KvContentViewerComponent {
45
51
  //se o escroll chegar até o final
46
52
  if (element.scrollHeight - element.scrollTop === element.clientHeight) {
47
53
  // this.buscarProximosDocumentos();
48
- this.onScrollHandler.emit();
54
+ this.onScrollHandler.emit($event);
49
55
  }
50
56
  }
51
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvContentViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvContentViewerComponent, selector: "kv-content-viewer", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, arquivo: { classPropertyName: "arquivo", publicName: "arquivo", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, blob: { classPropertyName: "blob", publicName: "blob", isSignal: true, isRequired: false, transformFunction: null }, ekpContent: { classPropertyName: "ekpContent", publicName: "ekpContent", isSignal: true, isRequired: false, transformFunction: null }, extencaoDocumento: { classPropertyName: "extencaoDocumento", publicName: "extencaoDocumento", isSignal: false, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: false, isRequired: false, transformFunction: null }, visualizadorDocumentos: { classPropertyName: "visualizadorDocumentos", publicName: "visualizadorDocumentos", isSignal: false, isRequired: false, transformFunction: null }, cardTemplate: { classPropertyName: "cardTemplate", publicName: "cardTemplate", isSignal: false, isRequired: false, transformFunction: null }, contentTemplate: { classPropertyName: "contentTemplate", publicName: "contentTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentSelectedTemplate: { classPropertyName: "noDocumentSelectedTemplate", publicName: "noDocumentSelectedTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentListTemplate: { classPropertyName: "noDocumentListTemplate", publicName: "noDocumentListTemplate", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onScrollHandler: "onScrollHandler", onSelectFile: "onSelectFile" }, ngImport: i0, template: "<div class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\" style=\"height: 1000vh;\">\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil overflow-x-hidden\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-scroll': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; max-height: calc(100vh - 100px);\"\r\n >\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"col-12\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n style=\"min-height: 5rem\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis \" style=\"max-width: 100%;\">\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container \r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-file-preview aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\" flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-row flex-1 px-2 justify-content-center p-2\"\r\n style=\"position: sticky; bottom: 0; background-color: white\"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n </div>\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div class=\"card-perfil col-12 md:col-8 lg:col-9\" style=\"position: relative\">\r\n @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\" \r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n >\r\n </kv-file-viewer-novo>\r\n \r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"arquivoPreview(); else noDocumentSelected\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Digital_personal_files-pana_3.png'\r\n \"\r\n style=\"max-height: 50%;\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f!important}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{max-height:calc(100vh - 300px)}@media (max-height: 915px){.custom-max-height{max-height:94%}}@media (max-height: 805px){.custom-max-height{max-height:90%}}@media (max-height: 720px){.custom-max-height{max-height:85%}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.KvFileViewerNovoComponent, selector: "kv-file-viewer-novo", inputs: ["arquivo", "type", "blob", "width", "height"] }, { kind: "component", type: i3.NgxLoadingComponent, selector: "ngx-loading", inputs: ["show", "config", "template"] }] }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvContentViewerComponent, selector: "kv-content-viewer", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, arquivo: { classPropertyName: "arquivo", publicName: "arquivo", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, blob: { classPropertyName: "blob", publicName: "blob", isSignal: true, isRequired: false, transformFunction: null }, ekpContent: { classPropertyName: "ekpContent", publicName: "ekpContent", isSignal: true, isRequired: false, transformFunction: null }, extencaoDocumento: { classPropertyName: "extencaoDocumento", publicName: "extencaoDocumento", isSignal: false, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: false, isRequired: false, transformFunction: null }, visualizadorDocumentos: { classPropertyName: "visualizadorDocumentos", publicName: "visualizadorDocumentos", isSignal: false, isRequired: false, transformFunction: null }, cardTemplate: { classPropertyName: "cardTemplate", publicName: "cardTemplate", isSignal: false, isRequired: false, transformFunction: null }, contentTemplate: { classPropertyName: "contentTemplate", publicName: "contentTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentSelectedTemplate: { classPropertyName: "noDocumentSelectedTemplate", publicName: "noDocumentSelectedTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentListTemplate: { classPropertyName: "noDocumentListTemplate", publicName: "noDocumentListTemplate", isSignal: false, isRequired: false, transformFunction: null }, indvisualizado: { classPropertyName: "indvisualizado", publicName: "indvisualizado", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onScrollHandler: "onScrollHandler", onSelectFile: "onSelectFile" }, ngImport: i0, template: "<div class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\" style=\"height: 1000vh;\">\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil overflow-x-hidden\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-scroll': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; max-height: calc(100vh - 100px);\"\r\n >\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"col-12\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n style=\"min-height: 5rem\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-naoVisualizado': !isVisualizado(option),\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis \" style=\"max-width: 100%;\">\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container \r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-file-preview aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\" flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-row flex-1 px-2 justify-content-center p-2\"\r\n style=\"position: sticky; bottom: 0; background-color: white\"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n </div>\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div class=\"card-perfil col-12 md:col-8 lg:col-9\" style=\"position: relative\">\r\n @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\" \r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n >\r\n </kv-file-viewer-novo>\r\n \r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"arquivoPreview(); else noDocumentSelected\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Digital_personal_files-pana_3.png'\r\n \"\r\n style=\"max-height: 50%; margin-top: 2rem;\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f!important}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{max-height:calc(100vh - 300px)}@media (max-height: 915px){.custom-max-height{max-height:94%}}@media (max-height: 805px){.custom-max-height{max-height:90%}}@media (max-height: 720px){.custom-max-height{max-height:85%}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.KvFileViewerNovoComponent, selector: "kv-file-viewer-novo", inputs: ["arquivo", "type", "blob", "width", "height"] }, { kind: "component", type: i3.NgxLoadingComponent, selector: "ngx-loading", inputs: ["show", "config", "template"] }] }); }
53
59
  }
54
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvContentViewerComponent, decorators: [{
55
61
  type: Component,
56
- args: [{ selector: 'kv-content-viewer', template: "<div class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\" style=\"height: 1000vh;\">\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil overflow-x-hidden\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-scroll': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; max-height: calc(100vh - 100px);\"\r\n >\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"col-12\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n style=\"min-height: 5rem\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis \" style=\"max-width: 100%;\">\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container \r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-file-preview aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\" flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-row flex-1 px-2 justify-content-center p-2\"\r\n style=\"position: sticky; bottom: 0; background-color: white\"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n </div>\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div class=\"card-perfil col-12 md:col-8 lg:col-9\" style=\"position: relative\">\r\n @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\" \r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n >\r\n </kv-file-viewer-novo>\r\n \r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"arquivoPreview(); else noDocumentSelected\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Digital_personal_files-pana_3.png'\r\n \"\r\n style=\"max-height: 50%;\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f!important}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{max-height:calc(100vh - 300px)}@media (max-height: 915px){.custom-max-height{max-height:94%}}@media (max-height: 805px){.custom-max-height{max-height:90%}}@media (max-height: 720px){.custom-max-height{max-height:85%}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"] }]
62
+ args: [{ selector: 'kv-content-viewer', template: "<div class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\" style=\"height: 1000vh;\">\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil overflow-x-hidden\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-scroll': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; max-height: calc(100vh - 100px);\"\r\n >\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"col-12\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n style=\"min-height: 5rem\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-naoVisualizado': !isVisualizado(option),\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis \" style=\"max-width: 100%;\">\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container \r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-file-preview aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\" flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-row flex-1 px-2 justify-content-center p-2\"\r\n style=\"position: sticky; bottom: 0; background-color: white\"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n </div>\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div class=\"card-perfil col-12 md:col-8 lg:col-9\" style=\"position: relative\">\r\n @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\" \r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n >\r\n </kv-file-viewer-novo>\r\n \r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"arquivoPreview(); else noDocumentSelected\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Digital_personal_files-pana_3.png'\r\n \"\r\n style=\"max-height: 50%; margin-top: 2rem;\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f!important}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{max-height:calc(100vh - 300px)}@media (max-height: 915px){.custom-max-height{max-height:94%}}@media (max-height: 805px){.custom-max-height{max-height:90%}}@media (max-height: 720px){.custom-max-height{max-height:85%}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"] }]
57
63
  }], propDecorators: { extencaoDocumento: [{
58
64
  type: Input
59
65
  }], totalRecords: [{
@@ -68,9 +74,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
68
74
  type: Input
69
75
  }], noDocumentListTemplate: [{
70
76
  type: Input
77
+ }], indvisualizado: [{
78
+ type: Input
71
79
  }], onScrollHandler: [{
72
80
  type: Output
73
81
  }], onSelectFile: [{
74
82
  type: Output
75
83
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtY29udGVudC12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtY29udGVudC12aWV3ZXIva3YtY29udGVudC12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtY29udGVudC12aWV3ZXIva3YtY29udGVudC12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWUsTUFBTSxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRMUgsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQVNFLGtCQUFrQjtRQUNuQixlQUFVLEdBQXVCLEtBQUssQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUNsRCxrQkFBYSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsQyxZQUFPLEdBQUcsS0FBSyxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUMvQyxtQkFBYyxHQUFHLE1BQU0sQ0FBTSxTQUFTLENBQUMsQ0FBQztRQUN4QyxnQkFBVyxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNqQyxTQUFJLEdBQUcsS0FBSyxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUM1QyxTQUFJLEdBQUcsS0FBSyxDQUFPLEVBQVMsQ0FBQyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELGVBQVUsR0FBRyxLQUFLLENBQXVCLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELHdCQUFtQixHQUFHLFFBQVEsQ0FDN0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQ3JDLENBQUM7UUFPRixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ2QsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQ25CLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQVVqRCxhQUFhO1FBRWIsa0JBQWtCO1FBQ1Isb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0tBdUI5RDtJQS9CRCxTQUFTO1FBQ1AsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQU1ELGFBQWE7SUFFYixTQUFTLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDaEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUFZO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWxDLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBYTtRQUN6QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBcUIsQ0FBQztRQUU3QyxpQ0FBaUM7UUFDakMsSUFBSSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEtBQUssT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RFLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDOzhHQWhFWSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwwMkRDUnJDLDIzSkFpSUE7OzJGRHpIYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsbUJBQW1COzhCQTBCdEIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQVNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBJbnB1dFNpZ25hbCwgT3V0cHV0LCBzaWduYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWNvbnRlbnQtdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtY29udGVudC12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1jb250ZW50LXZpZXdlci5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2Q29udGVudFZpZXdlckNvbXBvbmVudCB7XHJcblxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiBTaWduYWxzXHJcbiBkYXRhU291cmNlOiBJbnB1dFNpZ25hbDxhbnlbXT4gPSBpbnB1dDxhbnlbXT4oW10pO1xyXG4gcGFnaW5hSW5pY2lhbCA9IHNpZ25hbDxudW1iZXI+KDEpO1xyXG4gYXJxdWl2byA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuIGFycXVpdm9QcmV2aWV3ID0gc2lnbmFsPGFueT4odW5kZWZpbmVkKTtcclxuIG5vbWVBcnF1aXZvID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG4gdHlwZSA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuIGJsb2IgPSBpbnB1dDxCbG9iPignJyBhcyBhbnkpO1xyXG4gaWRhcnF1aXZvID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuIGVrcENvbnRlbnQgPSBpbnB1dDxTYWZlSHRtbCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuIHRvdGFsSXRlbnNDYXJyZWdhZG8gPSBjb21wdXRlZChcclxuICAoKSA9PiB0aGlzLmRhdGFTb3VyY2UoKT8ubGVuZ3RoIHx8IDBcclxuKTtcclxuLy8gI2VuZHJlZ2lvblxyXG5cclxuLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcbmVtcHJlc2FTZWxlY2lvbmFkYSE6IGFueTtcclxuaWR0aXBvZG9jdW1lbnRvITogbnVtYmVyW107XHJcbkBJbnB1dCgpIGV4dGVuY2FvRG9jdW1lbnRvITogc3RyaW5nO1xyXG5wcmV2aWV3T246IGJvb2xlYW4gPSBmYWxzZTtcclxuc2VsZWN0ZWRJdGVtOiBhbnkgPSB7fTtcclxuQElucHV0KCkgdG90YWxSZWNvcmRzOiBudW1iZXIgPSAwO1xyXG5pc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuZGlzcGxheVNpZGViYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuaXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5ASW5wdXQoKSB2aXN1YWxpemFkb3JEb2N1bWVudG9zOiBib29sZWFuID0gZmFsc2U7XHJcbkBJbnB1dCgpIGNhcmRUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbkBJbnB1dCgpIGNvbnRlbnRUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbkBJbnB1dCgpIG5vRG9jdW1lbnRTZWxlY3RlZFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuQElucHV0KCkgbm9Eb2N1bWVudExpc3RUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG50b2RheURhdGUoKTogc3RyaW5nIHtcclxuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgcmV0dXJuIHRvZGF5LnRvTG9jYWxlRGF0ZVN0cmluZygncHQtQlInLCB7IGRheTogJzItZGlnaXQnLCBtb250aDogJzItZGlnaXQnLCB5ZWFyOiAnbnVtZXJpYycgfSk7XHJcbn1cclxuLy8gI2VuZHJlZ2lvblxyXG5cclxuLy8gI3JlZ2lvbiBPdXRwdXRzXHJcbkBPdXRwdXQoKSBvblNjcm9sbEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5AT3V0cHV0KCkgb25TZWxlY3RGaWxlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuLy8gI2VuZHJlZ2lvblxyXG5cclxudHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IGFueSB7XHJcbiAgcmV0dXJuIGl0ZW0uaWRhcnF1aXZvOyBcclxufVxyXG5cclxudmlzdWFsaXphclByZXZpZXcoYXJxdWl2bzogYW55KTogdm9pZCB7XHJcbiAgdGhpcy5hcnF1aXZvUHJldmlldy5zZXQoYXJxdWl2byk7XHJcbiAgdGhpcy5vblNlbGVjdEZpbGUuZW1pdChhcnF1aXZvKTtcclxuICBcclxufVxyXG5cclxuc2Nyb2xsSGFuZGxlcigkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgY29uc3QgZWxlbWVudCA9ICRldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gIC8vc2UgbyBlc2Nyb2xsIGNoZWdhciBhdMOpIG8gZmluYWxcclxuICBpZiAoZWxlbWVudC5zY3JvbGxIZWlnaHQgLSBlbGVtZW50LnNjcm9sbFRvcCA9PT0gZWxlbWVudC5jbGllbnRIZWlnaHQpIHtcclxuICAgIC8vIHRoaXMuYnVzY2FyUHJveGltb3NEb2N1bWVudG9zKCk7XHJcbiAgICB0aGlzLm9uU2Nyb2xsSGFuZGxlci5lbWl0KCk7XHJcbiAgfVxyXG59XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG1kOmZsZXgtcm93IGdhcC0yIG10LTMgY3VzdG9tLW1heC1oZWlnaHRcIiBzdHlsZT1cImhlaWdodDogMTAwMHZoO1wiPlxyXG4gIDwhLS0gTGlzdGEgZGUgZG9jdW1lbnRvcyAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNhcmQtcGVyZmlsIG92ZXJmbG93LXgtaGlkZGVuXCJcclxuICAgIChzY3JvbGwpPVwic2Nyb2xsSGFuZGxlcigkZXZlbnQpXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ292ZXJmbG93LXktc2Nyb2xsJzogZGF0YVNvdXJjZSgpLmxlbmd0aCA+IDAsXHJcbiAgICAgICdvdmVyZmxvdy15LWhpZGRlbic6IGRhdGFTb3VyY2UoKS5sZW5ndGggPT09IDBcclxuICAgIH1cIlxyXG4gICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XCJcclxuICA+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZGF0YVNvdXJjZSgpLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlEb2N1bWVudExpc3RcIiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICA8IS0tIExpc3RhIGRlIGNhcmRzIC0tPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkYXRhU291cmNlKCk7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgY2xhc3M9XCJjYXJkLW5vcm1hbCBvdXRsaW5lLW5vbmUgYm9yZGVyLXJvdW5kLXhsIHctZnVsbCBwLTIgbS0xIGdyaWQgcC1mbHVpZCBmbGV4IGZsZXgtcm93IGZsZXgtbm93cmFwIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDVyZW1cIlxyXG4gICAgICAgIChjbGljayk9XCJ2aXN1YWxpemFyUHJldmlldyhvcHRpb24pXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAnY2FyZC1zZWxlY3RlZCc6IG9wdGlvbiA9PT0gYXJxdWl2b1ByZXZpZXcoKSxcclxuICAgICdjYXJkLW5vcm1hbCc6IG9wdGlvbiAhPT0gYXJxdWl2b1ByZXZpZXcoKSxcclxuICAgfVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWdyb3ctMSBtbC0yIGZsZXgtY29sdW1uIGdhcC0xIG0tMCBwLTAgb3ZlcmZsb3ctaGlkZGVuIHRleHQtb3ZlcmZsb3ctZWxsaXBzaXMgXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FyZFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFxyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbW1vbi1zdHlsZSBkZWZhdWx0LWNhcmRcIj5cclxuICAgICAgICAgICAgPGgxIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtYmFzZSBwLTAgbS0wXCI+QmVtLXZpbmRvITwvaDE+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgS3YtZmlsZS1wcmV2aWV3IGFndWFyZGFuZG8gdW0gdGVtcGxhdGUuLi5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LXNtIHAtMCBtLTBcIj5EYXRhOiB7eyB0b2RheURhdGUoKSB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eURvY3VtZW50TGlzdD5cclxuICAgICAgQGlmKCFub0RvY3VtZW50TGlzdFRlbXBsYXRlKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNjAwIG10LTQgbS0zXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj4gaW5ib3ggPC9zcGFuPlxyXG4gICAgICAgICAgPHA+TmVuaHVtIGRvY3VtZW50byBkaXNwb27DrXZlbC48L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTQgbS0zXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9Eb2N1bWVudExpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8IS0tIENvbnRhZG9yIGRlIGRvY3VtZW50b3MgLSBGaXhvIG5hIHBhcnRlIGluZmVyaW9yIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInN0aWNreS1jb3VudGVyIGZsZXggZmxleC1yb3cgZmxleC0xIHB4LTIganVzdGlmeS1jb250ZW50LWNlbnRlciBwLTJcIlxyXG4gICAgICBzdHlsZT1cInBvc2l0aW9uOiBzdGlja3k7IGJvdHRvbTogMDsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVcIlxyXG4gICAgPlxyXG4gICAgICA8c3Bhbj57eyB0b3RhbEl0ZW5zQ2FycmVnYWRvKCkgfX0gZGUge3sgdG90YWxSZWNvcmRzIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gVmlzdWFsaXphZG9yIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkLXBlcmZpbCBjb2wtMTIgbWQ6Y29sLTggbGc6Y29sLTlcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxyXG4gICAgQGlmKHZpc3VhbGl6YWRvckRvY3VtZW50b3MpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFycXVpdm8oKTsgZWxzZSBub0RvY3VtZW50U2VsZWN0ZWRcIj5cclxuICAgICAgICBAaWYoaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgPG5neC1sb2FkaW5nXHJcbiAgICAgICAgICBbc2hvd109XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICAgW2NvbmZpZ109XCJ7IGJhY2tkcm9wQm9yZGVyUmFkaXVzOiAnM3B4JywgZnVsbFNjcmVlbkJhY2tkcm9wOiBmYWxzZSB9XCJcclxuICAgICAgICA+PC9uZ3gtbG9hZGluZz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGt2LWZpbGUtdmlld2VyLW5vdm9cclxuICAgICAgICAqbmdJZj1cImV4dGVuY2FvRG9jdW1lbnRvICE9PSAnZWtwJ1wiXHJcbiAgICAgICAgICBbYXJxdWl2b109XCJhcnF1aXZvKCkhXCJcclxuICAgICAgICAgIFt0eXBlXT1cInR5cGUoKSFcIlxyXG4gICAgICAgICAgW2Jsb2JdPVwiYmxvYigpIVwiXHJcbiAgICAgICAgICBbd2lkdGhdPVwiJzEwMCUnXCIgXHJcbiAgICAgICAgICBbaGVpZ2h0XT1cIicxMDAlJ1wiXHJcbiAgICAgICAgICBjbGFzcz1cImZpbGUtdmlld2VyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9rdi1maWxlLXZpZXdlci1ub3ZvPlxyXG4gIFxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGlkPVwiaHRtbC1jb250ZW50XCJcclxuICAgICAgICAgIFtpbm5lckhUTUxdPVwiZWtwQ29udGVudCgpXCJcclxuICAgICAgICAgICpuZ0lmPVwiZXh0ZW5jYW9Eb2N1bWVudG8gPT09ICdla3AnXCJcclxuICAgICAgICAgIGNsYXNzPVwiZWtwLWNvbnRlbnRcIlxyXG4gICAgICAgID48L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFycXVpdm9QcmV2aWV3KCk7IGVsc2Ugbm9Eb2N1bWVudFNlbGVjdGVkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgY29udGVudFRlbXBsYXRlO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogYXJxdWl2b1ByZXZpZXcoKSB9XHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcbiAgICA8bmctdGVtcGxhdGUgI25vRG9jdW1lbnRTZWxlY3RlZD5cclxuICAgICAgQGlmKCFub0RvY3VtZW50U2VsZWN0ZWRUZW1wbGF0ZSkge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJuby1kb2N1bWVudC1tZXNzYWdlIGZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMFwiPlxyXG4gICAgICAgICAgU2VsZWNpb25lIHVtIGFycXVpdm8gcGFyYSB2aXN1YWxpemHDp8Ojb1xyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8aW1nXHJcbiAgICAgICAgICBbc3JjXT1cIlxyXG4gICAgICAgICAgICAnaHR0cHM6Ly93b3JrLWFzc2V0cy5rZWV2by5jb20uYnIvaW1nL0RpZ2l0YWxfcGVyc29uYWxfZmlsZXMtcGFuYV8zLnBuZydcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBzdHlsZT1cIm1heC1oZWlnaHQ6IDUwJTtcIlxyXG4gICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm5vRG9jdW1lbnRTZWxlY3RlZFRlbXBsYXRlXCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICB9XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtY29udGVudC12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtY29udGVudC12aWV3ZXIva3YtY29udGVudC12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtY29udGVudC12aWV3ZXIva3YtY29udGVudC12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWUsTUFBTSxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRMUgsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQVNFLGtCQUFrQjtRQUNuQixlQUFVLEdBQXVCLEtBQUssQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUNsRCxrQkFBYSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsQyxZQUFPLEdBQUcsS0FBSyxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUMvQyxtQkFBYyxHQUFHLE1BQU0sQ0FBTSxTQUFTLENBQUMsQ0FBQztRQUN4QyxnQkFBVyxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNqQyxTQUFJLEdBQUcsS0FBSyxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUM1QyxTQUFJLEdBQUcsS0FBSyxDQUFPLEVBQVMsQ0FBQyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELGVBQVUsR0FBRyxLQUFLLENBQXVCLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELHdCQUFtQixHQUFHLFFBQVEsQ0FDN0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQ3JDLENBQUM7UUFPRixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ2QsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQ25CLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUt4QyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUN6QyxtQkFBYyxHQUFXLGdCQUFnQixDQUFDO1FBTTFDLGFBQWE7UUFFYixrQkFBa0I7UUFDUixvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7S0E2QjlEO0lBckNELFNBQVM7UUFDUCxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBTUQsYUFBYTtJQUViLFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBUztRQUNoQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFXO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQVk7UUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFhO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFxQixDQUFDO1FBRTdDLGlDQUFpQztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEUsbUNBQW1DO1lBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDOzhHQXhFWSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw4L0RDUnJDLG04SkFrSUE7OzJGRDFIYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsbUJBQW1COzhCQTBCdEIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBVUksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRXZlbnRFbWl0dGVyLCBpbnB1dCwgSW5wdXQsIElucHV0U2lnbmFsLCBPdXRwdXQsIHNpZ25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtY29udGVudC12aWV3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1jb250ZW50LXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWNvbnRlbnQtdmlld2VyLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZDb250ZW50Vmlld2VyQ29tcG9uZW50IHtcclxuXHJcblxyXG5cclxuICAvLyAjcmVnaW9uIFNpZ25hbHNcclxuIGRhdGFTb3VyY2U6IElucHV0U2lnbmFsPGFueVtdPiA9IGlucHV0PGFueVtdPihbXSk7XHJcbiBwYWdpbmFJbmljaWFsID0gc2lnbmFsPG51bWJlcj4oMSk7XHJcbiBhcnF1aXZvID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gYXJxdWl2b1ByZXZpZXcgPSBzaWduYWw8YW55Pih1bmRlZmluZWQpO1xyXG4gbm9tZUFycXVpdm8gPSBzaWduYWw8c3RyaW5nPignJyk7XHJcbiB0eXBlID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gYmxvYiA9IGlucHV0PEJsb2I+KCcnIGFzIGFueSk7XHJcbiBpZGFycXVpdm8gPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gZWtwQ29udGVudCA9IGlucHV0PFNhZmVIdG1sIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gdG90YWxJdGVuc0NhcnJlZ2FkbyA9IGNvbXB1dGVkKFxyXG4gICgpID0+IHRoaXMuZGF0YVNvdXJjZSgpPy5sZW5ndGggfHwgMFxyXG4pO1xyXG4vLyAjZW5kcmVnaW9uXHJcblxyXG4vLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuZW1wcmVzYVNlbGVjaW9uYWRhITogYW55O1xyXG5pZHRpcG9kb2N1bWVudG8hOiBudW1iZXJbXTtcclxuQElucHV0KCkgZXh0ZW5jYW9Eb2N1bWVudG8hOiBzdHJpbmc7XHJcbnByZXZpZXdPbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5zZWxlY3RlZEl0ZW06IGFueSA9IHt9O1xyXG5ASW5wdXQoKSB0b3RhbFJlY29yZHM6IG51bWJlciA9IDA7XHJcbmlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5kaXNwbGF5U2lkZWJhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5pc1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbkBJbnB1dCgpIHZpc3VhbGl6YWRvckRvY3VtZW50b3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuQElucHV0KCkgY2FyZFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuQElucHV0KCkgY29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuQElucHV0KCkgbm9Eb2N1bWVudFNlbGVjdGVkVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5ASW5wdXQoKSBub0RvY3VtZW50TGlzdFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuQElucHV0KCkgaW5kdmlzdWFsaXphZG86IGJvb2xlYW4gPSBmYWxzZTtcclxua2V5VmlzdWFsaXphZG86IHN0cmluZyA9ICdpbmR2aXN1YWxpemFkbyc7IFxyXG5cclxudG9kYXlEYXRlKCk6IHN0cmluZyB7XHJcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIHJldHVybiB0b2RheS50b0xvY2FsZURhdGVTdHJpbmcoJ3B0LUJSJywgeyBkYXk6ICcyLWRpZ2l0JywgbW9udGg6ICcyLWRpZ2l0JywgeWVhcjogJ251bWVyaWMnIH0pO1xyXG59XHJcbi8vICNlbmRyZWdpb25cclxuXHJcbi8vICNyZWdpb24gT3V0cHV0c1xyXG5AT3V0cHV0KCkgb25TY3JvbGxIYW5kbGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuQE91dHB1dCgpIG9uU2VsZWN0RmlsZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbi8vICNlbmRyZWdpb25cclxuXHJcbnRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xyXG4gIHJldHVybiBpdGVtLmlkYXJxdWl2bzsgXHJcbn1cclxuXHJcbmlzVmlzdWFsaXphZG8ob3B0aW9uOiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gb3B0aW9uW3RoaXMua2V5VmlzdWFsaXphZG9dIHx8IGZhbHNlO1xyXG59XHJcblxyXG52aXN1YWxpemFyUHJldmlldyhhcnF1aXZvOiBhbnkpOiB2b2lkIHtcclxuICBhcnF1aXZvW3RoaXMua2V5VmlzdWFsaXphZG9dID0gdHJ1ZTtcclxuXHJcbiAgdGhpcy5hcnF1aXZvUHJldmlldy5zZXQoYXJxdWl2byk7XHJcbiAgdGhpcy5vblNlbGVjdEZpbGUuZW1pdChhcnF1aXZvKTtcclxuICBcclxufVxyXG5cclxuc2Nyb2xsSGFuZGxlcigkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgY29uc3QgZWxlbWVudCA9ICRldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gIC8vc2UgbyBlc2Nyb2xsIGNoZWdhciBhdMOpIG8gZmluYWxcclxuICBpZiAoZWxlbWVudC5zY3JvbGxIZWlnaHQgLSBlbGVtZW50LnNjcm9sbFRvcCA9PT0gZWxlbWVudC5jbGllbnRIZWlnaHQpIHtcclxuICAgIC8vIHRoaXMuYnVzY2FyUHJveGltb3NEb2N1bWVudG9zKCk7XHJcbiAgICB0aGlzLm9uU2Nyb2xsSGFuZGxlci5lbWl0KCRldmVudCk7XHJcbiAgfVxyXG59XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG1kOmZsZXgtcm93IGdhcC0yIG10LTMgY3VzdG9tLW1heC1oZWlnaHRcIiBzdHlsZT1cImhlaWdodDogMTAwMHZoO1wiPlxyXG4gIDwhLS0gTGlzdGEgZGUgZG9jdW1lbnRvcyAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNhcmQtcGVyZmlsIG92ZXJmbG93LXgtaGlkZGVuXCJcclxuICAgIChzY3JvbGwpPVwic2Nyb2xsSGFuZGxlcigkZXZlbnQpXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ292ZXJmbG93LXktc2Nyb2xsJzogZGF0YVNvdXJjZSgpLmxlbmd0aCA+IDAsXHJcbiAgICAgICdvdmVyZmxvdy15LWhpZGRlbic6IGRhdGFTb3VyY2UoKS5sZW5ndGggPT09IDBcclxuICAgIH1cIlxyXG4gICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XCJcclxuICA+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZGF0YVNvdXJjZSgpLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlEb2N1bWVudExpc3RcIiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICA8IS0tIExpc3RhIGRlIGNhcmRzIC0tPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkYXRhU291cmNlKCk7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgY2xhc3M9XCJjYXJkLW5vcm1hbCBvdXRsaW5lLW5vbmUgYm9yZGVyLXJvdW5kLXhsIHctZnVsbCBwLTIgbS0xIGdyaWQgcC1mbHVpZCBmbGV4IGZsZXgtcm93IGZsZXgtbm93cmFwIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDVyZW1cIlxyXG4gICAgICAgIChjbGljayk9XCJ2aXN1YWxpemFyUHJldmlldyhvcHRpb24pXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAnY2FyZC1uYW9WaXN1YWxpemFkbyc6ICFpc1Zpc3VhbGl6YWRvKG9wdGlvbiksXHJcbiAgICAnY2FyZC1zZWxlY3RlZCc6IG9wdGlvbiA9PT0gYXJxdWl2b1ByZXZpZXcoKSxcclxuICAgICdjYXJkLW5vcm1hbCc6IG9wdGlvbiAhPT0gYXJxdWl2b1ByZXZpZXcoKSxcclxuICAgfVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWdyb3ctMSBtbC0yIGZsZXgtY29sdW1uIGdhcC0xIG0tMCBwLTAgb3ZlcmZsb3ctaGlkZGVuIHRleHQtb3ZlcmZsb3ctZWxsaXBzaXMgXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FyZFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFxyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbW1vbi1zdHlsZSBkZWZhdWx0LWNhcmRcIj5cclxuICAgICAgICAgICAgPGgxIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtYmFzZSBwLTAgbS0wXCI+QmVtLXZpbmRvITwvaDE+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgS3YtZmlsZS1wcmV2aWV3IGFndWFyZGFuZG8gdW0gdGVtcGxhdGUuLi5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LXNtIHAtMCBtLTBcIj5EYXRhOiB7eyB0b2RheURhdGUoKSB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eURvY3VtZW50TGlzdD5cclxuICAgICAgQGlmKCFub0RvY3VtZW50TGlzdFRlbXBsYXRlKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNjAwIG10LTQgbS0zXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj4gaW5ib3ggPC9zcGFuPlxyXG4gICAgICAgICAgPHA+TmVuaHVtIGRvY3VtZW50byBkaXNwb27DrXZlbC48L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTQgbS0zXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9Eb2N1bWVudExpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8IS0tIENvbnRhZG9yIGRlIGRvY3VtZW50b3MgLSBGaXhvIG5hIHBhcnRlIGluZmVyaW9yIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInN0aWNreS1jb3VudGVyIGZsZXggZmxleC1yb3cgZmxleC0xIHB4LTIganVzdGlmeS1jb250ZW50LWNlbnRlciBwLTJcIlxyXG4gICAgICBzdHlsZT1cInBvc2l0aW9uOiBzdGlja3k7IGJvdHRvbTogMDsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVcIlxyXG4gICAgPlxyXG4gICAgICA8c3Bhbj57eyB0b3RhbEl0ZW5zQ2FycmVnYWRvKCkgfX0gZGUge3sgdG90YWxSZWNvcmRzIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gVmlzdWFsaXphZG9yIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkLXBlcmZpbCBjb2wtMTIgbWQ6Y29sLTggbGc6Y29sLTlcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxyXG4gICAgQGlmKHZpc3VhbGl6YWRvckRvY3VtZW50b3MpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFycXVpdm8oKTsgZWxzZSBub0RvY3VtZW50U2VsZWN0ZWRcIj5cclxuICAgICAgICBAaWYoaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgPG5neC1sb2FkaW5nXHJcbiAgICAgICAgICBbc2hvd109XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICAgW2NvbmZpZ109XCJ7IGJhY2tkcm9wQm9yZGVyUmFkaXVzOiAnM3B4JywgZnVsbFNjcmVlbkJhY2tkcm9wOiBmYWxzZSB9XCJcclxuICAgICAgICA+PC9uZ3gtbG9hZGluZz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGt2LWZpbGUtdmlld2VyLW5vdm9cclxuICAgICAgICAqbmdJZj1cImV4dGVuY2FvRG9jdW1lbnRvICE9PSAnZWtwJ1wiXHJcbiAgICAgICAgICBbYXJxdWl2b109XCJhcnF1aXZvKCkhXCJcclxuICAgICAgICAgIFt0eXBlXT1cInR5cGUoKSFcIlxyXG4gICAgICAgICAgW2Jsb2JdPVwiYmxvYigpIVwiXHJcbiAgICAgICAgICBbd2lkdGhdPVwiJzEwMCUnXCIgXHJcbiAgICAgICAgICBbaGVpZ2h0XT1cIicxMDAlJ1wiXHJcbiAgICAgICAgICBjbGFzcz1cImZpbGUtdmlld2VyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9rdi1maWxlLXZpZXdlci1ub3ZvPlxyXG4gIFxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGlkPVwiaHRtbC1jb250ZW50XCJcclxuICAgICAgICAgIFtpbm5lckhUTUxdPVwiZWtwQ29udGVudCgpXCJcclxuICAgICAgICAgICpuZ0lmPVwiZXh0ZW5jYW9Eb2N1bWVudG8gPT09ICdla3AnXCJcclxuICAgICAgICAgIGNsYXNzPVwiZWtwLWNvbnRlbnRcIlxyXG4gICAgICAgID48L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFycXVpdm9QcmV2aWV3KCk7IGVsc2Ugbm9Eb2N1bWVudFNlbGVjdGVkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgY29udGVudFRlbXBsYXRlO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogYXJxdWl2b1ByZXZpZXcoKSB9XHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcbiAgICA8bmctdGVtcGxhdGUgI25vRG9jdW1lbnRTZWxlY3RlZD5cclxuICAgICAgQGlmKCFub0RvY3VtZW50U2VsZWN0ZWRUZW1wbGF0ZSkge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJuby1kb2N1bWVudC1tZXNzYWdlIGZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMFwiPlxyXG4gICAgICAgICAgU2VsZWNpb25lIHVtIGFycXVpdm8gcGFyYSB2aXN1YWxpemHDp8Ojb1xyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8aW1nXHJcbiAgICAgICAgICBbc3JjXT1cIlxyXG4gICAgICAgICAgICAnaHR0cHM6Ly93b3JrLWFzc2V0cy5rZWV2by5jb20uYnIvaW1nL0RpZ2l0YWxfcGVyc29uYWxfZmlsZXMtcGFuYV8zLnBuZydcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBzdHlsZT1cIm1heC1oZWlnaHQ6IDUwJTsgbWFyZ2luLXRvcDogMnJlbTtcIlxyXG4gICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm5vRG9jdW1lbnRTZWxlY3RlZFRlbXBsYXRlXCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICB9XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -36,6 +36,9 @@ export class KvDropdownComponent extends BaseComponentDropDown {
36
36
  if (this.dropDowValue)
37
37
  this.value = this.dropDowValue;
38
38
  this.capitalizeOptions(this.options);
39
+ setTimeout(() => {
40
+ this.windowSize.set(window.innerWidth + 3);
41
+ }, 0);
39
42
  }
40
43
  onWindowResize() {
41
44
  this.windowSize.set(window.innerWidth);
@@ -69,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
69
72
  type: HostListener,
70
73
  args: ['window:resize', ['$event']]
71
74
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWRyb3Bkb3duL2t2LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1kcm9wZG93bi9rdi1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFZOUUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUFxQjtJQUM1RCxZQUNFLGdCQUFrQyxFQUNsQyxhQUE0QjtRQUM1QixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFHaEMsc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGdCQUFXLEdBQVcsR0FBRyxDQUFDO1FBS25DLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBR3hDLGFBQVEsR0FBUSxLQUFLLENBQU0sTUFBTSxDQUFDLENBQUM7UUFFbkMsZUFBVSxHQUFHLE1BQU0sQ0FBUyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckMsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdELGNBQVMsR0FBRyxTQUFTLENBQU0sV0FBVyxDQUFDLENBQUM7UUFFeEMsdUNBQXVDO1FBQ3ZDLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQywyQ0FBMkM7WUFFakYsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUE0QixDQUFDO1lBQzVELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzlDLE9BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEdBQUMsSUFBSSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBMUJILENBQUM7SUE2QlEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxZQUFZO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXRELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUdNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFHRCxlQUFlLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQWpEVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrMENBRm5CLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLHlLQzNCcEQsdXBGQW1GQTs7MkZEdERhLG1CQUFtQjtrQkFUL0IsU0FBUzsrQkFDRSxhQUFhLGFBTVosa0JBQWtCLHFCQUFxQjtpSEFTekMsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNZLFdBQVc7c0JBQTVCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFNSSxVQUFVO3NCQUFuQixNQUFNO2dCQXNCQSxjQUFjO3NCQURwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgaW5wdXQsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnREcm9wRG93biB9IGZyb20gJy4uLy4uLy4uL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtZHJvcGRvd24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQcm92aWRlcnMgfSBmcm9tICcuLi8uLi8uLi9hcGkvaGVscGVycy9jb21wb25lbnQtcHJvdmlkZXJzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FwaS9zZXJ2aWNlcy9jb21wb25lbnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogW1xyXG4gICAgJy4va3YtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnLFxyXG4gICAgJy4uLy4uL2tlZXZvLWNvbXBvbmVudHMtc3R5bGVzLnNjc3MnXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IENvbXBvbmVudFByb3ZpZGVycyhLdkRyb3Bkb3duQ29tcG9uZW50KSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50RHJvcERvd24gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSxcclxuICAgIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UsIGRpYWxvZ1NlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZmlsdGVyUGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnICc7XHJcbiAgQElucHV0KCkgZHJvcERvd1ZhbHVlITogYW55O1xyXG4gIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKSB2aXJ0dWFsU2Nyb2xsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmlydHVhbFNjcm9sbEl0ZW1TaXplITogbnVtYmVyO1xyXG5cclxuICBhcHBlbmRUbzogYW55ID0gaW5wdXQ8YW55PignYm9keScpO1xyXG5cclxuICB3aW5kb3dTaXplID0gc2lnbmFsPG51bWJlcj4od2luZG93LmlubmVyV2lkdGgpO1xyXG5cclxuICBAT3V0cHV0KCkgb25MYXp5TG9hZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHBEcm9wRG93biA9IHZpZXdDaGlsZDxhbnk+KCdwZHJvcGRvd24nKTtcclxuXHJcbiAgLy8gcERyb3BEb3duV2lkdGggPSBzaWduYWw8c3RyaW5nPignJyk7XHJcbiAgcERyb3BEb3duV2lkdGggPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCB3aW5kb3dTaXplID0gdGhpcy53aW5kb3dTaXplKCk7IC8vQXBlbmFzIHBhcmEgZm9yw6dhciBhIGF0dWFsaXphw6dhw7UgZG8gdmFsb3JcclxuXHJcbiAgICBjb25zdCBlbCA9IHRoaXMucERyb3BEb3duKCkuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHJldHVybmAke2RpbWVuc2lvbnMud2lkdGh9YCsncHgnO1xyXG4gIH0pO1xyXG5cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgaWYgKHRoaXMuZHJvcERvd1ZhbHVlKSB0aGlzLnZhbHVlID0gdGhpcy5kcm9wRG93VmFsdWU7XHJcblxyXG4gICAgdGhpcy5jYXBpdGFsaXplT3B0aW9ucyh0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIG9uV2luZG93UmVzaXplKCkge1xyXG4gICAgdGhpcy53aW5kb3dTaXplLnNldCh3aW5kb3cuaW5uZXJXaWR0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25JbnB1dExhenlMb2FkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25MYXp5TG9hZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiPHNwYW4+XHJcbiAgPGt2LWxhYmVsXHJcbiAgICBbY29tcG9uZW50SWRdPVwiY29tcG9uZW50SWRcIlxyXG4gICAgW2xhYmVsXT1cImxhYmVsICYmIGxhYmVsICsgKHNob3dBc3RlcmlzayA/ICcqJyA6ICcnKVwiXHJcbiAgLz5cclxuXHJcbiAgPHAtZHJvcGRvd25cclxuICAgICNwZHJvcGRvd25cclxuICAgIFthcHBlbmRUb109XCJhcHBlbmRUbygpXCJcclxuICAgIHNjcm9sbEhlaWdodD1cIjI1MHB4XCJcclxuICAgIHN0eWxlQ2xhc3M9XCJpbnB1dHNcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICBbY2xhc3NdPVwiYmFzZUlucHV0Q2xhc3NcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtlbXB0eU1lc3NhZ2VdPVwiZW1wdHlNZXNzYWdlKClcIlxyXG4gICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxyXG4gICAgW2dyb3VwXT1cImdyb3VwXCJcclxuICAgIFtpbnB1dElkXT1cImNvbXBvbmVudElkXCJcclxuICAgIFtsYXp5XT1cImxhenlcIlxyXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICBbb3B0aW9uRGlzYWJsZWRdPVwib3B0aW9uRGlzYWJsZWRcIlxyXG4gICAgW29wdGlvbkdyb3VwQ2hpbGRyZW5dPVwib3B0aW9uR3JvdXBDaGlsZHJlblwiXHJcbiAgICBbb3B0aW9uR3JvdXBMYWJlbF09XCJvcHRpb25Hcm91cExhYmVsXCJcclxuICAgIFtvcHRpb25MYWJlbF09XCJvcHRpb25MYWJlbFwiXHJcbiAgICBbb3B0aW9uc109XCJmaWx0ZXJlZE9wdGlvbnNcIlxyXG4gICAgW29wdGlvblZhbHVlXT1cIm9wdGlvblZhbHVlXCJcclxuICAgIFtwYW5lbFN0eWxlXT1cInsgd2lkdGg6IHBEcm9wRG93bldpZHRoKCkgfVwiXHJcbiAgICBbc2hvd0NsZWFyXT1cInNob3dDbGVhclwiICAgIFxyXG4gICAgW2ZpbHRlclBsYWNlaG9sZGVyXT1cImZpbHRlclBsYWNlaG9sZGVyXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAob25CbHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxyXG4gICAgKG9uQ2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAob25DbGljayk9XCJvbklucHV0Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAob25GaWx0ZXIpPVwib25JbnB1dEZpbHRlcigkZXZlbnQpXCJcclxuICAgIChvbkxhenlMb2FkKT1cIm9uSW5wdXRMYXp5TG9hZCgkZXZlbnQpXCJcclxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGxcIlxyXG4gICAgW3ZpcnR1YWxTY3JvbGxJdGVtU2l6ZV09XCJ2aXJ0dWFsU2Nyb2xsSXRlbVNpemVcIiAgICBcclxuICA+XHJcbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJzaG93QWRkQnV0dG9uXCIgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBjYXJkLWNvbnRhaW5lciBwLTFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIHBCdXR0b25cclxuICAgICAgICAgICAgbGFiZWw9XCJJbmNsdWlyXCJcclxuICAgICAgICAgICAgcFRvb2x0aXA9XCJDbGlxdWUgYXF1aSBwYXJhIGluY2x1aXIgdW0gbm92byByZWdpc3Ryb1wiXHJcbiAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS1wbHVzXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3MgbXItMlwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJhZGRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDwhLS0gOjogLS0+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIiAqbmdJZj1cIml0ZW1UZW1wbGF0ZVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXHJcbiAgICAgID5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICBsZXQtc2VsZWN0ZWRJdGVtXHJcbiAgICAgIHBUZW1wbGF0ZT1cInNlbGVjdGVkSXRlbVwiXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRJdGVtVGVtcGxhdGVcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VsZWN0ZWRJdGVtVGVtcGxhdGVcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc2VsZWN0ZWRJdGVtIH1cIlxyXG4gICAgICA+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8IS0tIDo6IC0tPlxyXG4gIDwvcC1kcm9wZG93bj5cclxuXHJcbiAgPGt2LWVycm9yIFtoYXNFcnJvcl09XCJoYXNDb250cm9sRXJyb3IoKVwiPnt7IGVycm9NZXNzYWdlKCkgfX08L2t2LWVycm9yPlxyXG48L3NwYW4+XHJcbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWRyb3Bkb3duL2t2LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1kcm9wZG93bi9rdi1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFZOUUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUFxQjtJQUM1RCxZQUNFLGdCQUFrQyxFQUNsQyxhQUE0QjtRQUM1QixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFHaEMsc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGdCQUFXLEdBQVcsR0FBRyxDQUFDO1FBS25DLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBR3hDLGFBQVEsR0FBUSxLQUFLLENBQU0sTUFBTSxDQUFDLENBQUM7UUFFbkMsZUFBVSxHQUFHLE1BQU0sQ0FBUyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckMsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdELGNBQVMsR0FBRyxTQUFTLENBQU0sV0FBVyxDQUFDLENBQUM7UUFFeEMsdUNBQXVDO1FBQ3ZDLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQywyQ0FBMkM7WUFFakYsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUE0QixDQUFDO1lBQzVELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzlDLE9BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEdBQUMsSUFBSSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBMUJILENBQUM7SUE2QlEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxZQUFZO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXRELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUdNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFHRCxlQUFlLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQXJEVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrMENBRm5CLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLHlLQzNCcEQsdXBGQW1GQTs7MkZEdERhLG1CQUFtQjtrQkFUL0IsU0FBUzsrQkFDRSxhQUFhLGFBTVosa0JBQWtCLHFCQUFxQjtpSEFTekMsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNZLFdBQVc7c0JBQTVCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFNSSxVQUFVO3NCQUFuQixNQUFNO2dCQTBCQSxjQUFjO3NCQURwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgaW5wdXQsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnREcm9wRG93biB9IGZyb20gJy4uLy4uLy4uL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtZHJvcGRvd24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQcm92aWRlcnMgfSBmcm9tICcuLi8uLi8uLi9hcGkvaGVscGVycy9jb21wb25lbnQtcHJvdmlkZXJzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FwaS9zZXJ2aWNlcy9jb21wb25lbnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogW1xyXG4gICAgJy4va3YtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnLFxyXG4gICAgJy4uLy4uL2tlZXZvLWNvbXBvbmVudHMtc3R5bGVzLnNjc3MnXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IENvbXBvbmVudFByb3ZpZGVycyhLdkRyb3Bkb3duQ29tcG9uZW50KSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50RHJvcERvd24gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSxcclxuICAgIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UsIGRpYWxvZ1NlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZmlsdGVyUGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnICc7XHJcbiAgQElucHV0KCkgZHJvcERvd1ZhbHVlITogYW55O1xyXG4gIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKSB2aXJ0dWFsU2Nyb2xsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmlydHVhbFNjcm9sbEl0ZW1TaXplITogbnVtYmVyO1xyXG5cclxuICBhcHBlbmRUbzogYW55ID0gaW5wdXQ8YW55PignYm9keScpO1xyXG5cclxuICB3aW5kb3dTaXplID0gc2lnbmFsPG51bWJlcj4od2luZG93LmlubmVyV2lkdGgpO1xyXG5cclxuICBAT3V0cHV0KCkgb25MYXp5TG9hZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHBEcm9wRG93biA9IHZpZXdDaGlsZDxhbnk+KCdwZHJvcGRvd24nKTtcclxuXHJcbiAgLy8gcERyb3BEb3duV2lkdGggPSBzaWduYWw8c3RyaW5nPignJyk7XHJcbiAgcERyb3BEb3duV2lkdGggPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCB3aW5kb3dTaXplID0gdGhpcy53aW5kb3dTaXplKCk7IC8vQXBlbmFzIHBhcmEgZm9yw6dhciBhIGF0dWFsaXphw6dhw7UgZG8gdmFsb3JcclxuXHJcbiAgICBjb25zdCBlbCA9IHRoaXMucERyb3BEb3duKCkuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHJldHVybmAke2RpbWVuc2lvbnMud2lkdGh9YCsncHgnO1xyXG4gIH0pO1xyXG5cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgaWYgKHRoaXMuZHJvcERvd1ZhbHVlKSB0aGlzLnZhbHVlID0gdGhpcy5kcm9wRG93VmFsdWU7XHJcblxyXG4gICAgdGhpcy5jYXBpdGFsaXplT3B0aW9ucyh0aGlzLm9wdGlvbnMpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLndpbmRvd1NpemUuc2V0KHdpbmRvdy5pbm5lcldpZHRoKzMpO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICB0aGlzLndpbmRvd1NpemUuc2V0KHdpbmRvdy5pbm5lcldpZHRoKTtcclxuICB9XHJcblxyXG5cclxuICBvbklucHV0TGF6eUxvYWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkxhenlMb2FkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8c3Bhbj5cclxuICA8a3YtbGFiZWxcclxuICAgIFtjb21wb25lbnRJZF09XCJjb21wb25lbnRJZFwiXHJcbiAgICBbbGFiZWxdPVwibGFiZWwgJiYgbGFiZWwgKyAoc2hvd0FzdGVyaXNrID8gJyonIDogJycpXCJcclxuICAvPlxyXG5cclxuICA8cC1kcm9wZG93blxyXG4gICAgI3Bkcm9wZG93blxyXG4gICAgW2FwcGVuZFRvXT1cImFwcGVuZFRvKClcIlxyXG4gICAgc2Nyb2xsSGVpZ2h0PVwiMjUwcHhcIlxyXG4gICAgc3R5bGVDbGFzcz1cImlucHV0c1wiXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIFtjbGFzc109XCJiYXNlSW5wdXRDbGFzc1wiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW2VtcHR5TWVzc2FnZV09XCJlbXB0eU1lc3NhZ2UoKVwiXHJcbiAgICBbZmlsdGVyXT1cImZpbHRlclwiXHJcbiAgICBbZ3JvdXBdPVwiZ3JvdXBcIlxyXG4gICAgW2lucHV0SWRdPVwiY29tcG9uZW50SWRcIlxyXG4gICAgW2xhenldPVwibGF6eVwiXHJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgIFtvcHRpb25EaXNhYmxlZF09XCJvcHRpb25EaXNhYmxlZFwiXHJcbiAgICBbb3B0aW9uR3JvdXBDaGlsZHJlbl09XCJvcHRpb25Hcm91cENoaWxkcmVuXCJcclxuICAgIFtvcHRpb25Hcm91cExhYmVsXT1cIm9wdGlvbkdyb3VwTGFiZWxcIlxyXG4gICAgW29wdGlvbkxhYmVsXT1cIm9wdGlvbkxhYmVsXCJcclxuICAgIFtvcHRpb25zXT1cImZpbHRlcmVkT3B0aW9uc1wiXHJcbiAgICBbb3B0aW9uVmFsdWVdPVwib3B0aW9uVmFsdWVcIlxyXG4gICAgW3BhbmVsU3R5bGVdPVwieyB3aWR0aDogcERyb3BEb3duV2lkdGgoKSB9XCJcclxuICAgIFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyXCIgICAgXHJcbiAgICBbZmlsdGVyUGxhY2Vob2xkZXJdPVwiZmlsdGVyUGxhY2Vob2xkZXJcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIChvbkJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICAob25DaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICAgIChvbkNsaWNrKT1cIm9uSW5wdXRDbGljaygkZXZlbnQpXCJcclxuICAgIChvbkZpbHRlcik9XCJvbklucHV0RmlsdGVyKCRldmVudClcIlxyXG4gICAgKG9uTGF6eUxvYWQpPVwib25JbnB1dExhenlMb2FkKCRldmVudClcIlxyXG4gICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbFwiXHJcbiAgICBbdmlydHVhbFNjcm9sbEl0ZW1TaXplXT1cInZpcnR1YWxTY3JvbGxJdGVtU2l6ZVwiICAgIFxyXG4gID5cclxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInNob3dBZGRCdXR0b25cIiBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGNhcmQtY29udGFpbmVyIHAtMVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICBsYWJlbD1cIkluY2x1aXJcIlxyXG4gICAgICAgICAgICBwVG9vbHRpcD1cIkNsaXF1ZSBhcXVpIHBhcmEgaW5jbHVpciB1bSBub3ZvIHJlZ2lzdHJvXCJcclxuICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcclxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLXBsdXNcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBtci0yXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImFkZENsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPCEtLSA6OiAtLT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwiaXRlbVwiICpuZ0lmPVwiaXRlbVRlbXBsYXRlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcclxuICAgICAgPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgIGxldC1zZWxlY3RlZEl0ZW1cclxuICAgICAgcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCJcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZEl0ZW1UZW1wbGF0ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RlZEl0ZW1UZW1wbGF0ZVwiXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzZWxlY3RlZEl0ZW0gfVwiXHJcbiAgICAgID5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDwhLS0gOjogLS0+XHJcbiAgPC9wLWRyb3Bkb3duPlxyXG5cclxuICA8a3YtZXJyb3IgW2hhc0Vycm9yXT1cImhhc0NvbnRyb2xFcnJvcigpXCI+e3sgZXJyb01lc3NhZ2UoKSB9fTwva3YtZXJyb3I+XHJcbjwvc3Bhbj5cclxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4iXX0=
@@ -2617,6 +2617,9 @@ class KvDropdownComponent extends BaseComponentDropDown {
2617
2617
  if (this.dropDowValue)
2618
2618
  this.value = this.dropDowValue;
2619
2619
  this.capitalizeOptions(this.options);
2620
+ setTimeout(() => {
2621
+ this.windowSize.set(window.innerWidth + 3);
2622
+ }, 0);
2620
2623
  }
2621
2624
  onWindowResize() {
2622
2625
  this.windowSize.set(window.innerWidth);
@@ -9307,6 +9310,8 @@ class KvContentViewerComponent {
9307
9310
  this.displaySidebar = false;
9308
9311
  this.isSelected = false;
9309
9312
  this.visualizadorDocumentos = false;
9313
+ this.indvisualizado = false;
9314
+ this.keyVisualizado = 'indvisualizado';
9310
9315
  // #endregion
9311
9316
  // #region Outputs
9312
9317
  this.onScrollHandler = new EventEmitter();
@@ -9320,7 +9325,11 @@ class KvContentViewerComponent {
9320
9325
  trackByFn(index, item) {
9321
9326
  return item.idarquivo;
9322
9327
  }
9328
+ isVisualizado(option) {
9329
+ return option[this.keyVisualizado] || false;
9330
+ }
9323
9331
  visualizarPreview(arquivo) {
9332
+ arquivo[this.keyVisualizado] = true;
9324
9333
  this.arquivoPreview.set(arquivo);
9325
9334
  this.onSelectFile.emit(arquivo);
9326
9335
  }
@@ -9329,15 +9338,15 @@ class KvContentViewerComponent {
9329
9338
  //se o escroll chegar até o final
9330
9339
  if (element.scrollHeight - element.scrollTop === element.clientHeight) {
9331
9340
  // this.buscarProximosDocumentos();
9332
- this.onScrollHandler.emit();
9341
+ this.onScrollHandler.emit($event);
9333
9342
  }
9334
9343
  }
9335
9344
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvContentViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9336
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvContentViewerComponent, selector: "kv-content-viewer", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, arquivo: { classPropertyName: "arquivo", publicName: "arquivo", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, blob: { classPropertyName: "blob", publicName: "blob", isSignal: true, isRequired: false, transformFunction: null }, ekpContent: { classPropertyName: "ekpContent", publicName: "ekpContent", isSignal: true, isRequired: false, transformFunction: null }, extencaoDocumento: { classPropertyName: "extencaoDocumento", publicName: "extencaoDocumento", isSignal: false, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: false, isRequired: false, transformFunction: null }, visualizadorDocumentos: { classPropertyName: "visualizadorDocumentos", publicName: "visualizadorDocumentos", isSignal: false, isRequired: false, transformFunction: null }, cardTemplate: { classPropertyName: "cardTemplate", publicName: "cardTemplate", isSignal: false, isRequired: false, transformFunction: null }, contentTemplate: { classPropertyName: "contentTemplate", publicName: "contentTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentSelectedTemplate: { classPropertyName: "noDocumentSelectedTemplate", publicName: "noDocumentSelectedTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentListTemplate: { classPropertyName: "noDocumentListTemplate", publicName: "noDocumentListTemplate", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onScrollHandler: "onScrollHandler", onSelectFile: "onSelectFile" }, ngImport: i0, template: "<div class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\" style=\"height: 1000vh;\">\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil overflow-x-hidden\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-scroll': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; max-height: calc(100vh - 100px);\"\r\n >\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"col-12\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n style=\"min-height: 5rem\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis \" style=\"max-width: 100%;\">\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container \r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-file-preview aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\" flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-row flex-1 px-2 justify-content-center p-2\"\r\n style=\"position: sticky; bottom: 0; background-color: white\"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n </div>\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div class=\"card-perfil col-12 md:col-8 lg:col-9\" style=\"position: relative\">\r\n @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\" \r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n >\r\n </kv-file-viewer-novo>\r\n \r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"arquivoPreview(); else noDocumentSelected\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Digital_personal_files-pana_3.png'\r\n \"\r\n style=\"max-height: 50%;\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f!important}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{max-height:calc(100vh - 300px)}@media (max-height: 915px){.custom-max-height{max-height:94%}}@media (max-height: 805px){.custom-max-height{max-height:90%}}@media (max-height: 720px){.custom-max-height{max-height:85%}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KvFileViewerNovoComponent, selector: "kv-file-viewer-novo", inputs: ["arquivo", "type", "blob", "width", "height"] }, { kind: "component", type: i1$4.NgxLoadingComponent, selector: "ngx-loading", inputs: ["show", "config", "template"] }] }); }
9345
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvContentViewerComponent, selector: "kv-content-viewer", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, arquivo: { classPropertyName: "arquivo", publicName: "arquivo", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, blob: { classPropertyName: "blob", publicName: "blob", isSignal: true, isRequired: false, transformFunction: null }, ekpContent: { classPropertyName: "ekpContent", publicName: "ekpContent", isSignal: true, isRequired: false, transformFunction: null }, extencaoDocumento: { classPropertyName: "extencaoDocumento", publicName: "extencaoDocumento", isSignal: false, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: false, isRequired: false, transformFunction: null }, visualizadorDocumentos: { classPropertyName: "visualizadorDocumentos", publicName: "visualizadorDocumentos", isSignal: false, isRequired: false, transformFunction: null }, cardTemplate: { classPropertyName: "cardTemplate", publicName: "cardTemplate", isSignal: false, isRequired: false, transformFunction: null }, contentTemplate: { classPropertyName: "contentTemplate", publicName: "contentTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentSelectedTemplate: { classPropertyName: "noDocumentSelectedTemplate", publicName: "noDocumentSelectedTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentListTemplate: { classPropertyName: "noDocumentListTemplate", publicName: "noDocumentListTemplate", isSignal: false, isRequired: false, transformFunction: null }, indvisualizado: { classPropertyName: "indvisualizado", publicName: "indvisualizado", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onScrollHandler: "onScrollHandler", onSelectFile: "onSelectFile" }, ngImport: i0, template: "<div class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\" style=\"height: 1000vh;\">\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil overflow-x-hidden\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-scroll': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; max-height: calc(100vh - 100px);\"\r\n >\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"col-12\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n style=\"min-height: 5rem\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-naoVisualizado': !isVisualizado(option),\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis \" style=\"max-width: 100%;\">\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container \r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-file-preview aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\" flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-row flex-1 px-2 justify-content-center p-2\"\r\n style=\"position: sticky; bottom: 0; background-color: white\"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n </div>\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div class=\"card-perfil col-12 md:col-8 lg:col-9\" style=\"position: relative\">\r\n @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\" \r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n >\r\n </kv-file-viewer-novo>\r\n \r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"arquivoPreview(); else noDocumentSelected\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Digital_personal_files-pana_3.png'\r\n \"\r\n style=\"max-height: 50%; margin-top: 2rem;\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f!important}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{max-height:calc(100vh - 300px)}@media (max-height: 915px){.custom-max-height{max-height:94%}}@media (max-height: 805px){.custom-max-height{max-height:90%}}@media (max-height: 720px){.custom-max-height{max-height:85%}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KvFileViewerNovoComponent, selector: "kv-file-viewer-novo", inputs: ["arquivo", "type", "blob", "width", "height"] }, { kind: "component", type: i1$4.NgxLoadingComponent, selector: "ngx-loading", inputs: ["show", "config", "template"] }] }); }
9337
9346
  }
9338
9347
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvContentViewerComponent, decorators: [{
9339
9348
  type: Component,
9340
- args: [{ selector: 'kv-content-viewer', template: "<div class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\" style=\"height: 1000vh;\">\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil overflow-x-hidden\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-scroll': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; max-height: calc(100vh - 100px);\"\r\n >\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"col-12\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n style=\"min-height: 5rem\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis \" style=\"max-width: 100%;\">\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container \r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-file-preview aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\" flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-row flex-1 px-2 justify-content-center p-2\"\r\n style=\"position: sticky; bottom: 0; background-color: white\"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n </div>\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div class=\"card-perfil col-12 md:col-8 lg:col-9\" style=\"position: relative\">\r\n @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\" \r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n >\r\n </kv-file-viewer-novo>\r\n \r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"arquivoPreview(); else noDocumentSelected\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Digital_personal_files-pana_3.png'\r\n \"\r\n style=\"max-height: 50%;\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f!important}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{max-height:calc(100vh - 300px)}@media (max-height: 915px){.custom-max-height{max-height:94%}}@media (max-height: 805px){.custom-max-height{max-height:90%}}@media (max-height: 720px){.custom-max-height{max-height:85%}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"] }]
9349
+ args: [{ selector: 'kv-content-viewer', template: "<div class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\" style=\"height: 1000vh;\">\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil overflow-x-hidden\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-scroll': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; max-height: calc(100vh - 100px);\"\r\n >\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"col-12\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n style=\"min-height: 5rem\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-naoVisualizado': !isVisualizado(option),\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis \" style=\"max-width: 100%;\">\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container \r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-file-preview aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\" flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-row flex-1 px-2 justify-content-center p-2\"\r\n style=\"position: sticky; bottom: 0; background-color: white\"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n </div>\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div class=\"card-perfil col-12 md:col-8 lg:col-9\" style=\"position: relative\">\r\n @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\" \r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n >\r\n </kv-file-viewer-novo>\r\n \r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"arquivoPreview(); else noDocumentSelected\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Digital_personal_files-pana_3.png'\r\n \"\r\n style=\"max-height: 50%; margin-top: 2rem;\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f!important}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{max-height:calc(100vh - 300px)}@media (max-height: 915px){.custom-max-height{max-height:94%}}@media (max-height: 805px){.custom-max-height{max-height:90%}}@media (max-height: 720px){.custom-max-height{max-height:85%}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"] }]
9341
9350
  }], propDecorators: { extencaoDocumento: [{
9342
9351
  type: Input
9343
9352
  }], totalRecords: [{
@@ -9352,6 +9361,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
9352
9361
  type: Input
9353
9362
  }], noDocumentListTemplate: [{
9354
9363
  type: Input
9364
+ }], indvisualizado: [{
9365
+ type: Input
9355
9366
  }], onScrollHandler: [{
9356
9367
  type: Output
9357
9368
  }], onSelectFile: [{