@den4ik92/ng2-smart-table 19.0.3 → 19.0.5

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.
@@ -0,0 +1,18 @@
1
+ import { OverlayRef } from "@angular/cdk/overlay";
2
+ import { OnDestroy } from "@angular/core";
3
+ import { Ng2SmartTableComponent } from "ng2-smart-table";
4
+ import * as i0 from "@angular/core";
5
+ export declare class SmartTableColumnEditorDirective implements OnDestroy {
6
+ tableComponent: import("@angular/core").InputSignal<Ng2SmartTableComponent>;
7
+ private readonly grid;
8
+ private readonly overlay;
9
+ private readonly elementRef;
10
+ protected overlayRef?: OverlayRef;
11
+ ngOnDestroy(): void;
12
+ protected showDropdown(): void;
13
+ hide(): void;
14
+ buttonClick(): void;
15
+ private getOverlayConfig;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<SmartTableColumnEditorDirective, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SmartTableColumnEditorDirective, "[smartTableColumnEditor]", never, { "tableComponent": { "alias": "tableComponent"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
18
+ }
@@ -0,0 +1,19 @@
1
+ import { CdkDragDrop } from "@angular/cdk/drag-drop";
2
+ import { ColumnSortState } from "ng2-smart-table";
3
+ import { Grid } from "../../lib/grid";
4
+ import * as i0 from "@angular/core";
5
+ export declare class TableColumnsEditorComponent {
6
+ protected infoText: string;
7
+ grid: import("@angular/core").InputSignal<Grid>;
8
+ close: import("@angular/core").InputSignal<() => void>;
9
+ protected currentState: ColumnSortState[];
10
+ stateHasChanged: import("@angular/core").WritableSignal<boolean>;
11
+ constructor();
12
+ resetChanges(): void;
13
+ drop(event: CdkDragDrop<ColumnSortState[]>): void;
14
+ setVisibility(index: number): void;
15
+ setAndUpdate(): void;
16
+ private updateChangedState;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableColumnsEditorComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableColumnsEditorComponent, "ngx-table-columns-editor", never, { "grid": { "alias": "grid"; "required": true; "isSignal": true; }; "close": { "alias": "close"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
19
+ }
package/lib/lib/grid.d.ts CHANGED
@@ -4,7 +4,7 @@ import { LocalDataSource } from "./data-source/local/local.data-source";
4
4
  import { Column } from "./data-set/column";
5
5
  import { DataSet } from "./data-set/data-set";
6
6
  import { Row } from "./data-set/row";
7
- import { SmartTableSettings, SmartTableSortItem } from "./interfaces/smart-table.models";
7
+ import { ColumnSortState, SmartTableSettings, SmartTableSortItem } from "./interfaces/smart-table.models";
8
8
  export declare class Grid {
9
9
  createFormShown: boolean;
10
10
  source: LocalDataSource;
@@ -12,9 +12,12 @@ export declare class Grid {
12
12
  dataSet: DataSet;
13
13
  onSelectRowSource: Subject<any>;
14
14
  onDeselectRowSource: Subject<any>;
15
+ currentColumnsSortState: ColumnSortState[];
16
+ private columnsSortedEmitter;
15
17
  private sourceOnChangedSubscription;
16
18
  private sourceOnUpdatedSubscription;
17
19
  constructor(source: LocalDataSource, settings: SmartTableSettings);
20
+ setColumnsSortedEmitter(emitter: OutputEmitterRef<ColumnSortState[]>): void;
18
21
  detach(): void;
19
22
  showActionColumn(position: string): boolean;
20
23
  isCurrentActionsPosition(position: string): boolean;
@@ -22,11 +25,12 @@ export declare class Grid {
22
25
  isMultiSelectVisible(): boolean;
23
26
  getNewRow(): Row;
24
27
  setSettings(settings: SmartTableSettings): void;
28
+ private updateSettingsAndDataSet;
25
29
  getDataSet(): DataSet;
26
30
  setSource(source: LocalDataSource): void;
27
31
  getSetting<T>(name: string, defaultValue?: any): T;
28
- getColumns(): Array<Column>;
29
- getRows(): Array<Row>;
32
+ getColumns(): Column[];
33
+ getRows(): Row[];
30
34
  selectRow(row: Row, state: boolean): void;
31
35
  multipleSelectRow(row: Row): void;
32
36
  onSelectRow(): Observable<any>;
@@ -39,8 +43,14 @@ export declare class Grid {
39
43
  shouldProcessChange(changes: any): boolean;
40
44
  prepareSource(source: LocalDataSource): LocalDataSource;
41
45
  getInitialSort(): SmartTableSortItem | false;
42
- getSelectedRowsData(): Array<any>;
46
+ getSelectedRowsData(): any[];
43
47
  selectAllRows(status: boolean): void;
44
48
  getFirstRow(): Row;
45
49
  getLastRow(): Row;
50
+ private getSortedTableColumns;
51
+ applyColumnsSortState(state: ColumnSortState[], emitEvent?: boolean): Promise<void>;
52
+ private setColumnsSortState;
53
+ private getColumnsStateFromSettings;
54
+ private getMergedColumnStates;
55
+ private get columnStateStorageKey();
46
56
  }
@@ -7,7 +7,7 @@
7
7
  * object as first argument, like this:
8
8
  * deepExtend({}, yourObj_1, [yourObj_N]);
9
9
  */
10
- export declare const deepExtend: (...objects: Array<any>) => any;
10
+ export declare const deepExtend: (...objects: any[]) => any;
11
11
  export declare class Deferred<T> {
12
12
  promise: Promise<T>;
13
13
  resolve: (value?: T) => void;
@@ -16,3 +16,6 @@ export declare class Deferred<T> {
16
16
  }
17
17
  export declare function getDeepFromObject(object: {} | undefined, name: string, defaultValue?: any): any;
18
18
  export declare function getPageForRowIndex(index: number, perPage: number): number;
19
+ export declare function cloneArrayOfObject<T>(array: T[]): T[];
20
+ export declare function setLocalStorage(key: string, value: string | object | boolean): void;
21
+ export declare function getLocalStorage<T = string>(key: string): T | null;
@@ -1,15 +1,20 @@
1
1
  import { LocalDataSource } from "../data-source/local/local.data-source";
2
2
  import { Deferred } from "../helpers";
3
- export interface SelectOption {
3
+ interface SelectOption {
4
4
  title: string;
5
5
  value: any;
6
6
  }
7
- interface ObjectAny {
8
- [key: string]: any;
7
+ export interface ColumnSortState {
8
+ key: string;
9
+ title: string;
10
+ hide: boolean;
11
+ sortDisabled: boolean;
9
12
  }
10
- export interface SmartTableSettings<T extends ObjectAny = any> {
13
+ export interface SmartTableSettings<T extends Record<string, any> = any> {
11
14
  mode?: 'inline' | 'external' | 'click-to-edit';
12
15
  selectMode?: 'single' | 'multi';
16
+ columnSortStorageKey?: string;
17
+ withColumnSort?: boolean;
13
18
  selectedRowIndex?: number;
14
19
  switchPageToSelectedRowPage?: boolean;
15
20
  hideHeader?: boolean;
@@ -60,14 +65,15 @@ export interface SmartTableCustomAction {
60
65
  title: string;
61
66
  }
62
67
  export type SmartTableColumnSettingsTypes = 'text' | 'html' | 'custom';
63
- export type SmartTableColumnSettings<T = any> = SmartTableTextHtmlColumn<T> | SmartTableCustomColumn<T>;
64
- interface SmartTableDefaultColumn<T> {
68
+ export type SmartTableColumnSettings<T extends Record<string, any> = any> = SmartTableTextHtmlColumn<T> | SmartTableCustomColumn<T>;
69
+ interface SmartTableDefaultColumn<T extends Record<string, any>> {
65
70
  key: keyof T;
66
71
  title: string;
67
72
  width?: string;
68
73
  class?: string;
69
74
  editable?: boolean;
70
75
  hide?: boolean;
76
+ sortDisabled?: boolean;
71
77
  sort?: boolean;
72
78
  addable?: boolean;
73
79
  sortDirection?: SmartTableSortDirection | false;
@@ -77,10 +83,10 @@ interface SmartTableDefaultColumn<T> {
77
83
  valuePrepareFunction?: (columnData: any, rowData: T) => any;
78
84
  filterFunction?: (columnData: any, search: string) => boolean;
79
85
  }
80
- interface SmartTableTextHtmlColumn<T> extends SmartTableDefaultColumn<T> {
86
+ interface SmartTableTextHtmlColumn<T extends Record<string, any>> extends SmartTableDefaultColumn<T> {
81
87
  type: 'text' | 'html';
82
88
  }
83
- interface SmartTableCustomColumn<T> extends SmartTableDefaultColumn<T> {
89
+ interface SmartTableCustomColumn<T extends Record<string, any>> extends SmartTableDefaultColumn<T> {
84
90
  type: 'custom';
85
91
  renderComponent: any;
86
92
  }
@@ -151,9 +157,7 @@ export interface SmartTableConfirmEditEvent<T = any, N = T> extends SmartTableDe
151
157
  export interface SmartTableCreateConfirm<T = any> extends Omit<SmartTableDefaultEvent<T>, "data"> {
152
158
  newData: T;
153
159
  }
154
- export interface ObjectStringString {
155
- [key: string]: string;
156
- }
160
+ export type ObjectStringString = Record<string, string>;
157
161
  export declare enum SmartTableOnChangedEventName {
158
162
  'load' = "load",
159
163
  'paging' = "paging",
@@ -169,7 +173,7 @@ export declare enum SmartTableOnChangedEventName {
169
173
  'refresh' = "refresh"
170
174
  }
171
175
  export type SmartTableOnChangedEventType = 'load' | 'prepend' | 'append' | 'update' | 'empty' | 'paging' | 'page' | 'filter' | 'sort' | 'add' | 'remove' | 'refresh';
172
- export interface SmartTableOnChangedEvent<T extends ObjectAny = any> {
176
+ export interface SmartTableOnChangedEvent<T extends Record<string, any> = any> {
173
177
  action: SmartTableOnChangedEventType;
174
178
  elements: T[];
175
179
  filter: SmartTableFilterConf;
@@ -2,13 +2,14 @@ import { OnChanges, SimpleChange } from "@angular/core";
2
2
  import { Row } from "./lib/data-set/row";
3
3
  import { LocalDataSource } from "./lib/data-source/local/local.data-source";
4
4
  import { Grid } from "./lib/grid";
5
- import { SmartTableConfirmDeleteEvent, SmartTableConfirmEditEvent, SmartTableCreateConfirm, SmartTableCustomEvent, SmartTableRowClickedEvent, SmartTableRowSelectEvent, SmartTableSettings } from "./lib/interfaces/smart-table.models";
5
+ import { ColumnSortState, SmartTableConfirmDeleteEvent, SmartTableConfirmEditEvent, SmartTableCreateConfirm, SmartTableCustomEvent, SmartTableRowClickedEvent, SmartTableRowSelectEvent, SmartTableSettings } from "./lib/interfaces/smart-table.models";
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class Ng2SmartTableComponent implements OnChanges {
8
8
  source: LocalDataSource;
9
9
  settings: SmartTableSettings;
10
10
  readonly multiRowSelect: import("@angular/core").OutputEmitterRef<SmartTableRowSelectEvent<any>>;
11
11
  readonly rowClicked: import("@angular/core").OutputEmitterRef<SmartTableRowClickedEvent>;
12
+ readonly columnsSorted: import("@angular/core").OutputEmitterRef<ColumnSortState[]>;
12
13
  readonly delete: import("@angular/core").OutputEmitterRef<any>;
13
14
  readonly edit: import("@angular/core").OutputEmitterRef<any>;
14
15
  readonly editCancel: import("@angular/core").OutputEmitterRef<any>;
@@ -24,12 +25,10 @@ export declare class Ng2SmartTableComponent implements OnChanges {
24
25
  isHideHeader: boolean;
25
26
  isHideSubHeader: boolean;
26
27
  isPagerDisplay: boolean;
27
- rowClassFunction: Function;
28
+ rowClassFunction: () => string;
28
29
  grid: Grid;
29
30
  defaultSettings: SmartTableSettings;
30
- ngOnChanges(changes: {
31
- [propertyName: string]: SimpleChange;
32
- }): void;
31
+ ngOnChanges(changes: Record<string, SimpleChange>): void;
33
32
  protected multipleSelectRow(row: Row): void;
34
33
  protected onSelectAllRows(): void;
35
34
  protected onSelectRow(row: Row, state: boolean): void;
@@ -39,5 +38,5 @@ export declare class Ng2SmartTableComponent implements OnChanges {
39
38
  private prepareSettings;
40
39
  private emitUserSelectRow;
41
40
  static ɵfac: i0.ɵɵFactoryDeclaration<Ng2SmartTableComponent, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<Ng2SmartTableComponent, "ng2-smart-table", never, { "source": { "alias": "source"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; }, { "multiRowSelect": "multiRowSelect"; "rowClicked": "rowClicked"; "delete": "delete"; "edit": "edit"; "editCancel": "editCancel"; "create": "create"; "custom": "custom"; "deleteConfirm": "deleteConfirm"; "editConfirm": "editConfirm"; "createConfirm": "createConfirm"; "rowHover": "rowHover"; }, never, never, true, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<Ng2SmartTableComponent, "ng2-smart-table", never, { "source": { "alias": "source"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; }, { "multiRowSelect": "multiRowSelect"; "rowClicked": "rowClicked"; "columnsSorted": "columnsSorted"; "delete": "delete"; "edit": "edit"; "editCancel": "editCancel"; "create": "create"; "custom": "custom"; "deleteConfirm": "deleteConfirm"; "editConfirm": "editConfirm"; "createConfirm": "createConfirm"; "rowHover": "rowHover"; }, never, never, true, never>;
43
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@den4ik92/ng2-smart-table",
3
- "version": "19.0.3",
3
+ "version": "19.0.5",
4
4
  "description": "Angular Smart Table",
5
5
  "author": "Den4ik92",
6
6
  "license": "MIT",
@@ -10,7 +10,8 @@
10
10
  "peerDependencies": {
11
11
  "@angular/common": "^19.0.3",
12
12
  "@angular/core": "^19.0.3",
13
- "@angular/forms": "^19.0.3"
13
+ "@angular/forms": "^19.0.3",
14
+ "@angular/cdk": "^19.0.3"
14
15
  },
15
16
  "module": "fesm2022/den4ik92-ng2-smart-table.mjs",
16
17
  "typings": "index.d.ts",
package/public-api.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { DefaultEditor, Editor } from "./lib/components/cell/cell-editors/default-editor";
2
2
  export { ViewCell } from "./lib/components/cell/cell-view-mode/view-cell";
3
3
  export { DefaultFilter, Filter } from "./lib/components/filter/filter-types/default-filter";
4
+ export { SmartTableColumnEditorDirective } from "./lib/components/table-columns-editor/column-editor.directive";
4
5
  export { Cell } from "./lib/lib/data-set/cell";
5
6
  export { Column } from "./lib/lib/data-set/column";
6
7
  export { Row } from "./lib/lib/data-set/row";