keevo-components 2.0.262 → 2.0.263

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.
@@ -5098,11 +5098,11 @@ class KvInstrucoesReportComponent {
5098
5098
  this.instrucoesTemplate = signal(this.dialogConfig.data?.template);
5099
5099
  }
5100
5100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvInstrucoesReportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvInstrucoesReportComponent, isStandalone: true, selector: "kv-instrucoes-report", ngImport: i0, template: "<div class=\"p-4\">\r\n @if(instrucoesTemplate()) {\r\n <ng-container [ngTemplateOutlet]=\"instrucoesTemplate()\"></ng-container>\r\n } @else {\r\n <ul class=\"flex flex-column gap-2\">\r\n <li>Formate seu texto usando a barra de ferramentas</li>\r\n <li>\r\n Digite <code class=\"bg-gray-100 px-1\">#</code> para inserir uma vari\u00E1vel\r\n no texto.\r\n </li>\r\n </ul>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
5101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvInstrucoesReportComponent, isStandalone: true, selector: "kv-instrucoes-report", ngImport: i0, template: "<div class=\"p-4\">\r\n @if(instrucoesTemplate()) {\r\n <ng-container [ngTemplateOutlet]=\"instrucoesTemplate()\"></ng-container>\r\n } @else {\r\n <ul class=\"flex flex-column gap-2\">\r\n <li>Utilize a barra de ferramentas para formatar o texto (negrito, it\u00E1lico...).</li>\r\n <li>\r\n Digite <code class=\"bg-gray-100 px-1\">#</code> para inserir vari\u00E1veis din\u00E2micas no texto.\r\n </li>\r\n </ul>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
5102
5102
  }
5103
5103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvInstrucoesReportComponent, decorators: [{
5104
5104
  type: Component,
5105
- args: [{ selector: 'kv-instrucoes-report', standalone: true, imports: [CommonModule], template: "<div class=\"p-4\">\r\n @if(instrucoesTemplate()) {\r\n <ng-container [ngTemplateOutlet]=\"instrucoesTemplate()\"></ng-container>\r\n } @else {\r\n <ul class=\"flex flex-column gap-2\">\r\n <li>Formate seu texto usando a barra de ferramentas</li>\r\n <li>\r\n Digite <code class=\"bg-gray-100 px-1\">#</code> para inserir uma vari\u00E1vel\r\n no texto.\r\n </li>\r\n </ul>\r\n }\r\n</div>\r\n" }]
5105
+ args: [{ selector: 'kv-instrucoes-report', standalone: true, imports: [CommonModule], template: "<div class=\"p-4\">\r\n @if(instrucoesTemplate()) {\r\n <ng-container [ngTemplateOutlet]=\"instrucoesTemplate()\"></ng-container>\r\n } @else {\r\n <ul class=\"flex flex-column gap-2\">\r\n <li>Utilize a barra de ferramentas para formatar o texto (negrito, it\u00E1lico...).</li>\r\n <li>\r\n Digite <code class=\"bg-gray-100 px-1\">#</code> para inserir vari\u00E1veis din\u00E2micas no texto.\r\n </li>\r\n </ul>\r\n }\r\n</div>\r\n" }]
5106
5106
  }] });
5107
5107
 
