@progress/kendo-angular-grid 12.0.0-develop.8 → 12.0.0-develop.9

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 (87) hide show
  1. package/column-menu/column-menu-item-content-template.directive.d.ts +13 -24
  2. package/column-menu/column-menu-template.directive.d.ts +14 -28
  3. package/columns/column-base.d.ts +4 -0
  4. package/columns/reorder-column.component.d.ts +31 -0
  5. package/databinding.directive.d.ts +15 -1
  6. package/editing/add-command.directive.d.ts +1 -1
  7. package/editing/cancel-command.directive.d.ts +4 -16
  8. package/editing/edit-template.directive.d.ts +2 -3
  9. package/editing/remove-command.directive.d.ts +6 -6
  10. package/editing/save-command.directive.d.ts +3 -15
  11. package/editing-directives/in-cell-editing.directive.d.ts +1 -1
  12. package/editing-directives/template-editing.directive.d.ts +1 -1
  13. package/esm2020/column-menu/column-menu-item-content-template.directive.mjs +13 -24
  14. package/esm2020/column-menu/column-menu-template.directive.mjs +14 -28
  15. package/esm2020/columns/column-base.mjs +4 -0
  16. package/esm2020/columns/reorder-column.component.mjs +55 -0
  17. package/esm2020/databinding.directive.mjs +30 -3
  18. package/esm2020/editing/add-command.directive.mjs +1 -1
  19. package/esm2020/editing/cancel-command.directive.mjs +4 -16
  20. package/esm2020/editing/edit-template.directive.mjs +2 -3
  21. package/esm2020/editing/remove-command.directive.mjs +6 -6
  22. package/esm2020/editing/save-command.directive.mjs +3 -15
  23. package/esm2020/editing-directives/in-cell-editing.directive.mjs +1 -1
  24. package/esm2020/editing-directives/template-editing.directive.mjs +1 -1
  25. package/esm2020/excel/excel-command.directive.mjs +2 -2
  26. package/esm2020/grid.component.mjs +195 -38
  27. package/esm2020/grid.module.mjs +70 -65
  28. package/esm2020/grouping/group-footer-template.directive.mjs +9 -35
  29. package/esm2020/grouping/group-header-column-template.directive.mjs +2 -2
  30. package/esm2020/grouping/group-header-template.directive.mjs +9 -37
  31. package/esm2020/index.mjs +1 -0
  32. package/esm2020/localization/messages.mjs +3 -1
  33. package/esm2020/navigation/focusable.directive.mjs +10 -41
  34. package/esm2020/package-metadata.mjs +2 -2
  35. package/esm2020/pager/pager-template.directive.mjs +13 -46
  36. package/esm2020/pdf/pdf-template.directive.mjs +10 -38
  37. package/esm2020/rendering/body.module.mjs +9 -4
  38. package/esm2020/rendering/cell-loading.template.directive.mjs +11 -8
  39. package/esm2020/rendering/cell-template.directive.mjs +11 -35
  40. package/esm2020/rendering/cell.component.mjs +43 -10
  41. package/esm2020/rendering/details/detail-template.directive.mjs +10 -58
  42. package/esm2020/rendering/details-expand.directive.mjs +1 -1
  43. package/esm2020/rendering/footer/footer-template.directive.mjs +8 -35
  44. package/esm2020/rendering/header/header-template.directive.mjs +9 -36
  45. package/esm2020/rendering/loading-template.directive.mjs +1 -1
  46. package/esm2020/rendering/no-records-template.directive.mjs +11 -58
  47. package/esm2020/rendering/toolbar/toolbar-template.directive.mjs +10 -56
  48. package/esm2020/row-reordering/row-reorder.service.mjs +232 -0
  49. package/esm2020/row-reordering/types.mjs +5 -0
  50. package/esm2020/row-reordering/utils.mjs +87 -0
  51. package/esm2020/selection/selectall-checkbox.directive.mjs +12 -1
  52. package/esm2020/selection/selection-checkbox.directive.mjs +11 -44
  53. package/esm2020/selection/selection-default.mjs +1 -0
  54. package/esm2020/selection/selection.directive.mjs +1 -1
  55. package/excel/excel-command.directive.d.ts +2 -2
  56. package/fesm2015/progress-kendo-angular-grid.mjs +830 -682
  57. package/fesm2020/progress-kendo-angular-grid.mjs +826 -682
  58. package/grid.component.d.ts +46 -4
  59. package/grid.module.d.ts +87 -85
  60. package/grouping/group-footer-template.directive.d.ts +9 -35
  61. package/grouping/group-header-column-template.directive.d.ts +2 -2
  62. package/grouping/group-header-template.directive.d.ts +9 -37
  63. package/index.d.ts +2 -0
  64. package/localization/messages.d.ts +5 -1
  65. package/navigation/focusable.directive.d.ts +10 -41
  66. package/package.json +15 -14
  67. package/pager/pager-template.directive.d.ts +13 -46
  68. package/pdf/pdf-template.directive.d.ts +10 -38
  69. package/rendering/body.module.d.ts +9 -8
  70. package/rendering/cell-loading.template.directive.d.ts +11 -8
  71. package/rendering/cell-template.directive.d.ts +11 -35
  72. package/rendering/cell.component.d.ts +5 -0
  73. package/rendering/details/detail-template.directive.d.ts +10 -58
  74. package/rendering/details-expand.directive.d.ts +1 -1
  75. package/rendering/footer/footer-template.directive.d.ts +8 -35
  76. package/rendering/header/header-template.directive.d.ts +9 -36
  77. package/rendering/loading-template.directive.d.ts +1 -1
  78. package/rendering/no-records-template.directive.d.ts +11 -58
  79. package/rendering/toolbar/toolbar-template.directive.d.ts +10 -56
  80. package/row-reordering/row-reorder.service.d.ts +56 -0
  81. package/row-reordering/types.d.ts +40 -0
  82. package/row-reordering/utils.d.ts +78 -0
  83. package/schematics/ngAdd/index.js +2 -2
  84. package/selection/selectall-checkbox.directive.d.ts +12 -1
  85. package/selection/selection-checkbox.directive.d.ts +11 -44
  86. package/selection/selection-default.d.ts +1 -0
  87. package/selection/selection.directive.d.ts +1 -1
