@dmlibs/dm-cmps 0.2.0 → 0.2.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/package.json
CHANGED
|
@@ -56,6 +56,7 @@ declare class DmCmpsDataSource<T> implements DmCmpsDataSourceConfig<T> {
|
|
|
56
56
|
firstPage(): number;
|
|
57
57
|
lastPage(): number;
|
|
58
58
|
getCurrentPageIndex(): number;
|
|
59
|
+
setCurrentPageIndex(index: number): number;
|
|
59
60
|
getTotalPagesCount(): number;
|
|
60
61
|
getFirstItemIndexInPage(): number;
|
|
61
62
|
getLastItemIndexInPage(): number;
|
|
@@ -144,6 +145,12 @@ interface DmCmpsDataSourceConfig<T = any> {
|
|
|
144
145
|
* @returns Current page index
|
|
145
146
|
*/
|
|
146
147
|
getCurrentPageIndex: () => number;
|
|
148
|
+
/**
|
|
149
|
+
* Sets the current page index, clamped to the valid range [0, totalPagesCount - 1].
|
|
150
|
+
* @param index Requested page index
|
|
151
|
+
* @returns The applied (clamped) page index
|
|
152
|
+
*/
|
|
153
|
+
setCurrentPageIndex: (index: number) => number;
|
|
147
154
|
/**
|
|
148
155
|
* Gets the total number of pages.
|
|
149
156
|
* @returns Total pages count
|
|
@@ -822,6 +829,42 @@ interface DmTableColumnState {
|
|
|
822
829
|
visible: boolean;
|
|
823
830
|
order: number;
|
|
824
831
|
}
|
|
832
|
+
interface DmTableSaveStateOptions {
|
|
833
|
+
/**
|
|
834
|
+
* Persist column visibility/order.
|
|
835
|
+
* @default true
|
|
836
|
+
*/
|
|
837
|
+
columns?: boolean;
|
|
838
|
+
/**
|
|
839
|
+
* Persist the paginator page size (page index is never persisted).
|
|
840
|
+
* @default false
|
|
841
|
+
*/
|
|
842
|
+
paginator?: boolean;
|
|
843
|
+
/**
|
|
844
|
+
* Persist the sort state.
|
|
845
|
+
* @default false
|
|
846
|
+
*/
|
|
847
|
+
sort?: boolean;
|
|
848
|
+
/**
|
|
849
|
+
* Persist the search text term.
|
|
850
|
+
* @default false
|
|
851
|
+
*/
|
|
852
|
+
filter?: boolean;
|
|
853
|
+
}
|
|
854
|
+
/** Serializable sort entry — DmCmpsDataSourceSort without sortFn. */
|
|
855
|
+
interface DmTablePersistedSort {
|
|
856
|
+
id?: string;
|
|
857
|
+
field: string;
|
|
858
|
+
direction: 'asc' | 'desc';
|
|
859
|
+
}
|
|
860
|
+
/** The blob stored in localStorage under `dm-table:state:<tableId>`. */
|
|
861
|
+
interface DmTablePersistedState {
|
|
862
|
+
version: 1;
|
|
863
|
+
columns?: DmTableColumnState[];
|
|
864
|
+
pageSize?: number;
|
|
865
|
+
sort?: DmTablePersistedSort[];
|
|
866
|
+
filter?: string;
|
|
867
|
+
}
|
|
825
868
|
interface DmTablePrintData {
|
|
826
869
|
headers: string[];
|
|
827
870
|
rows: string[][];
|
|
@@ -1109,6 +1152,13 @@ interface DmTableInterface<T extends object> {
|
|
|
1109
1152
|
* @default undefined
|
|
1110
1153
|
*/
|
|
1111
1154
|
tableId: InputSignal<string | undefined>;
|
|
1155
|
+
/**
|
|
1156
|
+
* Save state - Controls which parts of the table state are persisted to the localStorage
|
|
1157
|
+
* (requires tableId). Columns state is persisted by default; paginator (page size),
|
|
1158
|
+
* sort and filter (search term) are opt-in.
|
|
1159
|
+
* @default { columns: true, paginator: false, sort: false, filter: false }
|
|
1160
|
+
*/
|
|
1161
|
+
saveState: InputSignal<DmTableSaveStateOptions | undefined>;
|
|
1112
1162
|
/**
|
|
1113
1163
|
* Table data source - An array of objects that will be displayed in the table.
|
|
1114
1164
|
* @required
|
|
@@ -1359,6 +1409,8 @@ declare class DmTable<T extends object> implements DmTableInterface<T> {
|
|
|
1359
1409
|
protected DEFAULT_PAGINATOR_SETTINGS: _dmlibs_dm_cmps.DmTablePaginatorSettings;
|
|
1360
1410
|
protected DEFAULT_TABLE_STYLE: DmTableStyle;
|
|
1361
1411
|
tableId: _angular_core.InputSignal<string | undefined>;
|
|
1412
|
+
saveState: _angular_core.InputSignal<DmTableSaveStateOptions | undefined>;
|
|
1413
|
+
private readonly saveStateResolved;
|
|
1362
1414
|
dataSource: _angular_core.InputSignal<T[]>;
|
|
1363
1415
|
columns: _angular_core.InputSignal<DmTableColumn<T>[]>;
|
|
1364
1416
|
noDataMessage: _angular_core.InputSignal<string>;
|
|
@@ -1398,8 +1450,11 @@ declare class DmTable<T extends object> implements DmTableInterface<T> {
|
|
|
1398
1450
|
protected datasource: _angular_core.WritableSignal<DmCmpsDataSource<T>>;
|
|
1399
1451
|
protected readonly runtimeColumns: _angular_core.Signal<DmTableRuntimeColumn<T>[]>;
|
|
1400
1452
|
protected hoveredColumnHeaderIndex: _angular_core.WritableSignal<number | null>;
|
|
1401
|
-
private
|
|
1453
|
+
private stateStorage;
|
|
1402
1454
|
protected columnState: _angular_core.WritableSignal<DmTableColumnState[] | null>;
|
|
1455
|
+
/** Restored-from-storage or user-chosen page size; wins over paginatorSettings().pageSize. */
|
|
1456
|
+
private persistedPageSize;
|
|
1457
|
+
private restoredForTableId;
|
|
1403
1458
|
protected readonly visibleRuntimeColumns: _angular_core.Signal<DmTableRuntimeColumn<T>[]>;
|
|
1404
1459
|
protected readonly visibleColumns: _angular_core.Signal<DmTableColumn<T>[]>;
|
|
1405
1460
|
private prevColumns;
|
|
@@ -1410,6 +1465,7 @@ declare class DmTable<T extends object> implements DmTableInterface<T> {
|
|
|
1410
1465
|
protected readonly totalRowStyles: _angular_core.Signal<Map<string, Record<string, any>>>;
|
|
1411
1466
|
constructor(sanitizer: DomSanitizer);
|
|
1412
1467
|
private runEffects;
|
|
1468
|
+
private restoreNonColumnState;
|
|
1413
1469
|
private initColumnState;
|
|
1414
1470
|
private normalizeColumns;
|
|
1415
1471
|
private isSameColumnDefinition;
|
|
@@ -1465,7 +1521,7 @@ declare class DmTable<T extends object> implements DmTableInterface<T> {
|
|
|
1465
1521
|
protected rowDoubleClickHandler(row: T, event: Event): void;
|
|
1466
1522
|
getDataForPrint: () => DmTablePrintData;
|
|
1467
1523
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DmTable<any>, never>;
|
|
1468
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DmTable<any>, "dm-table", never, { "tableId": { "alias": "tableId"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "noDataMessage": { "alias": "noDataMessage"; "required": false; "isSignal": true; }; "enableSearch": { "alias": "enableSearch"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "clearSearchTooltip": { "alias": "clearSearchTooltip"; "required": false; "isSignal": true; }; "searchInputAppearance": { "alias": "searchInputAppearance"; "required": false; "isSignal": true; }; "filterPredicate": { "alias": "filterPredicate"; "required": false; "isSignal": true; }; "enableSperatedSearch": { "alias": "enableSperatedSearch"; "required": false; "isSignal": true; }; "actionButtons": { "alias": "actionButtons"; "required": false; "isSignal": true; }; "enablePrint": { "alias": "enablePrint"; "required": false; "isSignal": true; }; "printButton": { "alias": "printButton"; "required": false; "isSignal": true; }; "enablePagination": { "alias": "enablePagination"; "required": false; "isSignal": true; }; "autoPaginationAboveRowsCount": { "alias": "autoPaginationAboveRowsCount"; "required": false; "isSignal": true; }; "paginatorSettings": { "alias": "paginatorSettings"; "required": false; "isSignal": true; }; "enableLoadingProgressbar": { "alias": "enableLoadingProgressbar"; "required": false; "isSignal": true; }; "enableColumnsDragAndDrop": { "alias": "enableColumnsDragAndDrop"; "required": false; "isSignal": true; }; "enableColumnsDragHandle": { "alias": "enableColumnsDragHandle"; "required": false; "isSignal": true; }; "enableTotalRow": { "alias": "enableTotalRow"; "required": false; "isSignal": true; }; "tableStyle": { "alias": "tableStyle"; "required": false; "isSignal": true; }; "tableClasses": { "alias": "tableClasses"; "required": false; "isSignal": true; }; "rowStyleFn": { "alias": "rowStyleFn"; "required": false; "isSignal": true; }; "disableRowHoverStyling": { "alias": "disableRowHoverStyling"; "required": false; "isSignal": true; }; "editColumnsVisibility": { "alias": "editColumnsVisibility"; "required": false; "isSignal": true; }; "editColumnsVisibilityButton": { "alias": "editColumnsVisibilityButton"; "required": false; "isSignal": true; }; "editColumnsVisibilitySelectAllLabel": { "alias": "editColumnsVisibilitySelectAllLabel"; "required": false; "isSignal": true; }; "onRowDoubleClick": { "alias": "onRowDoubleClick"; "required": false; "isSignal": true; }; "enableLogs": { "alias": "enableLogs"; "required": false; "isSignal": true; }; "rowIdentifierField": { "alias": "rowIdentifierField"; "required": false; "isSignal": true; }; }, { "rowDoubleClick": "rowDoubleClick"; }, never, never, true, never>;
|
|
1524
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DmTable<any>, "dm-table", never, { "tableId": { "alias": "tableId"; "required": false; "isSignal": true; }; "saveState": { "alias": "saveState"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "noDataMessage": { "alias": "noDataMessage"; "required": false; "isSignal": true; }; "enableSearch": { "alias": "enableSearch"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "clearSearchTooltip": { "alias": "clearSearchTooltip"; "required": false; "isSignal": true; }; "searchInputAppearance": { "alias": "searchInputAppearance"; "required": false; "isSignal": true; }; "filterPredicate": { "alias": "filterPredicate"; "required": false; "isSignal": true; }; "enableSperatedSearch": { "alias": "enableSperatedSearch"; "required": false; "isSignal": true; }; "actionButtons": { "alias": "actionButtons"; "required": false; "isSignal": true; }; "enablePrint": { "alias": "enablePrint"; "required": false; "isSignal": true; }; "printButton": { "alias": "printButton"; "required": false; "isSignal": true; }; "enablePagination": { "alias": "enablePagination"; "required": false; "isSignal": true; }; "autoPaginationAboveRowsCount": { "alias": "autoPaginationAboveRowsCount"; "required": false; "isSignal": true; }; "paginatorSettings": { "alias": "paginatorSettings"; "required": false; "isSignal": true; }; "enableLoadingProgressbar": { "alias": "enableLoadingProgressbar"; "required": false; "isSignal": true; }; "enableColumnsDragAndDrop": { "alias": "enableColumnsDragAndDrop"; "required": false; "isSignal": true; }; "enableColumnsDragHandle": { "alias": "enableColumnsDragHandle"; "required": false; "isSignal": true; }; "enableTotalRow": { "alias": "enableTotalRow"; "required": false; "isSignal": true; }; "tableStyle": { "alias": "tableStyle"; "required": false; "isSignal": true; }; "tableClasses": { "alias": "tableClasses"; "required": false; "isSignal": true; }; "rowStyleFn": { "alias": "rowStyleFn"; "required": false; "isSignal": true; }; "disableRowHoverStyling": { "alias": "disableRowHoverStyling"; "required": false; "isSignal": true; }; "editColumnsVisibility": { "alias": "editColumnsVisibility"; "required": false; "isSignal": true; }; "editColumnsVisibilityButton": { "alias": "editColumnsVisibilityButton"; "required": false; "isSignal": true; }; "editColumnsVisibilitySelectAllLabel": { "alias": "editColumnsVisibilitySelectAllLabel"; "required": false; "isSignal": true; }; "onRowDoubleClick": { "alias": "onRowDoubleClick"; "required": false; "isSignal": true; }; "enableLogs": { "alias": "enableLogs"; "required": false; "isSignal": true; }; "rowIdentifierField": { "alias": "rowIdentifierField"; "required": false; "isSignal": true; }; }, { "rowDoubleClick": "rowDoubleClick"; }, never, never, true, never>;
|
|
1469
1525
|
}
|
|
1470
1526
|
|
|
1471
1527
|
declare class DmIcon {
|
|
@@ -1734,4 +1790,4 @@ declare class DmRunOncePipe implements PipeTransform {
|
|
|
1734
1790
|
}
|
|
1735
1791
|
|
|
1736
1792
|
export { DmCmpsDataSource, DmColorPicker, DmDatePipe, DmDateService, DmFilterByPipe, DmIcon, DmMatSelect, DmRunOncePipe, DmRunOncePipeSevice, DmSpinner, DmSpinnerService, DmTable };
|
|
1737
|
-
export type { DmCmpsDataSourceSort, DmSelectOnSelectionChange, DmTableActionButton, DmTableClasses, DmTableColumn, DmTableColumnHeaderMenuItem, DmTablePaginatorSettings, DmTablePrintData, DmTableRowActionButton, DmTableRowDoubleClickEvent, DmTableStyle };
|
|
1793
|
+
export type { DmCmpsDataSourceSort, DmSelectOnSelectionChange, DmTableActionButton, DmTableClasses, DmTableColumn, DmTableColumnHeaderMenuItem, DmTableColumnState, DmTablePaginatorSettings, DmTablePersistedSort, DmTablePersistedState, DmTablePrintData, DmTableRowActionButton, DmTableRowDoubleClickEvent, DmTableSaveStateOptions, DmTableStyle };
|