material-dynamic-table
Version:
Dynamic table component for angular built on top of angular material table. It offers sorting, pagination, filtering per column and the ability to specify content types and components used for displaying them.
86 lines • 10.3 kB
JavaScript
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MatColumnResizeModule } from './column-resize/column-resize-module';
import { MatTableModule } from '@angular/material/table';
import { MatSortModule } from '@angular/material/sort';
import { MatPaginatorModule } from '@angular/material/paginator';
import { MatIconModule } from '@angular/material/icon';
import { MatDialogModule } from '@angular/material/dialog';
import { MatTooltipModule } from '@angular/material/tooltip';
import { MdtMultiSort } from './multi-sort/multi-sort.directive';
import { MdtMultiSortHeader } from './multi-sort/multi-sort-header';
import { DynamicTableComponent } from './dynamic-table.component';
import { TableCellComponent } from './table-cell/table-cell.component';
import { CellService } from './table-cell/cell-types/cell.service';
import { CellDirective } from './table-cell/cell.directive';
import { ColumnFilterService } from './table-cell/cell-types/column-filter.service';
import { TextCellComponent } from './table-cell/cell-types/text-cell.component';
import { DateCellComponent } from './table-cell/cell-types/date-cell.component';
import * as i0 from "@angular/core";
import * as i1 from "./table-cell/cell-types/cell.service";
export { CellService, CellDirective, ColumnFilterService };
export { ColumnFilter } from './column-filter.model';
export { ColumnConfig } from './column-config.model';
export class DynamicTableModule {
constructor(cellService) {
this.cellService = cellService;
cellService.registerCell('string', TextCellComponent);
cellService.registerCell('date', DateCellComponent);
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicTableModule, deps: [{ token: i1.CellService }], target: i0.ɵɵFactoryTarget.NgModule }); }
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DynamicTableModule, declarations: [DynamicTableComponent,
TableCellComponent,
CellDirective,
TextCellComponent,
DateCellComponent,
MdtMultiSort,
MdtMultiSortHeader], imports: [CommonModule,
MatTableModule,
MatSortModule,
MatPaginatorModule,
MatIconModule,
MatDialogModule,
MatTooltipModule,
MatColumnResizeModule], exports: [DynamicTableComponent, MdtMultiSort, MatColumnResizeModule] }); }
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicTableModule, providers: [
CellService,
ColumnFilterService
], imports: [CommonModule,
MatTableModule,
MatSortModule,
MatPaginatorModule,
MatIconModule,
MatDialogModule,
MatTooltipModule,
MatColumnResizeModule, MatColumnResizeModule] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicTableModule, decorators: [{
type: NgModule,
args: [{
imports: [
CommonModule,
MatTableModule,
MatSortModule,
MatPaginatorModule,
MatIconModule,
MatDialogModule,
MatTooltipModule,
MatColumnResizeModule
],
declarations: [
DynamicTableComponent,
TableCellComponent,
CellDirective,
TextCellComponent,
DateCellComponent,
MdtMultiSort,
MdtMultiSortHeader
],
exports: [DynamicTableComponent, MdtMultiSort, MatColumnResizeModule],
providers: [
CellService,
ColumnFilterService
]
}]
}], ctorParameters: () => [{ type: i1.CellService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1keW5hbWljLXRhYmxlL3NyYy9saWIvZHluYW1pYy10YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBUXBGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7QUFQaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBZ0NyRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ25ELFdBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDdEQsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUN0RCxDQUFDO2tJQUpVLGtCQUFrQjttSUFBbEIsa0JBQWtCLGlCQWQzQixxQkFBcUI7WUFDckIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixrQkFBa0IsYUFoQmxCLFlBQVk7WUFDWixjQUFjO1lBQ2QsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixxQkFBcUIsYUFXYixxQkFBcUIsRUFBRSxZQUFZLEVBQUUscUJBQXFCO21JQU16RCxrQkFBa0IsYUFMbEI7WUFDVCxXQUFXO1lBQ1gsbUJBQW1CO1NBQ3BCLFlBdEJDLFlBQVk7WUFDWixjQUFjO1lBQ2QsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixxQkFBcUIsRUFXd0IscUJBQXFCOzs0RkFNekQsa0JBQWtCO2tCQTFCOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixxQkFBcUI7cUJBQ3RCO29CQUNELFlBQVksRUFBRTt3QkFDWixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsQ0FBQztvQkFDckUsU0FBUyxFQUFFO3dCQUNULFdBQVc7d0JBQ1gsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBNYXRDb2x1bW5SZXNpemVNb2R1bGUgfSBmcm9tICcuL2NvbHVtbi1yZXNpemUvY29sdW1uLXJlc2l6ZS1tb2R1bGUnO1xyXG5cclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1kdE11bHRpU29ydCB9IGZyb20gJy4vbXVsdGktc29ydC9tdWx0aS1zb3J0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1kdE11bHRpU29ydEhlYWRlciB9IGZyb20gJy4vbXVsdGktc29ydC9tdWx0aS1zb3J0LWhlYWRlcic7XHJcblxyXG5pbXBvcnQgeyBEeW5hbWljVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IENlbGxTZXJ2aWNlIH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvY2VsbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbHVtbkZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IHsgQ2VsbFNlcnZpY2UsIENlbGxEaXJlY3RpdmUsIENvbHVtbkZpbHRlclNlcnZpY2UgfTtcclxuZXhwb3J0IHsgQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuY29tcG9uZW50JztcclxuZXhwb3J0IHsgQ29sdW1uRmlsdGVyIH0gZnJvbSAnLi9jb2x1bW4tZmlsdGVyLm1vZGVsJztcclxuZXhwb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcclxuZXhwb3J0IHsgRmlsdGVyRGVzY3JpcHRpb24gfSBmcm9tICcuL2ZpbHRlci1kZXNjcmlwdGlvbic7XHJcblxyXG5pbXBvcnQgeyBUZXh0Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL3RleHQtY2VsbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2RhdGUtY2VsbC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE1hdFNvcnRNb2R1bGUsXHJcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdENvbHVtblJlc2l6ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBEeW5hbWljVGFibGVDb21wb25lbnQsXHJcbiAgICBUYWJsZUNlbGxDb21wb25lbnQsXHJcbiAgICBDZWxsRGlyZWN0aXZlLFxyXG4gICAgVGV4dENlbGxDb21wb25lbnQsXHJcbiAgICBEYXRlQ2VsbENvbXBvbmVudCxcclxuICAgIE1kdE11bHRpU29ydCxcclxuICAgIE1kdE11bHRpU29ydEhlYWRlclxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0R5bmFtaWNUYWJsZUNvbXBvbmVudCwgTWR0TXVsdGlTb3J0LCBNYXRDb2x1bW5SZXNpemVNb2R1bGVdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQ2VsbFNlcnZpY2UsXHJcbiAgICBDb2x1bW5GaWx0ZXJTZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlTW9kdWxlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNlbGxTZXJ2aWNlOiBDZWxsU2VydmljZSkge1xyXG4gICAgY2VsbFNlcnZpY2UucmVnaXN0ZXJDZWxsKCdzdHJpbmcnLCBUZXh0Q2VsbENvbXBvbmVudCk7XHJcbiAgICBjZWxsU2VydmljZS5yZWdpc3RlckNlbGwoJ2RhdGUnLCBEYXRlQ2VsbENvbXBvbmVudCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==