@enigmatry/entry-components 20.3.1-preview.1 → 21.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/fesm2022/enigmatry-entry-components-button.mjs +14 -11
- package/fesm2022/enigmatry-entry-components-button.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-common.mjs +31 -31
- package/fesm2022/enigmatry-entry-components-common.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-date-time-picker.mjs +20 -20
- package/fesm2022/enigmatry-entry-components-date-time-picker.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-dialog.mjs +21 -21
- package/fesm2022/enigmatry-entry-components-dialog.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-file-input.mjs +11 -12
- package/fesm2022/enigmatry-entry-components-file-input.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-permissions.mjs +10 -10
- package/fesm2022/enigmatry-entry-components-permissions.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-search-filter.mjs +33 -33
- package/fesm2022/enigmatry-entry-components-search-filter.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-spinner.mjs +22 -13
- package/fesm2022/enigmatry-entry-components-spinner.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-table.mjs +224 -322
- package/fesm2022/enigmatry-entry-components-table.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components-validation.mjs +31 -24
- package/fesm2022/enigmatry-entry-components-validation.mjs.map +1 -1
- package/fesm2022/enigmatry-entry-components.mjs +4 -4
- package/fesm2022/enigmatry-entry-components.mjs.map +1 -1
- package/package.json +25 -24
- package/styles/modules/components/toggle/_generator.scss +1 -1
- package/styles/partials/core/components/forms/_general.scss +1 -0
- package/table/README.md +57 -44
- package/{button/index.d.ts → types/enigmatry-entry-components-button.d.ts} +1 -1
- package/types/enigmatry-entry-components-table.d.ts +256 -0
- package/table/index.d.ts +0 -260
- /package/{common/index.d.ts → types/enigmatry-entry-components-common.d.ts} +0 -0
- /package/{date-time-picker/index.d.ts → types/enigmatry-entry-components-date-time-picker.d.ts} +0 -0
- /package/{dialog/index.d.ts → types/enigmatry-entry-components-dialog.d.ts} +0 -0
- /package/{file-input/index.d.ts → types/enigmatry-entry-components-file-input.d.ts} +0 -0
- /package/{permissions/index.d.ts → types/enigmatry-entry-components-permissions.d.ts} +0 -0
- /package/{search-filter/index.d.ts → types/enigmatry-entry-components-search-filter.d.ts} +0 -0
- /package/{spinner/index.d.ts → types/enigmatry-entry-components-spinner.d.ts} +0 -0
- /package/{validation/index.d.ts → types/enigmatry-entry-components-validation.d.ts} +0 -0
- /package/{index.d.ts → types/enigmatry-entry-components.d.ts} +0 -0
package/table/README.md
CHANGED
|
@@ -4,13 +4,13 @@ Reusable table component with context menu, sorting and paging.
|
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
|
-
```
|
|
7
|
+
```batch
|
|
8
8
|
npm install @enigmatry/entry-components
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
## Basic Usage
|
|
12
12
|
|
|
13
|
-
Import the `EntryTableModule` in your `feature.module
|
|
13
|
+
Import the `EntryTableModule` in your `feature.module`, `shared.module` or your standalone component
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
16
|
import { EntryTableModule } from '@enigmatry/entry-components/table';
|
|
@@ -19,32 +19,38 @@ import { EntryTableModule } from '@enigmatry/entry-components/table';
|
|
|
19
19
|
`component.ts`
|
|
20
20
|
|
|
21
21
|
```typescript
|
|
22
|
-
import {
|
|
22
|
+
import { EntryTableComponent } from '@enigmatry/entry-components/table';
|
|
23
|
+
import { ContextMenuItem, ColumnDefinition } from '@enigmatry/entry-components/table/interfaces';
|
|
24
|
+
import { Component, computed, inject, resource } from '@angular/core';
|
|
25
|
+
import { lastValueFrom } from 'rxjs';
|
|
26
|
+
import { User } from '../../search-filter/search-filter/users';
|
|
27
|
+
import { UsersService } from '../../search-filter/search-filter/users.service';
|
|
23
28
|
|
|
24
29
|
@Component({
|
|
25
|
-
|
|
30
|
+
selector: 'app-table-example',
|
|
31
|
+
imports: [EntryTableComponent],
|
|
32
|
+
templateUrl: './table-example.component.html',
|
|
33
|
+
styleUrls: ['./table-example.component.scss']
|
|
26
34
|
})
|
|
27
|
-
export class
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
{
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
];
|
|
47
|
-
}
|
|
35
|
+
export class TableExampleComponent {
|
|
36
|
+
protected readonly columns: ColumnDefinition[] = [
|
|
37
|
+
{ field: 'id', hide: true },
|
|
38
|
+
{ field: 'userName', header: 'E-mail', sortable: true },
|
|
39
|
+
{ field: 'firstName', header: 'First name', hide: false, sortable: true },
|
|
40
|
+
{ field: 'lastName', header: 'Last name', hide: false, sortable: true },
|
|
41
|
+
{ field: 'dateOfBirth', header: 'Date of birth', hide: false, sortable: true, type: 'date', typeParameter: { format: 'dd-MM-yyyy' } },
|
|
42
|
+
{ field: 'occupation', header: 'Occupation', hide: false, sortable: true },
|
|
43
|
+
{ field: 'lastLogin', header: 'Last login', hide: false, sortable: true, type: 'date' }
|
|
44
|
+
];
|
|
45
|
+
protected readonly contextMenuItems: ContextMenuItem[] = [{ id: 'edit', name: 'Edit' }];
|
|
46
|
+
|
|
47
|
+
private readonly usersService: UsersService = inject(UsersService);
|
|
48
|
+
readonly usersResource = resource({
|
|
49
|
+
loader: async() => {
|
|
50
|
+
return lastValueFrom(this.usersService.getUsers({}));
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
protected readonly users = computed<User[]>(() => this.usersResource.hasValue() ? this.usersResource.value() : []);
|
|
48
54
|
}
|
|
49
55
|
```
|
|
50
56
|
|
|
@@ -53,14 +59,12 @@ export class UserListComponent implements OnInit {
|
|
|
53
59
|
```html
|
|
54
60
|
<entry-table
|
|
55
61
|
[columns]="columns"
|
|
56
|
-
[data]="
|
|
62
|
+
[data]="users()"
|
|
57
63
|
[showPaginator]="true"
|
|
58
64
|
[showContextMenu]="true"
|
|
59
|
-
[
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
(rowSelectionChange)="selectionChange.emit($event)"
|
|
63
|
-
(contextMenuItemSelected)="contextMenuItemSelected.emit($event)">
|
|
65
|
+
[rowSelectable]="true"
|
|
66
|
+
[multiSelectable]="true"
|
|
67
|
+
[contextMenuItems]="contextMenuItems">
|
|
64
68
|
</entry-table>
|
|
65
69
|
```
|
|
66
70
|
|
|
@@ -68,35 +72,43 @@ export class UserListComponent implements OnInit {
|
|
|
68
72
|
|
|
69
73
|
Default values are:
|
|
70
74
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
* showPaginator: true
|
|
76
|
+
* showFirstLastButtons: false
|
|
77
|
+
* pageSize: 20
|
|
78
|
+
* pageSizeOptions: [20, 50, 100]
|
|
79
|
+
* hidePageSize: false
|
|
80
|
+
* noResultsText: 'No results found'
|
|
81
|
+
* rowFocusVisible: false
|
|
78
82
|
|
|
79
|
-
To override with custom defaults use `
|
|
83
|
+
To override with custom defaults use `provideEntryTableConfiguration` function:
|
|
80
84
|
|
|
81
85
|
```ts
|
|
82
|
-
import { EntryTableModule,
|
|
86
|
+
import { EntryTableModule, provideEntryTableConfiguration } from '@enigmatry/entry-components/table';
|
|
87
|
+
import { CommonModule, DATE_PIPE_DEFAULT_OPTIONS } from '@angular/common';
|
|
88
|
+
import { NgModule } from '@angular/core';
|
|
89
|
+
import { TableExampleComponent } from './table-example/table-example.component';
|
|
83
90
|
|
|
84
91
|
@NgModule({
|
|
85
92
|
imports: [
|
|
86
|
-
|
|
93
|
+
CommonModule,
|
|
94
|
+
EntryTableModule,
|
|
95
|
+
TableExampleComponent
|
|
96
|
+
],
|
|
97
|
+
exports: [
|
|
98
|
+
TableExampleComponent
|
|
87
99
|
],
|
|
88
100
|
providers: [
|
|
89
|
-
|
|
101
|
+
{ provide: DATE_PIPE_DEFAULT_OPTIONS, useValue: { dateFormat: 'dd-MM-yyyy HH:mm' } },
|
|
102
|
+
provideEntryTableConfiguration({
|
|
90
103
|
showPaginator: true,
|
|
91
104
|
pageSizeOptions: [10, 25, 50],
|
|
92
105
|
rowFocusVisible: true
|
|
93
106
|
})
|
|
94
107
|
]
|
|
95
108
|
})
|
|
96
|
-
export class
|
|
109
|
+
export class TableExampleModule { }
|
|
97
110
|
```
|
|
98
111
|
|
|
99
|
-
|
|
100
112
|
## Compatibility with Angular Versions
|
|
101
113
|
|
|
102
114
|
| @enigmatry/entry-components | Angular version |
|
|
@@ -108,6 +120,7 @@ export class EntryComponentsModule { }
|
|
|
108
120
|
| 18.x | = 18 |
|
|
109
121
|
| 19.x | = 19 |
|
|
110
122
|
| 20.x | = 20 |
|
|
123
|
+
| 21.x | = 21 |
|
|
111
124
|
|
|
112
125
|
## License
|
|
113
126
|
|
|
@@ -20,7 +20,7 @@ declare class EntryButtonDirective implements OnInit {
|
|
|
20
20
|
|
|
21
21
|
declare class EntryButtonModule {
|
|
22
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<EntryButtonModule, never>;
|
|
23
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<EntryButtonModule, [typeof EntryButtonDirective], [typeof i2.CommonModule, typeof i3.
|
|
23
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EntryButtonModule, [typeof EntryButtonDirective], [typeof i2.CommonModule, typeof i3.MatButton, typeof i3.MatButton], [typeof EntryButtonDirective]>;
|
|
24
24
|
static ɵinj: i0.ɵɵInjectorDeclaration<EntryButtonModule>;
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import * as _angular_material_paginator from '@angular/material/paginator';
|
|
2
|
+
import { PageEvent } from '@angular/material/paginator';
|
|
3
|
+
export { PageEvent } from '@angular/material/paginator';
|
|
4
|
+
import * as i4 from '@angular/material/sort';
|
|
5
|
+
import { Sort, SortDirection } from '@angular/material/sort';
|
|
6
|
+
export { SortDirection, Sort as SortEvent } from '@angular/material/sort';
|
|
7
|
+
import * as _angular_core from '@angular/core';
|
|
8
|
+
import { InjectionToken, Provider, TemplateRef } from '@angular/core';
|
|
9
|
+
import { Params } from '@angular/router';
|
|
10
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
11
|
+
import * as i3 from '@angular/material/table';
|
|
12
|
+
import { MatTableDataSource } from '@angular/material/table';
|
|
13
|
+
import * as i8 from '@angular/material/menu';
|
|
14
|
+
import { MatMenuPanel } from '@angular/material/menu';
|
|
15
|
+
import * as i1 from '@angular/common';
|
|
16
|
+
import * as i2 from '@angular/forms';
|
|
17
|
+
import * as i6 from '@angular/material/checkbox';
|
|
18
|
+
import * as i7 from '@angular/material/icon';
|
|
19
|
+
import * as i9 from '@angular/material/radio';
|
|
20
|
+
import * as i10 from '@angular/material/button';
|
|
21
|
+
|
|
22
|
+
interface PagedData<T> {
|
|
23
|
+
items?: T[];
|
|
24
|
+
pageSize?: number;
|
|
25
|
+
pageNumber?: number;
|
|
26
|
+
totalCount?: number;
|
|
27
|
+
totalPages?: number;
|
|
28
|
+
hasPreviousPage?: boolean;
|
|
29
|
+
hasNextPage?: boolean;
|
|
30
|
+
}
|
|
31
|
+
interface OnSort {
|
|
32
|
+
sortChange: (sort: Sort) => void;
|
|
33
|
+
}
|
|
34
|
+
interface OnPage {
|
|
35
|
+
pageChange: (page: PageEvent) => void;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
declare class EntryTableConfiguration {
|
|
39
|
+
/** Show paginator, default is true */
|
|
40
|
+
showPaginator: boolean;
|
|
41
|
+
/** Show first and last pagination buttons, default is false */
|
|
42
|
+
showFirstLastButtons: boolean;
|
|
43
|
+
/** Page size, default 20 */
|
|
44
|
+
pageSize: number;
|
|
45
|
+
/** Page size options, default [20, 50, 100] */
|
|
46
|
+
pageSizeOptions: number[];
|
|
47
|
+
/** Hide page size options, default is false */
|
|
48
|
+
hidePageSize: boolean;
|
|
49
|
+
/** Hide pagination, default is false */
|
|
50
|
+
noResultsText: string;
|
|
51
|
+
/** Row focus visible, default is false */
|
|
52
|
+
rowFocusVisible: boolean;
|
|
53
|
+
constructor(config?: Partial<EntryTableConfiguration>);
|
|
54
|
+
}
|
|
55
|
+
/** Entry table config injection token
|
|
56
|
+
* Defaults:
|
|
57
|
+
* - showPaginator: true
|
|
58
|
+
* - showFirstLastButtons: false
|
|
59
|
+
* - pageSize: 20
|
|
60
|
+
* - pageSizeOptions: [20, 50, 100]
|
|
61
|
+
* - hidePageSize: false
|
|
62
|
+
* - noResultsText: 'No results found'
|
|
63
|
+
* - rowFocusVisible: false
|
|
64
|
+
*/
|
|
65
|
+
declare const ENTRY_TABLE_CONFIGURATION: InjectionToken<EntryTableConfiguration>;
|
|
66
|
+
/** Provide entry table config */
|
|
67
|
+
declare const provideEntryTableConfiguration: (config: Partial<EntryTableConfiguration>) => Provider;
|
|
68
|
+
/** Default percentage multiplier injection token */
|
|
69
|
+
declare const DEFAULT_PERCENTAGE_MULTIPLIER: InjectionToken<number>;
|
|
70
|
+
|
|
71
|
+
declare const defaultPageSize = 20;
|
|
72
|
+
declare const defaultPageNumber = 1;
|
|
73
|
+
declare class PagedQuery implements OnPage, OnSort {
|
|
74
|
+
pageNumber: number;
|
|
75
|
+
pageSize: number;
|
|
76
|
+
sortBy?: string;
|
|
77
|
+
sortDirection?: SortDirection;
|
|
78
|
+
readonly sortChange: (sort: Sort) => void;
|
|
79
|
+
readonly pageChange: (page: PageEvent) => void;
|
|
80
|
+
readonly applyRouteChanges: (queryParams: Params) => void;
|
|
81
|
+
readonly getRouteQueryParams: () => Params;
|
|
82
|
+
readonly getValueIfNotEmpty: <T>(value: T) => T | undefined;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
interface CellTemplate {
|
|
86
|
+
[key: string]: TemplateRef<unknown>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
interface ColumnSortProperties {
|
|
90
|
+
id?: string;
|
|
91
|
+
start?: 'asc' | 'desc';
|
|
92
|
+
disableClear?: boolean;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
declare type ColumnType = 'boolean' | 'number' | 'currency' | 'percent' | 'date' | 'link';
|
|
96
|
+
|
|
97
|
+
interface ColumnTypeParameter {
|
|
98
|
+
name?: string;
|
|
99
|
+
currencyCode?: string;
|
|
100
|
+
display?: string | boolean;
|
|
101
|
+
digitsInfo?: string;
|
|
102
|
+
format?: string;
|
|
103
|
+
locale?: string;
|
|
104
|
+
timezone?: string;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
interface ColumnDefinition {
|
|
108
|
+
field: string;
|
|
109
|
+
header?: string;
|
|
110
|
+
hide?: boolean;
|
|
111
|
+
pinned?: 'left' | 'right';
|
|
112
|
+
width?: string;
|
|
113
|
+
sortable?: boolean | string;
|
|
114
|
+
sortProperties?: ColumnSortProperties;
|
|
115
|
+
type?: ColumnType;
|
|
116
|
+
typeParameter?: ColumnTypeParameter;
|
|
117
|
+
cellTemplate?: TemplateRef<unknown> | null;
|
|
118
|
+
class?: string;
|
|
119
|
+
customProperties?: {
|
|
120
|
+
[key: string]: unknown;
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
interface ContextMenuItem {
|
|
125
|
+
id: string;
|
|
126
|
+
name: string;
|
|
127
|
+
icon?: string;
|
|
128
|
+
disabled?: boolean;
|
|
129
|
+
items?: ContextMenuItem[];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
interface RowClassFormatter {
|
|
133
|
+
[className: string]: (rowData: unknown) => boolean;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
interface RowContextMenuFormatter {
|
|
137
|
+
items: (rowData: unknown) => ContextMenuItem[];
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
interface RowSelectionFormatter {
|
|
141
|
+
disabled?: (rowData: unknown) => boolean;
|
|
142
|
+
hideCheckbox?: (rowData: unknown) => boolean;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
declare class EntryTableComponent<T> {
|
|
146
|
+
private readonly configuration;
|
|
147
|
+
private readonly elementRef;
|
|
148
|
+
dataSource: MatTableDataSource<T, _angular_material_paginator.MatPaginator>;
|
|
149
|
+
readonly selectionColumn = "selection-column";
|
|
150
|
+
readonly contextMenuColumn = "context-menu-column";
|
|
151
|
+
readonly columns: _angular_core.InputSignal<ColumnDefinition[]>;
|
|
152
|
+
readonly displayedColumns: _angular_core.Signal<string[]>;
|
|
153
|
+
readonly data: _angular_core.InputSignal<T[] | PagedData<T> | null | undefined>;
|
|
154
|
+
private readonly trueData;
|
|
155
|
+
readonly total: _angular_core.WritableSignal<number>;
|
|
156
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
157
|
+
readonly showPaginator: _angular_core.InputSignal<boolean>;
|
|
158
|
+
readonly pageDisabled: _angular_core.InputSignal<boolean>;
|
|
159
|
+
readonly showFirstLastButtons: _angular_core.InputSignal<boolean>;
|
|
160
|
+
readonly pageIndex: _angular_core.WritableSignal<number>;
|
|
161
|
+
readonly pageSize: _angular_core.WritableSignal<number>;
|
|
162
|
+
readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
163
|
+
readonly hidePageSize: _angular_core.InputSignal<boolean>;
|
|
164
|
+
readonly paginationTemplate: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
165
|
+
readonly shouldShowPaginator: _angular_core.Signal<number | false | undefined>;
|
|
166
|
+
readonly pageChange: _angular_core.OutputEmitterRef<PageEvent>;
|
|
167
|
+
readonly sortActive: _angular_core.InputSignal<string | undefined>;
|
|
168
|
+
readonly sortDirection: _angular_core.InputSignal<SortDirection | undefined>;
|
|
169
|
+
readonly sortDisableClear: _angular_core.InputSignal<boolean>;
|
|
170
|
+
readonly sortDisabled: _angular_core.InputSignal<boolean>;
|
|
171
|
+
readonly sortStart: _angular_core.InputSignal<"asc" | "desc">;
|
|
172
|
+
readonly sortChange: _angular_core.OutputEmitterRef<Sort>;
|
|
173
|
+
readonly rowHover: _angular_core.InputSignal<boolean>;
|
|
174
|
+
readonly rowStriped: _angular_core.InputSignal<boolean>;
|
|
175
|
+
readonly rowFocusVisible: _angular_core.InputSignal<boolean>;
|
|
176
|
+
readonly rowClick: _angular_core.OutputEmitterRef<T>;
|
|
177
|
+
readonly multiSelectable: _angular_core.InputSignal<boolean>;
|
|
178
|
+
readonly rowSelection: _angular_core.WritableSignal<SelectionModel<T>>;
|
|
179
|
+
readonly rowSelected: _angular_core.InputSignal<T[]>;
|
|
180
|
+
readonly rowSelectable: _angular_core.InputSignal<boolean>;
|
|
181
|
+
readonly showSelectAllCheckbox: _angular_core.InputSignal<boolean>;
|
|
182
|
+
readonly rowSelectionFormatter: _angular_core.InputSignal<RowSelectionFormatter>;
|
|
183
|
+
readonly rowClassFormatter: _angular_core.InputSignal<RowClassFormatter | undefined>;
|
|
184
|
+
readonly showContextMenu: _angular_core.InputSignal<boolean>;
|
|
185
|
+
readonly contextMenuItems: _angular_core.InputSignal<ContextMenuItem[]>;
|
|
186
|
+
readonly contextMenuTemplate: _angular_core.InputSignal<TemplateRef<unknown> | null>;
|
|
187
|
+
readonly rowContextMenuFormatter: _angular_core.InputSignal<RowContextMenuFormatter | undefined>;
|
|
188
|
+
readonly contextMenuItemSelected: _angular_core.OutputEmitterRef<{
|
|
189
|
+
itemId: string;
|
|
190
|
+
rowData: T;
|
|
191
|
+
}>;
|
|
192
|
+
readonly noResultText: _angular_core.InputSignal<string>;
|
|
193
|
+
readonly noResultTemplate: _angular_core.InputSignal<TemplateRef<unknown> | null>;
|
|
194
|
+
readonly hasNoResult: _angular_core.Signal<boolean>;
|
|
195
|
+
readonly headerTemplate: _angular_core.InputSignal<CellTemplate | TemplateRef<unknown> | Record<string, TemplateRef<unknown>> | undefined>;
|
|
196
|
+
readonly unknownTemplateAsTemplate: (template: unknown) => TemplateRef<unknown>;
|
|
197
|
+
readonly cellTemplate: _angular_core.InputSignal<CellTemplate | TemplateRef<unknown> | Record<string, TemplateRef<unknown>> | undefined>;
|
|
198
|
+
constructor();
|
|
199
|
+
readonly toTemplateIndex: (template: TemplateRef<unknown> | CellTemplate | Record<string, TemplateRef<unknown>>, key: string) => TemplateRef<unknown>;
|
|
200
|
+
protected readonly isTemplateRef: (value: unknown) => value is TemplateRef<any>;
|
|
201
|
+
readonly getRowClassList: (rowData: T, index: number) => Record<string, unknown>;
|
|
202
|
+
readonly getColumnClassList: (columnDefinition: ColumnDefinition) => string;
|
|
203
|
+
readonly getIndex: (index: number, dataIndex: number) => number;
|
|
204
|
+
readonly allRowsSelected: () => boolean;
|
|
205
|
+
readonly toggleSelectAllCheckbox: () => void;
|
|
206
|
+
readonly toggleRowSelection: (row: T) => void;
|
|
207
|
+
readonly handlePage: (event: PageEvent) => void;
|
|
208
|
+
readonly scrollToTop: () => void;
|
|
209
|
+
readonly convertToKebabCase: (value: string) => string;
|
|
210
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntryTableComponent<any>, never>;
|
|
211
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntryTableComponent<any>, "entry-table", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "showPaginator": { "alias": "showPaginator"; "required": false; "isSignal": true; }; "pageDisabled": { "alias": "pageDisabled"; "required": false; "isSignal": true; }; "showFirstLastButtons": { "alias": "showFirstLastButtons"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "hidePageSize": { "alias": "hidePageSize"; "required": false; "isSignal": true; }; "paginationTemplate": { "alias": "paginationTemplate"; "required": false; "isSignal": true; }; "sortActive": { "alias": "sortActive"; "required": false; "isSignal": true; }; "sortDirection": { "alias": "sortDirection"; "required": false; "isSignal": true; }; "sortDisableClear": { "alias": "sortDisableClear"; "required": false; "isSignal": true; }; "sortDisabled": { "alias": "sortDisabled"; "required": false; "isSignal": true; }; "sortStart": { "alias": "sortStart"; "required": false; "isSignal": true; }; "rowHover": { "alias": "rowHover"; "required": false; "isSignal": true; }; "rowStriped": { "alias": "rowStriped"; "required": false; "isSignal": true; }; "rowFocusVisible": { "alias": "rowFocusVisible"; "required": false; "isSignal": true; }; "multiSelectable": { "alias": "multiSelectable"; "required": false; "isSignal": true; }; "rowSelected": { "alias": "rowSelected"; "required": false; "isSignal": true; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; "isSignal": true; }; "showSelectAllCheckbox": { "alias": "showSelectAllCheckbox"; "required": false; "isSignal": true; }; "rowSelectionFormatter": { "alias": "rowSelectionFormatter"; "required": false; "isSignal": true; }; "rowClassFormatter": { "alias": "rowClassFormatter"; "required": false; "isSignal": true; }; "showContextMenu": { "alias": "showContextMenu"; "required": false; "isSignal": true; }; "contextMenuItems": { "alias": "contextMenuItems"; "required": false; "isSignal": true; }; "contextMenuTemplate": { "alias": "contextMenuTemplate"; "required": false; "isSignal": true; }; "rowContextMenuFormatter": { "alias": "rowContextMenuFormatter"; "required": false; "isSignal": true; }; "noResultText": { "alias": "noResultText"; "required": false; "isSignal": true; }; "noResultTemplate": { "alias": "noResultTemplate"; "required": false; "isSignal": true; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; "isSignal": true; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "sortChange": "sortChange"; "rowClick": "rowClick"; "contextMenuItemSelected": "contextMenuItemSelected"; }, never, never, true, never>;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
declare class EntryCellComponent<T> {
|
|
215
|
+
readonly rowData: _angular_core.InputSignal<T>;
|
|
216
|
+
readonly columnDefinition: _angular_core.InputSignal<ColumnDefinition>;
|
|
217
|
+
readonly value: _angular_core.Signal<T>;
|
|
218
|
+
readonly printableValue: _angular_core.Signal<string>;
|
|
219
|
+
protected readonly getCellValue: (rowData: T, columnDefinition: ColumnDefinition) => T;
|
|
220
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntryCellComponent<any>, never>;
|
|
221
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntryCellComponent<any>, "entry-cell", never, { "rowData": { "alias": "rowData"; "required": true; "isSignal": true; }; "columnDefinition": { "alias": "columnDefinition"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
declare class EntryCellContextMenuComponent {
|
|
225
|
+
readonly items: _angular_core.InputSignal<ContextMenuItem[]>;
|
|
226
|
+
readonly rowMenuFormatter: _angular_core.InputSignal<RowContextMenuFormatter | undefined>;
|
|
227
|
+
readonly rowData: _angular_core.InputSignal<unknown>;
|
|
228
|
+
readonly triggerIcon: _angular_core.InputSignal<string>;
|
|
229
|
+
readonly isSubMenu: _angular_core.InputSignal<boolean>;
|
|
230
|
+
readonly selected: _angular_core.OutputEmitterRef<string>;
|
|
231
|
+
readonly menuItems: _angular_core.Signal<ContextMenuItem[]>;
|
|
232
|
+
readonly menu: _angular_core.Signal<MatMenuPanel<any> | undefined>;
|
|
233
|
+
readonly subMenu: _angular_core.Signal<EntryCellContextMenuComponent | undefined>;
|
|
234
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntryCellContextMenuComponent, never>;
|
|
235
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntryCellContextMenuComponent, "entry-cell-context-menu", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "rowMenuFormatter": { "alias": "rowMenuFormatter"; "required": false; "isSignal": true; }; "rowData": { "alias": "rowData"; "required": false; "isSignal": true; }; "triggerIcon": { "alias": "triggerIcon"; "required": false; "isSignal": true; }; "isSubMenu": { "alias": "isSubMenu"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, never, true, never>;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
declare class EntryCellFormattedValueComponent {
|
|
239
|
+
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
240
|
+
readonly type: _angular_core.InputSignal<string | undefined>;
|
|
241
|
+
readonly typeParameter: _angular_core.InputSignal<(ColumnTypeParameter & {
|
|
242
|
+
multiplier?: number;
|
|
243
|
+
}) | undefined>;
|
|
244
|
+
readonly defaultPercentageMultiplier: number;
|
|
245
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntryCellFormattedValueComponent, never>;
|
|
246
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntryCellFormattedValueComponent, "entry-cell-formatted-value", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "typeParameter": { "alias": "typeParameter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
declare class EntryTableModule {
|
|
250
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntryTableModule, never>;
|
|
251
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<EntryTableModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i3.MatTableModule, typeof i4.MatSortModule, typeof _angular_material_paginator.MatPaginatorModule, typeof i6.MatCheckboxModule, typeof i7.MatIconModule, typeof i8.MatMenuModule, typeof i9.MatRadioModule, typeof i1.CommonModule, typeof i10.MatButtonModule, typeof EntryTableComponent, typeof EntryCellComponent, typeof EntryCellContextMenuComponent, typeof EntryCellFormattedValueComponent], [typeof EntryTableComponent, typeof EntryCellComponent, typeof EntryCellContextMenuComponent, typeof EntryCellFormattedValueComponent]>;
|
|
252
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<EntryTableModule>;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export { DEFAULT_PERCENTAGE_MULTIPLIER, ENTRY_TABLE_CONFIGURATION, EntryCellComponent, EntryCellContextMenuComponent, EntryCellFormattedValueComponent, EntryTableComponent, EntryTableConfiguration, EntryTableModule, PagedQuery, defaultPageNumber, defaultPageSize, provideEntryTableConfiguration };
|
|
256
|
+
export type { CellTemplate, ColumnDefinition, ColumnSortProperties, ColumnType, ColumnTypeParameter, ContextMenuItem, OnPage, OnSort, PagedData, RowClassFormatter, RowContextMenuFormatter, RowSelectionFormatter };
|