@enigmatry/entry-components 21.1.1 → 21.1.2-preview.1

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,24 +1,25 @@
1
- import * as i5 from '@angular/material/paginator';
1
+ import * as i6 from '@angular/material/paginator';
2
2
  import { MatPaginatorModule } from '@angular/material/paginator';
3
3
  export { PageEvent } from '@angular/material/paginator';
4
4
  import * as i0 from '@angular/core';
5
5
  import { InjectionToken, input, inject, ChangeDetectionStrategy, Component, computed, output, viewChild, ElementRef, signal, linkedSignal, TemplateRef, effect, NgModule } from '@angular/core';
6
6
  import { createInjectionToken, provideConfig } from '@enigmatry/entry-components/common';
7
7
  import { SelectionModel } from '@angular/cdk/collections';
8
- import * as i3$1 from '@angular/material/checkbox';
8
+ import * as i1 from '@angular/common';
9
+ import { CommonModule, DatePipe, DecimalPipe, PercentPipe, CurrencyPipe } from '@angular/common';
10
+ import * as i4 from '@angular/material/checkbox';
9
11
  import { MatCheckboxModule } from '@angular/material/checkbox';
10
- import * as i4 from '@angular/material/radio';
12
+ import * as i5 from '@angular/material/radio';
11
13
  import { MatRadioModule } from '@angular/material/radio';
12
- import * as i2$1 from '@angular/material/sort';
14
+ import * as i3$1 from '@angular/material/sort';
13
15
  import { MatSortModule } from '@angular/material/sort';
14
- import * as i1$1 from '@angular/material/table';
16
+ import * as i2$1 from '@angular/material/table';
15
17
  import { MatTableDataSource, MatTableModule } from '@angular/material/table';
16
- import { DatePipe, DecimalPipe, PercentPipe, CurrencyPipe, CommonModule } from '@angular/common';
17
18
  import * as i2 from '@angular/material/button';
18
19
  import { MatButtonModule } from '@angular/material/button';
19
20
  import * as i3 from '@angular/material/icon';
20
21
  import { MatIconModule } from '@angular/material/icon';
21
- import * as i1 from '@angular/material/menu';
22
+ import * as i1$1 from '@angular/material/menu';
22
23
  import { MatMenuModule } from '@angular/material/menu';
23
24
  import { FormsModule } from '@angular/forms';
24
25
 
@@ -107,11 +108,11 @@ class EntryCellFormattedValueComponent {
107
108
  this.defaultPercentageMultiplier = inject(DEFAULT_PERCENTAGE_MULTIPLIER);
108
109
  }
