@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,17 +1,18 @@
1
- import { TemplateRef, OnChanges } from '@angular/core';
2
- import { ColumnChangesService } from '../../services/column-changes.service';
3
- import { TableColumnProp } from '../../types/table-column.type';
1
+ import { OnChanges, PipeTransform, TemplateRef } from '@angular/core';
2
+ import { TableColumn, TableColumnProp } from '../../types/table-column.type';
3
+ import { CellContext, HeaderCellContext } from '../../types/public.types';
4
4
  import * as i0 from "@angular/core";
5
- export declare class DataTableColumnDirective implements OnChanges {
5
+ export declare class DataTableColumnDirective<TRow> implements TableColumn, OnChanges {
6
6
  private columnChangesService;
7
7
  name: string;
8
8
  prop: TableColumnProp;
9
- frozenLeft: any;
10
- frozenRight: any;
9
+ bindAsUnsafeHtml?: boolean;
10
+ frozenLeft: boolean;
11
+ frozenRight: boolean;
11
12
  flexGrow: number;
12
13
  resizeable: boolean;
13
14
  comparator: any;
14
- pipe: any;
15
+ pipe: PipeTransform;
15
16
  sortable: boolean;
16
17
  draggable: boolean;
17
18
  canAutoResize: boolean;
@@ -20,24 +21,48 @@ export declare class DataTableColumnDirective implements OnChanges {
20
21
  maxWidth: number;
21
22
  checkboxable: boolean;
22
23
  headerCheckboxable: boolean;
23
- headerClass: string | ((data: any) => string | any);
24
- cellClass: string | ((data: any) => string | any);
24
+ headerClass: string | ((data: {
25
+ column: TableColumn;
26
+ }) => string | Record<string, boolean>);
27
+ cellClass?: string | ((data: {
28
+ row: TRow;
29
+ group?: TRow[];
30
+ column: TableColumn<TRow>;
31
+ value: any;
32
+ rowHeight: number;
33
+ }) => string | Record<string, boolean>);
25
34
  isTreeColumn: boolean;
26
35
  treeLevelIndent: number;
27
36
  summaryFunc: (cells: any[]) => any;
28
37
  summaryTemplate: TemplateRef<any>;
29
- _cellTemplateInput: TemplateRef<any>;
30
- _cellTemplateQuery: TemplateRef<any>;
31
- get cellTemplate(): TemplateRef<any>;
32
- _headerTemplateInput: TemplateRef<any>;
33
- _headerTemplateQuery: TemplateRef<any>;
34
- get headerTemplate(): TemplateRef<any>;
38
+ _cellTemplateInput: TemplateRef<CellContext<TRow>>;
39
+ _cellTemplateQuery: TemplateRef<CellContext<TRow>>;
40
+ get cellTemplate(): TemplateRef<CellContext<TRow>>;
41
+ _headerTemplateInput: TemplateRef<HeaderCellContext>;
42
+ _headerTemplateQuery: TemplateRef<HeaderCellContext>;
43
+ get headerTemplate(): TemplateRef<HeaderCellContext>;
35
44
  _treeToggleTemplateInput: TemplateRef<any>;
36
45
  _treeToggleTemplateQuery: TemplateRef<any>;
37
46
  get treeToggleTemplate(): TemplateRef<any>;
47
+ _ghostCellTemplateInput: TemplateRef<void>;
48
+ _ghostCellTemplateQuery: TemplateRef<void>;
49
+ get ghostCellTemplate(): TemplateRef<void>;
38
50
  private isFirstChange;
39
- constructor(columnChangesService: ColumnChangesService);
40
51
  ngOnChanges(): void;
41
- static ɵfac: i0.ɵɵFactoryDeclaration<DataTableColumnDirective, never>;
42
- static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableColumnDirective, "ngx-datatable-column", never, { "name": "name"; "prop": "prop"; "frozenLeft": "frozenLeft"; "frozenRight": "frozenRight"; "flexGrow": "flexGrow"; "resizeable": "resizeable"; "comparator": "comparator"; "pipe": "pipe"; "sortable": "sortable"; "draggable": "draggable"; "canAutoResize": "canAutoResize"; "minWidth": "minWidth"; "width": "width"; "maxWidth": "maxWidth"; "checkboxable": "checkboxable"; "headerCheckboxable": "headerCheckboxable"; "headerClass": "headerClass"; "cellClass": "cellClass"; "isTreeColumn": "isTreeColumn"; "treeLevelIndent": "treeLevelIndent"; "summaryFunc": "summaryFunc"; "summaryTemplate": "summaryTemplate"; "_cellTemplateInput": "cellTemplate"; "_headerTemplateInput": "headerTemplate"; "_treeToggleTemplateInput": "treeToggleTemplate"; }, {}, ["_cellTemplateQuery", "_headerTemplateQuery", "_treeToggleTemplateQuery"]>;
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataTableColumnDirective<any>, never>;
53
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableColumnDirective<any>, "ngx-datatable-column", never, { "name": { "alias": "name"; "required": false; }; "prop": { "alias": "prop"; "required": false; }; "bindAsUnsafeHtml": { "alias": "bindAsUnsafeHtml"; "required": false; }; "frozenLeft": { "alias": "frozenLeft"; "required": false; }; "frozenRight": { "alias": "frozenRight"; "required": false; }; "flexGrow": { "alias": "flexGrow"; "required": false; }; "resizeable": { "alias": "resizeable"; "required": false; }; "comparator": { "alias": "comparator"; "required": false; }; "pipe": { "alias": "pipe"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "canAutoResize": { "alias": "canAutoResize"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "width": { "alias": "width"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "checkboxable": { "alias": "checkboxable"; "required": false; }; "headerCheckboxable": { "alias": "headerCheckboxable"; "required": false; }; "headerClass": { "alias": "headerClass"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "isTreeColumn": { "alias": "isTreeColumn"; "required": false; }; "treeLevelIndent": { "alias": "treeLevelIndent"; "required": false; }; "summaryFunc": { "alias": "summaryFunc"; "required": false; }; "summaryTemplate": { "alias": "summaryTemplate"; "required": false; }; "_cellTemplateInput": { "alias": "cellTemplate"; "required": false; }; "_headerTemplateInput": { "alias": "headerTemplate"; "required": false; }; "_treeToggleTemplateInput": { "alias": "treeToggleTemplate"; "required": false; }; "_ghostCellTemplateInput": { "alias": "ghostCellTemplate"; "required": false; }; }, {}, ["_cellTemplateQuery", "_headerTemplateQuery", "_treeToggleTemplateQuery", "_ghostCellTemplateQuery"], never, true, never>;
54
+ static ngAcceptInputType_bindAsUnsafeHtml: unknown;
55
+ static ngAcceptInputType_frozenLeft: unknown;
56
+ static ngAcceptInputType_frozenRight: unknown;
57
+ static ngAcceptInputType_flexGrow: unknown;
58
+ static ngAcceptInputType_resizeable: unknown;
59
+ static ngAcceptInputType_sortable: unknown;
60
+ static ngAcceptInputType_draggable: unknown;
61
+ static ngAcceptInputType_canAutoResize: unknown;
62
+ static ngAcceptInputType_minWidth: unknown;
63
+ static ngAcceptInputType_width: unknown;
64
+ static ngAcceptInputType_maxWidth: unknown;
65
+ static ngAcceptInputType_checkboxable: unknown;
66
+ static ngAcceptInputType_headerCheckboxable: unknown;
67
+ static ngAcceptInputType_isTreeColumn: unknown;
43
68
  }
@@ -2,7 +2,6 @@ import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class DataTableColumnCellTreeToggle {
4
4
  template: TemplateRef<any>;
5
- constructor(template: TemplateRef<any>);
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<DataTableColumnCellTreeToggle, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableColumnCellTreeToggle, "[ngx-datatable-tree-toggle]", never, {}, {}, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableColumnCellTreeToggle, "[ngx-datatable-tree-toggle]", never, {}, {}, never, never, true, never>;
8
7
  }
@@ -1,44 +1,37 @@
1
- import { ElementRef, EventEmitter, OnInit, QueryList, AfterViewInit, DoCheck, KeyValueDiffers, KeyValueDiffer, ChangeDetectorRef } from '@angular/core';
1
+ import { AfterContentInit, AfterViewInit, DoCheck, EventEmitter, IterableDiffer, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
2
2
  import { DatatableGroupHeaderDirective } from './body/body-group-header.directive';
3
3
  import { BehaviorSubject, Subscription } from 'rxjs';
4
4
  import { INgxDatatableConfig } from '../ngx-datatable.module';
5
5
  import { TableColumn } from '../types/table-column.type';
6
- import { ColumnMode } from '../types/column-mode.type';
7
- import { SelectionType } from '../types/selection.type';
8
- import { SortType } from '../types/sort.type';
9
- import { ContextmenuType } from '../types/contextmenu.type';
10
6
  import { DataTableColumnDirective } from './columns/column.directive';
11
7
  import { DatatableRowDetailDirective } from './row-detail/row-detail.directive';
12
8
  import { DatatableFooterDirective } from './footer/footer.directive';
13
9
  import { DataTableBodyComponent } from './body/body.component';
14
10
  import { DataTableHeaderComponent } from './header/header.component';
15
- import { ScrollbarHelper } from '../services/scrollbar-helper.service';
16
- import { ColumnChangesService } from '../services/column-changes.service';
17
- import { DimensionsHelper } from '../services/dimensions-helper.service';
11
+ import { ActivateEvent, ColumnMode, ColumnResizeEvent, ContextmenuType, DragEventData, Group, PageEvent, PagerPageEvent, ReorderEvent, RowOrGroup, ScrollEvent, SelectionType, SortEvent, SortPropDir, SortType, TreeStatus } from '../types/public.types';
18
12
  import * as i0 from "@angular/core";
19
- export declare class DatatableComponent implements OnInit, DoCheck, AfterViewInit {
13
+ export declare class DatatableComponent<TRow = any> implements OnInit, DoCheck, AfterViewInit, AfterContentInit, OnDestroy {
20
14
  private scrollbarHelper;
21
- private dimensionsHelper;
22
15
  private cd;
23
16
  private columnChangesService;
24
17
  private configuration;
25
18
  /**
26
19
  * Template for the target marker of drag target columns.
27
20
  */
28
- targetMarkerTemplate: any;
21
+ targetMarkerTemplate: TemplateRef<unknown>;
29
22
  /**
30
23
  * Rows that are displayed in the table.
31
24
  */
32
- set rows(val: any);
25
+ set rows(val: TRow[] | null | undefined);
33
26
  /**
34
27
  * Gets the rows.
35
28
  */
36
- get rows(): any;
29
+ get rows(): TRow[];
37
30
  /**
38
31
  * This attribute allows the user to set the name of the column to group the data with
39
32
  */
40
- set groupRowsBy(val: string);
41
- get groupRowsBy(): string;
33
+ set groupRowsBy(val: keyof TRow);
34
+ get groupRowsBy(): keyof TRow;
42
35
  /**
43
36
  * This attribute allows the user to set a grouped array in the following format:
44
37
  * [
@@ -54,7 +47,7 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
54
47
  * ]}
55
48
  * ]
56
49
  */
57
- groupedRows: any[];
50
+ groupedRows: Group<TRow>[];
58
51
  /**
59
52
  * Columns to be displayed.
60
53
  */
@@ -68,11 +61,18 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
68
61
  * represented as selected in the grid.
69
62
  * Default value: `[]`
70
63
  */
71
- selected: any[];
64
+ selected: TRow[];
72
65
  /**
73
66
  * Enable vertical scrollbars
74
67
  */
75
68
  scrollbarV: boolean;
69
+ /**
70
+ * Enable vertical scrollbars dynamically on demand.
71
+ * Property `scrollbarV` needs to be set `true` too.
72
+ * Width that is gained when no scrollbar is needed
73
+ * is added to the inner table width.
74
+ */
75
+ scrollbarVDynamic: boolean;
76
76
  /**
77
77
  * Enable horz scrollbars
78
78
  */
@@ -81,7 +81,7 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
81
81
  * The row height; which is necessary
82
82
  * to calculate the height for the lazy rendering.
83
83
  */
84
- rowHeight: number | 'auto' | ((row?: any) => number);
84
+ rowHeight: number | 'auto' | ((row?: TRow) => number);
85
85
  /**
86
86
  * Type of column width distribution formula.
87
87
  * Example: flex, force, standard
@@ -136,6 +136,12 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
136
136
  * Default value: `false`
137
137
  */
138
138
  loadingIndicator: boolean;
139
+ /**
140
+ * Show ghost loaders on each cell.
141
+ * Default value: `false`
142
+ */
143
+ set ghostLoadingIndicator(val: boolean);
144
+ get ghostLoadingIndicator(): boolean;
139
145
  /**
140
146
  * Type of row selection. Options are:
141
147
  *
@@ -167,11 +173,11 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
167
173
  * Array of sorted columns by property and type.
168
174
  * Default value: `[]`
169
175
  */
170
- sorts: any[];
176
+ sorts: SortPropDir[];
171
177
  /**
172
178
  * Css class overrides
173
179
  */
174
- cssClasses: any;
180
+ cssClasses: Partial<INgxDatatableConfig['cssClasses']>;
175
181
  /**
176
182
  * Message overrides for localization
177
183
  *
@@ -179,15 +185,13 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
179
185
  * totalMessage [default] = 'total'
180
186
  * selectedMessage [default] = 'selected'
181
187
  */
182
- messages: any;
188
+ messages: Partial<INgxDatatableConfig['messages']>;
183
189
  /**
184
- * Row specific classes.
185
- * Similar implementation to ngClass.
186
- *
187
- * [rowClass]="'first second'"
188
- * [rowClass]="{ 'first': true, 'second': true, 'third': false }"
190
+ * A function which is called with the row and should return either:
191
+ * - a string: `"class-1 class-2`
192
+ * - a Record<string, boolean>: `{ 'class-1': true, 'class-2': false }`
189
193
  */
190
- rowClass: any;
194
+ rowClass: (row: Group<TRow> | TRow) => string | Record<string, boolean>;
191
195
  /**
192
196
  * A boolean/function you can use to check whether you want
193
197
  * to select a particular row based on a criteria. Example:
@@ -196,7 +200,7 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
196
200
  * return selection !== 'Ethel Price';
197
201
  * }
198
202
  */
199
- selectCheck: any;
203
+ selectCheck: (value: TRow, index: number, array: TRow[]) => boolean;
200
204
  /**
201
205
  * A function you can use to check whether you want
202
206
  * to show the checkbox for a particular row based on a criteria. Example:
@@ -205,7 +209,7 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
205
209
  * return row.name !== 'Ethel Price';
206
210
  * }
207
211
  */
208
- displayCheck: (row: any, column?: any, value?: any) => boolean;
212
+ displayCheck: (row: TRow, column: TableColumn, value?: any) => boolean;
209
213
  /**
210
214
  * A boolean you can use to set the detault behaviour of rows and groups
211
215
  * whether they will start expanded or not. If ommited the default is NOT expanded.
@@ -220,8 +224,6 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
220
224
  /**
221
225
  * Property to which you can use for determining select all
222
226
  * rows on current page or not.
223
- *
224
- * @memberOf DatatableComponent
225
227
  */
226
228
  selectAllRowsOnPage: boolean;
227
229
  /**
@@ -248,34 +250,56 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
248
250
  * A property holds a summary row position: top/bottom
249
251
  */
250
252
  summaryPosition: string;
253
+ /**
254
+ * A function you can use to check whether you want
255
+ * to disable a row. Example:
256
+ *
257
+ * (row) => {
258
+ * return row.name !== 'Ethel Price';
259
+ * }
260
+ */
261
+ disableRowCheck: (row: TRow) => boolean;
262
+ /**
263
+ * A flag to enable drag behavior of native HTML5 drag and drop API on rows.
264
+ * If set to true, {@link rowDragEvents} will emit dragstart and dragend events.
265
+ */
266
+ rowDraggable: boolean;
267
+ /**
268
+ * A flag to controll behavior of sort states.
269
+ * By default sort on column toggles between ascending and descending without getting removed.
270
+ * Set true to clear sorting of column after performing ascending and descending sort on that column.
271
+ */
272
+ enableClearingSortState: boolean;
251
273
  /**
252
274
  * Body was scrolled typically in a `scrollbarV:true` scenario.
253
275
  */
254
- scroll: EventEmitter<any>;
276
+ scroll: EventEmitter<ScrollEvent>;
255
277
  /**
256
278
  * A cell or row was focused via keyboard or mouse click.
257
279
  */
258
- activate: EventEmitter<any>;
280
+ activate: EventEmitter<ActivateEvent<TRow>>;
259
281
  /**
260
282
  * A cell or row was selected.
261
283
  */
262
- select: EventEmitter<any>;
284
+ select: EventEmitter<{
285
+ selected: TRow[];
286
+ }>;
263
287
  /**
264
288
  * Column sort was invoked.
265
289
  */
266
- sort: EventEmitter<any>;
290
+ sort: EventEmitter<SortEvent>;
267
291
  /**
268
292
  * The table was paged either triggered by the pager or the body scroll.
269
293
  */
270
- page: EventEmitter<any>;
294
+ page: EventEmitter<PageEvent>;
271
295
  /**
272
296
  * Columns were re-ordered.
273
297
  */
274
- reorder: EventEmitter<any>;
298
+ reorder: EventEmitter<ReorderEvent>;
275
299
  /**
276
300
  * Column was resized.
277
301
  */
278
- resize: EventEmitter<any>;
302
+ resize: EventEmitter<ColumnResizeEvent>;
279
303
  /**
280
304
  * The context menu was invoked on the table.
281
305
  * type indicates whether the header or the body was clicked.
@@ -284,12 +308,21 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
284
308
  tableContextmenu: EventEmitter<{
285
309
  event: MouseEvent;
286
310
  type: ContextmenuType;
287
- content: any;
311
+ content: TableColumn | RowOrGroup<TRow>;
288
312
  }>;
289
313
  /**
290
314
  * A row was expanded ot collapsed for tree
291
315
  */
292
- treeAction: EventEmitter<any>;
316
+ treeAction: EventEmitter<{
317
+ row: TRow;
318
+ rowIndex: number;
319
+ }>;
320
+ /**
321
+ * Emits HTML5 native drag events.
322
+ * Only emits dragenter, dragover, drop events by default.
323
+ * Set {@link rowDraggble} to true for dragstart and dragend.
324
+ */
325
+ rowDragEvents: EventEmitter<DragEventData>;
293
326
  /**
294
327
  * CSS class applied if the header height if fixed height.
295
328
  */
@@ -342,11 +375,7 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
342
375
  * Column templates gathered from `ContentChildren`
343
376
  * if described in your markup.
344
377
  */
345
- set columnTemplates(val: QueryList<DataTableColumnDirective>);
346
- /**
347
- * Returns the column templates.
348
- */
349
- get columnTemplates(): QueryList<DataTableColumnDirective>;
378
+ columnTemplates: QueryList<DataTableColumnDirective<TRow>>;
350
379
  /**
351
380
  * Row Detail templates gathered from the ContentChild
352
381
  */
@@ -363,14 +392,16 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
363
392
  * Reference to the body component for manually
364
393
  * invoking functions on the body.
365
394
  */
366
- bodyComponent: DataTableBodyComponent;
395
+ bodyComponent: DataTableBodyComponent<TRow & {
396
+ treeStatus?: TreeStatus;
397
+ }>;
367
398
  /**
368
399
  * Reference to the header component for manually
369
400
  * invoking functions on the header.
370
- *
371
- * @memberOf DatatableComponent
372
401
  */
373
402
  headerComponent: DataTableHeaderComponent;
403
+ private bodyElement;
404
+ rowDefTemplate?: TemplateRef<any>;
374
405
  /**
375
406
  * Returns if all rows are selected.
376
407
  */
@@ -380,19 +411,22 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
380
411
  pageSize: number;
381
412
  bodyHeight: number;
382
413
  rowCount: number;
383
- rowDiffer: KeyValueDiffer<{}, {}>;
414
+ rowDiffer: IterableDiffer<TRow>;
384
415
  _offsetX: BehaviorSubject<number>;
385
416
  _limit: number | undefined;
386
417
  _count: number;
387
418
  _offset: number;
388
- _rows: any[];
389
- _groupRowsBy: string;
390
- _internalRows: any[];
419
+ _rows: TRow[] | null | undefined;
420
+ _groupRowsBy: keyof TRow;
421
+ _internalRows: TRow[];
391
422
  _internalColumns: TableColumn[];
392
423
  _columns: TableColumn[];
393
- _columnTemplates: QueryList<DataTableColumnDirective>;
394
424
  _subscriptions: Subscription[];
395
- constructor(scrollbarHelper: ScrollbarHelper, dimensionsHelper: DimensionsHelper, cd: ChangeDetectorRef, element: ElementRef, differs: KeyValueDiffers, columnChangesService: ColumnChangesService, configuration: INgxDatatableConfig);
425
+ _ghostLoadingIndicator: boolean;
426
+ _defaultColumnWidth?: number;
427
+ protected verticalScrollVisible: boolean;
428
+ private _rowInitDone;
429
+ constructor();
396
430
  /**
397
431
  * Lifecycle hook that is called after data-bound
398
432
  * properties of a directive are initialized.
@@ -414,20 +448,20 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
414
448
  *
415
449
  * (`fn(x) === fn(y)` instead of `x === y`)
416
450
  */
417
- rowIdentity: (x: any) => any;
451
+ rowIdentity: (x: TRow | Group<TRow>) => unknown;
418
452
  /**
419
453
  * Translates the templates to the column objects
420
454
  */
421
- translateColumns(val: any): void;
455
+ translateColumns(val: QueryList<DataTableColumnDirective<TRow>>): void;
422
456
  /**
423
457
  * Creates a map with the data grouped by the user choice of grouping index
424
458
  *
425
459
  * @param originalArray the original array passed via parameter
426
- * @param groupByIndex the index of the column to group the data by
460
+ * @param groupBy the key of the column to group the data by
427
461
  */
428
- groupArrayBy(originalArray: any, groupBy: any): {
429
- key: any;
430
- value: any;
462
+ groupArrayBy(originalArray: TRow[], groupBy: keyof TRow): {
463
+ key: TRow[keyof TRow];
464
+ value: TRow[];
431
465
  }[];
432
466
  ngDoCheck(): void;
433
467
  /**
@@ -450,7 +484,7 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
450
484
  * Recalulcates the column widths based on column width
451
485
  * distribution mode and scrollbar offsets.
452
486
  */
453
- recalculateColumns(columns?: any[], forceIdx?: number, allowBleed?: boolean): any[] | undefined;
487
+ recalculateColumns(columns?: TableColumn[], forceIdx?: number, allowBleed?: boolean): TableColumn[] | undefined;
454
488
  /**
455
489
  * Recalculates the dimensions of the table size.
456
490
  * Internally calls the page size and row count calcs too.
@@ -464,55 +498,66 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
464
498
  /**
465
499
  * Body triggered a page event.
466
500
  */
467
- onBodyPage({ offset }: any): void;
501
+ onBodyPage(offset: number): void;
468
502
  /**
469
503
  * The body triggered a scroll event.
470
504
  */
471
- onBodyScroll(event: MouseEvent): void;
505
+ onBodyScroll(event: ScrollEvent): void;
472
506
  /**
473
507
  * The footer triggered a page event.
474
508
  */
475
- onFooterPage(event: any): void;
509
+ onFooterPage(event: PagerPageEvent): void;
476
510
  /**
477
511
  * Recalculates the sizes of the page
478
512
  */
479
- calcPageSize(val?: any[]): number;
513
+ calcPageSize(): number;
480
514
  /**
481
515
  * Calculates the row count.
482
516
  */
483
- calcRowCount(val?: any[]): number;
517
+ calcRowCount(): number;
484
518
  /**
485
519
  * The header triggered a contextmenu event.
486
520
  */
487
- onColumnContextmenu({ event, column }: any): void;
521
+ onColumnContextmenu({ event, column }: {
522
+ event: MouseEvent;
523
+ column: TableColumn;
524
+ }): void;
488
525
  /**
489
526
  * The body triggered a contextmenu event.
490
527
  */
491
- onRowContextmenu({ event, row }: any): void;
528
+ onRowContextmenu({ event, row }: {
529
+ event: MouseEvent;
530
+ row: RowOrGroup<TRow>;
531
+ }): void;
492
532
  /**
493
533
  * The header triggered a column resize event.
494
534
  */
495
- onColumnResize({ column, newValue }: any): void;
535
+ onColumnResize({ column, newValue, prevValue }: ColumnResizeEvent): void;
536
+ onColumnResizing({ column, newValue }: ColumnResizeEvent): void;
496
537
  /**
497
538
  * The header triggered a column re-order event.
498
539
  */
499
- onColumnReorder({ column, newValue, prevValue }: any): void;
540
+ onColumnReorder({ column, newValue, prevValue }: ReorderEvent): void;
500
541
  /**
501
542
  * The header triggered a column sort event.
502
543
  */
503
- onColumnSort(event: any): void;
544
+ onColumnSort(event: SortEvent): void;
504
545
  /**
505
546
  * Toggle all row selection
506
547
  */
507
- onHeaderSelect(event: any): void;
548
+ onHeaderSelect(): void;
508
549
  /**
509
550
  * A row was selected from body
510
551
  */
511
- onBodySelect(event: any): void;
552
+ onBodySelect(event: {
553
+ selected: TRow[];
554
+ }): void;
512
555
  /**
513
556
  * A row was expanded or collapsed for tree
514
557
  */
515
- onTreeAction(event: any): void;
558
+ onTreeAction(event: {
559
+ row: TRow;
560
+ }): void;
516
561
  ngOnDestroy(): void;
517
562
  /**
518
563
  * listen for changes to input bindings of all DataTableColumnDirective and
@@ -520,6 +565,27 @@ export declare class DatatableComponent implements OnInit, DoCheck, AfterViewIni
520
565
  */
521
566
  private listenForColumnInputChanges;
522
567
  private sortInternalRows;
523
- static ɵfac: i0.ɵɵFactoryDeclaration<DatatableComponent, [{ skipSelf: true; }, { skipSelf: true; }, null, null, null, null, { optional: true; }]>;
524
- static ɵcmp: i0.ɵɵComponentDeclaration<DatatableComponent, "ngx-datatable", never, { "targetMarkerTemplate": "targetMarkerTemplate"; "rows": "rows"; "groupRowsBy": "groupRowsBy"; "groupedRows": "groupedRows"; "columns": "columns"; "selected": "selected"; "scrollbarV": "scrollbarV"; "scrollbarH": "scrollbarH"; "rowHeight": "rowHeight"; "columnMode": "columnMode"; "headerHeight": "headerHeight"; "footerHeight": "footerHeight"; "externalPaging": "externalPaging"; "externalSorting": "externalSorting"; "limit": "limit"; "count": "count"; "offset": "offset"; "loadingIndicator": "loadingIndicator"; "selectionType": "selectionType"; "reorderable": "reorderable"; "swapColumns": "swapColumns"; "sortType": "sortType"; "sorts": "sorts"; "cssClasses": "cssClasses"; "messages": "messages"; "rowClass": "rowClass"; "selectCheck": "selectCheck"; "displayCheck": "displayCheck"; "groupExpansionDefault": "groupExpansionDefault"; "trackByProp": "trackByProp"; "selectAllRowsOnPage": "selectAllRowsOnPage"; "virtualization": "virtualization"; "treeFromRelation": "treeFromRelation"; "treeToRelation": "treeToRelation"; "summaryRow": "summaryRow"; "summaryHeight": "summaryHeight"; "summaryPosition": "summaryPosition"; "rowIdentity": "rowIdentity"; }, { "scroll": "scroll"; "activate": "activate"; "select": "select"; "sort": "sort"; "page": "page"; "reorder": "reorder"; "resize": "resize"; "tableContextmenu": "tableContextmenu"; "treeAction": "treeAction"; }, ["rowDetail", "groupHeader", "footer", "columnTemplates"], never>;
568
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatatableComponent<any>, never>;
569
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatatableComponent<any>, "ngx-datatable", never, { "targetMarkerTemplate": { "alias": "targetMarkerTemplate"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "groupRowsBy": { "alias": "groupRowsBy"; "required": false; }; "groupedRows": { "alias": "groupedRows"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "scrollbarV": { "alias": "scrollbarV"; "required": false; }; "scrollbarVDynamic": { "alias": "scrollbarVDynamic"; "required": false; }; "scrollbarH": { "alias": "scrollbarH"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "columnMode": { "alias": "columnMode"; "required": false; }; "headerHeight": { "alias": "headerHeight"; "required": false; }; "footerHeight": { "alias": "footerHeight"; "required": false; }; "externalPaging": { "alias": "externalPaging"; "required": false; }; "externalSorting": { "alias": "externalSorting"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; "count": { "alias": "count"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "loadingIndicator": { "alias": "loadingIndicator"; "required": false; }; "ghostLoadingIndicator": { "alias": "ghostLoadingIndicator"; "required": false; }; "selectionType": { "alias": "selectionType"; "required": false; }; "reorderable": { "alias": "reorderable"; "required": false; }; "swapColumns": { "alias": "swapColumns"; "required": false; }; "sortType": { "alias": "sortType"; "required": false; }; "sorts": { "alias": "sorts"; "required": false; }; "cssClasses": { "alias": "cssClasses"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "selectCheck": { "alias": "selectCheck"; "required": false; }; "displayCheck": { "alias": "displayCheck"; "required": false; }; "groupExpansionDefault": { "alias": "groupExpansionDefault"; "required": false; }; "trackByProp": { "alias": "trackByProp"; "required": false; }; "selectAllRowsOnPage": { "alias": "selectAllRowsOnPage"; "required": false; }; "virtualization": { "alias": "virtualization"; "required": false; }; "treeFromRelation": { "alias": "treeFromRelation"; "required": false; }; "treeToRelation": { "alias": "treeToRelation"; "required": false; }; "summaryRow": { "alias": "summaryRow"; "required": false; }; "summaryHeight": { "alias": "summaryHeight"; "required": false; }; "summaryPosition": { "alias": "summaryPosition"; "required": false; }; "disableRowCheck": { "alias": "disableRowCheck"; "required": false; }; "rowDraggable": { "alias": "rowDraggable"; "required": false; }; "enableClearingSortState": { "alias": "enableClearingSortState"; "required": false; }; "rowIdentity": { "alias": "rowIdentity"; "required": false; }; }, { "scroll": "scroll"; "activate": "activate"; "select": "select"; "sort": "sort"; "page": "page"; "reorder": "reorder"; "resize": "resize"; "tableContextmenu": "tableContextmenu"; "treeAction": "treeAction"; "rowDragEvents": "rowDragEvents"; }, ["rowDetail", "groupHeader", "footer", "rowDefTemplate", "columnTemplates"], ["[loading-indicator]", "[empty-content]"], true, never>;
570
+ static ngAcceptInputType_scrollbarV: unknown;
571
+ static ngAcceptInputType_scrollbarVDynamic: unknown;
572
+ static ngAcceptInputType_scrollbarH: unknown;
573
+ static ngAcceptInputType_headerHeight: unknown;
574
+ static ngAcceptInputType_footerHeight: unknown;
575
+ static ngAcceptInputType_externalPaging: unknown;
576
+ static ngAcceptInputType_externalSorting: unknown;
577
+ static ngAcceptInputType_limit: unknown;
578
+ static ngAcceptInputType_count: unknown;
579
+ static ngAcceptInputType_offset: unknown;
580
+ static ngAcceptInputType_loadingIndicator: unknown;
581
+ static ngAcceptInputType_ghostLoadingIndicator: unknown;
582
+ static ngAcceptInputType_reorderable: unknown;
583
+ static ngAcceptInputType_swapColumns: unknown;
584
+ static ngAcceptInputType_groupExpansionDefault: unknown;
585
+ static ngAcceptInputType_selectAllRowsOnPage: unknown;
586
+ static ngAcceptInputType_virtualization: unknown;
587
+ static ngAcceptInputType_summaryRow: unknown;
588
+ static ngAcceptInputType_summaryHeight: unknown;
589
+ static ngAcceptInputType_rowDraggable: unknown;
590
+ static ngAcceptInputType_enableClearingSortState: unknown;
525
591
  }
@@ -1,8 +1,7 @@
1
- import { TemplateRef } from '@angular/core';
1
+ import { FooterContext } from '../../types/public.types';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class DataTableFooterTemplateDirective {
4
- template: TemplateRef<any>;
5
- constructor(template: TemplateRef<any>);
4
+ static ngTemplateContextGuard(directive: DataTableFooterTemplateDirective, context: unknown): context is FooterContext;
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<DataTableFooterTemplateDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableFooterTemplateDirective, "[ngx-datatable-footer-template]", never, {}, {}, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableFooterTemplateDirective, "[ngx-datatable-footer-template]", never, {}, {}, never, never, true, never>;
8
7
  }
@@ -1,5 +1,6 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { DatatableFooterDirective } from './footer.directive';
3
+ import { PagerPageEvent } from '../../types/public.types';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class DataTableFooterComponent {
5
6
  footerHeight: number;
@@ -14,9 +15,9 @@ export declare class DataTableFooterComponent {
14
15
  footerTemplate: DatatableFooterDirective;
15
16
  selectedCount: number;
16
17
  selectedMessage: string | boolean;
17
- page: EventEmitter<any>;
18
+ page: EventEmitter<PagerPageEvent>;
18
19
  get isVisible(): boolean;
19
20
  get curPage(): number;
20
21
  static ɵfac: i0.ɵɵFactoryDeclaration<DataTableFooterComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<DataTableFooterComponent, "datatable-footer", never, { "footerHeight": "footerHeight"; "rowCount": "rowCount"; "pageSize": "pageSize"; "offset": "offset"; "pagerLeftArrowIcon": "pagerLeftArrowIcon"; "pagerRightArrowIcon": "pagerRightArrowIcon"; "pagerPreviousIcon": "pagerPreviousIcon"; "pagerNextIcon": "pagerNextIcon"; "totalMessage": "totalMessage"; "footerTemplate": "footerTemplate"; "selectedCount": "selectedCount"; "selectedMessage": "selectedMessage"; }, { "page": "page"; }, never, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataTableFooterComponent, "datatable-footer", never, { "footerHeight": { "alias": "footerHeight"; "required": false; }; "rowCount": { "alias": "rowCount"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "pagerLeftArrowIcon": { "alias": "pagerLeftArrowIcon"; "required": false; }; "pagerRightArrowIcon": { "alias": "pagerRightArrowIcon"; "required": false; }; "pagerPreviousIcon": { "alias": "pagerPreviousIcon"; "required": false; }; "pagerNextIcon": { "alias": "pagerNextIcon"; "required": false; }; "totalMessage": { "alias": "totalMessage"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "selectedCount": { "alias": "selectedCount"; "required": false; }; "selectedMessage": { "alias": "selectedMessage"; "required": false; }; }, { "page": "page"; }, never, never, true, never>;
22
23
  }
@@ -1,4 +1,5 @@
1
1
  import { TemplateRef } from '@angular/core';
2
+ import { FooterContext } from '../../types/public.types';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class DatatableFooterDirective {
4
5
  footerHeight: number;
@@ -8,9 +9,10 @@ export declare class DatatableFooterDirective {
8
9
  pagerRightArrowIcon: string;
9
10
  pagerPreviousIcon: string;
10
11
  pagerNextIcon: string;
11
- _templateInput: TemplateRef<any>;
12
- _templateQuery: TemplateRef<any>;
13
- get template(): TemplateRef<any>;
12
+ _templateInput: TemplateRef<FooterContext>;
13
+ _templateQuery: TemplateRef<FooterContext>;
14
+ get template(): TemplateRef<FooterContext>;
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<DatatableFooterDirective, never>;
15
- static ɵdir: i0.ɵɵDirectiveDeclaration<DatatableFooterDirective, "ngx-datatable-footer", never, { "footerHeight": "footerHeight"; "totalMessage": "totalMessage"; "selectedMessage": "selectedMessage"; "pagerLeftArrowIcon": "pagerLeftArrowIcon"; "pagerRightArrowIcon": "pagerRightArrowIcon"; "pagerPreviousIcon": "pagerPreviousIcon"; "pagerNextIcon": "pagerNextIcon"; "_templateInput": "template"; }, {}, ["_templateQuery"]>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DatatableFooterDirective, "ngx-datatable-footer", never, { "footerHeight": { "alias": "footerHeight"; "required": false; }; "totalMessage": { "alias": "totalMessage"; "required": false; }; "selectedMessage": { "alias": "selectedMessage"; "required": false; }; "pagerLeftArrowIcon": { "alias": "pagerLeftArrowIcon"; "required": false; }; "pagerRightArrowIcon": { "alias": "pagerRightArrowIcon"; "required": false; }; "pagerPreviousIcon": { "alias": "pagerPreviousIcon"; "required": false; }; "pagerNextIcon": { "alias": "pagerNextIcon"; "required": false; }; "_templateInput": { "alias": "template"; "required": false; }; }, {}, ["_templateQuery"], never, true, never>;
17
+ static ngAcceptInputType_footerHeight: unknown;
16
18
  }