@ifsworld/granite-components 13.2.8 → 13.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, Input, QueryList, ViewEncapsulation, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, QueryList, ViewEncapsulation, } from '@angular/core';
2
2
  import { GraniteTableColumnDirective } from './column/table-column.directive';
3
3
  import { GraniteTableCellConstants } from './table-constants.library';
4
4
  import * as i0 from "@angular/core";
@@ -14,6 +14,8 @@ export class GraniteTableComponent {
14
14
  this.cd = cd;
15
15
  this.dataSource = [];
16
16
  this.horizontalScroll = false;
17
+ this.conditionalRowStyles = [];
18
+ this.rowClick = new EventEmitter();
17
19
  this.cellIdPrefix = GraniteTableCellConstants.CELL_ID_PREFIX;
18
20
  }
19
21
  ngAfterContentChecked() {
@@ -23,6 +25,14 @@ export class GraniteTableComponent {
23
25
  _trackColumnName(index, column) {
24
26
  return column.name;
25
27
  }
28
+ handleRowClick(event, row, rowIndex) {
29
+ this.rowClick.emit({ row, rowIndex });
30
+ }
31
+ getStyles(row, rowIndex) {
32
+ return this.conditionalRowStyles
33
+ .filter((item) => item.condition(row, rowIndex))
34
+ .reduce((acc, item) => ({ ...acc, ...item.styles }), {});
35
+ }
26
36
  refreshData() {
27
37
  this._columns = this.tableColumnsComponent.toArray();
28
38
  this._displayedColumns = this.tableColumnsComponent
@@ -30,19 +40,23 @@ export class GraniteTableComponent {
30
40
  .map((c) => c.name);
31
41
  }
32
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteTableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: GraniteTableComponent, selector: "granite-table", inputs: { dataSource: "dataSource", horizontalScroll: "horizontalScroll", trackBy: "trackBy" }, queries: [{ propertyName: "tableColumnsComponent", predicate: GraniteTableColumnDirective }], ngImport: i0, template: "<div\n class=\"cdk-table-wrapper\"\n data-fnd=\"granite-table-wrapper\"\n [class.horizontal-scroll]=\"horizontalScroll\"\n>\n <table\n class=\"granite-table\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackBy\"\n >\n <ng-container\n *ngFor=\"\n let column of _columns;\n trackBy: _trackColumnName;\n let columnIndex = index\n \"\n [cdkColumnDef]=\"column.name\"\n >\n <th\n tabindex=\"0\"\n cdk-header-cell\n *cdkHeaderCellDef\n data-fnd=\"data-granite-table-header-cell\"\n [graniteColumnSize]=\"column.size\"\n [attr.data-granite-table-header-cell]=\"column.name\"\n graniteTableHeaderCell\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.headerClass\"\n >\n {{ column.title ?? column.name | graniteTitle }}\n </th>\n\n <td\n tabindex=\"0\"\n cdk-cell\n *cdkCellDef=\"let row; let rowIndex = index\"\n data-fnd=\"data-granite-table-row-cell\"\n [attr.data-granite-table-cell]=\"column.name\"\n [graniteColumnSize]=\"column.size\"\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.class\"\n [id]=\"cellIdPrefix + '-' + rowIndex + '-' + columnIndex\"\n >\n <granite-table-data-cell\n [value]=\"row[column.name]\"\n [row]=\"row\"\n [column]=\"column\"\n [rowIndex]=\"rowIndex\"\n [columnIndex]=\"columnIndex\"\n [tableCellTemplateRef]=\"column.tableCellTemplateRef\"\n ></granite-table-data-cell>\n </td>\n </ng-container>\n\n <tr\n tabindex=\"0\"\n cdk-header-row\n *cdkHeaderRowDef=\"_displayedColumns\"\n data-fnd=\"data-granite-table-header\"\n ></tr>\n <tr\n tabindex=\"0\"\n cdk-row\n *cdkRowDef=\"let row; columns: _displayedColumns\"\n data-fnd=\"data-granite-table-row\"\n ></tr>\n </table>\n</div>\n", styles: [".granite-table tr>td.granite-table-cell-center-align,.granite-table tr>th.granite-table-cell-center-align{text-align:center}.granite-table tr>td.granite-table-cell-start-align,.granite-table tr>th.granite-table-cell-start-align{text-align:start}.granite-table tr>td.granite-table-cell-end-align,.granite-table tr>th.granite-table-cell-end-align{text-align:end}.granite-table [cdk-header-cell].column-size-sm,.granite-table [cdk-cell].column-size-sm{padding:.375rem .5rem}.granite-table [cdk-header-cell].column-size-md,.granite-table [cdk-cell].column-size-md{padding:.75rem 1rem}.granite-table [cdk-header-cell].column-size-lg,.granite-table [cdk-cell].column-size-lg{padding:.9375rem 1.25rem}.cdk-table-wrapper{width:100%;overflow-x:hidden}.cdk-table-wrapper .cdk-table{width:100%;border-spacing:0;white-space:nowrap}.cdk-table-wrapper .cdk-table .cdk-header-row,.cdk-table-wrapper .cdk-table cdk-cell{height:2.5rem}.cdk-table-wrapper .cdk-table .cdk-cell{background:var(--granite-color-background-variant)}.cdk-table-wrapper .cdk-table .cdk-header-cell,.cdk-table-wrapper .cdk-table cdk-cell{border:none;border-width:0}.cdk-table-wrapper .cdk-table .cdk-row,.cdk-table-wrapper .cdk-table .cdk-header-row{background:var(--granite-color-background-variant);height:2.5rem}.horizontal-scroll{overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: i2.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "directive", type: i2.CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: i2.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: i2.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: i2.CdkCell, selector: "cdk-cell, td[cdk-cell]" }, { kind: "component", type: i2.CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "directive", type: i2.CdkHeaderCell, selector: "cdk-header-cell, th[cdk-header-cell]" }, { kind: "component", type: i2.CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: i2.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "component", type: i3.GraniteTableHeaderCellComponent, selector: "th[graniteTableHeaderCell]" }, { kind: "component", type: i4.GraniteTableDataCellComponent, selector: "granite-table-data-cell", inputs: ["value", "rowIndex", "columnIndex", "row", "tableCellTemplateRef"] }, { kind: "directive", type: i5.GraniteCellAlignClassesDirective, selector: "[graniteCellAlignClasses]", inputs: ["graniteCellAlignClasses", "textAlign"] }, { kind: "directive", type: i6.GraniteColumnSizeDirective, selector: "[graniteColumnSize]", inputs: ["graniteColumnSize"] }, { kind: "pipe", type: i7.GraniteTitlePipe, name: "graniteTitle" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: GraniteTableComponent, selector: "granite-table", inputs: { dataSource: "dataSource", horizontalScroll: "horizontalScroll", trackBy: "trackBy", conditionalRowStyles: "conditionalRowStyles" }, outputs: { rowClick: "rowClick" }, queries: [{ propertyName: "tableColumnsComponent", predicate: GraniteTableColumnDirective }], ngImport: i0, template: "<div\n class=\"cdk-table-wrapper\"\n data-fnd=\"granite-table-wrapper\"\n [class.horizontal-scroll]=\"horizontalScroll\"\n>\n <table\n class=\"granite-table\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackBy\"\n >\n <ng-container\n *ngFor=\"\n let column of _columns;\n trackBy: _trackColumnName;\n let columnIndex = index\n \"\n [cdkColumnDef]=\"column.name\"\n >\n <th\n tabindex=\"0\"\n cdk-header-cell\n *cdkHeaderCellDef\n data-fnd=\"data-granite-table-header-cell\"\n [graniteColumnSize]=\"column.size\"\n [attr.data-granite-table-header-cell]=\"column.name\"\n graniteTableHeaderCell\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.headerClass\"\n >\n {{ column.title ?? column.name | graniteTitle }}\n </th>\n\n <td\n tabindex=\"0\"\n cdk-cell\n *cdkCellDef=\"let row; let rowIndex = index\"\n data-fnd=\"data-granite-table-row-cell\"\n [attr.data-granite-table-cell]=\"column.name\"\n [graniteColumnSize]=\"column.size\"\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.class\"\n [id]=\"cellIdPrefix + '-' + rowIndex + '-' + columnIndex\"\n >\n <granite-table-data-cell\n [value]=\"row[column.name]\"\n [row]=\"row\"\n [column]=\"column\"\n [rowIndex]=\"rowIndex\"\n [columnIndex]=\"columnIndex\"\n [tableCellTemplateRef]=\"column.tableCellTemplateRef\"\n ></granite-table-data-cell>\n </td>\n </ng-container>\n\n <tr\n tabindex=\"0\"\n cdk-header-row\n *cdkHeaderRowDef=\"_displayedColumns\"\n data-fnd=\"data-granite-table-header\"\n ></tr>\n <tr\n tabindex=\"0\"\n cdk-row\n *cdkRowDef=\"let row; let rowIndex = index; columns: _displayedColumns\"\n data-fnd=\"data-granite-table-row\"\n [ngStyle]=\"getStyles(row, rowIndex)\"\n (click)=\"handleRowClick($event, row, rowIndex)\"\n ></tr>\n </table>\n</div>\n", styles: [".granite-table tr>td.granite-table-cell-center-align,.granite-table tr>th.granite-table-cell-center-align{text-align:center}.granite-table tr>td.granite-table-cell-start-align,.granite-table tr>th.granite-table-cell-start-align{text-align:start}.granite-table tr>td.granite-table-cell-end-align,.granite-table tr>th.granite-table-cell-end-align{text-align:end}.granite-table [cdk-header-cell].column-size-sm,.granite-table [cdk-cell].column-size-sm{padding:.375rem .5rem}.granite-table [cdk-header-cell].column-size-md,.granite-table [cdk-cell].column-size-md{padding:.75rem 1rem}.granite-table [cdk-header-cell].column-size-lg,.granite-table [cdk-cell].column-size-lg{padding:.9375rem 1.25rem}.cdk-table-wrapper{width:100%;overflow-x:hidden}.cdk-table-wrapper .cdk-table{width:100%;border-spacing:0;white-space:nowrap}.cdk-table-wrapper .cdk-table .cdk-header-row,.cdk-table-wrapper .cdk-table cdk-cell{height:2.5rem}.cdk-table-wrapper .cdk-table .cdk-cell{background:transparent}.cdk-table-wrapper .cdk-table .cdk-header-cell,.cdk-table-wrapper .cdk-table cdk-cell{border:none;border-width:0}.cdk-table-wrapper .cdk-table .cdk-row,.cdk-table-wrapper .cdk-table .cdk-header-row{background:var(--granite-color-background-variant);height:2.5rem}.horizontal-scroll{overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: i2.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "directive", type: i2.CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: i2.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: i2.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: i2.CdkCell, selector: "cdk-cell, td[cdk-cell]" }, { kind: "component", type: i2.CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "directive", type: i2.CdkHeaderCell, selector: "cdk-header-cell, th[cdk-header-cell]" }, { kind: "component", type: i2.CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: i2.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "component", type: i3.GraniteTableHeaderCellComponent, selector: "th[graniteTableHeaderCell]" }, { kind: "component", type: i4.GraniteTableDataCellComponent, selector: "granite-table-data-cell", inputs: ["value", "rowIndex", "columnIndex", "row", "tableCellTemplateRef"] }, { kind: "directive", type: i5.GraniteCellAlignClassesDirective, selector: "[graniteCellAlignClasses]", inputs: ["graniteCellAlignClasses", "textAlign"] }, { kind: "directive", type: i6.GraniteColumnSizeDirective, selector: "[graniteColumnSize]", inputs: ["graniteColumnSize"] }, { kind: "pipe", type: i7.GraniteTitlePipe, name: "graniteTitle" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
34
44
  }
35
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteTableComponent, decorators: [{
36
46
  type: Component,
37
- args: [{ selector: 'granite-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"cdk-table-wrapper\"\n data-fnd=\"granite-table-wrapper\"\n [class.horizontal-scroll]=\"horizontalScroll\"\n>\n <table\n class=\"granite-table\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackBy\"\n >\n <ng-container\n *ngFor=\"\n let column of _columns;\n trackBy: _trackColumnName;\n let columnIndex = index\n \"\n [cdkColumnDef]=\"column.name\"\n >\n <th\n tabindex=\"0\"\n cdk-header-cell\n *cdkHeaderCellDef\n data-fnd=\"data-granite-table-header-cell\"\n [graniteColumnSize]=\"column.size\"\n [attr.data-granite-table-header-cell]=\"column.name\"\n graniteTableHeaderCell\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.headerClass\"\n >\n {{ column.title ?? column.name | graniteTitle }}\n </th>\n\n <td\n tabindex=\"0\"\n cdk-cell\n *cdkCellDef=\"let row; let rowIndex = index\"\n data-fnd=\"data-granite-table-row-cell\"\n [attr.data-granite-table-cell]=\"column.name\"\n [graniteColumnSize]=\"column.size\"\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.class\"\n [id]=\"cellIdPrefix + '-' + rowIndex + '-' + columnIndex\"\n >\n <granite-table-data-cell\n [value]=\"row[column.name]\"\n [row]=\"row\"\n [column]=\"column\"\n [rowIndex]=\"rowIndex\"\n [columnIndex]=\"columnIndex\"\n [tableCellTemplateRef]=\"column.tableCellTemplateRef\"\n ></granite-table-data-cell>\n </td>\n </ng-container>\n\n <tr\n tabindex=\"0\"\n cdk-header-row\n *cdkHeaderRowDef=\"_displayedColumns\"\n data-fnd=\"data-granite-table-header\"\n ></tr>\n <tr\n tabindex=\"0\"\n cdk-row\n *cdkRowDef=\"let row; columns: _displayedColumns\"\n data-fnd=\"data-granite-table-row\"\n ></tr>\n </table>\n</div>\n", styles: [".granite-table tr>td.granite-table-cell-center-align,.granite-table tr>th.granite-table-cell-center-align{text-align:center}.granite-table tr>td.granite-table-cell-start-align,.granite-table tr>th.granite-table-cell-start-align{text-align:start}.granite-table tr>td.granite-table-cell-end-align,.granite-table tr>th.granite-table-cell-end-align{text-align:end}.granite-table [cdk-header-cell].column-size-sm,.granite-table [cdk-cell].column-size-sm{padding:.375rem .5rem}.granite-table [cdk-header-cell].column-size-md,.granite-table [cdk-cell].column-size-md{padding:.75rem 1rem}.granite-table [cdk-header-cell].column-size-lg,.granite-table [cdk-cell].column-size-lg{padding:.9375rem 1.25rem}.cdk-table-wrapper{width:100%;overflow-x:hidden}.cdk-table-wrapper .cdk-table{width:100%;border-spacing:0;white-space:nowrap}.cdk-table-wrapper .cdk-table .cdk-header-row,.cdk-table-wrapper .cdk-table cdk-cell{height:2.5rem}.cdk-table-wrapper .cdk-table .cdk-cell{background:var(--granite-color-background-variant)}.cdk-table-wrapper .cdk-table .cdk-header-cell,.cdk-table-wrapper .cdk-table cdk-cell{border:none;border-width:0}.cdk-table-wrapper .cdk-table .cdk-row,.cdk-table-wrapper .cdk-table .cdk-header-row{background:var(--granite-color-background-variant);height:2.5rem}.horizontal-scroll{overflow-x:auto}\n"] }]
47
+ args: [{ selector: 'granite-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"cdk-table-wrapper\"\n data-fnd=\"granite-table-wrapper\"\n [class.horizontal-scroll]=\"horizontalScroll\"\n>\n <table\n class=\"granite-table\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackBy\"\n >\n <ng-container\n *ngFor=\"\n let column of _columns;\n trackBy: _trackColumnName;\n let columnIndex = index\n \"\n [cdkColumnDef]=\"column.name\"\n >\n <th\n tabindex=\"0\"\n cdk-header-cell\n *cdkHeaderCellDef\n data-fnd=\"data-granite-table-header-cell\"\n [graniteColumnSize]=\"column.size\"\n [attr.data-granite-table-header-cell]=\"column.name\"\n graniteTableHeaderCell\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.headerClass\"\n >\n {{ column.title ?? column.name | graniteTitle }}\n </th>\n\n <td\n tabindex=\"0\"\n cdk-cell\n *cdkCellDef=\"let row; let rowIndex = index\"\n data-fnd=\"data-granite-table-row-cell\"\n [attr.data-granite-table-cell]=\"column.name\"\n [graniteColumnSize]=\"column.size\"\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.class\"\n [id]=\"cellIdPrefix + '-' + rowIndex + '-' + columnIndex\"\n >\n <granite-table-data-cell\n [value]=\"row[column.name]\"\n [row]=\"row\"\n [column]=\"column\"\n [rowIndex]=\"rowIndex\"\n [columnIndex]=\"columnIndex\"\n [tableCellTemplateRef]=\"column.tableCellTemplateRef\"\n ></granite-table-data-cell>\n </td>\n </ng-container>\n\n <tr\n tabindex=\"0\"\n cdk-header-row\n *cdkHeaderRowDef=\"_displayedColumns\"\n data-fnd=\"data-granite-table-header\"\n ></tr>\n <tr\n tabindex=\"0\"\n cdk-row\n *cdkRowDef=\"let row; let rowIndex = index; columns: _displayedColumns\"\n data-fnd=\"data-granite-table-row\"\n [ngStyle]=\"getStyles(row, rowIndex)\"\n (click)=\"handleRowClick($event, row, rowIndex)\"\n ></tr>\n </table>\n</div>\n", styles: [".granite-table tr>td.granite-table-cell-center-align,.granite-table tr>th.granite-table-cell-center-align{text-align:center}.granite-table tr>td.granite-table-cell-start-align,.granite-table tr>th.granite-table-cell-start-align{text-align:start}.granite-table tr>td.granite-table-cell-end-align,.granite-table tr>th.granite-table-cell-end-align{text-align:end}.granite-table [cdk-header-cell].column-size-sm,.granite-table [cdk-cell].column-size-sm{padding:.375rem .5rem}.granite-table [cdk-header-cell].column-size-md,.granite-table [cdk-cell].column-size-md{padding:.75rem 1rem}.granite-table [cdk-header-cell].column-size-lg,.granite-table [cdk-cell].column-size-lg{padding:.9375rem 1.25rem}.cdk-table-wrapper{width:100%;overflow-x:hidden}.cdk-table-wrapper .cdk-table{width:100%;border-spacing:0;white-space:nowrap}.cdk-table-wrapper .cdk-table .cdk-header-row,.cdk-table-wrapper .cdk-table cdk-cell{height:2.5rem}.cdk-table-wrapper .cdk-table .cdk-cell{background:transparent}.cdk-table-wrapper .cdk-table .cdk-header-cell,.cdk-table-wrapper .cdk-table cdk-cell{border:none;border-width:0}.cdk-table-wrapper .cdk-table .cdk-row,.cdk-table-wrapper .cdk-table .cdk-header-row{background:var(--granite-color-background-variant);height:2.5rem}.horizontal-scroll{overflow-x:auto}\n"] }]
38
48
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { dataSource: [{
39
49
  type: Input
40
50
  }], horizontalScroll: [{
41
51
  type: Input
42
52
  }], trackBy: [{
43
53
  type: Input
54
+ }], conditionalRowStyles: [{
55
+ type: Input
56
+ }], rowClick: [{
57
+ type: Output
44
58
  }], tableColumnsComponent: [{
45
59
  type: ContentChildren,
46
60
  args: [GraniteTableColumnDirective]
47
61
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvdGFibGUvc3JjL2xpYi90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy90YWJsZS9zcmMvbGliL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7OztBQVN0RSxNQUFNLE9BQU8scUJBQXFCO0lBa0JoQyxZQUFvQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWhCekMsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUd2QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFRaEIsaUJBQVksR0FBRyx5QkFBeUIsQ0FBQyxjQUFjLENBQUM7SUFLckIsQ0FBQztJQUU3QyxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWEsRUFBRSxNQUFtQztRQUNqRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUI7YUFDaEQsT0FBTyxFQUFFO2FBQ1QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQzs4R0FsQ1UscUJBQXFCO2tHQUFyQixxQkFBcUIsMkxBVWYsMkJBQTJCLDZCQ2hDOUMsNi9EQXVFQTs7MkZEakRhLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07c0ZBSS9DLFVBQVU7c0JBRFQsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4scUJBQXFCO3NCQURwQixlQUFlO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LFxuICBRdWVyeUxpc3QsXG4gIFRyYWNrQnlGdW5jdGlvbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBHcmFuaXRlVGFibGVDb2x1bW5EaXJlY3RpdmUgfSBmcm9tICcuL2NvbHVtbi90YWJsZS1jb2x1bW4uZGlyZWN0aXZlJztcbmltcG9ydCB7IEdyYW5pdGVUYWJsZUNlbGxDb25zdGFudHMgfSBmcm9tICcuL3RhYmxlLWNvbnN0YW50cy5saWJyYXJ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ3Jhbml0ZS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlVGFibGVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgQElucHV0KClcbiAgZGF0YVNvdXJjZTogYW55W10gPSBbXTtcblxuICBASW5wdXQoKVxuICBob3Jpem9udGFsU2Nyb2xsID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgdHJhY2tCeTogVHJhY2tCeUZ1bmN0aW9uPFQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oR3Jhbml0ZVRhYmxlQ29sdW1uRGlyZWN0aXZlKVxuICB0YWJsZUNvbHVtbnNDb21wb25lbnQ6IFF1ZXJ5TGlzdDxHcmFuaXRlVGFibGVDb2x1bW5EaXJlY3RpdmU+O1xuXG4gIHJlYWRvbmx5IGNlbGxJZFByZWZpeCA9IEdyYW5pdGVUYWJsZUNlbGxDb25zdGFudHMuQ0VMTF9JRF9QUkVGSVg7XG5cbiAgX2NvbHVtbnM6IEdyYW5pdGVUYWJsZUNvbHVtbkRpcmVjdGl2ZVtdO1xuICBfZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMucmVmcmVzaERhdGEoKTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgX3RyYWNrQ29sdW1uTmFtZShpbmRleDogbnVtYmVyLCBjb2x1bW46IEdyYW5pdGVUYWJsZUNvbHVtbkRpcmVjdGl2ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb2x1bW5zID0gdGhpcy50YWJsZUNvbHVtbnNDb21wb25lbnQudG9BcnJheSgpO1xuICAgIHRoaXMuX2Rpc3BsYXllZENvbHVtbnMgPSB0aGlzLnRhYmxlQ29sdW1uc0NvbXBvbmVudFxuICAgICAgLnRvQXJyYXkoKVxuICAgICAgLm1hcCgoYykgPT4gYy5uYW1lKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNkay10YWJsZS13cmFwcGVyXCJcbiAgZGF0YS1mbmQ9XCJncmFuaXRlLXRhYmxlLXdyYXBwZXJcIlxuICBbY2xhc3MuaG9yaXpvbnRhbC1zY3JvbGxdPVwiaG9yaXpvbnRhbFNjcm9sbFwiXG4+XG4gIDx0YWJsZVxuICAgIGNsYXNzPVwiZ3Jhbml0ZS10YWJsZVwiXG4gICAgY2RrLXRhYmxlXG4gICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXG4gICAgW3RyYWNrQnldPVwidHJhY2tCeVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGNvbHVtbiBvZiBfY29sdW1ucztcbiAgICAgICAgdHJhY2tCeTogX3RyYWNrQ29sdW1uTmFtZTtcbiAgICAgICAgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXhcbiAgICAgIFwiXG4gICAgICBbY2RrQ29sdW1uRGVmXT1cImNvbHVtbi5uYW1lXCJcbiAgICA+XG4gICAgICA8dGhcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgY2RrLWhlYWRlci1jZWxsXG4gICAgICAgICpjZGtIZWFkZXJDZWxsRGVmXG4gICAgICAgIGRhdGEtZm5kPVwiZGF0YS1ncmFuaXRlLXRhYmxlLWhlYWRlci1jZWxsXCJcbiAgICAgICAgW2dyYW5pdGVDb2x1bW5TaXplXT1cImNvbHVtbi5zaXplXCJcbiAgICAgICAgW2F0dHIuZGF0YS1ncmFuaXRlLXRhYmxlLWhlYWRlci1jZWxsXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgICAgZ3Jhbml0ZVRhYmxlSGVhZGVyQ2VsbFxuICAgICAgICBncmFuaXRlQ2VsbEFsaWduQ2xhc3Nlc1xuICAgICAgICBbdGV4dEFsaWduXT1cImNvbHVtbi50ZXh0QWxpZ25cIlxuICAgICAgICBbY2xhc3NdPVwiY29sdW1uLmhlYWRlckNsYXNzXCJcbiAgICAgID5cbiAgICAgICAge3sgY29sdW1uLnRpdGxlID8/IGNvbHVtbi5uYW1lIHwgZ3Jhbml0ZVRpdGxlIH19XG4gICAgICA8L3RoPlxuXG4gICAgICA8dGRcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgY2RrLWNlbGxcbiAgICAgICAgKmNka0NlbGxEZWY9XCJsZXQgcm93OyBsZXQgcm93SW5kZXggPSBpbmRleFwiXG4gICAgICAgIGRhdGEtZm5kPVwiZGF0YS1ncmFuaXRlLXRhYmxlLXJvdy1jZWxsXCJcbiAgICAgICAgW2F0dHIuZGF0YS1ncmFuaXRlLXRhYmxlLWNlbGxdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICBbZ3Jhbml0ZUNvbHVtblNpemVdPVwiY29sdW1uLnNpemVcIlxuICAgICAgICBncmFuaXRlQ2VsbEFsaWduQ2xhc3Nlc1xuICAgICAgICBbdGV4dEFsaWduXT1cImNvbHVtbi50ZXh0QWxpZ25cIlxuICAgICAgICBbY2xhc3NdPVwiY29sdW1uLmNsYXNzXCJcbiAgICAgICAgW2lkXT1cImNlbGxJZFByZWZpeCArICctJyArIHJvd0luZGV4ICsgJy0nICsgY29sdW1uSW5kZXhcIlxuICAgICAgPlxuICAgICAgICA8Z3Jhbml0ZS10YWJsZS1kYXRhLWNlbGxcbiAgICAgICAgICBbdmFsdWVdPVwicm93W2NvbHVtbi5uYW1lXVwiXG4gICAgICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICBbcm93SW5kZXhdPVwicm93SW5kZXhcIlxuICAgICAgICAgIFtjb2x1bW5JbmRleF09XCJjb2x1bW5JbmRleFwiXG4gICAgICAgICAgW3RhYmxlQ2VsbFRlbXBsYXRlUmVmXT1cImNvbHVtbi50YWJsZUNlbGxUZW1wbGF0ZVJlZlwiXG4gICAgICAgID48L2dyYW5pdGUtdGFibGUtZGF0YS1jZWxsPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDx0clxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIGNkay1oZWFkZXItcm93XG4gICAgICAqY2RrSGVhZGVyUm93RGVmPVwiX2Rpc3BsYXllZENvbHVtbnNcIlxuICAgICAgZGF0YS1mbmQ9XCJkYXRhLWdyYW5pdGUtdGFibGUtaGVhZGVyXCJcbiAgICA+PC90cj5cbiAgICA8dHJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBjZGstcm93XG4gICAgICAqY2RrUm93RGVmPVwibGV0IHJvdzsgY29sdW1uczogX2Rpc3BsYXllZENvbHVtbnNcIlxuICAgICAgZGF0YS1mbmQ9XCJkYXRhLWdyYW5pdGUtdGFibGUtcm93XCJcbiAgICA+PC90cj5cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvdGFibGUvc3JjL2xpYi90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy90YWJsZS9zcmMvbGliL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBVXRFLE1BQU0sT0FBTyxxQkFBcUI7SUF3QmhDLFlBQW9CLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBdEJ6QyxlQUFVLEdBQVEsRUFBRSxDQUFDO1FBR3JCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQU16Qix5QkFBb0IsR0FBcUMsRUFBRSxDQUFDO1FBRzVELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBS3JCLGlCQUFZLEdBQUcseUJBQXlCLENBQUMsY0FBYyxDQUFDO0lBS3JCLENBQUM7SUFFN0MscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsTUFBbUM7UUFDakUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBWSxFQUFFLEdBQU0sRUFBRSxRQUFnQjtRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBTSxFQUFFLFFBQWdCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQjthQUM3QixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQy9DLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMscUJBQXFCO2FBQ2hELE9BQU8sRUFBRTthQUNULEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OEdBbERVLHFCQUFxQjtrR0FBckIscUJBQXFCLDRRQWdCZiwyQkFBMkIsNkJDekM5QywwbkVBeUVBOzsyRkRoRGEscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzRkFJL0MsVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxNQUFNO2dCQUlQLHFCQUFxQjtzQkFEcEIsZUFBZTt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEdyYW5pdGVUYWJsZUNvbHVtbkRpcmVjdGl2ZSB9IGZyb20gJy4vY29sdW1uL3RhYmxlLWNvbHVtbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgR3Jhbml0ZVRhYmxlQ2VsbENvbnN0YW50cyB9IGZyb20gJy4vdGFibGUtY29uc3RhbnRzLmxpYnJhcnknO1xuaW1wb3J0IHsgR3Jhbml0ZVRhYmxlUm93U3R5bGVzSW50ZXJmYWNlIH0gZnJvbSAnLi90YWJsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYW5pdGUtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgR3Jhbml0ZVRhYmxlQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gIEBJbnB1dCgpXG4gIGRhdGFTb3VyY2U6IFRbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGhvcml6b250YWxTY3JvbGwgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICB0cmFja0J5OiBUcmFja0J5RnVuY3Rpb248VD47XG5cbiAgQElucHV0KClcbiAgY29uZGl0aW9uYWxSb3dTdHlsZXM6IEdyYW5pdGVUYWJsZVJvd1N0eWxlc0ludGVyZmFjZVtdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIHJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oR3Jhbml0ZVRhYmxlQ29sdW1uRGlyZWN0aXZlKVxuICB0YWJsZUNvbHVtbnNDb21wb25lbnQ6IFF1ZXJ5TGlzdDxHcmFuaXRlVGFibGVDb2x1bW5EaXJlY3RpdmU+O1xuXG4gIHJlYWRvbmx5IGNlbGxJZFByZWZpeCA9IEdyYW5pdGVUYWJsZUNlbGxDb25zdGFudHMuQ0VMTF9JRF9QUkVGSVg7XG5cbiAgX2NvbHVtbnM6IEdyYW5pdGVUYWJsZUNvbHVtbkRpcmVjdGl2ZVtdO1xuICBfZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMucmVmcmVzaERhdGEoKTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgX3RyYWNrQ29sdW1uTmFtZShpbmRleDogbnVtYmVyLCBjb2x1bW46IEdyYW5pdGVUYWJsZUNvbHVtbkRpcmVjdGl2ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICB9XG5cbiAgaGFuZGxlUm93Q2xpY2soZXZlbnQ6IEV2ZW50LCByb3c6IFQsIHJvd0luZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQoeyByb3csIHJvd0luZGV4IH0pO1xuICB9XG5cbiAgZ2V0U3R5bGVzKHJvdzogVCwgcm93SW5kZXg6IG51bWJlcik6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbmFsUm93U3R5bGVzXG4gICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmNvbmRpdGlvbihyb3csIHJvd0luZGV4KSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgaXRlbSkgPT4gKHsgLi4uYWNjLCAuLi5pdGVtLnN0eWxlcyB9KSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb2x1bW5zID0gdGhpcy50YWJsZUNvbHVtbnNDb21wb25lbnQudG9BcnJheSgpO1xuICAgIHRoaXMuX2Rpc3BsYXllZENvbHVtbnMgPSB0aGlzLnRhYmxlQ29sdW1uc0NvbXBvbmVudFxuICAgICAgLnRvQXJyYXkoKVxuICAgICAgLm1hcCgoYykgPT4gYy5uYW1lKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNkay10YWJsZS13cmFwcGVyXCJcbiAgZGF0YS1mbmQ9XCJncmFuaXRlLXRhYmxlLXdyYXBwZXJcIlxuICBbY2xhc3MuaG9yaXpvbnRhbC1zY3JvbGxdPVwiaG9yaXpvbnRhbFNjcm9sbFwiXG4+XG4gIDx0YWJsZVxuICAgIGNsYXNzPVwiZ3Jhbml0ZS10YWJsZVwiXG4gICAgY2RrLXRhYmxlXG4gICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXG4gICAgW3RyYWNrQnldPVwidHJhY2tCeVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGNvbHVtbiBvZiBfY29sdW1ucztcbiAgICAgICAgdHJhY2tCeTogX3RyYWNrQ29sdW1uTmFtZTtcbiAgICAgICAgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXhcbiAgICAgIFwiXG4gICAgICBbY2RrQ29sdW1uRGVmXT1cImNvbHVtbi5uYW1lXCJcbiAgICA+XG4gICAgICA8dGhcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgY2RrLWhlYWRlci1jZWxsXG4gICAgICAgICpjZGtIZWFkZXJDZWxsRGVmXG4gICAgICAgIGRhdGEtZm5kPVwiZGF0YS1ncmFuaXRlLXRhYmxlLWhlYWRlci1jZWxsXCJcbiAgICAgICAgW2dyYW5pdGVDb2x1bW5TaXplXT1cImNvbHVtbi5zaXplXCJcbiAgICAgICAgW2F0dHIuZGF0YS1ncmFuaXRlLXRhYmxlLWhlYWRlci1jZWxsXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgICAgZ3Jhbml0ZVRhYmxlSGVhZGVyQ2VsbFxuICAgICAgICBncmFuaXRlQ2VsbEFsaWduQ2xhc3Nlc1xuICAgICAgICBbdGV4dEFsaWduXT1cImNvbHVtbi50ZXh0QWxpZ25cIlxuICAgICAgICBbY2xhc3NdPVwiY29sdW1uLmhlYWRlckNsYXNzXCJcbiAgICAgID5cbiAgICAgICAge3sgY29sdW1uLnRpdGxlID8/IGNvbHVtbi5uYW1lIHwgZ3Jhbml0ZVRpdGxlIH19XG4gICAgICA8L3RoPlxuXG4gICAgICA8dGRcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgY2RrLWNlbGxcbiAgICAgICAgKmNka0NlbGxEZWY9XCJsZXQgcm93OyBsZXQgcm93SW5kZXggPSBpbmRleFwiXG4gICAgICAgIGRhdGEtZm5kPVwiZGF0YS1ncmFuaXRlLXRhYmxlLXJvdy1jZWxsXCJcbiAgICAgICAgW2F0dHIuZGF0YS1ncmFuaXRlLXRhYmxlLWNlbGxdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICBbZ3Jhbml0ZUNvbHVtblNpemVdPVwiY29sdW1uLnNpemVcIlxuICAgICAgICBncmFuaXRlQ2VsbEFsaWduQ2xhc3Nlc1xuICAgICAgICBbdGV4dEFsaWduXT1cImNvbHVtbi50ZXh0QWxpZ25cIlxuICAgICAgICBbY2xhc3NdPVwiY29sdW1uLmNsYXNzXCJcbiAgICAgICAgW2lkXT1cImNlbGxJZFByZWZpeCArICctJyArIHJvd0luZGV4ICsgJy0nICsgY29sdW1uSW5kZXhcIlxuICAgICAgPlxuICAgICAgICA8Z3Jhbml0ZS10YWJsZS1kYXRhLWNlbGxcbiAgICAgICAgICBbdmFsdWVdPVwicm93W2NvbHVtbi5uYW1lXVwiXG4gICAgICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICBbcm93SW5kZXhdPVwicm93SW5kZXhcIlxuICAgICAgICAgIFtjb2x1bW5JbmRleF09XCJjb2x1bW5JbmRleFwiXG4gICAgICAgICAgW3RhYmxlQ2VsbFRlbXBsYXRlUmVmXT1cImNvbHVtbi50YWJsZUNlbGxUZW1wbGF0ZVJlZlwiXG4gICAgICAgID48L2dyYW5pdGUtdGFibGUtZGF0YS1jZWxsPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDx0clxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIGNkay1oZWFkZXItcm93XG4gICAgICAqY2RrSGVhZGVyUm93RGVmPVwiX2Rpc3BsYXllZENvbHVtbnNcIlxuICAgICAgZGF0YS1mbmQ9XCJkYXRhLWdyYW5pdGUtdGFibGUtaGVhZGVyXCJcbiAgICA+PC90cj5cbiAgICA8dHJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBjZGstcm93XG4gICAgICAqY2RrUm93RGVmPVwibGV0IHJvdzsgbGV0IHJvd0luZGV4ID0gaW5kZXg7IGNvbHVtbnM6IF9kaXNwbGF5ZWRDb2x1bW5zXCJcbiAgICAgIGRhdGEtZm5kPVwiZGF0YS1ncmFuaXRlLXRhYmxlLXJvd1wiXG4gICAgICBbbmdTdHlsZV09XCJnZXRTdHlsZXMocm93LCByb3dJbmRleClcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZVJvd0NsaWNrKCRldmVudCwgcm93LCByb3dJbmRleClcIlxuICAgID48L3RyPlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy90YWJsZS9zcmMvbGliL3RhYmxlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEdyYW5pdGVUYWJsZVJvd1N0eWxlc0ludGVyZmFjZSB7XG4gIGNvbmRpdGlvbjogKHJvdzogYW55LCByb3dJbmRleDogbnVtYmVyKSA9PiBib29sZWFuO1xuICBzdHlsZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input, ContentChild, Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, ContentChildren, NgModule } from '@angular/core';
2
+ import { Directive, Input, ContentChild, Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, EventEmitter, Output, ContentChildren, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { TableModule } from 'primeng/table';
@@ -151,6 +151,8 @@ class GraniteTableComponent {
151
151
  this.cd = cd;
152
152
  this.dataSource = [];
153
153
  this.horizontalScroll = false;
154
+ this.conditionalRowStyles = [];
155
+ this.rowClick = new EventEmitter();
154
156
  this.cellIdPrefix = GraniteTableCellConstants.CELL_ID_PREFIX;
155
157
  }
156
158
  ngAfterContentChecked() {
@@ -160,6 +162,14 @@ class GraniteTableComponent {
160
162
  _trackColumnName(index, column) {
161
163
  return column.name;
162
164
  }
165
+ handleRowClick(event, row, rowIndex) {
166
+ this.rowClick.emit({ row, rowIndex });
167
+ }
168
+ getStyles(row, rowIndex) {
169
+ return this.conditionalRowStyles
170
+ .filter((item) => item.condition(row, rowIndex))
171
+ .reduce((acc, item) => ({ ...acc, ...item.styles }), {});
172
+ }
163
173
  refreshData() {
164
174
  this._columns = this.tableColumnsComponent.toArray();
165
175
  this._displayedColumns = this.tableColumnsComponent
@@ -167,17 +177,21 @@ class GraniteTableComponent {
167
177
  .map((c) => c.name);
168
178
  }
169
179
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteTableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
170
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: GraniteTableComponent, selector: "granite-table", inputs: { dataSource: "dataSource", horizontalScroll: "horizontalScroll", trackBy: "trackBy" }, queries: [{ propertyName: "tableColumnsComponent", predicate: GraniteTableColumnDirective }], ngImport: i0, template: "<div\n class=\"cdk-table-wrapper\"\n data-fnd=\"granite-table-wrapper\"\n [class.horizontal-scroll]=\"horizontalScroll\"\n>\n <table\n class=\"granite-table\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackBy\"\n >\n <ng-container\n *ngFor=\"\n let column of _columns;\n trackBy: _trackColumnName;\n let columnIndex = index\n \"\n [cdkColumnDef]=\"column.name\"\n >\n <th\n tabindex=\"0\"\n cdk-header-cell\n *cdkHeaderCellDef\n data-fnd=\"data-granite-table-header-cell\"\n [graniteColumnSize]=\"column.size\"\n [attr.data-granite-table-header-cell]=\"column.name\"\n graniteTableHeaderCell\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.headerClass\"\n >\n {{ column.title ?? column.name | graniteTitle }}\n </th>\n\n <td\n tabindex=\"0\"\n cdk-cell\n *cdkCellDef=\"let row; let rowIndex = index\"\n data-fnd=\"data-granite-table-row-cell\"\n [attr.data-granite-table-cell]=\"column.name\"\n [graniteColumnSize]=\"column.size\"\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.class\"\n [id]=\"cellIdPrefix + '-' + rowIndex + '-' + columnIndex\"\n >\n <granite-table-data-cell\n [value]=\"row[column.name]\"\n [row]=\"row\"\n [column]=\"column\"\n [rowIndex]=\"rowIndex\"\n [columnIndex]=\"columnIndex\"\n [tableCellTemplateRef]=\"column.tableCellTemplateRef\"\n ></granite-table-data-cell>\n </td>\n </ng-container>\n\n <tr\n tabindex=\"0\"\n cdk-header-row\n *cdkHeaderRowDef=\"_displayedColumns\"\n data-fnd=\"data-granite-table-header\"\n ></tr>\n <tr\n tabindex=\"0\"\n cdk-row\n *cdkRowDef=\"let row; columns: _displayedColumns\"\n data-fnd=\"data-granite-table-row\"\n ></tr>\n </table>\n</div>\n", styles: [".granite-table tr>td.granite-table-cell-center-align,.granite-table tr>th.granite-table-cell-center-align{text-align:center}.granite-table tr>td.granite-table-cell-start-align,.granite-table tr>th.granite-table-cell-start-align{text-align:start}.granite-table tr>td.granite-table-cell-end-align,.granite-table tr>th.granite-table-cell-end-align{text-align:end}.granite-table [cdk-header-cell].column-size-sm,.granite-table [cdk-cell].column-size-sm{padding:.375rem .5rem}.granite-table [cdk-header-cell].column-size-md,.granite-table [cdk-cell].column-size-md{padding:.75rem 1rem}.granite-table [cdk-header-cell].column-size-lg,.granite-table [cdk-cell].column-size-lg{padding:.9375rem 1.25rem}.cdk-table-wrapper{width:100%;overflow-x:hidden}.cdk-table-wrapper .cdk-table{width:100%;border-spacing:0;white-space:nowrap}.cdk-table-wrapper .cdk-table .cdk-header-row,.cdk-table-wrapper .cdk-table cdk-cell{height:2.5rem}.cdk-table-wrapper .cdk-table .cdk-cell{background:var(--granite-color-background-variant)}.cdk-table-wrapper .cdk-table .cdk-header-cell,.cdk-table-wrapper .cdk-table cdk-cell{border:none;border-width:0}.cdk-table-wrapper .cdk-table .cdk-row,.cdk-table-wrapper .cdk-table .cdk-header-row{background:var(--granite-color-background-variant);height:2.5rem}.horizontal-scroll{overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: i2.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "directive", type: i2.CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: i2.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: i2.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: i2.CdkCell, selector: "cdk-cell, td[cdk-cell]" }, { kind: "component", type: i2.CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "directive", type: i2.CdkHeaderCell, selector: "cdk-header-cell, th[cdk-header-cell]" }, { kind: "component", type: i2.CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: i2.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "component", type: GraniteTableHeaderCellComponent, selector: "th[graniteTableHeaderCell]" }, { kind: "component", type: GraniteTableDataCellComponent, selector: "granite-table-data-cell", inputs: ["value", "rowIndex", "columnIndex", "row", "tableCellTemplateRef"] }, { kind: "directive", type: GraniteCellAlignClassesDirective, selector: "[graniteCellAlignClasses]", inputs: ["graniteCellAlignClasses", "textAlign"] }, { kind: "directive", type: GraniteColumnSizeDirective, selector: "[graniteColumnSize]", inputs: ["graniteColumnSize"] }, { kind: "pipe", type: i7.GraniteTitlePipe, name: "graniteTitle" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: GraniteTableComponent, selector: "granite-table", inputs: { dataSource: "dataSource", horizontalScroll: "horizontalScroll", trackBy: "trackBy", conditionalRowStyles: "conditionalRowStyles" }, outputs: { rowClick: "rowClick" }, queries: [{ propertyName: "tableColumnsComponent", predicate: GraniteTableColumnDirective }], ngImport: i0, template: "<div\n class=\"cdk-table-wrapper\"\n data-fnd=\"granite-table-wrapper\"\n [class.horizontal-scroll]=\"horizontalScroll\"\n>\n <table\n class=\"granite-table\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackBy\"\n >\n <ng-container\n *ngFor=\"\n let column of _columns;\n trackBy: _trackColumnName;\n let columnIndex = index\n \"\n [cdkColumnDef]=\"column.name\"\n >\n <th\n tabindex=\"0\"\n cdk-header-cell\n *cdkHeaderCellDef\n data-fnd=\"data-granite-table-header-cell\"\n [graniteColumnSize]=\"column.size\"\n [attr.data-granite-table-header-cell]=\"column.name\"\n graniteTableHeaderCell\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.headerClass\"\n >\n {{ column.title ?? column.name | graniteTitle }}\n </th>\n\n <td\n tabindex=\"0\"\n cdk-cell\n *cdkCellDef=\"let row; let rowIndex = index\"\n data-fnd=\"data-granite-table-row-cell\"\n [attr.data-granite-table-cell]=\"column.name\"\n [graniteColumnSize]=\"column.size\"\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.class\"\n [id]=\"cellIdPrefix + '-' + rowIndex + '-' + columnIndex\"\n >\n <granite-table-data-cell\n [value]=\"row[column.name]\"\n [row]=\"row\"\n [column]=\"column\"\n [rowIndex]=\"rowIndex\"\n [columnIndex]=\"columnIndex\"\n [tableCellTemplateRef]=\"column.tableCellTemplateRef\"\n ></granite-table-data-cell>\n </td>\n </ng-container>\n\n <tr\n tabindex=\"0\"\n cdk-header-row\n *cdkHeaderRowDef=\"_displayedColumns\"\n data-fnd=\"data-granite-table-header\"\n ></tr>\n <tr\n tabindex=\"0\"\n cdk-row\n *cdkRowDef=\"let row; let rowIndex = index; columns: _displayedColumns\"\n data-fnd=\"data-granite-table-row\"\n [ngStyle]=\"getStyles(row, rowIndex)\"\n (click)=\"handleRowClick($event, row, rowIndex)\"\n ></tr>\n </table>\n</div>\n", styles: [".granite-table tr>td.granite-table-cell-center-align,.granite-table tr>th.granite-table-cell-center-align{text-align:center}.granite-table tr>td.granite-table-cell-start-align,.granite-table tr>th.granite-table-cell-start-align{text-align:start}.granite-table tr>td.granite-table-cell-end-align,.granite-table tr>th.granite-table-cell-end-align{text-align:end}.granite-table [cdk-header-cell].column-size-sm,.granite-table [cdk-cell].column-size-sm{padding:.375rem .5rem}.granite-table [cdk-header-cell].column-size-md,.granite-table [cdk-cell].column-size-md{padding:.75rem 1rem}.granite-table [cdk-header-cell].column-size-lg,.granite-table [cdk-cell].column-size-lg{padding:.9375rem 1.25rem}.cdk-table-wrapper{width:100%;overflow-x:hidden}.cdk-table-wrapper .cdk-table{width:100%;border-spacing:0;white-space:nowrap}.cdk-table-wrapper .cdk-table .cdk-header-row,.cdk-table-wrapper .cdk-table cdk-cell{height:2.5rem}.cdk-table-wrapper .cdk-table .cdk-cell{background:transparent}.cdk-table-wrapper .cdk-table .cdk-header-cell,.cdk-table-wrapper .cdk-table cdk-cell{border:none;border-width:0}.cdk-table-wrapper .cdk-table .cdk-row,.cdk-table-wrapper .cdk-table .cdk-header-row{background:var(--granite-color-background-variant);height:2.5rem}.horizontal-scroll{overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: i2.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "directive", type: i2.CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: i2.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: i2.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: i2.CdkCell, selector: "cdk-cell, td[cdk-cell]" }, { kind: "component", type: i2.CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "directive", type: i2.CdkHeaderCell, selector: "cdk-header-cell, th[cdk-header-cell]" }, { kind: "component", type: i2.CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: i2.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "component", type: GraniteTableHeaderCellComponent, selector: "th[graniteTableHeaderCell]" }, { kind: "component", type: GraniteTableDataCellComponent, selector: "granite-table-data-cell", inputs: ["value", "rowIndex", "columnIndex", "row", "tableCellTemplateRef"] }, { kind: "directive", type: GraniteCellAlignClassesDirective, selector: "[graniteCellAlignClasses]", inputs: ["graniteCellAlignClasses", "textAlign"] }, { kind: "directive", type: GraniteColumnSizeDirective, selector: "[graniteColumnSize]", inputs: ["graniteColumnSize"] }, { kind: "pipe", type: i7.GraniteTitlePipe, name: "graniteTitle" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
171
181
  }
172
182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteTableComponent, decorators: [{
173
183
  type: Component,
174
- args: [{ selector: 'granite-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"cdk-table-wrapper\"\n data-fnd=\"granite-table-wrapper\"\n [class.horizontal-scroll]=\"horizontalScroll\"\n>\n <table\n class=\"granite-table\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackBy\"\n >\n <ng-container\n *ngFor=\"\n let column of _columns;\n trackBy: _trackColumnName;\n let columnIndex = index\n \"\n [cdkColumnDef]=\"column.name\"\n >\n <th\n tabindex=\"0\"\n cdk-header-cell\n *cdkHeaderCellDef\n data-fnd=\"data-granite-table-header-cell\"\n [graniteColumnSize]=\"column.size\"\n [attr.data-granite-table-header-cell]=\"column.name\"\n graniteTableHeaderCell\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.headerClass\"\n >\n {{ column.title ?? column.name | graniteTitle }}\n </th>\n\n <td\n tabindex=\"0\"\n cdk-cell\n *cdkCellDef=\"let row; let rowIndex = index\"\n data-fnd=\"data-granite-table-row-cell\"\n [attr.data-granite-table-cell]=\"column.name\"\n [graniteColumnSize]=\"column.size\"\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.class\"\n [id]=\"cellIdPrefix + '-' + rowIndex + '-' + columnIndex\"\n >\n <granite-table-data-cell\n [value]=\"row[column.name]\"\n [row]=\"row\"\n [column]=\"column\"\n [rowIndex]=\"rowIndex\"\n [columnIndex]=\"columnIndex\"\n [tableCellTemplateRef]=\"column.tableCellTemplateRef\"\n ></granite-table-data-cell>\n </td>\n </ng-container>\n\n <tr\n tabindex=\"0\"\n cdk-header-row\n *cdkHeaderRowDef=\"_displayedColumns\"\n data-fnd=\"data-granite-table-header\"\n ></tr>\n <tr\n tabindex=\"0\"\n cdk-row\n *cdkRowDef=\"let row; columns: _displayedColumns\"\n data-fnd=\"data-granite-table-row\"\n ></tr>\n </table>\n</div>\n", styles: [".granite-table tr>td.granite-table-cell-center-align,.granite-table tr>th.granite-table-cell-center-align{text-align:center}.granite-table tr>td.granite-table-cell-start-align,.granite-table tr>th.granite-table-cell-start-align{text-align:start}.granite-table tr>td.granite-table-cell-end-align,.granite-table tr>th.granite-table-cell-end-align{text-align:end}.granite-table [cdk-header-cell].column-size-sm,.granite-table [cdk-cell].column-size-sm{padding:.375rem .5rem}.granite-table [cdk-header-cell].column-size-md,.granite-table [cdk-cell].column-size-md{padding:.75rem 1rem}.granite-table [cdk-header-cell].column-size-lg,.granite-table [cdk-cell].column-size-lg{padding:.9375rem 1.25rem}.cdk-table-wrapper{width:100%;overflow-x:hidden}.cdk-table-wrapper .cdk-table{width:100%;border-spacing:0;white-space:nowrap}.cdk-table-wrapper .cdk-table .cdk-header-row,.cdk-table-wrapper .cdk-table cdk-cell{height:2.5rem}.cdk-table-wrapper .cdk-table .cdk-cell{background:var(--granite-color-background-variant)}.cdk-table-wrapper .cdk-table .cdk-header-cell,.cdk-table-wrapper .cdk-table cdk-cell{border:none;border-width:0}.cdk-table-wrapper .cdk-table .cdk-row,.cdk-table-wrapper .cdk-table .cdk-header-row{background:var(--granite-color-background-variant);height:2.5rem}.horizontal-scroll{overflow-x:auto}\n"] }]
184
+ args: [{ selector: 'granite-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"cdk-table-wrapper\"\n data-fnd=\"granite-table-wrapper\"\n [class.horizontal-scroll]=\"horizontalScroll\"\n>\n <table\n class=\"granite-table\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackBy\"\n >\n <ng-container\n *ngFor=\"\n let column of _columns;\n trackBy: _trackColumnName;\n let columnIndex = index\n \"\n [cdkColumnDef]=\"column.name\"\n >\n <th\n tabindex=\"0\"\n cdk-header-cell\n *cdkHeaderCellDef\n data-fnd=\"data-granite-table-header-cell\"\n [graniteColumnSize]=\"column.size\"\n [attr.data-granite-table-header-cell]=\"column.name\"\n graniteTableHeaderCell\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.headerClass\"\n >\n {{ column.title ?? column.name | graniteTitle }}\n </th>\n\n <td\n tabindex=\"0\"\n cdk-cell\n *cdkCellDef=\"let row; let rowIndex = index\"\n data-fnd=\"data-granite-table-row-cell\"\n [attr.data-granite-table-cell]=\"column.name\"\n [graniteColumnSize]=\"column.size\"\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.class\"\n [id]=\"cellIdPrefix + '-' + rowIndex + '-' + columnIndex\"\n >\n <granite-table-data-cell\n [value]=\"row[column.name]\"\n [row]=\"row\"\n [column]=\"column\"\n [rowIndex]=\"rowIndex\"\n [columnIndex]=\"columnIndex\"\n [tableCellTemplateRef]=\"column.tableCellTemplateRef\"\n ></granite-table-data-cell>\n </td>\n </ng-container>\n\n <tr\n tabindex=\"0\"\n cdk-header-row\n *cdkHeaderRowDef=\"_displayedColumns\"\n data-fnd=\"data-granite-table-header\"\n ></tr>\n <tr\n tabindex=\"0\"\n cdk-row\n *cdkRowDef=\"let row; let rowIndex = index; columns: _displayedColumns\"\n data-fnd=\"data-granite-table-row\"\n [ngStyle]=\"getStyles(row, rowIndex)\"\n (click)=\"handleRowClick($event, row, rowIndex)\"\n ></tr>\n </table>\n</div>\n", styles: [".granite-table tr>td.granite-table-cell-center-align,.granite-table tr>th.granite-table-cell-center-align{text-align:center}.granite-table tr>td.granite-table-cell-start-align,.granite-table tr>th.granite-table-cell-start-align{text-align:start}.granite-table tr>td.granite-table-cell-end-align,.granite-table tr>th.granite-table-cell-end-align{text-align:end}.granite-table [cdk-header-cell].column-size-sm,.granite-table [cdk-cell].column-size-sm{padding:.375rem .5rem}.granite-table [cdk-header-cell].column-size-md,.granite-table [cdk-cell].column-size-md{padding:.75rem 1rem}.granite-table [cdk-header-cell].column-size-lg,.granite-table [cdk-cell].column-size-lg{padding:.9375rem 1.25rem}.cdk-table-wrapper{width:100%;overflow-x:hidden}.cdk-table-wrapper .cdk-table{width:100%;border-spacing:0;white-space:nowrap}.cdk-table-wrapper .cdk-table .cdk-header-row,.cdk-table-wrapper .cdk-table cdk-cell{height:2.5rem}.cdk-table-wrapper .cdk-table .cdk-cell{background:transparent}.cdk-table-wrapper .cdk-table .cdk-header-cell,.cdk-table-wrapper .cdk-table cdk-cell{border:none;border-width:0}.cdk-table-wrapper .cdk-table .cdk-row,.cdk-table-wrapper .cdk-table .cdk-header-row{background:var(--granite-color-background-variant);height:2.5rem}.horizontal-scroll{overflow-x:auto}\n"] }]
175
185
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { dataSource: [{
176
186
  type: Input
177
187
  }], horizontalScroll: [{
178
188
  type: Input
179
189
  }], trackBy: [{
180
190
  type: Input
191
+ }], conditionalRowStyles: [{
192
+ type: Input
193
+ }], rowClick: [{
194
+ type: Output
181
195
  }], tableColumnsComponent: [{
182
196
  type: ContentChildren,
183
197
  args: [GraniteTableColumnDirective]
@@ -1 +1 @@
1
- {"version":3,"file":"ifsworld-granite-components-table.mjs","sources":["../../../../libs/granite-components/table/src/lib/column/table-column.directive.ts","../../../../libs/granite-components/table/src/lib/table-constants.library.ts","../../../../libs/granite-components/table/src/lib/cell/cell.ts","../../../../libs/granite-components/table/src/lib/cell/table-header-cell.component.ts","../../../../libs/granite-components/table/src/lib/cell/table-data-cell.component.ts","../../../../libs/granite-components/table/src/lib/cell/table-data-cell.component.html","../../../../libs/granite-components/table/src/lib/cell/cell-align/cell-align-classes.directive.ts","../../../../libs/granite-components/table/src/lib/column-size/column-size.directive.ts","../../../../libs/granite-components/table/src/lib/table.component.ts","../../../../libs/granite-components/table/src/lib/table.component.html","../../../../libs/granite-components/table/src/lib/table.module.ts","../../../../libs/granite-components/table/src/ifsworld-granite-components-table.ts"],"sourcesContent":["import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';\n\nexport type GranitTableColumnAlign = 'start' | 'center' | 'end';\nexport type GranitTableColumnSize = 'small' | 'medium' | 'large';\n\nexport interface GraniteTableColumnInterface {\n name: string;\n title?: string;\n class?: string | string[];\n headerClass?: string | string[];\n textAlign?: GranitTableColumnAlign;\n size?: GranitTableColumnSize;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'granite-table-column',\n})\nexport class GraniteTableColumnDirective\n implements GraniteTableColumnInterface\n{\n @Input()\n name: string;\n\n @Input()\n title?: string;\n\n @Input()\n class?: string | string[];\n\n @Input()\n headerClass?: string | string[];\n\n @Input() textAlign: GranitTableColumnAlign = 'center';\n\n @Input() size: GranitTableColumnSize = 'small';\n\n @ContentChild('graniteTableCellTemplate', { static: false })\n tableCellTemplateRef: TemplateRef<any>;\n}\n","export class GraniteTableCellConstants {\n static readonly CELL_ID_PREFIX: string = 'granite-cell';\n static readonly START_ALIGN: string = 'granite-table-cell-start-align';\n static readonly CENTER_ALIGN: string = 'granite-table-cell-center-align';\n static readonly END_ALIGN: string = 'granite-table-cell-end-align';\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { GraniteTableColumnDirective } from '../column/table-column.directive';\n\n@Directive()\nexport abstract class GraniteCell {\n @Input()\n id: string;\n\n @Input()\n column: GraniteTableColumnDirective;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { GraniteCell } from './cell';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'th[graniteTableHeaderCell]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./table-header-cell.component.scss'],\n host: {\n class: 'granite-table-header-cell',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GraniteTableHeaderCellComponent extends GraniteCell {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { GraniteCell } from './cell';\n\n@Component({\n selector: 'granite-table-data-cell',\n templateUrl: './table-data-cell.component.html',\n styleUrls: ['./table-data-cell.component.scss'],\n host: {\n class: 'granite-table-data-cell',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GraniteTableDataCellComponent extends GraniteCell {\n @Input()\n value: any;\n\n @Input()\n rowIndex: number;\n\n @Input()\n columnIndex: number;\n\n @Input()\n row: any;\n\n // Custom template provided by the consumer\n @Input()\n tableCellTemplateRef: TemplateRef<any>;\n}\n","<ng-template\n [ngTemplateOutlet]=\"tableCellTemplateRef || defaultTableCellTemplate\"\n [ngTemplateOutletContext]=\"{\n data: value,\n rowIndex: rowIndex,\n columnIndex: columnIndex,\n column: column,\n row: row\n }\"\n></ng-template>\n\n<ng-template #defaultTableCellTemplate>\n {{ value }}\n</ng-template>\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { GranitTableColumnAlign } from '../../column/table-column.directive';\n\n@Directive({\n selector: '[graniteCellAlignClasses]',\n})\nexport class GraniteCellAlignClassesDirective {\n @Input() graniteCellAlignClasses?: string | string[];\n @Input() textAlign: GranitTableColumnAlign = 'center';\n\n @HostBinding('class') get alignmentClass(): string {\n return `granite-table-cell-${\n this.textAlign ? this.textAlign : 'center'\n }-align`;\n }\n}\n","import { Directive, HostBinding, Input, OnChanges } from '@angular/core';\nimport { GranitTableColumnSize } from '../column/table-column.directive';\n\n@Directive({\n selector: '[graniteColumnSize]',\n})\nexport class GraniteColumnSizeDirective implements OnChanges {\n @Input() graniteColumnSize: GranitTableColumnSize = 'medium';\n\n @HostBinding('class') get columnSizeClass(): string {\n return `column-size-${this.sizeMap[this.graniteColumnSize]}`;\n }\n\n private readonly sizeMap: Record<GranitTableColumnSize, string> = {\n small: 'sm',\n medium: 'md',\n large: 'lg',\n } as const;\n\n ngOnChanges(): void {\n if (!this.graniteColumnSize || !this.sizeMap[this.graniteColumnSize]) {\n this.graniteColumnSize = 'small';\n }\n }\n}\n","import {\n AfterContentChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n QueryList,\n TrackByFunction,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { GraniteTableColumnDirective } from './column/table-column.directive';\nimport { GraniteTableCellConstants } from './table-constants.library';\n\n@Component({\n selector: 'granite-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GraniteTableComponent<T> implements AfterContentChecked {\n @Input()\n dataSource: any[] = [];\n\n @Input()\n horizontalScroll = false;\n\n @Input()\n trackBy: TrackByFunction<T>;\n\n @ContentChildren(GraniteTableColumnDirective)\n tableColumnsComponent: QueryList<GraniteTableColumnDirective>;\n\n readonly cellIdPrefix = GraniteTableCellConstants.CELL_ID_PREFIX;\n\n _columns: GraniteTableColumnDirective[];\n _displayedColumns: string[];\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngAfterContentChecked(): void {\n this.refreshData();\n this.cd.markForCheck();\n }\n\n _trackColumnName(index: number, column: GraniteTableColumnDirective): string {\n return column.name;\n }\n\n private refreshData(): void {\n this._columns = this.tableColumnsComponent.toArray();\n this._displayedColumns = this.tableColumnsComponent\n .toArray()\n .map((c) => c.name);\n }\n}\n","<div\n class=\"cdk-table-wrapper\"\n data-fnd=\"granite-table-wrapper\"\n [class.horizontal-scroll]=\"horizontalScroll\"\n>\n <table\n class=\"granite-table\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackBy\"\n >\n <ng-container\n *ngFor=\"\n let column of _columns;\n trackBy: _trackColumnName;\n let columnIndex = index\n \"\n [cdkColumnDef]=\"column.name\"\n >\n <th\n tabindex=\"0\"\n cdk-header-cell\n *cdkHeaderCellDef\n data-fnd=\"data-granite-table-header-cell\"\n [graniteColumnSize]=\"column.size\"\n [attr.data-granite-table-header-cell]=\"column.name\"\n graniteTableHeaderCell\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.headerClass\"\n >\n {{ column.title ?? column.name | graniteTitle }}\n </th>\n\n <td\n tabindex=\"0\"\n cdk-cell\n *cdkCellDef=\"let row; let rowIndex = index\"\n data-fnd=\"data-granite-table-row-cell\"\n [attr.data-granite-table-cell]=\"column.name\"\n [graniteColumnSize]=\"column.size\"\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.class\"\n [id]=\"cellIdPrefix + '-' + rowIndex + '-' + columnIndex\"\n >\n <granite-table-data-cell\n [value]=\"row[column.name]\"\n [row]=\"row\"\n [column]=\"column\"\n [rowIndex]=\"rowIndex\"\n [columnIndex]=\"columnIndex\"\n [tableCellTemplateRef]=\"column.tableCellTemplateRef\"\n ></granite-table-data-cell>\n </td>\n </ng-container>\n\n <tr\n tabindex=\"0\"\n cdk-header-row\n *cdkHeaderRowDef=\"_displayedColumns\"\n data-fnd=\"data-granite-table-header\"\n ></tr>\n <tr\n tabindex=\"0\"\n cdk-row\n *cdkRowDef=\"let row; columns: _displayedColumns\"\n data-fnd=\"data-granite-table-row\"\n ></tr>\n </table>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableModule } from 'primeng/table';\n\nimport { PurePipesModule } from '@ifsworld/granite-components';\n\nimport { GraniteTableComponent } from './table.component';\nimport { GraniteTableColumnDirective } from './column/table-column.directive';\nimport { GraniteTableHeaderCellComponent } from './cell/table-header-cell.component';\nimport { GraniteTableDataCellComponent } from './cell/table-data-cell.component';\nimport { GraniteCellAlignClassesDirective } from './cell/cell-align/cell-align-classes.directive';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { GraniteColumnSizeDirective } from './column-size/column-size.directive';\n\n@NgModule({\n imports: [CommonModule, TableModule, PurePipesModule, CdkTableModule],\n declarations: [\n GraniteTableComponent,\n GraniteTableColumnDirective,\n GraniteTableHeaderCellComponent,\n GraniteTableDataCellComponent,\n GraniteCellAlignClassesDirective,\n GraniteColumnSizeDirective,\n ],\n exports: [GraniteTableComponent, GraniteTableColumnDirective],\n})\nexport class GraniteTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.GraniteTableHeaderCellComponent","i4.GraniteTableDataCellComponent","i5.GraniteCellAlignClassesDirective","i6.GraniteColumnSizeDirective"],"mappings":"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"}
1
+ {"version":3,"file":"ifsworld-granite-components-table.mjs","sources":["../../../../libs/granite-components/table/src/lib/column/table-column.directive.ts","../../../../libs/granite-components/table/src/lib/table-constants.library.ts","../../../../libs/granite-components/table/src/lib/cell/cell.ts","../../../../libs/granite-components/table/src/lib/cell/table-header-cell.component.ts","../../../../libs/granite-components/table/src/lib/cell/table-data-cell.component.ts","../../../../libs/granite-components/table/src/lib/cell/table-data-cell.component.html","../../../../libs/granite-components/table/src/lib/cell/cell-align/cell-align-classes.directive.ts","../../../../libs/granite-components/table/src/lib/column-size/column-size.directive.ts","../../../../libs/granite-components/table/src/lib/table.component.ts","../../../../libs/granite-components/table/src/lib/table.component.html","../../../../libs/granite-components/table/src/lib/table.module.ts","../../../../libs/granite-components/table/src/ifsworld-granite-components-table.ts"],"sourcesContent":["import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';\n\nexport type GranitTableColumnAlign = 'start' | 'center' | 'end';\nexport type GranitTableColumnSize = 'small' | 'medium' | 'large';\n\nexport interface GraniteTableColumnInterface {\n name: string;\n title?: string;\n class?: string | string[];\n headerClass?: string | string[];\n textAlign?: GranitTableColumnAlign;\n size?: GranitTableColumnSize;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'granite-table-column',\n})\nexport class GraniteTableColumnDirective\n implements GraniteTableColumnInterface\n{\n @Input()\n name: string;\n\n @Input()\n title?: string;\n\n @Input()\n class?: string | string[];\n\n @Input()\n headerClass?: string | string[];\n\n @Input() textAlign: GranitTableColumnAlign = 'center';\n\n @Input() size: GranitTableColumnSize = 'small';\n\n @ContentChild('graniteTableCellTemplate', { static: false })\n tableCellTemplateRef: TemplateRef<any>;\n}\n","export class GraniteTableCellConstants {\n static readonly CELL_ID_PREFIX: string = 'granite-cell';\n static readonly START_ALIGN: string = 'granite-table-cell-start-align';\n static readonly CENTER_ALIGN: string = 'granite-table-cell-center-align';\n static readonly END_ALIGN: string = 'granite-table-cell-end-align';\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { GraniteTableColumnDirective } from '../column/table-column.directive';\n\n@Directive()\nexport abstract class GraniteCell {\n @Input()\n id: string;\n\n @Input()\n column: GraniteTableColumnDirective;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { GraniteCell } from './cell';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'th[graniteTableHeaderCell]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./table-header-cell.component.scss'],\n host: {\n class: 'granite-table-header-cell',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GraniteTableHeaderCellComponent extends GraniteCell {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { GraniteCell } from './cell';\n\n@Component({\n selector: 'granite-table-data-cell',\n templateUrl: './table-data-cell.component.html',\n styleUrls: ['./table-data-cell.component.scss'],\n host: {\n class: 'granite-table-data-cell',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GraniteTableDataCellComponent extends GraniteCell {\n @Input()\n value: any;\n\n @Input()\n rowIndex: number;\n\n @Input()\n columnIndex: number;\n\n @Input()\n row: any;\n\n // Custom template provided by the consumer\n @Input()\n tableCellTemplateRef: TemplateRef<any>;\n}\n","<ng-template\n [ngTemplateOutlet]=\"tableCellTemplateRef || defaultTableCellTemplate\"\n [ngTemplateOutletContext]=\"{\n data: value,\n rowIndex: rowIndex,\n columnIndex: columnIndex,\n column: column,\n row: row\n }\"\n></ng-template>\n\n<ng-template #defaultTableCellTemplate>\n {{ value }}\n</ng-template>\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { GranitTableColumnAlign } from '../../column/table-column.directive';\n\n@Directive({\n selector: '[graniteCellAlignClasses]',\n})\nexport class GraniteCellAlignClassesDirective {\n @Input() graniteCellAlignClasses?: string | string[];\n @Input() textAlign: GranitTableColumnAlign = 'center';\n\n @HostBinding('class') get alignmentClass(): string {\n return `granite-table-cell-${\n this.textAlign ? this.textAlign : 'center'\n }-align`;\n }\n}\n","import { Directive, HostBinding, Input, OnChanges } from '@angular/core';\nimport { GranitTableColumnSize } from '../column/table-column.directive';\n\n@Directive({\n selector: '[graniteColumnSize]',\n})\nexport class GraniteColumnSizeDirective implements OnChanges {\n @Input() graniteColumnSize: GranitTableColumnSize = 'medium';\n\n @HostBinding('class') get columnSizeClass(): string {\n return `column-size-${this.sizeMap[this.graniteColumnSize]}`;\n }\n\n private readonly sizeMap: Record<GranitTableColumnSize, string> = {\n small: 'sm',\n medium: 'md',\n large: 'lg',\n } as const;\n\n ngOnChanges(): void {\n if (!this.graniteColumnSize || !this.sizeMap[this.graniteColumnSize]) {\n this.graniteColumnSize = 'small';\n }\n }\n}\n","import {\n AfterContentChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList,\n TrackByFunction,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { GraniteTableColumnDirective } from './column/table-column.directive';\nimport { GraniteTableCellConstants } from './table-constants.library';\nimport { GraniteTableRowStylesInterface } from './table.model';\n\n@Component({\n selector: 'granite-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GraniteTableComponent<T> implements AfterContentChecked {\n @Input()\n dataSource: T[] = [];\n\n @Input()\n horizontalScroll = false;\n\n @Input()\n trackBy: TrackByFunction<T>;\n\n @Input()\n conditionalRowStyles: GraniteTableRowStylesInterface[] = [];\n\n @Output()\n rowClick = new EventEmitter();\n\n @ContentChildren(GraniteTableColumnDirective)\n tableColumnsComponent: QueryList<GraniteTableColumnDirective>;\n\n readonly cellIdPrefix = GraniteTableCellConstants.CELL_ID_PREFIX;\n\n _columns: GraniteTableColumnDirective[];\n _displayedColumns: string[];\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngAfterContentChecked(): void {\n this.refreshData();\n this.cd.markForCheck();\n }\n\n _trackColumnName(index: number, column: GraniteTableColumnDirective): string {\n return column.name;\n }\n\n handleRowClick(event: Event, row: T, rowIndex: number): void {\n this.rowClick.emit({ row, rowIndex });\n }\n\n getStyles(row: T, rowIndex: number): { [key: string]: string } {\n return this.conditionalRowStyles\n .filter((item) => item.condition(row, rowIndex))\n .reduce((acc, item) => ({ ...acc, ...item.styles }), {});\n }\n\n private refreshData(): void {\n this._columns = this.tableColumnsComponent.toArray();\n this._displayedColumns = this.tableColumnsComponent\n .toArray()\n .map((c) => c.name);\n }\n}\n","<div\n class=\"cdk-table-wrapper\"\n data-fnd=\"granite-table-wrapper\"\n [class.horizontal-scroll]=\"horizontalScroll\"\n>\n <table\n class=\"granite-table\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackBy\"\n >\n <ng-container\n *ngFor=\"\n let column of _columns;\n trackBy: _trackColumnName;\n let columnIndex = index\n \"\n [cdkColumnDef]=\"column.name\"\n >\n <th\n tabindex=\"0\"\n cdk-header-cell\n *cdkHeaderCellDef\n data-fnd=\"data-granite-table-header-cell\"\n [graniteColumnSize]=\"column.size\"\n [attr.data-granite-table-header-cell]=\"column.name\"\n graniteTableHeaderCell\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.headerClass\"\n >\n {{ column.title ?? column.name | graniteTitle }}\n </th>\n\n <td\n tabindex=\"0\"\n cdk-cell\n *cdkCellDef=\"let row; let rowIndex = index\"\n data-fnd=\"data-granite-table-row-cell\"\n [attr.data-granite-table-cell]=\"column.name\"\n [graniteColumnSize]=\"column.size\"\n graniteCellAlignClasses\n [textAlign]=\"column.textAlign\"\n [class]=\"column.class\"\n [id]=\"cellIdPrefix + '-' + rowIndex + '-' + columnIndex\"\n >\n <granite-table-data-cell\n [value]=\"row[column.name]\"\n [row]=\"row\"\n [column]=\"column\"\n [rowIndex]=\"rowIndex\"\n [columnIndex]=\"columnIndex\"\n [tableCellTemplateRef]=\"column.tableCellTemplateRef\"\n ></granite-table-data-cell>\n </td>\n </ng-container>\n\n <tr\n tabindex=\"0\"\n cdk-header-row\n *cdkHeaderRowDef=\"_displayedColumns\"\n data-fnd=\"data-granite-table-header\"\n ></tr>\n <tr\n tabindex=\"0\"\n cdk-row\n *cdkRowDef=\"let row; let rowIndex = index; columns: _displayedColumns\"\n data-fnd=\"data-granite-table-row\"\n [ngStyle]=\"getStyles(row, rowIndex)\"\n (click)=\"handleRowClick($event, row, rowIndex)\"\n ></tr>\n </table>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableModule } from 'primeng/table';\n\nimport { PurePipesModule } from '@ifsworld/granite-components';\n\nimport { GraniteTableComponent } from './table.component';\nimport { GraniteTableColumnDirective } from './column/table-column.directive';\nimport { GraniteTableHeaderCellComponent } from './cell/table-header-cell.component';\nimport { GraniteTableDataCellComponent } from './cell/table-data-cell.component';\nimport { GraniteCellAlignClassesDirective } from './cell/cell-align/cell-align-classes.directive';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { GraniteColumnSizeDirective } from './column-size/column-size.directive';\n\n@NgModule({\n imports: [CommonModule, TableModule, PurePipesModule, CdkTableModule],\n declarations: [\n GraniteTableComponent,\n GraniteTableColumnDirective,\n GraniteTableHeaderCellComponent,\n GraniteTableDataCellComponent,\n GraniteCellAlignClassesDirective,\n GraniteColumnSizeDirective,\n ],\n exports: [GraniteTableComponent, GraniteTableColumnDirective],\n})\nexport class GraniteTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.GraniteTableHeaderCellComponent","i4.GraniteTableDataCellComponent","i5.GraniteCellAlignClassesDirective","i6.GraniteColumnSizeDirective"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifsworld/granite-components",
3
- "version": "13.2.8",
3
+ "version": "13.2.9",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
6
  "@angular/cdk": ">=17.3.4",
@@ -1,11 +1,14 @@
1
- import { AfterContentChecked, ChangeDetectorRef, QueryList, TrackByFunction } from '@angular/core';
1
+ import { AfterContentChecked, ChangeDetectorRef, EventEmitter, QueryList, TrackByFunction } from '@angular/core';
2
2
  import { GraniteTableColumnDirective } from './column/table-column.directive';
3
+ import { GraniteTableRowStylesInterface } from './table.model';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class GraniteTableComponent<T> implements AfterContentChecked {
5
6
  private cd;
6
- dataSource: any[];
7
+ dataSource: T[];
7
8
  horizontalScroll: boolean;
8
9
  trackBy: TrackByFunction<T>;
10
+ conditionalRowStyles: GraniteTableRowStylesInterface[];
11
+ rowClick: EventEmitter<any>;
9
12
  tableColumnsComponent: QueryList<GraniteTableColumnDirective>;
10
13
  readonly cellIdPrefix: string;
11
14
  _columns: GraniteTableColumnDirective[];
@@ -13,7 +16,11 @@ export declare class GraniteTableComponent<T> implements AfterContentChecked {
13
16
  constructor(cd: ChangeDetectorRef);
14
17
  ngAfterContentChecked(): void;
15
18
  _trackColumnName(index: number, column: GraniteTableColumnDirective): string;
19
+ handleRowClick(event: Event, row: T, rowIndex: number): void;
20
+ getStyles(row: T, rowIndex: number): {
21
+ [key: string]: string;
22
+ };
16
23
  private refreshData;
17
24
  static ɵfac: i0.ɵɵFactoryDeclaration<GraniteTableComponent<any>, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<GraniteTableComponent<any>, "granite-table", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; }, {}, ["tableColumnsComponent"], never, false, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<GraniteTableComponent<any>, "granite-table", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "conditionalRowStyles": { "alias": "conditionalRowStyles"; "required": false; }; }, { "rowClick": "rowClick"; }, ["tableColumnsComponent"], never, false, never>;
19
26
  }
@@ -0,0 +1,6 @@
1
+ export interface GraniteTableRowStylesInterface {
2
+ condition: (row: any, rowIndex: number) => boolean;
3
+ styles: {
4
+ [key: string]: string;
5
+ };
6
+ }