109
110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryCellFormattedValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntryCellFormattedValueComponent, isStandalone: true, selector: "entry-cell-formatted-value", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, typeParameter: { classPropertyName: "typeParameter", publicName: "typeParameter", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@switch (type()) {\n @case('boolean'){\n {{value() ? '\\u2713' : ''}}\n }\n @case('number'){\n {{value() | number: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('currency'){\n {{value() | currency: typeParameter()?.currencyCode : typeParameter()?.display : typeParameter()?.digitsInfo :\n typeParameter()?.locale}}\n }\n @case('percent'){\n {{+(value() ?? 0) * (typeParameter()?.multiplier ?? defaultPercentageMultiplier) | percent: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('date'){\n {{value() | date: typeParameter()?.format : typeParameter()?.timezone : typeParameter()?.locale}}\n }\n @case('link'){\n <a [href]=\"value()\" target=\"_blank\">{{value()}}</a>\n }\n @default{\n {{value()}}\n }\n}", dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: PercentPipe, name: "percent" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntryCellFormattedValueComponent, isStandalone: true, selector: "entry-cell-formatted-value", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, typeParameter: { classPropertyName: "typeParameter", publicName: "typeParameter", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@switch (type()) {\n @case('boolean'){\n {{value() ? '\\u2713' : ''}}\n }\n @case('number'){\n {{value() | number: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('currency'){\n {{value() | currency: typeParameter()?.currencyCode : typeParameter()?.display : typeParameter()?.digitsInfo :\n typeParameter()?.locale}}\n }\n @case('percent'){\n {{+(value() ?? 0) * (typeParameter()?.multiplier ?? defaultPercentageMultiplier) | percent: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('date'){\n {{value() | date: typeParameter()?.format : typeParameter()?.timezone : typeParameter()?.locale}}\n }\n @case('link'){\n <a [href]=\"value()\" target=\"_blank\">{{value()}}</a>\n }\n @default{\n {{value()}}\n }\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.PercentPipe, name: "percent" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
111
112
  }
112
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryCellFormattedValueComponent, decorators: [{
113
114
  type: Component,
114
- args: [{ imports: [DatePipe, DecimalPipe, PercentPipe, CurrencyPipe], selector: 'entry-cell-formatted-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "@switch (type()) {\n @case('boolean'){\n {{value() ? '\\u2713' : ''}}\n }\n @case('number'){\n {{value() | number: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('currency'){\n {{value() | currency: typeParameter()?.currencyCode : typeParameter()?.display : typeParameter()?.digitsInfo :\n typeParameter()?.locale}}\n }\n @case('percent'){\n {{+(value() ?? 0) * (typeParameter()?.multiplier ?? defaultPercentageMultiplier) | percent: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('date'){\n {{value() | date: typeParameter()?.format : typeParameter()?.timezone : typeParameter()?.locale}}\n }\n @case('link'){\n <a [href]=\"value()\" target=\"_blank\">{{value()}}</a>\n }\n @default{\n {{value()}}\n }\n}" }]
115
+ args: [{ imports: [CommonModule, DatePipe, DecimalPipe, PercentPipe, CurrencyPipe], selector: 'entry-cell-formatted-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "@switch (type()) {\n @case('boolean'){\n {{value() ? '\\u2713' : ''}}\n }\n @case('number'){\n {{value() | number: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('currency'){\n {{value() | currency: typeParameter()?.currencyCode : typeParameter()?.display : typeParameter()?.digitsInfo :\n typeParameter()?.locale}}\n }\n @case('percent'){\n {{+(value() ?? 0) * (typeParameter()?.multiplier ?? defaultPercentageMultiplier) | percent: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('date'){\n {{value() | date: typeParameter()?.format : typeParameter()?.timezone : typeParameter()?.locale}}\n }\n @case('link'){\n <a [href]=\"value()\" target=\"_blank\">{{value()}}</a>\n }\n @default{\n {{value()}}\n }\n}" }]
115
116
  }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], typeParameter: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeParameter", required: false }] }] } });
116
117
 
117
118
  class EntryCellComponent {
@@ -126,11 +127,11 @@ class EntryCellComponent {
126
127
  };
127
128
  }
128
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.8", type: EntryCellComponent, isStandalone: true, selector: "entry-cell", inputs: { rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: true, transformFunction: null }, columnDefinition: { classPropertyName: "columnDefinition", publicName: "columnDefinition", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<entry-cell-formatted-value [value]=\"printableValue()\" [type]=\"columnDefinition().type!\"\n [typeParameter]=\"columnDefinition().typeParameter\"></entry-cell-formatted-value>", dependencies: [{ kind: "component", type: EntryCellFormattedValueComponent, selector: "entry-cell-formatted-value", inputs: ["value", "type", "typeParameter"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.8", type: EntryCellComponent, isStandalone: true, selector: "entry-cell", inputs: { rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: true, transformFunction: null }, columnDefinition: { classPropertyName: "columnDefinition", publicName: "columnDefinition", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<entry-cell-formatted-value [value]=\"printableValue()\" [type]=\"columnDefinition().type!\"\n [typeParameter]=\"columnDefinition().typeParameter\"></entry-cell-formatted-value>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: EntryCellFormattedValueComponent, selector: "entry-cell-formatted-value", inputs: ["value", "type", "typeParameter"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
130
131
  }
131
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryCellComponent, decorators: [{
132
133
  type: Component,
133
- args: [{ imports: [EntryCellFormattedValueComponent], selector: 'entry-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<entry-cell-formatted-value [value]=\"printableValue()\" [type]=\"columnDefinition().type!\"\n [typeParameter]=\"columnDefinition().typeParameter\"></entry-cell-formatted-value>" }]
134
+ args: [{ imports: [CommonModule, EntryCellFormattedValueComponent], selector: 'entry-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<entry-cell-formatted-value [value]=\"printableValue()\" [type]=\"columnDefinition().type!\"\n [typeParameter]=\"columnDefinition().typeParameter\"></entry-cell-formatted-value>" }]
134
135
  }], propDecorators: { rowData: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowData", required: true }] }], columnDefinition: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnDefinition", required: true }] }] } });
135
136
 
136
137
  class EntryCellContextMenuComponent {
@@ -148,11 +149,11 @@ class EntryCellContextMenuComponent {
148
149
  this.subMenu = viewChild('subMenu', ...(ngDevMode ? [{ debugName: "subMenu" }] : /* istanbul ignore next */ []));
149
150
  }
150
151
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryCellContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntryCellContextMenuComponent, isStandalone: true, selector: "entry-cell-context-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, rowMenuFormatter: { classPropertyName: "rowMenuFormatter", publicName: "rowMenuFormatter", isSignal: true, isRequired: false, transformFunction: null }, rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: false, transformFunction: null }, triggerIcon: { classPropertyName: "triggerIcon", publicName: "triggerIcon", isSignal: true, isRequired: false, transformFunction: null }, isSubMenu: { classPropertyName: "isSubMenu", publicName: "isSubMenu", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, isSignal: true }, { propertyName: "subMenu", first: true, predicate: ["subMenu"], descendants: true, isSignal: true }], ngImport: i0, template: "@if(!isSubMenu())\n{\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\">\n <mat-icon>{{triggerIcon()}}</mat-icon>\n </button>\n}\n\n<mat-menu #menu=\"matMenu\" class=\"entry-table-menu\" role=\"menu\">\n @for(menuItem of menuItems(); track menuItem.id)\n {\n <button mat-menu-item [disabled]=\"menuItem.disabled\"\n [matMenuTriggerFor]=\"menuItem.items?.length ? (subMenu()?.menu() ?? null) : null\"\n (click)=\"!menuItem.items?.length && selected.emit(menuItem.id)\" class=\"context-menu-item\">\n\n @if(menuItem.icon)\n {\n <mat-icon class=\"icon\">{{menuItem.icon}}</mat-icon>\n }\n\n <span class=\"description\">{{menuItem.name}}</span>\n\n @if(menuItem.items?.length)\n {\n <entry-cell-context-menu #subMenu [items]=\"menuItem.items ?? []\" [rowData]=\"rowData()\" [isSubMenu]=\"true\"\n (selected)=\"selected.emit($event)\">\n </entry-cell-context-menu>\n }\n </button>\n }\n</mat-menu>", dependencies: [{ kind: "component", type: EntryCellContextMenuComponent, selector: "entry-cell-context-menu", inputs: ["items", "rowMenuFormatter", "rowData", "triggerIcon", "isSubMenu"], outputs: ["selected"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntryCellContextMenuComponent, isStandalone: true, selector: "entry-cell-context-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, rowMenuFormatter: { classPropertyName: "rowMenuFormatter", publicName: "rowMenuFormatter", isSignal: true, isRequired: false, transformFunction: null }, rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: false, transformFunction: null }, triggerIcon: { classPropertyName: "triggerIcon", publicName: "triggerIcon", isSignal: true, isRequired: false, transformFunction: null }, isSubMenu: { classPropertyName: "isSubMenu", publicName: "isSubMenu", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, isSignal: true }, { propertyName: "subMenu", first: true, predicate: ["subMenu"], descendants: true, isSignal: true }], ngImport: i0, template: "@if(!isSubMenu())\n{\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\">\n <mat-icon>{{triggerIcon()}}</mat-icon>\n </button>\n}\n\n<mat-menu #menu=\"matMenu\" class=\"entry-table-menu\" role=\"menu\">\n @for(menuItem of menuItems(); track menuItem.id)\n {\n <button mat-menu-item [disabled]=\"menuItem.disabled\"\n [matMenuTriggerFor]=\"menuItem.items?.length ? (subMenu()?.menu() ?? null) : null\"\n (click)=\"!menuItem.items?.length && selected.emit(menuItem.id)\" class=\"context-menu-item\">\n\n @if(menuItem.icon)\n {\n <mat-icon class=\"icon\">{{menuItem.icon}}</mat-icon>\n }\n\n <span class=\"description\">{{menuItem.name}}</span>\n\n @if(menuItem.items?.length)\n {\n <entry-cell-context-menu #subMenu [items]=\"menuItem.items ?? []\" [rowData]=\"rowData()\" [isSubMenu]=\"true\"\n (selected)=\"selected.emit($event)\">\n </entry-cell-context-menu>\n }\n </button>\n }\n</mat-menu>", dependencies: [{ kind: "component", type: EntryCellContextMenuComponent, selector: "entry-cell-context-menu", inputs: ["items", "rowMenuFormatter", "rowData", "triggerIcon", "isSubMenu"], outputs: ["selected"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i1$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i1$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
152
153
  }
153
154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryCellContextMenuComponent, decorators: [{
154
155
  type: Component,
155
- args: [{ selector: 'entry-cell-context-menu', imports: [MatMenuModule, MatButtonModule, MatIconModule, EntryCellContextMenuComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if(!isSubMenu())\n{\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\">\n <mat-icon>{{triggerIcon()}}</mat-icon>\n </button>\n}\n\n<mat-menu #menu=\"matMenu\" class=\"entry-table-menu\" role=\"menu\">\n @for(menuItem of menuItems(); track menuItem.id)\n {\n <button mat-menu-item [disabled]=\"menuItem.disabled\"\n [matMenuTriggerFor]=\"menuItem.items?.length ? (subMenu()?.menu() ?? null) : null\"\n (click)=\"!menuItem.items?.length && selected.emit(menuItem.id)\" class=\"context-menu-item\">\n\n @if(menuItem.icon)\n {\n <mat-icon class=\"icon\">{{menuItem.icon}}</mat-icon>\n }\n\n <span class=\"description\">{{menuItem.name}}</span>\n\n @if(menuItem.items?.length)\n {\n <entry-cell-context-menu #subMenu [items]=\"menuItem.items ?? []\" [rowData]=\"rowData()\" [isSubMenu]=\"true\"\n (selected)=\"selected.emit($event)\">\n </entry-cell-context-menu>\n }\n </button>\n }\n</mat-menu>" }]
156
+ args: [{ selector: 'entry-cell-context-menu', imports: [CommonModule, MatMenuModule, MatButtonModule, MatIconModule, EntryCellContextMenuComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if(!isSubMenu())\n{\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\">\n <mat-icon>{{triggerIcon()}}</mat-icon>\n </button>\n}\n\n<mat-menu #menu=\"matMenu\" class=\"entry-table-menu\" role=\"menu\">\n @for(menuItem of menuItems(); track menuItem.id)\n {\n <button mat-menu-item [disabled]=\"menuItem.disabled\"\n [matMenuTriggerFor]=\"menuItem.items?.length ? (subMenu()?.menu() ?? null) : null\"\n (click)=\"!menuItem.items?.length && selected.emit(menuItem.id)\" class=\"context-menu-item\">\n\n @if(menuItem.icon)\n {\n <mat-icon class=\"icon\">{{menuItem.icon}}</mat-icon>\n }\n\n <span class=\"description\">{{menuItem.name}}</span>\n\n @if(menuItem.items?.length)\n {\n <entry-cell-context-menu #subMenu [items]=\"menuItem.items ?? []\" [rowData]=\"rowData()\" [isSubMenu]=\"true\"\n (selected)=\"selected.emit($event)\">\n </entry-cell-context-menu>\n }\n </button>\n }\n</mat-menu>" }]
156
157
  }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], rowMenuFormatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowMenuFormatter", required: false }] }], rowData: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowData", required: false }] }], triggerIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerIcon", required: false }] }], isSubMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSubMenu", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }], menu: [{ type: i0.ViewChild, args: ['menu', { isSignal: true }] }], subMenu: [{ type: i0.ViewChild, args: ['subMenu', { isSignal: true }] }] } });
157
158
 
158
159
  /* eslint-disable max-lines */
@@ -302,11 +303,12 @@ class EntryTableComponent {
302
303
  });
303
304
  }
304
305
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
305
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntryTableComponent, isStandalone: true, selector: "entry-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, showPaginator: { classPropertyName: "showPaginator", publicName: "showPaginator", isSignal: true, isRequired: false, transformFunction: null }, pageDisabled: { classPropertyName: "pageDisabled", publicName: "pageDisabled", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastButtons: { classPropertyName: "showFirstLastButtons", publicName: "showFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, hidePageSize: { classPropertyName: "hidePageSize", publicName: "hidePageSize", isSignal: true, isRequired: false, transformFunction: null }, paginationTemplate: { classPropertyName: "paginationTemplate", publicName: "paginationTemplate", isSignal: true, isRequired: false, transformFunction: null }, sortActive: { classPropertyName: "sortActive", publicName: "sortActive", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, sortDisableClear: { classPropertyName: "sortDisableClear", publicName: "sortDisableClear", isSignal: true, isRequired: false, transformFunction: null }, sortDisabled: { classPropertyName: "sortDisabled", publicName: "sortDisabled", isSignal: true, isRequired: false, transformFunction: null }, sortStart: { classPropertyName: "sortStart", publicName: "sortStart", isSignal: true, isRequired: false, transformFunction: null }, rowHover: { classPropertyName: "rowHover", publicName: "rowHover", isSignal: true, isRequired: false, transformFunction: null }, rowStriped: { classPropertyName: "rowStriped", publicName: "rowStriped", isSignal: true, isRequired: false, transformFunction: null }, rowFocusVisible: { classPropertyName: "rowFocusVisible", publicName: "rowFocusVisible", isSignal: true, isRequired: false, transformFunction: null }, multiSelectable: { classPropertyName: "multiSelectable", publicName: "multiSelectable", isSignal: true, isRequired: false, transformFunction: null }, rowSelected: { classPropertyName: "rowSelected", publicName: "rowSelected", isSignal: true, isRequired: false, transformFunction: null }, rowSelectable: { classPropertyName: "rowSelectable", publicName: "rowSelectable", isSignal: true, isRequired: false, transformFunction: null }, showSelectAllCheckbox: { classPropertyName: "showSelectAllCheckbox", publicName: "showSelectAllCheckbox", isSignal: true, isRequired: false, transformFunction: null }, rowSelectionFormatter: { classPropertyName: "rowSelectionFormatter", publicName: "rowSelectionFormatter", isSignal: true, isRequired: false, transformFunction: null }, rowClassFormatter: { classPropertyName: "rowClassFormatter", publicName: "rowClassFormatter", isSignal: true, isRequired: false, transformFunction: null }, showContextMenu: { classPropertyName: "showContextMenu", publicName: "showContextMenu", isSignal: true, isRequired: false, transformFunction: null }, contextMenuItems: { classPropertyName: "contextMenuItems", publicName: "contextMenuItems", isSignal: true, isRequired: false, transformFunction: null }, contextMenuTemplate: { classPropertyName: "contextMenuTemplate", publicName: "contextMenuTemplate", isSignal: true, isRequired: false, transformFunction: null }, rowContextMenuFormatter: { classPropertyName: "rowContextMenuFormatter", publicName: "rowContextMenuFormatter", isSignal: true, isRequired: false, transformFunction: null }, noResultText: { classPropertyName: "noResultText", publicName: "noResultText", isSignal: true, isRequired: false, transformFunction: null }, noResultTemplate: { classPropertyName: "noResultTemplate", publicName: "noResultTemplate", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: "cellTemplate", publicName: "cellTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChange: "pageChange", sortChange: "sortChange", rowClick: "rowClick", contextMenuItemSelected: "contextMenuItemSelected" }, host: { classAttribute: "entry-table" }, ngImport: i0, template: "<!-- Table content -->\n<table mat-table [class.mat-table-hover]=\"rowHover()\" [class.mat-table-striped]=\"rowStriped()\"\n [class.mat-table-with-data]=\"!hasNoResult()\" [dataSource]=\"dataSource\" matSort [matSortActive]=\"sortActive()!\"\n [matSortDirection]=\"sortDirection()!\" [matSortDisableClear]=\"sortDisableClear()\" [matSortDisabled]=\"sortDisabled()\"\n [matSortStart]=\"sortStart()\" (matSortChange)=\"sortChange.emit($event)\">\n\n <!-- Selection column -->\n @if(rowSelectable())\n {\n <ng-container [matColumnDef]=\"selectionColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"selection-cell\" aria-label=\"Select rows\">\n @if(multiSelectable() && showSelectAllCheckbox())\n {\n <mat-checkbox aria-label=\"Select all\" [checked]=\"rowSelection().hasValue() && allRowsSelected()\"\n [indeterminate]=\"rowSelection().hasValue() && !allRowsSelected()\"\n (change)=\"$event ? toggleSelectAllCheckbox() : null\">\n </mat-checkbox>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"selection-cell\"\n (click)=\"$event.stopPropagation()\">\n @if(multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-checkbox aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-checkbox>\n }\n\n @if(!multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-radio-button aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" [value]=\"rowSelection().isSelected(row)\"\n (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-radio-button>\n }\n </td>\n </ng-container>\n }\n\n <!-- Context menu column -->\n @if(showContextMenu())\n {\n <ng-container [matColumnDef]=\"contextMenuColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"action-cell\" aria-label=\"Context Menu Actions\"></th>\n\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"action-cell\">\n @if(isTemplateRef(contextMenuTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"contextMenuTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row }\">\n </ng-template>\n }\n @else{\n <entry-cell-context-menu [items]=\"contextMenuItems()\" [rowData]=\"row\"\n [rowMenuFormatter]=\"rowContextMenuFormatter()\"\n (selected)=\"contextMenuItemSelected.emit({itemId: $event, rowData: row})\"></entry-cell-context-menu>\n }\n </td>\n </ng-container>\n }\n\n @for(column of columns(); track column.field)\n {\n <ng-container [matColumnDef]=\"column.field\" [sticky]=\"column.pinned==='left'\" [stickyEnd]=\"column.pinned==='right'\">\n <th mat-header-cell *matHeaderCellDef [class]=\"getColumnClassList(column)\"\n [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(headerTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(headerTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else if(headerTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()),\n column.field))) {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else {\n <div [mat-sort-header]=\"column.sortProperties?.id || column.field\" [disabled]=\"!column.sortable\"\n [disableClear]=\"column.sortProperties?.disableClear\">\n <span>{{column.header}}</span>\n </div>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n [class]=\"getColumnClassList(column)\" [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(cellTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(cellTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(cellTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()),\n column.field)))\n {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(column.cellTemplate) {\n <ng-template [ngTemplateOutlet]=\"column.cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else {\n <entry-cell [rowData]=\"row\" [columnDefinition]=\"column\"></entry-cell>\n }\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; let index = index; let dataIndex = dataIndex; columns: displayedColumns();\"\n [class]=\"getRowClassList(row, getIndex(index, dataIndex))\" [attr.tabindex]=\"rowFocusVisible() ? 0 : -1\"\n (click)=\"rowClick.emit(row)\" (keydown.enter)=\"rowClick.emit(row)\">\n </tr>\n</table>\n\n<!-- No results -->\n@if(hasNoResult())\n{\n<div class=\"no-results mat-body-2\">\n @if(isTemplateRef(noResultTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"noResultTemplate()\"></ng-template>\n }\n @else {\n {{noResultText()}}\n }\n</div>\n}\n<!-- Pagination -->\n@if(isTemplateRef(paginationTemplate()))\n{\n<ng-template [ngTemplateOutlet]=\"paginationTemplate()\"></ng-template>\n}\n@else if(shouldShowPaginator()) {\n<mat-paginator class=\"pagination\" [showFirstLastButtons]=\"showFirstLastButtons()\" [length]=\"total()\"\n [pageIndex]=\"pageIndex()\" [pageSize]=\"pageSize()\" [pageSizeOptions]=\"pageSizeOptions()\"\n [hidePageSize]=\"hidePageSize()\" (page)=\"handlePage($event)\" [disabled]=\"pageDisabled()\">\n</mat-paginator>\n}", dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i1$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i1$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i5.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: EntryCellComponent, selector: "entry-cell", inputs: ["rowData", "columnDefinition"] }, { kind: "component", type: EntryCellContextMenuComponent, selector: "entry-cell-context-menu", inputs: ["items", "rowMenuFormatter", "rowData", "triggerIcon", "isSubMenu"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
306
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntryTableComponent, isStandalone: true, selector: "entry-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, showPaginator: { classPropertyName: "showPaginator", publicName: "showPaginator", isSignal: true, isRequired: false, transformFunction: null }, pageDisabled: { classPropertyName: "pageDisabled", publicName: "pageDisabled", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastButtons: { classPropertyName: "showFirstLastButtons", publicName: "showFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, hidePageSize: { classPropertyName: "hidePageSize", publicName: "hidePageSize", isSignal: true, isRequired: false, transformFunction: null }, paginationTemplate: { classPropertyName: "paginationTemplate", publicName: "paginationTemplate", isSignal: true, isRequired: false, transformFunction: null }, sortActive: { classPropertyName: "sortActive", publicName: "sortActive", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, sortDisableClear: { classPropertyName: "sortDisableClear", publicName: "sortDisableClear", isSignal: true, isRequired: false, transformFunction: null }, sortDisabled: { classPropertyName: "sortDisabled", publicName: "sortDisabled", isSignal: true, isRequired: false, transformFunction: null }, sortStart: { classPropertyName: "sortStart", publicName: "sortStart", isSignal: true, isRequired: false, transformFunction: null }, rowHover: { classPropertyName: "rowHover", publicName: "rowHover", isSignal: true, isRequired: false, transformFunction: null }, rowStriped: { classPropertyName: "rowStriped", publicName: "rowStriped", isSignal: true, isRequired: false, transformFunction: null }, rowFocusVisible: { classPropertyName: "rowFocusVisible", publicName: "rowFocusVisible", isSignal: true, isRequired: false, transformFunction: null }, multiSelectable: { classPropertyName: "multiSelectable", publicName: "multiSelectable", isSignal: true, isRequired: false, transformFunction: null }, rowSelected: { classPropertyName: "rowSelected", publicName: "rowSelected", isSignal: true, isRequired: false, transformFunction: null }, rowSelectable: { classPropertyName: "rowSelectable", publicName: "rowSelectable", isSignal: true, isRequired: false, transformFunction: null }, showSelectAllCheckbox: { classPropertyName: "showSelectAllCheckbox", publicName: "showSelectAllCheckbox", isSignal: true, isRequired: false, transformFunction: null }, rowSelectionFormatter: { classPropertyName: "rowSelectionFormatter", publicName: "rowSelectionFormatter", isSignal: true, isRequired: false, transformFunction: null }, rowClassFormatter: { classPropertyName: "rowClassFormatter", publicName: "rowClassFormatter", isSignal: true, isRequired: false, transformFunction: null }, showContextMenu: { classPropertyName: "showContextMenu", publicName: "showContextMenu", isSignal: true, isRequired: false, transformFunction: null }, contextMenuItems: { classPropertyName: "contextMenuItems", publicName: "contextMenuItems", isSignal: true, isRequired: false, transformFunction: null }, contextMenuTemplate: { classPropertyName: "contextMenuTemplate", publicName: "contextMenuTemplate", isSignal: true, isRequired: false, transformFunction: null }, rowContextMenuFormatter: { classPropertyName: "rowContextMenuFormatter", publicName: "rowContextMenuFormatter", isSignal: true, isRequired: false, transformFunction: null }, noResultText: { classPropertyName: "noResultText", publicName: "noResultText", isSignal: true, isRequired: false, transformFunction: null }, noResultTemplate: { classPropertyName: "noResultTemplate", publicName: "noResultTemplate", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: "cellTemplate", publicName: "cellTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChange: "pageChange", sortChange: "sortChange", rowClick: "rowClick", contextMenuItemSelected: "contextMenuItemSelected" }, host: { classAttribute: "entry-table" }, ngImport: i0, template: "<!-- Table content -->\n<table mat-table [class.mat-table-hover]=\"rowHover()\" [class.mat-table-striped]=\"rowStriped()\"\n [class.mat-table-with-data]=\"!hasNoResult()\" [dataSource]=\"dataSource\" matSort [matSortActive]=\"sortActive()!\"\n [matSortDirection]=\"sortDirection()!\" [matSortDisableClear]=\"sortDisableClear()\" [matSortDisabled]=\"sortDisabled()\"\n [matSortStart]=\"sortStart()\" (matSortChange)=\"sortChange.emit($event)\">\n\n <!-- Selection column -->\n @if(rowSelectable())\n {\n <ng-container [matColumnDef]=\"selectionColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"selection-cell\" aria-label=\"Select rows\">\n @if(multiSelectable() && showSelectAllCheckbox())\n {\n <mat-checkbox aria-label=\"Select all\" [checked]=\"rowSelection().hasValue() && allRowsSelected()\"\n [indeterminate]=\"rowSelection().hasValue() && !allRowsSelected()\"\n (change)=\"$event ? toggleSelectAllCheckbox() : null\">\n </mat-checkbox>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"selection-cell\"\n (click)=\"$event.stopPropagation()\">\n @if(multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-checkbox aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-checkbox>\n }\n\n @if(!multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-radio-button aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" [value]=\"rowSelection().isSelected(row)\"\n (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-radio-button>\n }\n </td>\n </ng-container>\n }\n\n <!-- Context menu column -->\n @if(showContextMenu())\n {\n <ng-container [matColumnDef]=\"contextMenuColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"action-cell\" aria-label=\"Context Menu Actions\"></th>\n\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"action-cell\">\n @if(isTemplateRef(contextMenuTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"contextMenuTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row }\">\n </ng-template>\n }\n @else{\n <entry-cell-context-menu [items]=\"contextMenuItems()\" [rowData]=\"row\"\n [rowMenuFormatter]=\"rowContextMenuFormatter()\"\n (selected)=\"contextMenuItemSelected.emit({itemId: $event, rowData: row})\"></entry-cell-context-menu>\n }\n </td>\n </ng-container>\n }\n\n @for(column of columns(); track column.field)\n {\n <ng-container [matColumnDef]=\"column.field\" [sticky]=\"column.pinned==='left'\" [stickyEnd]=\"column.pinned==='right'\">\n <th mat-header-cell *matHeaderCellDef [class]=\"getColumnClassList(column)\"\n [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(headerTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(headerTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else if(headerTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()),\n column.field))) {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else {\n <div [mat-sort-header]=\"column.sortProperties?.id || column.field\" [disabled]=\"!column.sortable\"\n [disableClear]=\"column.sortProperties?.disableClear\">\n <span>{{column.header}}</span>\n </div>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n [class]=\"getColumnClassList(column)\" [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(cellTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(cellTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(cellTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()),\n column.field)))\n {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(column.cellTemplate) {\n <ng-template [ngTemplateOutlet]=\"column.cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else {\n <entry-cell [rowData]=\"row\" [columnDefinition]=\"column\"></entry-cell>\n }\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; let index = index; let dataIndex = dataIndex; columns: displayedColumns();\"\n [class]=\"getRowClassList(row, getIndex(index, dataIndex))\" [attr.tabindex]=\"rowFocusVisible() ? 0 : -1\"\n (click)=\"rowClick.emit(row)\" (keydown.enter)=\"rowClick.emit(row)\">\n </tr>\n</table>\n\n<!-- No results -->\n@if(hasNoResult())\n{\n<div class=\"no-results mat-body-2\">\n @if(isTemplateRef(noResultTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"noResultTemplate()\"></ng-template>\n }\n @else {\n {{noResultText()}}\n }\n</div>\n}\n<!-- Pagination -->\n@if(isTemplateRef(paginationTemplate()))\n{\n<ng-template [ngTemplateOutlet]=\"paginationTemplate()\"></ng-template>\n}\n@else if(shouldShowPaginator()) {\n<mat-paginator class=\"pagination\" [showFirstLastButtons]=\"showFirstLastButtons()\" [length]=\"total()\"\n [pageIndex]=\"pageIndex()\" [pageSize]=\"pageSize()\" [pageSizeOptions]=\"pageSizeOptions()\"\n [hidePageSize]=\"hidePageSize()\" (page)=\"handlePage($event)\" [disabled]=\"pageDisabled()\">\n</mat-paginator>\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i3$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i3$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "component", type: i5.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i6.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: EntryCellComponent, selector: "entry-cell", inputs: ["rowData", "columnDefinition"] }, { kind: "component", type: EntryCellContextMenuComponent, selector: "entry-cell-context-menu", inputs: ["items", "rowMenuFormatter", "rowData", "triggerIcon", "isSubMenu"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
306
307
  }
307
308
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryTableComponent, decorators: [{
308
309
  type: Component,
309
- args: [{ selector: 'entry-table', host: { class: 'entry-table' }, imports: [MatTableModule, MatSortModule, MatCheckboxModule, MatRadioModule, MatPaginatorModule, EntryCellComponent, EntryCellContextMenuComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Table content -->\n<table mat-table [class.mat-table-hover]=\"rowHover()\" [class.mat-table-striped]=\"rowStriped()\"\n [class.mat-table-with-data]=\"!hasNoResult()\" [dataSource]=\"dataSource\" matSort [matSortActive]=\"sortActive()!\"\n [matSortDirection]=\"sortDirection()!\" [matSortDisableClear]=\"sortDisableClear()\" [matSortDisabled]=\"sortDisabled()\"\n [matSortStart]=\"sortStart()\" (matSortChange)=\"sortChange.emit($event)\">\n\n <!-- Selection column -->\n @if(rowSelectable())\n {\n <ng-container [matColumnDef]=\"selectionColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"selection-cell\" aria-label=\"Select rows\">\n @if(multiSelectable() && showSelectAllCheckbox())\n {\n <mat-checkbox aria-label=\"Select all\" [checked]=\"rowSelection().hasValue() && allRowsSelected()\"\n [indeterminate]=\"rowSelection().hasValue() && !allRowsSelected()\"\n (change)=\"$event ? toggleSelectAllCheckbox() : null\">\n </mat-checkbox>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"selection-cell\"\n (click)=\"$event.stopPropagation()\">\n @if(multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-checkbox aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-checkbox>\n }\n\n @if(!multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-radio-button aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" [value]=\"rowSelection().isSelected(row)\"\n (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-radio-button>\n }\n </td>\n </ng-container>\n }\n\n <!-- Context menu column -->\n @if(showContextMenu())\n {\n <ng-container [matColumnDef]=\"contextMenuColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"action-cell\" aria-label=\"Context Menu Actions\"></th>\n\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"action-cell\">\n @if(isTemplateRef(contextMenuTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"contextMenuTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row }\">\n </ng-template>\n }\n @else{\n <entry-cell-context-menu [items]=\"contextMenuItems()\" [rowData]=\"row\"\n [rowMenuFormatter]=\"rowContextMenuFormatter()\"\n (selected)=\"contextMenuItemSelected.emit({itemId: $event, rowData: row})\"></entry-cell-context-menu>\n }\n </td>\n </ng-container>\n }\n\n @for(column of columns(); track column.field)\n {\n <ng-container [matColumnDef]=\"column.field\" [sticky]=\"column.pinned==='left'\" [stickyEnd]=\"column.pinned==='right'\">\n <th mat-header-cell *matHeaderCellDef [class]=\"getColumnClassList(column)\"\n [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(headerTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(headerTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else if(headerTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()),\n column.field))) {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else {\n <div [mat-sort-header]=\"column.sortProperties?.id || column.field\" [disabled]=\"!column.sortable\"\n [disableClear]=\"column.sortProperties?.disableClear\">\n <span>{{column.header}}</span>\n </div>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n [class]=\"getColumnClassList(column)\" [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(cellTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(cellTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(cellTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()),\n column.field)))\n {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(column.cellTemplate) {\n <ng-template [ngTemplateOutlet]=\"column.cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else {\n <entry-cell [rowData]=\"row\" [columnDefinition]=\"column\"></entry-cell>\n }\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; let index = index; let dataIndex = dataIndex; columns: displayedColumns();\"\n [class]=\"getRowClassList(row, getIndex(index, dataIndex))\" [attr.tabindex]=\"rowFocusVisible() ? 0 : -1\"\n (click)=\"rowClick.emit(row)\" (keydown.enter)=\"rowClick.emit(row)\">\n </tr>\n</table>\n\n<!-- No results -->\n@if(hasNoResult())\n{\n<div class=\"no-results mat-body-2\">\n @if(isTemplateRef(noResultTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"noResultTemplate()\"></ng-template>\n }\n @else {\n {{noResultText()}}\n }\n</div>\n}\n<!-- Pagination -->\n@if(isTemplateRef(paginationTemplate()))\n{\n<ng-template [ngTemplateOutlet]=\"paginationTemplate()\"></ng-template>\n}\n@else if(shouldShowPaginator()) {\n<mat-paginator class=\"pagination\" [showFirstLastButtons]=\"showFirstLastButtons()\" [length]=\"total()\"\n [pageIndex]=\"pageIndex()\" [pageSize]=\"pageSize()\" [pageSizeOptions]=\"pageSizeOptions()\"\n [hidePageSize]=\"hidePageSize()\" (page)=\"handlePage($event)\" [disabled]=\"pageDisabled()\">\n</mat-paginator>\n}" }]
310
+ args: [{ selector: 'entry-table', host: { class: 'entry-table' }, imports: [CommonModule, MatTableModule, MatSortModule, MatCheckboxModule, MatRadioModule,
311
+ MatPaginatorModule, EntryCellComponent, EntryCellContextMenuComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Table content -->\n<table mat-table [class.mat-table-hover]=\"rowHover()\" [class.mat-table-striped]=\"rowStriped()\"\n [class.mat-table-with-data]=\"!hasNoResult()\" [dataSource]=\"dataSource\" matSort [matSortActive]=\"sortActive()!\"\n [matSortDirection]=\"sortDirection()!\" [matSortDisableClear]=\"sortDisableClear()\" [matSortDisabled]=\"sortDisabled()\"\n [matSortStart]=\"sortStart()\" (matSortChange)=\"sortChange.emit($event)\">\n\n <!-- Selection column -->\n @if(rowSelectable())\n {\n <ng-container [matColumnDef]=\"selectionColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"selection-cell\" aria-label=\"Select rows\">\n @if(multiSelectable() && showSelectAllCheckbox())\n {\n <mat-checkbox aria-label=\"Select all\" [checked]=\"rowSelection().hasValue() && allRowsSelected()\"\n [indeterminate]=\"rowSelection().hasValue() && !allRowsSelected()\"\n (change)=\"$event ? toggleSelectAllCheckbox() : null\">\n </mat-checkbox>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"selection-cell\"\n (click)=\"$event.stopPropagation()\">\n @if(multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-checkbox aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-checkbox>\n }\n\n @if(!multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-radio-button aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" [value]=\"rowSelection().isSelected(row)\"\n (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-radio-button>\n }\n </td>\n </ng-container>\n }\n\n <!-- Context menu column -->\n @if(showContextMenu())\n {\n <ng-container [matColumnDef]=\"contextMenuColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"action-cell\" aria-label=\"Context Menu Actions\"></th>\n\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"action-cell\">\n @if(isTemplateRef(contextMenuTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"contextMenuTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row }\">\n </ng-template>\n }\n @else{\n <entry-cell-context-menu [items]=\"contextMenuItems()\" [rowData]=\"row\"\n [rowMenuFormatter]=\"rowContextMenuFormatter()\"\n (selected)=\"contextMenuItemSelected.emit({itemId: $event, rowData: row})\"></entry-cell-context-menu>\n }\n </td>\n </ng-container>\n }\n\n @for(column of columns(); track column.field)\n {\n <ng-container [matColumnDef]=\"column.field\" [sticky]=\"column.pinned==='left'\" [stickyEnd]=\"column.pinned==='right'\">\n <th mat-header-cell *matHeaderCellDef [class]=\"getColumnClassList(column)\"\n [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(headerTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(headerTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else if(headerTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()),\n column.field))) {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else {\n <div [mat-sort-header]=\"column.sortProperties?.id || column.field\" [disabled]=\"!column.sortable\"\n [disableClear]=\"column.sortProperties?.disableClear\">\n <span>{{column.header}}</span>\n </div>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n [class]=\"getColumnClassList(column)\" [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(cellTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(cellTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(cellTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()),\n column.field)))\n {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(column.cellTemplate) {\n <ng-template [ngTemplateOutlet]=\"column.cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else {\n <entry-cell [rowData]=\"row\" [columnDefinition]=\"column\"></entry-cell>\n }\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; let index = index; let dataIndex = dataIndex; columns: displayedColumns();\"\n [class]=\"getRowClassList(row, getIndex(index, dataIndex))\" [attr.tabindex]=\"rowFocusVisible() ? 0 : -1\"\n (click)=\"rowClick.emit(row)\" (keydown.enter)=\"rowClick.emit(row)\">\n </tr>\n</table>\n\n<!-- No results -->\n@if(hasNoResult())\n{\n<div class=\"no-results mat-body-2\">\n @if(isTemplateRef(noResultTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"noResultTemplate()\"></ng-template>\n }\n @else {\n {{noResultText()}}\n }\n</div>\n}\n<!-- Pagination -->\n@if(isTemplateRef(paginationTemplate()))\n{\n<ng-template [ngTemplateOutlet]=\"paginationTemplate()\"></ng-template>\n}\n@else if(shouldShowPaginator()) {\n<mat-paginator class=\"pagination\" [showFirstLastButtons]=\"showFirstLastButtons()\" [length]=\"total()\"\n [pageIndex]=\"pageIndex()\" [pageSize]=\"pageSize()\" [pageSizeOptions]=\"pageSizeOptions()\"\n [hidePageSize]=\"hidePageSize()\" (page)=\"handlePage($event)\" [disabled]=\"pageDisabled()\">\n</mat-paginator>\n}" }]
310
312
  }], ctorParameters: () => [], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], showPaginator: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPaginator", required: false }] }], pageDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageDisabled", required: false }] }], showFirstLastButtons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFirstLastButtons", required: false }] }], pageSizeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeOptions", required: false }] }], hidePageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidePageSize", required: false }] }], paginationTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginationTemplate", required: false }] }], pageChange: [{ type: i0.Output, args: ["pageChange"] }], sortActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortActive", required: false }] }], sortDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDirection", required: false }] }], sortDisableClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDisableClear", required: false }] }], sortDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDisabled", required: false }] }], sortStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortStart", required: false }] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], rowHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHover", required: false }] }], rowStriped: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowStriped", required: false }] }], rowFocusVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowFocusVisible", required: false }] }], rowClick: [{ type: i0.Output, args: ["rowClick"] }], multiSelectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSelectable", required: false }] }], rowSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowSelected", required: false }] }], rowSelectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowSelectable", required: false }] }], showSelectAllCheckbox: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSelectAllCheckbox", required: false }] }], rowSelectionFormatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowSelectionFormatter", required: false }] }], rowClassFormatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClassFormatter", required: false }] }], showContextMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "showContextMenu", required: false }] }], contextMenuItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenuItems", required: false }] }], contextMenuTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenuTemplate", required: false }] }], rowContextMenuFormatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowContextMenuFormatter", required: false }] }], contextMenuItemSelected: [{ type: i0.Output, args: ["contextMenuItemSelected"] }], noResultText: [{ type: i0.Input, args: [{ isSignal: true, alias: "noResultText", required: false }] }], noResultTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "noResultTemplate", required: false }] }], headerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTemplate", required: false }] }], cellTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "cellTemplate", required: false }] }] } });
