@den4ik92/ng2-smart-table 19.6.47 → 20.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 (52) hide show
  1. package/fesm2022/den4ik92-ng2-smart-table.mjs +253 -253
  2. package/fesm2022/den4ik92-ng2-smart-table.mjs.map +1 -1
  3. package/index.d.ts +626 -5
  4. package/package.json +5 -5
  5. package/lib/components/cell/cell-edit-mode/build-in-editor.component.d.ts +0 -8
  6. package/lib/components/cell/cell-edit-mode/custom-edit.component.d.ts +0 -11
  7. package/lib/components/cell/cell-edit-mode/edit-cell.component.d.ts +0 -9
  8. package/lib/components/cell/cell-editors/base-editor.component.d.ts +0 -12
  9. package/lib/components/cell/cell-editors/checkbox-editor.component.d.ts +0 -11
  10. package/lib/components/cell/cell-editors/input-editor.component.d.ts +0 -6
  11. package/lib/components/cell/cell-editors/select-editor.component.d.ts +0 -6
  12. package/lib/components/cell/cell-editors/textarea-editor.component.d.ts +0 -6
  13. package/lib/components/cell/cell-view-mode/custom-view.component.d.ts +0 -11
  14. package/lib/components/cell/cell-view-mode/view-cell.component.d.ts +0 -7
  15. package/lib/components/cell/cell.component.d.ts +0 -8
  16. package/lib/components/filter/build-in-filter.component.d.ts +0 -12
  17. package/lib/components/filter/custom-filter.component.d.ts +0 -16
  18. package/lib/components/filter/filter-types/base-filter.component.d.ts +0 -32
  19. package/lib/components/filter/filter-types/checkbox-filter.component.d.ts +0 -11
  20. package/lib/components/filter/filter-types/input-filter.component.d.ts +0 -6
  21. package/lib/components/filter/filter-types/select-filter.component.d.ts +0 -12
  22. package/lib/components/filter/filter.component.d.ts +0 -12
  23. package/lib/components/pager/pager.component.d.ts +0 -24
  24. package/lib/components/table-columns-editor/column-editor.directive.d.ts +0 -19
  25. package/lib/components/table-columns-editor/table-columns-editor.component.d.ts +0 -19
  26. package/lib/components/tbody/create-cancel/create-cancel.component.d.ts +0 -13
  27. package/lib/components/tbody/row-actions/row-actions.component.d.ts +0 -23
  28. package/lib/components/tbody/tbody.component.d.ts +0 -25
  29. package/lib/components/tbody/trow/trow.component.d.ts +0 -23
  30. package/lib/components/thead/cells/actions-title.component.d.ts +0 -8
  31. package/lib/components/thead/cells/add-button.component.d.ts +0 -11
  32. package/lib/components/thead/cells/checkbox-select-all.component.d.ts +0 -7
  33. package/lib/components/thead/cells/title/title.component.d.ts +0 -13
  34. package/lib/components/thead/mobile-filters/mobile-filters.component.d.ts +0 -21
  35. package/lib/components/thead/rows/thead-filters-row.component.d.ts +0 -12
  36. package/lib/components/thead/rows/thead-titles-row.component.d.ts +0 -12
  37. package/lib/components/thead/thead.component.d.ts +0 -26
  38. package/lib/lib/data-set/cell.d.ts +0 -17
  39. package/lib/lib/data-set/column.d.ts +0 -30
  40. package/lib/lib/data-set/data-set.d.ts +0 -39
  41. package/lib/lib/data-set/row.d.ts +0 -18
  42. package/lib/lib/data-source/data-source.d.ts +0 -37
  43. package/lib/lib/data-source/local/local.data-source.d.ts +0 -17
  44. package/lib/lib/data-source/local/local.filter.d.ts +0 -2
  45. package/lib/lib/data-source/local/local.pager.d.ts +0 -1
  46. package/lib/lib/data-source/local/local.sorter.d.ts +0 -3
  47. package/lib/lib/data-source/server/server.data-source.d.ts +0 -24
  48. package/lib/lib/grid.d.ts +0 -45
  49. package/lib/lib/helpers.d.ts +0 -25
  50. package/lib/lib/interfaces/smart-table.models.d.ts +0 -266
  51. package/lib/ng2-smart-table.component.d.ts +0 -91
  52. package/public-api.d.ts +0 -12
