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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +1 -0
  2. package/fesm2022/enigmatry-entry-components-button.mjs +14 -11
  3. package/fesm2022/enigmatry-entry-components-button.mjs.map +1 -1
  4. package/fesm2022/enigmatry-entry-components-common.mjs +31 -31
  5. package/fesm2022/enigmatry-entry-components-common.mjs.map +1 -1
  6. package/fesm2022/enigmatry-entry-components-date-time-picker.mjs +20 -20
  7. package/fesm2022/enigmatry-entry-components-date-time-picker.mjs.map +1 -1
  8. package/fesm2022/enigmatry-entry-components-dialog.mjs +21 -21
  9. package/fesm2022/enigmatry-entry-components-dialog.mjs.map +1 -1
  10. package/fesm2022/enigmatry-entry-components-file-input.mjs +11 -12
  11. package/fesm2022/enigmatry-entry-components-file-input.mjs.map +1 -1
  12. package/fesm2022/enigmatry-entry-components-permissions.mjs +10 -10
  13. package/fesm2022/enigmatry-entry-components-permissions.mjs.map +1 -1
  14. package/fesm2022/enigmatry-entry-components-search-filter.mjs +33 -33
  15. package/fesm2022/enigmatry-entry-components-search-filter.mjs.map +1 -1
  16. package/fesm2022/enigmatry-entry-components-spinner.mjs +22 -13
  17. package/fesm2022/enigmatry-entry-components-spinner.mjs.map +1 -1
  18. package/fesm2022/enigmatry-entry-components-table.mjs +227 -324
  19. package/fesm2022/enigmatry-entry-components-table.mjs.map +1 -1
  20. package/fesm2022/enigmatry-entry-components-validation.mjs +31 -24
  21. package/fesm2022/enigmatry-entry-components-validation.mjs.map +1 -1
  22. package/fesm2022/enigmatry-entry-components.mjs +4 -4
  23. package/fesm2022/enigmatry-entry-components.mjs.map +1 -1
  24. package/package.json +25 -24
  25. package/styles/modules/components/toggle/_generator.scss +1 -1
  26. package/styles/partials/core/components/forms/_general.scss +1 -0
  27. package/table/README.md +57 -44
  28. package/{button/index.d.ts → types/enigmatry-entry-components-button.d.ts} +1 -1
  29. package/types/enigmatry-entry-components-table.d.ts +256 -0
  30. package/table/index.d.ts +0 -260
  31. /package/{common/index.d.ts → types/enigmatry-entry-components-common.d.ts} +0 -0
  32. /package/{date-time-picker/index.d.ts → types/enigmatry-entry-components-date-time-picker.d.ts} +0 -0
  33. /package/{dialog/index.d.ts → types/enigmatry-entry-components-dialog.d.ts} +0 -0
  34. /package/{file-input/index.d.ts → types/enigmatry-entry-components-file-input.d.ts} +0 -0
  35. /package/{permissions/index.d.ts → types/enigmatry-entry-components-permissions.d.ts} +0 -0
  36. /package/{search-filter/index.d.ts → types/enigmatry-entry-components-search-filter.d.ts} +0 -0
  37. /package/{spinner/index.d.ts → types/enigmatry-entry-components-spinner.d.ts} +0 -0
  38. /package/{validation/index.d.ts → types/enigmatry-entry-components-validation.d.ts} +0 -0
  39. /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` or `shared.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 { PagedData, ContextMenuItem, ColumnDef } from '@enigmatry/entry-components/table';
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 UserListComponent implements OnInit {
28
-
29
- @Input() data: PagedData<GetUsersResponseItem> | null;
30
-
31
- @Input() columns: ColumnDef[] = [];
32
- @Input() contextMenuItems: ContextMenuItem[] = [];
33
-
34
- constructor() { }
35
-
36
- ngOnInit(): void {
37
- this.columns = [
38
- { field: 'id', hide: true, sortable: true },
39
- { field: 'userName', header: `E-mail`, hide: false, sortable: true },
40
- { field: 'name', header: `Name`, hide: false, sortable: true },
41
- { field: 'createdOn', header: `Created on`, hide: false, sortable: true, type: 'date' },
42
- { field: 'updatedOn', header: `Updated on`, hide: false, sortable: true, type: 'date' }
43
- ];
44
- this.contextMenuItems = [
45
- { id: 'edit', name: `Edit`, icon: 'edit' }
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]="data"
62
+ [data]="users()"
57
63
  [showPaginator]="true"
58
64
  [showContextMenu]="true"
59
- [contextMenuItems]="contextMenuItems"
60
- (pageChange)="pageChange.emit($event)"
61
- (sortChange)="sortChange.emit($event)"
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
- * showPaginator: true
72
- * showFirstLastButtons: false
73
- * pageSize: 20
74
- * pageSizeOptions: [20, 50, 100]
75
- * hidePageSize: false
76
- * noResultsText: 'No results found'
77
- * rowFocusVisible: false
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 `provideEntryTableConfig` function:
83
+ To override with custom defaults use `provideEntryTableConfiguration` function:
80
84
 
81
85
  ```ts
82
- import { EntryTableModule, provideEntryTableConfig } from '@enigmatry/entry-components/table';
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
- EntryTableModule
93
+ CommonModule,
94
+ EntryTableModule,
95
+ TableExampleComponent
96
+ ],
97
+ exports: [
98
+ TableExampleComponent
87
99
  ],
88
100
  providers: [
89
- provideEntryTableConfig({
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 EntryComponentsModule { }
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.MatButtonModule], [typeof EntryButtonDirective]>;
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 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 };