@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.
- package/esm2020/table/components/entry-cell/entry-cell.component.mjs +23 -0
- package/esm2020/table/components/entry-cell-context-menu/entry-cell-context-menu.component.mjs +33 -0
- package/esm2020/table/components/entry-cell-formatted-value/entry-cell-formatted-value.component.mjs +25 -0
- package/esm2020/table/components/entry-table/entry-table.component.mjs +248 -0
- package/esm2020/table/components/index.mjs +5 -0
- package/esm2020/table/enigmatry-entry-components-table.mjs +5 -0
- package/esm2020/table/entry-table.module.mjs +84 -0
- package/esm2020/table/interfaces/cell-template.mjs +2 -0
- package/esm2020/table/interfaces/column-def.mjs +2 -0
- package/esm2020/table/interfaces/column-sort-prop.mjs +2 -0
- package/esm2020/table/interfaces/column-type-parameter.mjs +2 -0
- package/esm2020/table/interfaces/column-type.mjs +2 -0
- package/esm2020/table/interfaces/context-menu-item.mjs +2 -0
- package/esm2020/table/interfaces/entry-table-config.mjs +18 -0
- package/esm2020/table/interfaces/index.mjs +13 -0
- package/esm2020/table/interfaces/paged-query.mjs +34 -0
- package/esm2020/table/interfaces/pagination.mjs +2 -0
- package/esm2020/table/interfaces/row-class-formatter.mjs +2 -0
- package/esm2020/table/interfaces/row-context-menu-formatter.mjs +2 -0
- package/esm2020/table/interfaces/row-selection-formatter.mjs +2 -0
- package/esm2020/table/public-api.mjs +4 -0
- package/fesm2015/enigmatry-entry-components-table.mjs +459 -0
- package/fesm2015/enigmatry-entry-components-table.mjs.map +1 -0
- package/fesm2020/enigmatry-entry-components-table.mjs +450 -0
- package/fesm2020/enigmatry-entry-components-table.mjs.map +1 -0
- package/package.json +9 -1
- package/styles/_generator.scss +8 -6
- package/styles/modules/_default-theme.scss +5 -1
- package/styles/modules/components/dialogs/_generator.scss +2 -2
- package/styles/modules/components/inputs/_generator.scss +15 -0
- package/styles/modules/components/tables/_cells.scss +9 -2
- package/styles/partials/generator-test.scss +10 -1
- package/table/README.md +76 -0
- package/table/components/entry-cell/entry-cell.component.d.ts +10 -0
- package/table/components/entry-cell-context-menu/entry-cell-context-menu.component.d.ts +14 -0
- package/table/components/entry-cell-formatted-value/entry-cell-formatted-value.component.d.ts +10 -0
- package/table/components/entry-table/entry-table.component.d.ts +81 -0
- package/table/components/index.d.ts +4 -0
- package/table/entry-table.module.d.ts +20 -0
- package/table/index.d.ts +5 -0
- package/table/interfaces/cell-template.d.ts +4 -0
- package/table/interfaces/column-def.d.ts +20 -0
- package/table/interfaces/column-sort-prop.d.ts +5 -0
- package/table/interfaces/column-type-parameter.d.ts +9 -0
- package/table/interfaces/column-type.d.ts +1 -0
- package/table/interfaces/context-menu-item.d.ts +6 -0
- package/table/interfaces/entry-table-config.d.ts +11 -0
- package/table/interfaces/index.d.ts +12 -0
- package/table/interfaces/paged-query.d.ts +14 -0
- package/table/interfaces/pagination.d.ts +19 -0
- package/table/interfaces/row-class-formatter.d.ts +3 -0
- package/table/interfaces/row-context-menu-formatter.d.ts +4 -0
- package/table/interfaces/row-selection-formatter.d.ts +4 -0
- 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
|