keevo-components 0.2.0 → 0.2.2

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.
@@ -1,4 +1,4 @@
1
- import { Component, ContentChildren, EventEmitter, Input, Output, ViewChild } from '@angular/core';
1
+ import { Component, ContentChildren, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
2
  import { TemplateDirective } from '../directives/template.directive';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
@@ -11,6 +11,10 @@ import * as i7 from "primeng/inputtext";
11
11
  import * as i8 from "primeng/menu";
12
12
  import * as i9 from "primeng/table";
13
13
  export class TableComponent {
14
+ onWindowResize() {
15
+ this.screenSize = window.innerWidth;
16
+ this.adjustTableSize();
17
+ }
14
18
  set setConfig(value) {
15
19
  this.config = {
16
20
  enableCation: value.enableCation || true,
@@ -31,6 +35,7 @@ export class TableComponent {
31
35
  this.cpfCnpjPipe = cpfCnpjPipe;
32
36
  this.telefonePipe = telefonePipe;
33
37
  this.globalFilterFields = [];
38
+ this.selectedSize = '';
34
39
  this.lazy = true;
35
40
  this.paginator = true;
36
41
  this.onActiveItem = new EventEmitter();
@@ -38,6 +43,8 @@ export class TableComponent {
38
43
  this.onSelectionChange = new EventEmitter();
39
44
  }
40
45
  ngOnInit() {
46
+ this.screenSize = window.innerWidth;
47
+ this.adjustTableSize();
41
48
  }
42
49
  activeItem(rowData) {
43
50
  this.onActiveItem.emit(rowData);
@@ -93,15 +100,24 @@ export class TableComponent {
93
100
  }
94
101
  return value;
95
102
  }
103
+ adjustTableSize() {
104
+ if (this.screenSize > 762)
105
+ this.selectedSize = '';
106
+ else
107
+ this.selectedSize = 'p-datatable-sm';
108
+ }
96
109
  }
97
110
  TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableComponent, deps: [{ token: i1.DatePipe }, { token: i1.DecimalPipe }, { token: i2.CodigoFipePipe }, { token: i3.CpfCnpjPipe }, { token: i4.TelefonePipe }], target: i0.ɵɵFactoryTarget.Component });
98
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: TableComponent, selector: "kv-table", inputs: { setConfig: ["config", "setConfig"], dataSource: "dataSource", selectedItems: "selectedItems", totalRecords: "totalRecords", lazy: "lazy", paginator: "paginator" }, outputs: { onActiveItem: "onActiveItem", onPaginate: "onPaginate", onSelectionChange: "onSelectionChange" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<p-table *ngIf=\"config\" #dt styleClass=\"p-datatable-striped\" [value]=\"dataSource\" [(selection)]=\"selectedItems\"\n [columns]=\"config.columns\" [globalFilterFields]=\"globalFilterFields\" [rows]=\"5\" [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"[5,10,25,50,100,200]\" [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} - {last} de {totalRecords}\" [rowHover]=\"true\" [totalRecords]=\"totalRecords\"\n [lazy]=\"config.lazy\" (onLazyLoad)=\"paginate($event)\" (selectionChange)=\"selectionChange($event)\"\n rowGroupMode=\"rowspan\" [groupRowsBy]=\"config.fieldGroup\" [showFirstLastIcon]=\"false\">\n\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between\n md:align-items-center\">\n <h5 class=\"m-0\">{{ config.title }}</h5>\n <span *ngIf=\"config.enableFilter\" class=\"block mt-2 md:mt-0\n p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText pAutoFocus [autofocus]=\"true\" type=\"text\" (input)=\"onGlobalFilter(dt, $event)\"\n placeholder=\"Pesquisar...\" class=\"w-full sm:w-auto\" />\n </span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 4rem\" *ngIf=\"config.enableSelect\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\" [pSortableColumnDisabled]=\"col.sortable === false\"\n [style.width]=\"col.width\" class=\"text-sm\">\n <div class=\"flex flex-row\">\n {{col.header}}\n <p-sortIcon *ngIf=\"col.sortable === true\" [field]=\"col.field\" style=\"font-size: 10px;\"></p-sortIcon>\n </div>\n\n </th>\n <th *ngIf=\"config.actions && config.actions.length> 0\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowgroup=\"rowgroup\" let-rowspan=\"rowspan\">\n <tr>\n <td *ngIf=\"config.enableSelect\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n\n <ng-container *ngFor=\"let col of columns\">\n\n <td *ngIf=\"rowgroup\" [attr.rowspan]=\"rowgroup && col.grouped? rowspan: null\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n <td *ngIf=\"!rowgroup && !col.grouped\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n </ng-container>\n\n <!-- <td *ngIf=\"config.actions && config.actions.length> 0\">\n <i class=\"pi pi-ellipsis-h\" style=\"cursor: pointer\"\n (click)=\"activeItem(rowData);menu.toggle($event)\"></i>\n </td> -->\n\n <td *ngIf=\"config.actions && config.actions.length> 0\" class=\"flex flex-row\">\n <div *ngFor=\"let action of config.actions\">\n <i class=\"pi {{action.icon}}\" style=\"cursor: pointer\" class=\"mr-2 ml-2\" (click)=\"action?.command()\"></i>\n </div>\n </td>\n\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\" style=\"text-align: center;\">\n Nenhum registro encontrado\n </td>\n </tr>\n </ng-template>\n</p-table>\n<p-menu #menu [popup]=\"true\" [model]=\"config.actions\"></p-menu>\n", styles: [""], 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: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "directive", type: i7.InputText, selector: "[pInputText]" }, { kind: "component", type: i8.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i9.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i9.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i9.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i9.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i9.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }] });
111
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: TableComponent, selector: "kv-table", inputs: { setConfig: ["config", "setConfig"], dataSource: "dataSource", selectedItems: "selectedItems", totalRecords: "totalRecords", lazy: "lazy", paginator: "paginator" }, outputs: { onActiveItem: "onActiveItem", onPaginate: "onPaginate", onSelectionChange: "onSelectionChange" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<p-table *ngIf=\"config\" #dt styleClass=\"p-datatable-striped {{selectedSize}}\" [value]=\"dataSource\" [(selection)]=\"selectedItems\"\n [columns]=\"config.columns\" [globalFilterFields]=\"globalFilterFields\" [rows]=\"5\" [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"[5,10,25,50,100,200]\" [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} - {last} de {totalRecords}\" [rowHover]=\"true\" [totalRecords]=\"totalRecords\"\n [lazy]=\"config.lazy\" (onLazyLoad)=\"paginate($event)\" (selectionChange)=\"selectionChange($event)\"\n rowGroupMode=\"rowspan\" [groupRowsBy]=\"config.fieldGroup\" [showFirstLastIcon]=\"false\" [tableStyle]=\"{ 'min-width': '35rem' }\">\n\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between\n md:align-items-center\">\n <h5 class=\"m-0\">{{ config.title }}</h5>\n <span *ngIf=\"config.enableFilter\" class=\"block mt-2 md:mt-0\n p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText pAutoFocus [autofocus]=\"true\" type=\"text\" (input)=\"onGlobalFilter(dt, $event)\"\n placeholder=\"Pesquisar...\" class=\"w-full sm:w-auto\" />\n </span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 4rem\" *ngIf=\"config.enableSelect\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns;\" [pSortableColumn]=\"col.field\" [pSortableColumnDisabled]=\"col.sortable === false\"\n [style.width]=\"col.width\" class=\"text-sm\">\n <div class=\"flex flex-row\">\n {{col.header}}\n <p-sortIcon *ngIf=\"col.sortable === true\" [field]=\"col.field\" style=\"font-size: 10px;\"></p-sortIcon>\n </div>\n\n </th>\n <th *ngIf=\"config.actions && config.actions.length> 0\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowgroup=\"rowgroup\" let-rowspan=\"rowspan\">\n <tr>\n <td *ngIf=\"config.enableSelect\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n\n <ng-container *ngFor=\"let col of columns\">\n\n <td *ngIf=\"rowgroup\" [attr.rowspan]=\"rowgroup && col.grouped? rowspan: null\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" class=\"text-xs md:text-sm lg:text-base\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n <td *ngIf=\"!rowgroup && !col.grouped\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" class=\"text-xs md:text-sm lg:text-base\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n </ng-container>\n\n <!-- <td *ngIf=\"config.actions && config.actions.length> 0\">\n <i class=\"pi pi-ellipsis-h\" style=\"cursor: pointer\"\n (click)=\"activeItem(rowData);menu.toggle($event)\"></i>\n </td> -->\n\n <td *ngIf=\"config.actions && config.actions.length> 0\" class=\"flex flex-row\">\n <div *ngFor=\"let action of config.actions\">\n <i class=\"pi {{action.icon}}\" style=\"cursor: pointer\" class=\"mr-2 ml-2\" (click)=\"action?.command()\"></i>\n </div>\n </td>\n\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\" style=\"text-align: center;\">\n Nenhum registro encontrado\n </td>\n </tr>\n </ng-template>\n</p-table>\n<p-menu #menu [popup]=\"true\" [model]=\"config.actions\"></p-menu>\n", styles: [""], 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: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "directive", type: i7.InputText, selector: "[pInputText]" }, { kind: "component", type: i8.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i9.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i9.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i9.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i9.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i9.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }] });
99
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableComponent, decorators: [{
100
113
  type: Component,
101
- args: [{ selector: 'kv-table', template: "<p-table *ngIf=\"config\" #dt styleClass=\"p-datatable-striped\" [value]=\"dataSource\" [(selection)]=\"selectedItems\"\n [columns]=\"config.columns\" [globalFilterFields]=\"globalFilterFields\" [rows]=\"5\" [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"[5,10,25,50,100,200]\" [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} - {last} de {totalRecords}\" [rowHover]=\"true\" [totalRecords]=\"totalRecords\"\n [lazy]=\"config.lazy\" (onLazyLoad)=\"paginate($event)\" (selectionChange)=\"selectionChange($event)\"\n rowGroupMode=\"rowspan\" [groupRowsBy]=\"config.fieldGroup\" [showFirstLastIcon]=\"false\">\n\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between\n md:align-items-center\">\n <h5 class=\"m-0\">{{ config.title }}</h5>\n <span *ngIf=\"config.enableFilter\" class=\"block mt-2 md:mt-0\n p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText pAutoFocus [autofocus]=\"true\" type=\"text\" (input)=\"onGlobalFilter(dt, $event)\"\n placeholder=\"Pesquisar...\" class=\"w-full sm:w-auto\" />\n </span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 4rem\" *ngIf=\"config.enableSelect\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\" [pSortableColumnDisabled]=\"col.sortable === false\"\n [style.width]=\"col.width\" class=\"text-sm\">\n <div class=\"flex flex-row\">\n {{col.header}}\n <p-sortIcon *ngIf=\"col.sortable === true\" [field]=\"col.field\" style=\"font-size: 10px;\"></p-sortIcon>\n </div>\n\n </th>\n <th *ngIf=\"config.actions && config.actions.length> 0\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowgroup=\"rowgroup\" let-rowspan=\"rowspan\">\n <tr>\n <td *ngIf=\"config.enableSelect\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n\n <ng-container *ngFor=\"let col of columns\">\n\n <td *ngIf=\"rowgroup\" [attr.rowspan]=\"rowgroup && col.grouped? rowspan: null\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n <td *ngIf=\"!rowgroup && !col.grouped\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n </ng-container>\n\n <!-- <td *ngIf=\"config.actions && config.actions.length> 0\">\n <i class=\"pi pi-ellipsis-h\" style=\"cursor: pointer\"\n (click)=\"activeItem(rowData);menu.toggle($event)\"></i>\n </td> -->\n\n <td *ngIf=\"config.actions && config.actions.length> 0\" class=\"flex flex-row\">\n <div *ngFor=\"let action of config.actions\">\n <i class=\"pi {{action.icon}}\" style=\"cursor: pointer\" class=\"mr-2 ml-2\" (click)=\"action?.command()\"></i>\n </div>\n </td>\n\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\" style=\"text-align: center;\">\n Nenhum registro encontrado\n </td>\n </tr>\n </ng-template>\n</p-table>\n<p-menu #menu [popup]=\"true\" [model]=\"config.actions\"></p-menu>\n" }]
114
+ args: [{ selector: 'kv-table', template: "<p-table *ngIf=\"config\" #dt styleClass=\"p-datatable-striped {{selectedSize}}\" [value]=\"dataSource\" [(selection)]=\"selectedItems\"\n [columns]=\"config.columns\" [globalFilterFields]=\"globalFilterFields\" [rows]=\"5\" [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"[5,10,25,50,100,200]\" [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} - {last} de {totalRecords}\" [rowHover]=\"true\" [totalRecords]=\"totalRecords\"\n [lazy]=\"config.lazy\" (onLazyLoad)=\"paginate($event)\" (selectionChange)=\"selectionChange($event)\"\n rowGroupMode=\"rowspan\" [groupRowsBy]=\"config.fieldGroup\" [showFirstLastIcon]=\"false\" [tableStyle]=\"{ 'min-width': '35rem' }\">\n\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between\n md:align-items-center\">\n <h5 class=\"m-0\">{{ config.title }}</h5>\n <span *ngIf=\"config.enableFilter\" class=\"block mt-2 md:mt-0\n p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText pAutoFocus [autofocus]=\"true\" type=\"text\" (input)=\"onGlobalFilter(dt, $event)\"\n placeholder=\"Pesquisar...\" class=\"w-full sm:w-auto\" />\n </span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 4rem\" *ngIf=\"config.enableSelect\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns;\" [pSortableColumn]=\"col.field\" [pSortableColumnDisabled]=\"col.sortable === false\"\n [style.width]=\"col.width\" class=\"text-sm\">\n <div class=\"flex flex-row\">\n {{col.header}}\n <p-sortIcon *ngIf=\"col.sortable === true\" [field]=\"col.field\" style=\"font-size: 10px;\"></p-sortIcon>\n </div>\n\n </th>\n <th *ngIf=\"config.actions && config.actions.length> 0\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowgroup=\"rowgroup\" let-rowspan=\"rowspan\">\n <tr>\n <td *ngIf=\"config.enableSelect\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n\n <ng-container *ngFor=\"let col of columns\">\n\n <td *ngIf=\"rowgroup\" [attr.rowspan]=\"rowgroup && col.grouped? rowspan: null\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" class=\"text-xs md:text-sm lg:text-base\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n <td *ngIf=\"!rowgroup && !col.grouped\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" class=\"text-xs md:text-sm lg:text-base\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n </ng-container>\n\n <!-- <td *ngIf=\"config.actions && config.actions.length> 0\">\n <i class=\"pi pi-ellipsis-h\" style=\"cursor: pointer\"\n (click)=\"activeItem(rowData);menu.toggle($event)\"></i>\n </td> -->\n\n <td *ngIf=\"config.actions && config.actions.length> 0\" class=\"flex flex-row\">\n <div *ngFor=\"let action of config.actions\">\n <i class=\"pi {{action.icon}}\" style=\"cursor: pointer\" class=\"mr-2 ml-2\" (click)=\"action?.command()\"></i>\n </div>\n </td>\n\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\" style=\"text-align: center;\">\n Nenhum registro encontrado\n </td>\n </tr>\n </ng-template>\n</p-table>\n<p-menu #menu [popup]=\"true\" [model]=\"config.actions\"></p-menu>\n" }]
102
115
  }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.DecimalPipe }, { type: i2.CodigoFipePipe }, { type: i3.CpfCnpjPipe }, { type: i4.TelefonePipe }]; }, propDecorators: { templates: [{
103
116
  type: ContentChildren,
104
117
  args: [TemplateDirective]
118
+ }], onWindowResize: [{
119
+ type: HostListener,
120
+ args: ['window:resize', ['$event']]
105
121
  }], table: [{
106
122
  type: ViewChild,
107
123
  args: ['table', { static: false }]
@@ -125,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
125
141
  }], onSelectionChange: [{
126
142
  type: Output
127
143
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBMEIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUW5JLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7OztBQVVyRSxNQUFNLE9BQU8sY0FBYztJQVV6QixJQUFxQixTQUFTLENBQUMsS0FBa0I7UUFDL0MsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUk7WUFDeEMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSztZQUN6QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJO1lBQ3hDLEdBQUcsS0FBSztTQUNULENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFZRCxZQUE2QixRQUFrQixFQUM1QixXQUF3QixFQUN4QixjQUE4QixFQUM5QixXQUF3QixFQUN4QixZQUEwQjtRQUpoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXBDN0MsdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1FBeUJ6QixTQUFJLEdBQVksSUFBSSxDQUFDO1FBQ3JCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFekIsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRCxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkQsc0JBQWlCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFNbkIsQ0FBQztJQUVsRCxRQUFRO0lBQ1IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFZO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBWSxFQUFFLEdBQXNCO1FBQ2pELE9BQU8sT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUNoRCxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQVksRUFBRSxLQUFZO1FBQzlDLEtBQUssQ0FBQyxZQUFZLENBQUUsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBVTtRQUN4QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hGLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFFbkIsSUFBSSxLQUFLLENBQUMsWUFBWTtnQkFDcEIsYUFBYSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFFckMsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUNuQixTQUFTLEdBQUcsR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUM5RTtZQUVELE1BQU0sTUFBTSxHQUFrQjtnQkFDNUIsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDekIsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLFNBQVMsRUFBRSxTQUFTO2FBQ3JCLENBQUM7WUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSyxHQUFHLEVBQUU7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQVksRUFBRSxHQUFzQjtRQUNqRCxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTVCLFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRTtZQUNoQixLQUFLLE1BQU07Z0JBQ1QsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDckQsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDNUQsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFDLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1IsS0FBSyxZQUFZO2dCQUNmLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0MsTUFBTTtTQUNUO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzsyR0E1R1UsY0FBYzsrRkFBZCxjQUFjLHFXQU1SLGlCQUFpQiw2SEN6QnBDLHc2SEEyRkE7MkZEeEVhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsVUFBVTsyTUFVZ0IsU0FBUztzQkFBNUMsZUFBZTt1QkFBQyxpQkFBaUI7Z0JBRUssS0FBSztzQkFBM0MsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVoQixTQUFTO3NCQUE3QixLQUFLO3VCQUFDLFFBQVE7Z0JBZU4sVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlLCBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcblxyXG5cclxuaW1wb3J0IHsgb3V0cHV0QXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xyXG5pbXBvcnQgeyBUYWJsZUNvbmZpZyB9IGZyb20gJy4uL2FwaS9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbmZpZyc7XHJcbmltcG9ydCB7IFRhYmxlQ29uZmlnQ29sdW1uIH0gZnJvbSAnLi4vYXBpL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29uZmlnLmNvbHVtbic7XHJcbmltcG9ydCB7IFRhYmxlUGFnaW5hdGUgfSBmcm9tICcuLi9hcGkvY29tcG9uZW50cy90YWJsZS90YWJsZS5wYWdpbmF0ZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2RpZ29GaXBlUGlwZSB9IGZyb20gJy4uL3BpcGVzL2NvZGlnb2ZpbGUucGlwZSc7XHJcbmltcG9ydCB7IENwZkNucGpQaXBlIH0gZnJvbSAnLi4vcGlwZXMvY3BmY25wai5waXBlJztcclxuaW1wb3J0IHsgVGVsZWZvbmVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvdGVsZWZvbmUucGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25maWchOiBUYWJsZUNvbmZpZztcclxuICBwZXNxdWlzYVZhbHVlITogc3RyaW5nO1xyXG4gIGdsb2JhbEZpbHRlckZpZWxkczogc3RyaW5nW10gPSBbXTtcclxuICBhY3Rpb25zVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKFRlbXBsYXRlRGlyZWN0aXZlKSB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8YW55PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgndGFibGUnLCB7IHN0YXRpYzogZmFsc2UgfSkgdGFibGUhOiBUYWJsZTtcclxuXHJcbiAgQElucHV0KCdjb25maWcnKSBzZXQgc2V0Q29uZmlnKHZhbHVlOiBUYWJsZUNvbmZpZykge1xyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIGVuYWJsZUNhdGlvbjogdmFsdWUuZW5hYmxlQ2F0aW9uIHx8IHRydWUsXHJcbiAgICAgIGVuYWJsZVNlbGVjdDogdmFsdWUuZW5hYmxlU2VsZWN0IHx8IGZhbHNlLFxyXG4gICAgICBlbmFibGVGaWx0ZXI6IHZhbHVlLmVuYWJsZUZpbHRlciB8fCB0cnVlLFxyXG4gICAgICAuLi52YWx1ZSxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmVuYWJsZUZpbHRlcikge1xyXG4gICAgICB0aGlzLmNvbmZpZy5jb2x1bW5zLmZvckVhY2goY29sID0+IHtcclxuICAgICAgICB0aGlzLmdsb2JhbEZpbHRlckZpZWxkcy5wdXNoKGNvbC5maWVsZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZGF0YVNvdXJjZTogYW55O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbXM6IGFueTtcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHMhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgbGF6eTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgcGFnaW5hdG9yOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQWN0aXZlSXRlbTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUGFnaW5hdGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvZGlnb0ZpcGVQaXBlOiBDb2RpZ29GaXBlUGlwZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3BmQ25walBpcGU6IENwZkNucGpQaXBlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZWxlZm9uZVBpcGU6IFRlbGVmb25lUGlwZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFjdGl2ZUl0ZW0ocm93RGF0YTogYW55KSB7XHJcbiAgICB0aGlzLm9uQWN0aXZlSXRlbS5lbWl0KHJvd0RhdGEpO1xyXG4gIH1cclxuXHJcbiAgaXNCb29sZWFuRmllbGQocm93RGF0YTogYW55LCBjb2w6IFRhYmxlQ29uZmlnQ29sdW1uKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHJvd0RhdGFbY29sLmZpZWxkXSA9PSAnYm9vbGVhbic7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25HbG9iYWxGaWx0ZXIodGFibGU6IFRhYmxlLCBldmVudDogRXZlbnQpIHtcclxuICAgIHRhYmxlLmZpbHRlckdsb2JhbCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlLCAnY29udGFpbnMnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYWdpbmF0ZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgbGV0IHBhZ2luYUluaWNpYWwgPSAoKGV2ZW50Py5maXJzdCA+IDApID8gKGV2ZW50LmZpcnN0IC8gZXZlbnQucm93cykgOiBldmVudC5maXJzdCkgKyAxO1xyXG4gICAgICBsZXQgdGVybW9QZXNxdWlzYSA9ICcnO1xyXG4gICAgICBsZXQgb3JkZW5hY2FvID0gJyc7XHJcblxyXG4gICAgICBpZiAoZXZlbnQuZ2xvYmFsRmlsdGVyKVxyXG4gICAgICAgIHRlcm1vUGVzcXVpc2EgPSBldmVudC5nbG9iYWxGaWx0ZXI7XHJcblxyXG4gICAgICBpZiAoZXZlbnQuc29ydEZpZWxkKSB7XHJcbiAgICAgICAgb3JkZW5hY2FvID0gYCR7ZXZlbnQuc29ydEZpZWxkfSAkeyhldmVudC5zb3J0T3JkZXIgPT09IDEpID8gJ0FTQycgOiAnREVTQyd9YDtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgb2JqZXRvOiBUYWJsZVBhZ2luYXRlID0ge1xyXG4gICAgICAgIHBhZ2luYUluaWNpYWw6IHBhZ2luYUluaWNpYWwsXHJcbiAgICAgICAgdGFtYW5ob1BhZ2luYTogZXZlbnQucm93cyxcclxuICAgICAgICB0ZXJtb1Blc3F1aXNhOiB0ZXJtb1Blc3F1aXNhLFxyXG4gICAgICAgIG9yZGVuYWNhbzogb3JkZW5hY2FvXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLm9uUGFnaW5hdGUuZW1pdChvYmpldG8pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0aW9uQ2hhbmdlKHZhbHVlID0gW10pIHtcclxuICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1WYWx1ZShyb3dEYXRhOiBhbnksIGNvbDogVGFibGVDb25maWdDb2x1bW4pIHtcclxuICAgIGxldCB2YWx1ZSA9IHJvd0RhdGFbY29sLmZpZWxkXTtcclxuXHJcbiAgICBpZiAoIWNvbC5waXBlKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgc3dpdGNoIChjb2wucGlwZSkge1xyXG4gICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnZGQvTU0veXl5eScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdkZWNpbWFsJzpcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbHVlLCAnMS4yLTInLCAncHQtQlInKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY3BmY25waic6XHJcbiAgICAgICAgdmFsdWUgPSB0aGlzLmNwZkNucGpQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RlbGVmb25lJzpcclxuICAgICAgICB2YWx1ZSA9IHRoaXMudGVsZWZvbmVQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NvZGlnb2ZpcGUnOlxyXG4gICAgICAgIHZhbHVlID0gdGhpcy5jb2RpZ29GaXBlUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcbn1cclxuIiwiPHAtdGFibGUgKm5nSWY9XCJjb25maWdcIiAjZHQgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXN0cmlwZWRcIiBbdmFsdWVdPVwiZGF0YVNvdXJjZVwiIFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZEl0ZW1zXCJcbiAgW2NvbHVtbnNdPVwiY29uZmlnLmNvbHVtbnNcIiBbZ2xvYmFsRmlsdGVyRmllbGRzXT1cImdsb2JhbEZpbHRlckZpZWxkc1wiIFtyb3dzXT1cIjVcIiBbcGFnaW5hdG9yXT1cInBhZ2luYXRvclwiXG4gIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzUsMTAsMjUsNTAsMTAwLDIwMF1cIiBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxuICBjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwie2ZpcnN0fSAtIHtsYXN0fSBkZSB7dG90YWxSZWNvcmRzfVwiIFtyb3dIb3Zlcl09XCJ0cnVlXCIgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxuICBbbGF6eV09XCJjb25maWcubGF6eVwiIChvbkxhenlMb2FkKT1cInBhZ2luYXRlKCRldmVudClcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgcm93R3JvdXBNb2RlPVwicm93c3BhblwiIFtncm91cFJvd3NCeV09XCJjb25maWcuZmllbGRHcm91cFwiIFtzaG93Rmlyc3RMYXN0SWNvbl09XCJmYWxzZVwiPlxuXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCIgKm5nSWY9XCJjb25maWcuZW5hYmxlQ2F0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgbWQ6anVzdGlmeS1jb250ZW50LWJldHdlZW5cbiAgICAgIG1kOmFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGg1IGNsYXNzPVwibS0wXCI+e3sgY29uZmlnLnRpdGxlIH19PC9oNT5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY29uZmlnLmVuYWJsZUZpbHRlclwiIGNsYXNzPVwiYmxvY2sgbXQtMiBtZDptdC0wXG4gICAgICAgIHAtaW5wdXQtaWNvbi1sZWZ0XCI+XG4gICAgICAgIDxpIGNsYXNzPVwicGkgcGktc2VhcmNoXCI+PC9pPlxuICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBwQXV0b0ZvY3VzIFthdXRvZm9jdXNdPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgKGlucHV0KT1cIm9uR2xvYmFsRmlsdGVyKGR0LCAkZXZlbnQpXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBlc3F1aXNhci4uLlwiIGNsYXNzPVwidy1mdWxsIHNtOnctYXV0b1wiIC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxuICAgIDx0cj5cbiAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA0cmVtXCIgKm5nSWY9XCJjb25maWcuZW5hYmxlU2VsZWN0XCI+XG4gICAgICAgIDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XG4gICAgICA8L3RoPlxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLmZpZWxkXCIgW3BTb3J0YWJsZUNvbHVtbkRpc2FibGVkXT1cImNvbC5zb3J0YWJsZSA9PT0gZmFsc2VcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sLndpZHRoXCIgY2xhc3M9XCJ0ZXh0LXNtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgICAge3tjb2wuaGVhZGVyfX1cbiAgICAgICAgICA8cC1zb3J0SWNvbiAqbmdJZj1cImNvbC5zb3J0YWJsZSA9PT0gdHJ1ZVwiIFtmaWVsZF09XCJjb2wuZmllbGRcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTBweDtcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8L3RoPlxuICAgICAgPHRoICpuZ0lmPVwiY29uZmlnLmFjdGlvbnMgJiYgY29uZmlnLmFjdGlvbnMubGVuZ3RoPiAwXCI+PC90aD5cbiAgICA8L3RyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LXJvd2dyb3VwPVwicm93Z3JvdXBcIiBsZXQtcm93c3Bhbj1cInJvd3NwYW5cIj5cbiAgICA8dHI+XG4gICAgICA8dGQgKm5nSWY9XCJjb25maWcuZW5hYmxlU2VsZWN0XCI+XG4gICAgICAgIDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cInJvd0RhdGFcIj48L3AtdGFibGVDaGVja2JveD5cbiAgICAgIDwvdGQ+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XG5cbiAgICAgICAgPHRkICpuZ0lmPVwicm93Z3JvdXBcIiBbYXR0ci5yb3dzcGFuXT1cInJvd2dyb3VwICYmIGNvbC5ncm91cGVkPyByb3dzcGFuOiBudWxsXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7Y29sLmhlYWRlcn19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlzQm9vbGVhbkZpZWxkKHJvd0RhdGEsIGNvbCk7IGVsc2UgYm9vbGVhbkZpZWxkXCI+XG4gICAgICAgICAgICB7eyB0cmFuc2Zvcm1WYWx1ZShyb3dEYXRhLCBjb2wpIH19XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNib29sZWFuRmllbGQ+XG4gICAgICAgICAgICA8aSBbbmdDbGFzc109XCJyb3dEYXRhW2NvbC5maWVsZF0gPyAncGkgcGktY2hlY2snIDogJ3BpIHBpLXRpbWVzJ1wiPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RkPlxuXG4gICAgICAgIDx0ZCAqbmdJZj1cIiFyb3dncm91cCAmJiAhY29sLmdyb3VwZWRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tjb2wuaGVhZGVyfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXNCb29sZWFuRmllbGQocm93RGF0YSwgY29sKTsgZWxzZSBib29sZWFuRmllbGRcIj5cbiAgICAgICAgICAgIHt7IHRyYW5zZm9ybVZhbHVlKHJvd0RhdGEsIGNvbCkgfX1cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2Jvb2xlYW5GaWVsZD5cbiAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cInJvd0RhdGFbY29sLmZpZWxkXSA/ICdwaSBwaS1jaGVjaycgOiAncGkgcGktdGltZXMnXCI+PC9pPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGQ+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIDx0ZCAqbmdJZj1cImNvbmZpZy5hY3Rpb25zICYmIGNvbmZpZy5hY3Rpb25zLmxlbmd0aD4gMFwiPlxuICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWVsbGlwc2lzLWhcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgKGNsaWNrKT1cImFjdGl2ZUl0ZW0ocm93RGF0YSk7bWVudS50b2dnbGUoJGV2ZW50KVwiPjwvaT5cbiAgICAgIDwvdGQ+IC0tPlxuXG4gICAgICA8dGQgKm5nSWY9XCJjb25maWcuYWN0aW9ucyAmJiBjb25maWcuYWN0aW9ucy5sZW5ndGg+IDBcIiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGNvbmZpZy5hY3Rpb25zXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSB7e2FjdGlvbi5pY29ufX1cIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIGNsYXNzPVwibXItMiBtbC0yXCIgKGNsaWNrKT1cImFjdGlvbj8uY29tbWFuZCgpXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG5cbiAgICA8L3RyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCIgbGV0LWNvbHVtbnM+XG4gICAgPHRyPlxuICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5sZW5ndGhcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cbiAgICAgICAgTmVuaHVtIHJlZ2lzdHJvIGVuY29udHJhZG9cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC10YWJsZT5cbjxwLW1lbnUgI21lbnUgW3BvcHVwXT1cInRydWVcIiBbbW9kZWxdPVwiY29uZmlnLmFjdGlvbnNcIj48L3AtbWVudT5cbiJdfQ==
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTBCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVFqSixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFVckUsTUFBTSxPQUFPLGNBQWM7SUFZekIsY0FBYztRQUNaLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUlELElBQXFCLFNBQVMsQ0FBQyxLQUFrQjtRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSTtZQUN4QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLO1lBQ3pDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUk7WUFDeEMsR0FBRyxLQUFLO1NBQ1QsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxDQUFDLENB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QUFTO3NCQUE3QixLQUFLO3VCQUFDLFFBQVE7Z0JBZU4sVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlLCBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuXHJcblxyXG5pbXBvcnQgeyBvdXRwdXRBc3QgfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XHJcbmltcG9ydCB7IFRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vYXBpL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29uZmlnJztcclxuaW1wb3J0IHsgVGFibGVDb25maWdDb2x1bW4gfSBmcm9tICcuLi9hcGkvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb25maWcuY29sdW1uJztcclxuaW1wb3J0IHsgVGFibGVQYWdpbmF0ZSB9IGZyb20gJy4uL2FwaS9jb21wb25lbnRzL3RhYmxlL3RhYmxlLnBhZ2luYXRlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvZGlnb0ZpcGVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvY29kaWdvZmlsZS5waXBlJztcclxuaW1wb3J0IHsgQ3BmQ25walBpcGUgfSBmcm9tICcuLi9waXBlcy9jcGZjbnBqLnBpcGUnO1xyXG5pbXBvcnQgeyBUZWxlZm9uZVBpcGUgfSBmcm9tICcuLi9waXBlcy90ZWxlZm9uZS5waXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbmZpZyE6IFRhYmxlQ29uZmlnO1xyXG4gIHBlc3F1aXNhVmFsdWUhOiBzdHJpbmc7XHJcbiAgZ2xvYmFsRmlsdGVyRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGFjdGlvbnNUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIHNlbGVjdGVkU2l6ZTogc3RyaW5nID0gJyc7XHJcbiAgc2NyZWVuU2l6ZSE6IG51bWJlcjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzITogUXVlcnlMaXN0PGFueT47XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uV2luZG93UmVzaXplKCkge1xyXG4gICAgdGhpcy5zY3JlZW5TaXplID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICB0aGlzLmFkanVzdFRhYmxlU2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgndGFibGUnLCB7IHN0YXRpYzogZmFsc2UgfSkgdGFibGUhOiBUYWJsZTtcclxuXHJcbiAgQElucHV0KCdjb25maWcnKSBzZXQgc2V0Q29uZmlnKHZhbHVlOiBUYWJsZUNvbmZpZykge1xyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIGVuYWJsZUNhdGlvbjogdmFsdWUuZW5hYmxlQ2F0aW9uIHx8IHRydWUsXHJcbiAgICAgIGVuYWJsZVNlbGVjdDogdmFsdWUuZW5hYmxlU2VsZWN0IHx8IGZhbHNlLFxyXG4gICAgICBlbmFibGVGaWx0ZXI6IHZhbHVlLmVuYWJsZUZpbHRlciB8fCB0cnVlLFxyXG4gICAgICAuLi52YWx1ZSxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmVuYWJsZUZpbHRlcikge1xyXG4gICAgICB0aGlzLmNvbmZpZy5jb2x1bW5zLmZvckVhY2goY29sID0+IHtcclxuICAgICAgICB0aGlzLmdsb2JhbEZpbHRlckZpZWxkcy5wdXNoKGNvbC5maWVsZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZGF0YVNvdXJjZTogYW55O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbXM6IGFueTtcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHMhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgbGF6eTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgcGFnaW5hdG9yOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQWN0aXZlSXRlbTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUGFnaW5hdGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvZGlnb0ZpcGVQaXBlOiBDb2RpZ29GaXBlUGlwZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3BmQ25walBpcGU6IENwZkNucGpQaXBlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZWxlZm9uZVBpcGU6IFRlbGVmb25lUGlwZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zY3JlZW5TaXplID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICB0aGlzLmFkanVzdFRhYmxlU2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFjdGl2ZUl0ZW0ocm93RGF0YTogYW55KSB7XHJcbiAgICB0aGlzLm9uQWN0aXZlSXRlbS5lbWl0KHJvd0RhdGEpO1xyXG4gIH1cclxuXHJcbiAgaXNCb29sZWFuRmllbGQocm93RGF0YTogYW55LCBjb2w6IFRhYmxlQ29uZmlnQ29sdW1uKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHJvd0RhdGFbY29sLmZpZWxkXSA9PSAnYm9vbGVhbic7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25HbG9iYWxGaWx0ZXIodGFibGU6IFRhYmxlLCBldmVudDogRXZlbnQpIHtcclxuICAgIHRhYmxlLmZpbHRlckdsb2JhbCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlLCAnY29udGFpbnMnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYWdpbmF0ZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgbGV0IHBhZ2luYUluaWNpYWwgPSAoKGV2ZW50Py5maXJzdCA+IDApID8gKGV2ZW50LmZpcnN0IC8gZXZlbnQucm93cykgOiBldmVudC5maXJzdCkgKyAxO1xyXG4gICAgICBsZXQgdGVybW9QZXNxdWlzYSA9ICcnO1xyXG4gICAgICBsZXQgb3JkZW5hY2FvID0gJyc7XHJcblxyXG4gICAgICBpZiAoZXZlbnQuZ2xvYmFsRmlsdGVyKVxyXG4gICAgICAgIHRlcm1vUGVzcXVpc2EgPSBldmVudC5nbG9iYWxGaWx0ZXI7XHJcblxyXG4gICAgICBpZiAoZXZlbnQuc29ydEZpZWxkKSB7XHJcbiAgICAgICAgb3JkZW5hY2FvID0gYCR7ZXZlbnQuc29ydEZpZWxkfSAkeyhldmVudC5zb3J0T3JkZXIgPT09IDEpID8gJ0FTQycgOiAnREVTQyd9YDtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgb2JqZXRvOiBUYWJsZVBhZ2luYXRlID0ge1xyXG4gICAgICAgIHBhZ2luYUluaWNpYWw6IHBhZ2luYUluaWNpYWwsXHJcbiAgICAgICAgdGFtYW5ob1BhZ2luYTogZXZlbnQucm93cyxcclxuICAgICAgICB0ZXJtb1Blc3F1aXNhOiB0ZXJtb1Blc3F1aXNhLFxyXG4gICAgICAgIG9yZGVuYWNhbzogb3JkZW5hY2FvXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLm9uUGFnaW5hdGUuZW1pdChvYmpldG8pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0aW9uQ2hhbmdlKHZhbHVlID0gW10pIHtcclxuICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1WYWx1ZShyb3dEYXRhOiBhbnksIGNvbDogVGFibGVDb25maWdDb2x1bW4pIHtcclxuICAgIGxldCB2YWx1ZSA9IHJvd0RhdGFbY29sLmZpZWxkXTtcclxuXHJcbiAgICBpZiAoIWNvbC5waXBlKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgc3dpdGNoIChjb2wucGlwZSkge1xyXG4gICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnZGQvTU0veXl5eScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdkZWNpbWFsJzpcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbHVlLCAnMS4yLTInLCAncHQtQlInKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY3BmY25waic6XHJcbiAgICAgICAgdmFsdWUgPSB0aGlzLmNwZkNucGpQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RlbGVmb25lJzpcclxuICAgICAgICB2YWx1ZSA9IHRoaXMudGVsZWZvbmVQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NvZGlnb2ZpcGUnOlxyXG4gICAgICAgIHZhbHVlID0gdGhpcy5jb2RpZ29GaXBlUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGFkanVzdFRhYmxlU2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLnNjcmVlblNpemUgPiA3NjIpXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRTaXplID0gJyc7XHJcbiAgICBlbHNlIHRoaXMuc2VsZWN0ZWRTaXplID0gJ3AtZGF0YXRhYmxlLXNtJztcclxuICB9XHJcbn1cclxuIiwiPHAtdGFibGUgKm5nSWY9XCJjb25maWdcIiAjZHQgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXN0cmlwZWQge3tzZWxlY3RlZFNpemV9fVwiIFt2YWx1ZV09XCJkYXRhU291cmNlXCIgWyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkSXRlbXNcIlxuICBbY29sdW1uc109XCJjb25maWcuY29sdW1uc1wiIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCIgW3Jvd3NdPVwiNVwiIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yXCJcbiAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbNSwxMCwyNSw1MCwxMDAsMjAwXVwiIFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXG4gIGN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGU9XCJ7Zmlyc3R9IC0ge2xhc3R9IGRlIHt0b3RhbFJlY29yZHN9XCIgW3Jvd0hvdmVyXT1cInRydWVcIiBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXG4gIFtsYXp5XT1cImNvbmZpZy5sYXp5XCIgKG9uTGF6eUxvYWQpPVwicGFnaW5hdGUoJGV2ZW50KVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICByb3dHcm91cE1vZGU9XCJyb3dzcGFuXCIgW2dyb3VwUm93c0J5XT1cImNvbmZpZy5maWVsZEdyb3VwXCIgW3Nob3dGaXJzdExhc3RJY29uXT1cImZhbHNlXCIgIFt0YWJsZVN0eWxlXT1cInsgJ21pbi13aWR0aCc6ICczNXJlbScgfVwiPlxuXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCIgKm5nSWY9XCJjb25maWcuZW5hYmxlQ2F0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgbWQ6anVzdGlmeS1jb250ZW50LWJldHdlZW5cbiAgICAgIG1kOmFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGg1IGNsYXNzPVwibS0wXCI+e3sgY29uZmlnLnRpdGxlIH19PC9oNT5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY29uZmlnLmVuYWJsZUZpbHRlclwiIGNsYXNzPVwiYmxvY2sgbXQtMiBtZDptdC0wXG4gICAgICAgIHAtaW5wdXQtaWNvbi1sZWZ0XCI+XG4gICAgICAgIDxpIGNsYXNzPVwicGkgcGktc2VhcmNoXCI+PC9pPlxuICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBwQXV0b0ZvY3VzIFthdXRvZm9jdXNdPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgKGlucHV0KT1cIm9uR2xvYmFsRmlsdGVyKGR0LCAkZXZlbnQpXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBlc3F1aXNhci4uLlwiIGNsYXNzPVwidy1mdWxsIHNtOnctYXV0b1wiIC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxuICAgIDx0cj5cbiAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA0cmVtXCIgKm5nSWY9XCJjb25maWcuZW5hYmxlU2VsZWN0XCI+XG4gICAgICAgIDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XG4gICAgICA8L3RoPlxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1ucztcIiBbcFNvcnRhYmxlQ29sdW1uXT1cImNvbC5maWVsZFwiIFtwU29ydGFibGVDb2x1bW5EaXNhYmxlZF09XCJjb2wuc29ydGFibGUgPT09IGZhbHNlXCJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbC53aWR0aFwiIGNsYXNzPVwidGV4dC1zbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgIHt7Y29sLmhlYWRlcn19XG4gICAgICAgICAgPHAtc29ydEljb24gKm5nSWY9XCJjb2wuc29ydGFibGUgPT09IHRydWVcIiBbZmllbGRdPVwiY29sLmZpZWxkXCIgc3R5bGU9XCJmb250LXNpemU6IDEwcHg7XCI+PC9wLXNvcnRJY29uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdJZj1cImNvbmZpZy5hY3Rpb25zICYmIGNvbmZpZy5hY3Rpb25zLmxlbmd0aD4gMFwiPjwvdGg+XG4gICAgPC90cj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1yb3dncm91cD1cInJvd2dyb3VwXCIgbGV0LXJvd3NwYW49XCJyb3dzcGFuXCI+XG4gICAgPHRyPlxuICAgICAgPHRkICpuZ0lmPVwiY29uZmlnLmVuYWJsZVNlbGVjdFwiPlxuICAgICAgICA8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJyb3dEYXRhXCI+PC9wLXRhYmxlQ2hlY2tib3g+XG4gICAgICA8L3RkPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxuXG4gICAgICAgIDx0ZCAqbmdJZj1cInJvd2dyb3VwXCIgW2F0dHIucm93c3Bhbl09XCJyb3dncm91cCAmJiBjb2wuZ3JvdXBlZD8gcm93c3BhbjogbnVsbFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e2NvbC5oZWFkZXJ9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpc0Jvb2xlYW5GaWVsZChyb3dEYXRhLCBjb2wpOyBlbHNlIGJvb2xlYW5GaWVsZFwiIGNsYXNzPVwidGV4dC14cyBtZDp0ZXh0LXNtIGxnOnRleHQtYmFzZVwiPlxuICAgICAgICAgICAge3sgdHJhbnNmb3JtVmFsdWUocm93RGF0YSwgY29sKSB9fVxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9vbGVhbkZpZWxkPlxuICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwicm93RGF0YVtjb2wuZmllbGRdID8gJ3BpIHBpLWNoZWNrJyA6ICdwaSBwaS10aW1lcydcIj48L2k+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cblxuICAgICAgICA8dGQgKm5nSWY9XCIhcm93Z3JvdXAgJiYgIWNvbC5ncm91cGVkXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7Y29sLmhlYWRlcn19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlzQm9vbGVhbkZpZWxkKHJvd0RhdGEsIGNvbCk7IGVsc2UgYm9vbGVhbkZpZWxkXCIgY2xhc3M9XCJ0ZXh0LXhzIG1kOnRleHQtc20gbGc6dGV4dC1iYXNlXCI+XG4gICAgICAgICAgICB7eyB0cmFuc2Zvcm1WYWx1ZShyb3dEYXRhLCBjb2wpIH19XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNib29sZWFuRmllbGQ+XG4gICAgICAgICAgICA8aSBbbmdDbGFzc109XCJyb3dEYXRhW2NvbC5maWVsZF0gPyAncGkgcGktY2hlY2snIDogJ3BpIHBpLXRpbWVzJ1wiPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RkPlxuXG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSA8dGQgKm5nSWY9XCJjb25maWcuYWN0aW9ucyAmJiBjb25maWcuYWN0aW9ucy5sZW5ndGg+IDBcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1lbGxpcHNpcy1oXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIlxuICAgICAgICAgIChjbGljayk9XCJhY3RpdmVJdGVtKHJvd0RhdGEpO21lbnUudG9nZ2xlKCRldmVudClcIj48L2k+XG4gICAgICA8L3RkPiAtLT5cblxuICAgICAgPHRkICpuZ0lmPVwiY29uZmlnLmFjdGlvbnMgJiYgY29uZmlnLmFjdGlvbnMubGVuZ3RoPiAwXCIgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb25maWcuYWN0aW9uc1wiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkge3thY3Rpb24uaWNvbn19XCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiBjbGFzcz1cIm1yLTIgbWwtMlwiIChjbGljayk9XCJhY3Rpb24/LmNvbW1hbmQoKVwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RkPlxuXG4gICAgPC90cj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiIGxldC1jb2x1bW5zPlxuICAgIDx0cj5cbiAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMubGVuZ3RoXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XG4gICAgICAgIE5lbmh1bSByZWdpc3RybyBlbmNvbnRyYWRvXG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvbmctdGVtcGxhdGU+XG48L3AtdGFibGU+XG48cC1tZW51ICNtZW51IFtwb3B1cF09XCJ0cnVlXCIgW21vZGVsXT1cImNvbmZpZy5hY3Rpb25zXCI+PC9wLW1lbnU+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, EventEmitter, Injectable, Output, ViewChildren, ContentChildren, forwardRef, ViewChild, Directive, Pipe, NgModule } from '@angular/core';
2
+ import { Component, Input, EventEmitter, Injectable, Output, ViewChildren, ContentChildren, forwardRef, ViewChild, Directive, Pipe, HostListener, NgModule } from '@angular/core';
3
3
  import { Subject, of } from 'rxjs';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule } from '@angular/common';
@@ -831,6 +831,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
831
831
  }] });
