@enigmatry/entry-components 1.15.1-preview.32 → 1.15.1-preview.34

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.
Files changed (54) hide show
  1. package/esm2020/table/components/entry-cell/entry-cell.component.mjs +23 -0
  2. package/esm2020/table/components/entry-cell-context-menu/entry-cell-context-menu.component.mjs +33 -0
  3. package/esm2020/table/components/entry-cell-formatted-value/entry-cell-formatted-value.component.mjs +25 -0
  4. package/esm2020/table/components/entry-table/entry-table.component.mjs +248 -0
  5. package/esm2020/table/components/index.mjs +5 -0
  6. package/esm2020/table/enigmatry-entry-components-table.mjs +5 -0
  7. package/esm2020/table/entry-table.module.mjs +84 -0
  8. package/esm2020/table/interfaces/cell-template.mjs +2 -0
  9. package/esm2020/table/interfaces/column-def.mjs +2 -0
  10. package/esm2020/table/interfaces/column-sort-prop.mjs +2 -0
  11. package/esm2020/table/interfaces/column-type-parameter.mjs +2 -0
  12. package/esm2020/table/interfaces/column-type.mjs +2 -0
  13. package/esm2020/table/interfaces/context-menu-item.mjs +2 -0
  14. package/esm2020/table/interfaces/entry-table-config.mjs +18 -0
  15. package/esm2020/table/interfaces/index.mjs +13 -0
  16. package/esm2020/table/interfaces/paged-query.mjs +34 -0
  17. package/esm2020/table/interfaces/pagination.mjs +2 -0
  18. package/esm2020/table/interfaces/row-class-formatter.mjs +2 -0
  19. package/esm2020/table/interfaces/row-context-menu-formatter.mjs +2 -0
  20. package/esm2020/table/interfaces/row-selection-formatter.mjs +2 -0
  21. package/esm2020/table/public-api.mjs +4 -0
  22. package/fesm2015/enigmatry-entry-components-table.mjs +459 -0
  23. package/fesm2015/enigmatry-entry-components-table.mjs.map +1 -0
  24. package/fesm2020/enigmatry-entry-components-table.mjs +450 -0
  25. package/fesm2020/enigmatry-entry-components-table.mjs.map +1 -0
  26. package/package.json +9 -1
  27. package/styles/_generator.scss +8 -6
  28. package/styles/modules/_default-theme.scss +5 -1
  29. package/styles/modules/components/dialogs/_generator.scss +2 -2
  30. package/styles/modules/components/inputs/_generator.scss +15 -0
  31. package/styles/modules/components/tables/_cells.scss +9 -2
  32. package/styles/partials/generator-test.scss +10 -1
  33. package/table/README.md +76 -0
  34. package/table/components/entry-cell/entry-cell.component.d.ts +10 -0
  35. package/table/components/entry-cell-context-menu/entry-cell-context-menu.component.d.ts +14 -0
  36. package/table/components/entry-cell-formatted-value/entry-cell-formatted-value.component.d.ts +10 -0
  37. package/table/components/entry-table/entry-table.component.d.ts +81 -0
  38. package/table/components/index.d.ts +4 -0
  39. package/table/entry-table.module.d.ts +20 -0
  40. package/table/index.d.ts +5 -0
  41. package/table/interfaces/cell-template.d.ts +4 -0
  42. package/table/interfaces/column-def.d.ts +20 -0
  43. package/table/interfaces/column-sort-prop.d.ts +5 -0
  44. package/table/interfaces/column-type-parameter.d.ts +9 -0
  45. package/table/interfaces/column-type.d.ts +1 -0
  46. package/table/interfaces/context-menu-item.d.ts +6 -0
  47. package/table/interfaces/entry-table-config.d.ts +11 -0
  48. package/table/interfaces/index.d.ts +12 -0
  49. package/table/interfaces/paged-query.d.ts +14 -0
  50. package/table/interfaces/pagination.d.ts +19 -0
  51. package/table/interfaces/row-class-formatter.d.ts +3 -0
  52. package/table/interfaces/row-context-menu-formatter.d.ts +4 -0
  53. package/table/interfaces/row-selection-formatter.d.ts +4 -0
  54. package/table/public-api.d.ts +3 -0
