@servicemind.tis/angular-smart-data-table 1.0.0

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 (38) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +278 -0
  3. package/fesm2022/servicemind.tis-angular-smart-data-table.mjs +3148 -0
  4. package/fesm2022/servicemind.tis-angular-smart-data-table.mjs.map +1 -0
  5. package/index.d.ts +5 -0
  6. package/lib/angular-smart-data-table.module.d.ts +38 -0
  7. package/lib/angular-smart-data-table.service.d.ts +6 -0
  8. package/lib/components/angular-columns-btn/angular-columns-btn.component.d.ts +39 -0
  9. package/lib/components/angular-smart-data-table/angular-smart-data-table.component.d.ts +205 -0
  10. package/lib/components/angular-smart-data-table-confirmation-dialog/angular-smart-data-table-confirmation-dialog.component.d.ts +10 -0
  11. package/lib/components/angular-smart-data-table-error-dialog/angular-smart-data-table-error-dialog.component.d.ts +10 -0
  12. package/lib/components/create-columns-template/create-columns-template.component.d.ts +42 -0
  13. package/lib/datasources/api.datasource.d.ts +18 -0
  14. package/lib/directives/scrolling/scrolling.directive.d.ts +11 -0
  15. package/lib/helpers/collection.helper.d.ts +92 -0
  16. package/lib/helpers/date-time.helper.d.ts +39 -0
  17. package/lib/helpers/filter-display.helper.d.ts +51 -0
  18. package/lib/helpers/query-params.helper.d.ts +47 -0
  19. package/lib/helpers/storage-helper.d.ts +3 -0
  20. package/lib/helpers/timeout-manager.helper.d.ts +72 -0
  21. package/lib/helpers/url.helper.d.ts +78 -0
  22. package/lib/helpers/validation.helper.d.ts +73 -0
  23. package/lib/interfaces/angular-selection-config.type.d.ts +16 -0
  24. package/lib/interfaces/data-not-found-config.type.d.ts +12 -0
  25. package/lib/interfaces/index.d.ts +4 -0
  26. package/lib/interfaces/smart-data-table-wrapper-columns-config.type.d.ts +38 -0
  27. package/lib/interfaces/url-config.type.d.ts +8 -0
  28. package/lib/pipes/angular-currency.pipe.d.ts +7 -0
  29. package/lib/pipes/angular-date-time-with-seconds.pipe.d.ts +7 -0
  30. package/lib/pipes/angular-date-time.pipe.d.ts +7 -0
  31. package/lib/pipes/angular-date.pipe.d.ts +7 -0
  32. package/lib/pipes/money.pipe.d.ts +9 -0
  33. package/lib/pipes/quantity.pipe.d.ts +9 -0
  34. package/lib/services/angular-helper.service.d.ts +17 -0
  35. package/lib/services/api.service.d.ts +11 -0
  36. package/lib/services/user-customization.service.d.ts +16 -0
  37. package/package.json +50 -0
  38. package/public-api.d.ts +4 -0
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@servicemind.tis/angular-smart-data-table" />
5
+ export * from './public-api';
@@ -0,0 +1,38 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./directives/scrolling/scrolling.directive";
3
+ import * as i2 from "./pipes/angular-date.pipe";
4
+ import * as i3 from "./pipes/angular-date-time.pipe";
5
+ import * as i4 from "./pipes/angular-date-time-with-seconds.pipe";
6
+ import * as i5 from "./pipes/angular-currency.pipe";
7
+ import * as i6 from "./pipes/quantity.pipe";
8
+ import * as i7 from "./pipes/money.pipe";
9
+ import * as i8 from "./components/angular-smart-data-table/angular-smart-data-table.component";
10
+ import * as i9 from "./components/angular-columns-btn/angular-columns-btn.component";
11
+ import * as i10 from "./components/create-columns-template/create-columns-template.component";
12
+ import * as i11 from "./components/angular-smart-data-table-error-dialog/angular-smart-data-table-error-dialog.component";
13
+ import * as i12 from "./components/angular-smart-data-table-confirmation-dialog/angular-smart-data-table-confirmation-dialog.component";
14
+ import * as i13 from "@angular/common";
15
+ import * as i14 from "@angular/forms";
16
+ import * as i15 from "@angular/router";
17
+ import * as i16 from "@angular/material/tooltip";
18
+ import * as i17 from "@angular/material/icon";
19
+ import * as i18 from "@angular/material/form-field";
20
+ import * as i19 from "@angular/material/select";
21
+ import * as i20 from "@angular/material/input";
22
+ import * as i21 from "@angular/material/snack-bar";
23
+ import * as i22 from "@angular/material/progress-spinner";
24
+ import * as i23 from "@angular/material/button";
25
+ import * as i24 from "@angular/material/paginator";
26
+ import * as i25 from "@angular/cdk/layout";
27
+ import * as i26 from "@angular/material/dialog";
28
+ import * as i27 from "@angular/material/table";
29
+ import * as i28 from "@angular/material/checkbox";
30
+ import * as i29 from "@angular/material/menu";
31
+ import * as i30 from "@angular/material/divider";
32
+ import * as i31 from "@angular/material/sort";
33
+ import * as i32 from "@angular/cdk/drag-drop";
34
+ export declare class AngularSmartDataTableModule {
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularSmartDataTableModule, never>;
36
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AngularSmartDataTableModule, [typeof i1.ScrollingDirective, typeof i2.AngularDatePipe, typeof i3.AngularDateTimePipe, typeof i4.AngularDateTimeWithSecondsPipe, typeof i5.AngularCurrencyPipe, typeof i6.Quantity, typeof i7.Money, typeof i8.AngularSmartDataTableComponent, typeof i9.AngularColumnsBtnComponent, typeof i10.CreateColumnsTemplateComponent, typeof i11.AngularSmartDataTableErrorDialogComponent, typeof i12.AngularSmartDataTableConfirmationDialogComponent], [typeof i13.CommonModule, typeof i14.FormsModule, typeof i14.ReactiveFormsModule, typeof i15.RouterLink, typeof i15.RouterOutlet, typeof i16.MatTooltipModule, typeof i17.MatIconModule, typeof i18.MatFormFieldModule, typeof i19.MatSelectModule, typeof i20.MatInputModule, typeof i21.MatSnackBarModule, typeof i22.MatProgressSpinnerModule, typeof i23.MatButtonModule, typeof i24.MatPaginatorModule, typeof i25.LayoutModule, typeof i26.MatDialogModule, typeof i27.MatTableModule, typeof i28.MatCheckboxModule, typeof i29.MatMenuModule, typeof i30.MatDividerModule, typeof i31.MatSortModule, typeof i32.DragDropModule], [typeof i8.AngularSmartDataTableComponent]>;
37
+ static ɵinj: i0.ɵɵInjectorDeclaration<AngularSmartDataTableModule>;
38
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class AngularSmartDataTableService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularSmartDataTableService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<AngularSmartDataTableService>;
6
+ }
@@ -0,0 +1,39 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ import { UserCustomizationService } from '../../services/user-customization.service';
4
+ import { AngularHelperService } from '../../services/angular-helper.service';
5
+ import type { ColumnCustomizationUrlConfig } from '../../interfaces/url-config.type';
6
+ import * as i0 from "@angular/core";
7
+ export declare class AngularColumnsBtnComponent {
8
+ private helper;
9
+ private userCustomizationService;
10
+ private dialog;
11
+ static readonly COMPONENT_NAME = "AngularColumnsBtnComponent";
12
+ columnCustomizationUrlConfig: ColumnCustomizationUrlConfig;
13
+ t: any;
14
+ componentName: string;
15
+ defaultColumns: string[];
16
+ columns: string[];
17
+ skipTranslation: boolean;
18
+ customColumns?: object;
19
+ selectedTemplate: any;
20
+ selectedTemplateChange: EventEmitter<any>;
21
+ displayedColumnsChange: EventEmitter<any>;
22
+ fromStartColumnNumberChange: EventEmitter<any>;
23
+ fromEndColumnNumberChange: EventEmitter<any>;
24
+ displayedColumns: any[];
25
+ templates: any[];
26
+ isDeleteTemplate: boolean;
27
+ isEditTemplate: boolean;
28
+ constructor(helper: AngularHelperService, userCustomizationService: UserCustomizationService, dialog: MatDialog);
29
+ ngOnInit(): void;
30
+ createNewTemplateDialog(stData?: any): void;
31
+ getColumnsTemplates(): void;
32
+ getSelectedColumnsTemplate(): void;
33
+ onSelectedTemplate(templateId: number): void;
34
+ changeDisplayColumns(): void;
35
+ onMouseOverOut(event: Event, color: string): void;
36
+ onMouseOut(event: Event): void;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularColumnsBtnComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<AngularColumnsBtnComponent, "angular-columns-btn", never, { "columnCustomizationUrlConfig": { "alias": "columnCustomizationUrlConfig"; "required": true; }; "t": { "alias": "t"; "required": false; }; "componentName": { "alias": "componentName"; "required": true; }; "defaultColumns": { "alias": "defaultColumns"; "required": true; }; "columns": { "alias": "columns"; "required": true; }; "skipTranslation": { "alias": "skipTranslation"; "required": false; }; "customColumns": { "alias": "customColumns"; "required": false; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; }; }, { "selectedTemplateChange": "selectedTemplateChange"; "displayedColumnsChange": "displayedColumnsChange"; "fromStartColumnNumberChange": "fromStartColumnNumberChange"; "fromEndColumnNumberChange": "fromEndColumnNumberChange"; }, never, never, false, never>;
39
+ }
@@ -0,0 +1,205 @@
1
+ import { EventEmitter, SimpleChanges, OnDestroy, ChangeDetectorRef } from '@angular/core';
2
+ import { FormGroup, FormControl } from '@angular/forms';
3
+ import { ActivatedRoute, Router } from '@angular/router';
4
+ import { Subscription, Observable } from 'rxjs';
5
+ import type { SmartTableWrapperRowsConfig, ColumnValueTypeFormats } from '../../interfaces';
6
+ import { AnyKeyValueObject, SelectedFilterDisplayValuesType, SelectedFilterDisplayValueType, SelectedFiltersGroupedValuesType, SmartTableWrapperColumnsConfig } from '../../interfaces';
7
+ import { SelectionModel } from '@angular/cdk/collections';
8
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
9
+ import { ApiDataSource } from '../../datasources/api.datasource';
10
+ import { ApiService } from '../../services/api.service';
11
+ import { MatCheckboxChange } from '@angular/material/checkbox';
12
+ import { MatDialog } from '@angular/material/dialog';
13
+ import { MatPaginator } from '@angular/material/paginator';
14
+ import { MatSort } from '@angular/material/sort';
15
+ import { MatTable } from '@angular/material/table';
16
+ import { BreakpointObserver } from '@angular/cdk/layout';
17
+ import { Location } from '@angular/common';
18
+ import type { DataNotFoundConfig } from '../../interfaces/data-not-found-config.type';
19
+ import type { ColumnCustomizationUrlConfig } from '../../interfaces/url-config.type';
20
+ import * as i0 from "@angular/core";
21
+ export declare class AngularSmartDataTableComponent implements OnDestroy {
22
+ private dialog;
23
+ private apiService;
24
+ private route;
25
+ private router;
26
+ private location;
27
+ private breakpointObserver;
28
+ private cdr;
29
+ homeUrl: string;
30
+ columnCustomizationUrlConfig: ColumnCustomizationUrlConfig;
31
+ t: any;
32
+ componentName: string;
33
+ mainTitle: string;
34
+ searchPlaceholder: string;
35
+ breadcrumbs: {
36
+ url: string;
37
+ name: string;
38
+ }[];
39
+ hideHeader: boolean;
40
+ hideTableHeader: boolean;
41
+ hidePaginator: boolean;
42
+ keepFilterInUrl: boolean;
43
+ disableBorderedView: boolean;
44
+ displayColumnsSelectionButton: boolean;
45
+ loadDataApiBaseUrl: string;
46
+ startStickyColumnCount: number;
47
+ endStickyColumnCount: number;
48
+ isSearchFieldMobileResponsive: boolean;
49
+ isMobileResponsiveTable: boolean;
50
+ loaderPosition: 'top' | 'bottom';
51
+ dataNotFoundConfig: DataNotFoundConfig;
52
+ showFilterButtonSection: boolean;
53
+ /** Optional per-column format config. Key = column name, Value = format string. Defaults to empty (uses built-in formats). */
54
+ columnValueTypeFormats: ColumnValueTypeFormats;
55
+ columnsCodeMapping: SmartTableWrapperColumnsConfig[];
56
+ autoRenderColumns: SmartTableWrapperColumnsConfig[];
57
+ templateRenderColumns: SmartTableWrapperColumnsConfig[];
58
+ defaultDisplayedColumns: string[];
59
+ displayedColumns: string[];
60
+ defaultColumns: string[];
61
+ columns: string[];
62
+ displayedColumnsChange: EventEmitter<string[]>;
63
+ usersColumnSelectionDetail: any;
64
+ defaultSortObj: any;
65
+ sortObj: any;
66
+ sortObjChange: EventEmitter<AnyKeyValueObject>;
67
+ loadingSpinnerDiameter: number;
68
+ pageSizeOptions: number[];
69
+ pageSize: number;
70
+ pageSizeChange: EventEmitter<number>;
71
+ useGlobalPageSize: boolean;
72
+ pageIndex: number;
73
+ pageIndexChange: EventEmitter<number>;
74
+ filterFormGroup: FormGroup;
75
+ rowsConfig: SmartTableWrapperRowsConfig;
76
+ onDataLoaded: EventEmitter<boolean>;
77
+ onSetExtraData: EventEmitter<any>;
78
+ onSetTotal: EventEmitter<number>;
79
+ hasSelectedAllRows: boolean;
80
+ selectedTemplate: any;
81
+ selectedFilterValues: SelectedFilterDisplayValuesType;
82
+ finalSelectedFilterValuesToDisplay: SelectedFilterDisplayValuesType;
83
+ selectedFilterGroupedValues: SelectedFiltersGroupedValuesType[];
84
+ isShowFilter: boolean;
85
+ filterFormGroupSubscription: Subscription;
86
+ filterHasNonEmptyValue: boolean;
87
+ filterApplied: boolean;
88
+ resetFlag: boolean;
89
+ initialLoading: boolean;
90
+ displayAfterFilterRemoved: boolean;
91
+ filterFromQueryParams: any;
92
+ sortFromQueryParams: any;
93
+ search: string;
94
+ searchCtrl: FormControl<any>;
95
+ private _onDestroy;
96
+ private _selectionSubscription;
97
+ private _handsetSubscription;
98
+ private _queryParamsSubscription;
99
+ private _columnMappingCache;
100
+ private _displayedColumnsCache;
101
+ private _lastColumnsCodeMappingHash;
102
+ private _currentRequestSubject;
103
+ private timeoutManager;
104
+ private computedRowBackgrounds;
105
+ dataSource: ApiDataSource;
106
+ private _table;
107
+ set table(value: MatTable<any>);
108
+ private _sort;
109
+ private _sortSubscription;
110
+ set sort(value: MatSort);
111
+ private _paginator;
112
+ private _paginatorSubscription;
113
+ set paginator(value: MatPaginator);
114
+ loadingSubscription: Subscription;
115
+ dataLengthSubscription: Subscription;
116
+ enableRowsSelection: boolean;
117
+ enableAllRowsSelection: boolean;
118
+ onlySingleSelection: boolean;
119
+ selectedRowIds: (number | string)[];
120
+ selectedRowKey: string;
121
+ selectedRows: any[];
122
+ selectedRowsChange: EventEmitter<any>;
123
+ selection: SelectionModel<any>;
124
+ selectedIds: Set<number | string>;
125
+ isAllRowsSelected: boolean;
126
+ allRowsSelectedChange: EventEmitter<boolean>;
127
+ enableDragNDrop: boolean;
128
+ listDataSequenceChange: EventEmitter<any>;
129
+ isExpansion: boolean;
130
+ isExpandedRow: boolean;
131
+ expandedTemplate: any;
132
+ isExpansionForMobileResponsive: boolean;
133
+ isExpandedRowForMobileResponsive: boolean;
134
+ expandedTemplateForMobileResponsive: any;
135
+ headerTemplateForEachRowForMobileResponsive: any;
136
+ isAllExpanded: boolean;
137
+ isAllExpandedForMobileResponsive: boolean;
138
+ private expandedRowIds;
139
+ private expandedRowIdsForMobileResponsive;
140
+ isHandset$: Observable<boolean>;
141
+ isMobile: boolean;
142
+ constructor(dialog: MatDialog, apiService: ApiService, route: ActivatedRoute, router: Router, location: Location, breakpointObserver: BreakpointObserver, cdr: ChangeDetectorRef);
143
+ ngOnInit(): void;
144
+ ngOnChanges(changes: SimpleChanges): void;
145
+ ngOnDestroy(): void;
146
+ setDefaultColumns(): void;
147
+ handleDisplayedColumns(msg?: String): void;
148
+ private updateColumnMappingCache;
149
+ trackByBreadcrumb(index: number, breadcrumb: {
150
+ url: string;
151
+ name: string;
152
+ }): string;
153
+ trackByFilterValue(index: number, filterValue: SelectedFilterDisplayValueType): string;
154
+ trackByAutoColumn(index: number, column: SmartTableWrapperColumnsConfig): string;
155
+ trackByTemplateColumn(index: number, column: SmartTableWrapperColumnsConfig): string;
156
+ trackByTableRow(index: number, row: any): any;
157
+ private getRowIdentifier;
158
+ isRowExpanded(row: any): boolean;
159
+ isRowExpandedForMobileResponsive(row: any): boolean;
160
+ private clearRowBackgroundCache;
161
+ private computeAllRowBackgrounds;
162
+ handleSortingChanges(ch: any): void;
163
+ private getHomeUrl;
164
+ getNestedValue(obj: any, path: string): any;
165
+ /** Returns the custom format string for a column type, or undefined if not set (uses pipe defaults). */
166
+ getColumnFormat(columnType: string): string | undefined;
167
+ private groupByFormControlAttributes;
168
+ updateSelectedFilterValues(values: SelectedFilterDisplayValueType | SelectedFilterDisplayValuesType): void;
169
+ getFinalSelectedFilterValuesToDisplay(): void;
170
+ removeParticularFilter(f: SelectedFilterDisplayValueType): void;
171
+ filterRecords(): void;
172
+ resetFilters(): void;
173
+ getList(forceFromObject?: boolean): void;
174
+ onPaginationChanges(): void;
175
+ onSetSelectedTemplate(data: any): void;
176
+ onChangeDisplayColumns(columns: string[]): void;
177
+ onChangeFromStartColumnNumber(columnNumber: number): void;
178
+ onChangeFromEndColumnNumber(columnNumber: number): void;
179
+ goToUrl(url: string): void;
180
+ toggleSelection(status: MatCheckboxChange, row: any): void;
181
+ checkAllRowsSelected(): void;
182
+ toggleAllRows(): void;
183
+ stopPropagation($event: any): void;
184
+ isChecked(row: any): boolean;
185
+ getQueryParams(url: string): Record<string, string | string[]>;
186
+ isStickyStart(columnName: string): boolean;
187
+ isStickyEnd(columnName: string): boolean;
188
+ getColumnClasses(column: SmartTableWrapperColumnsConfig): {
189
+ [key: string]: boolean;
190
+ };
191
+ getRowBackground(row: any): string | null;
192
+ drop(event: CdkDragDrop<any[]>): void;
193
+ handleButtonClick(config: any): void;
194
+ handleSecondButtonClick(config: any): void;
195
+ setSelectedRows(): void;
196
+ resetSelectedRows(): void;
197
+ /** Toggles the expanded state of an element. */
198
+ toggleExpand(element: any): void;
199
+ expandAllRow(): void;
200
+ /** Toggles the expanded state of an element. */
201
+ toggleExpandForMobileResponsive(element: any): void;
202
+ expandAllRowForMobileResponsive(): void;
203
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularSmartDataTableComponent, never>;
204
+ static ɵcmp: i0.ɵɵComponentDeclaration<AngularSmartDataTableComponent, "angular-smart-data-table", never, { "columnCustomizationUrlConfig": { "alias": "columnCustomizationUrlConfig"; "required": true; }; "t": { "alias": "t"; "required": true; }; "componentName": { "alias": "componentName"; "required": true; }; "mainTitle": { "alias": "mainTitle"; "required": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "breadcrumbs": { "alias": "breadcrumbs"; "required": false; }; "hideHeader": { "alias": "hideHeader"; "required": false; }; "hideTableHeader": { "alias": "hideTableHeader"; "required": false; }; "hidePaginator": { "alias": "hidePaginator"; "required": false; }; "keepFilterInUrl": { "alias": "keepFilterInUrl"; "required": false; }; "disableBorderedView": { "alias": "disableBorderedView"; "required": false; }; "displayColumnsSelectionButton": { "alias": "displayColumnsSelectionButton"; "required": false; }; "loadDataApiBaseUrl": { "alias": "loadDataApiBaseUrl"; "required": false; }; "startStickyColumnCount": { "alias": "startStickyColumnCount"; "required": false; }; "endStickyColumnCount": { "alias": "endStickyColumnCount"; "required": false; }; "isSearchFieldMobileResponsive": { "alias": "isSearchFieldMobileResponsive"; "required": false; }; "isMobileResponsiveTable": { "alias": "isMobileResponsiveTable"; "required": false; }; "loaderPosition": { "alias": "loaderPosition"; "required": false; }; "dataNotFoundConfig": { "alias": "dataNotFoundConfig"; "required": true; }; "showFilterButtonSection": { "alias": "showFilterButtonSection"; "required": false; }; "columnValueTypeFormats": { "alias": "columnValueTypeFormats"; "required": false; }; "columnsCodeMapping": { "alias": "columnsCodeMapping"; "required": true; }; "defaultDisplayedColumns": { "alias": "defaultDisplayedColumns"; "required": false; }; "defaultSortObj": { "alias": "defaultSortObj"; "required": false; }; "loadingSpinnerDiameter": { "alias": "loadingSpinnerDiameter"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "useGlobalPageSize": { "alias": "useGlobalPageSize"; "required": false; }; "pageIndex": { "alias": "pageIndex"; "required": false; }; "filterFormGroup": { "alias": "filterFormGroup"; "required": false; }; "rowsConfig": { "alias": "rowsConfig"; "required": false; }; "hasSelectedAllRows": { "alias": "hasSelectedAllRows"; "required": false; }; "enableRowsSelection": { "alias": "enableRowsSelection"; "required": false; }; "enableAllRowsSelection": { "alias": "enableAllRowsSelection"; "required": false; }; "onlySingleSelection": { "alias": "onlySingleSelection"; "required": false; }; "selectedRowIds": { "alias": "selectedRowIds"; "required": false; }; "selectedRowKey": { "alias": "selectedRowKey"; "required": false; }; "selectedRows": { "alias": "selectedRows"; "required": false; }; "enableDragNDrop": { "alias": "enableDragNDrop"; "required": false; }; "isExpansion": { "alias": "isExpansion"; "required": false; }; "isExpandedRow": { "alias": "isExpandedRow"; "required": false; }; "expandedTemplate": { "alias": "expandedTemplate"; "required": false; }; "isExpansionForMobileResponsive": { "alias": "isExpansionForMobileResponsive"; "required": false; }; "isExpandedRowForMobileResponsive": { "alias": "isExpandedRowForMobileResponsive"; "required": false; }; "expandedTemplateForMobileResponsive": { "alias": "expandedTemplateForMobileResponsive"; "required": false; }; "headerTemplateForEachRowForMobileResponsive": { "alias": "headerTemplateForEachRowForMobileResponsive"; "required": false; }; }, { "displayedColumnsChange": "displayedColumnsChange"; "sortObjChange": "sortObjChange"; "pageSizeChange": "pageSizeChange"; "pageIndexChange": "pageIndexChange"; "onDataLoaded": "onDataLoaded"; "onSetExtraData": "onSetExtraData"; "onSetTotal": "onSetTotal"; "selectedRowsChange": "selectedRowsChange"; "allRowsSelectedChange": "allRowsSelectedChange"; "listDataSequenceChange": "listDataSequenceChange"; }, never, ["[slot='top-buttons-section']", "[slot='filter-button-section']", "[slot='filter-right-button-section']", "[slot='filter-form-section']"], false, never>;
205
+ }
@@ -0,0 +1,10 @@
1
+ import { MatDialogRef } from '@angular/material/dialog';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AngularSmartDataTableConfirmationDialogComponent {
4
+ dialogRef: MatDialogRef<AngularSmartDataTableConfirmationDialogComponent>;
5
+ data: any;
6
+ constructor(dialogRef: MatDialogRef<AngularSmartDataTableConfirmationDialogComponent>, data: any);
7
+ onClose(status: boolean | null): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularSmartDataTableConfirmationDialogComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<AngularSmartDataTableConfirmationDialogComponent, "angular-smart-data-table-confirmation-dialog", never, {}, {}, never, never, false, never>;
10
+ }
@@ -0,0 +1,10 @@
1
+ import { MatDialogRef } from '@angular/material/dialog';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AngularSmartDataTableErrorDialogComponent {
4
+ dialogRef: MatDialogRef<AngularSmartDataTableErrorDialogComponent>;
5
+ data: any;
6
+ constructor(dialogRef: MatDialogRef<AngularSmartDataTableErrorDialogComponent>, data: any);
7
+ onClose(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularSmartDataTableErrorDialogComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<AngularSmartDataTableErrorDialogComponent, "angular-smart-data-table-error-dialog", never, {}, {}, never, never, false, never>;
10
+ }
@@ -0,0 +1,42 @@
1
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
2
+ import { FormGroup, FormControl } from '@angular/forms';
3
+ import { MatDialogRef } from '@angular/material/dialog';
4
+ import { MatSnackBar } from '@angular/material/snack-bar';
5
+ import { AngularHelperService } from '../../services/angular-helper.service';
6
+ import { UserCustomizationService } from '../../services/user-customization.service';
7
+ import type { ColumnCustomizationUrlConfig } from '../../interfaces/url-config.type';
8
+ import * as i0 from "@angular/core";
9
+ export declare class CreateColumnsTemplateComponent {
10
+ dialogRef: MatDialogRef<CreateColumnsTemplateComponent>;
11
+ private helper;
12
+ private snackBar;
13
+ private userCustomizationService;
14
+ data: any;
15
+ loading: boolean;
16
+ updatingTemplate: boolean;
17
+ savingTemplate: boolean;
18
+ columns: any;
19
+ displayedColumns: any;
20
+ listComponentColumns: any;
21
+ listComponentColumnsTemplateDetail: any;
22
+ form: FormGroup;
23
+ userId: number;
24
+ translationReadKey: string;
25
+ customColumns: any;
26
+ t: any;
27
+ columnCustomizationUrlConfig: ColumnCustomizationUrlConfig;
28
+ constructor(dialogRef: MatDialogRef<CreateColumnsTemplateComponent>, helper: AngularHelperService, snackBar: MatSnackBar, userCustomizationService: UserCustomizationService, data: any);
29
+ ngOnInit(): void;
30
+ ngAfterViewInit(): void;
31
+ createForm(): void;
32
+ get name(): FormControl;
33
+ get listComponentColumnsTemplateName(): any;
34
+ get orgDisplayColumns(): any;
35
+ drop(event: CdkDragDrop<string[]>): void;
36
+ onSubmit(): void;
37
+ acceptTemplateNameAndSave(): void;
38
+ onChangeColumnStatus(status: boolean, data: any): void;
39
+ onClose(data?: any): void;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<CreateColumnsTemplateComponent, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<CreateColumnsTemplateComponent, "angular-create-columns-template", never, {}, {}, never, never, false, never>;
42
+ }
@@ -0,0 +1,18 @@
1
+ import { CollectionViewer, DataSource } from '@angular/cdk/collections';
2
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
3
+ import { ApiService } from '../services/api.service';
4
+ export declare class ApiDataSource implements DataSource<any> {
5
+ private apiService;
6
+ private apiSubs;
7
+ apiSubject: BehaviorSubject<any[]>;
8
+ extraDataSubject: BehaviorSubject<any>;
9
+ private loadingSubject;
10
+ loading$: Observable<boolean>;
11
+ totalDataLength: BehaviorSubject<number | null>;
12
+ totalDataLength$: Observable<number | null>;
13
+ constructor(apiService: ApiService);
14
+ connect(collectionViewer: CollectionViewer): Observable<any[]>;
15
+ disconnect(collectionViewer: CollectionViewer): void;
16
+ load(url: string, pageIndex: number, pageSize: number, search: string, filter?: object, sortFilter?: object): void;
17
+ loadWithCancellation(url: string, pageIndex: number, pageSize: number, search: string, filter?: object, sortFilter?: object, cancelSubject?: Subject<void>): void;
18
+ }
@@ -0,0 +1,11 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ScrollingDirective {
4
+ private el;
5
+ constructor(el: ElementRef);
6
+ angularSmartDataTableScrolling: boolean;
7
+ onMouseLeave(): void;
8
+ onMousemove(event: MouseEvent): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScrollingDirective, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ScrollingDirective, "[angularSmartDataTableScrolling]", never, { "angularSmartDataTableScrolling": { "alias": "angularSmartDataTableScrolling"; "required": false; }; }, {}, never, never, false, never>;
11
+ }
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Centralized collection management utility helper for common array and object operations.
3
+ * Provides reusable functions for managing collections, selections, and data structures.
4
+ */
5
+ export declare class CollectionHelper {
6
+ /**
7
+ * Safely clears an array if it exists
8
+ * @param array - Array to clear
9
+ */
10
+ static clearArray(array: any[]): void;
11
+ /**
12
+ * Safely clears a Set if it exists
13
+ * @param set - Set to clear
14
+ */
15
+ static clearSet(set: Set<any>): void;
16
+ /**
17
+ * Safely clears a Map if it exists
18
+ * @param map - Map to clear
19
+ */
20
+ static clearMap(map: Map<any, any>): void;
21
+ /**
22
+ * Gets a consistent identifier for a row based on available keys
23
+ * @param row - Row object
24
+ * @param primaryKey - Primary key property name (default: 'id')
25
+ * @param fallbackKey - Fallback key property name
26
+ * @returns Row identifier or JSON string as last resort
27
+ */
28
+ static getRowIdentifier(row: any, primaryKey?: string, fallbackKey?: string): string | number;
29
+ /**
30
+ * Creates a hash from an array of objects for cache validation
31
+ * @param items - Array of items to hash
32
+ * @param keyExtractor - Function to extract key from each item
33
+ * @returns Hash string
34
+ */
35
+ static createArrayHash<T>(items: T[], keyExtractor: (item: T) => string): string;
36
+ /**
37
+ * Safely filters an array with predicate function
38
+ * @param array - Array to filter
39
+ * @param predicate - Filter predicate function
40
+ * @returns Filtered array or empty array if input is invalid
41
+ */
42
+ static safeFilter<T>(array: T[], predicate: (item: T) => boolean): T[];
43
+ /**
44
+ * Safely maps an array with transform function
45
+ * @param array - Array to map
46
+ * @param transform - Transform function
47
+ * @returns Mapped array or empty array if input is invalid
48
+ */
49
+ static safeMap<T, U>(array: T[], transform: (item: T) => U): U[];
50
+ /**
51
+ * Safely finds an item in array
52
+ * @param array - Array to search
53
+ * @param predicate - Find predicate function
54
+ * @returns Found item or undefined
55
+ */
56
+ static safeFind<T>(array: T[], predicate: (item: T) => boolean): T | undefined;
57
+ /**
58
+ * Creates a Map from an array for O(1) lookups
59
+ * @param array - Array to convert
60
+ * @param keyExtractor - Function to extract key from each item
61
+ * @returns Map with keys and items
62
+ */
63
+ static createLookupMap<T>(array: T[], keyExtractor: (item: T) => string): Map<string, T>;
64
+ /**
65
+ * Checks if two arrays have the same items (order doesn't matter)
66
+ * @param array1 - First array
67
+ * @param array2 - Second array
68
+ * @param keyExtractor - Function to extract comparison key
69
+ * @returns True if arrays contain same items
70
+ */
71
+ static arraysEqual<T>(array1: T[], array2: T[], keyExtractor?: (item: T) => any): boolean;
72
+ /**
73
+ * Safely removes items from a Set based on a predicate
74
+ * @param set - Set to modify
75
+ * @param predicate - Function to determine if item should be removed
76
+ */
77
+ static removeFromSet<T>(set: Set<T>, predicate: (item: T) => boolean): void;
78
+ /**
79
+ * Safely clones an array to prevent mutation issues
80
+ * @param array - Array to clone
81
+ * @returns Cloned array or empty array if input is invalid
82
+ */
83
+ static cloneArray<T>(array: T[]): T[];
84
+ /**
85
+ * Performs safe property access with default value
86
+ * @param obj - Object to access
87
+ * @param path - Property path (e.g., 'user.profile.name')
88
+ * @param defaultValue - Default value if property doesn't exist
89
+ * @returns Property value or default
90
+ */
91
+ static getNestedProperty(obj: any, path: string, defaultValue?: any): any;
92
+ }
@@ -0,0 +1,39 @@
1
+ import { DateTime } from 'luxon';
2
+ /**
3
+ * Centralized date/time utility helper for consistent date handling across the library.
4
+ * Provides common date formatting and conversion functions to avoid code duplication.
5
+ */
6
+ export declare class DateTimeHelper {
7
+ /**
8
+ * Formats a date value for display based on form control type
9
+ * @param value - The date value (Date, DateTime, string, number)
10
+ * @param formControlType - The type of form control ('date', 'date-time', etc.)
11
+ * @returns Formatted date string
12
+ */
13
+ static formatForDisplay(value: any, formControlType: string): string;
14
+ /**
15
+ * Converts various date formats to DateTime object
16
+ * @param value - Date value in various formats
17
+ * @returns DateTime object or null if invalid
18
+ */
19
+ static toDateTime(value: any): DateTime | null;
20
+ /**
21
+ * Converts date/DateTime objects to milliseconds for API calls
22
+ * @param value - Date value
23
+ * @returns Milliseconds or original value if not a date
24
+ */
25
+ static toMilliseconds(value: any): any;
26
+ /**
27
+ * Checks if a query parameter key represents a date field
28
+ * @param key - Query parameter key
29
+ * @param value - Query parameter value
30
+ * @returns True if it's a date field
31
+ */
32
+ static isDateQueryParam(key: string, value: string): boolean;
33
+ /**
34
+ * Parses date from query parameters
35
+ * @param value - Query parameter value (milliseconds as string)
36
+ * @returns DateTime object
37
+ */
38
+ static parseFromQueryParam(value: string): DateTime;
39
+ }
@@ -0,0 +1,51 @@
1
+ import type { SelectedFilterDisplayValueType, SelectedFiltersGroupedValuesType, SelectedFilterDisplayValuesType } from '../interfaces';
2
+ /**
3
+ * Centralized filter display utility helper for managing filter value formatting and grouping.
4
+ * Handles the complex logic of grouping and displaying filter values in a consistent manner.
5
+ */
6
+ export declare class FilterDisplayHelper {
7
+ /**
8
+ * Formats filter values based on form control type for display
9
+ * @param items - Array of filter display values
10
+ * @returns Processed array with formatted display values
11
+ */
12
+ static formatFilterValuesForDisplay(items: SelectedFilterDisplayValueType[]): SelectedFilterDisplayValueType[];
13
+ /**
14
+ * Groups filter values by form control attributes
15
+ * @param data - Array of filter display values
16
+ * @returns Grouped filter values
17
+ */
18
+ static groupByFormControlAttributes(data: SelectedFilterDisplayValueType[]): SelectedFiltersGroupedValuesType[];
19
+ /**
20
+ * Determines if a form control should only have single values
21
+ * @param formControlType - Type of form control
22
+ * @param explicitSingleValue - Explicit single value flag
23
+ * @returns True if single value control
24
+ */
25
+ static isSingleValueFormControl(formControlType: string, explicitSingleValue?: boolean): boolean;
26
+ /**
27
+ * Updates selected filter values by replacing values for a specific form control
28
+ * @param currentValues - Current selected filter values
29
+ * @param newValues - New values to add/update
30
+ * @param formControlName - Name of the form control being updated
31
+ * @returns Updated filter values and grouped values
32
+ */
33
+ static updateSelectedFilterValues(currentValues: SelectedFilterDisplayValuesType, newValues: SelectedFilterDisplayValueType | SelectedFilterDisplayValuesType, formControlName?: string): {
34
+ selectedFilterValues: SelectedFilterDisplayValuesType;
35
+ selectedFilterGroupedValues: SelectedFiltersGroupedValuesType[];
36
+ };
37
+ /**
38
+ * Filters selected values to only show those present in query parameters
39
+ * @param selectedValues - All selected filter values
40
+ * @param queryParams - Current query parameters
41
+ * @returns Filtered values for display
42
+ */
43
+ static getValuesForDisplay(selectedValues: SelectedFilterDisplayValuesType, queryParams: any): SelectedFilterDisplayValuesType;
44
+ /**
45
+ * Removes a specific filter value from the collection
46
+ * @param selectedValues - Current selected filter values
47
+ * @param filterToRemove - Filter value to remove
48
+ * @returns Updated filter values
49
+ */
50
+ static removeFilterValue(selectedValues: SelectedFilterDisplayValuesType, filterToRemove: SelectedFilterDisplayValueType): SelectedFilterDisplayValuesType;
51
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Centralized query parameter utility helper for consistent URL parameter handling.
3
+ * Provides common functions for parsing, validating, and transforming query parameters.
4
+ */
5
+ export declare class QueryParamsHelper {
6
+ /**
7
+ * Parses query parameters from URL and handles type conversions
8
+ * @param url - Full URL string
9
+ * @returns Parsed query parameters object
10
+ */
11
+ static parseQueryParams(url: string): Record<string, string | string[]>;
12
+ /**
13
+ * Checks if a query parameter value is valid (not empty, null, or undefined)
14
+ * @param value - Query parameter value
15
+ * @returns True if valid
16
+ */
17
+ static isValidParam(value: any): boolean;
18
+ /**
19
+ * Processes a query parameter value and handles arrays
20
+ * @param value - Raw query parameter value
21
+ * @returns Processed value (string or array)
22
+ */
23
+ static processParamValue(value: string): string | string[];
24
+ /**
25
+ * Processes query parameters for filter form with type conversions
26
+ * @param queryParams - Raw query parameters
27
+ * @param columnsCodeMapping - Column mapping for transformations
28
+ * @returns Processed filter and sort objects
29
+ */
30
+ static processForFilters(queryParams: any, columnsCodeMapping: any[]): {
31
+ filterParams: any;
32
+ sortParams: any;
33
+ pageIndex: number;
34
+ pageSize: number;
35
+ search: string;
36
+ };
37
+ /**
38
+ * Builds query string from filter data with proper encoding
39
+ * @param filterData - Filter form data
40
+ * @param sortParams - Sort parameters
41
+ * @param pageIndex - Current page index
42
+ * @param pageSize - Current page size
43
+ * @param search - Search term
44
+ * @returns URLSearchParams object
45
+ */
46
+ static buildQueryString(filterData: any, sortParams: any, pageIndex: number, pageSize: number, search: string): URLSearchParams;
47
+ }
@@ -0,0 +1,3 @@
1
+ export declare const setToLocalStorageWithExpiry: (key: string, value: any, ttl?: number) => void;
2
+ export declare const getFromLocalStorageWithExpiry: (key: string) => any;
3
+ export declare const removeMultipleKeys: (keys: string[]) => void;