@@ -5,13 +5,12 @@
5
5
  import { Directive, TemplateRef, Optional } from '@angular/core';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
- * Represents the column edit-cell template of the Grid ([see example]({% slug inline_editing_grid %}#toc-using-reactive-forms)).
8
+ * Represents the column edit-cell template of the Grid ([see example](slug:custom_reactive_editing_grid#toc-setting-up-custom-inputs)).
9
9
  * Helps to customize the content of the edited cells. To define the cell template, nest an `<ng-template>`
10
10
  * tag with the `kendoGridEditTemplate` directive inside a `<kendo-grid-column>` tag.
11
11
  *
12
12
  * The template context is set to the current form group and the following additional fields are passed:
13
- * - `formGroup`&mdash;The current [FormGroup](link:site.data.urls.angular['formgroupapi']).
14
- * Represents the default context that will be assigned to any template variable which utilizes the `let-x` syntax&mdash;for example, `let-formGroup`.
13
+ * - `formGroup`&mdash;The current [FormGroup](link:site.data.urls.angular['formgroupapi']). Represents the default context that will be assigned to any template variable which utilizes the `let-x` syntax&mdash;for example, `let-formGroup`.
15
14
  * If you use the Grid inside [Template-Driven Forms](link:site.data.urls.angular['forms']), it will be `undefined`.
16
15
  * - `rowIndex`&mdash;The current data row index. If inside a new item row, `rowIndex` is `-1`. Use it as an alias for a template variable by utilizing the `let-rowIndex="rowIndex"` syntax.
17
16
  * - `dataItem`&mdash;The current data item. Use it as an alias for a template variable by utilizing the `let-dataItem="dataItem"` syntax.
@@ -14,15 +14,15 @@ import * as i3 from "@progress/kendo-angular-icons";
14
14
  import * as i4 from "@angular/common";
15
15
  /**
16
16
  * Represents the `remove` command of the Grid. You can apply this directive to any `button` element
17
- * inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
17
+ * inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
18
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
18
19
  * When an associated button with the directive is clicked, the
19
- * [remove event]({% slug api_grid_gridcomponent %}#toc-remove)
20
- * is triggered ([see example]({% slug inline_editing_grid %}#toc-using-reactive-forms))).
21
- *
22
- * > When the row is in the edit mode, the button with the `kendoGridRemoveCommand` is automatically hidden.
20
+ * [remove]({% slug api_grid_gridcomponent %}#toc-remove) event
21
+ * is triggered.
22
+ * When the row is in the edit mode, the button with the `kendoGridRemoveCommand` is automatically hidden.
23
23
  *
24
24
  * @example
25
- * ```html-no-run
25
+ * ```html
26
26
  * <kendo-grid>
27
27
  * <kendo-grid-command-column title="command">
28
28
  * <ng-template kendoGridCellTemplate>
@@ -14,23 +14,11 @@ import * as i3 from "@progress/kendo-angular-icons";
14
14
  import * as i4 from "@angular/common";
15
15
  /**
16
16
  * Represents the `save` command of the Grid. You can apply this directive to any `button`
17
- * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
17
+ * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
18
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
18
19
  * When an associated button with the directive is clicked, the
19
20
  * [save]({% slug api_grid_gridcomponent %}#toc-save) event
20
- * is triggered ([see example]({% slug basics_editing_grid %})).
21
- *
22
- * > When the row is not in the edit mode, the button with `kendoGridSaveCommand` is automatically hidden.
23
- *
24
- * @example
25
- * ```html-no-run
26
- * <kendo-grid>
27
- * <kendo-grid-command-column title="command">
28
- * <ng-template kendoGridCellTemplate>
29
- * <button kendoGridSaveCommand>Save changes</button>
30
- * </ng-template>
31
- * </kendo-grid-command-column>
32
- * </kendo-grid>
33
- * ```
21
+ * is triggered. When the row is not in the edit mode, the button with `kendoGridSaveCommand` is automatically hidden.
34
22
  *
35
23
  * You can control the content of the button based on the state of the row.
36
24
  *
@@ -13,7 +13,7 @@ import * as i1 from "../grid.component";
13
13
  import * as i2 from "../editing/local-data-changes.service";
14
14
  /**
15
15
  * A directive which encapsulates the editing operations of the Grid when using the in-cell
16
- * editing with Reactive Forms ([see example]({% slug editing_directives_grid %}#toc-the-incell-directive)).
16
+ * editing with Reactive Forms ([see example]({% slug editing_directives_grid %}#toc-in-cell-editing)).
17
17
  */
18
18
  export class InCellEditingDirective extends EditingDirectiveBase {
19
19
  constructor(grid, localDataChangesService, cdr) {
@@ -11,7 +11,7 @@ import * as i1 from "../grid.component";
11
11
  import * as i2 from "../editing/local-data-changes.service";
12
12
  /**
13
13
  * A directive which encapsulates the editing operations of the Grid when using
14
- * the Template-Driven Angular Forms ([see example]({% slug editing_directives_grid %}#toc-the-template-directive)).
14
+ * the Template-Driven Angular Forms ([see example]({% slug editing_directives_grid %}#toc-template-editing-directive)).
15
15
  */
16
16
  export class TemplateEditingDirective extends RowEditingDirectiveBase {
17
17
  constructor(grid, localDataChangesService) {
@@ -14,13 +14,13 @@ import * as i4 from "@angular/common";
14
14
  /**
15
15
  * Represents the `export-to-Excel` command of the Grid. You can apply this
16
16
  * directive to any `button` element inside a
17
- * [ToolbarTemplate]({% slug api_grid_commandcolumncomponent %}).
17
+ * [ToolbarTemplate]({% slug api_grid_toolbartemplatedirective %}).
18
18
  * When the user clicks a button associated with the directive, the
19
19
  * [excelExport]({% slug api_grid_gridcomponent %}#toc-excelexport) event
20
20
  * fires ([see example]({% slug excelexport_grid %})).
21
21
  *
22
22
  * @example
23
- * ```html-no-run
23
+ * ```html
24
24
  * <kendo-grid>
25
25
  * <ng-template kendoGridToolbarTemplate>
26
26
  * <button kendoGridExcelCommand>Export to PDF</button>
@@ -73,6 +73,8 @@ import { ContextService } from './common/provider.service';
73
73
  import { LoadingTemplateDirective } from './rendering/loading-template.directive';
74
74
  import { SizingOptionsService } from './layout/sizing-options.service';
75
75
  import { guid } from '@progress/kendo-angular-common';
76
+ import { DragTargetContainerDirective, DropTargetContainerDirective } from '@progress/kendo-angular-utils';
77
+ import { RowReorderService } from './row-reordering/row-reorder.service';
76
78
  import * as i0 from "@angular/core";
77
79
  import * as i1 from "./layout/browser-support.service";
78
80
  import * as i2 from "./selection/selection.service";
@@ -97,22 +99,25 @@ import * as i20 from "./scrolling/scroll-request.service";
97
99
  import * as i21 from "@progress/kendo-angular-l10n";
98
100
  import * as i22 from "./common/provider.service";
99
101
  import * as i23 from "./layout/sizing-options.service";
100
- import * as i24 from "./rendering/toolbar/toolbar.component";
101
- import * as i25 from "./pager/pager.component";
102
- import * as i26 from "./grouping/group-panel.component";
103
- import * as i27 from "./rendering/common/col-group.component";
104
- import * as i28 from "./rendering/header/header.component";
105
- import * as i29 from "./rendering/list.component";
106
- import * as i30 from "./rendering/footer/footer.component";
107
- import * as i31 from "./rendering/table-body.component";
108
- import * as i32 from "./rendering/common/loading.component";
109
- import * as i33 from "./localization/localized-messages.directive";
110
- import * as i34 from "@angular/common";
111
- import * as i35 from "./column-resizing/table.directive";
112
- import * as i36 from "./rendering/grid-table.directive";
113
- import * as i37 from "./layout/resizable.directive";
114
- import * as i38 from "@progress/kendo-angular-common";
115
- import * as i39 from "./selection/marquee.directive";
102
+ import * as i24 from "./row-reordering/row-reorder.service";
103
+ import * as i25 from "./rendering/toolbar/toolbar.component";
104
+ import * as i26 from "./pager/pager.component";
105
+ import * as i27 from "./grouping/group-panel.component";
106
+ import * as i28 from "./rendering/common/col-group.component";
107
+ import * as i29 from "./rendering/header/header.component";
108
+ import * as i30 from "./rendering/list.component";
109
+ import * as i31 from "./rendering/footer/footer.component";
110
+ import * as i32 from "./rendering/table-body.component";
111
+ import * as i33 from "./rendering/common/loading.component";
112
+ import * as i34 from "@progress/kendo-angular-icons";
113
+ import * as i35 from "./localization/localized-messages.directive";
114
+ import * as i36 from "@angular/common";
115
+ import * as i37 from "./column-resizing/table.directive";
116
+ import * as i38 from "./rendering/grid-table.directive";
117
+ import * as i39 from "./layout/resizable.directive";
118
+ import * as i40 from "@progress/kendo-angular-utils";
119
+ import * as i41 from "@progress/kendo-angular-common";
120
+ import * as i42 from "./selection/marquee.directive";
116
121
  const createControl = (source) => (acc, key) => {
117
122
  acc[key] = new FormControl(source[key]);
118
123
  return acc;
@@ -162,7 +167,7 @@ const isInEditedCell = (element, gridElement) => closest(element, matchesClasses
162
167
  * ```
163
168
  */
164
169
  export class GridComponent {
165
- constructor(supportService, selectionService, cellSelectionService, wrapper, groupInfoService, groupsService, changeNotification, detailsService, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, localization, ctx, sizingService) {
170
+ constructor(supportService, selectionService, cellSelectionService, wrapper, groupInfoService, groupsService, changeNotification, detailsService, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, localization, ctx, sizingService, rowReorderService) {
166
171
  this.supportService = supportService;
167
172
  this.selectionService = selectionService;
168
173
  this.cellSelectionService = cellSelectionService;
@@ -190,11 +195,7 @@ export class GridComponent {
190
195
  this.localization = localization;
191
196
  this.ctx = ctx;
192
197
  this.sizingService = sizingService;
193
- /**
194
- * Sets the data of the Grid. If an array is provided, the Grid automatically gets the total count
195
- * ([more information and example]({% slug binding_grid %})).
196
- */
197
- this.data = [];
198
+ this.rowReorderService = rowReorderService;
198
199
  /**
199
200
  * Defines the scroll mode used by the Grid.
200
201
  *
@@ -258,6 +259,10 @@ export class GridComponent {
258
259
  * If set to `true`, the grid will render only the columns in the current viewport.
259
260
  */
260
261
  this.virtualColumns = false;
262
+ /**
263
+ * @hidden
264
+ */
265
+ this.gridData = () => { return this.flatData; };
261
266
  /**
262
267
  * Enables the [filtering]({% slug filtering_grid %}) of the Grid columns that have their `field` option set.
263
268
  */
@@ -305,12 +310,6 @@ export class GridComponent {
305
310
  * @default false
306
311
  */
307
312
  this.reorderable = false;
308
- /**
309
- * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
310
- *
311
- * @default false
312
- */
313
- this.loading = false;
314
313
  /**
315
314
  * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_grid %})).
316
315
  *
@@ -348,6 +347,11 @@ export class GridComponent {
348
347
  * Emits the [SelectionEvent]({% slug api_grid_selectionevent %}#toc-selectionchange).
349
348
  */
350
349
  this.selectionChange = new EventEmitter();
350
+ /**
351
+ * Fires when the user drops the dragged row and reordering is performed.
352
+ * Emits the [RowReorderEvent]({% slug api_grid_selectionevent %}#toc-selectionchange).
353
+ */
354
+ this.rowReorder = new EventEmitter();
351
355
  /**
352
356
  * Fires when the data state of the Grid is changed.
353
357
  */
@@ -459,11 +463,14 @@ export class GridComponent {
459
463
  this._sort = new Array();
460
464
  this._group = new Array();
461
465
  this._skip = 0;
466
+ this._data = [];
462
467
  this.cachedWindowWidth = 0;
463
468
  this._rowSelected = null;
464
469
  this._cellSelected = null;
470
+ this._rowReorderable = false;
465
471
  this._navigable = [];
466
472
  this._size = 'medium';
473
+ this._loading = false;
467
474
  this.rtl = false;
468
475
  this._rowClass = () => null;
469
476
  validatePackage(packageMetadata);
@@ -503,6 +510,19 @@ export class GridComponent {
503
510
  .changes.subscribe(this.reorder.bind(this));
504
511
  this.columnRangeChangeSubscription = this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this));
505
512
  }
513
+ /**
514
+ * Sets the data of the Grid. If an array is provided, the Grid automatically gets the total count
515
+ * ([more information and example]({% slug binding_grid %})).
516
+ */
517
+ set data(value) {
518
+ this._data = value;
519
+ }
520
+ get data() {
521
+ return this._data;
522
+ }
523
+ get hintText() {
524
+ return this.rowReorderService.getDefaultHintText(this.columnList, this.flatData);
525
+ }
506
526
  /**
507
527
  * Defines the number of records to be skipped by the pager.
508
528
  * Required by the [paging]({% slug paging_grid %}) functionality.
@@ -512,7 +532,7 @@ export class GridComponent {
512
532
  }
513
533
  set skip(value) {
514
534
  if (typeof value === 'number' && value >= 0) {
515
- this._skip = value;
535
+ this._skip = this.rowReorderService.skip = value;
516
536
  }
517
537
  }
518
538
  /**
@@ -610,6 +630,26 @@ export class GridComponent {
610
630
  get marqueeSelection() {
611
631
  return this.selectionService.enableMarquee || this.cellSelectionService.enableMarquee;
612
632
  }
633
+ /**
634
+ * Enables the [row reordering]({% slug ToDo %}) of the Grid.
635
+ * @default false
636
+ */
637
+ set rowReorderable(value) {
638
+ this._rowReorderable = value;
639
+ if (value) {
640
+ this.rowReorderSubscription = this.rowReorderService.rowReorder.subscribe(args => {
641
+ this.ngZone.run(() => {
642
+ this.rowReorder.emit(args);
643
+ });
644
+ });
645
+ }
646
+ else {
647
+ this.rowReorderSubscription?.unsubscribe();
648
+ }
649
+ }
650
+ get rowReorderable() {
651
+ return this._rowReorderable;
652
+ }
613
653
  /**
614
654
  * If set to `true`, the user can use dedicated shortcuts to interact with the Grid.
615
655
  * By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.
@@ -752,6 +792,18 @@ export class GridComponent {
752
792
  get activeRow() {
753
793
  return this.navigationService.activeRow;
754
794
  }
795
+ /**
796
+ * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
797
+ *
798
+ * @default false
799
+ */
800
+ set loading(value) {
801
+ this._loading = value;
802
+ this.rowReorderable && this.notifyReorderContainers();
803
+ }
804
+ get loading() {
805
+ return this._loading;
806
+ }
755
807
  get dir() {
756
808
  return this.direction;
757
809
  }
@@ -923,6 +975,18 @@ export class GridComponent {
923
975
  }
924
976
  return this.pageSize;
925
977
  }
978
+ /**
979
+ * @hidden
980
+ */
981
+ getDefaultSelectors(type) {
982
+ return this.rowReorderService.defaultSelectors[type];
983
+ }
984
+ /**
985
+ * @hidden
986
+ */
987
+ getHintSettings(type) {
988
+ return this.rowReorderService[type];
989
+ }
926
990
  /**
927
991
  * Expands the specified master row ([see example]({% slug hierarchy_grid %})).
928
992
  *
@@ -1154,6 +1218,9 @@ export class GridComponent {
1154
1218
  if (this.focusElementSubscription) {
1155
1219
  this.focusElementSubscription.unsubscribe();
1156
1220
  }
1221
+ if (this.rowReorderSubscription) {
1222
+ this.rowReorderSubscription.unsubscribe();
1223
+ }
1157
1224
  this.columnRangeChangeSubscription.unsubscribe();
1158
1225
  }
1159
1226
  /**
@@ -1652,6 +1719,12 @@ export class GridComponent {
1652
1719
  get isGroupExpanded() {
1653
1720
  return this.groupsService.userCallback;
1654
1721
  }
1722
+ /**
1723
+ * @hidden
1724
+ */
1725
+ handleReorderEvents(ev, evType) {
1726
+ this.rowReorderService[evType](ev);
1727
+ }
1655
1728
  /**
1656
1729
  * @hidden
1657
1730
  */
@@ -1878,6 +1951,11 @@ export class GridComponent {
1878
1951
  this.closeCell();
1879
1952
  this.cancelCell();
1880
1953
  this.dataStateChange.emit(x);
1954
+ if (this.rowReorderable) {
1955
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
1956
+ this.notifyReorderContainers();
1957
+ });
1958
+ }
1881
1959
  });
1882
1960
  }
1883
1961
  attachEditHandlers() {
@@ -2160,9 +2238,16 @@ export class GridComponent {
2160
2238
  }
2161
2239
  return previousValue.cell !== currentValue.cell;
2162
2240
  }
2241
+ notifyReorderContainers() {
2242
+ this.dragTargetContainer?.notify();
2243
+ this.dropTargetContainer?.notify();
2244
+ }
2245
+ get flatData() {
2246
+ return isArray(this.data) ? this.data : this.data.data;
2247
+ }
2163
2248
  }
2164
- GridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, deps: [{ token: i1.BrowserSupportService }, { token: i2.SelectionService }, { token: i3.CellSelectionService }, { token: i0.ElementRef }, { token: i4.GroupInfoService }, { token: i5.GroupsService }, { token: i6.ChangeNotificationService }, { token: i7.DetailsService }, { token: i8.EditService }, { token: i9.FilterService }, { token: i10.PDFService }, { token: i11.ResponsiveService }, { token: i0.Renderer2 }, { token: i12.ExcelService }, { token: i0.NgZone }, { token: i13.ScrollSyncService }, { token: i14.DomEventsService }, { token: i15.ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: i16.ColumnReorderService }, { token: i17.ColumnInfoService }, { token: i18.NavigationService }, { token: i19.SortService }, { token: i20.ScrollRequestService }, { token: i21.LocalizationService }, { token: i22.ContextService }, { token: i23.SizingOptionsService }], target: i0.ɵɵFactoryTarget.Component });
2165
- GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GridComponent, selector: "kendo-grid", inputs: { data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", detailRowHeight: "detailRowHeight", skip: "skip", scrollable: "scrollable", selectable: "selectable", sort: "sort", size: "size", trackBy: "trackBy", filter: "filter", group: "group", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", groupable: "groupable", navigable: "navigable", navigatable: "navigatable", autoSize: "autoSize", rowClass: "rowClass", rowSticky: "rowSticky", rowSelected: "rowSelected", cellSelected: "cellSelected", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", isDetailExpanded: "isDetailExpanded", isGroupExpanded: "isGroupExpanded" }, outputs: { filterChange: "filterChange", pageChange: "pageChange", groupChange: "groupChange", sortChange: "sortChange", selectionChange: "selectionChange", dataStateChange: "dataStateChange", groupExpand: "groupExpand", groupCollapse: "groupCollapse", detailExpand: "detailExpand", detailCollapse: "detailCollapse", edit: "edit", cancel: "cancel", save: "save", remove: "remove", add: "add", cellClose: "cellClose", cellClick: "cellClick", pdfExport: "pdfExport", excelExport: "excelExport", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", columnStickyChange: "columnStickyChange", scrollBottom: "scrollBottom", contentScroll: "contentScroll" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClass", "class.k-grid-sm": "this.sizeSmallClass", "class.k-grid-md": "this.sizeMediumClass", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass" } }, providers: [
2249
+ GridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, deps: [{ token: i1.BrowserSupportService }, { token: i2.SelectionService }, { token: i3.CellSelectionService }, { token: i0.ElementRef }, { token: i4.GroupInfoService }, { token: i5.GroupsService }, { token: i6.ChangeNotificationService }, { token: i7.DetailsService }, { token: i8.EditService }, { token: i9.FilterService }, { token: i10.PDFService }, { token: i11.ResponsiveService }, { token: i0.Renderer2 }, { token: i12.ExcelService }, { token: i0.NgZone }, { token: i13.ScrollSyncService }, { token: i14.DomEventsService }, { token: i15.ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: i16.ColumnReorderService }, { token: i17.ColumnInfoService }, { token: i18.NavigationService }, { token: i19.SortService }, { token: i20.ScrollRequestService }, { token: i21.LocalizationService }, { token: i22.ContextService }, { token: i23.SizingOptionsService }, { token: i24.RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
2250
+ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GridComponent, selector: "kendo-grid", inputs: { data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", detailRowHeight: "detailRowHeight", skip: "skip", scrollable: "scrollable", selectable: "selectable", sort: "sort", size: "size", trackBy: "trackBy", filter: "filter", group: "group", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", groupable: "groupable", rowReorderable: "rowReorderable", navigable: "navigable", navigatable: "navigatable", autoSize: "autoSize", rowClass: "rowClass", rowSticky: "rowSticky", rowSelected: "rowSelected", cellSelected: "cellSelected", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", isDetailExpanded: "isDetailExpanded", isGroupExpanded: "isGroupExpanded" }, outputs: { filterChange: "filterChange", pageChange: "pageChange", groupChange: "groupChange", sortChange: "sortChange", selectionChange: "selectionChange", rowReorder: "rowReorder", dataStateChange: "dataStateChange", groupExpand: "groupExpand", groupCollapse: "groupCollapse", detailExpand: "detailExpand", detailCollapse: "detailCollapse", edit: "edit", cancel: "cancel", save: "save", remove: "remove", add: "add", cellClose: "cellClose", cellClick: "cellClick", pdfExport: "pdfExport", excelExport: "excelExport", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", columnStickyChange: "columnStickyChange", scrollBottom: "scrollBottom", contentScroll: "contentScroll" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClass", "class.k-grid-sm": "this.sizeSmallClass", "class.k-grid-md": "this.sizeMediumClass", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass" } }, providers: [
2166
2251
  BrowserSupportService,
2167
2252
  LocalizationService,
2168
2253
  ColumnInfoService,
@@ -2203,8 +2288,9 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
2203
2288
  ScrollRequestService,
2204
2289
  SortService,
2205
2290
  ContextService,
2206
- SizingOptionsService
2207
- ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
2291
+ SizingOptionsService,
2292
+ RowReorderService
2293
+ ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
2208
2294
  <ng-container kendoGridLocalizedMessages
2209
2295
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
2210
2296
  groupPanelEmpty="Drag a column header and drop it here to group by that column"
@@ -2430,6 +2516,9 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
2430
2516
 
2431
2517
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
2432
2518
  groupPanelLabel="Group panel"
2519
+
2520
+ i18n-dragRowHandleLabel="kendo.grid.dragRowHandleLabel|The label for the Grid drag row handle"
2521
+ dragRowHandleLabel="Drag row"
2433
2522
  >
2434
2523
  </ng-container>
2435
2524
  <kendo-grid-toolbar
@@ -2557,6 +2646,23 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
2557
2646
  </div>
2558
2647
  </div>
2559
2648
  <kendo-grid-list
2649
+ kendoDragTargetContainer
2650
+ kendoDropTargetContainer
2651
+ mode="manual"
2652
+ [dragDisabled]="!rowReorderable"
2653
+ [dropDisabled]="!rowReorderable"
2654
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
2655
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
2656
+ [dragHandle]="getDefaultSelectors('handle')"
2657
+ [hint]="{hintTemplate: defaultHint}"
2658
+ (press)="handleReorderEvents($event, 'press')"
2659
+ (dragStart)="handleReorderEvents($event, 'dragStart')"
2660
+ (drag)="handleReorderEvents($event, 'drag')"
2661
+ (dragEnter)="handleReorderEvents($event, 'dragEnter')"
2662
+ (dragLeave)="handleReorderEvents($event, 'dragLeave')"
2663
+ (dragEnd)="handleReorderEvents($event, 'dragEnd')"
2664
+ (drop)="handleReorderEvents($event, 'drop')"
2665
+ [dragData]="gridData"
2560
2666
  [data]="$any(view)"
2561
2667
  [rowHeight]="rowHeight"
2562
2668
  [detailRowHeight]="detailRowHeight"
@@ -2722,8 +2828,18 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
2722
2828
  [navigable]="navigation.toolbarEnabled"
2723
2829
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
2724
2830
  [attr.aria-controls]="ariaRootId"
2725
- position="bottom"></kendo-grid-toolbar>
2726
- `, isInline: true, components: [{ type: i24.ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { type: i25.PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "size", "template"], outputs: ["pageChange"] }, { type: i26.GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { type: i27.ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { type: i28.HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "tabIndex", "size"] }, { type: i29.ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { type: i30.FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex"] }, { type: i31.TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "rowClass"] }, { type: i32.LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }], directives: [{ type: i33.LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { type: i34.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i35.TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: i36.GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { type: i37.ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { type: i38.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i39.GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }], encapsulation: i0.ViewEncapsulation.None });
2831
+ position="bottom">
2832
+ </kendo-grid-toolbar>
2833
+
2834
+ <ng-template #defaultHint>
2835
+ <kendo-icon-wrapper
2836
+ [name]="getHintSettings('hintIcon')"
2837
+ [svgIcon]="getHintSettings('hintSVGIcon')"
2838
+ innerCssClass="k-drag-status">
2839
+ </kendo-icon-wrapper>
2840
+ {{hintText}}
2841
+ </ng-template>
2842
+ `, isInline: true, components: [{ type: i25.ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { type: i26.PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "size", "template"], outputs: ["pageChange"] }, { type: i27.GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { type: i28.ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { type: i29.HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "tabIndex", "size"] }, { type: i30.ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { type: i31.FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex"] }, { type: i32.TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "rowClass"] }, { type: i33.LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { type: i34.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i35.LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { type: i36.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i37.TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: i38.GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { type: i39.ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { type: i40.DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode"], outputs: ["dragReady", "press", "dragStart", "drag", "release", "dragEnd"], exportAs: ["kendoDragTargetContainer"] }, { type: i40.DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["dragEnter", "dragOver", "dragLeave", "drop"], exportAs: ["kendoDropTargetContainer"] }, { type: i41.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i42.GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }], encapsulation: i0.ViewEncapsulation.None });
2727
2843
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, decorators: [{
2728
2844
  type: Component,
2729
2845
  args: [{
@@ -2770,7 +2886,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2770
2886
  ScrollRequestService,
2771
2887
  SortService,
2772
2888
  ContextService,
2773
- SizingOptionsService
2889
+ SizingOptionsService,
2890
+ RowReorderService
2774
2891
  ],
2775
2892
  selector: 'kendo-grid',
2776
2893
  template: `
@@ -2999,6 +3116,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2999
3116
 
3000
3117
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
3001
3118
  groupPanelLabel="Group panel"
3119
+
3120
+ i18n-dragRowHandleLabel="kendo.grid.dragRowHandleLabel|The label for the Grid drag row handle"
3121
+ dragRowHandleLabel="Drag row"
3002
3122
  >
3003
3123
  </ng-container>
3004
3124
  <kendo-grid-toolbar
@@ -3126,6 +3246,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3126
3246
  </div>
3127
3247
  </div>
3128
3248
  <kendo-grid-list
3249
+ kendoDragTargetContainer
3250
+ kendoDropTargetContainer
3251
+ mode="manual"
3252
+ [dragDisabled]="!rowReorderable"
3253
+ [dropDisabled]="!rowReorderable"
3254
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
3255
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
3256
+ [dragHandle]="getDefaultSelectors('handle')"
3257
+ [hint]="{hintTemplate: defaultHint}"
3258
+ (press)="handleReorderEvents($event, 'press')"
3259
+ (dragStart)="handleReorderEvents($event, 'dragStart')"
3260
+ (drag)="handleReorderEvents($event, 'drag')"
3261
+ (dragEnter)="handleReorderEvents($event, 'dragEnter')"
3262
+ (dragLeave)="handleReorderEvents($event, 'dragLeave')"
3263
+ (dragEnd)="handleReorderEvents($event, 'dragEnd')"
3264
+ (drop)="handleReorderEvents($event, 'drop')"
3265
+ [dragData]="gridData"
3129
3266
  [data]="$any(view)"
3130
3267
  [rowHeight]="rowHeight"
3131
3268
  [detailRowHeight]="detailRowHeight"
@@ -3291,10 +3428,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3291
3428
  [navigable]="navigation.toolbarEnabled"
3292
3429
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
3293
3430
  [attr.aria-controls]="ariaRootId"
3294
- position="bottom"></kendo-grid-toolbar>
3431
+ position="bottom">
3432
+ </kendo-grid-toolbar>
3433
+
3434
+ <ng-template #defaultHint>
3435
+ <kendo-icon-wrapper
3436
+ [name]="getHintSettings('hintIcon')"
3437
+ [svgIcon]="getHintSettings('hintSVGIcon')"
3438
+ innerCssClass="k-drag-status">
3439
+ </kendo-icon-wrapper>
3440
+ {{hintText}}
3441
+ </ng-template>
3295
3442
  `
3296
3443
  }]
3297
- }], ctorParameters: function () { return [{ type: i1.BrowserSupportService }, { type: i2.SelectionService }, { type: i3.CellSelectionService }, { type: i0.ElementRef }, { type: i4.GroupInfoService }, { type: i5.GroupsService }, { type: i6.ChangeNotificationService }, { type: i7.DetailsService }, { type: i8.EditService }, { type: i9.FilterService }, { type: i10.PDFService }, { type: i11.ResponsiveService }, { type: i0.Renderer2 }, { type: i12.ExcelService }, { type: i0.NgZone }, { type: i13.ScrollSyncService }, { type: i14.DomEventsService }, { type: i15.ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: i16.ColumnReorderService }, { type: i17.ColumnInfoService }, { type: i18.NavigationService }, { type: i19.SortService }, { type: i20.ScrollRequestService }, { type: i21.LocalizationService }, { type: i22.ContextService }, { type: i23.SizingOptionsService }]; }, propDecorators: { data: [{
3444
+ }], ctorParameters: function () { return [{ type: i1.BrowserSupportService }, { type: i2.SelectionService }, { type: i3.CellSelectionService }, { type: i0.ElementRef }, { type: i4.GroupInfoService }, { type: i5.GroupsService }, { type: i6.ChangeNotificationService }, { type: i7.DetailsService }, { type: i8.EditService }, { type: i9.FilterService }, { type: i10.PDFService }, { type: i11.ResponsiveService }, { type: i0.Renderer2 }, { type: i12.ExcelService }, { type: i0.NgZone }, { type: i13.ScrollSyncService }, { type: i14.DomEventsService }, { type: i15.ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: i16.ColumnReorderService }, { type: i17.ColumnInfoService }, { type: i18.NavigationService }, { type: i19.SortService }, { type: i20.ScrollRequestService }, { type: i21.LocalizationService }, { type: i22.ContextService }, { type: i23.SizingOptionsService }, { type: i24.RowReorderService }]; }, propDecorators: { data: [{
3298
3445
  type: Input
3299
3446
  }], pageSize: [{
3300
3447
  type: Input
@@ -3330,6 +3477,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3330
3477
  type: Input
3331
3478
  }], groupable: [{
3332
3479
  type: Input
3480
+ }], rowReorderable: [{
3481
+ type: Input
3333
3482
  }], navigable: [{
3334
3483
  type: Input
3335
3484
  }], navigatable: [{
@@ -3364,6 +3513,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3364
3513
  type: Output
3365
3514
  }], selectionChange: [{
3366
3515
  type: Output
3516
+ }], rowReorder: [{
3517
+ type: Output
3367
3518
  }], dataStateChange: [{
3368
3519
  type: Output
3369
3520
  }], groupExpand: [{
@@ -3463,6 +3614,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3463
3614
  }], ariaRoot: [{
3464
3615
  type: ViewChild,
3465
3616
  args: ['ariaRoot', { static: true }]
3617
+ }], dragTargetContainer: [{
3618
+ type: ViewChild,
3619
+ args: [DragTargetContainerDirective]
3620
+ }], dropTargetContainer: [{
3621
+ type: ViewChild,
3622
+ args: [DropTargetContainerDirective]
3466
3623
  }], isDetailExpanded: [{
3467
3624
  type: Input
3468
3625
  }], isGroupExpanded: [{