ngx-st-tables 17.0.112 → 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 +10 -3
- package/esm2022/lib/components/material-table/material-table.component.mjs +96 -27
- package/fesm2022/ngx-st-tables.mjs +104 -28
- 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 +7 -1
- package/lib/components/material-table/material-table.component.d.ts +47 -1
- package/package.json +1 -1
package/lib/components/material-table/material-table-row-cell/material-table-row-cell.component.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare class MaterialTableRowCellComponent implements OnInit, AfterViewI
|
|
|
19
19
|
canDeleteRowValidator: import("@angular/core").InputSignal<(row: any) => boolean>;
|
|
20
20
|
selectRowOnlyOne: import("@angular/core").InputSignal<boolean>;
|
|
21
21
|
isFirstEditableColumn: import("@angular/core").InputSignal<boolean>;
|
|
22
|
+
autoSaveOnChange: import("@angular/core").InputSignal<boolean>;
|
|
22
23
|
set rowEditing(data: boolean);
|
|
23
24
|
get rowEditing(): boolean;
|
|
24
25
|
private _rowEditing;
|
|
@@ -29,6 +30,10 @@ export declare class MaterialTableRowCellComponent implements OnInit, AfterViewI
|
|
|
29
30
|
editRowEmitter: import("@angular/core").OutputEmitterRef<void>;
|
|
30
31
|
deleteRowEmitter: import("@angular/core").OutputEmitterRef<void>;
|
|
31
32
|
selectRowChange: import("@angular/core").OutputEmitterRef<boolean>;
|
|
33
|
+
fieldValueChanged: import("@angular/core").OutputEmitterRef<{
|
|
34
|
+
field: string;
|
|
35
|
+
value: any;
|
|
36
|
+
}>;
|
|
32
37
|
mobileView: boolean;
|
|
33
38
|
actionIconColorDef: {
|
|
34
39
|
[key: string]: 'primary' | 'warn';
|
|
@@ -48,8 +53,9 @@ export declare class MaterialTableRowCellComponent implements OnInit, AfterViewI
|
|
|
48
53
|
selectRow(event: {
|
|
49
54
|
checked: boolean;
|
|
50
55
|
}): void;
|
|
56
|
+
onFieldChange(field: string, value: any): void;
|
|
51
57
|
private checkWidthSize;
|
|
52
58
|
private getDynamicSelectData;
|
|
53
59
|
static ɵfac: i0.ɵɵFactoryDeclaration<MaterialTableRowCellComponent, never>;
|
|
54
|
-
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; }; "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>;
|
|
55
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,6 +69,15 @@ 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>;
|
|
@@ -88,11 +109,36 @@ export declare class MaterialTableComponent extends StSubscribeDestroyComponent
|
|
|
88
109
|
turnOnAllEditRows(): void;
|
|
89
110
|
captionDataChanged(event: ICaptionDataChanged): void;
|
|
90
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
|
+
*/
|
|
91
118
|
addNewRow(): void;
|
|
92
119
|
editRow(row: any, column: ViewStMaterialTableColumnModel): void;
|
|
93
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
|
+
*/
|
|
94
134
|
saveEditRow(row: any, column: ViewStMaterialTableColumnModel): void;
|
|
95
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;
|
|
96
142
|
isAllSelected(): boolean;
|
|
97
143
|
toggleAllRows(): void;
|
|
98
144
|
removeSelectedRow(row: any): void;
|
|
@@ -113,7 +159,7 @@ export declare class MaterialTableComponent extends StSubscribeDestroyComponent
|
|
|
113
159
|
private setNewEmptyLocalStorageData;
|
|
114
160
|
isFirstEditableColumn(column: ViewStMaterialTableColumnModel): boolean;
|
|
115
161
|
static ɵfac: i0.ɵɵFactoryDeclaration<MaterialTableComponent, never>;
|
|
116
|
-
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>;
|
|
117
163
|
}
|
|
118
164
|
export interface StMaterialTableLoadData {
|
|
119
165
|
first: number;
|