UNPKG

ngx-material-dynamic-table

Version:

Componente angular dinâmico que ajuda a criar uma tabela utilizando o Angular material, de maneira fácil e rápida.

128 lines 14.8 kB
import { __decorate, __read, __spread } from "tslib"; import { Component, ViewChild, EventEmitter, Output, Input, } from '@angular/core'; import { MatTableDataSource, MatTable } from '@angular/material/table'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; export var buttonsConfig = { read: { icon: 'search', name: 'read', tooltip: 'Visualizar', }, update: { icon: 'edit', name: 'edit', tooltip: 'Editar', }, delete: { icon: 'delete', name: 'delete', tooltip: 'Excluir', }, download: { icon: 'arrow_downward', name: 'download', tooltip: 'Download', }, }; var NgxMaterialDynamicTableComponent = /** @class */ (function () { function NgxMaterialDynamicTableComponent() { this.displayedColumns = []; this.filter = true; this.buttonAddNewItem = false; this.buttonExport = false; this.buttonsConfig = buttonsConfig; this.sendClick = new EventEmitter(); this.loading = true; this.action = false; this.displayedColumnsObject = []; } NgxMaterialDynamicTableComponent.prototype.ngOnChanges = function () { if (this.displayedColumns) { this.addActionColumn(); } if (this.dataSource) { this.createDatasource(); } }; NgxMaterialDynamicTableComponent.prototype.createDatasource = function () { this.dados = new MatTableDataSource(this.dataSource); this.dados.paginator = this.paginator; this.dados.sort = this.sort; this.showTable(); }; NgxMaterialDynamicTableComponent.prototype.createColumns = function () { this.displayedColumnsObject = this.displayedColumns.map(function (col) { return typeof col.column === 'number' ? col.column.toString() : col.column; }); this.showTable(); }; NgxMaterialDynamicTableComponent.prototype.showTable = function () { if (this.dados && this.displayedColumns && this.displayedColumnsObject) { this.loading = false; } }; NgxMaterialDynamicTableComponent.prototype.sendAction = function (action, row, index) { var content = { action: action, row: row, index: index }; this.sendClick.emit(content); }; NgxMaterialDynamicTableComponent.prototype.addActionColumn = function () { if (this.actions) { var columnAction = { column: 'actions', title: 'Ações' }; this.displayedColumns = __spread(this.displayedColumns, [columnAction]); } this.createColumns(); }; NgxMaterialDynamicTableComponent.prototype.applyFilter = function (filterValue) { this.dados.filter = filterValue.trim().toLowerCase(); }; __decorate([ Input() ], NgxMaterialDynamicTableComponent.prototype, "dataSource", void 0); __decorate([ Input() ], NgxMaterialDynamicTableComponent.prototype, "displayedColumns", void 0); __decorate([ Input() ], NgxMaterialDynamicTableComponent.prototype, "actions", void 0); __decorate([ Input() ], NgxMaterialDynamicTableComponent.prototype, "configEditRow", void 0); __decorate([ Input() ], NgxMaterialDynamicTableComponent.prototype, "filter", void 0); __decorate([ Input() ], NgxMaterialDynamicTableComponent.prototype, "buttonAddNewItem", void 0); __decorate([ Input() ], NgxMaterialDynamicTableComponent.prototype, "buttonExport", void 0); __decorate([ Input() ], NgxMaterialDynamicTableComponent.prototype, "componentName", void 0); __decorate([ Input() ], NgxMaterialDynamicTableComponent.prototype, "buttonsConfig", void 0); __decorate([ Output() ], NgxMaterialDynamicTableComponent.prototype, "sendClick", void 0); __decorate([ ViewChild(MatTable, { static: true }) ], NgxMaterialDynamicTableComponent.prototype, "table", void 0); __decorate([ ViewChild(MatPaginator, { static: true }) ], NgxMaterialDynamicTableComponent.prototype, "paginator", void 0); __decorate([ ViewChild(MatSort, { static: true }) ], NgxMaterialDynamicTableComponent.prototype, "sort", void 0); NgxMaterialDynamicTableComponent = __decorate([ Component({ selector: 'ngx-material-dynamic-table', template: "\r\n\r\n <mat-form-field class=\"pesquisa\" *ngIf=\"filter\">\r\n <span matPrefix>\r\n <i class=\"material-icons\">search</i>\r\n <input type=\"text\" matInput (keyup)=\"applyFilter($event.target.value)\" placelholder=\"Filtrar\">\r\n </span>\r\n </mat-form-field>\r\n <mat-table #table [dataSource]=\"dados\" [hidden]=\"loading || !dados || !displayedColumns || !displayedColumnsObject\">\r\n\r\n <ng-container *ngFor=\"let disCol of displayedColumns; let colIndex = index\" matColumnDef=\"{{disCol.column}}\">\r\n <th mat-header-cell *matHeaderCellDef> {{disCol.title}} </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <span *ngIf=\"disCol.column !== 'actions'; else blockActions\">\r\n {{element[disCol.column]}}\r\n </span>\r\n <ng-template #blockActions>\r\n <div class=\"actionsList\">\r\n <span *ngFor=\"let action of actions\">\r\n <a (click)=\"sendAction(action)\" matTooltip=\"{{buttonsConfig[action.column].tooltip}}\">\r\n <i class=\"material-icons\">{{buttonsConfig[action.column].icon}}</i>\r\n </a>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsObject\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsObject;\"></tr>\r\n </mat-table>\r\n <div *ngIf=\"dados && dados.filteredData && dados.filteredData.length === 0\">\r\n <p>Nenhum registro encontrado</p>\r\n </div>\r\n <mat-paginator [hidden]=\"dados === undefined\" [pageSizeOptions]=\"[5,10,20]\" showFirstLastButtons></mat-paginator>\r\n", styles: ["[hidden]{display:none}.actionsList{display:flex;align-items:center}.actionsList span+span{margin-left:10px}.mat-table{width:100%;display:table}.mat-table tr.mat-header-row{height:auto}.mat-form-field,.pesquisa{width:100%}"] }) ], NgxMaterialDynamicTableComponent); return NgxMaterialDynamicTableComponent; }()); export { NgxMaterialDynamicTableComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW1hdGVyaWFsLWR5bmFtaWMtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hdGVyaWFsLWR5bmFtaWMtdGFibGUvIiwic291cmNlcyI6WyJsaWIvbmd4LW1hdGVyaWFsLWR5bmFtaWMtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUc7SUFDM0IsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsTUFBTTtRQUNaLE9BQU8sRUFBRSxZQUFZO0tBQ3RCO0lBQ0QsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJLEVBQUUsTUFBTTtRQUNaLE9BQU8sRUFBRSxRQUFRO0tBQ2xCO0lBQ0QsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxTQUFTO0tBQ25CO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixJQUFJLEVBQUUsVUFBVTtRQUNoQixPQUFPLEVBQUUsVUFBVTtLQUNwQjtDQUNGLENBQUM7QUFNRjtJQXVCRTtRQXJCUyxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFHdEIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixpQkFBWSxHQUFHLEtBQUssQ0FB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QU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzttRUFBc0I7SUFDakI7UUFBMUMsU0FBUyxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzt1RUFBeUI7SUFDN0I7UUFBckMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztrRUFBcUI7SUFoQi9DLGdDQUFnQztRQUw1QyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsNEJBQTRCO1lBQ3RDLG1yREFBMEQ7O1NBRTNELENBQUM7T0FDVyxnQ0FBZ0MsQ0FtRTVDO0lBQUQsdUNBQUM7Q0FBQSxBQW5FRCxJQW1FQztTQW5FWSxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE91dHB1dCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSwgTWF0VGFibGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuZXhwb3J0IGNvbnN0IGJ1dHRvbnNDb25maWcgPSB7XHJcbiAgcmVhZDoge1xyXG4gICAgaWNvbjogJ3NlYXJjaCcsXHJcbiAgICBuYW1lOiAncmVhZCcsXHJcbiAgICB0b29sdGlwOiAnVmlzdWFsaXphcicsXHJcbiAgfSxcclxuICB1cGRhdGU6IHtcclxuICAgIGljb246ICdlZGl0JyxcclxuICAgIG5hbWU6ICdlZGl0JyxcclxuICAgIHRvb2x0aXA6ICdFZGl0YXInLFxyXG4gIH0sXHJcbiAgZGVsZXRlOiB7XHJcbiAgICBpY29uOiAnZGVsZXRlJyxcclxuICAgIG5hbWU6ICdkZWxldGUnLFxyXG4gICAgdG9vbHRpcDogJ0V4Y2x1aXInLFxyXG4gIH0sXHJcbiAgZG93bmxvYWQ6IHtcclxuICAgIGljb246ICdhcnJvd19kb3dud2FyZCcsXHJcbiAgICBuYW1lOiAnZG93bmxvYWQnLFxyXG4gICAgdG9vbHRpcDogJ0Rvd25sb2FkJyxcclxuICB9LFxyXG59O1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25neC1tYXRlcmlhbC1keW5hbWljLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmd4LW1hdGVyaWFsLWR5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25neC1tYXRlcmlhbC1keW5hbWljLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXRlcmlhbER5bmFtaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgZGF0YVNvdXJjZTtcclxuICBASW5wdXQoKSBkaXNwbGF5ZWRDb2x1bW5zID0gW107XHJcbiAgQElucHV0KCkgYWN0aW9ucztcclxuICBASW5wdXQoKSBjb25maWdFZGl0Um93O1xyXG4gIEBJbnB1dCgpIGZpbHRlciA9IHRydWU7XHJcbiAgQElucHV0KCkgYnV0dG9uQWRkTmV3SXRlbSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGJ1dHRvbkV4cG9ydCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNvbXBvbmVudE5hbWU7XHJcblxyXG4gIEBJbnB1dCgpIGJ1dHRvbnNDb25maWcgPSBidXR0b25zQ29uZmlnO1xyXG5cclxuICBAT3V0cHV0KCkgc2VuZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFRhYmxlLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZTogTWF0VGFibGU8YW55PjtcclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IHRydWUgfSkgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0LCB7IHN0YXRpYzogdHJ1ZSB9KSBzb3J0OiBNYXRUYWJsZTxhbnk+O1xyXG5cclxuICBwdWJsaWMgbG9hZGluZyA9IHRydWU7XHJcbiAgcHVibGljIGFjdGlvbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5zT2JqZWN0OiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBkYWRvcztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc3BsYXllZENvbHVtbnMpIHtcclxuICAgICAgdGhpcy5hZGRBY3Rpb25Db2x1bW4oKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UpIHtcclxuICAgICAgdGhpcy5jcmVhdGVEYXRhc291cmNlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVEYXRhc291cmNlKCkge1xyXG4gICAgdGhpcy5kYWRvcyA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8YW55Pih0aGlzLmRhdGFTb3VyY2UpO1xyXG4gICAgdGhpcy5kYWRvcy5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICAgIHRoaXMuZGFkb3Muc29ydCA9IHRoaXMuc29ydDtcclxuICAgIHRoaXMuc2hvd1RhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zT2JqZWN0ID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLm1hcCgoY29sKSA9PlxyXG4gICAgICB0eXBlb2YgY29sLmNvbHVtbiA9PT0gJ251bWJlcicgPyBjb2wuY29sdW1uLnRvU3RyaW5nKCkgOiBjb2wuY29sdW1uXHJcbiAgICApO1xyXG4gICAgdGhpcy5zaG93VGFibGUoKTtcclxuICB9XHJcblxyXG4gIHNob3dUYWJsZSgpIHtcclxuICAgIGlmICh0aGlzLmRhZG9zICYmIHRoaXMuZGlzcGxheWVkQ29sdW1ucyAmJiB0aGlzLmRpc3BsYXllZENvbHVtbnNPYmplY3QpIHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbmRBY3Rpb24oYWN0aW9uLCByb3c/LCBpbmRleD8pIHtcclxuICAgIGNvbnN0IGNvbnRlbnQ6IGFueSA9IHsgYWN0aW9uLCByb3csIGluZGV4IH07XHJcbiAgICB0aGlzLnNlbmRDbGljay5lbWl0KGNvbnRlbnQpO1xyXG4gIH1cclxuICBhZGRBY3Rpb25Db2x1bW4oKSB7XHJcbiAgICBpZiAodGhpcy5hY3Rpb25zKSB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbkFjdGlvbiA9IHsgY29sdW1uOiAnYWN0aW9ucycsIHRpdGxlOiAnQcOnw7VlcycgfTtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gWy4uLnRoaXMuZGlzcGxheWVkQ29sdW1ucywgY29sdW1uQWN0aW9uXTtcclxuICAgIH1cclxuICAgIHRoaXMuY3JlYXRlQ29sdW1ucygpO1xyXG4gIH1cclxuICBhcHBseUZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRhZG9zLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=