mapa-library-ui 0.0.42 → 0.0.43

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,19 +1,20 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Host, Self, Optional, EventEmitter, Component, ViewEncapsulation, Input, ViewChild, Output, NgModule } from '@angular/core';
2
+ import { Directive, Host, Self, Optional, EventEmitter, Component, ViewEncapsulation, Input, Output, ViewChild, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/material/paginator';
4
4
  import { MatPaginator, MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';
5
5
  import { SelectionModel } from '@angular/cdk/collections';
6
- import { MatSort } from '@angular/material/sort';
7
- import * as i6 from '@angular/material/table';
6
+ import * as i6 from '@angular/material/sort';
7
+ import { MatSort, MatSortModule } from '@angular/material/sort';
8
+ import * as i5 from '@angular/material/table';
8
9
  import { MatTableDataSource, MatTableModule } from '@angular/material/table';
9
- import * as i1$1 from '@angular/forms';
10
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
11
- import * as i2 from '@angular/common';
10
+ import moment from 'moment';
11
+ import * as i1$1 from '@angular/common';
12
12
  import { CommonModule } from '@angular/common';
13
- import * as i3 from '@angular/material/checkbox';
13
+ import * as i2 from '@angular/material/checkbox';
14
14
  import { MatCheckboxModule } from '@angular/material/checkbox';
15
- import * as i4 from '@angular/material/icon';
15
+ import * as i3 from '@angular/material/icon';
16
16
  import { MatIconModule } from '@angular/material/icon';
17
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
17
18
 
18
19
  class PaginatorLegacyDirective {
19
20
  constructor(matPag, ViewContainer, renderer) {
@@ -240,8 +241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
240
241
  }] }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }]; } });
241
242
 