@@ -0,0 +1,18 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export class EntryTableConfig {
3
+ constructor() {
4
+ this.showPaginator = true;
5
+ this.showFirstLastButtons = false;
6
+ this.pageSize = 20;
7
+ this.pageSizeOptions = [20, 50, 100];
8
+ this.hidePageSize = false;
9
+ this.noResultsText = 'No results found';
10
+ }
11
+ }
12
+ ;
13
+ export const ENTRY_TABLE_CONFIG = new InjectionToken('ENTRY_TABLE_CONFIG', {
14
+ providedIn: 'root',
15
+ factory: () => new EntryTableConfig()
16
+ });
17
+ export const DEFAULT_PERCENTAGE_MULTIPLIER = new InjectionToken('');
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktdGFibGUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL3RhYmxlL2ludGVyZmFjZXMvZW50cnktdGFibGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUNTLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2Qsb0JBQWUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsa0JBQWEsR0FBRyxrQkFBa0IsQ0FBQztJQUM1QyxDQUFDO0NBQUE7QUFBQSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQ2xELG9CQUFvQixFQUNwQjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixFQUFFO0NBQ3RDLENBQUMsQ0FBQztBQUdMLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUEyQixJQUFJLGNBQWMsQ0FBUyxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBFbnRyeVRhYmxlQ29uZmlnIHtcbiAgcHVibGljIHNob3dQYWdpbmF0b3IgPSB0cnVlO1xuICBwdWJsaWMgc2hvd0ZpcnN0TGFzdEJ1dHRvbnMgPSBmYWxzZTtcbiAgcHVibGljIHBhZ2VTaXplID0gMjA7XG4gIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnMgPSBbMjAsIDUwLCAxMDBdO1xuICBwdWJsaWMgaGlkZVBhZ2VTaXplID0gZmFsc2U7XG4gIHB1YmxpYyBub1Jlc3VsdHNUZXh0ID0gJ05vIHJlc3VsdHMgZm91bmQnO1xufTtcblxuZXhwb3J0IGNvbnN0IEVOVFJZX1RBQkxFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbnRyeVRhYmxlQ29uZmlnPihcbiAgJ0VOVFJZX1RBQkxFX0NPTkZJRycsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gbmV3IEVudHJ5VGFibGVDb25maWcoKVxuICB9KTtcblxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QRVJDRU5UQUdFX01VTFRJUExJRVI6IEluamVjdGlvblRva2VuPG51bWJlcj4gPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPignJyk7XG4iXX0=
@@ -0,0 +1,13 @@
1
+ export * from './pagination';
2
+ export * from './entry-table-config';
3
+ export * from './paged-query';
4
+ export * from './cell-template';
5
+ export * from './column-def';
6
+ export * from './column-sort-prop';
7
+ export * from './column-type-parameter';
8
+ export * from './column-type';
9
+ export * from './context-menu-item';
10
+ export * from './row-class-formatter';
11
+ export * from './row-context-menu-formatter';
12
+ export * from './row-selection-formatter';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvdGFibGUvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnRyeS10YWJsZS1jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhZ2VkLXF1ZXJ5JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vY2VsbC10ZW1wbGF0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1uLWRlZic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1uLXNvcnQtcHJvcCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1uLXR5cGUtcGFyYW1ldGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW4tdHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1tZW51LWl0ZW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL3Jvdy1jbGFzcy1mb3JtYXR0ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3Jvdy1jb250ZXh0LW1lbnUtZm9ybWF0dGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9yb3ctc2VsZWN0aW9uLWZvcm1hdHRlcic7XHJcbiJdfQ==
@@ -0,0 +1,34 @@
1
+ export const defaultPageSize = 10;
2
+ export const defaultPageNumber = 1;
3
+ export class PagedQuery {
4
+ constructor() {
5
+ this.pageNumber = defaultPageNumber;
6
+ this.pageSize = defaultPageSize;
7
+ }
8
+ sortChange(sort) {
9
+ if (sort.active) {
10
+ this.sortBy = sort.active;
11
+ this.sortDirection = sort.direction;
12
+ this.pageNumber = defaultPageNumber;
13
+ }
14
+ }
15
+ pageChange(page) {
16
+ this.pageNumber = page.pageIndex + 1;
17
+ this.pageSize = page.pageSize;
18
+ }
19
+ applyRouteChanges(queryParams) {
20
+ this.pageNumber = queryParams.pageNumber ? Number(queryParams.pageNumber) : defaultPageNumber;
21
+ this.pageSize = queryParams.pageSize ? Number(queryParams.pageSize) : this.pageSize;
22
+ this.sortBy = queryParams.sortBy ?? this.sortBy;
23
+ this.sortDirection = queryParams.sortDirection ?? this.sortDirection;
24
+ }
25
+ getRouteQueryParams() {
26
+ return {
27
+ pageNumber: this.pageNumber,
28
+ pageSize: this.pageSize,
29
+ sortBy: this.sortBy,
30
+ sortDirection: this.sortDirection
31
+ };
32
+ }
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZWQtcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvdGFibGUvaW50ZXJmYWNlcy9wYWdlZC1xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQUVuQyxNQUFNLE9BQU8sVUFBVTtJQUF2QjtRQUNFLGVBQVUsR0FBRyxpQkFBaUIsQ0FBQztRQUMvQixhQUFRLEdBQUcsZUFBZSxDQUFDO0lBZ0M3QixDQUFDO0lBNUJDLFVBQVUsQ0FBQyxJQUFlO1FBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsSUFBZTtRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsV0FBbUI7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUM5RixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDdkUsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ2xDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT25QYWdlLCBPblNvcnQsIFBhZ2VFdmVudCwgU29ydERpcmVjdGlvbiwgU29ydEV2ZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRQYWdlU2l6ZSA9IDEwO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRQYWdlTnVtYmVyID0gMTtcblxuZXhwb3J0IGNsYXNzIFBhZ2VkUXVlcnkgaW1wbGVtZW50cyBPblBhZ2UsIE9uU29ydCB7XG4gIHBhZ2VOdW1iZXIgPSBkZWZhdWx0UGFnZU51bWJlcjtcbiAgcGFnZVNpemUgPSBkZWZhdWx0UGFnZVNpemU7XG4gIHNvcnRCeT86IHN0cmluZztcbiAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb247XG5cbiAgc29ydENoYW5nZShzb3J0OiBTb3J0RXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoc29ydC5hY3RpdmUpIHtcbiAgICAgIHRoaXMuc29ydEJ5ID0gc29ydC5hY3RpdmU7XG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSBzb3J0LmRpcmVjdGlvbjtcbiAgICAgIHRoaXMucGFnZU51bWJlciA9IGRlZmF1bHRQYWdlTnVtYmVyO1xuICAgIH1cbiAgfVxuXG4gIHBhZ2VDaGFuZ2UocGFnZTogUGFnZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5wYWdlTnVtYmVyID0gcGFnZS5wYWdlSW5kZXggKyAxO1xuICAgIHRoaXMucGFnZVNpemUgPSBwYWdlLnBhZ2VTaXplO1xuICB9XG5cbiAgYXBwbHlSb3V0ZUNoYW5nZXMocXVlcnlQYXJhbXM6IFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGFnZU51bWJlciA9IHF1ZXJ5UGFyYW1zLnBhZ2VOdW1iZXIgPyBOdW1iZXIocXVlcnlQYXJhbXMucGFnZU51bWJlcikgOiBkZWZhdWx0UGFnZU51bWJlcjtcbiAgICB0aGlzLnBhZ2VTaXplID0gcXVlcnlQYXJhbXMucGFnZVNpemUgPyBOdW1iZXIocXVlcnlQYXJhbXMucGFnZVNpemUpIDogdGhpcy5wYWdlU2l6ZTtcbiAgICB0aGlzLnNvcnRCeSA9IHF1ZXJ5UGFyYW1zLnNvcnRCeSA/PyB0aGlzLnNvcnRCeTtcbiAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSBxdWVyeVBhcmFtcy5zb3J0RGlyZWN0aW9uID8/IHRoaXMuc29ydERpcmVjdGlvbjtcbiAgfVxuXG4gIGdldFJvdXRlUXVlcnlQYXJhbXMoKTogUGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZU51bWJlcjogdGhpcy5wYWdlTnVtYmVyLFxuICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsXG4gICAgICBzb3J0Qnk6IHRoaXMuc29ydEJ5LFxuICAgICAgc29ydERpcmVjdGlvbjogdGhpcy5zb3J0RGlyZWN0aW9uXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export { PageEvent } from '@angular/material/paginator';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy90YWJsZS9pbnRlcmZhY2VzL3BhZ2luYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU29ydCBhcyBTb3J0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5cbmV4cG9ydCB7IFNvcnQgYXMgU29ydEV2ZW50LCBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5leHBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VkRGF0YTxUPiB7XG4gICAgaXRlbXM/OiBUW107XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG4gICAgcGFnZU51bWJlcj86IG51bWJlcjtcbiAgICB0b3RhbENvdW50PzogbnVtYmVyO1xuICAgIHRvdGFsUGFnZXM/OiBudW1iZXI7XG4gICAgaGFzUHJldmlvdXNQYWdlPzogYm9vbGVhbjtcbiAgICBoYXNOZXh0UGFnZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25Tb3J0IHtcbiAgICBzb3J0Q2hhbmdlKHNvcnQ6IFNvcnRFdmVudCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25QYWdlIHtcbiAgICBwYWdlQ2hhbmdlKHBhZ2U6IFBhZ2VFdmVudCk6IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNsYXNzLWZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy90YWJsZS9pbnRlcmZhY2VzL3Jvdy1jbGFzcy1mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUm93Q2xhc3NGb3JtYXR0ZXIge1xyXG4gIFtjbGFzc05hbWU6IHN0cmluZ106IChyb3dEYXRhOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNvbnRleHQtbWVudS1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvdGFibGUvaW50ZXJmYWNlcy9yb3ctY29udGV4dC1tZW51LWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAnLi9jb250ZXh0LW1lbnUtaXRlbSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSb3dDb250ZXh0TWVudUZvcm1hdHRlciB7XHJcbiAgaXRlbXM6IChyb3dEYXRhOiBhbnkpID0+IENvbnRleHRNZW51SXRlbVtdO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXNlbGVjdGlvbi1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvdGFibGUvaW50ZXJmYWNlcy9yb3ctc2VsZWN0aW9uLWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSb3dTZWxlY3Rpb25Gb3JtYXR0ZXIge1xyXG4gIGRpc2FibGVkPzogKHJvd0RhdGE6IGFueSkgPT4gYm9vbGVhbjtcclxuICBoaWRlQ2hlY2tib3g/OiAocm93RGF0YTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './interfaces';
2
+ export * from './components';
3
+ export { EntryTableModule } from './entry-table.module';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy90YWJsZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cyc7XG5leHBvcnQgeyBFbnRyeVRhYmxlTW9kdWxlIH0gZnJvbSAnLi9lbnRyeS10YWJsZS5tb2R1bGUnO1xuIl19
@@ -0,0 +1,459 @@
1
+ import * as i4$1 from '@angular/material/paginator';
2
+ import { MatPaginatorModule } from '@angular/material/paginator';
3
+ export { PageEvent } from '@angular/material/paginator';
4
+ import * as i0 from '@angular/core';
5
+ import { InjectionToken, Component, ChangeDetectionStrategy, Inject, Input, EventEmitter, Output, TemplateRef, HostBinding, NgModule } from '@angular/core';
6
+ import { SelectionModel } from '@angular/cdk/collections';
7
+ import * as i2$1 from '@angular/material/table';
8
+ import { MatTableDataSource, MatTableModule } from '@angular/material/table';
9
+ import * as i1 from '@angular/common';
10
+ import { CommonModule } from '@angular/common';
11
+ import * as i3$1 from '@angular/material/sort';
12
+ import { MatSortModule } from '@angular/material/sort';
13
+ import * as i5 from '@angular/material/checkbox';
14
+ import { MatCheckboxModule } from '@angular/material/checkbox';
15
+ import * as i6 from '@angular/material/radio';
16
+ import { MatRadioModule } from '@angular/material/radio';
17
+ import * as i2 from '@angular/material/icon';
18
+ import { MatIconModule } from '@angular/material/icon';
19
+ import * as i3 from '@angular/material/menu';
20
+ import { MatMenuModule } from '@angular/material/menu';
21
+ import * as i4 from '@angular/material/button';
22
+ import { MatButtonModule } from '@angular/material/button';
23
+ import { FormsModule } from '@angular/forms';
24
+
25
+ class EntryTableConfig {
26
+ constructor() {
27
+ this.showPaginator = true;
28
+ this.showFirstLastButtons = false;
29
+ this.pageSize = 20;
30
+ this.pageSizeOptions = [20, 50, 100];
31
+ this.hidePageSize = false;
32
+ this.noResultsText = 'No results found';
33
+ }
34
+ }
35
+ ;
36
+ const ENTRY_TABLE_CONFIG = new InjectionToken('ENTRY_TABLE_CONFIG', {
37
+ providedIn: 'root',
38
+ factory: () => new EntryTableConfig()
39
+ });
40
+ const DEFAULT_PERCENTAGE_MULTIPLIER = new InjectionToken('');
41
+
42
+ const defaultPageSize = 10;
43
+ const defaultPageNumber = 1;
44
+ class PagedQuery {
45
+ constructor() {
46
+ this.pageNumber = defaultPageNumber;
47
+ this.pageSize = defaultPageSize;
48
+ }
49
+ sortChange(sort) {
50
+ if (sort.active) {
51
+ this.sortBy = sort.active;
52
+ this.sortDirection = sort.direction;
53
+ this.pageNumber = defaultPageNumber;
54
+ }
55
+ }
56
+ pageChange(page) {
57
+ this.pageNumber = page.pageIndex + 1;
58
+ this.pageSize = page.pageSize;
59
+ }
60
+ applyRouteChanges(queryParams) {
61
+ var _a, _b;
62
+ this.pageNumber = queryParams.pageNumber ? Number(queryParams.pageNumber) : defaultPageNumber;
63
+ this.pageSize = queryParams.pageSize ? Number(queryParams.pageSize) : this.pageSize;
64
+ this.sortBy = (_a = queryParams.sortBy) !== null && _a !== void 0 ? _a : this.sortBy;
65
+ this.sortDirection = (_b = queryParams.sortDirection) !== null && _b !== void 0 ? _b : this.sortDirection;
66
+ }
67
+ getRouteQueryParams() {
68
+ return {
69
+ pageNumber: this.pageNumber,
70
+ pageSize: this.pageSize,
71
+ sortBy: this.sortBy,
72
+ sortDirection: this.sortDirection
73
+ };
74
+ }
75
+ }
76
+
77
+ class EntryCellFormattedValueComponent {
78
+ constructor(defaultPercentageMultiplier) {
79
+ this.defaultPercentageMultiplier = defaultPercentageMultiplier;
80
+ }
81
+ }
82
+ EntryCellFormattedValueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryCellFormattedValueComponent, deps: [{ token: DEFAULT_PERCENTAGE_MULTIPLIER }], target: i0.ɵɵFactoryTarget.Component });
83
+ EntryCellFormattedValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntryCellFormattedValueComponent, selector: "entry-cell-formatted-value", inputs: { value: "value", type: "type", typeParameter: "typeParameter" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <!-- Boolean -->\n <ng-container *ngSwitchCase=\"'boolean'\">\n {{value ? '\\u2713' : ''}}\n </ng-container>\n <!-- Number -->\n <ng-container *ngSwitchCase=\"'number'\">\n {{value | number: typeParameter?.digitsInfo : typeParameter?.locale}}\n </ng-container>\n <!-- Currency -->\n <ng-container *ngSwitchCase=\"'currency'\">\n {{value | currency: typeParameter?.currencyCode : typeParameter?.display : typeParameter?.digitsInfo : typeParameter?.locale}}\n </ng-container>\n <!-- Percent -->\n <ng-container *ngSwitchCase=\"'percent'\">\n {{+value * (typeParameter?.multiplier ?? defaultPercentageMultiplier) | percent: typeParameter?.digitsInfo : typeParameter?.locale}}\n </ng-container>\n <!-- Date -->\n <ng-container *ngSwitchCase=\"'date'\">\n {{value | date: typeParameter?.format : typeParameter?.timezone : typeParameter?.locale}}\n </ng-container>\n <!-- Link -->\n <ng-container *ngSwitchCase=\"'link'\">\n <a [href]=\"value\" target=\"_blank\">{{value}}</a>\n </ng-container>\n <!-- Default -->\n <ng-container *ngSwitchDefault>\n {{value}}\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { 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 });
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryCellFormattedValueComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'entry-cell-formatted-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"type\">\n <!-- Boolean -->\n <ng-container *ngSwitchCase=\"'boolean'\">\n {{value ? '\\u2713' : ''}}\n </ng-container>\n <!-- Number -->\n <ng-container *ngSwitchCase=\"'number'\">\n {{value | number: typeParameter?.digitsInfo : typeParameter?.locale}}\n </ng-container>\n <!-- Currency -->\n <ng-container *ngSwitchCase=\"'currency'\">\n {{value | currency: typeParameter?.currencyCode : typeParameter?.display : typeParameter?.digitsInfo : typeParameter?.locale}}\n </ng-container>\n <!-- Percent -->\n <ng-container *ngSwitchCase=\"'percent'\">\n {{+value * (typeParameter?.multiplier ?? defaultPercentageMultiplier) | percent: typeParameter?.digitsInfo : typeParameter?.locale}}\n </ng-container>\n <!-- Date -->\n <ng-container *ngSwitchCase=\"'date'\">\n {{value | date: typeParameter?.format : typeParameter?.timezone : typeParameter?.locale}}\n </ng-container>\n <!-- Link -->\n <ng-container *ngSwitchCase=\"'link'\">\n <a [href]=\"value\" target=\"_blank\">{{value}}</a>\n </ng-container>\n <!-- Default -->\n <ng-container *ngSwitchDefault>\n {{value}}\n </ng-container>\n</ng-container>\n" }]
87
+ }], ctorParameters: function () {
88
+ return [{ type: undefined, decorators: [{
89
+ type: Inject,
90
+ args: [DEFAULT_PERCENTAGE_MULTIPLIER]
91
+ }] }];
92
+ }, propDecorators: { value: [{
93
+ type: Input
94
+ }], type: [{
95
+ type: Input
96
+ }], typeParameter: [{
97
+ type: Input
98
+ }] } });
99
+
100
+ class EntryCellComponent {
101
+ get value() {
102
+ return this.getCellValue(this.rowData, this.colDef);
103
+ }
104
+ getCellValue(rowData, colDef) {
105
+ const keys = colDef.field ? colDef.field.split('.') : [];
106
+ return keys.reduce((data, key) => data && data[key], rowData);
107
+ }
108
+ }
109
+ EntryCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
110
+ EntryCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntryCellComponent, selector: "entry-cell", inputs: { rowData: "rowData", colDef: "colDef" }, ngImport: i0, template: "<entry-cell-formatted-value [value]=\"value\" [type]=\"colDef.type\" [typeParameter]=\"colDef.typeParameter\"></entry-cell-formatted-value>", dependencies: [{ kind: "component", type: EntryCellFormattedValueComponent, selector: "entry-cell-formatted-value", inputs: ["value", "type", "typeParameter"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryCellComponent, decorators: [{
112
+ type: Component,
113
+ args: [{ selector: 'entry-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<entry-cell-formatted-value [value]=\"value\" [type]=\"colDef.type\" [typeParameter]=\"colDef.typeParameter\"></entry-cell-formatted-value>" }]
114
+ }], propDecorators: { rowData: [{
115
+ type: Input
116
+ }], colDef: [{
117
+ type: Input
118
+ }] } });
119
+
120
+ class EntryCellContextMenuComponent {
121
+ constructor() {
122
+ this.items = [];
123
+ this.selected = new EventEmitter();
124
+ this.menuItems = [];
125
+ }
126
+ ngOnInit() {
127
+ var _a;
128
+ this.menuItems = ((_a = this.rowMenuFormatter) === null || _a === void 0 ? void 0 : _a.items)
129
+ ? this.rowMenuFormatter.items(this.rowData)
130
+ : this.items;
131
+ }
132
+ }
133
+ EntryCellContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryCellContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
134
+ EntryCellContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntryCellContextMenuComponent, selector: "entry-cell-context-menu", inputs: { items: "items", rowMenuFormatter: "rowMenuFormatter", rowData: "rowData" }, outputs: { selected: "selected" }, ngImport: i0, template: "<button mat-icon-button [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\">\n <mat-icon>more_vert</mat-icon>\n</button>\n<mat-menu #menu=\"matMenu\" class=\"entry-table-menu\">\n <button *ngFor=\"let item of menuItems\" mat-menu-item [disabled]=\"item.disabled\" (click)=\"selected.emit(item.id)\"\n class=\"context-menu-item\">\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <span>{{item.name}}</span>\n </button>\n</mat-menu>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryCellContextMenuComponent, decorators: [{
136
+ type: Component,
137
+ args: [{ selector: 'entry-cell-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button mat-icon-button [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\">\n <mat-icon>more_vert</mat-icon>\n</button>\n<mat-menu #menu=\"matMenu\" class=\"entry-table-menu\">\n <button *ngFor=\"let item of menuItems\" mat-menu-item [disabled]=\"item.disabled\" (click)=\"selected.emit(item.id)\"\n class=\"context-menu-item\">\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <span>{{item.name}}</span>\n </button>\n</mat-menu>" }]
138
+ }], propDecorators: { items: [{
139
+ type: Input
140
+ }], rowMenuFormatter: [{
141
+ type: Input
142
+ }], rowData: [{
143
+ type: Input
144
+ }], selected: [{
145
+ type: Output
146
+ }] } });
147
+
148
+ /* eslint-disable @typescript-eslint/member-ordering */
149
+ class EntryTableComponent {
150
+ get hasNoResult() {
151
+ return (!this.data || this._data.length === 0) && !this.loading;
152
+ }
153
+ constructor(_config, _elementRef, _changeDetectorRef) {
154
+ this._config = _config;
155
+ this._elementRef = _elementRef;
156
+ this._changeDetectorRef = _changeDetectorRef;
157
+ this.className = 'entry-table';
158
+ this.dataSource = new MatTableDataSource([]);
159
+ this.columns = [];
160
+ // Data
161
+ this._data = [];
162
+ this.data = [];
163
+ this.total = 0;
164
+ this.loading = false;
165
+ this.pageDisabled = false;
166
+ this.pageIndex = 0;
167
+ this.pageChange = new EventEmitter();
168
+ this.sortDisableClear = false;
169
+ this.sortDisabled = false;
170
+ this.sortStart = 'asc';
171
+ this.sortChange = new EventEmitter();
172
+ // Row
173
+ this.rowHover = false;
174
+ this.rowStriped = false;
175
+ this.rowFocusVisible = false;
176
+ this.rowClick = new EventEmitter();
177
+ // Row selection
178
+ this.multiSelectable = true;
179
+ this.rowSelection = new SelectionModel(true, []);
180
+ this.rowSelected = [];
181
+ this.rowSelectable = false;
182
+ this.showSelectAllCheckbox = true;
183
+ this.rowSelectionFormatter = {};
184
+ this.rowSelectionChange = new EventEmitter();
185
+ // Context menu
186
+ this.showContextMenu = false;
187
+ this.contextMenuItems = [];
188
+ this.contextMenuItemSelected = new EventEmitter();
189
+ this.selectionColumn = 'selection-column';
190
+ this.contextMenuColumn = 'context-menu-column';
191
+ }
192
+ detectChanges() {
193
+ this._changeDetectorRef.detectChanges();
194
+ }
195
+ isTemplateRef(obj) {
196
+ return obj instanceof TemplateRef;
197
+ }
198
+ getRowClassList(rowData, index) {
199
+ const classList = {
200
+ selected: this.rowSelection.isSelected(rowData),
201
+ // eslint-disable-next-line @typescript-eslint/naming-convention
202
+ 'mat-row-odd': index % 2,
203
+ };
204
+ if (this.rowClassFormatter) {
205
+ for (const key of Object.keys(this.rowClassFormatter)) {
206
+ classList[key] = this.rowClassFormatter[key](rowData);
207
+ }
208
+ }
209
+ return classList;
210
+ }
211
+ getColumnClassList(colDef) {
212
+ var _a, _b;
213
+ const customClasses = (_a = colDef.class) !== null && _a !== void 0 ? _a : '';
214
+ const columnType = (_b = colDef.type) !== null && _b !== void 0 ? _b : '';
215
+ const columnField = `cell-${this.convertToKebabCase(colDef.field)}`;
216
+ return `${customClasses} ${columnType} ${columnField}`;
217
+ }
218
+ ngOnChanges(changes) {
219
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
220
+ this.showPaginator = (_a = this.showPaginator) !== null && _a !== void 0 ? _a : this._config.showPaginator;
221
+ this.showFirstLastButtons = (_b = this.showFirstLastButtons) !== null && _b !== void 0 ? _b : this._config.showFirstLastButtons;
222
+ this.pageSizeOptions = (_c = this.pageSizeOptions) !== null && _c !== void 0 ? _c : this._config.pageSizeOptions;
223
+ this.hidePageSize = (_d = this.hidePageSize) !== null && _d !== void 0 ? _d : this._config.hidePageSize;
224
+ this.noResultText = (_e = this.noResultText) !== null && _e !== void 0 ? _e : this._config.noResultsText;
225
+ this.displayedColumns = this.columns.filter(item => !item.hide).map(item => item.field);
226
+ if (this.rowSelectable && !this.displayedColumns.includes(this.selectionColumn)) {
227
+ this.displayedColumns.unshift(this.selectionColumn);
228
+ }
229
+ if (this.showContextMenu && !this.displayedColumns.includes(this.contextMenuColumn)) {
230
+ this.displayedColumns.push(this.contextMenuColumn);
231
+ }
232
+ if (this.rowSelectable) {
233
+ this.rowSelection = new SelectionModel(this.multiSelectable, this.rowSelected);
234
+ }
235
+ if (!this.data) {
236
+ this.data = [];
237
+ }
238
+ if (Array.isArray(this.data)) {
239
+ this._data = this.data;
240
+ }
241
+ else {
242
+ this._page = this.data;
243
+ this._data = (_f = this._page.items) !== null && _f !== void 0 ? _f : [];
244
+ this.total = (_g = this._page.totalCount) !== null && _g !== void 0 ? _g : 0;
245
+ this.pageSize = (_j = (_h = this._page.pageSize) !== null && _h !== void 0 ? _h : this.pageSize) !== null && _j !== void 0 ? _j : this._config.pageSize;
246
+ this.pageIndex = this._page.pageNumber ? this._page.pageNumber - 1 : this.pageIndex;
247
+ }
248
+ if (this.dataSource) {
249
+ this.dataSource.disconnect();
250
+ }
251
+ this.dataSource = new MatTableDataSource(this._data);
252
+ if (changes.data) {
253
+ this.scrollToTop();
254
+ }
255
+ }
256
+ getIndex(index, dataIndex) {
257
+ return typeof index === 'undefined' ? dataIndex : index;
258
+ }
259
+ isAllSelected() {
260
+ const numSelected = this.rowSelection.selected.length;
261
+ const numRows = this.dataSource.data.filter(row => { var _a, _b; return !((_b = (_a = this.rowSelectionFormatter).disabled) === null || _b === void 0 ? void 0 : _b.call(_a, row)); }).length;
262
+ return numSelected === numRows;
263
+ }
264
+ toggleSelectAllCheckbox() {
265
+ if (this.isAllSelected()) {
266
+ this.rowSelection.clear();
267
+ this.rowSelectionChange.emit(this.rowSelection.selected);
268
+ return;
269
+ }
270
+ this.dataSource.data.forEach(row => {
271
+ var _a, _b;
272
+ if (!((_b = (_a = this.rowSelectionFormatter).disabled) === null || _b === void 0 ? void 0 : _b.call(_a, row))) {
273
+ this.rowSelection.select(row);
274
+ }
275
+ });
276
+ this.rowSelectionChange.emit(this.rowSelection.selected);
277
+ }
278
+ toggleRowSelection(row) {
279
+ this.rowSelection.toggle(row);
280
+ this.rowSelectionChange.emit(this.rowSelection.selected);
281
+ }
282
+ handlePage(e) {
283
+ this.pageChange.emit(e);
284
+ }
285
+ scrollToTop() {
286
+ this._elementRef.nativeElement.scrollTop = 0;
287
+ }
288
+ convertToKebabCase(value) {
289
+ return value === null || value === void 0 ? void 0 : value.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
290
+ }
291
+ }
292
+ EntryTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryTableComponent, deps: [{ token: ENTRY_TABLE_CONFIG }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
293
+ EntryTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntryTableComponent, selector: "entry-table", inputs: { displayedColumns: "displayedColumns", columns: "columns", data: "data", total: "total", loading: "loading", showPaginator: "showPaginator", pageDisabled: "pageDisabled", showFirstLastButtons: "showFirstLastButtons", pageIndex: "pageIndex", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", hidePageSize: "hidePageSize", paginationTemplate: "paginationTemplate", sortActive: "sortActive", sortDirection: "sortDirection", sortDisableClear: "sortDisableClear", sortDisabled: "sortDisabled", sortStart: "sortStart", rowHover: "rowHover", rowStriped: "rowStriped", rowFocusVisible: "rowFocusVisible", multiSelectable: "multiSelectable", rowSelected: "rowSelected", rowSelectable: "rowSelectable", showSelectAllCheckbox: "showSelectAllCheckbox", rowSelectionFormatter: "rowSelectionFormatter", rowClassFormatter: "rowClassFormatter", showContextMenu: "showContextMenu", contextMenuItems: "contextMenuItems", contextMenuTemplate: "contextMenuTemplate", rowContextMenuFormatter: "rowContextMenuFormatter", noResultText: "noResultText", noResultTemplate: "noResultTemplate", headerTemplate: "headerTemplate", cellTemplate: "cellTemplate" }, outputs: { pageChange: "pageChange", sortChange: "sortChange", rowClick: "rowClick", rowSelectionChange: "rowSelectionChange", contextMenuItemSelected: "contextMenuItemSelected" }, host: { properties: { "class": "this.className" } }, usesOnChanges: true, ngImport: i0, template: "<!-- Table content -->\n<table mat-table \n [ngClass]=\"{'mat-table-hover': rowHover, 'mat-table-striped': rowStriped, 'mat-table-with-data': !hasNoResult }\"\n [dataSource]=\"dataSource\"\n matSort\n [matSortActive]=\"sortActive\"\n [matSortDirection]=\"sortDirection\"\n [matSortDisableClear]=\"sortDisableClear\"\n [matSortDisabled]=\"sortDisabled\"\n [matSortStart]=\"sortStart\"\n (matSortChange)=\"sortChange.emit($event)\">\n\n <!-- Selection column -->\n <ng-container *ngIf=\"rowSelectable\" [matColumnDef]=\"selectionColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"selection-cell\">\n <mat-checkbox *ngIf=\"multiSelectable && showSelectAllCheckbox\"\n [checked]=\"rowSelection.hasValue() && isAllSelected()\"\n [indeterminate]=\"rowSelection.hasValue() && !isAllSelected()\"\n (change)=\"$event ? toggleSelectAllCheckbox() : null\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n class=\"selection-cell\"\n (click)=\"$event.stopPropagation()\">\n <mat-checkbox\n *ngIf=\"multiSelectable && !(rowSelectionFormatter.hideCheckbox && rowSelectionFormatter.hideCheckbox!(row))\"\n [disabled]=\"rowSelectionFormatter.disabled && rowSelectionFormatter.disabled!(row)\"\n [checked]=\"rowSelection.isSelected(row)\"\n (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-checkbox>\n <mat-radio-button\n *ngIf=\"!multiSelectable && !(rowSelectionFormatter.hideCheckbox && rowSelectionFormatter.hideCheckbox!(row))\"\n [disabled]=\"rowSelectionFormatter.disabled && rowSelectionFormatter.disabled!(row)\"\n [checked]=\"rowSelection.isSelected(row)\"\n [value]=\"rowSelection.isSelected(row)\"\n (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-radio-button>\n </td>\n </ng-container>\n\n <!-- Context menu column -->\n <ng-container *ngIf=\"showContextMenu\" [matColumnDef]=\"contextMenuColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"action-cell\"></th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n class=\"action-cell\">\n <ng-template [ngIf]=\"isTemplateRef(contextMenuTemplate)\" [ngIfElse]=\"contextMenuTpl\">\n <ng-template [ngTemplateOutlet]=\"contextMenuTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row }\">\n </ng-template>\n </ng-template>\n <ng-template #contextMenuTpl>\n <entry-cell-context-menu\n [items]=\"contextMenuItems\"\n [rowData]=\"row\"\n [rowMenuFormatter]=\"rowContextMenuFormatter\"\n (selected)=\"contextMenuItemSelected.emit({itemId: $event, rowData: row})\"\n ></entry-cell-context-menu>\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let col of columns;\">\n <ng-container [matColumnDef]=\"col.field\"\n [sticky]=\"col.pinned==='left'\" [stickyEnd]=\"col.pinned==='right'\">\n <th mat-header-cell *matHeaderCellDef\n [class]=\"getColumnClassList(col)\"\n [ngClass]=\"{'mat-table-sticky-left': col.pinned === 'left', 'mat-table-sticky-right': col.pinned === 'right'}\"\n [ngStyle]=\"{'width': col.width, 'min-width': col.width}\">\n <ng-template [ngIf]=\"isTemplateRef(headerTemplate)\" [ngIfElse]=\"headerTpl\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col }\">\n </ng-template>\n </ng-template>\n <ng-template #headerTpl>\n <ng-template [ngIf]=\"headerTemplate && isTemplateRef(headerTemplate[col.field])\"\n [ngIfElse]=\"defaultHeaderTpl\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate[col.field]\"\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col }\">\n </ng-template>\n </ng-template>\n </ng-template>\n <ng-template #defaultHeaderTpl>\n <div [mat-sort-header]=\"col.sortProp?.id || col.field\"\n [disabled]=\"!col.sortable\"\n [disableClear]=\"col.sortProp?.disableClear\">\n <span>{{col.header}}</span>\n </div>\n </ng-template>\n </th>\n\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n [class]=\"getColumnClassList(col)\"\n [ngClass]=\"{'mat-table-sticky-left': col.pinned === 'left', 'mat-table-sticky-right': col.pinned === 'right'}\"\n [ngStyle]=\"{'width': col.width, 'min-width': col.width}\">\n <ng-template [ngIf]=\"isTemplateRef(cellTemplate)\" [ngIfElse]=\"cellTpl\">\n <ng-template [ngTemplateOutlet]=\"cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: col }\">\n </ng-template>\n </ng-template>\n <ng-template #cellTpl>\n <ng-template [ngIf]=\"cellTemplate && isTemplateRef(cellTemplate[col.field])\"\n [ngIfElse]=\"colDefCellTpl\">\n <ng-template [ngTemplateOutlet]=\"cellTemplate[col.field]\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: col }\">\n </ng-template>\n </ng-template>\n </ng-template>\n <ng-template #colDefCellTpl>\n <ng-template [ngIf]=\"col.cellTemplate\" [ngIfElse]=\"defaultCellTpl\"\n [ngTemplateOutlet]=\"col.cellTemplate ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: col }\">\n </ng-template>\n </ng-template>\n <ng-template #defaultCellTpl>\n <entry-cell [rowData]=\"row\" [colDef]=\"col\"></entry-cell>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row\n *matRowDef=\"let row; let index = index; let dataIndex = dataIndex; columns: displayedColumns;\"\n [ngClass]=\"getRowClassList(row, getIndex(index, dataIndex))\"\n [attr.tabindex]=\"rowFocusVisible ? 0 : -1\"\n (click)=\"rowClick.emit(row)\"\n (keyup.enter)=\"rowClick.emit(row)\">\n </tr>\n</table>\n\n<!-- No results -->\n<div class=\"no-results mat-body-2\" *ngIf=\"hasNoResult\">\n <ng-template [ngIf]=\"isTemplateRef(noResultTemplate)\" [ngIfElse]=\"defaultNoResultTpl\">\n <ng-template [ngTemplateOutlet]=\"noResultTemplate\"></ng-template>\n </ng-template>\n <ng-template #defaultNoResultTpl>{{noResultText}}</ng-template>\n</div>\n\n<!-- Pagination -->\n<ng-template [ngIf]=\"isTemplateRef(paginationTemplate)\" [ngIfElse]=\"defaultPaginationTemplate\">\n <ng-template [ngTemplateOutlet]=\"paginationTemplate\"></ng-template>\n</ng-template>\n<ng-template #defaultPaginationTemplate>\n <mat-paginator class=\"pagination\" *ngIf=\"showPaginator\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n [length]=\"total\"\n [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [hidePageSize]=\"hidePageSize\"\n (page)=\"handlePage($event)\"\n [disabled]=\"pageDisabled\">\n </mat-paginator>\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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: ["sticky", "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: "directive", type: i3$1.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i3$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i4$1.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: EntryCellComponent, selector: "entry-cell", inputs: ["rowData", "colDef"] }, { kind: "component", type: EntryCellContextMenuComponent, selector: "entry-cell-context-menu", inputs: ["items", "rowMenuFormatter", "rowData"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryTableComponent, decorators: [{
295
+ type: Component,
296
+ args: [{ selector: 'entry-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Table content -->\n<table mat-table \n [ngClass]=\"{'mat-table-hover': rowHover, 'mat-table-striped': rowStriped, 'mat-table-with-data': !hasNoResult }\"\n [dataSource]=\"dataSource\"\n matSort\n [matSortActive]=\"sortActive\"\n [matSortDirection]=\"sortDirection\"\n [matSortDisableClear]=\"sortDisableClear\"\n [matSortDisabled]=\"sortDisabled\"\n [matSortStart]=\"sortStart\"\n (matSortChange)=\"sortChange.emit($event)\">\n\n <!-- Selection column -->\n <ng-container *ngIf=\"rowSelectable\" [matColumnDef]=\"selectionColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"selection-cell\">\n <mat-checkbox *ngIf=\"multiSelectable && showSelectAllCheckbox\"\n [checked]=\"rowSelection.hasValue() && isAllSelected()\"\n [indeterminate]=\"rowSelection.hasValue() && !isAllSelected()\"\n (change)=\"$event ? toggleSelectAllCheckbox() : null\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n class=\"selection-cell\"\n (click)=\"$event.stopPropagation()\">\n <mat-checkbox\n *ngIf=\"multiSelectable && !(rowSelectionFormatter.hideCheckbox && rowSelectionFormatter.hideCheckbox!(row))\"\n [disabled]=\"rowSelectionFormatter.disabled && rowSelectionFormatter.disabled!(row)\"\n [checked]=\"rowSelection.isSelected(row)\"\n (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-checkbox>\n <mat-radio-button\n *ngIf=\"!multiSelectable && !(rowSelectionFormatter.hideCheckbox && rowSelectionFormatter.hideCheckbox!(row))\"\n [disabled]=\"rowSelectionFormatter.disabled && rowSelectionFormatter.disabled!(row)\"\n [checked]=\"rowSelection.isSelected(row)\"\n [value]=\"rowSelection.isSelected(row)\"\n (change)=\"$event ? toggleRowSelection(row) : null\">\n </mat-radio-button>\n </td>\n </ng-container>\n\n <!-- Context menu column -->\n <ng-container *ngIf=\"showContextMenu\" [matColumnDef]=\"contextMenuColumn\">\n <th mat-header-cell *matHeaderCellDef class=\"action-cell\"></th>\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n class=\"action-cell\">\n <ng-template [ngIf]=\"isTemplateRef(contextMenuTemplate)\" [ngIfElse]=\"contextMenuTpl\">\n <ng-template [ngTemplateOutlet]=\"contextMenuTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row }\">\n </ng-template>\n </ng-template>\n <ng-template #contextMenuTpl>\n <entry-cell-context-menu\n [items]=\"contextMenuItems\"\n [rowData]=\"row\"\n [rowMenuFormatter]=\"rowContextMenuFormatter\"\n (selected)=\"contextMenuItemSelected.emit({itemId: $event, rowData: row})\"\n ></entry-cell-context-menu>\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let col of columns;\">\n <ng-container [matColumnDef]=\"col.field\"\n [sticky]=\"col.pinned==='left'\" [stickyEnd]=\"col.pinned==='right'\">\n <th mat-header-cell *matHeaderCellDef\n [class]=\"getColumnClassList(col)\"\n [ngClass]=\"{'mat-table-sticky-left': col.pinned === 'left', 'mat-table-sticky-right': col.pinned === 'right'}\"\n [ngStyle]=\"{'width': col.width, 'min-width': col.width}\">\n <ng-template [ngIf]=\"isTemplateRef(headerTemplate)\" [ngIfElse]=\"headerTpl\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col }\">\n </ng-template>\n </ng-template>\n <ng-template #headerTpl>\n <ng-template [ngIf]=\"headerTemplate && isTemplateRef(headerTemplate[col.field])\"\n [ngIfElse]=\"defaultHeaderTpl\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate[col.field]\"\n [ngTemplateOutletContext]=\"{ $implicit: col, colDef: col }\">\n </ng-template>\n </ng-template>\n </ng-template>\n <ng-template #defaultHeaderTpl>\n <div [mat-sort-header]=\"col.sortProp?.id || col.field\"\n [disabled]=\"!col.sortable\"\n [disableClear]=\"col.sortProp?.disableClear\">\n <span>{{col.header}}</span>\n </div>\n </ng-template>\n </th>\n\n <td mat-cell *matCellDef=\"let row; let index = index; let dataIndex = dataIndex;\"\n [class]=\"getColumnClassList(col)\"\n [ngClass]=\"{'mat-table-sticky-left': col.pinned === 'left', 'mat-table-sticky-right': col.pinned === 'right'}\"\n [ngStyle]=\"{'width': col.width, 'min-width': col.width}\">\n <ng-template [ngIf]=\"isTemplateRef(cellTemplate)\" [ngIfElse]=\"cellTpl\">\n <ng-template [ngTemplateOutlet]=\"cellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: col }\">\n </ng-template>\n </ng-template>\n <ng-template #cellTpl>\n <ng-template [ngIf]=\"cellTemplate && isTemplateRef(cellTemplate[col.field])\"\n [ngIfElse]=\"colDefCellTpl\">\n <ng-template [ngTemplateOutlet]=\"cellTemplate[col.field]\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: col }\">\n </ng-template>\n </ng-template>\n </ng-template>\n <ng-template #colDefCellTpl>\n <ng-template [ngIf]=\"col.cellTemplate\" [ngIfElse]=\"defaultCellTpl\"\n [ngTemplateOutlet]=\"col.cellTemplate ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowData: row, index: getIndex(index, dataIndex), colDef: col }\">\n </ng-template>\n </ng-template>\n <ng-template #defaultCellTpl>\n <entry-cell [rowData]=\"row\" [colDef]=\"col\"></entry-cell>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row\n *matRowDef=\"let row; let index = index; let dataIndex = dataIndex; columns: displayedColumns;\"\n [ngClass]=\"getRowClassList(row, getIndex(index, dataIndex))\"\n [attr.tabindex]=\"rowFocusVisible ? 0 : -1\"\n (click)=\"rowClick.emit(row)\"\n (keyup.enter)=\"rowClick.emit(row)\">\n </tr>\n</table>\n\n<!-- No results -->\n<div class=\"no-results mat-body-2\" *ngIf=\"hasNoResult\">\n <ng-template [ngIf]=\"isTemplateRef(noResultTemplate)\" [ngIfElse]=\"defaultNoResultTpl\">\n <ng-template [ngTemplateOutlet]=\"noResultTemplate\"></ng-template>\n </ng-template>\n <ng-template #defaultNoResultTpl>{{noResultText}}</ng-template>\n</div>\n\n<!-- Pagination -->\n<ng-template [ngIf]=\"isTemplateRef(paginationTemplate)\" [ngIfElse]=\"defaultPaginationTemplate\">\n <ng-template [ngTemplateOutlet]=\"paginationTemplate\"></ng-template>\n</ng-template>\n<ng-template #defaultPaginationTemplate>\n <mat-paginator class=\"pagination\" *ngIf=\"showPaginator\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n [length]=\"total\"\n [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [hidePageSize]=\"hidePageSize\"\n (page)=\"handlePage($event)\"\n [disabled]=\"pageDisabled\">\n </mat-paginator>\n</ng-template>" }]
297
+ }], ctorParameters: function () {
298
+ return [{ type: EntryTableConfig, decorators: [{
299
+ type: Inject,
300
+ args: [ENTRY_TABLE_CONFIG]
301
+ }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }];
302
+ }, propDecorators: { className: [{
303
+ type: HostBinding,
304
+ args: ['class']
305
+ }], displayedColumns: [{
306
+ type: Input
307
+ }], columns: [{
308
+ type: Input
309
+ }], data: [{
310
+ type: Input
311
+ }], total: [{
312
+ type: Input
313
+ }], loading: [{
314
+ type: Input
315
+ }], showPaginator: [{
316
+ type: Input
317
+ }], pageDisabled: [{
318
+ type: Input
319
+ }], showFirstLastButtons: [{
320
+ type: Input
321
+ }], pageIndex: [{
322
+ type: Input
323
+ }], pageSize: [{
324
+ type: Input
325
+ }], pageSizeOptions: [{
326
+ type: Input
327
+ }], hidePageSize: [{
328
+ type: Input
329
+ }], pageChange: [{
330
+ type: Output
331
+ }], paginationTemplate: [{
332
+ type: Input
333
+ }], sortActive: [{
334
+ type: Input
335
+ }], sortDirection: [{
336
+ type: Input
337
+ }], sortDisableClear: [{
338
+ type: Input
339
+ }], sortDisabled: [{
340
+ type: Input
341
+ }], sortStart: [{
342
+ type: Input
343
+ }], sortChange: [{
344
+ type: Output
345
+ }], rowHover: [{
346
+ type: Input
347
+ }], rowStriped: [{
348
+ type: Input
349
+ }], rowFocusVisible: [{
350
+ type: Input
351
+ }], rowClick: [{
352
+ type: Output
353
+ }], multiSelectable: [{
354
+ type: Input
355
+ }], rowSelected: [{
356
+ type: Input
357
+ }], rowSelectable: [{
358
+ type: Input
359
+ }], showSelectAllCheckbox: [{
360
+ type: Input
361
+ }], rowSelectionFormatter: [{
362
+ type: Input
363
+ }], rowClassFormatter: [{
364
+ type: Input
365
+ }], rowSelectionChange: [{
366
+ type: Output
367
+ }], showContextMenu: [{
368
+ type: Input
369
+ }], contextMenuItems: [{
370
+ type: Input
371
+ }], contextMenuTemplate: [{
372
+ type: Input
373
+ }], rowContextMenuFormatter: [{
374
+ type: Input
375
+ }], contextMenuItemSelected: [{
376
+ type: Output
377
+ }], noResultText: [{
378
+ type: Input
379
+ }], noResultTemplate: [{
380
+ type: Input
381
+ }], headerTemplate: [{
382
+ type: Input
383
+ }], cellTemplate: [{
384
+ type: Input
385
+ }] } });
386
+
387
+ class EntryTableModule {
388
+ }
389
+ EntryTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
390
+ EntryTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: EntryTableModule, declarations: [EntryTableComponent,
391
+ EntryCellComponent,
392
+ EntryCellContextMenuComponent,
393
+ EntryCellFormattedValueComponent], imports: [CommonModule,
394
+ FormsModule,
395
+ MatTableModule,
396
+ MatSortModule,
397
+ MatPaginatorModule,
398
+ MatCheckboxModule,
399
+ MatIconModule,
400
+ MatMenuModule,
401
+ MatRadioModule,
402
+ CommonModule,
403
+ MatButtonModule], exports: [EntryTableComponent,
404
+ EntryCellComponent,
405
+ EntryCellContextMenuComponent,
406
+ EntryCellFormattedValueComponent] });
407
+ EntryTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryTableModule, providers: [
408
+ { provide: DEFAULT_PERCENTAGE_MULTIPLIER, useValue: 1 }
409
+ ], imports: [CommonModule,
410
+ FormsModule,
411
+ MatTableModule,
412
+ MatSortModule,
413
+ MatPaginatorModule,
414
+ MatCheckboxModule,
415
+ MatIconModule,
416
+ MatMenuModule,
417
+ MatRadioModule,
418
+ CommonModule,
419
+ MatButtonModule] });
420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryTableModule, decorators: [{
421
+ type: NgModule,
422
+ args: [{
423
+ imports: [
424
+ CommonModule,
425
+ FormsModule,
426
+ MatTableModule,
427
+ MatSortModule,
428
+ MatPaginatorModule,
429
+ MatCheckboxModule,
430
+ MatIconModule,
431
+ MatMenuModule,
432
+ MatRadioModule,
433
+ CommonModule,
434
+ MatButtonModule
435
+ ],
436
+ declarations: [
437
+ EntryTableComponent,
438
+ EntryCellComponent,
439
+ EntryCellContextMenuComponent,
440
+ EntryCellFormattedValueComponent
441
+ ],
442
+ exports: [
443
+ EntryTableComponent,
444
+ EntryCellComponent,
445
+ EntryCellContextMenuComponent,
446
+ EntryCellFormattedValueComponent
447
+ ],
448
+ providers: [
449
+ { provide: DEFAULT_PERCENTAGE_MULTIPLIER, useValue: 1 }
450
+ ]
451
+ }]
452
+ }] });
453
+
454
+ /**
455
+ * Generated bundle index. Do not edit.
456
+ */
457
+
458
+ export { DEFAULT_PERCENTAGE_MULTIPLIER, ENTRY_TABLE_CONFIG, EntryCellComponent, EntryCellContextMenuComponent, EntryCellFormattedValueComponent, EntryTableComponent, EntryTableConfig, EntryTableModule, PagedQuery, defaultPageNumber, defaultPageSize };
459
+ //# sourceMappingURL=enigmatry-entry-components-table.mjs.map