package/index.d.ts CHANGED
@@ -1,5 +1,626 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@den4ik92/ng2-smart-table" />
5
- export * from './public-api';
1
+ import * as _angular_core from '@angular/core';
2
+ import { Signal, InputSignal, OutputEmitterRef, OnDestroy, OnInit, EventEmitter, OnChanges, AfterViewInit, ViewContainerRef, TemplateRef, SimpleChange } from '@angular/core';
3
+ import { ComponentType } from '@angular/cdk/portal';
4
+ import { Subject, Observable, Subscription } from 'rxjs';
5
+ import { UntypedFormControl } from '@angular/forms';
6
+ import { OverlayRef } from '@angular/cdk/overlay';
7
+ import { HttpParams } from '@angular/common/http';
8
+
9
+ declare abstract class DataSource<T extends BaseDataType = any> {
10
+ protected readonly onChangedSource: Subject<SmartTableOnChangedEvent>;
11
+ protected readonly sortConf: _angular_core.WritableSignal<SmartTableSortItem | null>;
12
+ protected readonly filters: _angular_core.WritableSignal<SmartTableFilterItem[]>;
13
+ readonly pagingConf: _angular_core.WritableSignal<SmartTablePagerSettings>;
14
+ protected readonly data: _angular_core.WritableSignal<T[]>;
15
+ /**
16
+ * return all elements
17
+ */
18
+ abstract getAll(): Promise<T[]>;
19
+ abstract count(): number;
20
+ readonly getSort: Signal<SmartTableSortItem | null>;
21
+ readonly getFilters: Signal<SmartTableFilterItem[]>;
22
+ refresh(): void;
23
+ columnRefresh(): void;
24
+ onChanged(): Observable<SmartTableOnChangedEvent>;
25
+ prepend(element: T): Promise<true>;
26
+ appendMany(elements: T[]): Promise<true>;
27
+ add(element: T): Promise<true>;
28
+ remove(element: T): Promise<true>;
29
+ update(oldItem: T, newItem: T): Promise<true>;
30
+ empty(): Promise<true>;
31
+ setSort(conf: SmartTableSortItem | null, doEmit?: boolean): void;
32
+ addFilter(newFilter: SmartTableFilterItem, doEmit?: boolean): Promise<void>;
33
+ setFilters(newFilters: SmartTableFilterItem[], doEmit?: boolean): void;
34
+ setPaging(page: number | undefined, perPage: number, doEmit?: boolean): void;
35
+ setPage(page: number, doEmit?: boolean): void;
36
+ emitOnChanged(eventData: SmartTableOnChangedEventToEmit, newElements?: T[]): void;
37
+ /**
38
+ * @param difference number to plus total
39
+ * @example -2 or 2
40
+ */
41
+ private updateTotal;
42
+ }
43
+
44
+ declare class Deferred<T> {
45
+ promise: Promise<T>;
46
+ resolve: (value?: T) => void;
47
+ reject: (reason?: string) => void;
48
+ constructor();
49
+ }
50
+
51
+ interface SelectOption {
52
+ title: string;
53
+ value: any;
54
+ }
55
+ type BaseDataType = Record<string, any>;
56
+ interface ViewCell<V = any, R extends BaseDataType = BaseDataType> {
57
+ value: InputSignal<V>;
58
+ rowData: InputSignal<R>;
59
+ }
60
+ type ActionPosition = 'left' | 'right';
61
+ interface ColumnPositionState {
62
+ key: string;
63
+ title: string;
64
+ hide: boolean;
65
+ moveDisabled: boolean;
66
+ }
67
+ interface SmartTableSettings<T extends BaseDataType = any> {
68
+ selectMode?: 'single' | 'multi';
69
+ mode?: 'inline' | 'external';
70
+ resetSortOnThirdClick?: boolean;
71
+ columnSort?: {
72
+ /**
73
+ * @description save table columns state in local storage and use it after init
74
+ */
75
+ stateStorageKey?: string;
76
+ /**
77
+ * @description delay to start move column card
78
+ * @default 0
79
+ */
80
+ dragDelay?: number;
81
+ active: boolean;
82
+ };
83
+ hideHeader?: boolean;
84
+ hideSubHeader?: boolean;
85
+ /**
86
+ * @description Breakpoint for mobile table width in pixels if table width is less than this value, table will be displayed in mobile mode
87
+ * @example 768
88
+ */
89
+ tableWidthMobileBreakpoint?: number;
90
+ actions?: SmartTableAction<T> | false;
91
+ actionsPosition?: ActionPosition;
92
+ filter?: {
93
+ inputClass: string;
94
+ };
95
+ edit?: {
96
+ inputClass?: string;
97
+ editButtonContent?: string;
98
+ saveButtonContent?: string;
99
+ cancelButtonContent?: string;
100
+ confirmSave?: boolean;
101
+ hasPermissionFunction?: (row: T) => boolean;
102
+ } | false;
103
+ add?: {
104
+ inputClass?: string;
105
+ addButtonContent?: string;
106
+ createButtonContent?: string;
107
+ cancelButtonContent?: string;
108
+ confirmCreate?: boolean;
109
+ } | false;
110
+ delete?: {
111
+ deleteButtonContent?: string;
112
+ confirmDelete?: boolean;
113
+ hasPermissionFunction?: (row: T) => boolean;
114
+ } | false;
115
+ attr?: {
116
+ id?: string;
117
+ class?: string;
118
+ };
119
+ noDataMessage?: string;
120
+ columns: SmartTableColumnSettings<T>[];
121
+ pager?: Omit<SmartTablePagerSettings, 'total' | 'page'> | false;
122
+ rowClassFunction?: (rowData: T) => string;
123
+ }
124
+ interface SmartTableAction<T extends BaseDataType = any> {
125
+ columnTitle?: string;
126
+ add?: boolean;
127
+ edit?: boolean;
128
+ delete?: boolean;
129
+ custom?: SmartTableCustomAction<T>[];
130
+ }
131
+ interface SmartTableCustomAction<T extends BaseDataType = any> {
132
+ name: string;
133
+ title: string;
134
+ hasPermissionFunction?: (row: T) => boolean;
135
+ }
136
+ type SmartTableColumnSettingsTypes = 'text' | 'html' | 'custom';
137
+ type SmartTableColumnSettings<T extends BaseDataType = any> = SmartTableTextHtmlColumn<T> | SmartTableCustomColumn<T>;
138
+ type SmartTableCompareFunction = (direction: number, a: any, b: any) => number;
139
+ type SmartTableValuePrepareFunction<T extends BaseDataType = any> = (columnData: any, rowData: T, cell: Cell) => any;
140
+ type SmartTableFilterFunction = (columnData: any, search: string) => boolean;
141
+ interface SmartTableDefaultColumn<T extends BaseDataType> {
142
+ key: keyof T;
143
+ title: string;
144
+ style?: Partial<CSSStyleDeclaration>;
145
+ width?: string;
146
+ class?: string;
147
+ editable?: boolean;
148
+ hide?: boolean;
149
+ moveDisabled?: boolean;
150
+ sort?: boolean;
151
+ addable?: boolean;
152
+ sortDirection?: SmartTableSortDirection | false;
153
+ editor?: SmartTableEditorAndFilter;
154
+ filter?: SmartTableEditorAndFilter | false;
155
+ compareFunction?: SmartTableCompareFunction;
156
+ valuePrepareFunction?: SmartTableValuePrepareFunction<T>;
157
+ filterFunction?: SmartTableFilterFunction;
158
+ }
159
+ interface SmartTableTextHtmlColumn<T extends BaseDataType> extends SmartTableDefaultColumn<T> {
160
+ type: 'text' | 'html';
161
+ }
162
+ interface SmartTableCustomColumn<T extends BaseDataType> extends SmartTableDefaultColumn<T> {
163
+ type: 'custom';
164
+ renderComponent: ComponentType<any>;
165
+ /**
166
+ * @description you can set any component inputs.
167
+ * inputs value is not updated when changed. set once onInit.
168
+ * make sure to set the correct input name to prevent setInput error
169
+ */
170
+ inputs?: Record<string, any>;
171
+ }
172
+ type SmartTableEditorAndFilterTypes = 'text' | 'textarea' | 'list' | 'custom' | 'checkbox';
173
+ type SmartTableEditorAndFilter = SmartTableTextEditor | SmartTableEditorList | SmartTableEditorCheckbox | SmartTableEditorCustom;
174
+ interface SmartTableTextEditor {
175
+ type: 'text' | 'textarea';
176
+ config?: {
177
+ placeholder?: string;
178
+ } & Record<string, any>;
179
+ }
180
+ interface SmartTableEditorList {
181
+ type: 'list';
182
+ config: {
183
+ placeholder?: string;
184
+ selectText?: string;
185
+ list: SelectOption[];
186
+ } & Record<string, any>;
187
+ }
188
+ interface SmartTableEditorCheckbox {
189
+ type: 'checkbox';
190
+ config?: {
191
+ true: any;
192
+ false: any;
193
+ resetText?: string;
194
+ } & Record<string, any>;
195
+ }
196
+ interface SmartTableEditorCustom {
197
+ type: 'custom';
198
+ component: ComponentType<any>;
199
+ config?: {
200
+ placeholder?: string;
201
+ /**
202
+ * @description you can set any component inputs.
203
+ * inputs value is not updated when changed. set once onInit.
204
+ * make sure to set the correct input name to prevent setInput error
205
+ */
206
+ inputs?: Record<string, any>;
207
+ } & Record<string, any>;
208
+ }
209
+ interface SmartTablePagerSettings {
210
+ display: boolean;
211
+ nextButtonText?: string;
212
+ previewButtonText?: string;
213
+ showTotal?: boolean;
214
+ page: number;
215
+ perPage: number;
216
+ perPageSelect?: number[];
217
+ total: number;
218
+ }
219
+ interface SmartTableFilterItem {
220
+ /**
221
+ * key of column to filter
222
+ */
223
+ type: SmartTableEditorAndFilterTypes;
224
+ field: string;
225
+ search: string;
226
+ filter?: SmartTableFilterFunction;
227
+ }
228
+ type SmartTableSortDirection = 'asc' | 'desc';
229
+ interface SmartTableSortItem {
230
+ field: string;
231
+ title: string;
232
+ direction: SmartTableSortDirection;
233
+ compare?: SmartTableCompareFunction;
234
+ }
235
+ interface SmartTableDefaultEvent<T extends BaseDataType = any> {
236
+ confirm: Deferred<T>;
237
+ data: T;
238
+ source: DataSource<T>;
239
+ }
240
+ type SmartTableConfirmDeleteEvent<T extends BaseDataType = any> = SmartTableDefaultEvent<T>;
241
+ type SmartTableRowClickedEvent<T extends BaseDataType = any> = Omit<SmartTableDefaultEvent<T>, 'confirm'>;
242
+ interface SmartTableCustomEvent<T extends BaseDataType = any> extends Omit<SmartTableDefaultEvent<T>, 'confirm'> {
243
+ action: string;
244
+ }
245
+ interface SmartTableRowSelectEvent<T extends BaseDataType = any> extends Omit<SmartTableDefaultEvent<T>, 'confirm'> {
246
+ isSelected: boolean;
247
+ selected: T[];
248
+ }
249
+ interface SmartTableConfirmEditEvent<T extends BaseDataType = any, N = T> extends SmartTableDefaultEvent<T> {
250
+ newData: N;
251
+ }
252
+ interface SmartTableCreateConfirm<T extends BaseDataType = any> extends Omit<SmartTableDefaultEvent<T>, 'data'> {
253
+ newData: T;
254
+ }
255
+ declare enum SmartTableOnChangedEventName {
256
+ 'load' = "load",
257
+ 'paging' = "paging",
258
+ 'update' = "update",
259
+ 'page' = "page",
260
+ 'filter' = "filter",
261
+ 'empty' = "empty",
262
+ 'sort' = "sort",
263
+ 'add' = "add",
264
+ 'remove' = "remove",
265
+ 'appendMany' = "appendMany",
266
+ 'prepend' = "prepend",
267
+ 'refresh' = "refresh",
268
+ 'columnRefresh' = "columnRefresh"
269
+ }
270
+ type SmartTableOnChangedEventType = `${SmartTableOnChangedEventName}`;
271
+ interface SmartTableOnChangedEventBase<T extends BaseDataType = any> {
272
+ elements: T[];
273
+ filters: SmartTableFilterItem[];
274
+ paging: SmartTablePagerSettings;
275
+ sort: SmartTableSortItem | null;
276
+ }
277
+ interface SmartTableOnChangedEventAll {
278
+ action: Exclude<SmartTableOnChangedEventType, 'remove' | 'update' | 'append' | 'prepend' | 'appendMany' | 'add'>;
279
+ }
280
+ interface SmartTableAddEvent<T extends BaseDataType = any> {
281
+ action: SmartTableOnChangedEventName.add | SmartTableOnChangedEventName.prepend | SmartTableOnChangedEventName.appendMany;
282
+ newItems: T[];
283
+ }
284
+ interface SmartTableUpdateEvent<T extends BaseDataType = any> {
285
+ action: SmartTableOnChangedEventName.update;
286
+ newItem: T;
287
+ oldItem: T;
288
+ }
289
+ interface SmartTableRemoveEvent<T extends BaseDataType = any> {
290
+ action: SmartTableOnChangedEventName.remove;
291
+ item: T;
292
+ }
293
+ type SmartTableOnChangedEventToEmit<T extends BaseDataType = any> = SmartTableAddEvent<T> | SmartTableUpdateEvent<T> | SmartTableRemoveEvent<T> | SmartTableOnChangedEventAll;
294
+ type SmartTableOnChangedEvent<T extends BaseDataType = any> = SmartTableOnChangedEventToEmit<T> & SmartTableOnChangedEventBase<T>;
295
+ interface SmartTableConfirmEvent<T extends BaseDataType = any> {
296
+ confirm: {
297
+ resolve: (data?: T) => void;
298
+ reject: () => void;
299
+ };
300
+ data: T;
301
+ source: DataSource<T>;
302
+ }
303
+ interface SmartTableBaseEvent<T extends BaseDataType = any> {
304
+ data: T | null;
305
+ source: DataSource<T>;
306
+ }
307
+ type SmartTableCreateEvent<T extends BaseDataType = any> = SmartTableBaseEvent<T>;
308
+ type SmartTableEditEvent<T extends BaseDataType = any> = SmartTableBaseEvent<T>;
309
+ type SmartTableDeleteEvent<T extends BaseDataType = any> = SmartTableConfirmEvent<T>;
310
+ type SmartTableEditCancelEvent<T extends BaseDataType = any> = SmartTableBaseEvent<T>;
311
+
312
+ declare class Row {
313
+ index: number;
314
+ protected rowDataObj: any;
315
+ protected columnsList: Column[];
316
+ readonly pending: _angular_core.WritableSignal<boolean>;
317
+ readonly isSelected: _angular_core.WritableSignal<boolean>;
318
+ readonly isInEditing: _angular_core.WritableSignal<boolean>;
319
+ readonly cells: _angular_core.Signal<Cell[]>;
320
+ readonly rowData: _angular_core.WritableSignal<any>;
321
+ readonly columns: _angular_core.WritableSignal<Column[]>;
322
+ readonly visibleCells: _angular_core.Signal<Cell[]>;
323
+ constructor(index: number, rowDataObj: any, columnsList: Column[]);
324
+ getNewData(): any;
325
+ setData<T = any>(rowData: T): void;
326
+ createCell(column: Column, rowData: any): Cell;
327
+ }
328
+
329
+ declare class DataSet {
330
+ protected columnSettings: SmartTableColumnSettings[];
331
+ readonly editorInputClass: string;
332
+ newRow: Row;
333
+ protected readonly data: _angular_core.WritableSignal<any[]>;
334
+ protected readonly columns: _angular_core.WritableSignal<Column[]>;
335
+ protected readonly rows: _angular_core.WritableSignal<Row[]>;
336
+ protected selectedRowsData: any[];
337
+ readonly getColumns: _angular_core.Signal<Column[]>;
338
+ readonly getVisibleColumns: _angular_core.Signal<Column[]>;
339
+ readonly getRows: _angular_core.Signal<Row[]>;
340
+ readonly isAllSelected: _angular_core.Signal<boolean>;
341
+ constructor(dataList: any[] | undefined, columnSettings: SmartTableColumnSettings[], editorInputClass: string);
342
+ setData(data: any[]): void;
343
+ setColumnsConfig(columnSettings: SmartTableColumnSettings[]): void;
344
+ findRowByData(data: any): Row | undefined;
345
+ setSelectAll(state: boolean): void;
346
+ resetAllSelection(): void;
347
+ selectRow(row: Row, state: boolean): void;
348
+ multipleSelectRow(row: Row): Row;
349
+ getSelectedRowsData(): any[];
350
+ createNewRow(): void;
351
+ /**
352
+ * Create columns by mapping from the settings
353
+ * @param settings
354
+ * @private
355
+ */
356
+ createColumns(columnsParams: SmartTableColumnSettings[]): void;
357
+ /**
358
+ * Create rows based on current data prepared in data source
359
+ * @private
360
+ */
361
+ createRows(): void;
362
+ private isSelectedHasRow;
363
+ private storeSelectedRow;
364
+ }
365
+
366
+ declare class Column {
367
+ id: string;
368
+ private settings;
369
+ protected dataSet: DataSet;
370
+ readonly title: string;
371
+ readonly type: SmartTableColumnSettingsTypes;
372
+ readonly class: string;
373
+ readonly styles: Partial<CSSStyleDeclaration>;
374
+ readonly editorInputClass: string;
375
+ hide: boolean;
376
+ isSortable: boolean;
377
+ isEditable: boolean;
378
+ isAddable: boolean;
379
+ isFilterable: boolean;
380
+ editor: SmartTableEditorAndFilter | false;
381
+ filter: SmartTableEditorAndFilter | false;
382
+ renderComponent?: ComponentType<any>;
383
+ renderComponentInputs: Record<string, any>;
384
+ compareFunction?: SmartTableCompareFunction;
385
+ valuePrepareFunction?: SmartTableValuePrepareFunction;
386
+ filterFunction?: SmartTableFilterFunction;
387
+ constructor(id: string, settings: SmartTableColumnSettings, dataSet: DataSet);
388
+ getEditorConfig(): SmartTableEditorAndFilter['config'] | undefined;
389
+ getFilterType(): false | "text" | "custom" | "textarea" | "list" | "checkbox";
390
+ getFilterConfig(): SmartTableEditorAndFilter['config'] | undefined;
391
+ }
392
+
393
+ declare class Cell {
394
+ protected value: any;
395
+ row: Row;
396
+ column: Column;
397
+ readonly newValue: _angular_core.WritableSignal<any>;
398
+ readonly columnClass: string;
399
+ readonly styles: Partial<CSSStyleDeclaration>;
400
+ readonly title: string;
401
+ readonly id: string;
402
+ constructor(value: any, row: Row, column: Column);
403
+ getValue(): any;
404
+ getNotPrepareValue(): any;
405
+ setNewValue(value: any): void;
406
+ isEditable(): boolean;
407
+ }
408
+
409
+ declare class BaseEditorComponent implements Editor {
410
+ readonly cell: InputSignal<Cell>;
411
+ readonly inputClass: _angular_core.Signal<string>;
412
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseEditorComponent, never>;
413
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseEditorComponent, "ng2-editor-base-component", never, { "cell": { "alias": "cell"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
414
+ }
415
+ interface Editor {
416
+ cell: InputSignal<Cell>;
417
+ }
418
+
419
+ declare class BaseFilterComponent implements FilterComponent, OnDestroy, OnInit {
420
+ delay: number;
421
+ changesSubscription?: Subscription;
422
+ readonly query: InputSignal<unknown>;
423
+ readonly inputClass: InputSignal<string>;
424
+ readonly source: InputSignal<DataSource<any>>;
425
+ readonly column: InputSignal<Column>;
426
+ readonly filterEmitter: InputSignal<OutputEmitterRef<any>>;
427
+ readonly inputControl: UntypedFormControl;
428
+ placeholder: string;
429
+ constructor();
430
+ ngOnDestroy(): void;
431
+ ngOnInit(): void;
432
+ setFilter(query: any): void;
433
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseFilterComponent, never>;
434
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseFilterComponent, "ng2-base-filter-component", never, { "query": { "alias": "query"; "required": false; "isSignal": true; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; "source": { "alias": "source"; "required": true; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "filterEmitter": { "alias": "filterEmitter"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
435
+ }
436
+ interface FilterComponent {
437
+ delay?: number;
438
+ changesSubscription?: Subscription;
439
+ readonly query: InputSignal<unknown>;
440
+ readonly inputClass: InputSignal<string>;
441
+ readonly source: InputSignal<DataSource>;
442
+ readonly column: InputSignal<Column>;
443
+ readonly filterEmitter: InputSignal<OutputEmitterRef<any>>;
444
+ }
445
+
446
+ declare class Grid {
447
+ source: DataSource;
448
+ dataSet: DataSet;
449
+ currentColumnsSortState: ColumnPositionState[];
450
+ private columnsSortedEmitter;
451
+ private sourceOnChangedSubscription;
452
+ readonly settings: _angular_core.WritableSignal<SmartTableSettings<any>>;
453
+ readonly createFormShown: _angular_core.WritableSignal<boolean>;
454
+ readonly isMultiSelectVisible: _angular_core.Signal<boolean>;
455
+ readonly isActionsVisible: _angular_core.Signal<boolean>;
456
+ readonly actionIsOnLeft: _angular_core.Signal<boolean>;
457
+ readonly actionIsOnRight: _angular_core.Signal<boolean>;
458
+ readonly columnSortDragDelay: _angular_core.Signal<number>;
459
+ private readonly columnStateStorageKey;
460
+ constructor(source: DataSource | undefined, settings: SmartTableSettings);
461
+ setColumnsSortedEmitter(emitter: OutputEmitterRef<ColumnPositionState[]>): void;
462
+ detach(): void;
463
+ getNewRow(): Row;
464
+ setSettings(settings: SmartTableSettings): void;
465
+ getDataSet(): DataSet;
466
+ getSetting<T>(name: string, defaultValue?: any): T;
467
+ selectRow(row: Row, state: boolean): void;
468
+ multipleSelectRow(row: Row): void;
469
+ edit(row: Row): void;
470
+ create(row: Row, confirmEmitter: EventEmitter<any> | OutputEmitterRef<any>): void;
471
+ save(row: Row, confirmEmitter: EventEmitter<any> | OutputEmitterRef<any>): void;
472
+ delete<T extends BaseDataType = BaseDataType>(row: Row, confirmEmitter: EventEmitter<SmartTableConfirmDeleteEvent<T>> | OutputEmitterRef<SmartTableConfirmDeleteEvent<T>>): void;
473
+ private processDataChange;
474
+ private prepareSource;
475
+ private getInitialSort;
476
+ getSelectedRowsData(): any[];
477
+ selectAllRows(status: boolean): void;
478
+ private updateSettingsAndDataSet;
479
+ private setSource;
480
+ private getSortedTableColumns;
481
+ applyColumnsSortState(state: ColumnPositionState[], emitEvent?: boolean): Promise<void>;
482
+ private setColumnsSortState;
483
+ private getColumnsStateFromSettings;
484
+ private getMergedColumnStates;
485
+ }
486
+
487
+ declare class Ng2SmartTableComponent<T extends BaseDataType = any> implements OnChanges, OnDestroy, AfterViewInit {
488
+ private readonly elementRef;
489
+ private readonly ngZone;
490
+ private readonly injector;
491
+ readonly source: _angular_core.InputSignal<DataSource<T>>;
492
+ readonly settings: _angular_core.InputSignal<SmartTableSettings<T>>;
493
+ /**
494
+ * @description If you want to display pagination in your custom container, you can pass it to "paginationSlot".
495
+ * @example
496
+ * <ng2-smart-table
497
+ * [paginationSlot]="paginationContainerRef()">
498
+ * </ng2-smart-table>
499
+ * <div #paginationSlot>
500
+ * </div>
501
+ * inside component
502
+ * readonly paginationContainerRef = viewChild('paginationSlot', {
503
+ * read: ViewContainerRef,
504
+ * });
505
+ */
506
+ readonly paginationSlot: _angular_core.InputSignal<ViewContainerRef | undefined>;
507
+ /**
508
+ * @description if you want to render custom data inside a container with pagination you can pass a TemplateRef
509
+ * @example
510
+ * <ng2-smart-table
511
+ * [paginationTemplateData]="paginationData"
512
+ * >
513
+ * </ng2-smart-table>
514
+ * <ng-template #paginationData
515
+ * >
516
+ * any data
517
+ * </ng-template>
518
+ * ----- or another option, will work only if you do not use paginationSlot
519
+ * <ng2-smart-table
520
+ * [paginationTemplateData]="paginationData"
521
+ * >
522
+ * <ng-container pager-content>
523
+ * some content will be rendered in the pager
524
+ * </ng-container>
525
+ * </ng2-smart-table>
526
+ */
527
+ readonly paginationTemplateData: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
528
+ readonly multiRowSelect: _angular_core.OutputEmitterRef<SmartTableRowSelectEvent<T>>;
529
+ readonly rowClicked: _angular_core.OutputEmitterRef<SmartTableRowClickedEvent<T>>;
530
+ readonly columnsSorted: _angular_core.OutputEmitterRef<ColumnPositionState[]>;
531
+ readonly deleteEmitter: _angular_core.OutputEmitterRef<SmartTableBaseEvent<T>>;
532
+ readonly deleteConfirm: _angular_core.OutputEmitterRef<SmartTableConfirmDeleteEvent<T>>;
533
+ readonly edit: _angular_core.OutputEmitterRef<SmartTableBaseEvent<T>>;
534
+ readonly editConfirm: _angular_core.OutputEmitterRef<SmartTableConfirmEditEvent<T, T>>;
535
+ readonly editCancel: _angular_core.OutputEmitterRef<SmartTableBaseEvent<T>>;
536
+ readonly create: _angular_core.OutputEmitterRef<SmartTableBaseEvent<T>>;
537
+ readonly createConfirm: _angular_core.OutputEmitterRef<SmartTableCreateConfirm<T>>;
538
+ readonly custom: _angular_core.OutputEmitterRef<SmartTableCustomEvent<T>>;
539
+ protected readonly tableClass: _angular_core.Signal<string>;
540
+ protected readonly tableId: _angular_core.Signal<string>;
541
+ protected readonly isPagerDisplay: _angular_core.Signal<boolean>;
542
+ protected readonly rowClassFunction: _angular_core.Signal<(rowData: T) => string>;
543
+ protected readonly isMobileView: _angular_core.WritableSignal<boolean>;
544
+ protected readonly tableWidthMobileBreakpoint: _angular_core.Signal<number | undefined>;
545
+ grid: Grid;
546
+ private readonly isExternalMode;
547
+ private resizeObserver;
548
+ private resizeDebounceTimer;
549
+ private paginationComponentRef;
550
+ ngOnChanges({ settings }: Record<string, SimpleChange>): void;
551
+ ngAfterViewInit(): void;
552
+ ngOnDestroy(): void;
553
+ protected multipleSelectRow(row: Row): void;
554
+ protected onSelectAllRows(): void;
555
+ protected onSelectRow(row: Row, state: boolean): void;
556
+ protected emitUserRowClicked(row: Row): void;
557
+ protected customActionEmitted(event: SmartTableCustomEvent<T>): void;
558
+ protected editEmitted(row: Row): void;
559
+ protected editConfirmed(row: Row): void;
560
+ protected editCanceled(row: Row): void;
561
+ protected createEmitted(): void;
562
+ protected createConfirmed(): void;
563
+ protected deleEmitted(row: Row): void;
564
+ private initGrid;
565
+ private emitUserSelectRow;
566
+ private setupResizeObserver;
567
+ private destroyResizeObserver;
568
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Ng2SmartTableComponent<any>, never>;
569
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Ng2SmartTableComponent<any>, "ng2-smart-table", never, { "source": { "alias": "source"; "required": true; "isSignal": true; }; "settings": { "alias": "settings"; "required": true; "isSignal": true; }; "paginationSlot": { "alias": "paginationSlot"; "required": false; "isSignal": true; }; "paginationTemplateData": { "alias": "paginationTemplateData"; "required": false; "isSignal": true; }; }, { "multiRowSelect": "multiRowSelect"; "rowClicked": "rowClicked"; "columnsSorted": "columnsSorted"; "deleteEmitter": "deleteEmitter"; "deleteConfirm": "deleteConfirm"; "edit": "edit"; "editConfirm": "editConfirm"; "editCancel": "editCancel"; "create": "create"; "createConfirm": "createConfirm"; "custom": "custom"; }, never, ["[pager-content]"], true, never>;
570
+ }
571
+
572
+ declare class SmartTableColumnEditorDirective implements OnDestroy {
573
+ readonly tableComponent: _angular_core.InputSignal<Ng2SmartTableComponent<any> | undefined>;
574
+ private readonly grid;
575
+ private readonly overlay;
576
+ private readonly elementRef;
577
+ private readonly destroy$;
578
+ protected overlayRef?: OverlayRef;
579
+ ngOnDestroy(): void;
580
+ protected showDropdown(): void;
581
+ hide(): void;
582
+ buttonClicked(): void;
583
+ private getOverlayConfig;
584
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SmartTableColumnEditorDirective, never>;
585
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SmartTableColumnEditorDirective, "[ng2SmartTableColumnEditor]", never, { "tableComponent": { "alias": "tableComponent"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
586
+ }
587
+
588
+ declare class LocalDataSource<T extends Record<string, any> = any> extends DataSource<T> {
589
+ private readonly filteredAndSorted;
590
+ readonly paginatedList: _angular_core.Signal<T[]>;
591
+ readonly count: _angular_core.Signal<number>;
592
+ constructor(data?: T[]);
593
+ load(data: T[]): Promise<true>;
594
+ prepend(element: T): Promise<true>;
595
+ appendMany(elements: T[]): Promise<true>;
596
+ add(element: T): Promise<true>;
597
+ getAll(): Promise<T[]>;
598
+ reset(silent?: boolean): void;
599
+ emitOnChanged(event: SmartTableOnChangedEventToEmit, newElements?: T[]): Promise<void>;
600
+ protected paginate(data: T[]): T[];
601
+ private isPageOutOfBounce;
602
+ }
603
+
604
+ type ParamsPrepareFunction = (options: {
605
+ sort: SmartTableSortItem | null;
606
+ filters: SmartTableFilterItem[];
607
+ page: number;
608
+ limit: number;
609
+ }) => Observable<HttpParams>;
610
+ type RequestFunction<T extends Record<string, any> = any> = (params: HttpParams) => Observable<{
611
+ total: number;
612
+ data: T[];
613
+ }>;
614
+ declare class ServerDataSource<T extends Record<string, any> = any> extends DataSource<T> {
615
+ private initPagingConf?;
616
+ paramPrepareFunction: ParamsPrepareFunction;
617
+ requestFunction: RequestFunction<T>;
618
+ readonly count: _angular_core.Signal<number>;
619
+ readonly pending: _angular_core.WritableSignal<boolean>;
620
+ constructor(paramPrepareFunction: ParamsPrepareFunction, requestFunction: RequestFunction<T>, initPagingConf?: Partial<SmartTablePagerSettings> | undefined);
621
+ getAll(): Promise<T[]>;
622
+ emitOnChanged(eventData: SmartTableOnChangedEventToEmit, newElements?: T[] | undefined): void;
623
+ }
624
+
625
+ export { BaseEditorComponent, BaseFilterComponent, Cell, Column, DataSource, Deferred, LocalDataSource, Ng2SmartTableComponent, Row, ServerDataSource, SmartTableColumnEditorDirective, SmartTableOnChangedEventName };
626
+ export type { ActionPosition, BaseDataType, ColumnPositionState, Editor, FilterComponent, ParamsPrepareFunction, RequestFunction, SmartTableAction, SmartTableBaseEvent, SmartTableColumnSettings, SmartTableColumnSettingsTypes, SmartTableCompareFunction, SmartTableConfirmDeleteEvent, SmartTableConfirmEditEvent, SmartTableConfirmEvent, SmartTableCreateConfirm, SmartTableCreateEvent, SmartTableCustomAction, SmartTableCustomEvent, SmartTableDeleteEvent, SmartTableEditCancelEvent, SmartTableEditEvent, SmartTableEditorAndFilter, SmartTableEditorAndFilterTypes, SmartTableEditorCustom, SmartTableFilterFunction, SmartTableFilterItem, SmartTableOnChangedEvent, SmartTableOnChangedEventToEmit, SmartTableOnChangedEventType, SmartTablePagerSettings, SmartTableRowClickedEvent, SmartTableRowSelectEvent, SmartTableSettings, SmartTableSortDirection, SmartTableSortItem, SmartTableValuePrepareFunction, ViewCell };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@den4ik92/ng2-smart-table",
3
- "version": "19.6.47",
3
+ "version": "20.0.0",
4
4
  "description": "Angular Smart Table",
5
5
  "author": "Den4ik92",
6
6
  "license": "MIT",
@@ -8,10 +8,10 @@
8
8
  "tslib": "^2.6.1"
9
9
  },
10
10
  "peerDependencies": {
11
- "@angular/common": "^19.2.14",
12
- "@angular/core": "^19.2.14",
13
- "@angular/forms": "^19.2.14",
14
- "@angular/cdk": "^19.2.14"
11
+ "@angular/common": "^20.3.4",
12
+ "@angular/core": "^20.3.4",
13
+ "@angular/forms": "^20.3.4",
14
+ "@angular/cdk": "^20.2.8"
15
15
  },
16
16
  "module": "fesm2022/den4ik92-ng2-smart-table.mjs",
17
17
  "typings": "index.d.ts",
@@ -1,8 +0,0 @@
1
- import { SmartTableEditorAndFilterTypes } from '../../../lib/interfaces/smart-table.models';
2
- import { BaseEditorComponent } from '../cell-editors/base-editor.component';
3
- import * as i0 from "@angular/core";
4
- export declare class BuildInEditorComponent extends BaseEditorComponent {
5
- protected readonly editorType: import("@angular/core").Signal<SmartTableEditorAndFilterTypes>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<BuildInEditorComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<BuildInEditorComponent, "ng2-table-cell-build-in-editor", never, {}, {}, never, never, true, never>;
8
- }
@@ -1,11 +0,0 @@
1
- import { OnChanges, OnDestroy, SimpleChanges, ViewContainerRef } from '@angular/core';
2
- import { BaseEditorComponent } from '../cell-editors/base-editor.component';
3
- import * as i0 from "@angular/core";
4
- export declare class CustomEditComponent extends BaseEditorComponent implements OnChanges, OnDestroy {
5
- dynamicTarget?: ViewContainerRef;
6
- private customComponent?;
7
- ngOnChanges(changes: SimpleChanges): void;
8
- ngOnDestroy(): void;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<CustomEditComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<CustomEditComponent, "ng2-table-cell-custom-editor", never, {}, {}, never, never, true, never>;
11
- }