5108
5108
  class KvEditorQuillService {
@@ -14775,7 +14775,7 @@ class KvFileUploadNewComponent {
14775
14775
  return types.slice(0, -2); // Remove a última vírgula e espaço
14776
14776
  }
14777
14777
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadNewComponent, deps: [{ token: NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
14778
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFileUploadNewComponent, isStandalone: true, selector: "kv-file-upload-new", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: false, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: false, isRequired: false, transformFunction: null }, widthComponent: { classPropertyName: "widthComponent", publicName: "widthComponent", isSignal: false, isRequired: false, transformFunction: null }, heightComponent: { classPropertyName: "heightComponent", publicName: "heightComponent", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, validFileTypes: { classPropertyName: "validFileTypes", publicName: "validFileTypes", isSignal: false, isRequired: false, transformFunction: null }, tamanhoMaximoPermitido: { classPropertyName: "tamanhoMaximoPermitido", publicName: "tamanhoMaximoPermitido", isSignal: false, isRequired: false, transformFunction: null }, includeOfficeTypes: { classPropertyName: "includeOfficeTypes", publicName: "includeOfficeTypes", isSignal: false, isRequired: false, transformFunction: null }, maxSizeFile: { classPropertyName: "maxSizeFile", publicName: "maxSizeFile", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileEmit: "fileEmit", removeFileEmit: "removeFileEmit" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }], ngImport: i0, template: "<div\r\n *ngIf=\"formGroup\"\r\n class=\"file-upload-container w-full\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched,\r\n 'has-file': formGroup.get(formControlName)?.value,\r\n }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"triggerClick()\"\r\n [style.width]=\"widthComponent\"\r\n>\r\n <input\r\n type=\"file\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n <div *ngIf=\"!formGroup.get(formControlName)?.value\" class=\"dropzone-content\">\r\n <div class=\"cloud-icon-wrapper\">\r\n <span class=\"material-symbols-outlined\">cloud_upload</span>\r\n </div>\r\n <div class=\"text-center\">\r\n <p class=\"main-text\">\r\n <span class=\"blue-text\">Clique para selecionar</span> ou arraste aqui\r\n </p>\r\n\r\n @if(subtitle()) {\r\n <p class=\"sub-text\">{{ subtitle() }} (max. {{ maxSizeFile() }}MB)</p>\r\n } @else {\r\n <p class=\"sub-text\">PDF, Imagens (max. {{ maxSizeFile() }}MB)</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formGroup.get(formControlName)?.value as file\"\r\n class=\"selected-file-card\"\r\n >\r\n <div class=\"card-header\">\r\n <div class=\"file-info\">\r\n <span class=\"material-symbols-outlined file-icon\">description</span>\r\n <span class=\"file-name\" [title]=\"file.name\">{{ file.name }}</span>\r\n </div>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger close-btn\"\r\n (click)=\"deleteFile(); $event.stopPropagation()\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"card-footer\">\r\n <div class=\"progress-container\">\r\n <div\r\n class=\"progress-bar\"\r\n [style.width.%]=\"progressValue()(file.size)\"\r\n [class.limit-exceeded]=\"progressValue()(file.size) >= 100\"\r\n ></div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mt-1\">\r\n <small class=\"error-text\" *ngIf=\"progressValue()(file.size) >= 100\"\r\n >Limite excedido</small\r\n >\r\n <span class=\"file-size-label ml-auto\">{{\r\n formatBytes(file.size)\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p\r\n *ngIf=\"\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched\r\n \"\r\n class=\"error-message\"\r\n>\r\n Campo obrigat\u00F3rio\r\n</p>\r\n", styles: [".file-upload-container{border:1px dashed #cbd5e1;border-radius:.75rem;background-color:#f8fafc;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease-in-out;position:relative}.file-upload-container:hover,.file-upload-container.dragover{border-color:#3b82f6;background-color:#eff6ff}.file-upload-container.has-file{cursor:default;background-color:#f1f5f9;padding:0;border-style:solid}.selected-file-card{background:#fff;border-radius:.75rem;padding:1.5rem;width:100%;height:100%;min-height:160px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex-direction:column;justify-content:center;gap:1rem;animation:fadeIn .3s ease-out;box-sizing:border-box}.selected-file-card .card-header{display:flex;justify-content:space-between;align-items:center}.selected-file-card .card-header .file-info{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-file-card .card-header .file-info .file-icon{color:#64748b;font-size:24px}.selected-file-card .card-header .file-info .file-name{font-size:1rem;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .card-header .close-btn{width:32px!important;height:32px!important;padding:0!important}.selected-file-card .card-header .close-btn ::ng-deep .p-button-icon{font-size:1rem}.selected-file-card .card-footer .progress-container{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.selected-file-card .card-footer .progress-container .progress-bar{height:100%;background:#3b82f6;transition:width .4s cubic-bezier(.4,0,.2,1)}.selected-file-card .card-footer .progress-container .progress-bar.limit-exceeded{background:#ef4444}.selected-file-card .card-footer .file-size-label{font-size:.85rem;color:#94a3b8;font-weight:500}.selected-file-card .card-footer .error-text{color:#ef4444;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::ng-deep .file-upload-container .p-button.p-button-text{background-color:transparent!important;border:none}::ng-deep .file-upload-container .p-button.p-button-text:hover{background-color:#fee2e2!important}.cloud-icon-wrapper{background-color:#e0f2fe;color:#3b82f6;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.cloud-icon-wrapper span{font-size:24px}.main-text{font-size:.9rem;color:#334155}.main-text .blue-text{color:#3b82f6;font-weight:600}.sub-text{color:#64748b;font-size:.8rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: KvProgressBarModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
14778
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFileUploadNewComponent, isStandalone: true, selector: "kv-file-upload-new", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: false, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: false, isRequired: false, transformFunction: null }, widthComponent: { classPropertyName: "widthComponent", publicName: "widthComponent", isSignal: false, isRequired: false, transformFunction: null }, heightComponent: { classPropertyName: "heightComponent", publicName: "heightComponent", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, validFileTypes: { classPropertyName: "validFileTypes", publicName: "validFileTypes", isSignal: false, isRequired: false, transformFunction: null }, tamanhoMaximoPermitido: { classPropertyName: "tamanhoMaximoPermitido", publicName: "tamanhoMaximoPermitido", isSignal: false, isRequired: false, transformFunction: null }, includeOfficeTypes: { classPropertyName: "includeOfficeTypes", publicName: "includeOfficeTypes", isSignal: false, isRequired: false, transformFunction: null }, maxSizeFile: { classPropertyName: "maxSizeFile", publicName: "maxSizeFile", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileEmit: "fileEmit", removeFileEmit: "removeFileEmit" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }], ngImport: i0, template: "<div\r\n *ngIf=\"formGroup\"\r\n class=\"file-upload-container w-full\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched,\r\n 'has-file': formGroup.get(formControlName)?.value,\r\n }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"triggerClick()\"\r\n [style.width]=\"widthComponent\"\r\n>\r\n <input\r\n type=\"file\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n <div *ngIf=\"!formGroup.get(formControlName)?.value\" class=\"dropzone-content\">\r\n <div class=\"cloud-icon-wrapper\">\r\n <span class=\"material-symbols-outlined\">cloud_upload</span>\r\n </div>\r\n <div class=\"text-center\">\r\n <p class=\"main-text\">\r\n <span class=\"blue-text\">Clique para selecionar</span> ou arraste aqui\r\n </p>\r\n\r\n @if(subtitle()) {\r\n <p class=\"sub-text\">{{ subtitle() }} (max. {{ maxSizeFile() }}MB)</p>\r\n } @else {\r\n <p class=\"sub-text\">PDF, Imagens (max. {{ maxSizeFile() }}MB)</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formGroup.get(formControlName)?.value as file\"\r\n class=\"selected-file-card\"\r\n >\r\n <div class=\"card-header\">\r\n <div class=\"file-info\">\r\n <span class=\"material-symbols-outlined file-icon\">description</span>\r\n <span class=\"file-name\" [title]=\"file.name\">{{ file.name }}</span>\r\n </div>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger close-btn\"\r\n (click)=\"deleteFile(); $event.stopPropagation()\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"card-footer\">\r\n <div class=\"progress-container\">\r\n <div\r\n class=\"progress-bar\"\r\n [style.width.%]=\"progressValue()(file.size)\"\r\n [class.limit-exceeded]=\"progressValue()(file.size) >= 100\"\r\n ></div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mt-1\">\r\n <small class=\"error-text\" *ngIf=\"progressValue()(file.size) >= 100\"\r\n >Limite excedido</small\r\n >\r\n <span class=\"file-size-label ml-auto\">{{\r\n formatBytes(file.size)\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p\r\n *ngIf=\"\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched\r\n \"\r\n class=\"error-message\"\r\n>\r\n Campo obrigat\u00F3rio\r\n</p>\r\n", styles: [".file-upload-container{border:2px dashed #cbd5e1;border-radius:1.25rem;background-color:#f8fafc;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease-in-out;position:relative}.file-upload-container:hover,.file-upload-container.dragover{border-color:#3b82f6;background-color:#eff6ff}.file-upload-container.has-file{cursor:default;background-color:#f1f5f9;padding:0;border-style:solid}.selected-file-card{background:#fff;border-radius:1.25rem;padding:1.5rem;width:100%;height:100%;min-height:160px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex-direction:column;justify-content:center;gap:1rem;animation:fadeIn .3s ease-out;box-sizing:border-box}.selected-file-card .card-header{display:flex;justify-content:space-between;align-items:center}.selected-file-card .card-header .file-info{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-file-card .card-header .file-info .file-icon{color:#64748b;font-size:24px}.selected-file-card .card-header .file-info .file-name{font-size:1rem;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .card-header .close-btn{width:32px!important;height:32px!important;padding:0!important}.selected-file-card .card-header .close-btn ::ng-deep .p-button-icon{font-size:1rem}.selected-file-card .card-footer .progress-container{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.selected-file-card .card-footer .progress-container .progress-bar{height:100%;background:#3b82f6;transition:width .4s cubic-bezier(.4,0,.2,1)}.selected-file-card .card-footer .progress-container .progress-bar.limit-exceeded{background:#ef4444}.selected-file-card .card-footer .file-size-label{font-size:.85rem;color:#94a3b8;font-weight:500}.selected-file-card .card-footer .error-text{color:#ef4444;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::ng-deep .file-upload-container .p-button.p-button-text{background-color:transparent!important;border:none}::ng-deep .file-upload-container .p-button.p-button-text:hover{background-color:#fee2e2!important}.cloud-icon-wrapper{background-color:#e0f2fe;color:#3b82f6;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.cloud-icon-wrapper span{font-size:24px}.main-text{font-size:.9rem;color:#334155}.main-text .blue-text{color:#3b82f6;font-weight:600}.sub-text{color:#64748b;font-size:.8rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: KvProgressBarModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
14779
14779
  }
14780
14780
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadNewComponent, decorators: [{
14781
14781
  type: Component,
@@ -14783,7 +14783,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
14783
14783
  CommonModule,
14784
14784
  KvProgressBarModule,
14785
14785
  ButtonModule
14786
- ], template: "<div\r\n *ngIf=\"formGroup\"\r\n class=\"file-upload-container w-full\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched,\r\n 'has-file': formGroup.get(formControlName)?.value,\r\n }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"triggerClick()\"\r\n [style.width]=\"widthComponent\"\r\n>\r\n <input\r\n type=\"file\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n <div *ngIf=\"!formGroup.get(formControlName)?.value\" class=\"dropzone-content\">\r\n <div class=\"cloud-icon-wrapper\">\r\n <span class=\"material-symbols-outlined\">cloud_upload</span>\r\n </div>\r\n <div class=\"text-center\">\r\n <p class=\"main-text\">\r\n <span class=\"blue-text\">Clique para selecionar</span> ou arraste aqui\r\n </p>\r\n\r\n @if(subtitle()) {\r\n <p class=\"sub-text\">{{ subtitle() }} (max. {{ maxSizeFile() }}MB)</p>\r\n } @else {\r\n <p class=\"sub-text\">PDF, Imagens (max. {{ maxSizeFile() }}MB)</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formGroup.get(formControlName)?.value as file\"\r\n class=\"selected-file-card\"\r\n >\r\n <div class=\"card-header\">\r\n <div class=\"file-info\">\r\n <span class=\"material-symbols-outlined file-icon\">description</span>\r\n <span class=\"file-name\" [title]=\"file.name\">{{ file.name }}</span>\r\n </div>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger close-btn\"\r\n (click)=\"deleteFile(); $event.stopPropagation()\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"card-footer\">\r\n <div class=\"progress-container\">\r\n <div\r\n class=\"progress-bar\"\r\n [style.width.%]=\"progressValue()(file.size)\"\r\n [class.limit-exceeded]=\"progressValue()(file.size) >= 100\"\r\n ></div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mt-1\">\r\n <small class=\"error-text\" *ngIf=\"progressValue()(file.size) >= 100\"\r\n >Limite excedido</small\r\n >\r\n <span class=\"file-size-label ml-auto\">{{\r\n formatBytes(file.size)\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p\r\n *ngIf=\"\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched\r\n \"\r\n class=\"error-message\"\r\n>\r\n Campo obrigat\u00F3rio\r\n</p>\r\n", styles: [".file-upload-container{border:1px dashed #cbd5e1;border-radius:.75rem;background-color:#f8fafc;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease-in-out;position:relative}.file-upload-container:hover,.file-upload-container.dragover{border-color:#3b82f6;background-color:#eff6ff}.file-upload-container.has-file{cursor:default;background-color:#f1f5f9;padding:0;border-style:solid}.selected-file-card{background:#fff;border-radius:.75rem;padding:1.5rem;width:100%;height:100%;min-height:160px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex-direction:column;justify-content:center;gap:1rem;animation:fadeIn .3s ease-out;box-sizing:border-box}.selected-file-card .card-header{display:flex;justify-content:space-between;align-items:center}.selected-file-card .card-header .file-info{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-file-card .card-header .file-info .file-icon{color:#64748b;font-size:24px}.selected-file-card .card-header .file-info .file-name{font-size:1rem;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .card-header .close-btn{width:32px!important;height:32px!important;padding:0!important}.selected-file-card .card-header .close-btn ::ng-deep .p-button-icon{font-size:1rem}.selected-file-card .card-footer .progress-container{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.selected-file-card .card-footer .progress-container .progress-bar{height:100%;background:#3b82f6;transition:width .4s cubic-bezier(.4,0,.2,1)}.selected-file-card .card-footer .progress-container .progress-bar.limit-exceeded{background:#ef4444}.selected-file-card .card-footer .file-size-label{font-size:.85rem;color:#94a3b8;font-weight:500}.selected-file-card .card-footer .error-text{color:#ef4444;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::ng-deep .file-upload-container .p-button.p-button-text{background-color:transparent!important;border:none}::ng-deep .file-upload-container .p-button.p-button-text:hover{background-color:#fee2e2!important}.cloud-icon-wrapper{background-color:#e0f2fe;color:#3b82f6;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.cloud-icon-wrapper span{font-size:24px}.main-text{font-size:.9rem;color:#334155}.main-text .blue-text{color:#3b82f6;font-weight:600}.sub-text{color:#64748b;font-size:.8rem}\n"] }]
14786
+ ], template: "<div\r\n *ngIf=\"formGroup\"\r\n class=\"file-upload-container w-full\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched,\r\n 'has-file': formGroup.get(formControlName)?.value,\r\n }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"triggerClick()\"\r\n [style.width]=\"widthComponent\"\r\n>\r\n <input\r\n type=\"file\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n <div *ngIf=\"!formGroup.get(formControlName)?.value\" class=\"dropzone-content\">\r\n <div class=\"cloud-icon-wrapper\">\r\n <span class=\"material-symbols-outlined\">cloud_upload</span>\r\n </div>\r\n <div class=\"text-center\">\r\n <p class=\"main-text\">\r\n <span class=\"blue-text\">Clique para selecionar</span> ou arraste aqui\r\n </p>\r\n\r\n @if(subtitle()) {\r\n <p class=\"sub-text\">{{ subtitle() }} (max. {{ maxSizeFile() }}MB)</p>\r\n } @else {\r\n <p class=\"sub-text\">PDF, Imagens (max. {{ maxSizeFile() }}MB)</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formGroup.get(formControlName)?.value as file\"\r\n class=\"selected-file-card\"\r\n >\r\n <div class=\"card-header\">\r\n <div class=\"file-info\">\r\n <span class=\"material-symbols-outlined file-icon\">description</span>\r\n <span class=\"file-name\" [title]=\"file.name\">{{ file.name }}</span>\r\n </div>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger close-btn\"\r\n (click)=\"deleteFile(); $event.stopPropagation()\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"card-footer\">\r\n <div class=\"progress-container\">\r\n <div\r\n class=\"progress-bar\"\r\n [style.width.%]=\"progressValue()(file.size)\"\r\n [class.limit-exceeded]=\"progressValue()(file.size) >= 100\"\r\n ></div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mt-1\">\r\n <small class=\"error-text\" *ngIf=\"progressValue()(file.size) >= 100\"\r\n >Limite excedido</small\r\n >\r\n <span class=\"file-size-label ml-auto\">{{\r\n formatBytes(file.size)\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p\r\n *ngIf=\"\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched\r\n \"\r\n class=\"error-message\"\r\n>\r\n Campo obrigat\u00F3rio\r\n</p>\r\n", styles: [".file-upload-container{border:2px dashed #cbd5e1;border-radius:1.25rem;background-color:#f8fafc;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease-in-out;position:relative}.file-upload-container:hover,.file-upload-container.dragover{border-color:#3b82f6;background-color:#eff6ff}.file-upload-container.has-file{cursor:default;background-color:#f1f5f9;padding:0;border-style:solid}.selected-file-card{background:#fff;border-radius:1.25rem;padding:1.5rem;width:100%;height:100%;min-height:160px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex-direction:column;justify-content:center;gap:1rem;animation:fadeIn .3s ease-out;box-sizing:border-box}.selected-file-card .card-header{display:flex;justify-content:space-between;align-items:center}.selected-file-card .card-header .file-info{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-file-card .card-header .file-info .file-icon{color:#64748b;font-size:24px}.selected-file-card .card-header .file-info .file-name{font-size:1rem;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .card-header .close-btn{width:32px!important;height:32px!important;padding:0!important}.selected-file-card .card-header .close-btn ::ng-deep .p-button-icon{font-size:1rem}.selected-file-card .card-footer .progress-container{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.selected-file-card .card-footer .progress-container .progress-bar{height:100%;background:#3b82f6;transition:width .4s cubic-bezier(.4,0,.2,1)}.selected-file-card .card-footer .progress-container .progress-bar.limit-exceeded{background:#ef4444}.selected-file-card .card-footer .file-size-label{font-size:.85rem;color:#94a3b8;font-weight:500}.selected-file-card .card-footer .error-text{color:#ef4444;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::ng-deep .file-upload-container .p-button.p-button-text{background-color:transparent!important;border:none}::ng-deep .file-upload-container .p-button.p-button-text:hover{background-color:#fee2e2!important}.cloud-icon-wrapper{background-color:#e0f2fe;color:#3b82f6;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.cloud-icon-wrapper span{font-size:24px}.main-text{font-size:.9rem;color:#334155}.main-text .blue-text{color:#3b82f6;font-weight:600}.sub-text{color:#64748b;font-size:.8rem}\n"] }]
14787
14787
  }], ctorParameters: () => [{ type: NotificationService }], propDecorators: { formGroup: [{
14788
14788
  type: Input
14789
14789
  }], formControlName: [{
@@ -14812,6 +14812,117 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
14812
14812
  args: ['inputUpload']
14813
14813
  }] } });