311
313
 
312
314
  class EntryTableModule {
@@ -320,7 +322,6 @@ class EntryTableModule {
320
322
  MatIconModule,
321
323
  MatMenuModule,
322
324
  MatRadioModule,
323
- CommonModule,
324
325
  MatButtonModule,
325
326
  EntryTableComponent,
326
327
  EntryCellComponent,
@@ -340,10 +341,11 @@ class EntryTableModule {
340
341
  MatIconModule,
341
342
  MatMenuModule,
342
343
  MatRadioModule,
343
- CommonModule,
344
344
  MatButtonModule,
345
345
  EntryTableComponent,
346
- EntryCellContextMenuComponent] }); }
346
+ EntryCellComponent,
347
+ EntryCellContextMenuComponent,
348
+ EntryCellFormattedValueComponent] }); }
347
349
  }
348
350
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryTableModule, decorators: [{
349
351
  type: NgModule,
@@ -358,7 +360,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
358
360
  MatIconModule,
359
361
  MatMenuModule,
360
362
  MatRadioModule,
361
- CommonModule,
362
363
  MatButtonModule,
363
364
  EntryTableComponent,
364
365
  EntryCellComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"enigmatry-entry-components-table.mjs","sources":["../../../../libs/entry-components/table/interfaces/entry-table-configuration.ts","../../../../libs/entry-components/table/interfaces/paged-query.ts","../../../../libs/entry-components/table/components/entry-cell-formatted-value/entry-cell-formatted-value.component.ts","../../../../libs/entry-components/table/components/entry-cell-formatted-value/entry-cell-formatted-value.component.html","../../../../libs/entry-components/table/components/entry-cell/entry-cell.component.ts","../../../../libs/entry-components/table/components/entry-cell/entry-cell.component.html","../../../../libs/entry-components/table/components/entry-cell-context-menu/entry-cell-context-menu.component.ts","../../../../libs/entry-components/table/components/entry-cell-context-menu/entry-cell-context-menu.component.html","../../../../libs/entry-components/table/components/entry-table/entry-table.component.ts","../../../../libs/entry-components/table/components/entry-table/entry-table.component.html","../../../../libs/entry-components/table/entry-table.module.ts","../../../../libs/entry-components/table/enigmatry-entry-components-table.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\nimport { createInjectionToken, provideConfig } from '@enigmatry/entry-components/common';\n\nexport class EntryTableConfiguration {\n /** Show paginator, default is true */\n showPaginator = true;\n /** Show first and last pagination buttons, default is false */\n showFirstLastButtons = false;\n /** Page size, default 20 */\n pageSize = 20;\n /** Page size options, default [20, 50, 100] */\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n pageSizeOptions = [20, 50, 100];\n /** Hide page size options, default is false */\n hidePageSize = false;\n /** Hide pagination, default is false */\n noResultsText = 'No results found';\n /** Row focus visible, default is false */\n rowFocusVisible = false;\n\n constructor(config: Partial<EntryTableConfiguration> = {}) {\n this.showPaginator = config.showPaginator ?? this.showPaginator;\n this.showFirstLastButtons = config.showFirstLastButtons ?? this.showFirstLastButtons;\n this.pageSize = config.pageSize ?? this.pageSize;\n this.pageSizeOptions = config.pageSizeOptions ?? this.pageSizeOptions;\n this.hidePageSize = config.hidePageSize ?? this.hidePageSize;\n this.noResultsText = config.noResultsText ?? this.noResultsText;\n this.rowFocusVisible = config.rowFocusVisible ?? this.rowFocusVisible;\n }\n}\n\n/** Entry table config injection token\n * Defaults:\n * - showPaginator: true\n * - showFirstLastButtons: false\n * - pageSize: 20\n * - pageSizeOptions: [20, 50, 100]\n * - hidePageSize: false\n * - noResultsText: 'No results found'\n * - rowFocusVisible: false\n */\nexport const ENTRY_TABLE_CONFIGURATION = createInjectionToken(new EntryTableConfiguration());\n\n/** Provide entry table config */\nexport const provideEntryTableConfiguration = (config: Partial<EntryTableConfiguration>): Provider =>\n provideConfig(ENTRY_TABLE_CONFIGURATION, () => new EntryTableConfiguration(config));\n\n/** Default percentage multiplier injection token */\nexport const DEFAULT_PERCENTAGE_MULTIPLIER: InjectionToken<number> = new InjectionToken<number>('');\n","import { Params } from '@angular/router';\nimport { OnPage, OnSort, PageEvent, SortDirection, SortEvent } from './pagination';\n\nexport const defaultPageSize = 20;\nexport const defaultPageNumber = 1;\n\nexport class PagedQuery implements OnPage, OnSort {\n pageNumber = defaultPageNumber;\n pageSize = defaultPageSize;\n sortBy?: string;\n sortDirection?: SortDirection;\n\n readonly sortChange = (sort: SortEvent): void => {\n if (sort.active) {\n this.sortBy = sort.active;\n this.sortDirection = this.getValueIfNotEmpty(sort.direction);\n this.pageNumber = defaultPageNumber;\n }\n };\n\n readonly pageChange = (page: PageEvent): void => {\n this.pageNumber = page.pageIndex + 1;\n this.pageSize = page.pageSize;\n };\n\n readonly applyRouteChanges = (queryParams: Params): void => {\n this.pageNumber = queryParams['pageNumber'] ? Number(queryParams['pageNumber']) : defaultPageNumber;\n this.pageSize = queryParams['pageSize'] ? Number(queryParams['pageSize']) : this.pageSize;\n this.sortBy = this.getValueIfNotEmpty(queryParams['sortBy'] ?? this.sortBy);\n this.sortDirection = this.getValueIfNotEmpty(queryParams['sortDirection'] ?? this.sortDirection);\n };\n\n readonly getRouteQueryParams = (): Params => {\n return {\n pageNumber: this.pageNumber,\n pageSize: this.pageSize,\n sortBy: this.sortBy,\n sortDirection: this.sortDirection\n };\n };\n\n readonly getValueIfNotEmpty = <T>(value: T): T | undefined => value ? value : undefined;\n}\n","import { CurrencyPipe, DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { ColumnTypeParameter } from '../../interfaces';\nimport { DEFAULT_PERCENTAGE_MULTIPLIER } from '../../interfaces/entry-table-configuration';\n\n@Component({\n imports: [DatePipe, DecimalPipe, PercentPipe, CurrencyPipe],\n selector: 'entry-cell-formatted-value',\n templateUrl: './entry-cell-formatted-value.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryCellFormattedValueComponent {\n readonly value = input<string | undefined>();\n readonly type = input<string | undefined>();\n readonly typeParameter = input<ColumnTypeParameter & { multiplier?: number } | undefined>();\n\n public readonly defaultPercentageMultiplier: number = inject(DEFAULT_PERCENTAGE_MULTIPLIER);\n}\n","@switch (type()) {\n @case('boolean'){\n {{value() ? '\\u2713' : ''}}\n }\n @case('number'){\n {{value() | number: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('currency'){\n {{value() | currency: typeParameter()?.currencyCode : typeParameter()?.display : typeParameter()?.digitsInfo :\n typeParameter()?.locale}}\n }\n @case('percent'){\n {{+(value() ?? 0) * (typeParameter()?.multiplier ?? defaultPercentageMultiplier) | percent: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('date'){\n {{value() | date: typeParameter()?.format : typeParameter()?.timezone : typeParameter()?.locale}}\n }\n @case('link'){\n <a [href]=\"value()\" target=\"_blank\">{{value()}}</a>\n }\n @default{\n {{value()}}\n }\n}","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ColumnDefinition } from '../../interfaces';\nimport { EntryCellFormattedValueComponent } from '../entry-cell-formatted-value/entry-cell-formatted-value.component';\n\n@Component({\n imports: [EntryCellFormattedValueComponent],\n selector: 'entry-cell',\n templateUrl: './entry-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryCellComponent<T> {\n readonly rowData = input.required<T>();\n readonly columnDefinition = input.required<ColumnDefinition>();\n readonly value = computed(() => this.getCellValue(this.rowData(), this.columnDefinition()));\n readonly printableValue = computed(() => this.value() as string ?? '');\n\n protected readonly getCellValue = (rowData: T, columnDefinition: ColumnDefinition) => {\n const keys = columnDefinition.field ? columnDefinition.field.split('.') : [];\n return keys.reduce((data, key) => data && (data as Record<string, T>)[key], rowData);\n };\n}\n","<entry-cell-formatted-value [value]=\"printableValue()\" [type]=\"columnDefinition().type!\"\n [typeParameter]=\"columnDefinition().typeParameter\"></entry-cell-formatted-value>","import { ChangeDetectionStrategy, Component, computed, input, output, viewChild } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule, MatMenuPanel } from '@angular/material/menu';\nimport { ContextMenuItem } from '../../interfaces/context-menu-item';\nimport { RowContextMenuFormatter } from '../../interfaces/row-context-menu-formatter';\n\n@Component({\n selector: 'entry-cell-context-menu',\n imports: [MatMenuModule, MatButtonModule, MatIconModule, EntryCellContextMenuComponent],\n templateUrl: './entry-cell-context-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryCellContextMenuComponent {\n readonly items = input.required<ContextMenuItem[]>();\n readonly rowMenuFormatter = input<RowContextMenuFormatter>();\n readonly rowData = input<unknown>();\n readonly triggerIcon = input<string>('more_vert');\n readonly isSubMenu = input<boolean>(false);\n readonly selected = output<string>();\n readonly menuItems = computed(() => (this.rowMenuFormatter()?.items\n ? this.rowMenuFormatter()?.items(this.rowData)\n : this.items()) ?? []);\n readonly menu = viewChild<MatMenuPanel>('menu');\n readonly subMenu = viewChild<EntryCellContextMenuComponent>('subMenu');\n}\n","@if(!isSubMenu())\n{\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\">\n <mat-icon>{{triggerIcon()}}</mat-icon>\n </button>\n}\n\n<mat-menu #menu=\"matMenu\" class=\"entry-table-menu\" role=\"menu\">\n @for(menuItem of menuItems(); track menuItem.id)\n {\n <button mat-menu-item [disabled]=\"menuItem.disabled\"\n [matMenuTriggerFor]=\"menuItem.items?.length ? (subMenu()?.menu() ?? null) : null\"\n (click)=\"!menuItem.items?.length && selected.emit(menuItem.id)\" class=\"context-menu-item\">\n\n @if(menuItem.icon)\n {\n <mat-icon class=\"icon\">{{menuItem.icon}}</mat-icon>\n }\n\n <span class=\"description\">{{menuItem.name}}</span>\n\n @if(menuItem.items?.length)\n {\n <entry-cell-context-menu #subMenu [items]=\"menuItem.items ?? []\" [rowData]=\"rowData()\" [isSubMenu]=\"true\"\n (selected)=\"selected.emit($event)\">\n </entry-cell-context-menu>\n }\n </button>\n }\n</mat-menu>","/* eslint-disable max-lines */\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n Component, ChangeDetectionStrategy, TemplateRef, ElementRef, inject, input, output, computed,\n linkedSignal,\n effect,\n signal\n} from '@angular/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSortModule, Sort, SortDirection } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport {\n ColumnDefinition, PagedData, RowSelectionFormatter, RowClassFormatter, ContextMenuItem,\n RowContextMenuFormatter, CellTemplate, ENTRY_TABLE_CONFIGURATION, EntryTableConfiguration\n} from '../../interfaces';\nimport { EntryCellComponent } from '../entry-cell/entry-cell.component';\nimport { EntryCellContextMenuComponent } from '../entry-cell-context-menu/entry-cell-context-menu.component';\n\n@Component({\n selector: 'entry-table',\n host: { class: 'entry-table' },\n imports: [MatTableModule, MatSortModule, MatCheckboxModule, MatRadioModule, MatPaginatorModule, EntryCellComponent, EntryCellContextMenuComponent],\n templateUrl: './entry-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryTableComponent<T> {\n private readonly configuration: EntryTableConfiguration = inject(ENTRY_TABLE_CONFIGURATION);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n dataSource = new MatTableDataSource<T>([]);\n readonly selectionColumn = 'selection-column';\n readonly contextMenuColumn = 'context-menu-column';\n\n readonly columns = input<ColumnDefinition[]>([]);\n readonly displayedColumns = computed<string[]>(() => {\n const result = this.columns().filter(item => !item.hide)\n .map(item => item.field);\n\n if (this.rowSelectable() && !result.includes(this.selectionColumn)) {\n result.unshift(this.selectionColumn);\n }\n\n if (this.showContextMenu() && !result.includes(this.contextMenuColumn)) {\n result.push(this.contextMenuColumn);\n }\n\n return result;\n });\n\n // Data\n readonly data = input<T[] | PagedData<T> | null | undefined>([]);\n private readonly trueData = signal(<T[] | null>([]));\n readonly total = linkedSignal<number>(() => 0);\n readonly loading = input<boolean>(false);\n\n // Pagination\n readonly showPaginator = input<boolean>(this.configuration.showPaginator);\n readonly pageDisabled = input<boolean>(this.configuration.showFirstLastButtons);\n readonly showFirstLastButtons = input<boolean>(false);\n readonly pageIndex = linkedSignal<number>(() => 0);\n readonly pageSize = linkedSignal<number>(() => 0);\n readonly pageSizeOptions = input<number[]>(this.configuration.pageSizeOptions);\n readonly hidePageSize = input<boolean>(this.configuration.hidePageSize);\n readonly paginationTemplate = input<TemplateRef<unknown>>();\n readonly shouldShowPaginator = computed(() => {\n return this.showPaginator() && this.trueData()?.length;\n });\n\n readonly pageChange = output<PageEvent>();\n\n // Sort\n readonly sortActive = input<string>();\n readonly sortDirection = input<SortDirection>();\n readonly sortDisableClear = input<boolean>(false);\n readonly sortDisabled = input<boolean>(false);\n readonly sortStart = input<'asc' | 'desc'>('asc');\n readonly sortChange = output<Sort>();\n\n // Row\n readonly rowHover = input<boolean>(false);\n readonly rowStriped = input<boolean>(false);\n readonly rowFocusVisible = input<boolean>(this.configuration.rowFocusVisible);\n readonly rowClick = output<T>();\n\n // Row selection\n readonly multiSelectable = input<boolean>(true);\n readonly rowSelection = linkedSignal(() => this.rowSelectable() ?\n new SelectionModel<T>(this.multiSelectable(), this.rowSelected()) : new SelectionModel<T>(true, []));\n\n readonly rowSelected = input<T[]>([]);\n readonly rowSelectable = input<boolean>(false);\n readonly showSelectAllCheckbox = input<boolean>(true);\n readonly rowSelectionFormatter = input<RowSelectionFormatter>({});\n readonly rowClassFormatter = input<RowClassFormatter>();\n\n // Context menu\n readonly showContextMenu = input<boolean>(false);\n readonly contextMenuItems = input<ContextMenuItem[]>([]);\n readonly contextMenuTemplate = input<TemplateRef<unknown> | null>(null);\n readonly rowContextMenuFormatter = input<RowContextMenuFormatter>();\n readonly contextMenuItemSelected = output<{ itemId: string; rowData: T }>();\n\n // No Result\n readonly noResultText = input<string>(this.configuration.noResultsText);\n readonly noResultTemplate = input<TemplateRef<unknown> | null>(null);\n readonly hasNoResult = computed(() => !this.trueData()?.length && !this.loading());\n\n readonly headerTemplate = input<TemplateRef<unknown> | CellTemplate | Record<string, TemplateRef<unknown>>>();\n readonly unknownTemplateAsTemplate = (template: unknown) => template as TemplateRef<unknown>;\n readonly cellTemplate = input<TemplateRef<unknown> | CellTemplate | Record<string, TemplateRef<unknown>>>();\n\n constructor() {\n effect(() => {\n if (this.data()) {\n let trueData: T[];\n if (Array.isArray(this.data())) {\n trueData = this.data() as T[];\n } else {\n const page = this.data() as PagedData<T>;\n this.total.set(page.totalCount ?? 0);\n this.pageSize.set(page.pageSize ?? this.pageSize() ?? this.configuration.pageSize);\n this.pageIndex.set(page.pageNumber ? page.pageNumber - 1 : this.pageIndex());\n trueData = (this.data() as PagedData<T>)?.items ?? [];\n }\n\n if (this.dataSource) {\n this.dataSource.disconnect();\n }\n\n this.dataSource = new MatTableDataSource(trueData);\n this.trueData.set(trueData);\n this.scrollToTop();\n }\n });\n }\n\n readonly toTemplateIndex = (template: TemplateRef<unknown> | CellTemplate | Record<string, TemplateRef<unknown>>, key: string) =>\n (template as unknown as Record<string, TemplateRef<unknown>>)[key];\n\n protected readonly isTemplateRef = (value: unknown) => value instanceof TemplateRef;\n\n readonly getRowClassList = (rowData: T, index: number) => {\n const classList = {\n selected: this.rowSelection().isSelected(rowData),\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n 'mat-row-odd': index % 2\n } as Record<string, unknown>;\n\n const rowFormatter = this.rowClassFormatter();\n\n if (rowFormatter) {\n Object.keys(rowFormatter).forEach(key => {\n classList[key] = rowFormatter[key](rowData);\n });\n }\n\n return classList;\n };\n\n readonly getColumnClassList = (columnDefinition: ColumnDefinition): string => {\n const customClasses = columnDefinition.class ?? '';\n const columnType = columnDefinition.type ?? '';\n const columnField = `cell-${this.convertToKebabCase(columnDefinition.field)}`;\n\n return `${customClasses} ${columnType} ${columnField}`;\n };\n\n readonly getIndex = (index: number, dataIndex: number) => typeof index === 'undefined' ? dataIndex : index;\n\n readonly allRowsSelected = (): boolean => {\n const selectedCount = this.rowSelection().selected.length;\n const rowCount = this.dataSource.data.filter(row => !this.rowSelectionFormatter().disabled?.(row)).length;\n return selectedCount === rowCount;\n };\n\n readonly toggleSelectAllCheckbox = (): void => {\n if (this.allRowsSelected()) {\n this.rowSelection().clear();\n } else {\n this.dataSource.data.forEach(row => {\n if (!this.rowSelectionFormatter().disabled?.(row)) {\n this.rowSelection().select(row);\n }\n });\n }\n this.rowSelection.set(this.rowSelection());\n };\n\n readonly toggleRowSelection = (row: T) => {\n this.rowSelection().toggle(row);\n this.rowSelection.set(this.rowSelection());\n };\n\n readonly handlePage = (event: PageEvent) => {\n this.pageChange.emit(event);\n };\n\n readonly scrollToTop = (): void => {\n this.elementRef.nativeElement.scrollTop = 0;\n };\n\n readonly convertToKebabCase = (value: string): string => value?.replace(/([a-z0-9])([A-Z])/gu, '$1-$2').toLowerCase();\n}\n","<!-- Table content -->\n<table mat-table [class.mat-table-hover]=\"rowHover()\" [class.mat-table-striped]=\"rowStriped()\"\n [class.mat-table-with-data]=\"!hasNoResult()\" [dataSource]=\"dataSource\" matSort [matSortActive]=\"sortActive()!\"\n [matSortDirection]=\"sortDirection()!\" [matSortDisableClear]=\"sortDisableClear()\" [matSortDisabled]=\"sortDisabled()\"\n [matSortStart]=\"sortStart()\" (matSortChange)=\"sortChange.emit($event)\">\n\n <!-- Selection column -->\n @if(rowSelectable())\n {\n <ng-container [matColumnDef]=\"selectionColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"selection-cell\" aria-label=\"Select rows\">\n @if(multiSelectable() && showSelectAllCheckbox())\n {\n <mat-checkbox aria-label=\"Select all\" [checked]=\"rowSelection().hasValue() && allRowsSelected()\"\n [indeterminate]=\"rowSelection().hasValue() && !allRowsSelected()\"\n (change)=\"$event ? toggleSelectAllCheckbox() : null\">\n </mat-checkbox>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"selection-cell\"\n (click)=\"$event.stopPropagation()\">\n @if(multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-checkbox aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-checkbox>\n }\n\n @if(!multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-radio-button aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" [value]=\"rowSelection().isSelected(row)\"\n (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-radio-button>\n }\n </td>\n </ng-container>\n }\n\n <!-- Context menu column -->\n @if(showContextMenu())\n {\n <ng-container [matColumnDef]=\"contextMenuColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"action-cell\" aria-label=\"Context Menu Actions\"></th>\n\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"action-cell\">\n @if(isTemplateRef(contextMenuTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"contextMenuTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row }\">\n </ng-template>\n }\n @else{\n <entry-cell-context-menu [items]=\"contextMenuItems()\" [rowData]=\"row\"\n [rowMenuFormatter]=\"rowContextMenuFormatter()\"\n (selected)=\"contextMenuItemSelected.emit({itemId: $event, rowData: row})\"></entry-cell-context-menu>\n }\n </td>\n </ng-container>\n }\n\n @for(column of columns(); track column.field)\n {\n <ng-container [matColumnDef]=\"column.field\" [sticky]=\"column.pinned==='left'\" [stickyEnd]=\"column.pinned==='right'\">\n <th mat-header-cell *matHeaderCellDef [class]=\"getColumnClassList(column)\"\n [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(headerTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(headerTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else if(headerTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()),\n column.field))) {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else {\n <div [mat-sort-header]=\"column.sortProperties?.id || column.field\" [disabled]=\"!column.sortable\"\n [disableClear]=\"column.sortProperties?.disableClear\">\n <span>{{column.header}}</span>\n </div>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n [class]=\"getColumnClassList(column)\" [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(cellTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(cellTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(cellTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()),\n column.field)))\n {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(column.cellTemplate) {\n <ng-template [ngTemplateOutlet]=\"column.cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else {\n <entry-cell [rowData]=\"row\" [columnDefinition]=\"column\"></entry-cell>\n }\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; let index = index; let dataIndex = dataIndex; columns: displayedColumns();\"\n [class]=\"getRowClassList(row, getIndex(index, dataIndex))\" [attr.tabindex]=\"rowFocusVisible() ? 0 : -1\"\n (click)=\"rowClick.emit(row)\" (keydown.enter)=\"rowClick.emit(row)\">\n </tr>\n</table>\n\n<!-- No results -->\n@if(hasNoResult())\n{\n<div class=\"no-results mat-body-2\">\n @if(isTemplateRef(noResultTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"noResultTemplate()\"></ng-template>\n }\n @else {\n {{noResultText()}}\n }\n</div>\n}\n<!-- Pagination -->\n@if(isTemplateRef(paginationTemplate()))\n{\n<ng-template [ngTemplateOutlet]=\"paginationTemplate()\"></ng-template>\n}\n@else if(shouldShowPaginator()) {\n<mat-paginator class=\"pagination\" [showFirstLastButtons]=\"showFirstLastButtons()\" [length]=\"total()\"\n [pageIndex]=\"pageIndex()\" [pageSize]=\"pageSize()\" [pageSizeOptions]=\"pageSizeOptions()\"\n [hidePageSize]=\"hidePageSize()\" (page)=\"handlePage($event)\" [disabled]=\"pageDisabled()\">\n</mat-paginator>\n}","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { EntryCellComponent } from './components/entry-cell/entry-cell.component';\nimport { EntryCellContextMenuComponent } from './components/entry-cell-context-menu/entry-cell-context-menu.component';\nimport { EntryCellFormattedValueComponent } from './components/entry-cell-formatted-value/entry-cell-formatted-value.component';\nimport { EntryTableComponent } from './components/entry-table/entry-table.component';\nimport { DEFAULT_PERCENTAGE_MULTIPLIER } from './interfaces';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatTableModule,\n MatSortModule,\n MatPaginatorModule,\n MatCheckboxModule,\n MatIconModule,\n MatMenuModule,\n MatRadioModule,\n CommonModule,\n MatButtonModule,\n EntryTableComponent,\n EntryCellComponent,\n EntryCellContextMenuComponent,\n EntryCellFormattedValueComponent\n\n ],\n exports: [\n EntryTableComponent,\n EntryCellComponent,\n EntryCellContextMenuComponent,\n EntryCellFormattedValueComponent\n ],\n providers: [\n { provide: DEFAULT_PERCENTAGE_MULTIPLIER, useValue: 1 }\n ]\n})\nexport class EntryTableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"enigmatry-entry-components-table.mjs","sources":["../../../../libs/entry-components/table/interfaces/entry-table-configuration.ts","../../../../libs/entry-components/table/interfaces/paged-query.ts","../../../../libs/entry-components/table/components/entry-cell-formatted-value/entry-cell-formatted-value.component.ts","../../../../libs/entry-components/table/components/entry-cell-formatted-value/entry-cell-formatted-value.component.html","../../../../libs/entry-components/table/components/entry-cell/entry-cell.component.ts","../../../../libs/entry-components/table/components/entry-cell/entry-cell.component.html","../../../../libs/entry-components/table/components/entry-cell-context-menu/entry-cell-context-menu.component.ts","../../../../libs/entry-components/table/components/entry-cell-context-menu/entry-cell-context-menu.component.html","../../../../libs/entry-components/table/components/entry-table/entry-table.component.ts","../../../../libs/entry-components/table/components/entry-table/entry-table.component.html","../../../../libs/entry-components/table/entry-table.module.ts","../../../../libs/entry-components/table/enigmatry-entry-components-table.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\nimport { createInjectionToken, provideConfig } from '@enigmatry/entry-components/common';\n\nexport class EntryTableConfiguration {\n /** Show paginator, default is true */\n showPaginator = true;\n /** Show first and last pagination buttons, default is false */\n showFirstLastButtons = false;\n /** Page size, default 20 */\n pageSize = 20;\n /** Page size options, default [20, 50, 100] */\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n pageSizeOptions = [20, 50, 100];\n /** Hide page size options, default is false */\n hidePageSize = false;\n /** Hide pagination, default is false */\n noResultsText = 'No results found';\n /** Row focus visible, default is false */\n rowFocusVisible = false;\n\n constructor(config: Partial<EntryTableConfiguration> = {}) {\n this.showPaginator = config.showPaginator ?? this.showPaginator;\n this.showFirstLastButtons = config.showFirstLastButtons ?? this.showFirstLastButtons;\n this.pageSize = config.pageSize ?? this.pageSize;\n this.pageSizeOptions = config.pageSizeOptions ?? this.pageSizeOptions;\n this.hidePageSize = config.hidePageSize ?? this.hidePageSize;\n this.noResultsText = config.noResultsText ?? this.noResultsText;\n this.rowFocusVisible = config.rowFocusVisible ?? this.rowFocusVisible;\n }\n}\n\n/** Entry table config injection token\n * Defaults:\n * - showPaginator: true\n * - showFirstLastButtons: false\n * - pageSize: 20\n * - pageSizeOptions: [20, 50, 100]\n * - hidePageSize: false\n * - noResultsText: 'No results found'\n * - rowFocusVisible: false\n */\nexport const ENTRY_TABLE_CONFIGURATION = createInjectionToken(new EntryTableConfiguration());\n\n/** Provide entry table config */\nexport const provideEntryTableConfiguration = (config: Partial<EntryTableConfiguration>): Provider =>\n provideConfig(ENTRY_TABLE_CONFIGURATION, () => new EntryTableConfiguration(config));\n\n/** Default percentage multiplier injection token */\nexport const DEFAULT_PERCENTAGE_MULTIPLIER: InjectionToken<number> = new InjectionToken<number>('');\n","import { Params } from '@angular/router';\nimport { OnPage, OnSort, PageEvent, SortDirection, SortEvent } from './pagination';\n\nexport const defaultPageSize = 20;\nexport const defaultPageNumber = 1;\n\nexport class PagedQuery implements OnPage, OnSort {\n pageNumber = defaultPageNumber;\n pageSize = defaultPageSize;\n sortBy?: string;\n sortDirection?: SortDirection;\n\n readonly sortChange = (sort: SortEvent): void => {\n if (sort.active) {\n this.sortBy = sort.active;\n this.sortDirection = this.getValueIfNotEmpty(sort.direction);\n this.pageNumber = defaultPageNumber;\n }\n };\n\n readonly pageChange = (page: PageEvent): void => {\n this.pageNumber = page.pageIndex + 1;\n this.pageSize = page.pageSize;\n };\n\n readonly applyRouteChanges = (queryParams: Params): void => {\n this.pageNumber = queryParams['pageNumber'] ? Number(queryParams['pageNumber']) : defaultPageNumber;\n this.pageSize = queryParams['pageSize'] ? Number(queryParams['pageSize']) : this.pageSize;\n this.sortBy = this.getValueIfNotEmpty(queryParams['sortBy'] ?? this.sortBy);\n this.sortDirection = this.getValueIfNotEmpty(queryParams['sortDirection'] ?? this.sortDirection);\n };\n\n readonly getRouteQueryParams = (): Params => {\n return {\n pageNumber: this.pageNumber,\n pageSize: this.pageSize,\n sortBy: this.sortBy,\n sortDirection: this.sortDirection\n };\n };\n\n readonly getValueIfNotEmpty = <T>(value: T): T | undefined => value ? value : undefined;\n}\n","import { CommonModule, CurrencyPipe, DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { ColumnTypeParameter } from '../../interfaces';\nimport { DEFAULT_PERCENTAGE_MULTIPLIER } from '../../interfaces/entry-table-configuration';\n\n@Component({\n imports: [CommonModule, DatePipe, DecimalPipe, PercentPipe, CurrencyPipe],\n selector: 'entry-cell-formatted-value',\n templateUrl: './entry-cell-formatted-value.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryCellFormattedValueComponent {\n readonly value = input<string | undefined>();\n readonly type = input<string | undefined>();\n readonly typeParameter = input<ColumnTypeParameter & { multiplier?: number } | undefined>();\n\n public readonly defaultPercentageMultiplier: number = inject(DEFAULT_PERCENTAGE_MULTIPLIER);\n}\n","@switch (type()) {\n @case('boolean'){\n {{value() ? '\\u2713' : ''}}\n }\n @case('number'){\n {{value() | number: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('currency'){\n {{value() | currency: typeParameter()?.currencyCode : typeParameter()?.display : typeParameter()?.digitsInfo :\n typeParameter()?.locale}}\n }\n @case('percent'){\n {{+(value() ?? 0) * (typeParameter()?.multiplier ?? defaultPercentageMultiplier) | percent: typeParameter()?.digitsInfo : typeParameter()?.locale}}\n }\n @case('date'){\n {{value() | date: typeParameter()?.format : typeParameter()?.timezone : typeParameter()?.locale}}\n }\n @case('link'){\n <a [href]=\"value()\" target=\"_blank\">{{value()}}</a>\n }\n @default{\n {{value()}}\n }\n}","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ColumnDefinition } from '../../interfaces';\nimport { EntryCellFormattedValueComponent } from '../entry-cell-formatted-value/entry-cell-formatted-value.component';\n\n@Component({\n imports: [CommonModule, EntryCellFormattedValueComponent],\n selector: 'entry-cell',\n templateUrl: './entry-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryCellComponent<T> {\n readonly rowData = input.required<T>();\n readonly columnDefinition = input.required<ColumnDefinition>();\n readonly value = computed(() => this.getCellValue(this.rowData(), this.columnDefinition()));\n readonly printableValue = computed(() => this.value() as string ?? '');\n\n protected readonly getCellValue = (rowData: T, columnDefinition: ColumnDefinition) => {\n const keys = columnDefinition.field ? columnDefinition.field.split('.') : [];\n return keys.reduce((data, key) => data && (data as Record<string, T>)[key], rowData);\n };\n}\n","<entry-cell-formatted-value [value]=\"printableValue()\" [type]=\"columnDefinition().type!\"\n [typeParameter]=\"columnDefinition().typeParameter\"></entry-cell-formatted-value>","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, output, viewChild } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule, MatMenuPanel } from '@angular/material/menu';\nimport { ContextMenuItem } from '../../interfaces/context-menu-item';\nimport { RowContextMenuFormatter } from '../../interfaces/row-context-menu-formatter';\n\n@Component({\n selector: 'entry-cell-context-menu',\n imports: [CommonModule, MatMenuModule, MatButtonModule, MatIconModule, EntryCellContextMenuComponent],\n templateUrl: './entry-cell-context-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryCellContextMenuComponent {\n readonly items = input.required<ContextMenuItem[]>();\n readonly rowMenuFormatter = input<RowContextMenuFormatter>();\n readonly rowData = input<unknown>();\n readonly triggerIcon = input<string>('more_vert');\n readonly isSubMenu = input<boolean>(false);\n readonly selected = output<string>();\n readonly menuItems = computed(() => (this.rowMenuFormatter()?.items\n ? this.rowMenuFormatter()?.items(this.rowData)\n : this.items()) ?? []);\n readonly menu = viewChild<MatMenuPanel>('menu');\n readonly subMenu = viewChild<EntryCellContextMenuComponent>('subMenu');\n}\n","@if(!isSubMenu())\n{\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\">\n <mat-icon>{{triggerIcon()}}</mat-icon>\n </button>\n}\n\n<mat-menu #menu=\"matMenu\" class=\"entry-table-menu\" role=\"menu\">\n @for(menuItem of menuItems(); track menuItem.id)\n {\n <button mat-menu-item [disabled]=\"menuItem.disabled\"\n [matMenuTriggerFor]=\"menuItem.items?.length ? (subMenu()?.menu() ?? null) : null\"\n (click)=\"!menuItem.items?.length && selected.emit(menuItem.id)\" class=\"context-menu-item\">\n\n @if(menuItem.icon)\n {\n <mat-icon class=\"icon\">{{menuItem.icon}}</mat-icon>\n }\n\n <span class=\"description\">{{menuItem.name}}</span>\n\n @if(menuItem.items?.length)\n {\n <entry-cell-context-menu #subMenu [items]=\"menuItem.items ?? []\" [rowData]=\"rowData()\" [isSubMenu]=\"true\"\n (selected)=\"selected.emit($event)\">\n </entry-cell-context-menu>\n }\n </button>\n }\n</mat-menu>","/* eslint-disable max-lines */\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CommonModule } from '@angular/common';\nimport {\n Component, ChangeDetectionStrategy, TemplateRef, ElementRef, inject, input, output, computed,\n linkedSignal,\n effect,\n signal\n} from '@angular/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSortModule, Sort, SortDirection } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport {\n ColumnDefinition, PagedData, RowSelectionFormatter, RowClassFormatter, ContextMenuItem,\n RowContextMenuFormatter, CellTemplate, ENTRY_TABLE_CONFIGURATION, EntryTableConfiguration\n} from '../../interfaces';\nimport { EntryCellComponent } from '../entry-cell/entry-cell.component';\nimport { EntryCellContextMenuComponent } from '../entry-cell-context-menu/entry-cell-context-menu.component';\n\n@Component({\n selector: 'entry-table',\n host: { class: 'entry-table' },\n imports: [CommonModule, MatTableModule, MatSortModule, MatCheckboxModule, MatRadioModule,\n MatPaginatorModule, EntryCellComponent, EntryCellContextMenuComponent],\n templateUrl: './entry-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryTableComponent<T> {\n private readonly configuration: EntryTableConfiguration = inject(ENTRY_TABLE_CONFIGURATION);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n dataSource = new MatTableDataSource<T>([]);\n readonly selectionColumn = 'selection-column';\n readonly contextMenuColumn = 'context-menu-column';\n\n readonly columns = input<ColumnDefinition[]>([]);\n readonly displayedColumns = computed<string[]>(() => {\n const result = this.columns().filter(item => !item.hide)\n .map(item => item.field);\n\n if (this.rowSelectable() && !result.includes(this.selectionColumn)) {\n result.unshift(this.selectionColumn);\n }\n\n if (this.showContextMenu() && !result.includes(this.contextMenuColumn)) {\n result.push(this.contextMenuColumn);\n }\n\n return result;\n });\n\n // Data\n readonly data = input<T[] | PagedData<T> | null | undefined>([]);\n private readonly trueData = signal(<T[] | null>([]));\n readonly total = linkedSignal<number>(() => 0);\n readonly loading = input<boolean>(false);\n\n // Pagination\n readonly showPaginator = input<boolean>(this.configuration.showPaginator);\n readonly pageDisabled = input<boolean>(this.configuration.showFirstLastButtons);\n readonly showFirstLastButtons = input<boolean>(false);\n readonly pageIndex = linkedSignal<number>(() => 0);\n readonly pageSize = linkedSignal<number>(() => 0);\n readonly pageSizeOptions = input<number[]>(this.configuration.pageSizeOptions);\n readonly hidePageSize = input<boolean>(this.configuration.hidePageSize);\n readonly paginationTemplate = input<TemplateRef<unknown>>();\n readonly shouldShowPaginator = computed(() => {\n return this.showPaginator() && this.trueData()?.length;\n });\n\n readonly pageChange = output<PageEvent>();\n\n // Sort\n readonly sortActive = input<string>();\n readonly sortDirection = input<SortDirection>();\n readonly sortDisableClear = input<boolean>(false);\n readonly sortDisabled = input<boolean>(false);\n readonly sortStart = input<'asc' | 'desc'>('asc');\n readonly sortChange = output<Sort>();\n\n // Row\n readonly rowHover = input<boolean>(false);\n readonly rowStriped = input<boolean>(false);\n readonly rowFocusVisible = input<boolean>(this.configuration.rowFocusVisible);\n readonly rowClick = output<T>();\n\n // Row selection\n readonly multiSelectable = input<boolean>(true);\n readonly rowSelection = linkedSignal(() => this.rowSelectable() ?\n new SelectionModel<T>(this.multiSelectable(), this.rowSelected()) : new SelectionModel<T>(true, []));\n\n readonly rowSelected = input<T[]>([]);\n readonly rowSelectable = input<boolean>(false);\n readonly showSelectAllCheckbox = input<boolean>(true);\n readonly rowSelectionFormatter = input<RowSelectionFormatter>({});\n readonly rowClassFormatter = input<RowClassFormatter>();\n\n // Context menu\n readonly showContextMenu = input<boolean>(false);\n readonly contextMenuItems = input<ContextMenuItem[]>([]);\n readonly contextMenuTemplate = input<TemplateRef<unknown> | null>(null);\n readonly rowContextMenuFormatter = input<RowContextMenuFormatter>();\n readonly contextMenuItemSelected = output<{ itemId: string; rowData: T }>();\n\n // No Result\n readonly noResultText = input<string>(this.configuration.noResultsText);\n readonly noResultTemplate = input<TemplateRef<unknown> | null>(null);\n readonly hasNoResult = computed(() => !this.trueData()?.length && !this.loading());\n\n readonly headerTemplate = input<TemplateRef<unknown> | CellTemplate | Record<string, TemplateRef<unknown>>>();\n readonly unknownTemplateAsTemplate = (template: unknown) => template as TemplateRef<unknown>;\n readonly cellTemplate = input<TemplateRef<unknown> | CellTemplate | Record<string, TemplateRef<unknown>>>();\n\n constructor() {\n effect(() => {\n if (this.data()) {\n let trueData: T[];\n if (Array.isArray(this.data())) {\n trueData = this.data() as T[];\n } else {\n const page = this.data() as PagedData<T>;\n this.total.set(page.totalCount ?? 0);\n this.pageSize.set(page.pageSize ?? this.pageSize() ?? this.configuration.pageSize);\n this.pageIndex.set(page.pageNumber ? page.pageNumber - 1 : this.pageIndex());\n trueData = (this.data() as PagedData<T>)?.items ?? [];\n }\n\n if (this.dataSource) {\n this.dataSource.disconnect();\n }\n\n this.dataSource = new MatTableDataSource(trueData);\n this.trueData.set(trueData);\n this.scrollToTop();\n }\n });\n }\n\n readonly toTemplateIndex = (template: TemplateRef<unknown> | CellTemplate | Record<string, TemplateRef<unknown>>, key: string) =>\n (template as unknown as Record<string, TemplateRef<unknown>>)[key];\n\n protected readonly isTemplateRef = (value: unknown) => value instanceof TemplateRef;\n\n readonly getRowClassList = (rowData: T, index: number) => {\n const classList = {\n selected: this.rowSelection().isSelected(rowData),\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n 'mat-row-odd': index % 2\n } as Record<string, unknown>;\n\n const rowFormatter = this.rowClassFormatter();\n\n if (rowFormatter) {\n Object.keys(rowFormatter).forEach(key => {\n classList[key] = rowFormatter[key](rowData);\n });\n }\n\n return classList;\n };\n\n readonly getColumnClassList = (columnDefinition: ColumnDefinition): string => {\n const customClasses = columnDefinition.class ?? '';\n const columnType = columnDefinition.type ?? '';\n const columnField = `cell-${this.convertToKebabCase(columnDefinition.field)}`;\n\n return `${customClasses} ${columnType} ${columnField}`;\n };\n\n readonly getIndex = (index: number, dataIndex: number) => typeof index === 'undefined' ? dataIndex : index;\n\n readonly allRowsSelected = (): boolean => {\n const selectedCount = this.rowSelection().selected.length;\n const rowCount = this.dataSource.data.filter(row => !this.rowSelectionFormatter().disabled?.(row)).length;\n return selectedCount === rowCount;\n };\n\n readonly toggleSelectAllCheckbox = (): void => {\n if (this.allRowsSelected()) {\n this.rowSelection().clear();\n } else {\n this.dataSource.data.forEach(row => {\n if (!this.rowSelectionFormatter().disabled?.(row)) {\n this.rowSelection().select(row);\n }\n });\n }\n this.rowSelection.set(this.rowSelection());\n };\n\n readonly toggleRowSelection = (row: T) => {\n this.rowSelection().toggle(row);\n this.rowSelection.set(this.rowSelection());\n };\n\n readonly handlePage = (event: PageEvent) => {\n this.pageChange.emit(event);\n };\n\n readonly scrollToTop = (): void => {\n this.elementRef.nativeElement.scrollTop = 0;\n };\n\n readonly convertToKebabCase = (value: string): string => value?.replace(/([a-z0-9])([A-Z])/gu, '$1-$2').toLowerCase();\n}\n","<!-- Table content -->\n<table mat-table [class.mat-table-hover]=\"rowHover()\" [class.mat-table-striped]=\"rowStriped()\"\n [class.mat-table-with-data]=\"!hasNoResult()\" [dataSource]=\"dataSource\" matSort [matSortActive]=\"sortActive()!\"\n [matSortDirection]=\"sortDirection()!\" [matSortDisableClear]=\"sortDisableClear()\" [matSortDisabled]=\"sortDisabled()\"\n [matSortStart]=\"sortStart()\" (matSortChange)=\"sortChange.emit($event)\">\n\n <!-- Selection column -->\n @if(rowSelectable())\n {\n <ng-container [matColumnDef]=\"selectionColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"selection-cell\" aria-label=\"Select rows\">\n @if(multiSelectable() && showSelectAllCheckbox())\n {\n <mat-checkbox aria-label=\"Select all\" [checked]=\"rowSelection().hasValue() && allRowsSelected()\"\n [indeterminate]=\"rowSelection().hasValue() && !allRowsSelected()\"\n (change)=\"$event ? toggleSelectAllCheckbox() : null\">\n </mat-checkbox>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"selection-cell\"\n (click)=\"$event.stopPropagation()\">\n @if(multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-checkbox aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-checkbox>\n }\n\n @if(!multiSelectable() && !(rowSelectionFormatter().hideCheckbox && rowSelectionFormatter().hideCheckbox!(row)))\n {\n <mat-radio-button aria-label=\"Select row\"\n [disabled]=\"rowSelectionFormatter().disabled && rowSelectionFormatter().disabled!(row)\"\n [checked]=\"rowSelection().isSelected(row)\" [value]=\"rowSelection().isSelected(row)\"\n (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-radio-button>\n }\n </td>\n </ng-container>\n }\n\n <!-- Context menu column -->\n @if(showContextMenu())\n {\n <ng-container [matColumnDef]=\"contextMenuColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"action-cell\" aria-label=\"Context Menu Actions\"></th>\n\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\" class=\"action-cell\">\n @if(isTemplateRef(contextMenuTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"contextMenuTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row }\">\n </ng-template>\n }\n @else{\n <entry-cell-context-menu [items]=\"contextMenuItems()\" [rowData]=\"row\"\n [rowMenuFormatter]=\"rowContextMenuFormatter()\"\n (selected)=\"contextMenuItemSelected.emit({itemId: $event, rowData: row})\"></entry-cell-context-menu>\n }\n </td>\n </ng-container>\n }\n\n @for(column of columns(); track column.field)\n {\n <ng-container [matColumnDef]=\"column.field\" [sticky]=\"column.pinned==='left'\" [stickyEnd]=\"column.pinned==='right'\">\n <th mat-header-cell *matHeaderCellDef [class]=\"getColumnClassList(column)\"\n [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(headerTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(headerTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else if(headerTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()),\n column.field))) {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(headerTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: column, colDef: column }\">\n </ng-template>\n }\n @else {\n <div [mat-sort-header]=\"column.sortProperties?.id || column.field\" [disabled]=\"!column.sortable\"\n [disableClear]=\"column.sortProperties?.disableClear\">\n <span>{{column.header}}</span>\n </div>\n }\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n [class]=\"getColumnClassList(column)\" [class.mat-table-sticky-left]=\"column.pinned === 'left'\"\n [class.mat-table-sticky-right]=\"column.pinned === 'right'\"\n [style]=\"{'width': column.width, 'min-width': column.width}\">\n @if(isTemplateRef(cellTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"unknownTemplateAsTemplate(cellTemplate())\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(cellTemplate() && isTemplateRef(toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()),\n column.field)))\n {\n <ng-template [ngTemplateOutlet]=\"toTemplateIndex(unknownTemplateAsTemplate(cellTemplate()), column.field)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else if(column.cellTemplate) {\n <ng-template [ngTemplateOutlet]=\"column.cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: column }\">\n </ng-template>\n }\n @else {\n <entry-cell [rowData]=\"row\" [columnDefinition]=\"column\"></entry-cell>\n }\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns(); sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; let index = index; let dataIndex = dataIndex; columns: displayedColumns();\"\n [class]=\"getRowClassList(row, getIndex(index, dataIndex))\" [attr.tabindex]=\"rowFocusVisible() ? 0 : -1\"\n (click)=\"rowClick.emit(row)\" (keydown.enter)=\"rowClick.emit(row)\">\n </tr>\n</table>\n\n<!-- No results -->\n@if(hasNoResult())\n{\n<div class=\"no-results mat-body-2\">\n @if(isTemplateRef(noResultTemplate()))\n {\n <ng-template [ngTemplateOutlet]=\"noResultTemplate()\"></ng-template>\n }\n @else {\n {{noResultText()}}\n }\n</div>\n}\n<!-- Pagination -->\n@if(isTemplateRef(paginationTemplate()))\n{\n<ng-template [ngTemplateOutlet]=\"paginationTemplate()\"></ng-template>\n}\n@else if(shouldShowPaginator()) {\n<mat-paginator class=\"pagination\" [showFirstLastButtons]=\"showFirstLastButtons()\" [length]=\"total()\"\n [pageIndex]=\"pageIndex()\" [pageSize]=\"pageSize()\" [pageSizeOptions]=\"pageSizeOptions()\"\n [hidePageSize]=\"hidePageSize()\" (page)=\"handlePage($event)\" [disabled]=\"pageDisabled()\">\n</mat-paginator>\n}","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { EntryCellComponent } from './components/entry-cell/entry-cell.component';\nimport { EntryCellContextMenuComponent } from './components/entry-cell-context-menu/entry-cell-context-menu.component';\nimport { EntryCellFormattedValueComponent } from './components/entry-cell-formatted-value/entry-cell-formatted-value.component';\nimport { EntryTableComponent } from './components/entry-table/entry-table.component';\nimport { DEFAULT_PERCENTAGE_MULTIPLIER } from './interfaces';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatTableModule,\n MatSortModule,\n MatPaginatorModule,\n MatCheckboxModule,\n MatIconModule,\n MatMenuModule,\n MatRadioModule,\n MatButtonModule,\n EntryTableComponent,\n EntryCellComponent,\n EntryCellContextMenuComponent,\n EntryCellFormattedValueComponent\n\n ],\n exports: [\n EntryTableComponent,\n EntryCellComponent,\n EntryCellContextMenuComponent,\n EntryCellFormattedValueComponent\n ],\n providers: [\n { provide: DEFAULT_PERCENTAGE_MULTIPLIER, useValue: 1 }\n ]\n})\nexport class EntryTableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enigmatry/entry-components",
3
- "version": "21.1.1",
3
+ "version": "21.1.2-preview.1",
4
4
  "author": "Enigmatry",
5
5
  "description": "Enigmatry entry angular material components",
6
6
  "homepage": "https://github.com/enigmatry/entry-angular-building-blocks/tree/master/libs/entry-components#readme",
@@ -248,7 +248,7 @@ declare class EntryCellFormattedValueComponent {
248
248
 
249
249
  declare class EntryTableModule {
250
250
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntryTableModule, never>;
251
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<EntryTableModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i3.MatTableModule, typeof i4.MatSortModule, typeof _angular_material_paginator.MatPaginatorModule, typeof i6.MatCheckboxModule, typeof i7.MatIconModule, typeof i8.MatMenuModule, typeof i9.MatRadioModule, typeof i1.CommonModule, typeof i10.MatButtonModule, typeof EntryTableComponent, typeof EntryCellComponent, typeof EntryCellContextMenuComponent, typeof EntryCellFormattedValueComponent], [typeof EntryTableComponent, typeof EntryCellComponent, typeof EntryCellContextMenuComponent, typeof EntryCellFormattedValueComponent]>;
251
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<EntryTableModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i3.MatTableModule, typeof i4.MatSortModule, typeof _angular_material_paginator.MatPaginatorModule, typeof i6.MatCheckboxModule, typeof i7.MatIconModule, typeof i8.MatMenuModule, typeof i9.MatRadioModule, typeof i10.MatButtonModule, typeof EntryTableComponent, typeof EntryCellComponent, typeof EntryCellContextMenuComponent, typeof EntryCellFormattedValueComponent], [typeof EntryTableComponent, typeof EntryCellComponent, typeof EntryCellContextMenuComponent, typeof EntryCellFormattedValueComponent]>;
252
252
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<EntryTableModule>;
253
253
  }
254
254