242
243
  class MapaTableComponent {
243
- constructor(formBuilder) {
244
- this.formBuilder = formBuilder;
244
+ constructor() {
245
245
  this.columns = [];
246
246
  this.data = [];
247
247
  this.rowClick = new EventEmitter();
@@ -253,7 +253,7 @@ class MapaTableComponent {
253
253
  this.dataSource = new MatTableDataSource(this.data);
254
254
  this.dataSource.paginator = this.paginator;
255
255
  this.dataSource.sort = this.sort;
256
- this.displayedColumns = this.columns.map(column => column.key);
256
+ this.displayedColumns = this.columns.map((column) => column.key);
257
257
  }
258
258
  isAllSelected() {
259
259
  const numSelected = this.selection.selected.length;
@@ -267,37 +267,41 @@ class MapaTableComponent {
267
267
  }
268
268
  else {
269
269
  const dataAsPeriodicElements = this.dataSource.data;
270
- dataAsPeriodicElements.forEach(row => this.selection.select(row));
270
+ dataAsPeriodicElements.forEach((row) => this.selection.select(row));
271
271
  this.getSelectedValues();
272
272
  }
273
273
  }
274
274
  checkboxLabel(row) {
275
275
  if (!row) {
276
- return `${this.isAllSelected() ? 'deselect' : 'select'} all`;
276
+ return `${this.isAllSelected() ? "deselect" : "select"} all`;
277
277
  }
278
- return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;
278
+ return `${this.selection.isSelected(row) ? "deselect" : "select"} row ${row.position + 1}`;
279
279
  }
280
- sortData(sortKey) {
281
- const sort = { active: sortKey, direction: 'asc' };
282
- if (this.currentSort && this.currentSort.active === sortKey && this.currentSort.direction === 'asc') {
283
- sort.direction = 'desc';
280
+ sortData(column) {
281
+ if (column.sort) {
282
+ const sort = { active: column.key, direction: "asc" };
283
+ if (this.currentSort &&
284
+ this.currentSort.active === column.key &&
285
+ this.currentSort.direction === "asc") {
286
+ sort.direction = "desc";
287
+ }
288
+ this.currentSort = sort;
289
+ this.sortDataFunction(sort);
284
290
  }
285
- this.currentSort = sort;
286
- this.sortDataFunction(sort);
287
291
  }
288
292
  sortDataFunction(sort) {
289
293
  const data = this.dataSource.data.slice();
290
- if (!sort.active || sort.direction === '') {
294
+ if (!sort.active || sort.direction === "") {
291
295
  this.dataSource.data = data;
292
296
  return;
293
297
  }
294
298
  this.dataSource.data = data.sort((a, b) => {
295
- const isAsc = sort.direction === 'asc';
299
+ const isAsc = sort.direction === "asc";
296
300
  return this.compare(a[sort.active], b[sort.active], isAsc);
297
301
  });
298
302
  }
299
303
  compare(a, b, isAsc) {
300
- if (typeof a === 'string' && typeof b === 'string') {
304
+ if (typeof a === "string" && typeof b === "string") {
301
305
  return (a.toLowerCase() < b.toLowerCase() ? -1 : 1) * (isAsc ? 1 : -1);
302
306
  }
303
307
  return (a < b ? -1 : 1) * (isAsc ? 1 : -1);
@@ -316,19 +320,30 @@ class MapaTableComponent {
316
320
  this.getSelectedValues();
317
321
  }
318
322
  getSelectedValues() {
319
- const selectedRows = this.selection.selected.map(row => {
323
+ const selectedRows = this.selection.selected.map((row) => {
320
324
  return { row };
321
325
  });
322
326
  this.selectedRows.emit(selectedRows);
323
327
  console.log(selectedRows);
324
328
  }
329
+ isBoolean(column, row) {
330
+ return typeof row[column.key] === 'boolean';
331
+ }
332
+ isMaskedData(column, row) {
333
+ const formats = [moment.ISO_8601, "MM/DD/YYYY :) HH*mm*ss"];
334
+ const isDate = moment(row[column.key], formats, true).isValid();
335
+ return (column.mask && isDate) || false;
336
+ }
337
+ getValueAsDate(column, row) {
338
+ return new Date(row[column.key]);
339
+ }
325
340
  }
326
- MapaTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableComponent, deps: [{ token: i1$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
327
- MapaTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaTableComponent, selector: "mapa-table", inputs: { columns: "columns", data: "data", checkbox: "checkbox", actions: "actions" }, outputs: { rowClick: "rowClick", selectedRows: "selectedRows" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div class=\"mapa-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort>\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n (click)=\"sortData(column.key)\"\n >\n <div class=\"mapa-table__header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"column.key !== 'actions'\">\n <mat-icon>filter_list</mat-icon>\n </div>\n <div class=\"mapa-table__label\">\n {{ column.label }}\n </div>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"emitRowClick(row, '')\">\n <div class=\"header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <ng-container *ngIf=\"column.key === 'actions'\">\n <div class=\"actions\">\n <mat-icon (click)=\"emitRowClick(row, 'edit')\">edit</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'delete')\">delete</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'visibility')\"\n >visibility</mat-icon\n >\n </div>\n </ng-container>\n <div class=\"table__column\">\n {{ row[column.key] }}\n </div>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"dataSource ? dataSource.data.length : 0\"\n [pageSize]=\"5\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n >\n </mat-paginator>\n</div>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table tr.mat-row:hover{outline:1px solid rgba(238,238,238,.93);transform:translateY(-2px);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #EEE;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px 0 0;font-size:14px;height:14px;width:14px}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table__label{margin-top:4px}.mapa-table__header{padding-top:15px;padding-bottom:15px;align-items:center;display:flex}.mapa-table .actions{display:flex}.mapa-table .actions .mat-icon{color:#ea561d!important}.mapa-table .header{align-items:center;display:flex}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: PaginatorLegacyDirective, selector: "[appStylePaginatorMv]" }], encapsulation: i0.ViewEncapsulation.None });
341
+ MapaTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
342
+ MapaTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaTableComponent, selector: "mapa-table", inputs: { columns: "columns", data: "data", checkbox: "checkbox", actions: "actions" }, outputs: { rowClick: "rowClick", selectedRows: "selectedRows" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div class=\"mapa-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"sortDataFunction($event)\">\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n *ngIf=\"column.key !== 'actions'; else columnActions\"\n >\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <div class=\"table__column\">\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\">\n {{ getValueAsDate(column, row) | date: column.mask }}\n </ng-container>\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.statusLabel; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\">\n {{ column.statusLabel[row[column.key] ? 1 : 0] }}\n </ng-container>\n <ng-template #commonStatus>{{ column.statusLabel[row[column.key] - 1] }}</ng-template>\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n </div>\n </div>\n <ng-template #columnActions>\n <div class=\"mapa-table__column--actions\">\n <mat-icon (click)=\"emitRowClick(row, 'edit')\">edit</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'delete')\">delete</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'visibility')\">visibility</mat-icon>\n </div>\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"dataSource ? dataSource.data.length : 0\"\n [pageSize]=\"5\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n >\n </mat-paginator>\n</div>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"column.key !== 'actions' && column.sort\">\n <mat-icon>filter_list</mat-icon>\n </div>\n <div class=\"mapa-table__label\">\n {{ column.label }}\n </div>\n </div>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table tr.mat-row:hover{outline:1px solid rgba(238,238,238,.93);transform:translateY(-2px);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #EEE;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px 0 0;font-size:14px;height:14px;width:14px}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table__label{margin-top:4px}.mapa-table__column{padding-top:15px;padding-bottom:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: PaginatorLegacyDirective, selector: "[appStylePaginatorMv]" }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None });
328
343
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableComponent, decorators: [{
329
344
  type: Component,
330
- args: [{ selector: 'mapa-table', encapsulation: ViewEncapsulation.None, template: "<div class=\"mapa-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort>\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n (click)=\"sortData(column.key)\"\n >\n <div class=\"mapa-table__header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"column.key !== 'actions'\">\n <mat-icon>filter_list</mat-icon>\n </div>\n <div class=\"mapa-table__label\">\n {{ column.label }}\n </div>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"emitRowClick(row, '')\">\n <div class=\"header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <ng-container *ngIf=\"column.key === 'actions'\">\n <div class=\"actions\">\n <mat-icon (click)=\"emitRowClick(row, 'edit')\">edit</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'delete')\">delete</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'visibility')\"\n >visibility</mat-icon\n >\n </div>\n </ng-container>\n <div class=\"table__column\">\n {{ row[column.key] }}\n </div>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"dataSource ? dataSource.data.length : 0\"\n [pageSize]=\"5\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n >\n </mat-paginator>\n</div>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table tr.mat-row:hover{outline:1px solid rgba(238,238,238,.93);transform:translateY(-2px);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #EEE;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px 0 0;font-size:14px;height:14px;width:14px}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table__label{margin-top:4px}.mapa-table__header{padding-top:15px;padding-bottom:15px;align-items:center;display:flex}.mapa-table .actions{display:flex}.mapa-table .actions .mat-icon{color:#ea561d!important}.mapa-table .header{align-items:center;display:flex}\n"] }]
331
- }], ctorParameters: function () { return [{ type: i1$1.FormBuilder }]; }, propDecorators: { columns: [{
345
+ args: [{ selector: "mapa-table", encapsulation: ViewEncapsulation.None, template: "<div class=\"mapa-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"sortDataFunction($event)\">\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n *ngIf=\"column.key !== 'actions'; else columnActions\"\n >\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <div class=\"table__column\">\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\">\n {{ getValueAsDate(column, row) | date: column.mask }}\n </ng-container>\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.statusLabel; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\">\n {{ column.statusLabel[row[column.key] ? 1 : 0] }}\n </ng-container>\n <ng-template #commonStatus>{{ column.statusLabel[row[column.key] - 1] }}</ng-template>\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n </div>\n </div>\n <ng-template #columnActions>\n <div class=\"mapa-table__column--actions\">\n <mat-icon (click)=\"emitRowClick(row, 'edit')\">edit</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'delete')\">delete</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'visibility')\">visibility</mat-icon>\n </div>\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"dataSource ? dataSource.data.length : 0\"\n [pageSize]=\"5\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n >\n </mat-paginator>\n</div>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"column.key !== 'actions' && column.sort\">\n <mat-icon>filter_list</mat-icon>\n </div>\n <div class=\"mapa-table__label\">\n {{ column.label }}\n </div>\n </div>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:SF-Pro;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table tr.mat-row:hover{outline:1px solid rgba(238,238,238,.93);transform:translateY(-2px);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #EEE;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px 0 0;font-size:14px;height:14px;width:14px}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"SF-Pro\"}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:SF-Pro!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.mapa-table__label{margin-top:4px}.mapa-table__column{padding-top:15px;padding-bottom:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}\n"] }]
346
+ }], ctorParameters: function () { return []; }, propDecorators: { columns: [{
332
347
  type: Input
333
348
  }], data: [{
334
349
  type: Input
@@ -336,16 +351,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
336
351
  type: Input
337
352
  }], actions: [{
338
353
  type: Input
354
+ }], rowClick: [{
355
+ type: Output
356
+ }], selectedRows: [{
357
+ type: Output
339
358
  }], paginator: [{
340
359
  type: ViewChild,
341
360
  args: [MatPaginator]
342
361
  }], sort: [{
343
362
  type: ViewChild,
344
363
  args: [MatSort]
345
- }], rowClick: [{
346
- type: Output
347
- }], selectedRows: [{
348
- type: Output
349
364
  }] } });
350
365
 
351
366
  function CustomPaginator() {
@@ -376,40 +391,35 @@ MapaTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
376
391
  MatIconModule,
377
392
  MatPaginatorModule,
378
393
  MatTableModule,
394
+ MatSortModule,
379
395
  PaginatorLegacyDirective,
380
396
  FormsModule,
381
397
  ReactiveFormsModule], exports: [MapaTableComponent] });
382
- MapaTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableModule, providers: [
383
- { provide: MatPaginatorIntl, useValue: CustomPaginator() }
384
- ], imports: [CommonModule,
398
+ MapaTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableModule, providers: [{ provide: MatPaginatorIntl, useValue: CustomPaginator() }], imports: [CommonModule,
385
399
  MatCheckboxModule,
386
400
  MatIconModule,
387
401
  MatPaginatorModule,
388
402
  MatTableModule,
403
+ MatSortModule,
389
404
  FormsModule,
390
405
  ReactiveFormsModule] });
391
406
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableModule, decorators: [{
392
407
  type: NgModule,
393
408
  args: [{
394
- declarations: [
395
- MapaTableComponent
396
- ],
409
+ declarations: [MapaTableComponent],
397
410
  imports: [
398
411
  CommonModule,
399
412
  MatCheckboxModule,
400
413
  MatIconModule,
401
414
  MatPaginatorModule,
402
415
  MatTableModule,
416
+ MatSortModule,
403
417
  PaginatorLegacyDirective,
404
418
  FormsModule,
405
- ReactiveFormsModule
406
- ],
407
- exports: [
408
- MapaTableComponent
419
+ ReactiveFormsModule,
409
420
  ],
410
- providers: [
411
- { provide: MatPaginatorIntl, useValue: CustomPaginator() }
412
- ]
421
+ exports: [MapaTableComponent],
422
+ providers: [{ provide: MatPaginatorIntl, useValue: CustomPaginator() }],
413
423
  }]
414
424
  }] });
415
425
 
@@ -1 +1 @@
1
- {"version":3,"file":"mapa-library-ui-src-lib-components-table.mjs","sources":["../../../projects/mapa-library-ui/src/lib/core/directives/custom-paginator-legacy.directive.ts","../../../projects/mapa-library-ui/src/lib/components/table/src/table.component.ts","../../../projects/mapa-library-ui/src/lib/components/table/src/table.component.html","../../../projects/mapa-library-ui/src/lib/components/table/src/paginator_customization.ts","../../../projects/mapa-library-ui/src/lib/components/table/src/table.module.ts","../../../projects/mapa-library-ui/src/lib/components/table/public-api.ts","../../../projects/mapa-library-ui/src/table.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-components-table.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n DoCheck,\n Host,\n Optional,\n Renderer2,\n Self,\n ViewContainerRef,\n} from '@angular/core';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { MatButton } from '@angular/material/button';\n\n@Directive({\n selector: '[appStylePaginatorMv]',\n standalone: true\n})\nexport class PaginatorLegacyDirective implements DoCheck, AfterViewInit {\n private currentPage: number;\n private pageGapTxt: string[];\n private rangeStart!: number;\n private rangeEnd!: number;\n private buttons: MatButton[] = [];\n private showTotalPages: number;\n private checkPage: number[];\n\n constructor(\n @Host() @Self() @Optional() private readonly matPag: MatPaginator,\n private readonly ViewContainer: ViewContainerRef,\n private readonly renderer: Renderer2\n ) {\n this.currentPage = 1;\n this.pageGapTxt = ['•••', '---'];\n this.showTotalPages = 2;\n this.checkPage = [0, 0, 0];\n // Display custom range label text\n this.matPag._intl.getRangeLabel = (\n page: number,\n pageSize: number,\n length: number\n ): string => {\n const startIndex = page * pageSize;\n const endIndex =\n startIndex < length\n ? Math.min(startIndex + pageSize, length)\n : startIndex + pageSize;\n if (length === 0) {\n return 'Mostrando 0 – 0 de 0 item';\n }\n if (length === 1) {\n return (\n 'Mostrando ' +\n (startIndex + 1) +\n ' – ' +\n endIndex +\n ' de ' +\n length +\n ' item'\n );\n } else {\n return (\n 'Mostrando ' +\n (startIndex + 1) +\n ' – ' +\n endIndex +\n ' de ' +\n length +\n ' itens'\n );\n }\n };\n // Subscribe to rerender buttons when next page and last page button is used\n this.matPag.page.subscribe((paginator: PageEvent) => {\n this.currentPage = paginator.pageIndex;\n this.matPag.pageIndex = paginator.pageIndex;\n this.initPageRange();\n });\n this.matPag._intl.itemsPerPageLabel = 'Itens por página';\n const paginatorIntl = this.matPag._intl;\n paginatorIntl.nextPageLabel = '';\n paginatorIntl.previousPageLabel = '';\n }\n\n ngDoCheck(): void {\n // Reset paginator if the pageSize, pageIndex, length changes\n if (\n this.matPag?.length !== this.checkPage[0] ||\n this.matPag?.pageSize !== this.checkPage[1] ||\n this.matPag?.pageIndex !== this.checkPage[2]\n ) {\n const pageCount = this.matPag.getNumberOfPages();\n if (this.currentPage > pageCount && pageCount !== 0) {\n this.currentPage = 1;\n this.matPag.pageIndex = 0;\n }\n this.currentPage = this.matPag.pageIndex;\n this.initPageRange();\n this.checkPage = [\n this.matPag.length,\n this.matPag.pageSize,\n this.matPag.pageIndex,\n ];\n }\n }\n\n private buildPageNumbers = () => {\n let dots: boolean[];\n let page: number;\n let pageDifference: number;\n let startIndex: number;\n let totalPages: number;\n totalPages = this.matPag.getNumberOfPages();\n // Container div with paginator elements\n const actionContainer =\n this.ViewContainer.element.nativeElement.querySelector(\n 'div.mat-paginator-range-actions'\n );\n // Button that triggers the next page action\n const nextPageNode = this.ViewContainer.element.nativeElement.querySelector(\n 'button.mat-paginator-navigation-next'\n );\n // Label showing the page range\n const pageRange = this.ViewContainer.element.nativeElement.querySelector(\n 'div.mat-paginator-range-label'\n );\n\n let prevButtonCount = this.buttons.length;\n\n // Remove buttons before creating new ones\n if (prevButtonCount > 0) {\n this.buttons.forEach((button) => {\n this.renderer.removeChild(actionContainer, button);\n });\n // Empty state array\n prevButtonCount = 0;\n }\n\n this.renderer.addClass(pageRange, 'custom-paginator-counter');\n this.renderer.addClass(actionContainer, 'custom-paginator-container');\n\n // Initialize next page and last page buttons\n if (prevButtonCount === 0) {\n const nodeArray = actionContainer.childNodes;\n setTimeout(() => {\n for (const node of nodeArray) {\n if (node.nodeName === 'BUTTON') {\n // Next Button styles\n if (node.innerHTML.length > 100 && node.disabled) {\n this.renderer.addClass(node, 'custom-paginator-arrow-disabled');\n this.renderer.removeClass(node, 'custom-paginator-arrow-enabled');\n } else if (node.innerHTML.length > 100 && !node.disabled) {\n this.renderer.addClass(node, 'custom-paginator-arrow-enabled');\n this.renderer.removeClass(\n node,\n 'custom-paginator-arrow-disabled'\n );\n }\n }\n }\n });\n }\n\n dots = [false, false];\n\n if (totalPages > 0) {\n this.renderer.insertBefore(\n actionContainer,\n this.createButton('0', this.matPag.pageIndex),\n nextPageNode\n );\n }\n\n page = this.showTotalPages + 2;\n pageDifference = totalPages - page;\n startIndex = Math.max(this.currentPage - this.showTotalPages - 2, 1);\n\n for (let index = startIndex; index < totalPages - 1; index = index + 1) {\n if (\n (index < page && this.currentPage <= this.showTotalPages) ||\n (index >= this.rangeStart && index <= this.rangeEnd) ||\n (this.currentPage > pageDifference && index >= pageDifference) ||\n totalPages < this.showTotalPages + page\n ) {\n this.renderer.insertBefore(\n actionContainer,\n this.createButton(`${index}`, this.matPag.pageIndex),\n nextPageNode\n );\n } else {\n if (index > this.rangeEnd && !dots[0]) {\n this.renderer.insertBefore(\n actionContainer,\n this.createButton(this.pageGapTxt[0], this.matPag.pageIndex),\n nextPageNode\n );\n dots[0] = true;\n break;\n }\n if (index < this.rangeEnd && !dots[1]) {\n this.renderer.insertBefore(\n actionContainer,\n this.createButton(this.pageGapTxt[1], this.matPag.pageIndex),\n nextPageNode\n );\n dots[1] = true;\n }\n }\n }\n\n if (totalPages > 1) {\n this.renderer.insertBefore(\n actionContainer,\n this.createButton(`${totalPages - 1}`, this.matPag.pageIndex),\n nextPageNode\n );\n }\n };\n\n private createButton(index: string, pageIndex: number): MatButton {\n const linkBtn: MatButton = this.renderer.createElement('button');\n this.renderer.setAttribute(linkBtn, 'class', 'custom-paginator-page');\n this.renderer.addClass(linkBtn, 'custom-paginator-page-enabled');\n if (index === this.pageGapTxt[0] || index === this.pageGapTxt[1]) {\n this.renderer.addClass(linkBtn, 'custom-paginator-arrow-enabled');\n }\n const pagingTxt = isNaN(+index) ? this.pageGapTxt[0] : +index + 1;\n const text = this.renderer.createText(pagingTxt + '');\n this.renderer.addClass(linkBtn, 'mat-custom-page');\n switch (index) {\n case `${pageIndex}`:\n this.renderer.setAttribute(linkBtn, 'disabled', 'disabled');\n this.renderer.removeClass(linkBtn, 'custom-paginator-page-enabled');\n this.renderer.addClass(linkBtn, 'custom-paginator-page-disabled');\n break;\n case this.pageGapTxt[0]:\n this.renderer.listen(linkBtn, 'click', () => {\n this.switchPage(\n this.currentPage < this.showTotalPages + 1\n ? this.showTotalPages + 2\n : this.currentPage + this.showTotalPages - 1\n );\n });\n break;\n case this.pageGapTxt[1]:\n this.renderer.listen(linkBtn, 'click', () => {\n this.switchPage(\n this.currentPage >\n this.matPag.getNumberOfPages() - this.showTotalPages - 2\n ? this.matPag.getNumberOfPages() - this.showTotalPages - 3\n : this.currentPage - this.showTotalPages + 1\n );\n });\n break;\n default:\n this.renderer.listen(linkBtn, 'click', () => {\n this.switchPage(+index);\n });\n break;\n }\n this.renderer.appendChild(linkBtn, text);\n // Add button to private array for state\n this.buttons.push(linkBtn);\n return linkBtn;\n }\n\n /**\n * @description calculates the button range based on class input parameters and based on current page index value.\n */\n private initPageRange(): void {\n this.rangeStart = this.currentPage - this.showTotalPages / 2;\n this.rangeEnd = this.currentPage + this.showTotalPages / 2;\n this.buildPageNumbers();\n }\n\n private switchPage(index: number): void {\n this.matPag.pageIndex = index;\n this.matPag.page.emit({\n previousPageIndex: this.currentPage,\n pageIndex: index,\n pageSize: this.matPag.pageSize,\n length: this.matPag.length,\n });\n this.currentPage = index;\n this.initPageRange();\n }\n\n public ngAfterViewInit(): void {\n this.rangeStart = 0;\n this.rangeEnd = this.showTotalPages - 1;\n this.initPageRange();\n }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\n\n@Component({\n selector: 'mapa-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MapaTableComponent {\n @Input() columns: TableColumn[] = [];\n @Input() data: Object[] = [];\n @Input() checkbox: boolean | undefined; \n @Input() actions: boolean | undefined;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n @Output() rowClick: EventEmitter<RowClickEvent> = new EventEmitter<RowClickEvent>(); \n @Output() selectedRows: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n checkboxGroup!: FormGroup;\n dataSource!: MatTableDataSource<Object>;\n displayedColumns: string[] = [];\n currentSort: Sort | undefined;\n selection = new SelectionModel<any>(true, []);\n\n constructor(private formBuilder: FormBuilder) {}\n\n ngAfterViewInit() {\n this.dataSource = new MatTableDataSource(this.data);\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n this.displayedColumns = this.columns.map(column => column.key);\n }\n\n isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.dataSource.data.length;\n return numSelected === numRows;\n }\n\n toggleAllRows() {\n if (this.isAllSelected()) {\n this.selection.clear();\n this.getSelectedValues(); \n } else {\n const dataAsPeriodicElements = this.dataSource.data as any[];\n dataAsPeriodicElements.forEach(row => this.selection.select(row));\n this.getSelectedValues(); \n }\n }\n\n checkboxLabel(row?: any): string {\n if (!row) {\n return `${this.isAllSelected() ? 'deselect' : 'select'} all`;\n }\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\n }\n\n sortData(sortKey: string) {\n const sort: Sort = { active: sortKey, direction: 'asc' };\n\n if (this.currentSort && this.currentSort.active === sortKey && this.currentSort.direction === 'asc') {\n sort.direction = 'desc';\n }\n\n this.currentSort = sort;\n this.sortDataFunction(sort);\n }\n\n sortDataFunction(sort: Sort) {\n const data = this.dataSource.data.slice();\n\n if (!sort.active || sort.direction === '') {\n this.dataSource.data = data;\n return;\n }\n\n this.dataSource.data = data.sort((a: any, b: any) => {\n const isAsc = sort.direction === 'asc';\n return this.compare(a[sort.active], b[sort.active], isAsc);\n });\n }\n\n compare(a: any, b: any, isAsc: boolean) {\n if (typeof a === 'string' && typeof b === 'string') {\n return (a.toLowerCase() < b.toLowerCase() ? -1 : 1) * (isAsc ? 1 : -1);\n }\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\n }\n\n emitRowClick(row: string, action: string) {\n const rowData: RowClickEvent = { row, action };\n this.rowClick.emit(rowData);\n }\n \n toggleSelection(row: any) {\n if (this.selection.isSelected(row)) {\n this.selection.deselect(row);\n } else {\n this.selection.select(row);\n }\n this.getSelectedValues(); \n }\n \n getSelectedValues() {\n const selectedRows = this.selection.selected.map(row => {\n return { row }; \n });\n this.selectedRows.emit(selectedRows);\n console.log(selectedRows);\n }\n \n}\n\nexport interface TableColumn {\n key: string;\n label: string;\n sort: boolean;\n}\n\nexport interface RowClickEvent {\n row: string;\n action: string;\n}","<div class=\"mapa-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort>\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n (click)=\"sortData(column.key)\"\n >\n <div class=\"mapa-table__header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"column.key !== 'actions'\">\n <mat-icon>filter_list</mat-icon>\n </div>\n <div class=\"mapa-table__label\">\n {{ column.label }}\n </div>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"emitRowClick(row, '')\">\n <div class=\"header\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <ng-container *ngIf=\"column.key === 'actions'\">\n <div class=\"actions\">\n <mat-icon (click)=\"emitRowClick(row, 'edit')\">edit</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'delete')\">delete</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'visibility')\"\n >visibility</mat-icon\n >\n </div>\n </ng-container>\n <div class=\"table__column\">\n {{ row[column.key] }}\n </div>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por página\"\n appStylePaginatorMv\n [length]=\"dataSource ? dataSource.data.length : 0\"\n [pageSize]=\"5\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n >\n </mat-paginator>\n</div>\n","import { MatPaginatorIntl } from '@angular/material/paginator';\n\nexport function CustomPaginator() {\n const customPaginatorIntl = new MatPaginatorIntl();\n\n const rangeLabel = (page: number, pageSize: number, length: number) => {\n if (length == 0 || pageSize == 0) { return `0 de ${length}`; }\n \n length = Math.max(length, 0);\n\n const startIndex = page * pageSize;\n\n const endIndex = startIndex < length ?\n Math.min(startIndex + pageSize, length) :\n startIndex + pageSize;\n\n return `${startIndex + 1} - ${endIndex} de ${length}`;\n}\n\n customPaginatorIntl.itemsPerPageLabel = 'Itens por página:';\n customPaginatorIntl.nextPageLabel = 'Próxima página';\n customPaginatorIntl.previousPageLabel = 'Página anterior'; \n customPaginatorIntl.getRangeLabel = rangeLabel;\n\n return customPaginatorIntl;\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\n\nimport { MapaTableComponent } from './table.component';\nimport { CustomPaginator } from './paginator_customization';\nimport { PaginatorLegacyDirective } from '../../../core/directives/custom-paginator-legacy.directive';\n\n@NgModule({\n declarations: [\n MapaTableComponent\n ],\n imports: [\n CommonModule,\n MatCheckboxModule,\n MatIconModule,\n MatPaginatorModule,\n MatTableModule,\n PaginatorLegacyDirective,\n FormsModule,\n ReactiveFormsModule\n ],\n exports: [\n MapaTableComponent\n ],\n providers: [\n { provide: MatPaginatorIntl, useValue: CustomPaginator() }\n ]\n})\nexport class MapaTableModule { }\n","/*\n * Public API Surface of mapa-library-ui input\n */\n\nexport * from '../table/src/table.component';\nexport * from '../table/src/table.module';","/*\n * Public API Surface of mapa-library-ui table\n */\nexport * from './lib/core/directives/custom-paginator-legacy.directive';\nexport * from './lib/components/table/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './table';\n"],"names":["i1","i5","i7.PaginatorLegacyDirective"],"mappings":";;;;;;;;;;;;;;;;;MAiBa,wBAAwB,CAAA;AASnC,IAAA,WAAA,CAC+C,MAAoB,EAChD,aAA+B,EAC/B,QAAmB,EAAA;QAFS,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;QAChD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAP9B,IAAO,CAAA,OAAA,GAAgB,EAAE,CAAC;QAmF1B,IAAgB,CAAA,gBAAA,GAAG,MAAK;AAC9B,YAAA,IAAI,IAAe,CAAC;AACpB,YAAA,IAAI,IAAY,CAAC;AACjB,YAAA,IAAI,cAAsB,CAAC;AAC3B,YAAA,IAAI,UAAkB,CAAC;AACvB,YAAA,IAAI,UAAkB,CAAC;AACvB,YAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;;AAE5C,YAAA,MAAM,eAAe,GACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CACpD,iCAAiC,CAClC,CAAC;;AAEJ,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CACzE,sCAAsC,CACvC,CAAC;;AAEF,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CACtE,+BAA+B,CAChC,CAAC;AAEF,YAAA,IAAI,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;;YAG1C,IAAI,eAAe,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;oBAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACrD,iBAAC,CAAC,CAAC;;gBAEH,eAAe,GAAG,CAAC,CAAC;AACrB,aAAA;YAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,4BAA4B,CAAC,CAAC;;YAGtE,IAAI,eAAe,KAAK,CAAC,EAAE;AACzB,gBAAA,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC;gBAC7C,UAAU,CAAC,MAAK;AACd,oBAAA,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;AAC5B,wBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;;4BAE9B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;gCAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC;gCAChE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;AACnE,6BAAA;AAAM,iCAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gCACxD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;gCAC/D,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,IAAI,EACJ,iCAAiC,CAClC,CAAC;AACH,6BAAA;AACF,yBAAA;AACF,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAEtB,IAAI,UAAU,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAC7C,YAAY,CACb,CAAC;AACH,aAAA;AAED,YAAA,IAAI,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAC/B,YAAA,cAAc,GAAG,UAAU,GAAG,IAAI,CAAC;AACnC,YAAA,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAErE,YAAA,KAAK,IAAI,KAAK,GAAG,UAAU,EAAE,KAAK,GAAG,UAAU,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE;AACtE,gBAAA,IACE,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc;qBACvD,KAAK,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC;qBACnD,IAAI,CAAC,WAAW,GAAG,cAAc,IAAI,KAAK,IAAI,cAAc,CAAC;AAC9D,oBAAA,UAAU,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,EACvC;oBACA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,CAAA,EAAG,KAAK,CAAE,CAAA,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EACpD,YAAY,CACb,CAAC;AACH,iBAAA;AAAM,qBAAA;oBACL,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACrC,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAC5D,YAAY,CACb,CAAC;AACF,wBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;wBACf,MAAM;AACP,qBAAA;oBACD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACrC,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAC5D,YAAY,CACb,CAAC;AACF,wBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAChB,qBAAA;AACF,iBAAA;AACF,aAAA;YAED,IAAI,UAAU,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,CAAG,EAAA,UAAU,GAAG,CAAC,CAAA,CAAE,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAC7D,YAAY,CACb,CAAC;AACH,aAAA;AACH,SAAC,CAAC;AAzLA,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;AAE3B,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,CAChC,IAAY,EACZ,QAAgB,EAChB,MAAc,KACJ;AACV,YAAA,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC;AACnC,YAAA,MAAM,QAAQ,GACZ,UAAU,GAAG,MAAM;kBACf,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,EAAE,MAAM,CAAC;AACzC,kBAAE,UAAU,GAAG,QAAQ,CAAC;YAC5B,IAAI,MAAM,KAAK,CAAC,EAAE;AAChB,gBAAA,OAAO,2BAA2B,CAAC;AACpC,aAAA;YACD,IAAI,MAAM,KAAK,CAAC,EAAE;AAChB,gBAAA,QACE,YAAY;qBACX,UAAU,GAAG,CAAC,CAAC;oBAChB,KAAK;oBACL,QAAQ;oBACR,MAAM;oBACN,MAAM;AACN,oBAAA,OAAO,EACP;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,QACE,YAAY;qBACX,UAAU,GAAG,CAAC,CAAC;oBAChB,KAAK;oBACL,QAAQ;oBACR,MAAM;oBACN,MAAM;AACN,oBAAA,QAAQ,EACR;AACH,aAAA;AACH,SAAC,CAAC;;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAoB,KAAI;AAClD,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;YAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,kBAAkB,CAAC;AACzD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACxC,QAAA,aAAa,CAAC,aAAa,GAAG,EAAE,CAAC;AACjC,QAAA,aAAa,CAAC,iBAAiB,GAAG,EAAE,CAAC;KACtC;IAED,SAAS,GAAA;;QAEP,IACE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAC5C;YACA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,WAAW,GAAG,SAAS,IAAI,SAAS,KAAK,CAAC,EAAE;AACnD,gBAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,gBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3B,aAAA;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACzC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG;gBACf,IAAI,CAAC,MAAM,CAAC,MAAM;gBAClB,IAAI,CAAC,MAAM,CAAC,QAAQ;gBACpB,IAAI,CAAC,MAAM,CAAC,SAAS;aACtB,CAAC;AACH,SAAA;KACF;IAmHO,YAAY,CAAC,KAAa,EAAE,SAAiB,EAAA;QACnD,MAAM,OAAO,GAAc,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;AACjE,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YAChE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;AACnE,SAAA;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAClE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACnD,QAAA,QAAQ,KAAK;YACX,KAAK,CAAA,EAAG,SAAS,CAAE,CAAA;gBACjB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gBAC5D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;gBACpE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;gBAClE,MAAM;AACR,YAAA,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAK;oBAC1C,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC;AACxC,0BAAE,IAAI,CAAC,cAAc,GAAG,CAAC;0BACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAC/C,CAAC;AACJ,iBAAC,CAAC,CAAC;gBACH,MAAM;AACR,YAAA,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAK;AAC1C,oBAAA,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,WAAW;wBACd,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC;AACxD,0BAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC;0BACxD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAC/C,CAAC;AACJ,iBAAC,CAAC,CAAC;gBACH,MAAM;AACR,YAAA;gBACE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAK;AAC1C,oBAAA,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1B,iBAAC,CAAC,CAAC;gBACH,MAAM;AACT,SAAA;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;;AAEzC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3B,QAAA,OAAO,OAAO,CAAC;KAChB;AAED;;AAEG;IACK,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAEO,IAAA,UAAU,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACpB,iBAAiB,EAAE,IAAI,CAAC,WAAW;AACnC,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AAC9B,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AAC3B,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEM,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;;sHAjRU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;0BAWI,IAAI;;0BAAI,IAAI;;0BAAI,QAAQ;;;MCdhB,kBAAkB,CAAA;AAgB7B,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAfnC,IAAO,CAAA,OAAA,GAAkB,EAAE,CAAC;QAC5B,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;AAKnB,QAAA,IAAA,CAAA,QAAQ,GAAgC,IAAI,YAAY,EAAiB,CAAC;AAC1E,QAAA,IAAA,CAAA,YAAY,GAAwB,IAAI,YAAY,EAAS,CAAC;QAIxE,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;QAEhC,IAAS,CAAA,SAAA,GAAG,IAAI,cAAc,CAAM,IAAI,EAAE,EAAE,CAAC,CAAC;KAEE;IAEhD,eAAe,GAAA;QACb,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;KAChE;IAED,aAAa,GAAA;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,OAAO,WAAW,KAAK,OAAO,CAAC;KAChC;IAED,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAa,CAAC;AAC7D,YAAA,sBAAsB,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;KACF;AAED,IAAA,aAAa,CAAC,GAAS,EAAA;QACrB,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,OAAO,CAAG,EAAA,IAAI,CAAC,aAAa,EAAE,GAAG,UAAU,GAAG,QAAQ,MAAM,CAAC;AAC9D,SAAA;QACD,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,QAAQ,CAAQ,KAAA,EAAA,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAA,CAAE,CAAC;KAC5F;AAED,IAAA,QAAQ,CAAC,OAAe,EAAA;QACtB,MAAM,IAAI,GAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAEzD,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,KAAK,EAAE;AACnG,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;AACzB,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KAC7B;AAED,IAAA,gBAAgB,CAAC,IAAU,EAAA;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAE1C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;AACzC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YAC5B,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAI;AAClD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;YACvC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7D,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,OAAO,CAAC,CAAM,EAAE,CAAM,EAAE,KAAc,EAAA;QACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAClD,YAAA,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxE,SAAA;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC5C;IAED,YAAY,CAAC,GAAW,EAAE,MAAc,EAAA;AACtC,QAAA,MAAM,OAAO,GAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC7B;AAED,IAAA,eAAe,CAAC,GAAQ,EAAA;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,SAAA;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAG;YACrD,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;KAC3B;;gHArGU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAKlB,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,YAAY,EACZ,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,OAAO,gDCnBpB,g+EAqEA,EAAA,MAAA,EAAA,CAAA,klFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FDxDa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,YAAY,EAAA,aAAA,EAGP,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,g+EAAA,EAAA,MAAA,EAAA,CAAA,klFAAA,CAAA,EAAA,CAAA;oGAG5B,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACmB,SAAS,EAAA,CAAA;sBAAjC,SAAS;uBAAC,YAAY,CAAA;gBACH,IAAI,EAAA,CAAA;sBAAvB,SAAS;uBAAC,OAAO,CAAA;gBACR,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;;;SEnBO,eAAe,GAAA;AAC7B,IAAA,MAAM,mBAAmB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEnD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAc,KAAI;AACtE,QAAA,IAAI,MAAM,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE;YAAE,OAAO,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAE,CAAC;AAAE,SAAA;QAE9D,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAE7B,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEnC,QAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM;YAChC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,EAAE,MAAM,CAAC;YACvC,UAAU,GAAG,QAAQ,CAAC;QAE1B,OAAO,CAAA,EAAG,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAA,IAAA,EAAO,MAAM,CAAA,CAAE,CAAC;AACxD,KAAC,CAAA;AAEC,IAAA,mBAAmB,CAAC,iBAAiB,GAAG,mBAAmB,CAAC;AAC5D,IAAA,mBAAmB,CAAC,aAAa,GAAG,gBAAgB,CAAC;AACrD,IAAA,mBAAmB,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;AAC1D,IAAA,mBAAmB,CAAC,aAAa,GAAG,UAAU,CAAC;AAE/C,IAAA,OAAO,mBAAmB,CAAC;AAC7B;;MCSa,eAAe,CAAA;;6GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;8GAAf,eAAe,EAAA,YAAA,EAAA,CAnBxB,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAGlB,YAAY;QACZ,iBAAiB;QACjB,aAAa;QACb,kBAAkB;QAClB,cAAc;QACd,wBAAwB;QACxB,WAAW;AACX,QAAA,mBAAmB,aAGnB,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAMT,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAJf,SAAA,EAAA;QACT,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE;AAC3D,KAAA,EAAA,OAAA,EAAA,CAdC,YAAY;QACZ,iBAAiB;QACjB,aAAa;QACb,kBAAkB;QAClB,cAAc;QAEd,WAAW;QACX,mBAAmB,CAAA,EAAA,CAAA,CAAA;4FASV,eAAe,EAAA,UAAA,EAAA,CAAA;kBArB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,iBAAiB;wBACjB,aAAa;wBACb,kBAAkB;wBAClB,cAAc;wBACd,wBAAwB;wBACxB,WAAW;wBACX,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,kBAAkB;AACnB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE;AAC3D,qBAAA;AACF,iBAAA,CAAA;;;ACjCD;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"mapa-library-ui-src-lib-components-table.mjs","sources":["../../../projects/mapa-library-ui/src/lib/core/directives/custom-paginator-legacy.directive.ts","../../../projects/mapa-library-ui/src/lib/components/table/src/table.component.ts","../../../projects/mapa-library-ui/src/lib/components/table/src/table.component.html","../../../projects/mapa-library-ui/src/lib/components/table/src/paginator_customization.ts","../../../projects/mapa-library-ui/src/lib/components/table/src/table.module.ts","../../../projects/mapa-library-ui/src/lib/components/table/public-api.ts","../../../projects/mapa-library-ui/src/table.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-components-table.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n DoCheck,\n Host,\n Optional,\n Renderer2,\n Self,\n ViewContainerRef,\n} from '@angular/core';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { MatButton } from '@angular/material/button';\n\n@Directive({\n selector: '[appStylePaginatorMv]',\n standalone: true\n})\nexport class PaginatorLegacyDirective implements DoCheck, AfterViewInit {\n private currentPage: number;\n private pageGapTxt: string[];\n private rangeStart!: number;\n private rangeEnd!: number;\n private buttons: MatButton[] = [];\n private showTotalPages: number;\n private checkPage: number[];\n\n constructor(\n @Host() @Self() @Optional() private readonly matPag: MatPaginator,\n private readonly ViewContainer: ViewContainerRef,\n private readonly renderer: Renderer2\n ) {\n this.currentPage = 1;\n this.pageGapTxt = ['•••', '---'];\n this.showTotalPages = 2;\n this.checkPage = [0, 0, 0];\n // Display custom range label text\n this.matPag._intl.getRangeLabel = (\n page: number,\n pageSize: number,\n length: number\n ): string => {\n const startIndex = page * pageSize;\n const endIndex =\n startIndex < length\n ? Math.min(startIndex + pageSize, length)\n : startIndex + pageSize;\n if (length === 0) {\n return 'Mostrando 0 – 0 de 0 item';\n }\n if (length === 1) {\n return (\n 'Mostrando ' +\n (startIndex + 1) +\n ' – ' +\n endIndex +\n ' de ' +\n length +\n ' item'\n );\n } else {\n return (\n 'Mostrando ' +\n (startIndex + 1) +\n ' – ' +\n endIndex +\n ' de ' +\n length +\n ' itens'\n );\n }\n };\n // Subscribe to rerender buttons when next page and last page button is used\n this.matPag.page.subscribe((paginator: PageEvent) => {\n this.currentPage = paginator.pageIndex;\n this.matPag.pageIndex = paginator.pageIndex;\n this.initPageRange();\n });\n this.matPag._intl.itemsPerPageLabel = 'Itens por página';\n const paginatorIntl = this.matPag._intl;\n paginatorIntl.nextPageLabel = '';\n paginatorIntl.previousPageLabel = '';\n }\n\n ngDoCheck(): void {\n // Reset paginator if the pageSize, pageIndex, length changes\n if (\n this.matPag?.length !== this.checkPage[0] ||\n this.matPag?.pageSize !== this.checkPage[1] ||\n this.matPag?.pageIndex !== this.checkPage[2]\n ) {\n const pageCount = this.matPag.getNumberOfPages();\n if (this.currentPage > pageCount && pageCount !== 0) {\n this.currentPage = 1;\n this.matPag.pageIndex = 0;\n }\n this.currentPage = this.matPag.pageIndex;\n this.initPageRange();\n this.checkPage = [\n this.matPag.length,\n this.matPag.pageSize,\n this.matPag.pageIndex,\n ];\n }\n }\n\n private buildPageNumbers = () => {\n let dots: boolean[];\n let page: number;\n let pageDifference: number;\n let startIndex: number;\n let totalPages: number;\n totalPages = this.matPag.getNumberOfPages();\n // Container div with paginator elements\n const actionContainer =\n this.ViewContainer.element.nativeElement.querySelector(\n 'div.mat-paginator-range-actions'\n );\n // Button that triggers the next page action\n const nextPageNode = this.ViewContainer.element.nativeElement.querySelector(\n 'button.mat-paginator-navigation-next'\n );\n // Label showing the page range\n const pageRange = this.ViewContainer.element.nativeElement.querySelector(\n 'div.mat-paginator-range-label'\n );\n\n let prevButtonCount = this.buttons.length;\n\n // Remove buttons before creating new ones\n if (prevButtonCount > 0) {\n this.buttons.forEach((button) => {\n this.renderer.removeChild(actionContainer, button);\n });\n // Empty state array\n prevButtonCount = 0;\n }\n\n this.renderer.addClass(pageRange, 'custom-paginator-counter');\n this.renderer.addClass(actionContainer, 'custom-paginator-container');\n\n // Initialize next page and last page buttons\n if (prevButtonCount === 0) {\n const nodeArray = actionContainer.childNodes;\n setTimeout(() => {\n for (const node of nodeArray) {\n if (node.nodeName === 'BUTTON') {\n // Next Button styles\n if (node.innerHTML.length > 100 && node.disabled) {\n this.renderer.addClass(node, 'custom-paginator-arrow-disabled');\n this.renderer.removeClass(node, 'custom-paginator-arrow-enabled');\n } else if (node.innerHTML.length > 100 && !node.disabled) {\n this.renderer.addClass(node, 'custom-paginator-arrow-enabled');\n this.renderer.removeClass(\n node,\n 'custom-paginator-arrow-disabled'\n );\n }\n }\n }\n });\n }\n\n dots = [false, false];\n\n if (totalPages > 0) {\n this.renderer.insertBefore(\n actionContainer,\n this.createButton('0', this.matPag.pageIndex),\n nextPageNode\n );\n }\n\n page = this.showTotalPages + 2;\n pageDifference = totalPages - page;\n startIndex = Math.max(this.currentPage - this.showTotalPages - 2, 1);\n\n for (let index = startIndex; index < totalPages - 1; index = index + 1) {\n if (\n (index < page && this.currentPage <= this.showTotalPages) ||\n (index >= this.rangeStart && index <= this.rangeEnd) ||\n (this.currentPage > pageDifference && index >= pageDifference) ||\n totalPages < this.showTotalPages + page\n ) {\n this.renderer.insertBefore(\n actionContainer,\n this.createButton(`${index}`, this.matPag.pageIndex),\n nextPageNode\n );\n } else {\n if (index > this.rangeEnd && !dots[0]) {\n this.renderer.insertBefore(\n actionContainer,\n this.createButton(this.pageGapTxt[0], this.matPag.pageIndex),\n nextPageNode\n );\n dots[0] = true;\n break;\n }\n if (index < this.rangeEnd && !dots[1]) {\n this.renderer.insertBefore(\n actionContainer,\n this.createButton(this.pageGapTxt[1], this.matPag.pageIndex),\n nextPageNode\n );\n dots[1] = true;\n }\n }\n }\n\n if (totalPages > 1) {\n this.renderer.insertBefore(\n actionContainer,\n this.createButton(`${totalPages - 1}`, this.matPag.pageIndex),\n nextPageNode\n );\n }\n };\n\n private createButton(index: string, pageIndex: number): MatButton {\n const linkBtn: MatButton = this.renderer.createElement('button');\n this.renderer.setAttribute(linkBtn, 'class', 'custom-paginator-page');\n this.renderer.addClass(linkBtn, 'custom-paginator-page-enabled');\n if (index === this.pageGapTxt[0] || index === this.pageGapTxt[1]) {\n this.renderer.addClass(linkBtn, 'custom-paginator-arrow-enabled');\n }\n const pagingTxt = isNaN(+index) ? this.pageGapTxt[0] : +index + 1;\n const text = this.renderer.createText(pagingTxt + '');\n this.renderer.addClass(linkBtn, 'mat-custom-page');\n switch (index) {\n case `${pageIndex}`:\n this.renderer.setAttribute(linkBtn, 'disabled', 'disabled');\n this.renderer.removeClass(linkBtn, 'custom-paginator-page-enabled');\n this.renderer.addClass(linkBtn, 'custom-paginator-page-disabled');\n break;\n case this.pageGapTxt[0]:\n this.renderer.listen(linkBtn, 'click', () => {\n this.switchPage(\n this.currentPage < this.showTotalPages + 1\n ? this.showTotalPages + 2\n : this.currentPage + this.showTotalPages - 1\n );\n });\n break;\n case this.pageGapTxt[1]:\n this.renderer.listen(linkBtn, 'click', () => {\n this.switchPage(\n this.currentPage >\n this.matPag.getNumberOfPages() - this.showTotalPages - 2\n ? this.matPag.getNumberOfPages() - this.showTotalPages - 3\n : this.currentPage - this.showTotalPages + 1\n );\n });\n break;\n default:\n this.renderer.listen(linkBtn, 'click', () => {\n this.switchPage(+index);\n });\n break;\n }\n this.renderer.appendChild(linkBtn, text);\n // Add button to private array for state\n this.buttons.push(linkBtn);\n return linkBtn;\n }\n\n /**\n * @description calculates the button range based on class input parameters and based on current page index value.\n */\n private initPageRange(): void {\n this.rangeStart = this.currentPage - this.showTotalPages / 2;\n this.rangeEnd = this.currentPage + this.showTotalPages / 2;\n this.buildPageNumbers();\n }\n\n private switchPage(index: number): void {\n this.matPag.pageIndex = index;\n this.matPag.page.emit({\n previousPageIndex: this.currentPage,\n pageIndex: index,\n pageSize: this.matPag.pageSize,\n length: this.matPag.length,\n });\n this.currentPage = index;\n this.initPageRange();\n }\n\n public ngAfterViewInit(): void {\n this.rangeStart = 0;\n this.rangeEnd = this.showTotalPages - 1;\n this.initPageRange();\n }\n}\n","import { SelectionModel } from \"@angular/cdk/collections\";\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { MatPaginator } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport moment from \"moment\";\n\nimport { RowClickEvent } from \"../../../core/interfaces/table-row-click-event.interface\";\nimport { TableColumn } from \"../../../core/interfaces/table-column.interface\";\n\n@Component({\n selector: \"mapa-table\",\n templateUrl: \"./table.component.html\",\n styleUrls: [\"./table.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MapaTableComponent {\n @Input() columns: TableColumn[] = [];\n @Input() data: Object[] = [];\n @Input() checkbox: boolean | undefined;\n @Input() actions: boolean | undefined;\n\n @Output() rowClick: EventEmitter<RowClickEvent> = new EventEmitter<\n RowClickEvent\n >();\n @Output() selectedRows: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n\n checkboxGroup!: FormGroup;\n dataSource!: MatTableDataSource<Object>;\n displayedColumns: string[] = [];\n currentSort: Sort | undefined;\n selection = new SelectionModel<any>(true, []);\n\n constructor() {}\n\n ngAfterViewInit() {\n this.dataSource = new MatTableDataSource(this.data);\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n this.displayedColumns = this.columns.map((column) => column.key);\n }\n\n isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.dataSource.data.length;\n return numSelected === numRows;\n }\n\n toggleAllRows() {\n if (this.isAllSelected()) {\n this.selection.clear();\n this.getSelectedValues();\n } else {\n const dataAsPeriodicElements = this.dataSource.data as any[];\n dataAsPeriodicElements.forEach((row) => this.selection.select(row));\n this.getSelectedValues();\n }\n }\n\n checkboxLabel(row?: any): string {\n if (!row) {\n return `${this.isAllSelected() ? \"deselect\" : \"select\"} all`;\n }\n return `${this.selection.isSelected(row) ? \"deselect\" : \"select\"} row ${\n row.position + 1\n }`;\n }\n\n sortData(column: TableColumn): void {\n if (column.sort) {\n const sort: Sort = { active: column.key, direction: \"asc\" };\n\n if (\n this.currentSort &&\n this.currentSort.active === column.key &&\n this.currentSort.direction === \"asc\"\n ) {\n sort.direction = \"desc\";\n }\n\n this.currentSort = sort;\n this.sortDataFunction(sort);\n }\n }\n\n sortDataFunction(sort: Sort) {\n const data = this.dataSource.data.slice();\n\n if (!sort.active || sort.direction === \"\") {\n this.dataSource.data = data;\n return;\n }\n\n this.dataSource.data = data.sort((a: any, b: any) => {\n const isAsc = sort.direction === \"asc\";\n return this.compare(a[sort.active], b[sort.active], isAsc);\n });\n }\n\n compare(a: any, b: any, isAsc: boolean) {\n if (typeof a === \"string\" && typeof b === \"string\") {\n return (a.toLowerCase() < b.toLowerCase() ? -1 : 1) * (isAsc ? 1 : -1);\n }\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\n }\n\n emitRowClick(row: string, action: string) {\n const rowData: RowClickEvent = { row, action };\n this.rowClick.emit(rowData);\n }\n\n toggleSelection(row: any) {\n if (this.selection.isSelected(row)) {\n this.selection.deselect(row);\n } else {\n this.selection.select(row);\n }\n this.getSelectedValues();\n }\n\n getSelectedValues() {\n const selectedRows = this.selection.selected.map((row) => {\n return { row };\n });\n this.selectedRows.emit(selectedRows);\n console.log(selectedRows);\n }\n\n isBoolean(column: TableColumn, row: any): boolean {\n return typeof row[column.key] === 'boolean';\n }\n\n isMaskedData(column: TableColumn, row: any): boolean {\n const formats = [moment.ISO_8601, \"MM/DD/YYYY :) HH*mm*ss\"];\n const isDate = moment(row[column.key], formats, true).isValid();\n return (column.mask && isDate) || false;\n }\n\n getValueAsDate(column: TableColumn, row: any): Date {\n return new Date(row[column.key]);\n }\n}\n","<div class=\"mapa-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"sortDataFunction($event)\">\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n *ngIf=\"column.key !== 'actions'; else columnActions\"\n >\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection.isSelected(row)\"\n >\n </mat-checkbox>\n </ng-container>\n <div class=\"table__column\">\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\">\n {{ getValueAsDate(column, row) | date: column.mask }}\n </ng-container>\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.statusLabel; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\">\n {{ column.statusLabel[row[column.key] ? 1 : 0] }}\n </ng-container>\n <ng-template #commonStatus>{{ column.statusLabel[row[column.key] - 1] }}</ng-template>\n </ng-container>\n <ng-template #commonContent>{{ row[column.key] }}</ng-template>\n </ng-template>\n </div>\n </div>\n <ng-template #columnActions>\n <div class=\"mapa-table__column--actions\">\n <mat-icon (click)=\"emitRowClick(row, 'edit')\">edit</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'delete')\">delete</mat-icon>\n <mat-icon (click)=\"emitRowClick(row, 'visibility')\">visibility</mat-icon>\n </div>\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por página\"\n appStylePaginatorMv\n [length]=\"dataSource ? dataSource.data.length : 0\"\n [pageSize]=\"5\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n >\n </mat-paginator>\n</div>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <div class=\"mapa-table__column\">\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"column.key !== 'actions' && column.sort\">\n <mat-icon>filter_list</mat-icon>\n </div>\n <div class=\"mapa-table__label\">\n {{ column.label }}\n </div>\n </div>\n</ng-template>\n","import { MatPaginatorIntl } from '@angular/material/paginator';\n\nexport function CustomPaginator() {\n const customPaginatorIntl = new MatPaginatorIntl();\n\n const rangeLabel = (page: number, pageSize: number, length: number) => {\n if (length == 0 || pageSize == 0) { return `0 de ${length}`; }\n \n length = Math.max(length, 0);\n\n const startIndex = page * pageSize;\n\n const endIndex = startIndex < length ?\n Math.min(startIndex + pageSize, length) :\n startIndex + pageSize;\n\n return `${startIndex + 1} - ${endIndex} de ${length}`;\n}\n\n customPaginatorIntl.itemsPerPageLabel = 'Itens por página:';\n customPaginatorIntl.nextPageLabel = 'Próxima página';\n customPaginatorIntl.previousPageLabel = 'Página anterior'; \n customPaginatorIntl.getRangeLabel = rangeLabel;\n\n return customPaginatorIntl;\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport {\n MatPaginatorIntl,\n MatPaginatorModule,\n} from \"@angular/material/paginator\";\n\nimport { MapaTableComponent } from \"./table.component\";\nimport { CustomPaginator } from \"./paginator_customization\";\nimport { PaginatorLegacyDirective } from \"../../../core/directives/custom-paginator-legacy.directive\";\n\n@NgModule({\n declarations: [MapaTableComponent],\n imports: [\n CommonModule,\n MatCheckboxModule,\n MatIconModule,\n MatPaginatorModule,\n MatTableModule,\n MatSortModule,\n PaginatorLegacyDirective,\n FormsModule,\n ReactiveFormsModule,\n ],\n exports: [MapaTableComponent],\n providers: [{ provide: MatPaginatorIntl, useValue: CustomPaginator() }],\n})\nexport class MapaTableModule {}\n","/*\n * Public API Surface of mapa-library-ui input\n */\n\nexport * from '../table/src/table.component';\nexport * from '../table/src/table.module';","/*\n * Public API Surface of mapa-library-ui table\n */\nexport * from './lib/core/directives/custom-paginator-legacy.directive';\nexport * from './lib/components/table/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './table';\n"],"names":["i1","i4","i7.PaginatorLegacyDirective"],"mappings":"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"}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mapa-library-ui",
3
- "version": "0.0.42",
3
+ "version": "0.0.43",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^15.2.0",
6
6
  "@angular/core": "^15.2.0"
@@ -1,45 +1,40 @@
1
- import { SelectionModel } from '@angular/cdk/collections';
2
- import { EventEmitter } from '@angular/core';
3
- import { FormBuilder, FormGroup } from '@angular/forms';
4
- import { MatPaginator } from '@angular/material/paginator';
5
- import { MatSort, Sort } from '@angular/material/sort';
6
- import { MatTableDataSource } from '@angular/material/table';
1
+ import { SelectionModel } from "@angular/cdk/collections";
2
+ import { EventEmitter } from "@angular/core";
3
+ import { FormGroup } from "@angular/forms";
4
+ import { MatPaginator } from "@angular/material/paginator";
5
+ import { MatSort, Sort } from "@angular/material/sort";
6
+ import { MatTableDataSource } from "@angular/material/table";
7
+ import { RowClickEvent } from "../../../core/interfaces/table-row-click-event.interface";
8
+ import { TableColumn } from "../../../core/interfaces/table-column.interface";
7
9
  import * as i0 from "@angular/core";
8
10
  export declare class MapaTableComponent {
9
- private formBuilder;
10
11
  columns: TableColumn[];
11
12
  data: Object[];
12
13
  checkbox: boolean | undefined;
13
14
  actions: boolean | undefined;
14
- paginator: MatPaginator;
15
- sort: MatSort;
16
15
  rowClick: EventEmitter<RowClickEvent>;
17
16
  selectedRows: EventEmitter<any[]>;
17
+ paginator: MatPaginator;
18
+ sort: MatSort;
18
19
  checkboxGroup: FormGroup;
19
20
  dataSource: MatTableDataSource<Object>;
20
21
  displayedColumns: string[];
21
22
  currentSort: Sort | undefined;
22
23
  selection: SelectionModel<any>;
23
- constructor(formBuilder: FormBuilder);
24
+ constructor();
24
25
  ngAfterViewInit(): void;
25
26
  isAllSelected(): boolean;
26
27
  toggleAllRows(): void;
27
28
  checkboxLabel(row?: any): string;
28
- sortData(sortKey: string): void;
29
+ sortData(column: TableColumn): void;
29
30
  sortDataFunction(sort: Sort): void;
30
31
  compare(a: any, b: any, isAsc: boolean): number;
31
32
  emitRowClick(row: string, action: string): void;
32
33
  toggleSelection(row: any): void;
33
34
  getSelectedValues(): void;
35
+ isBoolean(column: TableColumn, row: any): boolean;
36
+ isMaskedData(column: TableColumn, row: any): boolean;
37
+ getValueAsDate(column: TableColumn, row: any): Date;
34
38
  static ɵfac: i0.ɵɵFactoryDeclaration<MapaTableComponent, never>;
35
39
  static ɵcmp: i0.ɵɵComponentDeclaration<MapaTableComponent, "mapa-table", never, { "columns": "columns"; "data": "data"; "checkbox": "checkbox"; "actions": "actions"; }, { "rowClick": "rowClick"; "selectedRows": "selectedRows"; }, never, never, false, never>;
36
40
  }
37
- export interface TableColumn {
38
- key: string;
39
- label: string;
40
- sort: boolean;
41
- }
42
- export interface RowClickEvent {
43
- row: string;
44
- action: string;
45
- }
@@ -5,10 +5,11 @@ import * as i3 from "@angular/material/checkbox";
5
5
  import * as i4 from "@angular/material/icon";
6
6
  import * as i5 from "@angular/material/paginator";
7
7
  import * as i6 from "@angular/material/table";
8
- import * as i7 from "../../../core/directives/custom-paginator-legacy.directive";
9
- import * as i8 from "@angular/forms";
8
+ import * as i7 from "@angular/material/sort";
9
+ import * as i8 from "../../../core/directives/custom-paginator-legacy.directive";
10
+ import * as i9 from "@angular/forms";
10
11
  export declare class MapaTableModule {
11
12
  static ɵfac: i0.ɵɵFactoryDeclaration<MapaTableModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<MapaTableModule, [typeof i1.MapaTableComponent], [typeof i2.CommonModule, typeof i3.MatCheckboxModule, typeof i4.MatIconModule, typeof i5.MatPaginatorModule, typeof i6.MatTableModule, typeof i7.PaginatorLegacyDirective, typeof i8.FormsModule, typeof i8.ReactiveFormsModule], [typeof i1.MapaTableComponent]>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MapaTableModule, [typeof i1.MapaTableComponent], [typeof i2.CommonModule, typeof i3.MatCheckboxModule, typeof i4.MatIconModule, typeof i5.MatPaginatorModule, typeof i6.MatTableModule, typeof i7.MatSortModule, typeof i8.PaginatorLegacyDirective, typeof i9.FormsModule, typeof i9.ReactiveFormsModule], [typeof i1.MapaTableComponent]>;
13
14
  static ɵinj: i0.ɵɵInjectorDeclaration<MapaTableModule>;
14
15
  }
@@ -0,0 +1,7 @@
1
+ export interface TableColumn {
2
+ key: string;
3
+ label: string;
4
+ sort: boolean;
5
+ statusLabel?: string[];
6
+ mask?: string;
7
+ }
@@ -0,0 +1,4 @@
1
+ export interface RowClickEvent {
2
+ row: string;
3
+ action: string;
4
+ }
Binary file