14814
14814
 
14815
+ /**
14816
+ * Componente de accordion (sanfona) reutilizável que permite expandir/retrair conteúdo.
14817
+ *
14818
+ * @remarks
14819
+ * Este componente oferece funcionalidades de accordion com suporte a diferentes modos de operação,
14820
+ * incluindo modo switch. Permite controlar a expansão do conteúdo e aplicar bordas em diferentes
14821
+ * posições (top, middle, bottom, full, none) através de classes CSS dinâmicas.
14822
+ *
14823
+ */
14824
+ class KvAccordionComponent {
14825
+ constructor() {
14826
+ /** Opções de configuração do componente accordion. */
14827
+ this.options = input.required();
14828
+ /** Estado do switch quando o modo é 'switch'. */
14829
+ this.selectionSwitch = model(false);
14830
+ }
14831
+ /** Seleciona o valor do switch. */
14832
+ selectSwitchValue(newValue) {
14833
+ this.selectionSwitch.set(newValue);
14834
+ }
14835
+ /** Alterna o estado de expansão do accordion. */
14836
+ toggleExpand() {
14837
+ if (this.options().mode !== 'switch' && !this.options().disableExpand) {
14838
+ this.options().comeExpanded = !this.options().comeExpanded;
14839
+ }
14840
+ }
14841
+ /**
14842
+ * Vincula a classe CSS 'kv-item-top' ao elemento host quando a posição da borda é 'top'.
14843
+ * @returns {boolean} Retorna true se a posição da borda configurada nas opções for 'top', false caso contrário.
14844
+ * @remarks
14845
+ * Este getter utiliza o decorator @HostBinding para adicionar ou remover dinamicamente
14846
+ * a classe CSS 'kv-item-top' no elemento host do componente, baseado na configuração
14847
+ * da propriedade positionBorder nas opções do accordion.
14848
+ */
14849
+ get isTop() { return this.options().positionBorder === 'top'; }
14850
+ /**
14851
+ * Vincula a classe CSS 'kv-item-middle' ao elemento host quando a posição da borda é 'middle'.
14852
+ * @returns {boolean} Retorna true se a posição da borda configurada nas opções for 'middle', false caso contrário.
14853
+ * @remarks
14854
+ * Este getter utiliza o decorator @HostBinding para adicionar ou remover dinamicamente
14855
+ * a classe CSS 'kv-item-middle' no elemento host do componente, baseado na configuração
14856
+ * da propriedade positionBorder nas opções do accordion.
14857
+ */
14858
+ get isMiddle() { return this.options().positionBorder === 'middle'; }
14859
+ /**
14860
+ * Vincula a classe CSS 'kv-item-bottom' ao elemento host quando a posição da borda é 'bottom'.
14861
+ * @returns {boolean} Retorna true se a posição da borda configurada nas opções for 'bottom', false caso contrário.
14862
+ * @remarks
14863
+ * Este getter utiliza o decorator @HostBinding para adicionar ou remover dinamicamente
14864
+ * a classe CSS 'kv-item-bottom' no elemento host do componente, baseado na configuração
14865
+ * da propriedade positionBorder nas opções do accordion.
14866
+ */
14867
+ get isBottom() { return this.options().positionBorder === 'bottom'; }
14868
+ /**
14869
+ * Vincula a classe CSS 'kv-item-full' ao elemento host quando a posição da borda é 'full'.
14870
+ * @returns {boolean} Retorna true se a posição da borda configurada nas opções for 'full', false caso contrário.
14871
+ * @remarks
14872
+ * Este getter utiliza o decorator @HostBinding para adicionar ou remover dinamicamente
14873
+ * a classe CSS 'kv-item-full' no elemento host do componente, baseado na configuração
14874
+ * da propriedade positionBorder nas opções do accordion.
14875
+ * */
14876
+ get isFull() { return this.options().positionBorder === 'full'; }
14877
+ /**
14878
+ * Vincula a classe CSS 'kv-item-none' ao elemento host quando a posição da borda é 'none'.
14879
+ * @returns {boolean} Retorna true se a posição da borda configurada nas opções for 'none', false caso contrário.
14880
+ * @remarks
14881
+ * Este getter utiliza o decorator @HostBinding para adicionar ou remover dinamicamente
14882
+ * a classe CSS 'kv-item-none' no elemento host do componente, baseado na configuração
14883
+ * da propriedade positionBorder nas opções do accordion.
14884
+ */
14885
+ get isNone() { return this.options().positionBorder === 'none'; }
14886
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14887
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvAccordionComponent, isStandalone: true, selector: "kv-accordion", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, selectionSwitch: { classPropertyName: "selectionSwitch", publicName: "selectionSwitch", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionSwitch: "selectionSwitchChange" }, host: { properties: { "class.kv-item-top": "this.isTop", "class.kv-item-middle": "this.isMiddle", "class.kv-item-bottom": "this.isBottom", "class.kv-item-full": "this.isFull", "class.kv-item-none": "this.isNone" } }, ngImport: i0, template: "<div class=\"kv-accordion-container\">\r\n <div class=\"kv-accordion-header\" [class.cursor-pointer]=\"options().mode !== 'switch' && !options().disableExpand\" (click)=\"toggleExpand()\">\r\n <div class=\"kv-header-content\">\r\n <div class=\"kv-title-group\">\r\n <div class=\"kv-title\">{{ options().title }}</div>\r\n <div class=\"kv-subtitle\">{{ options().subtitle }}</div>\r\n </div>\r\n\r\n <div class=\"kv-actions\" (click)=\"$event.stopPropagation()\">\r\n @if((options().mode === 'switch' || options().mode === 'both') && options().displayStatusLabel) {\r\n <span class=\"kv-status-label\" [class.active]=\"selectionSwitch()\">\r\n {{ selectionSwitch() ? 'Ativado' : 'Desativado' }}\r\n </span>\r\n }\r\n\r\n @if(options().mode === 'switch' || options().mode === 'both') {\r\n <kv-switch \r\n [switchValue]=\"selectionSwitch()\" \r\n (onSwitchChange)=\"selectSwitchValue($event)\">\r\n </kv-switch>\r\n }\r\n \r\n @if(options().mode === 'expand' || options().mode === 'both') {\r\n <span class=\"material-symbols-outlined\" (click)=\"toggleExpand()\">\r\n {{options().comeExpanded ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\r\n </span>\r\n }\r\n \r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"kv-accordion-body\" [@rowExpansion]=\"options().comeExpanded && options().mode !== 'switch' ? 'expanded' : 'collapsed'\">\r\n <div class=\"kv-body-inner\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n", styles: [":host{display:block}:host.kv-item-top .kv-accordion-container{border:1px solid #e2e8f0;border-radius:.5rem .5rem 0 0;overflow:hidden}:host.kv-item-middle .kv-accordion-container{border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;border-radius:0}:host.kv-item-bottom .kv-accordion-container{border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;border-radius:0 0 .5rem .5rem;overflow:hidden}:host.kv-item-full .kv-accordion-container{border:1px solid #e2e8f0;border-radius:.5rem;overflow:hidden}.kv-accordion-container{width:100%;background-color:#f8fafc}.kv-accordion-container.disabled{opacity:.6;pointer-events:none;filter:grayscale(1)}.kv-accordion-container .kv-accordion-header{padding:1rem;transition:background .2s;-webkit-user-select:none;user-select:none}.kv-accordion-container .kv-accordion-header.cursor-pointer{cursor:pointer}.kv-accordion-container .kv-accordion-header:hover{background-color:#f4f7fa}.kv-accordion-container .kv-accordion-header .kv-header-content{display:flex;justify-content:space-between;align-items:center}.kv-accordion-container .kv-accordion-header:not(.cursor-pointer):hover{background-color:transparent!important}.kv-accordion-container .kv-title-group .kv-title{font-size:.825rem;font-weight:600;color:#0f172a}.kv-accordion-container .kv-title-group .kv-subtitle{font-size:.7rem;margin-top:.15rem;color:#64748b}.kv-accordion-container .kv-actions{display:flex;align-items:center;gap:.75rem}.kv-accordion-container .kv-actions .kv-status-label{font-size:.7rem;font-weight:500;color:#64748b}.kv-accordion-container .kv-actions .kv-status-label.active{color:#64748b}.kv-accordion-container .kv-actions .material-symbols-outlined{font-size:1.25rem;color:#64748b;-webkit-user-select:none;user-select:none}.kv-accordion-container .kv-accordion-body{background-color:#f4f7fa}.kv-accordion-container .kv-accordion-body .kv-body-inner{border-top:1px solid #dfe6ed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: KvInputsModule }, { kind: "component", type: KvSwitchComponent, selector: "kv-switch", inputs: ["readonly", "switchValue"], outputs: ["onSwitchChange"] }], animations: [
14888
+ trigger('rowExpansion', [
14889
+ state('collapsed', style({ height: '0px', opacity: 0, overflow: 'hidden' })),
14890
+ state('expanded', style({ height: '*', opacity: 1 })),
14891
+ transition('expanded <=> collapsed', animate('200ms cubic-bezier(0.4, 0, 0.2, 1)'))
14892
+ ])
14893
+ ] }); }
14894
+ }
14895
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAccordionComponent, decorators: [{
14896
+ type: Component,
14897
+ args: [{ selector: 'kv-accordion', standalone: true, imports: [
14898
+ CommonModule,
14899
+ FormsModule,
14900
+ ReactiveFormsModule,
14901
+ KvInputsModule,
14902
+ ], animations: [
14903
+ trigger('rowExpansion', [
14904
+ state('collapsed', style({ height: '0px', opacity: 0, overflow: 'hidden' })),
14905
+ state('expanded', style({ height: '*', opacity: 1 })),
14906
+ transition('expanded <=> collapsed', animate('200ms cubic-bezier(0.4, 0, 0.2, 1)'))
14907
+ ])
14908
+ ], template: "<div class=\"kv-accordion-container\">\r\n <div class=\"kv-accordion-header\" [class.cursor-pointer]=\"options().mode !== 'switch' && !options().disableExpand\" (click)=\"toggleExpand()\">\r\n <div class=\"kv-header-content\">\r\n <div class=\"kv-title-group\">\r\n <div class=\"kv-title\">{{ options().title }}</div>\r\n <div class=\"kv-subtitle\">{{ options().subtitle }}</div>\r\n </div>\r\n\r\n <div class=\"kv-actions\" (click)=\"$event.stopPropagation()\">\r\n @if((options().mode === 'switch' || options().mode === 'both') && options().displayStatusLabel) {\r\n <span class=\"kv-status-label\" [class.active]=\"selectionSwitch()\">\r\n {{ selectionSwitch() ? 'Ativado' : 'Desativado' }}\r\n </span>\r\n }\r\n\r\n @if(options().mode === 'switch' || options().mode === 'both') {\r\n <kv-switch \r\n [switchValue]=\"selectionSwitch()\" \r\n (onSwitchChange)=\"selectSwitchValue($event)\">\r\n </kv-switch>\r\n }\r\n \r\n @if(options().mode === 'expand' || options().mode === 'both') {\r\n <span class=\"material-symbols-outlined\" (click)=\"toggleExpand()\">\r\n {{options().comeExpanded ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\r\n </span>\r\n }\r\n \r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"kv-accordion-body\" [@rowExpansion]=\"options().comeExpanded && options().mode !== 'switch' ? 'expanded' : 'collapsed'\">\r\n <div class=\"kv-body-inner\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n", styles: [":host{display:block}:host.kv-item-top .kv-accordion-container{border:1px solid #e2e8f0;border-radius:.5rem .5rem 0 0;overflow:hidden}:host.kv-item-middle .kv-accordion-container{border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;border-radius:0}:host.kv-item-bottom .kv-accordion-container{border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;border-radius:0 0 .5rem .5rem;overflow:hidden}:host.kv-item-full .kv-accordion-container{border:1px solid #e2e8f0;border-radius:.5rem;overflow:hidden}.kv-accordion-container{width:100%;background-color:#f8fafc}.kv-accordion-container.disabled{opacity:.6;pointer-events:none;filter:grayscale(1)}.kv-accordion-container .kv-accordion-header{padding:1rem;transition:background .2s;-webkit-user-select:none;user-select:none}.kv-accordion-container .kv-accordion-header.cursor-pointer{cursor:pointer}.kv-accordion-container .kv-accordion-header:hover{background-color:#f4f7fa}.kv-accordion-container .kv-accordion-header .kv-header-content{display:flex;justify-content:space-between;align-items:center}.kv-accordion-container .kv-accordion-header:not(.cursor-pointer):hover{background-color:transparent!important}.kv-accordion-container .kv-title-group .kv-title{font-size:.825rem;font-weight:600;color:#0f172a}.kv-accordion-container .kv-title-group .kv-subtitle{font-size:.7rem;margin-top:.15rem;color:#64748b}.kv-accordion-container .kv-actions{display:flex;align-items:center;gap:.75rem}.kv-accordion-container .kv-actions .kv-status-label{font-size:.7rem;font-weight:500;color:#64748b}.kv-accordion-container .kv-actions .kv-status-label.active{color:#64748b}.kv-accordion-container .kv-actions .material-symbols-outlined{font-size:1.25rem;color:#64748b;-webkit-user-select:none;user-select:none}.kv-accordion-container .kv-accordion-body{background-color:#f4f7fa}.kv-accordion-container .kv-accordion-body .kv-body-inner{border-top:1px solid #dfe6ed}\n"] }]
14909
+ }], propDecorators: { isTop: [{
14910
+ type: HostBinding,
14911
+ args: ['class.kv-item-top']
14912
+ }], isMiddle: [{
14913
+ type: HostBinding,
14914
+ args: ['class.kv-item-middle']
14915
+ }], isBottom: [{
14916
+ type: HostBinding,
14917
+ args: ['class.kv-item-bottom']
14918
+ }], isFull: [{
14919
+ type: HostBinding,
14920
+ args: ['class.kv-item-full']
14921
+ }], isNone: [{
14922
+ type: HostBinding,
14923
+ args: ['class.kv-item-none']
14924
+ }] } });
14925
+
14815
14926
  /*
14816
14927
  * Public API Surface of keevo-components
14817
14928
  */
