keevo-components 1.5.125 → 1.5.126

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.
@@ -2607,6 +2607,8 @@ class TreeTableComponent {
2607
2607
  this.telefonePipe = telefonePipe;
2608
2608
  this.selectedItems = [];
2609
2609
  this.acoesLinhaTabela = true;
2610
+ this.espacamentoPai = '2px';
2611
+ this.espacamentoLateral = true;
2610
2612
  this.rows = 5;
2611
2613
  this.paginator = true;
2612
2614
  this.rightCollapse = false;
@@ -2738,14 +2740,14 @@ class TreeTableComponent {
2738
2740
  }
2739
2741
  return false;
2740
2742
  }
2741
- criarMenusModal(data) {
2743
+ criarMenusModal(data, rowNode) {
2742
2744
  if (this.config.actions && data) {
2743
2745
  const items = this.config.actions.map((action) => {
2744
2746
  const icon = this.retornarCampo(action, data, 'icon');
2745
2747
  const tooltip = this.retornarCampo(action, data, 'tooltip');
2746
2748
  const label = this.retornarCampo(action, data, 'label');
2747
2749
  const command = this.retornarCampo(action, data, 'command');
2748
- const visible = action.visible ? action.visible(data) : true;
2750
+ const visible = action.visible ? action.visible(data, rowNode) : true;
2749
2751
  const disabled = action.disabled
2750
2752
  ? action.disabled(data)
2751
2753
  : false;
@@ -2780,12 +2782,23 @@ class TreeTableComponent {
2780
2782
  recuperarRowNode(rowNode) {
2781
2783
  return rowNode;
2782
2784
  }
2785
+ validaLinhaAcaoVazia(rowData, rowNode) {
2786
+ var algumItemVisivel = this.config.actions.some(a => {
2787
+ if (typeof a.visible === 'function') {
2788
+ return a.visible(rowData, rowNode) === true;
2789
+ }
2790
+ else {
2791
+ return true; // Retorna true se a.visible(rowData) não existir
2792
+ }
2793
+ });
2794
+ return !algumItemVisivel;
2795
+ }
2783
2796
  }
2784
2797
  TreeTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TreeTableComponent, deps: [{ token: i1.DatePipe }, { token: i1.DecimalPipe }, { token: CodigoFipePipe }, { token: CpfCnpjPipe }, { token: TelefonePipe }], target: i0.ɵɵFactoryTarget.Component });
2785
- TreeTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: TreeTableComponent, selector: "kv-treetable", inputs: { config: "config", dataSource: "dataSource", selectedItems: "selectedItems", acoesLinhaTabela: "acoesLinhaTabela", tamanhoTotalTree: "tamanhoTotalTree", rowsPerPageOptions: "rowsPerPageOptions", rows: "rows", tableSize: "tableSize", paginator: "paginator", rightCollapse: "rightCollapse", applyStyle: "applyStyle", _templates: ["templates", "_templates"] }, outputs: { onFilter: "onFilter", onPaginate: "onPaginate", onActiveItem: "onActiveItem", onActiveItemLote: "onActiveItemLote" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<div>\r\n\r\n <p-treeTable #tt [value]=\"dataSource\" [columns]=\"config.columns\" [(selection)]=\"selectedItems\" [scrollable]=\"true\"\r\n selectionMode=\"checkbox\" [(selection)]=\"selectedNodes\" [rowsPerPageOptions]=\"rowsPerPageOptions\"\r\n [paginator]=\"paginator\" [rows]=\"rows\" [totalRecords]=\"tamanhoTotalTree\" [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\">\r\n\r\n\r\n\r\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableSelect == true\">\r\n <div class=\"flex\">\r\n\r\n <p-treeTableHeaderCheckbox (click)=\"activeItemLote(selectedItems)\"></p-treeTableHeaderCheckbox>\r\n\r\n <span class=\"ml-2\">Selecionar Todos</span>\r\n\r\n <div class=\"p-input-icon-left\" *ngIf=\"config.enableFilter\">\r\n <i class=\"pi pi-search\"></i>\r\n <input type=\"text\" pInputText placeholder=\"Global Search\" (input)=\"onGlobalFilter(tt,$event)\" />\r\n </div>\r\n\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th [style.width]=\"col.width\" *ngFor=\"let col of columns\" [ttSortableColumn]=\"col.sortable ? col.field : false\"\r\n [ttSortableColumnDisabled]=\"col.sortable == false\">\r\n\r\n\r\n <div [class]=\"'flex flex-row ml-2'\">\r\n {{ col.header }}\r\n\r\n <p-treeTableSortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-treeTableSortIcon>\r\n\r\n <span *ngIf=\"col.headerTooltip\" class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\">info</span>\r\n\r\n </div>\r\n </th>\r\n <th [style.width]=\"'20px'\" *ngIf=\"config.actions && config.actions.length > 0\"></th>\r\n </tr>\r\n </ng-template>\r\n\r\n\r\n\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n <tr [ttRow]=\"rowNode\" >\r\n <td [style]=\"applyStyle(rowData, col)\" *ngFor=\"let col of config.columns; let i = index,\" class=\"rowTable\" >\r\n\r\n\r\n <!-- // Collapse -->\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"!rightCollapse && i == 0\"></p-treeTableToggler>\r\n <p-treeTableToggler class=\"hiddenVisible\" [rowNode]=\"rowNode\"\r\n *ngIf=\"rightCollapse && i == 0\"></p-treeTableToggler>\r\n\r\n\r\n <!-- // Checkbox para multisele\u00E7\u00E3o-->\r\n <p-treeTableCheckbox (click)=\"activeItemLote(selectedItems)\" [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true && i === 0\"></p-treeTableCheckbox>\r\n\r\n <!-- // Campo com tipo booleano -->\r\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" [class]=\"returnRowClass(rowData, col)\">\r\n\r\n <!-- // Campo com tipo padr\u00E3o -->\r\n <span *ngIf=\"!isChipField(col) && !col.iconField && !isImageField(col) && !col.template\"\r\n [ngClass]=\"{'flex align-items-center max-w-max': i == config.columns.length-1}\">\r\n <i *ngIf=\"col.icon\" [class]=\"col.icon + ' mr-2'\"></i>\r\n {{ transformValue(rowData, col) }}\r\n </span>\r\n\r\n\r\n <!-- // Campo com tipo imagem -->\r\n <span *ngIf=\"isImageField(col)\">\r\n <span>\r\n <img class=\"image\" [src]=\"loadImage(rowData, col)\" />\r\n </span>\r\n </span>\r\n\r\n <!-- // Campo com tipo de chip -->\r\n <div *ngIf=\"isChipField(col) && !col.iconField\">\r\n <span class=\"p-element border-null border-round-2xl chip-style p-2 text-null w-auto\"\r\n [pTooltip]=\"rowData[col.field]\">{{\r\n transformValue(rowData, col)\r\n }} teste</span>\r\n </div>\r\n\r\n </span>\r\n\r\n\r\n <!-- // Template campo booleano -->\r\n <ng-template #booleanField>\r\n <i *ngIf=\"!col.iconField\" [ngClass]=\"\r\n rowData[col.field] ? 'text-green-500' : 'text-red-500'\r\n \"><span class=\"material-symbols-outlined\">\r\n {{ rowData[col.field] ? \"check\" : \"close\" }}\r\n </span>\r\n </i>\r\n </ng-template>\r\n\r\n\r\n <!-- // Template campo personalizado -->\r\n <ng-container *ngIf=\"col.template && getCustomTemplate(col.template.name) \"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData, rowNodeLevel: rowNode.level }\">\r\n </ng-container>\r\n\r\n </td>\r\n\r\n\r\n\r\n <td *ngIf=\"config.actions && config.actions.length > 0 \" style=\"width: 20px;\"\r\n [style]=\"applyStyle(rowData, { field: 'btns-options', header: '' })\">\r\n <div class=\"flex flex-row justify-content-end w-full\" *ngIf=\"acoesLinhaTabela\">\r\n <div *ngFor=\"let action of config.actions\">\r\n <button id=\"actionBtns\" pButton *ngIf=\"exibirCampo(action, rowData)\"\r\n class=\"actionBtns p-button-text p-button-raised\"\r\n (click)=\"activeItem(rowNode, rowData); action?.command()\"\r\n [pTooltip]=\"retornarCampo(action, rowData, 'tooltip')\" [tooltipPosition]=\"'bottom'\"\r\n [disabled]=\"callDisabled(action, rowData)\">\r\n <span class=\"material-symbols-outlined md-19\">\r\n {{ retornarCampo(action, rowData, \"icon\") }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row justify-content-end w-full\" *ngIf=\"!acoesLinhaTabela\">\r\n <button id=\"moreVertBtn\" pButton class=\"actionBtns p-button-text p-button-raised\"\r\n (click)=\"menu.toggle($event); activeItem(rowNode, rowData)\">\r\n <span class=\"material-symbols-outlined\" style=\"font-size: 20px\">\r\n more_horiz\r\n </span>\r\n </button>\r\n\r\n <div *ngFor=\"let action of config.actions\">\r\n {{ criarMenusModal(rowData) }}\r\n </div>\r\n\r\n <p-menu #menu [popup]=\"true\" [model]=\"menuItems\" appendTo=\"body\"></p-menu>\r\n\r\n <!-- :: Icone de collapse na direita :: -->\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"rightCollapse\"></p-treeTableToggler>\r\n </div>\r\n </td>\r\n\r\n\r\n\r\n\r\n </tr>\r\n </ng-template>\r\n\r\n\r\n <!-- :: Template para icone de collapse na direita -->\r\n <ng-template *ngIf=\"rightCollapse\" pTemplate=\"togglericon\" let-open>\r\n <span *ngIf=\"open\" class=\"pi pi-angle-left\"></span>\r\n <span *ngIf=\"!open\" class=\"pi pi-angle-down\"></span>\r\n </ng-template>\r\n\r\n\r\n\r\n\r\n <!-- :: Hotfix do bug da vers\u00E3o 15 do primeng, ao retirar esse bloco de codigo na vers\u00E3o 15 do primeng os icones de prev e next do paginator ir\u00E3o sumir ( resolvido na vers\u00E3o 16.0) :: -->\r\n\r\n <ng-template pTemplate=\"paginatorfirstpagelinkicon\">\r\n <span class=\"pi pi-angle-double-left\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorpreviouspagelinkicon\">\r\n <span class=\"pi pi-angle-left\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatornextpagelinkicon\">\r\n <span class=\"pi pi-angle-right\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorlastpagelinkicon\">\r\n <span class=\"pi pi-angle-double-right\"></span>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + 2\" style=\"text-align: center\">\r\n Nenhum registro encontrado\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n\r\n </p-treeTable>\r\n\r\n</div>\r\n\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\r\n/>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\r\n/>\r\n", styles: [".error-show{background-color:red;width:5px;height:10px}.input-search{position:relative;right:8px}.btns-options{position:relative;left:20px}.chip-style{border:solid 1px}:host::ng-deep .p-card .p-card-content{padding:0}.material-symbols-outlined.md-19{font-size:19px}.material-symbols-outlined.md-22{font-size:22px}.checkbox-container{display:flex;align-items:center;gap:2px;margin-top:5px}#botaoFiltro:hover{color:#a9a9a9}.actionLoteBtns{align-items:center;background-color:transparent;color:#a9a9a9;display:flex;font-size:16px;width:2rem;height:2rem;top:2px;margin-left:.5rem;justify-content:center;text-decoration:none;text-align:justify;padding:12px}#actionLoteBtns:hover{color:#a9a9a9}.actionBtns{align-items:center;background-color:transparent;color:#a9a9a9;display:flex;width:.8rem;height:.8rem;margin-left:.22rem;justify-content:center;text-decoration:none;text-align:justify;padding:11px}:host::ng-deep .material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:17px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased}#actionBtns:hover,#moreVertBtn:hover{color:#a9a9a9}.icon-search{top:20px}.image{border-style:solid;border-width:3.5px;border-color:#5289b4;border-radius:100%;height:55px;width:55px;padding:0;margin:0;vertical-align:middle}@media only screen and (min-width: 768px){.actionLoteBtns{top:-1px}}@media only screen and (max-width: 960px){.rowTable{text-align:right!important}}:host ::ng-deep .hiddenVisible span{visibility:hidden!important;cursor:hidden}\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$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i1$2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i2$2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4$5.InputText, selector: "[pInputText]" }, { kind: "component", type: i5$2.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i8.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "virtualRowHeight", "value", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel"] }, { kind: "component", type: i8.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i8.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "component", type: i8.TTSortIcon, selector: "p-treeTableSortIcon", inputs: ["field", "ariaLabelDesc", "ariaLabelAsc"] }, { kind: "directive", type: i8.TTRow, selector: "[ttRow]", inputs: ["ttRow"] }, { kind: "component", type: i8.TTCheckbox, selector: "p-treeTableCheckbox", inputs: ["disabled", "value"] }, { kind: "component", type: i8.TTHeaderCheckbox, selector: "p-treeTableHeaderCheckbox" }] });
2798
+ TreeTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: TreeTableComponent, selector: "kv-treetable", inputs: { config: "config", dataSource: "dataSource", selectedItems: "selectedItems", acoesLinhaTabela: "acoesLinhaTabela", espacamentoPai: "espacamentoPai", espacamentoLateral: "espacamentoLateral", tamanhoTotalTree: "tamanhoTotalTree", rowsPerPageOptions: "rowsPerPageOptions", rows: "rows", tableSize: "tableSize", paginator: "paginator", rightCollapse: "rightCollapse", applyStyle: "applyStyle", _templates: ["templates", "_templates"] }, outputs: { onFilter: "onFilter", onPaginate: "onPaginate", onActiveItem: "onActiveItem", onActiveItemLote: "onActiveItemLote" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<div>\r\n\r\n <p-treeTable #tt [value]=\"dataSource\" [columns]=\"config.columns\" [(selection)]=\"selectedItems\" [scrollable]=\"true\"\r\n selectionMode=\"checkbox\" [(selection)]=\"selectedNodes\" [rowsPerPageOptions]=\"rowsPerPageOptions\"\r\n [paginator]=\"paginator\" [rows]=\"rows\" [totalRecords]=\"tamanhoTotalTree\" [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\" rowGroupMode=\"subheader\" groupRowsBy=\"id\" >\r\n\r\n\r\n\r\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableSelect == true\">\r\n\r\n <div class=\"flex\">\r\n\r\n <p-treeTableHeaderCheckbox (click)=\"activeItemLote(selectedItems)\"></p-treeTableHeaderCheckbox>\r\n\r\n <span class=\"ml-2\">Selecionar Todos</span>\r\n\r\n <div class=\"p-input-icon-left\" *ngIf=\"config.enableFilter\">\r\n <i class=\"pi pi-search\"></i>\r\n <input type=\"text\" pInputText placeholder=\"Global Search\" (input)=\"onGlobalFilter(tt,$event)\" />\r\n </div>\r\n\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th [style.width]=\"col.width\" *ngFor=\"let col of columns\" [ttSortableColumn]=\"col.sortable ? col.field : false\"\r\n [ttSortableColumnDisabled]=\"col.sortable == false\">\r\n\r\n\r\n <div [class]=\"'flex flex-row ml-2'\">\r\n {{ col.header }}\r\n\r\n <p-treeTableSortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-treeTableSortIcon>\r\n\r\n <span *ngIf=\"col.headerTooltip\" class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\">info</span>\r\n\r\n </div>\r\n </th>\r\n <th [style.width]=\"'20px'\" *ngIf=\"config.actions && config.actions.length > 0\"></th>\r\n </tr>\r\n </ng-template>\r\n\r\n\r\n\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n\r\n\r\n <tr *ngIf=\"rowNode.level == 0\" [style.height]=\"espacamentoPai\">\r\n </tr>\r\n\r\n\r\n <tr [ttRow]=\"rowNode\">\r\n <td [style]=\"applyStyle(rowData, col)\" *ngFor=\"let col of config.columns; let i = index,\" class=\"rowTable\" [ngClass]=\"{'flex': i == 0, 'margem-filho': i == 0 && rowNode.level != 0 && espacamentoLateral }\" >\r\n\r\n\r\n <!-- // Collapse -->\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"!rightCollapse && i == 0\"></p-treeTableToggler>\r\n <p-treeTableToggler class=\"hiddenVisible\" [rowNode]=\"rowNode\"\r\n *ngIf=\"rightCollapse && i == 0\"></p-treeTableToggler>\r\n\r\n\r\n <!-- // Checkbox para multisele\u00E7\u00E3o-->\r\n <p-treeTableCheckbox (click)=\"activeItemLote(selectedItems)\" [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true && i === 0\"></p-treeTableCheckbox>\r\n\r\n <!-- // Campo com tipo booleano -->\r\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" [class]=\"returnRowClass(rowData, col)\">\r\n\r\n <!-- // Campo com tipo padr\u00E3o -->\r\n <span *ngIf=\"!isChipField(col) && !col.iconField && !isImageField(col) && !col.template\"\r\n [ngClass]=\"{'flex align-items-center max-w-max': i == config.columns.length-1}\">\r\n <i *ngIf=\"col.icon\" [class]=\"col.icon + ' mr-2'\"></i>\r\n {{ transformValue(rowData, col) }}\r\n </span>\r\n\r\n\r\n <!-- // Campo com tipo imagem -->\r\n <span *ngIf=\"isImageField(col)\">\r\n <span>\r\n <img class=\"image\" [src]=\"loadImage(rowData, col)\" />\r\n </span>\r\n </span>\r\n\r\n <!-- // Campo com tipo de chip -->\r\n <div *ngIf=\"isChipField(col) && !col.iconField\">\r\n <span class=\"p-element border-null border-round-2xl chip-style p-2 text-null w-auto\"\r\n [pTooltip]=\"rowData[col.field]\">{{\r\n transformValue(rowData, col)\r\n }} teste</span>\r\n </div>\r\n\r\n </span>\r\n\r\n\r\n <!-- // Template campo booleano -->\r\n <ng-template #booleanField>\r\n <i *ngIf=\"!col.iconField\" [ngClass]=\"\r\n rowData[col.field] ? 'text-green-500' : 'text-red-500'\r\n \"><span class=\"material-symbols-outlined\">\r\n {{ rowData[col.field] ? \"check\" : \"close\" }}\r\n </span>\r\n </i>\r\n </ng-template>\r\n\r\n\r\n <!-- // Template campo personalizado -->\r\n <ng-container *ngIf=\"col.template && getCustomTemplate(col.template.name) \"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData, rowNodeLevel: rowNode.level }\">\r\n </ng-container>\r\n\r\n </td>\r\n\r\n\r\n\r\n <td *ngIf=\"config.actions && config.actions.length > 0 && !validaLinhaAcaoVazia(rowData, rowNode)\" style=\"width: 20px;\"\r\n [style]=\"applyStyle(rowData, { field: 'btns-options', header: '' })\">\r\n\r\n\r\n <div class=\"flex flex-row justify-content-end w-full\" *ngIf=\"acoesLinhaTabela\">\r\n <div *ngFor=\"let action of config.actions\">\r\n <button id=\"actionBtns\" pButton *ngIf=\"exibirCampo(action, rowData)\"\r\n class=\"actionBtns p-button-text p-button-raised\"\r\n (click)=\"activeItem(rowNode, rowData); action?.command()\"\r\n [pTooltip]=\"retornarCampo(action, rowData, 'tooltip')\" [tooltipPosition]=\"'bottom'\"\r\n [disabled]=\"callDisabled(action, rowData)\">\r\n <span class=\"material-symbols-outlined md-19\">\r\n {{ retornarCampo(action, rowData, \"icon\") }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex flex-row justify-content-end w-full\" *ngIf=\"!acoesLinhaTabela\">\r\n <button id=\"moreVertBtn\" pButton class=\"actionBtns p-button-text p-button-raised\"\r\n (click)=\"menu.toggle($event); activeItem(rowNode, rowData)\">\r\n <span class=\"material-symbols-outlined\" style=\"font-size: 20px\">\r\n more_horiz\r\n </span>\r\n </button>\r\n\r\n <div *ngFor=\"let action of config.actions\">\r\n {{ criarMenusModal(rowData, rowNode) }}\r\n </div>\r\n\r\n <p-menu #menu [popup]=\"true\" [model]=\"menuItems\" appendTo=\"body\"></p-menu>\r\n\r\n <!-- :: Icone de collapse na direita :: -->\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"rightCollapse\"></p-treeTableToggler>\r\n </div>\r\n\r\n </td>\r\n\r\n\r\n\r\n\r\n </tr>\r\n\r\n\r\n\r\n </ng-template>\r\n\r\n\r\n <!-- :: Template para icone de collapse na direita -->\r\n <ng-template *ngIf=\"rightCollapse\" pTemplate=\"togglericon\" let-open>\r\n <span *ngIf=\"open\" class=\"pi pi-angle-left\"></span>\r\n <span *ngIf=\"!open\" class=\"pi pi-angle-down\"></span>\r\n </ng-template>\r\n\r\n\r\n\r\n\r\n <!-- :: Hotfix do bug da vers\u00E3o 15 do primeng, ao retirar esse bloco de codigo na vers\u00E3o 15 do primeng os icones de prev e next do paginator ir\u00E3o sumir ( resolvido na vers\u00E3o 16.0) :: -->\r\n\r\n <ng-template pTemplate=\"paginatorfirstpagelinkicon\">\r\n <span class=\"pi pi-angle-double-left\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorpreviouspagelinkicon\">\r\n <span class=\"pi pi-angle-left\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatornextpagelinkicon\">\r\n <span class=\"pi pi-angle-right\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorlastpagelinkicon\">\r\n <span class=\"pi pi-angle-double-right\"></span>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + 2\" style=\"text-align: center\">\r\n Nenhum registro encontrado\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n\r\n </p-treeTable>\r\n\r\n</div>\r\n\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\r\n/>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\r\n/>\r\n", styles: [".error-show{background-color:red;width:5px;height:10px}.input-search{position:relative;right:8px}.btns-options{position:relative;left:20px}.chip-style{border:solid 1px}:host::ng-deep .p-card .p-card-content{padding:0}.material-symbols-outlined.md-19{font-size:19px}.material-symbols-outlined.md-22{font-size:22px}.checkbox-container{display:flex;align-items:center;gap:2px;margin-top:5px}#botaoFiltro:hover{color:#a9a9a9}.actionLoteBtns{align-items:center;background-color:transparent;color:#a9a9a9;display:flex;font-size:16px;width:2rem;height:2rem;top:2px;margin-left:.5rem;justify-content:center;text-decoration:none;text-align:justify;padding:12px}#actionLoteBtns:hover{color:#a9a9a9}.actionBtns{align-items:center;background-color:transparent;color:#a9a9a9;display:flex;width:.8rem;height:.8rem;margin-left:.22rem;justify-content:center;text-decoration:none;text-align:justify;padding:11px}:host::ng-deep .material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:17px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased}#actionBtns:hover,#moreVertBtn:hover{color:#a9a9a9}.icon-search{top:20px}.image{border-style:solid;border-width:3.5px;border-color:#5289b4;border-radius:100%;height:55px;width:55px;padding:0;margin:0;vertical-align:middle}@media only screen and (min-width: 768px){.actionLoteBtns{top:-1px}}@media only screen and (max-width: 960px){.rowTable{text-align:right!important}}:host ::ng-deep .hiddenVisible span{visibility:hidden!important;cursor:hidden}.margem-filho{margin-left:25px!important}\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$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i1$2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i2$2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4$5.InputText, selector: "[pInputText]" }, { kind: "component", type: i5$2.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i8.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "virtualRowHeight", "value", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel"] }, { kind: "component", type: i8.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i8.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "component", type: i8.TTSortIcon, selector: "p-treeTableSortIcon", inputs: ["field", "ariaLabelDesc", "ariaLabelAsc"] }, { kind: "directive", type: i8.TTRow, selector: "[ttRow]", inputs: ["ttRow"] }, { kind: "component", type: i8.TTCheckbox, selector: "p-treeTableCheckbox", inputs: ["disabled", "value"] }, { kind: "component", type: i8.TTHeaderCheckbox, selector: "p-treeTableHeaderCheckbox" }] });
2786
2799
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TreeTableComponent, decorators: [{
2787
2800
  type: Component,
2788
- args: [{ selector: 'kv-treetable', template: "<div>\r\n\r\n <p-treeTable #tt [value]=\"dataSource\" [columns]=\"config.columns\" [(selection)]=\"selectedItems\" [scrollable]=\"true\"\r\n selectionMode=\"checkbox\" [(selection)]=\"selectedNodes\" [rowsPerPageOptions]=\"rowsPerPageOptions\"\r\n [paginator]=\"paginator\" [rows]=\"rows\" [totalRecords]=\"tamanhoTotalTree\" [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\">\r\n\r\n\r\n\r\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableSelect == true\">\r\n <div class=\"flex\">\r\n\r\n <p-treeTableHeaderCheckbox (click)=\"activeItemLote(selectedItems)\"></p-treeTableHeaderCheckbox>\r\n\r\n <span class=\"ml-2\">Selecionar Todos</span>\r\n\r\n <div class=\"p-input-icon-left\" *ngIf=\"config.enableFilter\">\r\n <i class=\"pi pi-search\"></i>\r\n <input type=\"text\" pInputText placeholder=\"Global Search\" (input)=\"onGlobalFilter(tt,$event)\" />\r\n </div>\r\n\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th [style.width]=\"col.width\" *ngFor=\"let col of columns\" [ttSortableColumn]=\"col.sortable ? col.field : false\"\r\n [ttSortableColumnDisabled]=\"col.sortable == false\">\r\n\r\n\r\n <div [class]=\"'flex flex-row ml-2'\">\r\n {{ col.header }}\r\n\r\n <p-treeTableSortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-treeTableSortIcon>\r\n\r\n <span *ngIf=\"col.headerTooltip\" class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\">info</span>\r\n\r\n </div>\r\n </th>\r\n <th [style.width]=\"'20px'\" *ngIf=\"config.actions && config.actions.length > 0\"></th>\r\n </tr>\r\n </ng-template>\r\n\r\n\r\n\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n <tr [ttRow]=\"rowNode\" >\r\n <td [style]=\"applyStyle(rowData, col)\" *ngFor=\"let col of config.columns; let i = index,\" class=\"rowTable\" >\r\n\r\n\r\n <!-- // Collapse -->\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"!rightCollapse && i == 0\"></p-treeTableToggler>\r\n <p-treeTableToggler class=\"hiddenVisible\" [rowNode]=\"rowNode\"\r\n *ngIf=\"rightCollapse && i == 0\"></p-treeTableToggler>\r\n\r\n\r\n <!-- // Checkbox para multisele\u00E7\u00E3o-->\r\n <p-treeTableCheckbox (click)=\"activeItemLote(selectedItems)\" [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true && i === 0\"></p-treeTableCheckbox>\r\n\r\n <!-- // Campo com tipo booleano -->\r\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" [class]=\"returnRowClass(rowData, col)\">\r\n\r\n <!-- // Campo com tipo padr\u00E3o -->\r\n <span *ngIf=\"!isChipField(col) && !col.iconField && !isImageField(col) && !col.template\"\r\n [ngClass]=\"{'flex align-items-center max-w-max': i == config.columns.length-1}\">\r\n <i *ngIf=\"col.icon\" [class]=\"col.icon + ' mr-2'\"></i>\r\n {{ transformValue(rowData, col) }}\r\n </span>\r\n\r\n\r\n <!-- // Campo com tipo imagem -->\r\n <span *ngIf=\"isImageField(col)\">\r\n <span>\r\n <img class=\"image\" [src]=\"loadImage(rowData, col)\" />\r\n </span>\r\n </span>\r\n\r\n <!-- // Campo com tipo de chip -->\r\n <div *ngIf=\"isChipField(col) && !col.iconField\">\r\n <span class=\"p-element border-null border-round-2xl chip-style p-2 text-null w-auto\"\r\n [pTooltip]=\"rowData[col.field]\">{{\r\n transformValue(rowData, col)\r\n }} teste</span>\r\n </div>\r\n\r\n </span>\r\n\r\n\r\n <!-- // Template campo booleano -->\r\n <ng-template #booleanField>\r\n <i *ngIf=\"!col.iconField\" [ngClass]=\"\r\n rowData[col.field] ? 'text-green-500' : 'text-red-500'\r\n \"><span class=\"material-symbols-outlined\">\r\n {{ rowData[col.field] ? \"check\" : \"close\" }}\r\n </span>\r\n </i>\r\n </ng-template>\r\n\r\n\r\n <!-- // Template campo personalizado -->\r\n <ng-container *ngIf=\"col.template && getCustomTemplate(col.template.name) \"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData, rowNodeLevel: rowNode.level }\">\r\n </ng-container>\r\n\r\n </td>\r\n\r\n\r\n\r\n <td *ngIf=\"config.actions && config.actions.length > 0 \" style=\"width: 20px;\"\r\n [style]=\"applyStyle(rowData, { field: 'btns-options', header: '' })\">\r\n <div class=\"flex flex-row justify-content-end w-full\" *ngIf=\"acoesLinhaTabela\">\r\n <div *ngFor=\"let action of config.actions\">\r\n <button id=\"actionBtns\" pButton *ngIf=\"exibirCampo(action, rowData)\"\r\n class=\"actionBtns p-button-text p-button-raised\"\r\n (click)=\"activeItem(rowNode, rowData); action?.command()\"\r\n [pTooltip]=\"retornarCampo(action, rowData, 'tooltip')\" [tooltipPosition]=\"'bottom'\"\r\n [disabled]=\"callDisabled(action, rowData)\">\r\n <span class=\"material-symbols-outlined md-19\">\r\n {{ retornarCampo(action, rowData, \"icon\") }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row justify-content-end w-full\" *ngIf=\"!acoesLinhaTabela\">\r\n <button id=\"moreVertBtn\" pButton class=\"actionBtns p-button-text p-button-raised\"\r\n (click)=\"menu.toggle($event); activeItem(rowNode, rowData)\">\r\n <span class=\"material-symbols-outlined\" style=\"font-size: 20px\">\r\n more_horiz\r\n </span>\r\n </button>\r\n\r\n <div *ngFor=\"let action of config.actions\">\r\n {{ criarMenusModal(rowData) }}\r\n </div>\r\n\r\n <p-menu #menu [popup]=\"true\" [model]=\"menuItems\" appendTo=\"body\"></p-menu>\r\n\r\n <!-- :: Icone de collapse na direita :: -->\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"rightCollapse\"></p-treeTableToggler>\r\n </div>\r\n </td>\r\n\r\n\r\n\r\n\r\n </tr>\r\n </ng-template>\r\n\r\n\r\n <!-- :: Template para icone de collapse na direita -->\r\n <ng-template *ngIf=\"rightCollapse\" pTemplate=\"togglericon\" let-open>\r\n <span *ngIf=\"open\" class=\"pi pi-angle-left\"></span>\r\n <span *ngIf=\"!open\" class=\"pi pi-angle-down\"></span>\r\n </ng-template>\r\n\r\n\r\n\r\n\r\n <!-- :: Hotfix do bug da vers\u00E3o 15 do primeng, ao retirar esse bloco de codigo na vers\u00E3o 15 do primeng os icones de prev e next do paginator ir\u00E3o sumir ( resolvido na vers\u00E3o 16.0) :: -->\r\n\r\n <ng-template pTemplate=\"paginatorfirstpagelinkicon\">\r\n <span class=\"pi pi-angle-double-left\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorpreviouspagelinkicon\">\r\n <span class=\"pi pi-angle-left\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatornextpagelinkicon\">\r\n <span class=\"pi pi-angle-right\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorlastpagelinkicon\">\r\n <span class=\"pi pi-angle-double-right\"></span>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + 2\" style=\"text-align: center\">\r\n Nenhum registro encontrado\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n\r\n </p-treeTable>\r\n\r\n</div>\r\n\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\r\n/>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\r\n/>\r\n", styles: [".error-show{background-color:red;width:5px;height:10px}.input-search{position:relative;right:8px}.btns-options{position:relative;left:20px}.chip-style{border:solid 1px}:host::ng-deep .p-card .p-card-content{padding:0}.material-symbols-outlined.md-19{font-size:19px}.material-symbols-outlined.md-22{font-size:22px}.checkbox-container{display:flex;align-items:center;gap:2px;margin-top:5px}#botaoFiltro:hover{color:#a9a9a9}.actionLoteBtns{align-items:center;background-color:transparent;color:#a9a9a9;display:flex;font-size:16px;width:2rem;height:2rem;top:2px;margin-left:.5rem;justify-content:center;text-decoration:none;text-align:justify;padding:12px}#actionLoteBtns:hover{color:#a9a9a9}.actionBtns{align-items:center;background-color:transparent;color:#a9a9a9;display:flex;width:.8rem;height:.8rem;margin-left:.22rem;justify-content:center;text-decoration:none;text-align:justify;padding:11px}:host::ng-deep .material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:17px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased}#actionBtns:hover,#moreVertBtn:hover{color:#a9a9a9}.icon-search{top:20px}.image{border-style:solid;border-width:3.5px;border-color:#5289b4;border-radius:100%;height:55px;width:55px;padding:0;margin:0;vertical-align:middle}@media only screen and (min-width: 768px){.actionLoteBtns{top:-1px}}@media only screen and (max-width: 960px){.rowTable{text-align:right!important}}:host ::ng-deep .hiddenVisible span{visibility:hidden!important;cursor:hidden}\n"] }]
2801
+ args: [{ selector: 'kv-treetable', template: "<div>\r\n\r\n <p-treeTable #tt [value]=\"dataSource\" [columns]=\"config.columns\" [(selection)]=\"selectedItems\" [scrollable]=\"true\"\r\n selectionMode=\"checkbox\" [(selection)]=\"selectedNodes\" [rowsPerPageOptions]=\"rowsPerPageOptions\"\r\n [paginator]=\"paginator\" [rows]=\"rows\" [totalRecords]=\"tamanhoTotalTree\" [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\" rowGroupMode=\"subheader\" groupRowsBy=\"id\" >\r\n\r\n\r\n\r\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableSelect == true\">\r\n\r\n <div class=\"flex\">\r\n\r\n <p-treeTableHeaderCheckbox (click)=\"activeItemLote(selectedItems)\"></p-treeTableHeaderCheckbox>\r\n\r\n <span class=\"ml-2\">Selecionar Todos</span>\r\n\r\n <div class=\"p-input-icon-left\" *ngIf=\"config.enableFilter\">\r\n <i class=\"pi pi-search\"></i>\r\n <input type=\"text\" pInputText placeholder=\"Global Search\" (input)=\"onGlobalFilter(tt,$event)\" />\r\n </div>\r\n\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th [style.width]=\"col.width\" *ngFor=\"let col of columns\" [ttSortableColumn]=\"col.sortable ? col.field : false\"\r\n [ttSortableColumnDisabled]=\"col.sortable == false\">\r\n\r\n\r\n <div [class]=\"'flex flex-row ml-2'\">\r\n {{ col.header }}\r\n\r\n <p-treeTableSortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-treeTableSortIcon>\r\n\r\n <span *ngIf=\"col.headerTooltip\" class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\">info</span>\r\n\r\n </div>\r\n </th>\r\n <th [style.width]=\"'20px'\" *ngIf=\"config.actions && config.actions.length > 0\"></th>\r\n </tr>\r\n </ng-template>\r\n\r\n\r\n\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n\r\n\r\n <tr *ngIf=\"rowNode.level == 0\" [style.height]=\"espacamentoPai\">\r\n </tr>\r\n\r\n\r\n <tr [ttRow]=\"rowNode\">\r\n <td [style]=\"applyStyle(rowData, col)\" *ngFor=\"let col of config.columns; let i = index,\" class=\"rowTable\" [ngClass]=\"{'flex': i == 0, 'margem-filho': i == 0 && rowNode.level != 0 && espacamentoLateral }\" >\r\n\r\n\r\n <!-- // Collapse -->\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"!rightCollapse && i == 0\"></p-treeTableToggler>\r\n <p-treeTableToggler class=\"hiddenVisible\" [rowNode]=\"rowNode\"\r\n *ngIf=\"rightCollapse && i == 0\"></p-treeTableToggler>\r\n\r\n\r\n <!-- // Checkbox para multisele\u00E7\u00E3o-->\r\n <p-treeTableCheckbox (click)=\"activeItemLote(selectedItems)\" [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true && i === 0\"></p-treeTableCheckbox>\r\n\r\n <!-- // Campo com tipo booleano -->\r\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" [class]=\"returnRowClass(rowData, col)\">\r\n\r\n <!-- // Campo com tipo padr\u00E3o -->\r\n <span *ngIf=\"!isChipField(col) && !col.iconField && !isImageField(col) && !col.template\"\r\n [ngClass]=\"{'flex align-items-center max-w-max': i == config.columns.length-1}\">\r\n <i *ngIf=\"col.icon\" [class]=\"col.icon + ' mr-2'\"></i>\r\n {{ transformValue(rowData, col) }}\r\n </span>\r\n\r\n\r\n <!-- // Campo com tipo imagem -->\r\n <span *ngIf=\"isImageField(col)\">\r\n <span>\r\n <img class=\"image\" [src]=\"loadImage(rowData, col)\" />\r\n </span>\r\n </span>\r\n\r\n <!-- // Campo com tipo de chip -->\r\n <div *ngIf=\"isChipField(col) && !col.iconField\">\r\n <span class=\"p-element border-null border-round-2xl chip-style p-2 text-null w-auto\"\r\n [pTooltip]=\"rowData[col.field]\">{{\r\n transformValue(rowData, col)\r\n }} teste</span>\r\n </div>\r\n\r\n </span>\r\n\r\n\r\n <!-- // Template campo booleano -->\r\n <ng-template #booleanField>\r\n <i *ngIf=\"!col.iconField\" [ngClass]=\"\r\n rowData[col.field] ? 'text-green-500' : 'text-red-500'\r\n \"><span class=\"material-symbols-outlined\">\r\n {{ rowData[col.field] ? \"check\" : \"close\" }}\r\n </span>\r\n </i>\r\n </ng-template>\r\n\r\n\r\n <!-- // Template campo personalizado -->\r\n <ng-container *ngIf=\"col.template && getCustomTemplate(col.template.name) \"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData, rowNodeLevel: rowNode.level }\">\r\n </ng-container>\r\n\r\n </td>\r\n\r\n\r\n\r\n <td *ngIf=\"config.actions && config.actions.length > 0 && !validaLinhaAcaoVazia(rowData, rowNode)\" style=\"width: 20px;\"\r\n [style]=\"applyStyle(rowData, { field: 'btns-options', header: '' })\">\r\n\r\n\r\n <div class=\"flex flex-row justify-content-end w-full\" *ngIf=\"acoesLinhaTabela\">\r\n <div *ngFor=\"let action of config.actions\">\r\n <button id=\"actionBtns\" pButton *ngIf=\"exibirCampo(action, rowData)\"\r\n class=\"actionBtns p-button-text p-button-raised\"\r\n (click)=\"activeItem(rowNode, rowData); action?.command()\"\r\n [pTooltip]=\"retornarCampo(action, rowData, 'tooltip')\" [tooltipPosition]=\"'bottom'\"\r\n [disabled]=\"callDisabled(action, rowData)\">\r\n <span class=\"material-symbols-outlined md-19\">\r\n {{ retornarCampo(action, rowData, \"icon\") }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex flex-row justify-content-end w-full\" *ngIf=\"!acoesLinhaTabela\">\r\n <button id=\"moreVertBtn\" pButton class=\"actionBtns p-button-text p-button-raised\"\r\n (click)=\"menu.toggle($event); activeItem(rowNode, rowData)\">\r\n <span class=\"material-symbols-outlined\" style=\"font-size: 20px\">\r\n more_horiz\r\n </span>\r\n </button>\r\n\r\n <div *ngFor=\"let action of config.actions\">\r\n {{ criarMenusModal(rowData, rowNode) }}\r\n </div>\r\n\r\n <p-menu #menu [popup]=\"true\" [model]=\"menuItems\" appendTo=\"body\"></p-menu>\r\n\r\n <!-- :: Icone de collapse na direita :: -->\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"rightCollapse\"></p-treeTableToggler>\r\n </div>\r\n\r\n </td>\r\n\r\n\r\n\r\n\r\n </tr>\r\n\r\n\r\n\r\n </ng-template>\r\n\r\n\r\n <!-- :: Template para icone de collapse na direita -->\r\n <ng-template *ngIf=\"rightCollapse\" pTemplate=\"togglericon\" let-open>\r\n <span *ngIf=\"open\" class=\"pi pi-angle-left\"></span>\r\n <span *ngIf=\"!open\" class=\"pi pi-angle-down\"></span>\r\n </ng-template>\r\n\r\n\r\n\r\n\r\n <!-- :: Hotfix do bug da vers\u00E3o 15 do primeng, ao retirar esse bloco de codigo na vers\u00E3o 15 do primeng os icones de prev e next do paginator ir\u00E3o sumir ( resolvido na vers\u00E3o 16.0) :: -->\r\n\r\n <ng-template pTemplate=\"paginatorfirstpagelinkicon\">\r\n <span class=\"pi pi-angle-double-left\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorpreviouspagelinkicon\">\r\n <span class=\"pi pi-angle-left\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatornextpagelinkicon\">\r\n <span class=\"pi pi-angle-right\"></span>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorlastpagelinkicon\">\r\n <span class=\"pi pi-angle-double-right\"></span>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + 2\" style=\"text-align: center\">\r\n Nenhum registro encontrado\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n\r\n </p-treeTable>\r\n\r\n</div>\r\n\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\r\n/>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\r\n/>\r\n", styles: [".error-show{background-color:red;width:5px;height:10px}.input-search{position:relative;right:8px}.btns-options{position:relative;left:20px}.chip-style{border:solid 1px}:host::ng-deep .p-card .p-card-content{padding:0}.material-symbols-outlined.md-19{font-size:19px}.material-symbols-outlined.md-22{font-size:22px}.checkbox-container{display:flex;align-items:center;gap:2px;margin-top:5px}#botaoFiltro:hover{color:#a9a9a9}.actionLoteBtns{align-items:center;background-color:transparent;color:#a9a9a9;display:flex;font-size:16px;width:2rem;height:2rem;top:2px;margin-left:.5rem;justify-content:center;text-decoration:none;text-align:justify;padding:12px}#actionLoteBtns:hover{color:#a9a9a9}.actionBtns{align-items:center;background-color:transparent;color:#a9a9a9;display:flex;width:.8rem;height:.8rem;margin-left:.22rem;justify-content:center;text-decoration:none;text-align:justify;padding:11px}:host::ng-deep .material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:17px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased}#actionBtns:hover,#moreVertBtn:hover{color:#a9a9a9}.icon-search{top:20px}.image{border-style:solid;border-width:3.5px;border-color:#5289b4;border-radius:100%;height:55px;width:55px;padding:0;margin:0;vertical-align:middle}@media only screen and (min-width: 768px){.actionLoteBtns{top:-1px}}@media only screen and (max-width: 960px){.rowTable{text-align:right!important}}:host ::ng-deep .hiddenVisible span{visibility:hidden!important;cursor:hidden}.margem-filho{margin-left:25px!important}\n"] }]
2789
2802
  }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.DecimalPipe }, { type: CodigoFipePipe }, { type: CpfCnpjPipe }, { type: TelefonePipe }]; }, propDecorators: { config: [{
2790
2803
  type: Input
2791
2804
  }], dataSource: [{
@@ -2794,6 +2807,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
2794
2807
  type: Input
2795
2808
  }], acoesLinhaTabela: [{
2796
2809
  type: Input
2810
+ }], espacamentoPai: [{
2811
+ type: Input
2812
+ }], espacamentoLateral: [{
2813
+ type: Input
2797
2814
  }], tamanhoTotalTree: [{
2798
2815
  type: Input
2799
2816
  }], rowsPerPageOptions: [{