@swimlane/ngx-datatable 20.1.0 → 21.0.0-alpha.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.
Files changed (139) hide show
  1. package/CHANGELOG.md +720 -0
  2. package/README.md +25 -4
  3. package/assets/app.css +4 -3
  4. package/assets/icons-reference.html +5 -1
  5. package/assets/icons.css +3 -2
  6. package/{fesm2020 → fesm2022}/swimlane-ngx-datatable.mjs +3404 -2536
  7. package/fesm2022/swimlane-ngx-datatable.mjs.map +1 -0
  8. package/index.css +224 -169
  9. package/index.scss +13 -3
  10. package/lib/components/body/body-cell.component.d.ts +28 -23
  11. package/lib/components/body/body-group-header-template.directive.d.ts +3 -4
  12. package/lib/components/body/body-group-header.directive.d.ts +14 -9
  13. package/lib/components/body/body-row-def.component.d.ts +34 -0
  14. package/lib/components/body/body-row-wrapper.component.d.ts +34 -22
  15. package/lib/components/body/body-row.component.d.ts +28 -34
  16. package/lib/components/body/body.component.d.ts +88 -69
  17. package/lib/components/body/ghost-loader/ghost-loader.component.d.ts +12 -0
  18. package/lib/components/body/progress-bar.component.d.ts +1 -1
  19. package/lib/components/body/scroller.component.d.ts +4 -7
  20. package/lib/components/body/selection.component.d.ts +21 -25
  21. package/lib/components/body/summary/summary-row.component.d.ts +4 -3
  22. package/lib/components/columns/column-cell.directive.d.ts +4 -3
  23. package/lib/components/columns/column-ghost-cell.directive.d.ts +6 -0
  24. package/lib/components/columns/column-header.directive.d.ts +3 -4
  25. package/lib/components/columns/column.directive.d.ts +43 -18
  26. package/lib/components/columns/tree.directive.d.ts +1 -2
  27. package/lib/components/datatable.component.d.ts +142 -76
  28. package/lib/components/footer/footer-template.directive.d.ts +3 -4
  29. package/lib/components/footer/footer.component.d.ts +3 -2
  30. package/lib/components/footer/footer.directive.d.ts +6 -4
  31. package/lib/components/footer/pager.component.d.ts +6 -4
  32. package/lib/components/header/header-cell.component.d.ts +18 -18
  33. package/lib/components/header/header.component.d.ts +41 -36
  34. package/lib/components/row-detail/row-detail-template.directive.d.ts +3 -4
  35. package/lib/components/row-detail/row-detail.directive.d.ts +9 -8
  36. package/lib/directives/disable-row.directive.d.ts +22 -0
  37. package/lib/directives/draggable.directive.d.ts +11 -8
  38. package/lib/directives/long-press.directive.d.ts +16 -5
  39. package/lib/directives/orderable.directive.d.ts +21 -10
  40. package/lib/directives/resizeable.directive.d.ts +7 -5
  41. package/lib/directives/visibility.directive.d.ts +2 -3
  42. package/lib/ngx-datatable.module.d.ts +29 -30
  43. package/lib/services/scrollbar-helper.service.d.ts +0 -1
  44. package/lib/types/internal.types.d.ts +31 -0
  45. package/lib/types/public.types.d.ts +142 -0
  46. package/lib/types/table-column.type.d.ts +39 -66
  47. package/lib/utils/column-helper.d.ts +2 -2
  48. package/lib/utils/column-prop-getters.d.ts +1 -1
  49. package/lib/utils/column.d.ts +7 -14
  50. package/lib/utils/keys.d.ts +6 -6
  51. package/lib/utils/math.d.ts +4 -3
  52. package/lib/utils/selection.d.ts +2 -2
  53. package/lib/utils/sort.d.ts +5 -5
  54. package/lib/utils/table-token.d.ts +7 -0
  55. package/lib/utils/tree.d.ts +2 -2
  56. package/package.json +9 -17
  57. package/public-api.d.ts +4 -11
  58. package/themes/_ghost.scss +22 -0
  59. package/themes/_rows.scss +22 -0
  60. package/themes/bootstrap.css +117 -65
  61. package/themes/bootstrap.scss +27 -3
  62. package/themes/dark.css +101 -70
  63. package/themes/dark.scss +12 -0
  64. package/themes/material.css +344 -260
  65. package/themes/material.scss +52 -11
  66. package/esm2020/lib/components/body/body-cell.component.mjs +0 -432
  67. package/esm2020/lib/components/body/body-group-header-template.directive.mjs +0 -16
  68. package/esm2020/lib/components/body/body-group-header.directive.mjs +0 -62
  69. package/esm2020/lib/components/body/body-row-wrapper.component.mjs +0 -140
  70. package/esm2020/lib/components/body/body-row.component.mjs +0 -262
  71. package/esm2020/lib/components/body/body.component.mjs +0 -863
  72. package/esm2020/lib/components/body/progress-bar.component.mjs +0 -27
  73. package/esm2020/lib/components/body/scroller.component.mjs +0 -91
  74. package/esm2020/lib/components/body/selection.component.mjs +0 -150
  75. package/esm2020/lib/components/body/summary/summary-row.component.mjs +0 -105
  76. package/esm2020/lib/components/columns/column-cell.directive.mjs +0 -14
  77. package/esm2020/lib/components/columns/column-header.directive.mjs +0 -14
  78. package/esm2020/lib/components/columns/column.directive.mjs +0 -98
  79. package/esm2020/lib/components/columns/tree.directive.mjs +0 -14
  80. package/esm2020/lib/components/datatable.component.mjs +0 -1008
  81. package/esm2020/lib/components/footer/footer-template.directive.mjs +0 -14
  82. package/esm2020/lib/components/footer/footer.component.mjs +0 -128
  83. package/esm2020/lib/components/footer/footer.directive.mjs +0 -35
  84. package/esm2020/lib/components/footer/pager.component.mjs +0 -181
  85. package/esm2020/lib/components/header/header-cell.component.mjs +0 -243
  86. package/esm2020/lib/components/header/header.component.mjs +0 -376
  87. package/esm2020/lib/components/row-detail/row-detail-template.directive.mjs +0 -16
  88. package/esm2020/lib/components/row-detail/row-detail.directive.mjs +0 -63
  89. package/esm2020/lib/directives/draggable.directive.mjs +0 -108
  90. package/esm2020/lib/directives/long-press.directive.mjs +0 -117
  91. package/esm2020/lib/directives/orderable.directive.mjs +0 -136
  92. package/esm2020/lib/directives/resizeable.directive.mjs +0 -93
  93. package/esm2020/lib/directives/visibility.directive.mjs +0 -63
  94. package/esm2020/lib/events.mjs +0 -7
  95. package/esm2020/lib/ngx-datatable.module.mjs +0 -139
  96. package/esm2020/lib/services/column-changes.service.mjs +0 -24
  97. package/esm2020/lib/services/dimensions-helper.service.mjs +0 -17
  98. package/esm2020/lib/services/scrollbar-helper.service.mjs +0 -37
  99. package/esm2020/lib/types/click.type.mjs +0 -6
  100. package/esm2020/lib/types/column-mode.type.mjs +0 -7
  101. package/esm2020/lib/types/contextmenu.type.mjs +0 -6
  102. package/esm2020/lib/types/selection.type.mjs +0 -9
  103. package/esm2020/lib/types/sort-direction.type.mjs +0 -6
  104. package/esm2020/lib/types/sort-prop-dir.type.mjs +0 -2
  105. package/esm2020/lib/types/sort.type.mjs +0 -6
  106. package/esm2020/lib/types/table-column.type.mjs +0 -2
  107. package/esm2020/lib/utils/camel-case.mjs +0 -28
  108. package/esm2020/lib/utils/column-helper.mjs +0 -95
  109. package/esm2020/lib/utils/column-prop-getters.mjs +0 -96
  110. package/esm2020/lib/utils/column.mjs +0 -69
  111. package/esm2020/lib/utils/elm-from-point.mjs +0 -38
  112. package/esm2020/lib/utils/id.mjs +0 -8
  113. package/esm2020/lib/utils/keys.mjs +0 -10
  114. package/esm2020/lib/utils/math.mjs +0 -146
  115. package/esm2020/lib/utils/prefixes.mjs +0 -38
  116. package/esm2020/lib/utils/row-height-cache.mjs +0 -138
  117. package/esm2020/lib/utils/selection.mjs +0 -40
  118. package/esm2020/lib/utils/sort.mjs +0 -127
  119. package/esm2020/lib/utils/throttle.mjs +0 -60
  120. package/esm2020/lib/utils/translate.mjs +0 -25
  121. package/esm2020/lib/utils/tree.mjs +0 -103
  122. package/esm2020/public-api.mjs +0 -64
  123. package/esm2020/swimlane-ngx-datatable.mjs +0 -5
  124. package/fesm2015/swimlane-ngx-datatable.mjs +0 -5979
  125. package/fesm2015/swimlane-ngx-datatable.mjs.map +0 -1
  126. package/fesm2020/swimlane-ngx-datatable.mjs.map +0 -1
  127. package/lib/events.d.ts +0 -3
  128. package/lib/services/dimensions-helper.service.d.ts +0 -10
  129. package/lib/types/click.type.d.ts +0 -4
  130. package/lib/types/column-mode.type.d.ts +0 -5
  131. package/lib/types/contextmenu.type.d.ts +0 -4
  132. package/lib/types/selection.type.d.ts +0 -7
  133. package/lib/types/sort-direction.type.d.ts +0 -4
  134. package/lib/types/sort-prop-dir.type.d.ts +0 -6
  135. package/lib/types/sort.type.d.ts +0 -4
  136. package/lib/utils/elm-from-point.d.ts +0 -8
  137. package/lib/utils/prefixes.d.ts +0 -1
  138. package/lib/utils/translate.d.ts +0 -1
  139. /package/{swimlane-ngx-datatable.d.ts → index.d.ts} +0 -0