832
832
 
833
833
  class TableComponent {
834
+ onWindowResize() {
835
+ this.screenSize = window.innerWidth;
836
+ this.adjustTableSize();
837
+ }
834
838
  set setConfig(value) {
835
839
  this.config = Object.assign({ enableCation: value.enableCation || true, enableSelect: value.enableSelect || false, enableFilter: value.enableFilter || true }, value);
836
840
  if (this.config.enableFilter) {
@@ -846,6 +850,7 @@ class TableComponent {
846
850
  this.cpfCnpjPipe = cpfCnpjPipe;
847
851
  this.telefonePipe = telefonePipe;
848
852
  this.globalFilterFields = [];
853
+ this.selectedSize = '';
849
854
  this.lazy = true;
850
855
  this.paginator = true;
851
856
  this.onActiveItem = new EventEmitter();
@@ -853,6 +858,8 @@ class TableComponent {
853
858
  this.onSelectionChange = new EventEmitter();
854
859
  }
855
860
  ngOnInit() {
861
+ this.screenSize = window.innerWidth;
862
+ this.adjustTableSize();
856
863
  }
857
864
  activeItem(rowData) {
858
865
  this.onActiveItem.emit(rowData);
@@ -908,15 +915,24 @@ class TableComponent {
908
915
  }
909
916
  return value;
910
917
  }
918
+ adjustTableSize() {
919
+ if (this.screenSize > 762)
920
+ this.selectedSize = '';
921
+ else
922
+ this.selectedSize = 'p-datatable-sm';
923
+ }
911
924
  }
912
925
  TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableComponent, deps: [{ token: i1.DatePipe }, { token: i1.DecimalPipe }, { token: CodigoFipePipe }, { token: CpfCnpjPipe }, { token: TelefonePipe }], target: i0.ɵɵFactoryTarget.Component });
913
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: TableComponent, selector: "kv-table", inputs: { setConfig: ["config", "setConfig"], dataSource: "dataSource", selectedItems: "selectedItems", totalRecords: "totalRecords", lazy: "lazy", paginator: "paginator" }, outputs: { onActiveItem: "onActiveItem", onPaginate: "onPaginate", onSelectionChange: "onSelectionChange" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<p-table *ngIf=\"config\" #dt styleClass=\"p-datatable-striped\" [value]=\"dataSource\" [(selection)]=\"selectedItems\"\n [columns]=\"config.columns\" [globalFilterFields]=\"globalFilterFields\" [rows]=\"5\" [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"[5,10,25,50,100,200]\" [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} - {last} de {totalRecords}\" [rowHover]=\"true\" [totalRecords]=\"totalRecords\"\n [lazy]=\"config.lazy\" (onLazyLoad)=\"paginate($event)\" (selectionChange)=\"selectionChange($event)\"\n rowGroupMode=\"rowspan\" [groupRowsBy]=\"config.fieldGroup\" [showFirstLastIcon]=\"false\">\n\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between\n md:align-items-center\">\n <h5 class=\"m-0\">{{ config.title }}</h5>\n <span *ngIf=\"config.enableFilter\" class=\"block mt-2 md:mt-0\n p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText pAutoFocus [autofocus]=\"true\" type=\"text\" (input)=\"onGlobalFilter(dt, $event)\"\n placeholder=\"Pesquisar...\" class=\"w-full sm:w-auto\" />\n </span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 4rem\" *ngIf=\"config.enableSelect\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\" [pSortableColumnDisabled]=\"col.sortable === false\"\n [style.width]=\"col.width\" class=\"text-sm\">\n <div class=\"flex flex-row\">\n {{col.header}}\n <p-sortIcon *ngIf=\"col.sortable === true\" [field]=\"col.field\" style=\"font-size: 10px;\"></p-sortIcon>\n </div>\n\n </th>\n <th *ngIf=\"config.actions && config.actions.length> 0\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowgroup=\"rowgroup\" let-rowspan=\"rowspan\">\n <tr>\n <td *ngIf=\"config.enableSelect\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n\n <ng-container *ngFor=\"let col of columns\">\n\n <td *ngIf=\"rowgroup\" [attr.rowspan]=\"rowgroup && col.grouped? rowspan: null\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n <td *ngIf=\"!rowgroup && !col.grouped\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n </ng-container>\n\n <!-- <td *ngIf=\"config.actions && config.actions.length> 0\">\n <i class=\"pi pi-ellipsis-h\" style=\"cursor: pointer\"\n (click)=\"activeItem(rowData);menu.toggle($event)\"></i>\n </td> -->\n\n <td *ngIf=\"config.actions && config.actions.length> 0\" class=\"flex flex-row\">\n <div *ngFor=\"let action of config.actions\">\n <i class=\"pi {{action.icon}}\" style=\"cursor: pointer\" class=\"mr-2 ml-2\" (click)=\"action?.command()\"></i>\n </div>\n </td>\n\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\" style=\"text-align: center;\">\n Nenhum registro encontrado\n </td>\n </tr>\n </ng-template>\n</p-table>\n<p-menu #menu [popup]=\"true\" [model]=\"config.actions\"></p-menu>\n", styles: [""], 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: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6$1.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "directive", type: i4$5.InputText, selector: "[pInputText]" }, { kind: "component", type: i8$1.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i9$1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i9$1.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i9$1.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i9$1.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i9$1.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }] });
926
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: TableComponent, selector: "kv-table", inputs: { setConfig: ["config", "setConfig"], dataSource: "dataSource", selectedItems: "selectedItems", totalRecords: "totalRecords", lazy: "lazy", paginator: "paginator" }, outputs: { onActiveItem: "onActiveItem", onPaginate: "onPaginate", onSelectionChange: "onSelectionChange" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<p-table *ngIf=\"config\" #dt styleClass=\"p-datatable-striped {{selectedSize}}\" [value]=\"dataSource\" [(selection)]=\"selectedItems\"\n [columns]=\"config.columns\" [globalFilterFields]=\"globalFilterFields\" [rows]=\"5\" [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"[5,10,25,50,100,200]\" [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} - {last} de {totalRecords}\" [rowHover]=\"true\" [totalRecords]=\"totalRecords\"\n [lazy]=\"config.lazy\" (onLazyLoad)=\"paginate($event)\" (selectionChange)=\"selectionChange($event)\"\n rowGroupMode=\"rowspan\" [groupRowsBy]=\"config.fieldGroup\" [showFirstLastIcon]=\"false\" [tableStyle]=\"{ 'min-width': '35rem' }\">\n\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between\n md:align-items-center\">\n <h5 class=\"m-0\">{{ config.title }}</h5>\n <span *ngIf=\"config.enableFilter\" class=\"block mt-2 md:mt-0\n p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText pAutoFocus [autofocus]=\"true\" type=\"text\" (input)=\"onGlobalFilter(dt, $event)\"\n placeholder=\"Pesquisar...\" class=\"w-full sm:w-auto\" />\n </span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 4rem\" *ngIf=\"config.enableSelect\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns;\" [pSortableColumn]=\"col.field\" [pSortableColumnDisabled]=\"col.sortable === false\"\n [style.width]=\"col.width\" class=\"text-sm\">\n <div class=\"flex flex-row\">\n {{col.header}}\n <p-sortIcon *ngIf=\"col.sortable === true\" [field]=\"col.field\" style=\"font-size: 10px;\"></p-sortIcon>\n </div>\n\n </th>\n <th *ngIf=\"config.actions && config.actions.length> 0\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowgroup=\"rowgroup\" let-rowspan=\"rowspan\">\n <tr>\n <td *ngIf=\"config.enableSelect\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n\n <ng-container *ngFor=\"let col of columns\">\n\n <td *ngIf=\"rowgroup\" [attr.rowspan]=\"rowgroup && col.grouped? rowspan: null\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" class=\"text-xs md:text-sm lg:text-base\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n <td *ngIf=\"!rowgroup && !col.grouped\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" class=\"text-xs md:text-sm lg:text-base\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n </ng-container>\n\n <!-- <td *ngIf=\"config.actions && config.actions.length> 0\">\n <i class=\"pi pi-ellipsis-h\" style=\"cursor: pointer\"\n (click)=\"activeItem(rowData);menu.toggle($event)\"></i>\n </td> -->\n\n <td *ngIf=\"config.actions && config.actions.length> 0\" class=\"flex flex-row\">\n <div *ngFor=\"let action of config.actions\">\n <i class=\"pi {{action.icon}}\" style=\"cursor: pointer\" class=\"mr-2 ml-2\" (click)=\"action?.command()\"></i>\n </div>\n </td>\n\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\" style=\"text-align: center;\">\n Nenhum registro encontrado\n </td>\n </tr>\n </ng-template>\n</p-table>\n<p-menu #menu [popup]=\"true\" [model]=\"config.actions\"></p-menu>\n", styles: [""], 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: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6$1.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "directive", type: i4$5.InputText, selector: "[pInputText]" }, { kind: "component", type: i8$1.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i9$1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i9$1.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i9$1.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i9$1.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i9$1.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }] });
914
927
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableComponent, decorators: [{
915
928
  type: Component,
916
- args: [{ selector: 'kv-table', template: "<p-table *ngIf=\"config\" #dt styleClass=\"p-datatable-striped\" [value]=\"dataSource\" [(selection)]=\"selectedItems\"\n [columns]=\"config.columns\" [globalFilterFields]=\"globalFilterFields\" [rows]=\"5\" [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"[5,10,25,50,100,200]\" [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} - {last} de {totalRecords}\" [rowHover]=\"true\" [totalRecords]=\"totalRecords\"\n [lazy]=\"config.lazy\" (onLazyLoad)=\"paginate($event)\" (selectionChange)=\"selectionChange($event)\"\n rowGroupMode=\"rowspan\" [groupRowsBy]=\"config.fieldGroup\" [showFirstLastIcon]=\"false\">\n\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between\n md:align-items-center\">\n <h5 class=\"m-0\">{{ config.title }}</h5>\n <span *ngIf=\"config.enableFilter\" class=\"block mt-2 md:mt-0\n p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText pAutoFocus [autofocus]=\"true\" type=\"text\" (input)=\"onGlobalFilter(dt, $event)\"\n placeholder=\"Pesquisar...\" class=\"w-full sm:w-auto\" />\n </span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 4rem\" *ngIf=\"config.enableSelect\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\" [pSortableColumnDisabled]=\"col.sortable === false\"\n [style.width]=\"col.width\" class=\"text-sm\">\n <div class=\"flex flex-row\">\n {{col.header}}\n <p-sortIcon *ngIf=\"col.sortable === true\" [field]=\"col.field\" style=\"font-size: 10px;\"></p-sortIcon>\n </div>\n\n </th>\n <th *ngIf=\"config.actions && config.actions.length> 0\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowgroup=\"rowgroup\" let-rowspan=\"rowspan\">\n <tr>\n <td *ngIf=\"config.enableSelect\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n\n <ng-container *ngFor=\"let col of columns\">\n\n <td *ngIf=\"rowgroup\" [attr.rowspan]=\"rowgroup && col.grouped? rowspan: null\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n <td *ngIf=\"!rowgroup && !col.grouped\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n </ng-container>\n\n <!-- <td *ngIf=\"config.actions && config.actions.length> 0\">\n <i class=\"pi pi-ellipsis-h\" style=\"cursor: pointer\"\n (click)=\"activeItem(rowData);menu.toggle($event)\"></i>\n </td> -->\n\n <td *ngIf=\"config.actions && config.actions.length> 0\" class=\"flex flex-row\">\n <div *ngFor=\"let action of config.actions\">\n <i class=\"pi {{action.icon}}\" style=\"cursor: pointer\" class=\"mr-2 ml-2\" (click)=\"action?.command()\"></i>\n </div>\n </td>\n\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\" style=\"text-align: center;\">\n Nenhum registro encontrado\n </td>\n </tr>\n </ng-template>\n</p-table>\n<p-menu #menu [popup]=\"true\" [model]=\"config.actions\"></p-menu>\n" }]
929
+ args: [{ selector: 'kv-table', template: "<p-table *ngIf=\"config\" #dt styleClass=\"p-datatable-striped {{selectedSize}}\" [value]=\"dataSource\" [(selection)]=\"selectedItems\"\n [columns]=\"config.columns\" [globalFilterFields]=\"globalFilterFields\" [rows]=\"5\" [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"[5,10,25,50,100,200]\" [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} - {last} de {totalRecords}\" [rowHover]=\"true\" [totalRecords]=\"totalRecords\"\n [lazy]=\"config.lazy\" (onLazyLoad)=\"paginate($event)\" (selectionChange)=\"selectionChange($event)\"\n rowGroupMode=\"rowspan\" [groupRowsBy]=\"config.fieldGroup\" [showFirstLastIcon]=\"false\" [tableStyle]=\"{ 'min-width': '35rem' }\">\n\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between\n md:align-items-center\">\n <h5 class=\"m-0\">{{ config.title }}</h5>\n <span *ngIf=\"config.enableFilter\" class=\"block mt-2 md:mt-0\n p-input-icon-left\">\n <i class=\"pi pi-search\"></i>\n <input pInputText pAutoFocus [autofocus]=\"true\" type=\"text\" (input)=\"onGlobalFilter(dt, $event)\"\n placeholder=\"Pesquisar...\" class=\"w-full sm:w-auto\" />\n </span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 4rem\" *ngIf=\"config.enableSelect\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns;\" [pSortableColumn]=\"col.field\" [pSortableColumnDisabled]=\"col.sortable === false\"\n [style.width]=\"col.width\" class=\"text-sm\">\n <div class=\"flex flex-row\">\n {{col.header}}\n <p-sortIcon *ngIf=\"col.sortable === true\" [field]=\"col.field\" style=\"font-size: 10px;\"></p-sortIcon>\n </div>\n\n </th>\n <th *ngIf=\"config.actions && config.actions.length> 0\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowgroup=\"rowgroup\" let-rowspan=\"rowspan\">\n <tr>\n <td *ngIf=\"config.enableSelect\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n\n <ng-container *ngFor=\"let col of columns\">\n\n <td *ngIf=\"rowgroup\" [attr.rowspan]=\"rowgroup && col.grouped? rowspan: null\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" class=\"text-xs md:text-sm lg:text-base\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n <td *ngIf=\"!rowgroup && !col.grouped\">\n <span class=\"p-column-title\">{{col.header}}</span>\n <span *ngIf=\"!isBooleanField(rowData, col); else booleanField\" class=\"text-xs md:text-sm lg:text-base\">\n {{ transformValue(rowData, col) }}\n </span>\n\n <ng-template #booleanField>\n <i [ngClass]=\"rowData[col.field] ? 'pi pi-check' : 'pi pi-times'\"></i>\n </ng-template>\n </td>\n\n </ng-container>\n\n <!-- <td *ngIf=\"config.actions && config.actions.length> 0\">\n <i class=\"pi pi-ellipsis-h\" style=\"cursor: pointer\"\n (click)=\"activeItem(rowData);menu.toggle($event)\"></i>\n </td> -->\n\n <td *ngIf=\"config.actions && config.actions.length> 0\" class=\"flex flex-row\">\n <div *ngFor=\"let action of config.actions\">\n <i class=\"pi {{action.icon}}\" style=\"cursor: pointer\" class=\"mr-2 ml-2\" (click)=\"action?.command()\"></i>\n </div>\n </td>\n\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\" style=\"text-align: center;\">\n Nenhum registro encontrado\n </td>\n </tr>\n </ng-template>\n</p-table>\n<p-menu #menu [popup]=\"true\" [model]=\"config.actions\"></p-menu>\n" }]
917
930
  }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.DecimalPipe }, { type: CodigoFipePipe }, { type: CpfCnpjPipe }, { type: TelefonePipe }]; }, propDecorators: { templates: [{
918
931
  type: ContentChildren,
919
932
  args: [TemplateDirective]
933
+ }], onWindowResize: [{
934
+ type: HostListener,
935
+ args: ['window:resize', ['$event']]
920
936
  }], table: [{
921
937
  type: ViewChild,
922
938
  args: ['table', { static: false }]