keevo-components 2.0.32 → 2.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/keevo-components.mjs +10 -6
- package/fesm2022/keevo-components.mjs.map +1 -1
- package/lib/api/modules/primeng.module.d.ts +2 -1
- package/lib/components/kv-table/kv-table.component.d.ts +1 -1
- package/lib/components/kv-table-expandable/kv-table-expandable.component.d.ts +1 -1
- package/package.json +1 -3
- package/esm2022/keevo-components.mjs +0 -5
- package/esm2022/lib/api/base-components/base-component-button.mjs +0 -39
- package/esm2022/lib/api/base-components/base-component-chart.mjs +0 -104
- package/esm2022/lib/api/base-components/base-component-crud-form.mjs +0 -302
- package/esm2022/lib/api/base-components/base-component-crud-list.mjs +0 -91
- package/esm2022/lib/api/base-components/base-component-crud.mjs +0 -80
- package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +0 -31
- package/esm2022/lib/api/base-components/base-component-dropdown.mjs +0 -238
- package/esm2022/lib/api/base-components/base-component-input.mjs +0 -101
- package/esm2022/lib/api/base-components/base-component-multi-select.mjs +0 -174
- package/esm2022/lib/api/base-components/base-component-table.mjs +0 -354
- package/esm2022/lib/api/base-components/base-component.mjs +0 -51
- package/esm2022/lib/api/components/chart/chart.config.mjs +0 -2
- package/esm2022/lib/api/components/chart/chart.model.mjs +0 -2
- package/esm2022/lib/api/components/chart/orchart.config.mjs +0 -2
- package/esm2022/lib/api/components/chart/orchartnode.mjs +0 -2
- package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +0 -2
- package/esm2022/lib/api/components/stepper/kv-stepperpanel.mjs +0 -2
- package/esm2022/lib/api/components/table/action-item.mjs +0 -2
- package/esm2022/lib/api/components/table/kv-menuitem.mjs +0 -46
- package/esm2022/lib/api/components/table/table-dropdown-control.mjs +0 -2
- package/esm2022/lib/api/components/table/table.config.column.mjs +0 -2
- package/esm2022/lib/api/components/table/table.config.mjs +0 -2
- package/esm2022/lib/api/components/table/table.paginate.mjs +0 -10
- package/esm2022/lib/api/components/table/tabledit.config.mjs +0 -2
- package/esm2022/lib/api/components/table/tableedit.config.column.mjs +0 -2
- package/esm2022/lib/api/components/tree-table/tree-table-keys.mjs +0 -2
- package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +0 -3
- package/esm2022/lib/api/directives/directives.module.mjs +0 -30
- package/esm2022/lib/api/directives/drag/drag.directive.mjs +0 -52
- package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +0 -31
- package/esm2022/lib/api/directives/template/template.directive.mjs +0 -24
- package/esm2022/lib/api/helpers/component-providers.mjs +0 -16
- package/esm2022/lib/api/helpers/keevo-validators.mjs +0 -131
- package/esm2022/lib/api/helpers/translate-primeng.mjs +0 -23
- package/esm2022/lib/api/modules/primeng.module.mjs +0 -275
- package/esm2022/lib/api/pipes/capitalize.pipe.mjs +0 -47
- package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +0 -25
- package/esm2022/lib/api/pipes/mask.pipe.mjs +0 -29
- package/esm2022/lib/api/pipes/pipes.module.mjs +0 -39
- package/esm2022/lib/api/pipes/telefone.pipe.mjs +0 -45
- package/esm2022/lib/api/services/base.api.service.mjs +0 -74
- package/esm2022/lib/api/services/breadcrumbs.service.mjs +0 -62
- package/esm2022/lib/api/services/chat.service.mjs +0 -37
- package/esm2022/lib/api/services/component.service.mjs +0 -37
- package/esm2022/lib/api/services/docs.service.mjs +0 -129
- package/esm2022/lib/api/services/form.service.mjs +0 -95
- package/esm2022/lib/api/services/image.cutter.service.mjs +0 -191
- package/esm2022/lib/api/services/imagens.service.mjs +0 -28
- package/esm2022/lib/api/services/notification.service.mjs +0 -69
- package/esm2022/lib/api/services/object.service.mjs +0 -39
- package/esm2022/lib/api/services/orgchart.service.mjs +0 -64
- package/esm2022/lib/api/types/breadcrumb.model.mjs +0 -2
- package/esm2022/lib/components/keevo-components.module.mjs +0 -214
- package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +0 -133
- package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +0 -55
- package/esm2022/lib/components/kv-button/kv-button.component.mjs +0 -51
- package/esm2022/lib/components/kv-button/kv-button.module.mjs +0 -28
- package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +0 -25
- package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +0 -39
- package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +0 -17
- package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +0 -17
- package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +0 -39
- package/esm2022/lib/components/kv-card-selection/kv-card-selection.component.mjs +0 -60
- package/esm2022/lib/components/kv-card-selection/kv-card-selection.module.mjs +0 -31
- package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +0 -34
- package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +0 -28
- package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +0 -166
- package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +0 -32
- package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.component.mjs +0 -185
- package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.module.mjs +0 -44
- package/esm2022/lib/components/kv-error/kv-error.component.mjs +0 -26
- package/esm2022/lib/components/kv-error/kv-error.module.mjs +0 -35
- package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +0 -162
- package/esm2022/lib/components/kv-file-upload/kv-file-upload.module.mjs +0 -18
- package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +0 -46
- package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +0 -20
- package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.mjs +0 -68
- package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.mjs +0 -24
- package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +0 -29
- package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +0 -34
- package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +0 -26
- package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.mjs +0 -28
- package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +0 -11
- package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +0 -19
- package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +0 -27
- package/esm2022/lib/components/kv-home-card/kv-home-card.module.mjs +0 -32
- package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +0 -135
- package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +0 -18
- package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +0 -29
- package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +0 -102
- package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +0 -150
- package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +0 -168
- package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +0 -30
- package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +0 -59
- package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +0 -33
- package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +0 -38
- package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +0 -50
- package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +0 -43
- package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +0 -24
- package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +0 -131
- package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +0 -60
- package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +0 -60
- package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +0 -46
- package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +0 -36
- package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +0 -42
- package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +0 -58
- package/esm2022/lib/components/kv-label/kv-label.component.mjs +0 -15
- package/esm2022/lib/components/kv-label/kv-label.module.mjs +0 -24
- package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +0 -28
- package/esm2022/lib/components/kv-layout/kv-layout.module.mjs +0 -72
- package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +0 -430
- package/esm2022/lib/components/kv-layout/top-icons/top-icons.component.mjs +0 -15
- package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +0 -16
- package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +0 -28
- package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +0 -29
- package/esm2022/lib/components/kv-login/kv-login.component.mjs +0 -62
- package/esm2022/lib/components/kv-login/kv-login.module.mjs +0 -47
- package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +0 -98
- package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +0 -20
- package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +0 -225
- package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +0 -59
- package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +0 -215
- package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +0 -41
- package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +0 -205
- package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +0 -51
- package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +0 -144
- package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +0 -39
- package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +0 -62
- package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +0 -28
- package/esm2022/lib/components/kv-report/kv-report.component.mjs +0 -44
- package/esm2022/lib/components/kv-report/kv-report.module.mjs +0 -24
- package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +0 -74
- package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +0 -47
- package/esm2022/lib/components/kv-table/kv-table.component.mjs +0 -673
- package/esm2022/lib/components/kv-table/kv-table.module.mjs +0 -40
- package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +0 -323
- package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +0 -45
- package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +0 -516
- package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +0 -40
- package/esm2022/lib/components/kv-tag/kv-tag.component.mjs +0 -18
- package/esm2022/lib/components/kv-tag/kv-tag.module.mjs +0 -24
- package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +0 -331
- package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +0 -39
- package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +0 -70
- package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +0 -28
- package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +0 -40
- package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +0 -68
- package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +0 -22
- package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +0 -78
- package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +0 -87
- package/esm2022/public-api.mjs +0 -261
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter,
|
|
2
|
+
import { EventEmitter, Output, Input, Component, ViewChild, Injectable, signal, Directive, Pipe, ContentChildren, ViewChildren, forwardRef, viewChild, input, model, output, effect, computed, HostListener, NgModule, inject, ViewContainerRef, ChangeDetectionStrategy, HostBinding, Injector } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule, NgClass } from '@angular/common';
|
|
5
5
|
import * as i1$1 from 'primeng/button';
|
|
@@ -113,6 +113,7 @@ import { InputGroupModule } from 'primeng/inputgroup';
|
|
|
113
113
|
import { InputGroupAddonModule } from 'primeng/inputgroupaddon';
|
|
114
114
|
import * as i7$3 from 'primeng/treeselect';
|
|
115
115
|
import { TreeSelectModule } from 'primeng/treeselect';
|
|
116
|
+
import { TimelineModule } from 'primeng/timeline';
|
|
116
117
|
import { SliderModule } from 'primeng/slider';
|
|
117
118
|
import * as i1$5 from 'ngx-loading';
|
|
118
119
|
import { NgxLoadingModule } from 'ngx-loading';
|
|
@@ -4118,7 +4119,8 @@ class PrimeNgModule {
|
|
|
4118
4119
|
StepperModule,
|
|
4119
4120
|
InputGroupModule,
|
|
4120
4121
|
InputGroupAddonModule,
|
|
4121
|
-
TreeSelectModule
|
|
4122
|
+
TreeSelectModule,
|
|
4123
|
+
TimelineModule] }); }
|
|
4122
4124
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: PrimeNgModule, providers: [
|
|
4123
4125
|
ConfirmationService,
|
|
4124
4126
|
DialogService,
|
|
@@ -4186,7 +4188,8 @@ class PrimeNgModule {
|
|
|
4186
4188
|
StepperModule,
|
|
4187
4189
|
InputGroupModule,
|
|
4188
4190
|
InputGroupAddonModule,
|
|
4189
|
-
TreeSelectModule
|
|
4191
|
+
TreeSelectModule,
|
|
4192
|
+
TimelineModule] }); }
|
|
4190
4193
|
}
|
|
4191
4194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: PrimeNgModule, decorators: [{
|
|
4192
4195
|
type: NgModule,
|
|
@@ -4253,7 +4256,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
4253
4256
|
StepperModule,
|
|
4254
4257
|
InputGroupModule,
|
|
4255
4258
|
InputGroupAddonModule,
|
|
4256
|
-
TreeSelectModule
|
|
4259
|
+
TreeSelectModule,
|
|
4260
|
+
TimelineModule
|
|
4257
4261
|
],
|
|
4258
4262
|
providers: [
|
|
4259
4263
|
ConfirmationService,
|
|
@@ -9948,11 +9952,11 @@ class KvContentViewerComponent {
|
|
|
9948
9952
|
}
|
|
9949
9953
|
}
|
|
9950
9954
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvContentViewerComponent, deps: [{ token: NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9951
|
-
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 }, buttonTemplate: { classPropertyName: "buttonTemplate", publicName: "buttonTemplate", isSignal: false, isRequired: false, transformFunction: null }, listBottomTemplate: { classPropertyName: "listBottomTemplate", publicName: "listBottomTemplate", isSignal: false, isRequired: false, transformFunction: null }, indvisualizado: { classPropertyName: "indvisualizado", publicName: "indvisualizado", isSignal: false, isRequired: false, transformFunction: null }, btnTelaCheia: { classPropertyName: "btnTelaCheia", publicName: "btnTelaCheia", isSignal: false, isRequired: false, transformFunction: null }, isLoadingSkeleton: { classPropertyName: "isLoadingSkeleton", publicName: "isLoadingSkeleton", isSignal: false, isRequired: false, transformFunction: null }, borderCardNaoVisualizado: { classPropertyName: "borderCardNaoVisualizado", publicName: "borderCardNaoVisualizado", isSignal: false, isRequired: false, transformFunction: null }, contentForm: { classPropertyName: "contentForm", publicName: "contentForm", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onScrollHandler: "onScrollHandler", onSelectFile: "onSelectFile", onSave: "onSave", onCancel: "onCancel" }, ngImport: i0, template: "<div\r\n class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\"\r\n style=\"height: 100%\"\r\n>\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil col-12 md:col-4 lg:col-3 flex flex-column justify-content-between\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-auto': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; height: 100%; min-height: 15rem\"\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 (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-naoVisualizado': !isVisualizado(option) && borderCardNaoVisualizado,\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div\r\n class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis\"\r\n style=\"max-width: 100%\"\r\n >\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(isLoadingSkeleton){\r\n <p-skeleton *ngFor=\"let i of [1, 2, 3, 4, 5, 6, 7, 8, 9]\"></p-skeleton>\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-column\r\n justify-content-center text-center px-2 p-2\"\r\n style=\"position: sticky; bottom: -10px; background-color: white; \"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n @if(listBottomTemplate) {\r\n <ng-container *ngTemplateOutlet=\"listBottomTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div\r\n id=\"fullscreenDiv\"\r\n class=\"card-perfil col-12 md:col-8 lg:col-9 flex-1\"\r\n style=\"position: relative; height: 100%\"\r\n [ngStyle]=\"{\r\n 'overflow-y': arquivoPreview() ? 'auto' : 'hidden'\r\n }\"\r\n >\r\n @if(btnTelaCheia && !buttonTemplate) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span\r\n id=\"fullscreenBtn\"\r\n (click)=\"alternarTelaCheia()\"\r\n class=\"material-symbols-outlined p-2 text-xl cursor-pointer\"\r\n >\r\n open_in_full\r\n </span>\r\n </div>\r\n } @if(!btnTelaCheia && buttonTemplate && !contentViewer) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n } @if(btnTelaCheia && buttonTemplate) {\r\n <div class=\"grid\">\r\n @if(!contentViewer) {\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n }\r\n <div class=\"col\"></div>\r\n <span\r\n id=\"fullscreenBtn\"\r\n (click)=\"alternarTelaCheia()\"\r\n class=\"material-symbols-outlined p-2 text-xl cursor-pointer\"\r\n >\r\n open_in_full\r\n </span>\r\n </div>\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 style=\"max-height: 100%\"\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 style=\"overflow-y: auto; max-height: 100%\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"flex flex-column\" style=\"height: 92%;\" >\r\n <ng-container\r\n *ngIf=\"arquivoPreview() || contentViewer; else noDocumentSelected\"\r\n >\r\n <div style=\"flex: 1;\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></ng-container>\r\n </div>\r\n @if(contentForm) {\r\n <div class=\"grid\" style=\"position: sticky; bottom: 0; background-color: white; z-index: 10; padding: 1rem 1rem 0 1rem;\">\r\n <div class=\"col-8\">\r\n <span class=\"text-sm\">\r\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios\r\n </span>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Cancelar\"\r\n icon=\"close\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n (onClick)=\"OnCancel()\"\r\n >\r\n </kv-button>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Salvar\"\r\n icon=\"save\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"primary\"\r\n (onClick)=\"OnSave()\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n </div> \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%; overflow-y: auto\"\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}.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)}:host ::ng-deep .p-skeleton{height:5rem!important;border-radius:1rem;margin-top:.5rem}.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}.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: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i10.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: KvFileViewerNovoComponent, selector: "kv-file-viewer-novo", inputs: ["arquivo", "type", "blob", "width", "height"] }, { kind: "component", type: i1$5.NgxLoadingComponent, selector: "ngx-loading", inputs: ["show", "config", "template"] }, { kind: "component", type: KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "iconPosition", "label", "disabled", "items", "popup"], outputs: ["iconChange", "onClick"] }] }); }
|
|
9955
|
+
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 }, buttonTemplate: { classPropertyName: "buttonTemplate", publicName: "buttonTemplate", isSignal: false, isRequired: false, transformFunction: null }, listBottomTemplate: { classPropertyName: "listBottomTemplate", publicName: "listBottomTemplate", isSignal: false, isRequired: false, transformFunction: null }, indvisualizado: { classPropertyName: "indvisualizado", publicName: "indvisualizado", isSignal: false, isRequired: false, transformFunction: null }, btnTelaCheia: { classPropertyName: "btnTelaCheia", publicName: "btnTelaCheia", isSignal: false, isRequired: false, transformFunction: null }, isLoadingSkeleton: { classPropertyName: "isLoadingSkeleton", publicName: "isLoadingSkeleton", isSignal: false, isRequired: false, transformFunction: null }, borderCardNaoVisualizado: { classPropertyName: "borderCardNaoVisualizado", publicName: "borderCardNaoVisualizado", isSignal: false, isRequired: false, transformFunction: null }, contentForm: { classPropertyName: "contentForm", publicName: "contentForm", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onScrollHandler: "onScrollHandler", onSelectFile: "onSelectFile", onSave: "onSave", onCancel: "onCancel" }, ngImport: i0, template: "<div\r\n class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\"\r\n style=\"height: 100%\"\r\n>\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil col-12 md:col-4 lg:col-3 flex flex-column justify-content-between\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-auto': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; height: 100%; min-height: 15rem\"\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 (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-naoVisualizado': !isVisualizado(option) && borderCardNaoVisualizado,\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div\r\n class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis\"\r\n style=\"max-width: 100%\"\r\n >\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(isLoadingSkeleton){\r\n <p-skeleton \r\n *ngFor=\"let i of [1, 2, 3, 4, 5, 6, 7, 8, 9]\" \r\n height=\"5rem\" \r\n [style]=\"{ 'margin-bottom': '0.25rem', 'borderRadius': '0.75rem' }\"\r\n ></p-skeleton>\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-column\r\n justify-content-center text-center px-2 p-2\"\r\n style=\"position: sticky; bottom: -10px; background-color: white; \"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n @if(listBottomTemplate) {\r\n <ng-container *ngTemplateOutlet=\"listBottomTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div\r\n id=\"fullscreenDiv\"\r\n class=\"card-perfil col-12 md:col-8 lg:col-9 flex-1\"\r\n style=\"position: relative; height: 100%\"\r\n [ngStyle]=\"{\r\n 'overflow-y': arquivoPreview() ? 'auto' : 'hidden'\r\n }\"\r\n >\r\n @if(btnTelaCheia && !buttonTemplate) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span\r\n id=\"fullscreenBtn\"\r\n (click)=\"alternarTelaCheia()\"\r\n class=\"material-symbols-outlined p-2 text-xl cursor-pointer\"\r\n >\r\n open_in_full\r\n </span>\r\n </div>\r\n } @if(!btnTelaCheia && buttonTemplate && !contentViewer) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n } @if(btnTelaCheia && buttonTemplate) {\r\n <div class=\"grid\">\r\n @if(!contentViewer) {\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n }\r\n <div class=\"col\"></div>\r\n <span\r\n id=\"fullscreenBtn\"\r\n (click)=\"alternarTelaCheia()\"\r\n class=\"material-symbols-outlined p-2 text-xl cursor-pointer\"\r\n >\r\n open_in_full\r\n </span>\r\n </div>\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 style=\"max-height: 100%\"\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 style=\"overflow-y: auto; max-height: 100%\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"flex flex-column\" style=\"height: 92%;\" >\r\n <ng-container\r\n *ngIf=\"arquivoPreview() || contentViewer; else noDocumentSelected\"\r\n >\r\n <div style=\"flex: 1;\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></ng-container>\r\n </div>\r\n @if(contentForm) {\r\n <div class=\"grid\" style=\"position: sticky; bottom: 0; background-color: white; z-index: 10; padding: 1rem 1rem 0 1rem;\">\r\n <div class=\"col-8\">\r\n <span class=\"text-sm\">\r\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios\r\n </span>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Cancelar\"\r\n icon=\"close\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n (onClick)=\"OnCancel()\"\r\n >\r\n </kv-button>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Salvar\"\r\n icon=\"save\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"primary\"\r\n (onClick)=\"OnSave()\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n </div> \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%; overflow-y: auto\"\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}.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}.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: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i10.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: KvFileViewerNovoComponent, selector: "kv-file-viewer-novo", inputs: ["arquivo", "type", "blob", "width", "height"] }, { kind: "component", type: i1$5.NgxLoadingComponent, selector: "ngx-loading", inputs: ["show", "config", "template"] }, { kind: "component", type: KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "iconPosition", "label", "disabled", "items", "popup"], outputs: ["iconChange", "onClick"] }] }); }
|
|
9952
9956
|
}
|
|
9953
9957
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvContentViewerComponent, decorators: [{
|
|
9954
9958
|
type: Component,
|
|
9955
|
-
args: [{ selector: 'kv-content-viewer', template: "<div\r\n class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\"\r\n style=\"height: 100%\"\r\n>\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil col-12 md:col-4 lg:col-3 flex flex-column justify-content-between\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-auto': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; height: 100%; min-height: 15rem\"\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 (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-naoVisualizado': !isVisualizado(option) && borderCardNaoVisualizado,\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div\r\n class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis\"\r\n style=\"max-width: 100%\"\r\n >\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(isLoadingSkeleton){\r\n <p-skeleton *ngFor=\"let i of [1, 2, 3, 4, 5, 6, 7, 8, 9]\"></p-skeleton>\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-column\r\n justify-content-center text-center px-2 p-2\"\r\n style=\"position: sticky; bottom: -10px; background-color: white; \"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n @if(listBottomTemplate) {\r\n <ng-container *ngTemplateOutlet=\"listBottomTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div\r\n id=\"fullscreenDiv\"\r\n class=\"card-perfil col-12 md:col-8 lg:col-9 flex-1\"\r\n style=\"position: relative; height: 100%\"\r\n [ngStyle]=\"{\r\n 'overflow-y': arquivoPreview() ? 'auto' : 'hidden'\r\n }\"\r\n >\r\n @if(btnTelaCheia && !buttonTemplate) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span\r\n id=\"fullscreenBtn\"\r\n (click)=\"alternarTelaCheia()\"\r\n class=\"material-symbols-outlined p-2 text-xl cursor-pointer\"\r\n >\r\n open_in_full\r\n </span>\r\n </div>\r\n } @if(!btnTelaCheia && buttonTemplate && !contentViewer) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n } @if(btnTelaCheia && buttonTemplate) {\r\n <div class=\"grid\">\r\n @if(!contentViewer) {\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n }\r\n <div class=\"col\"></div>\r\n <span\r\n id=\"fullscreenBtn\"\r\n (click)=\"alternarTelaCheia()\"\r\n class=\"material-symbols-outlined p-2 text-xl cursor-pointer\"\r\n >\r\n open_in_full\r\n </span>\r\n </div>\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 style=\"max-height: 100%\"\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 style=\"overflow-y: auto; max-height: 100%\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"flex flex-column\" style=\"height: 92%;\" >\r\n <ng-container\r\n *ngIf=\"arquivoPreview() || contentViewer; else noDocumentSelected\"\r\n >\r\n <div style=\"flex: 1;\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></ng-container>\r\n </div>\r\n @if(contentForm) {\r\n <div class=\"grid\" style=\"position: sticky; bottom: 0; background-color: white; z-index: 10; padding: 1rem 1rem 0 1rem;\">\r\n <div class=\"col-8\">\r\n <span class=\"text-sm\">\r\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios\r\n </span>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Cancelar\"\r\n icon=\"close\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n (onClick)=\"OnCancel()\"\r\n >\r\n </kv-button>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Salvar\"\r\n icon=\"save\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"primary\"\r\n (onClick)=\"OnSave()\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n </div> \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%; overflow-y: auto\"\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}.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)}:host ::ng-deep .p-skeleton{height:5rem!important;border-radius:1rem;margin-top:.5rem}.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}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"] }]
|
|
9959
|
+
args: [{ selector: 'kv-content-viewer', template: "<div\r\n class=\"flex flex-column md:flex-row gap-2 mt-3 custom-max-height\"\r\n style=\"height: 100%\"\r\n>\r\n <!-- Lista de documentos -->\r\n <div\r\n class=\"card-perfil col-12 md:col-4 lg:col-3 flex flex-column justify-content-between\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-auto': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; height: 100%; min-height: 15rem\"\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 (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-naoVisualizado': !isVisualizado(option) && borderCardNaoVisualizado,\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div\r\n class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis\"\r\n style=\"max-width: 100%\"\r\n >\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(isLoadingSkeleton){\r\n <p-skeleton \r\n *ngFor=\"let i of [1, 2, 3, 4, 5, 6, 7, 8, 9]\" \r\n height=\"5rem\" \r\n [style]=\"{ 'margin-bottom': '0.25rem', 'borderRadius': '0.75rem' }\"\r\n ></p-skeleton>\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-column\r\n justify-content-center text-center px-2 p-2\"\r\n style=\"position: sticky; bottom: -10px; background-color: white; \"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n @if(listBottomTemplate) {\r\n <ng-container *ngTemplateOutlet=\"listBottomTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div\r\n id=\"fullscreenDiv\"\r\n class=\"card-perfil col-12 md:col-8 lg:col-9 flex-1\"\r\n style=\"position: relative; height: 100%\"\r\n [ngStyle]=\"{\r\n 'overflow-y': arquivoPreview() ? 'auto' : 'hidden'\r\n }\"\r\n >\r\n @if(btnTelaCheia && !buttonTemplate) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span\r\n id=\"fullscreenBtn\"\r\n (click)=\"alternarTelaCheia()\"\r\n class=\"material-symbols-outlined p-2 text-xl cursor-pointer\"\r\n >\r\n open_in_full\r\n </span>\r\n </div>\r\n } @if(!btnTelaCheia && buttonTemplate && !contentViewer) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n } @if(btnTelaCheia && buttonTemplate) {\r\n <div class=\"grid\">\r\n @if(!contentViewer) {\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n }\r\n <div class=\"col\"></div>\r\n <span\r\n id=\"fullscreenBtn\"\r\n (click)=\"alternarTelaCheia()\"\r\n class=\"material-symbols-outlined p-2 text-xl cursor-pointer\"\r\n >\r\n open_in_full\r\n </span>\r\n </div>\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 style=\"max-height: 100%\"\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 style=\"overflow-y: auto; max-height: 100%\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"flex flex-column\" style=\"height: 92%;\" >\r\n <ng-container\r\n *ngIf=\"arquivoPreview() || contentViewer; else noDocumentSelected\"\r\n >\r\n <div style=\"flex: 1;\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></ng-container>\r\n </div>\r\n @if(contentForm) {\r\n <div class=\"grid\" style=\"position: sticky; bottom: 0; background-color: white; z-index: 10; padding: 1rem 1rem 0 1rem;\">\r\n <div class=\"col-8\">\r\n <span class=\"text-sm\">\r\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios\r\n </span>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Cancelar\"\r\n icon=\"close\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n (onClick)=\"OnCancel()\"\r\n >\r\n </kv-button>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Salvar\"\r\n icon=\"save\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"primary\"\r\n (onClick)=\"OnSave()\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n </div> \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%; overflow-y: auto\"\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}.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}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"] }]
|
|
9956
9960
|
}], ctorParameters: () => [{ type: NotificationService }], propDecorators: { extencaoDocumento: [{
|
|
9957
9961
|
type: Input
|
|
9958
9962
|
}], totalRecords: [{
|