@@ -14823,5 +14934,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
14823
14934
  * Generated bundle index. Do not edit.
14824
14935
  */
14825
14936
 
14826
- export { BaseApiService, BaseChartComponent, BaseComponent, BaseComponentButton, BaseComponentCrud, BaseComponentCrudForm, BaseComponentCrudList, BaseComponentDropDown, BaseComponentDropDownExternal, BaseComponentInput, BaseComponentMultiSelect, BasecomponentTable, BreadcrumbsService, CDN_URLS, CUSTOM_FONTS, CapitalizePipe, ChatService, ComponentProviders, ComponentService, CpfCnpjPipe, DEBOUNCE_TIME, DEFAULT_KV_EDITOR_CONFIG, DEFAULT_QUILL_CONFIG, DocsService, DragDirective, DynamicInputDirective, ERROR_MESSAGES, EnumUtils, FONT_SIZES, FormService, ImageCutterService, ImagensService, KeevoComponentsModule, KeevoValidators, KvAvatarComponent, KvAvatarModule, KvButtonComponent, KvButtonModule, KvButtonPersonalizeComponent, KvButtonPopupComponent, KvButtonSecondaryComponent, KvButtonSuccessComponent, KvButtonsModule, KvCardMessageComponent, KvCardSelectionComponent, KvCardSelectionModule, KvCardsInstructionComponent, KvCarouselComponent, KvCarouselModule, KvChartComponent, KvChartModule, KvCheckComponent, KvChipsComponent, KvConfirmationModalComponent, KvConfirmationModalModule, KvContentViewerComponent, KvContentViewerModule, KvDetailedListComponent, KvDropdownComponent, KvEditorComponent, KvEditorMentionService, KvEditorPdfService, KvEditorQuillService, KvEditorRelatorioService, KvErrorComponent, KvFileUploadComponent, KvFileUploadModule, KvFileUploadNewComponent, KvFileViewerComponent, KvFileViewerModule, KvFileViewerNovoComponent, KvFileViewerNovoModule, KvFilterCardComponent, KvFilterCardModule, KvFilterCardsComponent, KvFilterCardsModule, KvFilterFieldsetComponent, KvFilterFieldsetModule, KvGIconComponent, KvGIconModule, KvHomeCardComponent, KvHomeCardModule, KvIconComponent, KvIconModule, KvImageUploadComponent, KvImageUploadModule, KvInputCalendarComponent, KvInputMaskComponent, KvInputNumberAddonComponent, KvInputNumberComponent, KvInputPasswordComponent, KvInputTextAddonComponent, KvInputTextCheckboxComponent, KvInputTextComponent, KvInputTextareaComponent, KvInputTimeComponent, KvInputsModule, KvInstructionPageComponent, KvKanbanComponent, KvLayoutComponent, KvLayoutModule, KvLoaderComponent, KvLoaderModule, KvLoaderService, KvLoginComponent, KvLoginModule, KvModalComponent, KvModalModule, KvMultiSelectComponent, KvOrgchartComponent, KvOrgchartModule, KvPageFormComponent, KvPageFormModule, KvPageStepperComponent, KvPageStepperodule, KvPickListComponent, KvPickListModule, KvProgressBarAlternativeComponent, KvProgressBarAlternativeModule, KvProgressBarModule, KvRadioGroupComponent, KvReportComponent, KvReportModule, KvSelectButtonComponent, KvSelectButtonsComponent, KvSelectCardsComponent, KvStackedBarChartComponent, KvStepperComponent, KvStepperModule, KvStepsComponent, KvSwitchComponent, KvTableComponent, KvTableDraggableComponent, KvTableDraggableModule, KvTableEditComponent, KvTableEditModule, KvTableExpandableComponent, KvTableExpandableModule, KvTableModule, KvTableViewerComponent, KvTagComponent, KvTagModule, KvTagsComponent, KvTagsModule, KvTimelineComponent, KvTreeEnvironmentComponent, KvTreeMultiSelectComponent, KvTreeViewComponent, KvTreetableComponent, KvTreetableModule, KvWidgetCardComponent, KvWorkspaceModule, KvtreeViewModule, MaskPipe, NoArvoreComponent, NotificationService, ObjectService, OrgChartService, PDF_STYLES, PeriodosChart, PipesModule, PrimeNgModule, ProgressBarComponent, TIMEOUTS, TablePaginate, TelefonePipe, TemplateDirective, TranslatePrimeng, WorkspaceComponent, getOrExecute, kvErrorModule, loading, mapToMenuItem, mapaSeverityColors };
14937
+ export { BaseApiService, BaseChartComponent, BaseComponent, BaseComponentButton, BaseComponentCrud, BaseComponentCrudForm, BaseComponentCrudList, BaseComponentDropDown, BaseComponentDropDownExternal, BaseComponentInput, BaseComponentMultiSelect, BasecomponentTable, BreadcrumbsService, CDN_URLS, CUSTOM_FONTS, CapitalizePipe, ChatService, ComponentProviders, ComponentService, CpfCnpjPipe, DEBOUNCE_TIME, DEFAULT_KV_EDITOR_CONFIG, DEFAULT_QUILL_CONFIG, DocsService, DragDirective, DynamicInputDirective, ERROR_MESSAGES, EnumUtils, FONT_SIZES, FormService, ImageCutterService, ImagensService, KeevoComponentsModule, KeevoValidators, KvAccordionComponent, KvAvatarComponent, KvAvatarModule, KvButtonComponent, KvButtonModule, KvButtonPersonalizeComponent, KvButtonPopupComponent, KvButtonSecondaryComponent, KvButtonSuccessComponent, KvButtonsModule, KvCardMessageComponent, KvCardSelectionComponent, KvCardSelectionModule, KvCardsInstructionComponent, KvCarouselComponent, KvCarouselModule, KvChartComponent, KvChartModule, KvCheckComponent, KvChipsComponent, KvConfirmationModalComponent, KvConfirmationModalModule, KvContentViewerComponent, KvContentViewerModule, KvDetailedListComponent, KvDropdownComponent, KvEditorComponent, KvEditorMentionService, KvEditorPdfService, KvEditorQuillService, KvEditorRelatorioService, KvErrorComponent, KvFileUploadComponent, KvFileUploadModule, KvFileUploadNewComponent, KvFileViewerComponent, KvFileViewerModule, KvFileViewerNovoComponent, KvFileViewerNovoModule, KvFilterCardComponent, KvFilterCardModule, KvFilterCardsComponent, KvFilterCardsModule, KvFilterFieldsetComponent, KvFilterFieldsetModule, KvGIconComponent, KvGIconModule, KvHomeCardComponent, KvHomeCardModule, KvIconComponent, KvIconModule, KvImageUploadComponent, KvImageUploadModule, KvInputCalendarComponent, KvInputMaskComponent, KvInputNumberAddonComponent, KvInputNumberComponent, KvInputPasswordComponent, KvInputTextAddonComponent, KvInputTextCheckboxComponent, KvInputTextComponent, KvInputTextareaComponent, KvInputTimeComponent, KvInputsModule, KvInstructionPageComponent, KvKanbanComponent, KvLayoutComponent, KvLayoutModule, KvLoaderComponent, KvLoaderModule, KvLoaderService, KvLoginComponent, KvLoginModule, KvModalComponent, KvModalModule, KvMultiSelectComponent, KvOrgchartComponent, KvOrgchartModule, KvPageFormComponent, KvPageFormModule, KvPageStepperComponent, KvPageStepperodule, KvPickListComponent, KvPickListModule, KvProgressBarAlternativeComponent, KvProgressBarAlternativeModule, KvProgressBarModule, KvRadioGroupComponent, KvReportComponent, KvReportModule, KvSelectButtonComponent, KvSelectButtonsComponent, KvSelectCardsComponent, KvStackedBarChartComponent, KvStepperComponent, KvStepperModule, KvStepsComponent, KvSwitchComponent, KvTableComponent, KvTableDraggableComponent, KvTableDraggableModule, KvTableEditComponent, KvTableEditModule, KvTableExpandableComponent, KvTableExpandableModule, KvTableModule, KvTableViewerComponent, KvTagComponent, KvTagModule, KvTagsComponent, KvTagsModule, KvTimelineComponent, KvTreeEnvironmentComponent, KvTreeMultiSelectComponent, KvTreeViewComponent, KvTreetableComponent, KvTreetableModule, KvWidgetCardComponent, KvWorkspaceModule, KvtreeViewModule, MaskPipe, NoArvoreComponent, NotificationService, ObjectService, OrgChartService, PDF_STYLES, PeriodosChart, PipesModule, PrimeNgModule, ProgressBarComponent, TIMEOUTS, TablePaginate, TelefonePipe, TemplateDirective, TranslatePrimeng, WorkspaceComponent, getOrExecute, kvErrorModule, loading, mapToMenuItem, mapaSeverityColors };
14827
14938
  //# sourceMappingURL=keevo-components.mjs.map