ngx-st-tables 17.0.111 → 17.0.113
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 +129 -0
- package/esm2022/lib/components/material-table/material-table-row-cell/material-table-row-cell.component.mjs +45 -5
- package/esm2022/lib/components/material-table/material-table.component.mjs +127 -48
- package/fesm2022/ngx-st-tables.mjs +169 -52
- package/fesm2022/ngx-st-tables.mjs.map +1 -1
- package/lib/components/material-table/material-table-row-cell/material-table-row-cell.component.d.ts +16 -3
- package/lib/components/material-table/material-table.component.d.ts +54 -2
- package/package.json +1 -1
package/lib/components/material-table/material-table-row-cell/material-table-row-cell.component.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { ChangeDetectorRef, OnInit } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, OnInit, AfterViewInit } from '@angular/core';
|
|
2
2
|
import { StMaterialTableColumnModel } from '../../../models/st-material-table-column.model';
|
|
3
|
+
import { MatInput } from '@angular/material/input';
|
|
4
|
+
import { MatSelect } from '@angular/material/select';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class MaterialTableRowCellComponent implements OnInit {
|
|
6
|
+
export declare class MaterialTableRowCellComponent implements OnInit, AfterViewInit {
|
|
5
7
|
private changeDetectorRef;
|
|
8
|
+
matInput?: MatInput;
|
|
9
|
+
matSelect?: MatSelect;
|
|
6
10
|
column: import("@angular/core").InputSignal<StMaterialTableColumnModel>;
|
|
7
11
|
rowData: import("@angular/core").InputSignal<{
|
|
8
12
|
[prop: string]: any;
|
|
@@ -14,6 +18,8 @@ export declare class MaterialTableRowCellComponent implements OnInit {
|
|
|
14
18
|
canEditRowValidator: import("@angular/core").InputSignal<(row: any) => boolean>;
|
|
15
19
|
canDeleteRowValidator: import("@angular/core").InputSignal<(row: any) => boolean>;
|
|
16
20
|
selectRowOnlyOne: import("@angular/core").InputSignal<boolean>;
|
|
21
|
+
isFirstEditableColumn: import("@angular/core").InputSignal<boolean>;
|
|
22
|
+
autoSaveOnChange: import("@angular/core").InputSignal<boolean>;
|
|
17
23
|
set rowEditing(data: boolean);
|
|
18
24
|
get rowEditing(): boolean;
|
|
19
25
|
private _rowEditing;
|
|
@@ -24,6 +30,10 @@ export declare class MaterialTableRowCellComponent implements OnInit {
|
|
|
24
30
|
editRowEmitter: import("@angular/core").OutputEmitterRef<void>;
|
|
25
31
|
deleteRowEmitter: import("@angular/core").OutputEmitterRef<void>;
|
|
26
32
|
selectRowChange: import("@angular/core").OutputEmitterRef<boolean>;
|
|
33
|
+
fieldValueChanged: import("@angular/core").OutputEmitterRef<{
|
|
34
|
+
field: string;
|
|
35
|
+
value: any;
|
|
36
|
+
}>;
|
|
27
37
|
mobileView: boolean;
|
|
28
38
|
actionIconColorDef: {
|
|
29
39
|
[key: string]: 'primary' | 'warn';
|
|
@@ -34,6 +44,8 @@ export declare class MaterialTableRowCellComponent implements OnInit {
|
|
|
34
44
|
}[]>;
|
|
35
45
|
constructor(changeDetectorRef: ChangeDetectorRef);
|
|
36
46
|
ngOnInit(): void;
|
|
47
|
+
ngAfterViewInit(): void;
|
|
48
|
+
private focusFirstEditableField;
|
|
37
49
|
saveRow(): void;
|
|
38
50
|
cancelRow(): void;
|
|
39
51
|
editRow(): void;
|
|
@@ -41,8 +53,9 @@ export declare class MaterialTableRowCellComponent implements OnInit {
|
|
|
41
53
|
selectRow(event: {
|
|
42
54
|
checked: boolean;
|
|
43
55
|
}): void;
|
|
56
|
+
onFieldChange(field: string, value: any): void;
|
|
44
57
|
private checkWidthSize;
|
|
45
58
|
private getDynamicSelectData;
|
|
46
59
|
static ɵfac: i0.ɵɵFactoryDeclaration<MaterialTableRowCellComponent, never>;
|
|
47
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MaterialTableRowCellComponent, "st-material-table-row-cell", never, { "column": { "alias": "column"; "required": true; "isSignal": true; }; "rowData": { "alias": "rowData"; "required": true; "isSignal": true; }; "rowIndex": { "alias": "rowIndex"; "required": true; "isSignal": true; }; "rowDataCopy": { "alias": "rowDataCopy"; "required": false; "isSignal": true; }; "canEditRowValidator": { "alias": "canEditRowValidator"; "required": false; "isSignal": true; }; "canDeleteRowValidator": { "alias": "canDeleteRowValidator"; "required": false; "isSignal": true; }; "selectRowOnlyOne": { "alias": "selectRowOnlyOne"; "required": false; "isSignal": true; }; "rowEditing": { "alias": "rowEditing"; "required": false; }; "rowIsSelected": { "alias": "rowIsSelected"; "required": false; "isSignal": true; }; "rowIsExpanded": { "alias": "rowIsExpanded"; "required": false; "isSignal": true; }; }, { "saveEditRowEmitter": "saveEditRowEmitter"; "cancelEditRowEmitter": "cancelEditRowEmitter"; "editRowEmitter": "editRowEmitter"; "deleteRowEmitter": "deleteRowEmitter"; "selectRowChange": "selectRowChange"; }, never, never, false, never>;
|
|
60
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MaterialTableRowCellComponent, "st-material-table-row-cell", never, { "column": { "alias": "column"; "required": true; "isSignal": true; }; "rowData": { "alias": "rowData"; "required": true; "isSignal": true; }; "rowIndex": { "alias": "rowIndex"; "required": true; "isSignal": true; }; "rowDataCopy": { "alias": "rowDataCopy"; "required": false; "isSignal": true; }; "canEditRowValidator": { "alias": "canEditRowValidator"; "required": false; "isSignal": true; }; "canDeleteRowValidator": { "alias": "canDeleteRowValidator"; "required": false; "isSignal": true; }; "selectRowOnlyOne": { "alias": "selectRowOnlyOne"; "required": false; "isSignal": true; }; "isFirstEditableColumn": { "alias": "isFirstEditableColumn"; "required": false; "isSignal": true; }; "autoSaveOnChange": { "alias": "autoSaveOnChange"; "required": false; "isSignal": true; }; "rowEditing": { "alias": "rowEditing"; "required": false; }; "rowIsSelected": { "alias": "rowIsSelected"; "required": false; "isSignal": true; }; "rowIsExpanded": { "alias": "rowIsExpanded"; "required": false; "isSignal": true; }; }, { "saveEditRowEmitter": "saveEditRowEmitter"; "cancelEditRowEmitter": "cancelEditRowEmitter"; "editRowEmitter": "editRowEmitter"; "deleteRowEmitter": "deleteRowEmitter"; "selectRowChange": "selectRowChange"; "fieldValueChanged": "fieldValueChanged"; }, never, never, false, never>;
|
|
48
61
|
}
|
|
@@ -29,10 +29,22 @@ export declare class MaterialTableComponent extends StSubscribeDestroyComponent
|
|
|
29
29
|
isLoading: import("@angular/core").InputSignal<boolean>;
|
|
30
30
|
initColumns: import("@angular/core").InputSignal<StMaterialTableColumnModel[]>;
|
|
31
31
|
rowClickAction: import("@angular/core").InputSignal<((row: any) => void) | undefined>;
|
|
32
|
+
/**
|
|
33
|
+
* Immutable Data Pattern:
|
|
34
|
+
* Creates a deep copy of incoming data to prevent mutations of parent data.
|
|
35
|
+
* IDs are generated on the copy, not on the original parent data.
|
|
36
|
+
* This ensures the parent maintains control of their data while the library
|
|
37
|
+
* manages its own working copy for UI operations.
|
|
38
|
+
*/
|
|
32
39
|
set data(data: any[]);
|
|
33
40
|
get data(): any[];
|
|
34
41
|
allowEditRow: import("@angular/core").InputSignal<boolean>;
|
|
35
42
|
showEditAllRows: import("@angular/core").InputSignal<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* When true, field changes are saved immediately without requiring save/cancel buttons.
|
|
45
|
+
* Perfect for quantity inputs, toggles, or selection tables where instant updates are needed.
|
|
46
|
+
*/
|
|
47
|
+
autoSaveOnChange: import("@angular/core").InputSignal<boolean>;
|
|
36
48
|
canEditRowValidator: import("@angular/core").InputSignal<(row: any) => boolean>;
|
|
37
49
|
canDeleteRowValidator: import("@angular/core").InputSignal<(row: any) => boolean>;
|
|
38
50
|
allowSelectRow: import("@angular/core").InputSignal<boolean>;
|
|
@@ -57,10 +69,19 @@ export declare class MaterialTableComponent extends StSubscribeDestroyComponent
|
|
|
57
69
|
index: number;
|
|
58
70
|
}>;
|
|
59
71
|
selectRowChange: import("@angular/core").OutputEmitterRef<any[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Emitted when a field value changes and autoSaveOnChange is enabled.
|
|
74
|
+
* Parent should update their data immediately.
|
|
75
|
+
*/
|
|
76
|
+
fieldValueChanged: import("@angular/core").OutputEmitterRef<{
|
|
77
|
+
row: any;
|
|
78
|
+
field: string;
|
|
79
|
+
value: any;
|
|
80
|
+
}>;
|
|
60
81
|
private _data;
|
|
61
82
|
initLocalColumns: import("@angular/core").WritableSignal<StMaterialTableColumnModel[]>;
|
|
62
83
|
expandedRow: import("@angular/core").WritableSignal<any>;
|
|
63
|
-
creatingRow: import("@angular/core").
|
|
84
|
+
creatingRow: import("@angular/core").Signal<boolean>;
|
|
64
85
|
columns: ViewStMaterialTableColumnModel[];
|
|
65
86
|
selectedColumns: ViewStMaterialTableColumnModel[];
|
|
66
87
|
selectedColumnsString: string[];
|
|
@@ -75,6 +96,11 @@ export declare class MaterialTableComponent extends StSubscribeDestroyComponent
|
|
|
75
96
|
[prop: string]: any;
|
|
76
97
|
};
|
|
77
98
|
};
|
|
99
|
+
activeRowsCreating: {
|
|
100
|
+
[rowId: string]: {
|
|
101
|
+
[prop: string]: any;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
78
104
|
selection: SelectionModel<any>;
|
|
79
105
|
private localStorageData;
|
|
80
106
|
constructor(changeDetectorRef: ChangeDetectorRef, snackbar: StSnackBarService, stTableTranslations: StTablesTranslationsService, stDialogService: StDialogService);
|
|
@@ -83,11 +109,36 @@ export declare class MaterialTableComponent extends StSubscribeDestroyComponent
|
|
|
83
109
|
turnOnAllEditRows(): void;
|
|
84
110
|
captionDataChanged(event: ICaptionDataChanged): void;
|
|
85
111
|
resetTableSettings(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Adds a new row to the local table copy only.
|
|
114
|
+
* The row is tracked in activeRowsCreating until saved.
|
|
115
|
+
* When saved, the parent receives the event through saveNewCreatedRow output.
|
|
116
|
+
* The parent decides whether to accept and add to their data array.
|
|
117
|
+
*/
|
|
86
118
|
addNewRow(): void;
|
|
87
119
|
editRow(row: any, column: ViewStMaterialTableColumnModel): void;
|
|
88
120
|
deleteRow(row: any, column: ViewStMaterialTableColumnModel, index: number): void;
|
|
121
|
+
/**
|
|
122
|
+
* Validates and saves a row (either new or edited).
|
|
123
|
+
* Emits the validated row to the parent through either:
|
|
124
|
+
* - saveNewCreatedRow: for newly created rows
|
|
125
|
+
* - saveNewRow: for edited existing rows
|
|
126
|
+
*
|
|
127
|
+
* The parent is responsible for:
|
|
128
|
+
* - Persisting the change (e.g., API call)
|
|
129
|
+
* - Updating their data array
|
|
130
|
+
* - Handling errors/rejections
|
|
131
|
+
*
|
|
132
|
+
* The library updates its local copy optimistically.
|
|
133
|
+
*/
|
|
89
134
|
saveEditRow(row: any, column: ViewStMaterialTableColumnModel): void;
|
|
90
135
|
cancelEditRow(row: any, column: ViewStMaterialTableColumnModel): void;
|
|
136
|
+
/**
|
|
137
|
+
* Handles immediate field value changes for auto-save mode.
|
|
138
|
+
* In auto-save mode, ngModel is bound directly to rowData, so we don't need to update it.
|
|
139
|
+
* We only emit to parent so they can update their data copy.
|
|
140
|
+
*/
|
|
141
|
+
onFieldValueChanged(row: any, column: ViewStMaterialTableColumnModel, value: any): void;
|
|
91
142
|
isAllSelected(): boolean;
|
|
92
143
|
toggleAllRows(): void;
|
|
93
144
|
removeSelectedRow(row: any): void;
|
|
@@ -106,8 +157,9 @@ export declare class MaterialTableComponent extends StSubscribeDestroyComponent
|
|
|
106
157
|
private loadLocalStorageData;
|
|
107
158
|
private validOldFiltersToNewFormat;
|
|
108
159
|
private setNewEmptyLocalStorageData;
|
|
160
|
+
isFirstEditableColumn(column: ViewStMaterialTableColumnModel): boolean;
|
|
109
161
|
static ɵfac: i0.ɵɵFactoryDeclaration<MaterialTableComponent, never>;
|
|
110
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MaterialTableComponent, "ngx-st-material-table", never, { "showGlobalSearch": { "alias": "showGlobalSearch"; "required": false; "isSignal": true; }; "tableTitle": { "alias": "tableTitle"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "dataLength": { "alias": "dataLength"; "required": false; "isSignal": true; }; "allowPickColumns": { "alias": "allowPickColumns"; "required": false; "isSignal": true; }; "allowReorderColumns": { "alias": "allowReorderColumns"; "required": false; "isSignal": true; }; "localStorageName": { "alias": "localStorageName"; "required": false; "isSignal": true; }; "lazyLoading": { "alias": "lazyLoading"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "initColumns": { "alias": "initColumns"; "required": false; "isSignal": true; }; "rowClickAction": { "alias": "rowClickAction"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; }; "allowEditRow": { "alias": "allowEditRow"; "required": false; "isSignal": true; }; "showEditAllRows": { "alias": "showEditAllRows"; "required": false; "isSignal": true; }; "canEditRowValidator": { "alias": "canEditRowValidator"; "required": false; "isSignal": true; }; "canDeleteRowValidator": { "alias": "canDeleteRowValidator"; "required": false; "isSignal": true; }; "allowSelectRow": { "alias": "allowSelectRow"; "required": false; "isSignal": true; }; "selectionFieldLabel": { "alias": "selectionFieldLabel"; "required": false; "isSignal": true; }; "selectRowOnlyOne": { "alias": "selectRowOnlyOne"; "required": false; "isSignal": true; }; "showCreateButton": { "alias": "showCreateButton"; "required": false; "isSignal": true; }; "createButtonLabel": { "alias": "createButtonLabel"; "required": false; "isSignal": true; }; "createButtonAction": { "alias": "createButtonAction"; "required": false; "isSignal": true; }; "disableCreateButton": { "alias": "disableCreateButton"; "required": false; "isSignal": true; }; "createButtonUseAddRow": { "alias": "createButtonUseAddRow"; "required": false; "isSignal": true; }; "allowExtendRow": { "alias": "allowExtendRow"; "required": false; "isSignal": true; }; "extendedRowTemplate": { "alias": "extendedRowTemplate"; "required": false; "isSignal": true; }; "initSelectedRow": { "alias": "initSelectedRow"; "required": false; "isSignal": true; }; "extraCustomFilter": { "alias": "extraCustomFilter"; "required": false; "isSignal": true; }; }, { "loadData": "loadData"; "saveNewRow": "saveNewRow"; "saveNewCreatedRow": "saveNewCreatedRow"; "rowDeleted": "rowDeleted"; "selectRowChange": "selectRowChange"; }, never, never, false, never>;
|
|
162
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MaterialTableComponent, "ngx-st-material-table", never, { "showGlobalSearch": { "alias": "showGlobalSearch"; "required": false; "isSignal": true; }; "tableTitle": { "alias": "tableTitle"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "dataLength": { "alias": "dataLength"; "required": false; "isSignal": true; }; "allowPickColumns": { "alias": "allowPickColumns"; "required": false; "isSignal": true; }; "allowReorderColumns": { "alias": "allowReorderColumns"; "required": false; "isSignal": true; }; "localStorageName": { "alias": "localStorageName"; "required": false; "isSignal": true; }; "lazyLoading": { "alias": "lazyLoading"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "initColumns": { "alias": "initColumns"; "required": false; "isSignal": true; }; "rowClickAction": { "alias": "rowClickAction"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; }; "allowEditRow": { "alias": "allowEditRow"; "required": false; "isSignal": true; }; "showEditAllRows": { "alias": "showEditAllRows"; "required": false; "isSignal": true; }; "autoSaveOnChange": { "alias": "autoSaveOnChange"; "required": false; "isSignal": true; }; "canEditRowValidator": { "alias": "canEditRowValidator"; "required": false; "isSignal": true; }; "canDeleteRowValidator": { "alias": "canDeleteRowValidator"; "required": false; "isSignal": true; }; "allowSelectRow": { "alias": "allowSelectRow"; "required": false; "isSignal": true; }; "selectionFieldLabel": { "alias": "selectionFieldLabel"; "required": false; "isSignal": true; }; "selectRowOnlyOne": { "alias": "selectRowOnlyOne"; "required": false; "isSignal": true; }; "showCreateButton": { "alias": "showCreateButton"; "required": false; "isSignal": true; }; "createButtonLabel": { "alias": "createButtonLabel"; "required": false; "isSignal": true; }; "createButtonAction": { "alias": "createButtonAction"; "required": false; "isSignal": true; }; "disableCreateButton": { "alias": "disableCreateButton"; "required": false; "isSignal": true; }; "createButtonUseAddRow": { "alias": "createButtonUseAddRow"; "required": false; "isSignal": true; }; "allowExtendRow": { "alias": "allowExtendRow"; "required": false; "isSignal": true; }; "extendedRowTemplate": { "alias": "extendedRowTemplate"; "required": false; "isSignal": true; }; "initSelectedRow": { "alias": "initSelectedRow"; "required": false; "isSignal": true; }; "extraCustomFilter": { "alias": "extraCustomFilter"; "required": false; "isSignal": true; }; }, { "loadData": "loadData"; "saveNewRow": "saveNewRow"; "saveNewCreatedRow": "saveNewCreatedRow"; "rowDeleted": "rowDeleted"; "selectRowChange": "selectRowChange"; "fieldValueChanged": "fieldValueChanged"; }, never, never, false, never>;
|
|
111
163
|
}
|
|
112
164
|
export interface StMaterialTableLoadData {
|
|
113
165
|
first: number;
|