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.
30 lines • 3.49 kB
JavaScript
import { Component, Input } from '@angular/core';
import { ColumnConfig } from '../../column-config.model';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class DateCellComponent {
constructor() {
this.dateFormat = 'short';
}
ngOnInit() {
if (this.column.options) {
if (this.column.options.dateFormat) {
this.dateFormat = this.column.options.dateFormat;
}
}
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateCellComponent, selector: "mdt-date-cell", inputs: { column: "column", row: "row" }, ngImport: i0, template: '{{ row[column.name] | date:dateFormat }}', isInline: true, dependencies: [{ kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateCellComponent, decorators: [{
type: Component,
args: [{
selector: 'mdt-date-cell',
template: '{{ row[column.name] | date:dateFormat }}'
}]
}], propDecorators: { column: [{
type: Input
}], row: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvc3JjL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvZGF0ZS1jZWxsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQU16RCxNQUFNLE9BQU8saUJBQWlCO0lBSjlCO1FBUUksZUFBVSxHQUFHLE9BQU8sQ0FBQztLQVN4QjtJQVBHLFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDckQsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO2tJQVpRLGlCQUFpQjtzSEFBakIsaUJBQWlCLCtGQUZoQiwwQ0FBMEM7OzRGQUUzQyxpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSwwQ0FBMEM7aUJBQ3ZEOzhCQUVZLE1BQU07c0JBQWQsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuLi8uLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdtZHQtZGF0ZS1jZWxsJyxcclxuICAgIHRlbXBsYXRlOiAne3sgcm93W2NvbHVtbi5uYW1lXSB8IGRhdGU6ZGF0ZUZvcm1hdCB9fSdcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbENvbXBvbmVudCwgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGNvbHVtbjogQ29sdW1uQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XHJcblxyXG4gICAgZGF0ZUZvcm1hdCA9ICdzaG9ydCc7XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29sdW1uLm9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uLm9wdGlvbnMuZGF0ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gdGhpcy5jb2x1bW4ub3B0aW9ucy5kYXRlRm9ybWF0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19