@@ -1,32 +1,44 @@
1
- import { EventEmitter, DoCheck, ChangeDetectorRef, KeyValueDiffers } from '@angular/core';
1
+ import { DoCheck, ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { Group, GroupContext, RowDetailContext, RowOrGroup } from '../../types/public.types';
4
+ import { DatatableGroupHeaderDirective } from './body-group-header.directive';
5
+ import { DatatableRowDetailDirective } from '../row-detail/row-detail.directive';
2
6
  import * as i0 from "@angular/core";
3
- export declare class DataTableRowWrapperComponent implements DoCheck {
4
- private cd;
5
- private differs;
7
+ export declare class DataTableRowWrapperComponent<TRow = any> implements DoCheck, OnInit, OnChanges {
8
+ checkBoxInput: ElementRef<HTMLInputElement>;
6
9
  innerWidth: number;
7
- rowDetail: any;
8
- groupHeader: any;
10
+ rowDetail: DatatableRowDetailDirective;
11
+ groupHeader: DatatableGroupHeaderDirective;
9
12
  offsetX: number;
10
- detailRowHeight: any;
11
- row: any;
12
- groupedRows: any;
13
+ detailRowHeight: number;
14
+ groupHeaderRowHeight: number;
15
+ row: RowOrGroup<TRow>;
16
+ groupedRows: Group<TRow>[];
17
+ disableCheck: (row: RowOrGroup<TRow>) => boolean;
18
+ selected: TRow[];
13
19
  rowContextmenu: EventEmitter<{
14
20
  event: MouseEvent;
15
- row: any;
21
+ row: RowOrGroup<TRow>;
16
22
  }>;
17
- set rowIndex(val: number);
18
- get rowIndex(): number;
19
- set expanded(val: boolean);
20
- get expanded(): boolean;
21
- groupContext: any;
22
- rowContext: any;
23
+ rowIndex?: number;
24
+ selectedGroupRows: import("@angular/core").WritableSignal<TRow[]>;
25
+ expanded: boolean;
26
+ groupContext?: GroupContext<TRow>;
27
+ rowContext?: RowDetailContext<TRow>;
28
+ disable$: BehaviorSubject<boolean>;
23
29
  private rowDiffer;
24
- private _expanded;
25
- private _rowIndex;
26
- constructor(cd: ChangeDetectorRef, differs: KeyValueDiffers);
30
+ private iterableDiffers;
31
+ private selectedRowsDiffer;
32
+ private tableComponent;
33
+ private cd;
34
+ protected group: import("@angular/core").Signal<Group<TRow>>;
35
+ ngOnInit(): void;
36
+ ngOnChanges(changes: SimpleChanges): void;
27
37
  ngDoCheck(): void;
28
38
  onContextmenu($event: MouseEvent): void;
29
- getGroupHeaderStyle(): any;
30
- static ɵfac: i0.ɵɵFactoryDeclaration<DataTableRowWrapperComponent, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<DataTableRowWrapperComponent, "datatable-row-wrapper", never, { "innerWidth": "innerWidth"; "rowDetail": "rowDetail"; "groupHeader": "groupHeader"; "offsetX": "offsetX"; "detailRowHeight": "detailRowHeight"; "row": "row"; "groupedRows": "groupedRows"; "rowIndex": "rowIndex"; "expanded": "expanded"; }, { "rowContextmenu": "rowContextmenu"; }, never, ["*"]>;
39
+ onCheckboxChange(groupSelected: boolean): void;
40
+ isGroup(row: RowOrGroup<TRow>): row is Group<TRow>;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataTableRowWrapperComponent<any>, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataTableRowWrapperComponent<any>, "datatable-row-wrapper", never, { "innerWidth": { "alias": "innerWidth"; "required": false; }; "rowDetail": { "alias": "rowDetail"; "required": false; }; "groupHeader": { "alias": "groupHeader"; "required": false; }; "offsetX": { "alias": "offsetX"; "required": false; }; "detailRowHeight": { "alias": "detailRowHeight"; "required": false; }; "groupHeaderRowHeight": { "alias": "groupHeaderRowHeight"; "required": false; }; "row": { "alias": "row"; "required": false; }; "groupedRows": { "alias": "groupedRows"; "required": false; }; "disableCheck": { "alias": "disableCheck"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; }, { "rowContextmenu": "rowContextmenu"; }, never, ["*"], true, never>;
43
+ static ngAcceptInputType_expanded: unknown;
32
44
  }
@@ -1,53 +1,47 @@
1
- import { ElementRef, KeyValueDiffers, EventEmitter, ChangeDetectorRef, DoCheck } from '@angular/core';
2
- import { TreeStatus } from './body-cell.component';
3
- import { ScrollbarHelper } from '../../services/scrollbar-helper.service';
1
+ import { DoCheck, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { ActivateEvent, RowOrGroup, TreeStatus } from '../../types/public.types';
4
+ import { TableColumn } from '../../types/table-column.type';
5
+ import { ColumnGroupWidth, PinnedColumns } from '../../types/internal.types';
4
6
  import * as i0 from "@angular/core";
5
- export declare class DataTableBodyRowComponent implements DoCheck {
6
- private differs;
7
- private scrollbarHelper;
7
+ export declare class DataTableBodyRowComponent<TRow = any> implements DoCheck, OnChanges {
8
8
  private cd;
9
- set columns(val: any[]);
10
- get columns(): any[];
9
+ set columns(val: TableColumn[]);
10
+ get columns(): TableColumn[];
11
11
  set innerWidth(val: number);
12
12
  get innerWidth(): number;
13
13
  expanded: boolean;
14
- rowClass: any;
15
- row: any;
16
- group: any;
14
+ rowClass?: (row: RowOrGroup<TRow>) => string | Record<string, boolean>;
15
+ row: TRow;
16
+ group: TRow[];
17
17
  isSelected: boolean;
18
18
  rowIndex: number;
19
- displayCheck: any;
20
- treeStatus: TreeStatus;
19
+ displayCheck: (row: TRow, column: TableColumn, value?: any) => boolean;
20
+ treeStatus?: TreeStatus;
21
+ ghostLoadingIndicator: boolean;
22
+ verticalScrollVisible: boolean;
23
+ disable$: BehaviorSubject<boolean>;
21
24
  set offsetX(val: number);
22
25
  get offsetX(): number;
23
26
  get cssClass(): string;
24
27
  rowHeight: number;
25
- get columnsTotalWidths(): string;
26
- activate: EventEmitter<any>;
28
+ get columnsTotalWidths(): number;
29
+ activate: EventEmitter<ActivateEvent<TRow>>;
27
30
  treeAction: EventEmitter<any>;
28
- _element: any;
29
- _columnGroupWidths: any;
30
- _columnsByPin: any;
31
+ _element: HTMLElement;
32
+ _columnGroupWidths: ColumnGroupWidth;
33
+ _columnsByPin: PinnedColumns[];
31
34
  _offsetX: number;
32
- _columns: any[];
35
+ _columns: TableColumn[];
33
36
  _innerWidth: number;
34
- _groupStyles: {
35
- [prop: string]: {};
36
- };
37
37
  private _rowDiffer;
38
- constructor(differs: KeyValueDiffers, scrollbarHelper: ScrollbarHelper, cd: ChangeDetectorRef, element: ElementRef);
38
+ ngOnChanges(changes: SimpleChanges): void;
39
39
  ngDoCheck(): void;
40
- trackByGroups(index: number, colGroup: any): any;
41
- columnTrackingFn(index: number, column: any): any;
42
- buildStylesByGroup(): void;
43
- calcStylesByGroup(group: string): {
44
- width: string;
45
- };
46
- onActivate(event: any, index: number): void;
40
+ onActivate(event: ActivateEvent<TRow>, index: number): void;
47
41
  onKeyDown(event: KeyboardEvent): void;
48
- onMouseenter(event: any): void;
49
- recalculateColumns(val?: any[]): void;
42
+ onMouseenter(event: MouseEvent): void;
43
+ recalculateColumns(val?: TableColumn<TRow>[]): void;
50
44
  onTreeAction(): void;
51
- static ɵfac: i0.ɵɵFactoryDeclaration<DataTableBodyRowComponent, [null, { skipSelf: true; }, null, null]>;
52
- static ɵcmp: i0.ɵɵComponentDeclaration<DataTableBodyRowComponent, "datatable-body-row", never, { "columns": "columns"; "innerWidth": "innerWidth"; "expanded": "expanded"; "rowClass": "rowClass"; "row": "row"; "group": "group"; "isSelected": "isSelected"; "rowIndex": "rowIndex"; "displayCheck": "displayCheck"; "treeStatus": "treeStatus"; "offsetX": "offsetX"; "rowHeight": "rowHeight"; }, { "activate": "activate"; "treeAction": "treeAction"; }, never, never>;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataTableBodyRowComponent<any>, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataTableBodyRowComponent<any>, "datatable-body-row", never, { "columns": { "alias": "columns"; "required": false; }; "innerWidth": { "alias": "innerWidth"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "row": { "alias": "row"; "required": false; }; "group": { "alias": "group"; "required": false; }; "isSelected": { "alias": "isSelected"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "displayCheck": { "alias": "displayCheck"; "required": false; }; "treeStatus": { "alias": "treeStatus"; "required": false; }; "ghostLoadingIndicator": { "alias": "ghostLoadingIndicator"; "required": false; }; "verticalScrollVisible": { "alias": "verticalScrollVisible"; "required": false; }; "disable$": { "alias": "disable$"; "required": false; }; "offsetX": { "alias": "offsetX"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; }, { "activate": "activate"; "treeAction": "treeAction"; }, never, never, true, never>;
53
47
  }
@@ -1,57 +1,73 @@
1
- import { EventEmitter, ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core';
1
+ import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, TemplateRef, TrackByFunction } from '@angular/core';
2
2
  import { ScrollerComponent } from './scroller.component';
3
- import { SelectionType } from '../../types/selection.type';
4
3
  import { RowHeightCache } from '../../utils/row-height-cache';
4
+ import { TableColumn } from '../../types/table-column.type';
5
+ import { DatatableGroupHeaderDirective } from './body-group-header.directive';
6
+ import { DatatableRowDetailDirective } from '../row-detail/row-detail.directive';
7
+ import { DataTableBodyRowComponent } from './body-row.component';
8
+ import { ColumnGroupWidth } from '../../types/internal.types';
9
+ import { ActivateEvent, DragEventData, Group, RowOrGroup, ScrollEvent, SelectionType, TreeStatus } from '../../types/public.types';
5
10
  import * as i0 from "@angular/core";
6
- export declare class DataTableBodyComponent implements OnInit, OnDestroy {
7
- private cd;
11
+ export declare class DataTableBodyComponent<TRow extends {
12
+ treeStatus?: TreeStatus;
13
+ } = any> implements OnInit, OnDestroy {
14
+ cd: ChangeDetectorRef;
15
+ rowDefTemplate?: TemplateRef<any>;
8
16
  scrollbarV: boolean;
9
17
  scrollbarH: boolean;
10
18
  loadingIndicator: boolean;
19
+ ghostLoadingIndicator: boolean;
11
20
  externalPaging: boolean;
12
21
  rowHeight: number | 'auto' | ((row?: any) => number);
13
22
  offsetX: number;
14
- emptyMessage: string;
15
23
  selectionType: SelectionType;
16
24
  selected: any[];
17
25
  rowIdentity: any;
18
- rowDetail: any;
19
- groupHeader: any;
20
- selectCheck: any;
21
- displayCheck: any;
26
+ rowDetail: DatatableRowDetailDirective;
27
+ groupHeader: DatatableGroupHeaderDirective;
28
+ selectCheck: (value: TRow, index: number, array: TRow[]) => boolean;
29
+ displayCheck: (row: TRow, column: TableColumn, value?: any) => boolean;
22
30
  trackByProp: string;
23
- rowClass: any;
24
- groupedRows: any;
31
+ rowClass: (row: RowOrGroup<TRow>) => string | Record<string, boolean>;
32
+ groupedRows: Group<TRow>[];
25
33
  groupExpansionDefault: boolean;
26
34
  innerWidth: number;
27
- groupRowsBy: string;
35
+ groupRowsBy: keyof TRow;
28
36
  virtualization: boolean;
29
37
  summaryRow: boolean;
30
38
  summaryPosition: string;
31
39
  summaryHeight: number;
40
+ rowDraggable: boolean;
41
+ rowDragEvents: EventEmitter<DragEventData>;
42
+ disableRowCheck: (row: TRow) => boolean;
32
43
  set pageSize(val: number);
33
44
  get pageSize(): number;
34
- set rows(val: any[]);
35
- get rows(): any[];
36
- set columns(val: any[]);
45
+ set rows(val: TRow[]);
46
+ get rows(): TRow[];
47
+ set columns(val: TableColumn[]);
37
48
  get columns(): any[];
38
49
  set offset(val: number);
39
50
  get offset(): number;
40
51
  set rowCount(val: number);
41
52
  get rowCount(): number;
42
53
  get bodyWidth(): string;
43
- set bodyHeight(val: any);
44
- get bodyHeight(): any;
45
- scroll: EventEmitter<any>;
46
- page: EventEmitter<any>;
47
- activate: EventEmitter<any>;
48
- select: EventEmitter<any>;
54
+ set bodyHeight(val: number | string);
55
+ get bodyHeight(): number | string;
56
+ verticalScrollVisible: boolean;
57
+ scroll: EventEmitter<ScrollEvent>;
58
+ page: EventEmitter<number>;
59
+ activate: EventEmitter<ActivateEvent<TRow>>;
60
+ select: EventEmitter<{
61
+ selected: TRow[];
62
+ }>;
49
63
  detailToggle: EventEmitter<any>;
50
64
  rowContextmenu: EventEmitter<{
51
65
  event: MouseEvent;
52
- row: any;
66
+ row: RowOrGroup<TRow>;
67
+ }>;
68
+ treeAction: EventEmitter<{
69
+ row: TRow;
53
70
  }>;
54
- treeAction: EventEmitter<any>;
55
71
  scroller: ScrollerComponent;
56
72
  /**
57
73
  * Returns if selection is enabled.
@@ -62,31 +78,37 @@ export declare class DataTableBodyComponent implements OnInit, OnDestroy {
62
78
  * based on the row heights cache for virtual scroll and virtualization. Other scenarios
63
79
  * calculate scroll height automatically (as height will be undefined).
64
80
  */
65
- get scrollHeight(): number | undefined;
66
- rowHeightsCache: RowHeightCache;
67
- temp: any[];
81
+ scrollHeight: import("@angular/core").Signal<number>;
82
+ rowsToRender: import("@angular/core").Signal<RowOrGroup<TRow>[]>;
83
+ rowHeightsCache: import("@angular/core").WritableSignal<RowHeightCache>;
68
84
  offsetY: number;
69
- indexes: any;
70
- columnGroupWidths: any;
71
- columnGroupWidthsWithoutGroup: any;
72
- rowTrackingFn: any;
85
+ indexes: import("@angular/core").WritableSignal<{
86
+ first: number;
87
+ last: number;
88
+ }>;
89
+ columnGroupWidths: ColumnGroupWidth;
90
+ rowTrackingFn: TrackByFunction<RowOrGroup<TRow>>;
73
91
  listener: any;
74
- rowIndexes: any;
92
+ rowIndexes: WeakMap<any, any>;
75
93
  rowExpansions: any[];
76
- _rows: any[];
77
- _bodyHeight: any;
78
- _columns: any[];
94
+ _rows: TRow[];
95
+ _bodyHeight: string;
96
+ _columns: TableColumn[];
79
97
  _rowCount: number;
80
98
  _offset: number;
81
99
  _pageSize: number;
100
+ _offsetEvent: number;
101
+ private _draggedRow;
102
+ private _draggedRowElement;
82
103
  /**
83
104
  * Creates an instance of DataTableBodyComponent.
84
105
  */
85
- constructor(cd: ChangeDetectorRef);
106
+ constructor();
86
107
  /**
87
108
  * Called after the constructor, initializing input properties
88
109
  */
89
110
  ngOnInit(): void;
111
+ private toggleStateChange;
90
112
  /**
91
113
  * Called once, before the instance is destroyed.
92
114
  */
@@ -107,23 +129,24 @@ export declare class DataTableBodyComponent implements OnInit, OnDestroy {
107
129
  /**
108
130
  * Updates the rows in the view port
109
131
  */
110
- updateRows(): void;
132
+ updateRows(): RowOrGroup<TRow>[];
111
133
  /**
112
134
  * Get the row height
113
135
  */
114
- getRowHeight(row: any): number;
136
+ getRowHeight(row: RowOrGroup<TRow>): number;
115
137
  /**
116
138
  * @param group the group with all rows
117
139
  */
118
- getGroupHeight(group: any): number;
140
+ getGroupHeight(group: Group<TRow>): number;
119
141
  /**
120
142
  * Calculate row height based on the expanded state of the row.
121
143
  */
122
- getRowAndDetailHeight(row: any): number;
144
+ getRowAndDetailHeight(row: TRow): number;
123
145
  /**
124
146
  * Get the height of the detail row.
125
147
  */
126
- getDetailRowHeight: (row?: any, index?: any) => number;
148
+ getDetailRowHeight: (row?: TRow, index?: number) => number;
149
+ getGroupHeaderRowHeight: (row?: any, index?: any) => number;
127
150
  /**
128
151
  * Calculates the styles for the row so that the rows can be moved in 2D space
129
152
  * during virtual scroll inside the DOM. In the below case the Y position is
@@ -139,26 +162,22 @@ export declare class DataTableBodyComponent implements OnInit, OnDestroy {
139
162
  * case the positionY of the translate3d for row2 would be the sum of all the
140
163
  * heights of the rows before it (i.e. row0 and row1).
141
164
  *
142
- * @param rows the row that needs to be placed in the 2D space.
143
165
  * @returns the CSS3 style to be applied
144
- *
145
- * @memberOf DataTableBodyComponent
146
166
  */
147
- getRowsStyles(rows: any): any;
167
+ rowsStyles: import("@angular/core").Signal<{
168
+ [klass: string]: any;
169
+ }[]>;
148
170
  /**
149
171
  * Calculate bottom summary row offset for scrollbar mode.
150
172
  * For more information about cache and offset calculation
151
- * see description for `getRowsStyles` method
173
+ * see description for `rowsStyles` signal
152
174
  *
153
175
  * @returns the CSS3 style to be applied
154
- *
155
- * @memberOf DataTableBodyComponent
156
- */
157
- getBottomSummaryRowStyles(): any;
158
- /**
159
- * Hides the loading indicator
160
176
  */
161
- hideIndicator(): void;
177
+ bottomSummaryRowsStyles: import("@angular/core").Signal<{
178
+ transform: string;
179
+ position: string;
180
+ }>;
162
181
  /**
163
182
  * Updates the index of the rows in the viewport
164
183
  */
@@ -178,7 +197,7 @@ export declare class DataTableBodyComponent implements OnInit, OnDestroy {
178
197
  * a part of the row object itself as we have to preserve the expanded row
179
198
  * status in case of sorting and filtering of the row set.
180
199
  */
181
- toggleRowExpansion(row: any): void;
200
+ toggleRowExpansion(row: TRow): void;
182
201
  /**
183
202
  * Expand/Collapse all the rows no matter what their state is.
184
203
  */
@@ -187,26 +206,26 @@ export declare class DataTableBodyComponent implements OnInit, OnDestroy {
187
206
  * Recalculates the table
188
207
  */
189
208
  recalcLayout(): void;
190
- /**
191
- * Tracks the column
192
- */
193
- columnTrackingFn(index: number, column: any): any;
194
- /**
195
- * Gets the row pinning group styles
196
- */
197
- stylesByGroup(group: string): {
198
- width: string;
199
- };
200
209
  /**
201
210
  * Returns if the row was expanded and set default row expansion when row expansion is empty
202
211
  */
203
- getRowExpanded(row: any): boolean;
204
- getRowExpandedIdx(row: any, expanded: any[]): number;
212
+ getRowExpanded(row: RowOrGroup<TRow>): boolean;
213
+ getRowExpandedIdx(row: RowOrGroup<TRow>, expanded: RowOrGroup<TRow>[]): number;
205
214
  /**
206
215
  * Gets the row index given a row
207
216
  */
208
- getRowIndex(row: any): number;
209
- onTreeAction(row: any): void;
210
- static ɵfac: i0.ɵɵFactoryDeclaration<DataTableBodyComponent, never>;
211
- static ɵcmp: i0.ɵɵComponentDeclaration<DataTableBodyComponent, "datatable-body", never, { "scrollbarV": "scrollbarV"; "scrollbarH": "scrollbarH"; "loadingIndicator": "loadingIndicator"; "externalPaging": "externalPaging"; "rowHeight": "rowHeight"; "offsetX": "offsetX"; "emptyMessage": "emptyMessage"; "selectionType": "selectionType"; "selected": "selected"; "rowIdentity": "rowIdentity"; "rowDetail": "rowDetail"; "groupHeader": "groupHeader"; "selectCheck": "selectCheck"; "displayCheck": "displayCheck"; "trackByProp": "trackByProp"; "rowClass": "rowClass"; "groupedRows": "groupedRows"; "groupExpansionDefault": "groupExpansionDefault"; "innerWidth": "innerWidth"; "groupRowsBy": "groupRowsBy"; "virtualization": "virtualization"; "summaryRow": "summaryRow"; "summaryPosition": "summaryPosition"; "summaryHeight": "summaryHeight"; "pageSize": "pageSize"; "rows": "rows"; "columns": "columns"; "offset": "offset"; "rowCount": "rowCount"; "bodyHeight": "bodyHeight"; }, { "scroll": "scroll"; "page": "page"; "activate": "activate"; "select": "select"; "detailToggle": "detailToggle"; "rowContextmenu": "rowContextmenu"; "treeAction": "treeAction"; }, never, never>;
217
+ getRowIndex(row: RowOrGroup<TRow>): number;
218
+ onTreeAction(row: TRow): void;
219
+ dragOver(event: DragEvent, dropRow: RowOrGroup<TRow>): void;
220
+ drag(event: DragEvent, dragRow: RowOrGroup<TRow>, rowComponent: DataTableBodyRowComponent<TRow>): void;
221
+ drop(event: DragEvent, dropRow: RowOrGroup<TRow>, rowComponent: DataTableBodyRowComponent<TRow>): void;
222
+ dragEnter(event: DragEvent, dropRow: RowOrGroup<TRow>, rowComponent: DataTableBodyRowComponent<TRow>): void;
223
+ dragLeave(event: DragEvent, dropRow: RowOrGroup<TRow>, rowComponent: DataTableBodyRowComponent<TRow>): void;
224
+ dragEnd(event: DragEvent, dragRow: RowOrGroup<TRow>): void;
225
+ updateColumnGroupWidths(): void;
226
+ protected isGroup(row: RowOrGroup<TRow>[]): row is Group<TRow>[];
227
+ protected isGroup(row: RowOrGroup<TRow>): row is Group<TRow>;
228
+ protected isRow(row: RowOrGroup<TRow>): row is TRow;
229
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataTableBodyComponent<any>, never>;
230
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataTableBodyComponent<any>, "datatable-body", never, { "rowDefTemplate": { "alias": "rowDefTemplate"; "required": false; }; "scrollbarV": { "alias": "scrollbarV"; "required": false; }; "scrollbarH": { "alias": "scrollbarH"; "required": false; }; "loadingIndicator": { "alias": "loadingIndicator"; "required": false; }; "ghostLoadingIndicator": { "alias": "ghostLoadingIndicator"; "required": false; }; "externalPaging": { "alias": "externalPaging"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "offsetX": { "alias": "offsetX"; "required": false; }; "selectionType": { "alias": "selectionType"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "rowIdentity": { "alias": "rowIdentity"; "required": false; }; "rowDetail": { "alias": "rowDetail"; "required": false; }; "groupHeader": { "alias": "groupHeader"; "required": false; }; "selectCheck": { "alias": "selectCheck"; "required": false; }; "displayCheck": { "alias": "displayCheck"; "required": false; }; "trackByProp": { "alias": "trackByProp"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "groupedRows": { "alias": "groupedRows"; "required": false; }; "groupExpansionDefault": { "alias": "groupExpansionDefault"; "required": false; }; "innerWidth": { "alias": "innerWidth"; "required": false; }; "groupRowsBy": { "alias": "groupRowsBy"; "required": false; }; "virtualization": { "alias": "virtualization"; "required": false; }; "summaryRow": { "alias": "summaryRow"; "required": false; }; "summaryPosition": { "alias": "summaryPosition"; "required": false; }; "summaryHeight": { "alias": "summaryHeight"; "required": false; }; "rowDraggable": { "alias": "rowDraggable"; "required": false; }; "rowDragEvents": { "alias": "rowDragEvents"; "required": false; }; "disableRowCheck": { "alias": "disableRowCheck"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "rowCount": { "alias": "rowCount"; "required": false; }; "bodyHeight": { "alias": "bodyHeight"; "required": false; }; "verticalScrollVisible": { "alias": "verticalScrollVisible"; "required": false; }; }, { "scroll": "scroll"; "page": "page"; "activate": "activate"; "select": "select"; "detailToggle": "detailToggle"; "rowContextmenu": "rowContextmenu"; "treeAction": "treeAction"; }, never, ["[loading-indicator]", "[empty-content]"], true, never>;
212
231
  }
@@ -0,0 +1,12 @@
1
+ import { TableColumn } from '../../../types/table-column.type';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DataTableGhostLoaderComponent {
4
+ columns: TableColumn[];
5
+ pageSize: number;
6
+ rowHeight: number | 'auto' | ((row?: any) => number);
7
+ ghostBodyHeight: number;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataTableGhostLoaderComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataTableGhostLoaderComponent, "ghost-loader", never, { "columns": { "alias": "columns"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "ghostBodyHeight": { "alias": "ghostBodyHeight"; "required": false; }; }, {}, never, never, true, never>;
10
+ static ngAcceptInputType_pageSize: unknown;
11
+ static ngAcceptInputType_ghostBodyHeight: unknown;
12
+ }
@@ -1,5 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class ProgressBarComponent {
3
3
  static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
4
- static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBarComponent, "datatable-progress", never, {}, {}, never, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBarComponent, "datatable-progress", never, {}, {}, never, never, true, never>;
5
5
  }
@@ -1,7 +1,6 @@
1
- import { ElementRef, EventEmitter, Renderer2, NgZone, OnInit, OnDestroy } from '@angular/core';
1
+ import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class ScrollerComponent implements OnInit, OnDestroy {
4
- private ngZone;
5
4
  private renderer;
6
5
  scrollbarV: boolean;
7
6
  scrollbarH: boolean;
@@ -12,16 +11,14 @@ export declare class ScrollerComponent implements OnInit, OnDestroy {
12
11
  scrollXPos: number;
13
12
  prevScrollYPos: number;
14
13
  prevScrollXPos: number;
15
- element: any;
16
- parentElement: any;
17
- onScrollListener: any;
14
+ element: HTMLElement;
15
+ parentElement: HTMLElement;
18
16
  private _scrollEventListener;
19
- constructor(ngZone: NgZone, element: ElementRef, renderer: Renderer2);
20
17
  ngOnInit(): void;
21
18
  ngOnDestroy(): void;
22
19
  setOffset(offsetY: number): void;
23
20
  onScrolled(event: MouseEvent): void;
24
21
  updateOffset(): void;
25
22
  static ɵfac: i0.ɵɵFactoryDeclaration<ScrollerComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<ScrollerComponent, "datatable-scroller", never, { "scrollbarV": "scrollbarV"; "scrollbarH": "scrollbarH"; "scrollHeight": "scrollHeight"; "scrollWidth": "scrollWidth"; }, { "scroll": "scroll"; }, never, ["*"]>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScrollerComponent, "datatable-scroller", never, { "scrollbarV": { "alias": "scrollbarV"; "required": false; }; "scrollbarH": { "alias": "scrollbarH"; "required": false; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; }; "scrollWidth": { "alias": "scrollWidth"; "required": false; }; }, { "scroll": "scroll"; }, never, ["*"], true, never>;
27
24
  }
@@ -1,32 +1,28 @@
1
1
  import { EventEmitter } from '@angular/core';
2
- import { SelectionType } from '../../types/selection.type';
2
+ import { Keys } from '../../utils/keys';
3
+ import { ActivateEvent, SelectionType } from '../../types/public.types';
3
4
  import * as i0 from "@angular/core";
4
- export interface Model {
5
- type: string;
6
- event: MouseEvent | KeyboardEvent;
7
- row: any;
8
- rowElement: any;
9
- cellElement: any;
10
- cellIndex: number;
11
- }
12
- export declare class DataTableSelectionComponent {
13
- rows: any[];
14
- selected: any[];
5
+ export declare class DataTableSelectionComponent<TRow = any> {
6
+ rows: TRow[];
7
+ selected: TRow[];
15
8
  selectEnabled: boolean;
16
9
  selectionType: SelectionType;
17
10
  rowIdentity: any;
18
- selectCheck: any;
19
- activate: EventEmitter<any>;
20
- select: EventEmitter<any>;
11
+ selectCheck: (value: TRow, index: number, array: TRow[]) => boolean;
12
+ disableCheck: (row: TRow) => boolean;
13
+ activate: EventEmitter<ActivateEvent<TRow>>;
14
+ select: EventEmitter<{
15
+ selected: TRow[];
16
+ }>;
21
17
  prevIndex: number;
22
- selectRow(event: KeyboardEvent | MouseEvent, index: number, row: any): void;
23
- onActivate(model: Model, index: number): void;
24
- onKeyboardFocus(model: Model): void;
25
- focusRow(rowElement: any, keyCode: number): void;
26
- getPrevNextRow(rowElement: any, keyCode: number): any;
27
- focusCell(cellElement: any, rowElement: any, keyCode: number, cellIndex: number): void;
28
- getRowSelected(row: any): boolean;
29
- getRowSelectedIdx(row: any, selected: any[]): number;
30
- static ɵfac: i0.ɵɵFactoryDeclaration<DataTableSelectionComponent, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<DataTableSelectionComponent, "datatable-selection", never, { "rows": "rows"; "selected": "selected"; "selectEnabled": "selectEnabled"; "selectionType": "selectionType"; "rowIdentity": "rowIdentity"; "selectCheck": "selectCheck"; }, { "activate": "activate"; "select": "select"; }, never, ["*"]>;
18
+ selectRow(event: KeyboardEvent | MouseEvent, index: number, row: TRow): void;
19
+ onActivate(model: ActivateEvent<TRow>, index: number): void;
20
+ onKeyboardFocus(model: ActivateEvent<TRow>): void;
21
+ focusRow(rowElement: HTMLElement, key: Keys): void;
22
+ getPrevNextRow(rowElement: HTMLElement, key: Keys): any;
23
+ focusCell(cellElement: HTMLElement, rowElement: HTMLElement, key: Keys, cellIndex: number): void;
24
+ getRowSelected(row: TRow): boolean;
25
+ getRowSelectedIdx(row: TRow, selected: any[]): number;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataTableSelectionComponent<any>, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataTableSelectionComponent<any>, "datatable-selection", never, { "rows": { "alias": "rows"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "selectEnabled": { "alias": "selectEnabled"; "required": false; }; "selectionType": { "alias": "selectionType"; "required": false; }; "rowIdentity": { "alias": "rowIdentity"; "required": false; }; "selectCheck": { "alias": "selectCheck"; "required": false; }; "disableCheck": { "alias": "disableCheck"; "required": false; }; }, { "activate": "activate"; "select": "select"; }, never, ["*"], true, never>;
32
28
  }
@@ -1,14 +1,15 @@
1
1
  import { OnChanges, PipeTransform, TemplateRef } from '@angular/core';
2
+ import { TableColumn, TableColumnProp } from '../../../types/table-column.type';
2
3
  import * as i0 from "@angular/core";
3
4
  export interface ISummaryColumn {
4
5
  summaryFunc?: (cells: any[]) => any;
5
6
  summaryTemplate?: TemplateRef<any>;
6
- prop: string;
7
+ prop?: TableColumnProp;
7
8
  pipe?: PipeTransform;
8
9
  }
9
10
  export declare class DataTableSummaryRowComponent implements OnChanges {
10
11
  rows: any[];
11
- columns: ISummaryColumn[];
12
+ columns: TableColumn[];
12
13
  rowHeight: number;
13
14
  offsetX: number;
14
15
  innerWidth: number;
@@ -19,5 +20,5 @@ export declare class DataTableSummaryRowComponent implements OnChanges {
19
20
  private updateValues;
20
21
  private getSummaryFunction;
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<DataTableSummaryRowComponent, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<DataTableSummaryRowComponent, "datatable-summary-row", never, { "rows": "rows"; "columns": "columns"; "rowHeight": "rowHeight"; "offsetX": "offsetX"; "innerWidth": "innerWidth"; }, {}, never, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataTableSummaryRowComponent, "datatable-summary-row", never, { "rows": { "alias": "rows"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "offsetX": { "alias": "offsetX"; "required": false; }; "innerWidth": { "alias": "innerWidth"; "required": false; }; }, {}, never, never, true, never>;
23
24
  }
@@ -1,8 +1,9 @@
1
1
  import { TemplateRef } from '@angular/core';
2
+ import { CellContext } from '../../types/public.types';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class DataTableColumnCellDirective {
4
- template: TemplateRef<any>;
5
- constructor(template: TemplateRef<any>);
5
+ template: TemplateRef<CellContext<any>>;
6
+ static ngTemplateContextGuard(dir: DataTableColumnCellDirective, ctx: any): ctx is CellContext;
6
7
  static ɵfac: i0.ɵɵFactoryDeclaration<DataTableColumnCellDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableColumnCellDirective, "[ngx-datatable-cell-template]", never, {}, {}, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableColumnCellDirective, "[ngx-datatable-cell-template]", never, {}, {}, never, never, true, never>;
8
9
  }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class DataTableColumnGhostCellDirective {
3
+ static ngTemplateContextGuard(directive: DataTableColumnGhostCellDirective, context: unknown): context is void;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataTableColumnGhostCellDirective, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableColumnGhostCellDirective, "[ngx-datatable-ghost-cell-template]", never, {}, {}, never, never, true, never>;
6
+ }
@@ -1,8 +1,7 @@
1
- import { TemplateRef } from '@angular/core';
1
+ import { HeaderCellContext } from '../../types/public.types';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class DataTableColumnHeaderDirective {
4
- template: TemplateRef<any>;
5
- constructor(template: TemplateRef<any>);
4
+ static ngTemplateContextGuard(directive: DataTableColumnHeaderDirective, context: unknown): context is HeaderCellContext;
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<DataTableColumnHeaderDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableColumnHeaderDirective, "[ngx-datatable-header-template]", never, {}, {}, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableColumnHeaderDirective, "[ngx-datatable-header-template]", never, {}, {}, never, never, true, never>;
8
7
  }