@progress/kendo-angular-grid 12.0.0-develop.1 → 12.0.0-develop.10

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 (95) 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/filtering/cell/autocomplete-filter-cell.component.mjs +1 -1
  27. package/esm2020/filtering/cell/boolean-filter-cell.component.mjs +1 -1
  28. package/esm2020/filtering/cell/filter-cell-operators.component.mjs +1 -1
  29. package/esm2020/filtering/menu/date-filter-menu.component.mjs +1 -1
  30. package/esm2020/filtering/menu/filter-menu-input-wrapper.component.mjs +1 -1
  31. package/esm2020/filtering/menu/numeric-filter-menu.component.mjs +1 -1
  32. package/esm2020/filtering/menu/string-filter-menu.component.mjs +1 -1
  33. package/esm2020/grid.component.mjs +195 -38
  34. package/esm2020/grid.module.mjs +70 -65
  35. package/esm2020/grouping/group-footer-template.directive.mjs +9 -35
  36. package/esm2020/grouping/group-header-column-template.directive.mjs +2 -2
  37. package/esm2020/grouping/group-header-template.directive.mjs +9 -37
  38. package/esm2020/index.mjs +1 -0
  39. package/esm2020/localization/messages.mjs +3 -1
  40. package/esm2020/navigation/focusable.directive.mjs +10 -41
  41. package/esm2020/package-metadata.mjs +2 -2
  42. package/esm2020/pager/pager-page-sizes.component.mjs +1 -1
  43. package/esm2020/pager/pager-template.directive.mjs +13 -46
  44. package/esm2020/pdf/pdf-template.directive.mjs +10 -38
  45. package/esm2020/rendering/body.module.mjs +9 -4
  46. package/esm2020/rendering/cell-loading.template.directive.mjs +11 -8
  47. package/esm2020/rendering/cell-template.directive.mjs +11 -35
  48. package/esm2020/rendering/cell.component.mjs +43 -10
  49. package/esm2020/rendering/details/detail-template.directive.mjs +10 -58
  50. package/esm2020/rendering/details-expand.directive.mjs +1 -1
  51. package/esm2020/rendering/footer/footer-template.directive.mjs +8 -35
  52. package/esm2020/rendering/header/header-template.directive.mjs +9 -36
  53. package/esm2020/rendering/loading-template.directive.mjs +1 -1
  54. package/esm2020/rendering/no-records-template.directive.mjs +11 -58
  55. package/esm2020/rendering/toolbar/toolbar-template.directive.mjs +10 -56
  56. package/esm2020/row-reordering/row-reorder.service.mjs +232 -0
  57. package/esm2020/row-reordering/types.mjs +5 -0
  58. package/esm2020/row-reordering/utils.mjs +87 -0
  59. package/esm2020/selection/selectall-checkbox.directive.mjs +12 -1
  60. package/esm2020/selection/selection-checkbox.directive.mjs +11 -44
  61. package/esm2020/selection/selection-default.mjs +1 -0
  62. package/esm2020/selection/selection.directive.mjs +1 -1
  63. package/excel/excel-command.directive.d.ts +2 -2
  64. package/fesm2015/progress-kendo-angular-grid.mjs +838 -690
  65. package/fesm2020/progress-kendo-angular-grid.mjs +834 -690
  66. package/grid.component.d.ts +46 -4
  67. package/grid.module.d.ts +87 -85
  68. package/grouping/group-footer-template.directive.d.ts +9 -35
  69. package/grouping/group-header-column-template.directive.d.ts +2 -2
  70. package/grouping/group-header-template.directive.d.ts +9 -37
  71. package/index.d.ts +2 -0
  72. package/localization/messages.d.ts +5 -1
  73. package/navigation/focusable.directive.d.ts +10 -41
  74. package/package.json +15 -14
  75. package/pager/pager-template.directive.d.ts +13 -46
  76. package/pdf/pdf-template.directive.d.ts +10 -38
  77. package/rendering/body.module.d.ts +9 -8
  78. package/rendering/cell-loading.template.directive.d.ts +11 -8
  79. package/rendering/cell-template.directive.d.ts +11 -35
  80. package/rendering/cell.component.d.ts +5 -0
  81. package/rendering/details/detail-template.directive.d.ts +10 -58
  82. package/rendering/details-expand.directive.d.ts +1 -1
  83. package/rendering/footer/footer-template.directive.d.ts +8 -35
  84. package/rendering/header/header-template.directive.d.ts +9 -36
  85. package/rendering/loading-template.directive.d.ts +1 -1
  86. package/rendering/no-records-template.directive.d.ts +11 -58
  87. package/rendering/toolbar/toolbar-template.directive.d.ts +10 -56
  88. package/row-reordering/row-reorder.service.d.ts +56 -0
  89. package/row-reordering/types.d.ts +40 -0
  90. package/row-reordering/utils.d.ts +78 -0
  91. package/schematics/ngAdd/index.js +2 -2
  92. package/selection/selectall-checkbox.directive.d.ts +12 -1
  93. package/selection/selection-checkbox.directive.d.ts +11 -44
  94. package/selection/selection-default.d.ts +1 -0
  95. package/selection/selection.directive.d.ts +1 -1
@@ -5,7 +5,7 @@
5
5
  import * as i0 from '@angular/core';
6
6
  import { InjectionToken, Component, HostBinding, Input, EventEmitter, Injectable, Optional, Inject, Directive, SkipSelf, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, Host, Output, SecurityContext, HostListener, ChangeDetectionStrategy, ViewChild, ViewChildren, Self, TemplateRef, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
7
7
  import * as i1$1 from '@progress/kendo-angular-common';
8
- import { isDocumentAvailable, Keys, closest as closest$1, isFocusable as isFocusable$1, anyChanged, isChanged as isChanged$1, KendoInput, guid, hasObservers, ResizeSensorComponent, DraggableModule, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';
8
+ import { isDocumentAvailable, Keys, isPresent as isPresent$1, closest as closest$1, isFocusable as isFocusable$1, anyChanged, isChanged as isChanged$1, KendoInput, guid, hasObservers, ResizeSensorComponent, DraggableModule, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';
9
9
  import { merge, of, Subject, from, Subscription, interval, fromEvent, zip as zip$1, BehaviorSubject, Observable } from 'rxjs';
10
10
  import { switchMap, take, map, filter, takeUntil, switchMapTo, delay, auditTime, distinctUntilChanged, tap, throttleTime, debounceTime, bufferCount } from 'rxjs/operators';
11
11
  import * as i1 from '@progress/kendo-angular-l10n';
@@ -19,7 +19,9 @@ import { orderBy, isCompositeFilterDescriptor, process, filterBy } from '@progre
19
19
  import * as i1$2 from '@progress/kendo-angular-popup';
20
20
  import { PopupModule } from '@progress/kendo-angular-popup';
21
21
  import * as i1$3 from '@angular/platform-browser';
22
- import { caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterIcon, unlockIcon, lockIcon, stickIcon, unstickIcon, setColumnPositionIcon, columnsIcon, maxWidthIcon, displayInlineBlockIcon, moreVerticalIcon, filterClearIcon, caretAltDownIcon, minusIcon, plusIcon } from '@progress/kendo-svg-icons';
22
+ import * as i40 from '@progress/kendo-angular-utils';
23
+ import { DragTargetContainerDirective, DropTargetContainerDirective, DragAndDropModule as DragAndDropModule$1 } from '@progress/kendo-angular-utils';
24
+ import { cancelIcon, insertMiddleIcon, caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterIcon, unlockIcon, lockIcon, stickIcon, unstickIcon, setColumnPositionIcon, columnsIcon, maxWidthIcon, displayInlineBlockIcon, moreVerticalIcon, filterClearIcon, reorderIcon, caretAltDownIcon, minusIcon, plusIcon } from '@progress/kendo-svg-icons';
23
25
  import * as i4$1 from '@progress/kendo-angular-buttons';
24
26
  import { ButtonModule, ChipModule, Button } from '@progress/kendo-angular-buttons';
25
27
  import * as i3 from '@progress/kendo-angular-inputs';
@@ -30,7 +32,7 @@ import * as i5 from '@progress/kendo-angular-label';
30
32
  import { LabelModule } from '@progress/kendo-angular-label';
31
33
  import * as i3$1 from '@progress/kendo-angular-icons';
32
34
  import { IconsModule } from '@progress/kendo-angular-icons';
33
- import * as i5$1 from '@progress/kendo-angular-dateinputs';
35
+ import * as i4$3 from '@progress/kendo-angular-dateinputs';
34
36
  import { DatePickerModule } from '@progress/kendo-angular-dateinputs';
35
37
  import { trigger, state, style, transition, animate } from '@angular/animations';
36
38
  import { getter } from '@progress/kendo-common';
@@ -1293,47 +1295,16 @@ const EMPTY_CELL_CONTEXT = {};
1293
1295
  * [focus in a navigable Grid]({% slug keyboard_navigation_grid %}).
1294
1296
  *
1295
1297
  * @example
1296
- * ```ts-preview
1297
- * _@Component({
1298
- * selector: 'my-app',
1299
- * template: `
1300
- * <input type="text" placeholder="Tab stop #0" style="margin-bottom: 8px;" />
1301
- * <kendo-grid [data]="data" [navigable]="true">
1302
- * <kendo-grid-column field="ProductID" title="Product ID" [width]="100">
1303
- * </kendo-grid-column>
1304
- * <kendo-grid-column field="ProductName" title="Product Name" [width]="150">
1305
- * </kendo-grid-column>
1306
- * <kendo-grid-column>
1307
- * <ng-template kendoGridCellTemplate let-dataItem>
1308
- * <!-- The first focusable element will be focused when pressing Enter on the cell -->
1309
- * <input type="text" kendoGridFocusable [value]="dataItem.ProductName" style="margin-right: 8px;" />
1310
- * <button kendoGridFocusable>Update</button>
1311
- * </ng-template>
1312
- * </kendo-grid-column>
1313
- * <kendo-grid-column [width]="100">
1314
- * <ng-template kendoGridCellTemplate>
1315
- * <!-- A single focusable element will be focused during navigation -->
1316
- * <button kendoGridFocusable>Delete</button>
1317
- * </ng-template>
1318
- * </kendo-grid-column>
1319
- * </kendo-grid>
1320
- * <input type="text" placeholder="Tab stop #2" style="margin-top: 8px;" />
1321
- * `
1322
- * })
1323
- *
1324
- * class AppComponent {
1325
- * public readonly data: any = [{
1326
- * "ProductID": 1,
1327
- * "ProductName": "Chai",
1328
- * "UnitPrice": 18.0000,
1329
- * "Discontinued": true
1330
- * }, {
1331
- * "ProductID": 2,
1332
- * "ProductName": "Chang",
1333
- * "UnitPrice": 19.0000,
1334
- * "Discontinued": false
1335
- * }];
1336
- * }
1298
+ * ```html
1299
+ * <kendo-grid [data]="data" [navigable]="true">
1300
+ * <kendo-grid-column>
1301
+ * <ng-template kendoGridCellTemplate let-dataItem>
1302
+ * <!-- The first focusable element will be focused when pressing Enter on the cell -->
1303
+ * <input type="text" kendoGridFocusable [value]="dataItem.ProductName" style="margin-right: 8px;" />
1304
+ * <button kendoGridFocusable>Update</button>
1305
+ * </ng-template>
1306
+ * </kendo-grid-column>
1307
+ * </kendo-grid>
1337
1308
  * ```
1338
1309
  */
1339
1310
  class FocusableDirective {
@@ -2861,15 +2832,15 @@ const packageMetadata = {
2861
2832
  name: '@progress/kendo-angular-grid',
2862
2833
  productName: 'Kendo UI for Angular',
2863
2834
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
2864
- publishDate: 1680771635,
2865
- version: '12.0.0-develop.1',
2835
+ publishDate: 1681902962,
2836
+ version: '12.0.0-develop.10',
2866
2837
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
2867
2838
  };
2868
2839
 
2869
2840
  /**
2870
- * Represents the column cell template of the Grid ([more information and example]({% slug templates_columns_grid %}#toc-cell-template)).
2871
- * Helps to customize the content of the cells. To define the cell template, nest an `<ng-template>` tag
2872
- * with the `kendoGridCellTemplate` directive inside a `<kendo-grid-column>` tag.
2841
+ * Represents the column cell template of the Grid.
2842
+ * Helps to customize the content of the cells. To define the cell template, nest an `<ng-template>` tag with the
2843
+ * `kendoGridCellTemplate` directive inside a `<kendo-grid-column>` tag [see example](slug:templates_columns_grid#toc-cell-template).
2873
2844
  *
2874
2845
  * The template context is set to the current data item and the following additional fields are passed:
2875
2846
  * - `columnIndex`&mdash;The current column index. Use it as an alias for a template variable by utilizing the `let-columnIndex="columnIndex"` syntax.
@@ -2878,38 +2849,14 @@ const packageMetadata = {
2878
2849
  * - `column`&mdash;The current column instance. Use it as an alias for a template variable by utilizing the `let-column="column"` syntax.
2879
2850
  *
2880
2851
  * @example
2881
- * ```ts-preview
2882
- *
2883
- * _@Component({
2884
- * selector: 'my-app',
2885
- * template: `
2886
- * <kendo-grid [data]="gridData">
2887
- * <kendo-grid-column field="ProductName">
2888
- * <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
2889
- * Data Row #: {{rowIndex}} /
2890
- * <strong>{{dataItem.ProductName}}</strong>
2891
- * ({{dataItem.Discontinued ? "discontinued" : "active"}})
2892
- * </ng-template>
2893
- * </kendo-grid-column>
2894
- * </kendo-grid>
2895
- * `
2896
- * })
2897
- *
2898
- * class AppComponent {
2899
- * public gridData = [{
2900
- * "ProductID": 1,
2901
- * "ProductName": "Chai",
2902
- * "UnitPrice": 18.0000,
2903
- * "Discontinued": false
2904
- * }, {
2905
- * "ProductID": 2,
2906
- * "ProductName": "Chang",
2907
- * "UnitPrice": 19.0000,
2908
- * "Discontinued": true
2909
- * }
2910
- * ];
2911
- * }
2912
- *
2852
+ * ```html
2853
+ * <kendo-grid [data]="gridData" ...>
2854
+ * <kendo-grid-column field="ProductName">
2855
+ * <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex" let-column="column">
2856
+ * Data Row: {{rowIndex}}
2857
+ * </ng-template>
2858
+ * </kendo-grid-column>
2859
+ * </kendo-grid>
2913
2860
  * ```
2914
2861
  */
2915
2862
  class CellTemplateDirective {
@@ -2933,7 +2880,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2933
2880
  /**
2934
2881
  * Represents the group-header cell template of the Grid which helps to customize the content of the group header item.
2935
2882
  * To define the group header template, nest an `<ng-template>` tag with the `kendoGridGroupHeaderTemplate`
2936
- * directive inside `<kendo-grid-column>`.
2883
+ * directive inside `<kendo-grid-column>`. ([See example](slug:grouping_grid_templates#toc-header-template)).
2937
2884
  *
2938
2885
  * The template context is set to the current data item and the following additional fields are passed:
2939
2886
  * - `group`&mdash;The current group item.
@@ -2942,44 +2889,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2942
2889
  * - `aggregates`&mdash;All aggregate values for the current group.
2943
2890
  * - `index`&mdash;The index of the current group.
2944
2891
  * - `expanded`&mdash;A boolean value indicating if the group is currently expanded.
2945
- * ([see example]({% slug groupable_grid_with_aggregates %})).
2946
2892
  *
2947
2893
  * @example
2948
- * ```ts
2949
- * import { process } from '@progress/kendo-data-query';
2950
- *
2951
- * _@Component({
2952
- * selector: 'my-app',
2953
- * template: `
2954
- * <kendo-grid [data]="gridData" [group]="groups">
2955
- * <kendo-grid-column field="ProductName">
2956
- * <ng-template kendoGridGroupHeaderTemplate let-group let-field="field" let-value="value">
2957
- * <strong>{{field}}</strong>: {{value}}
2958
- * </ng-template>
2959
- * </kendo-grid-column>
2960
- * </kendo-grid>
2961
- * `
2962
- * })
2963
- *
2964
- * class AppComponent {
2965
- * public groups = [{ field: "ProductName" }];
2966
- *
2967
- * public gridData = process([{
2968
- * "ProductID": 1,
2969
- * "ProductName": "Chai",
2970
- * "UnitPrice": 18.0000,
2971
- * "Discontinued": false
2972
- * }, {
2973
- * "ProductID": 2,
2974
- * "ProductName": "Chang",
2975
- * "UnitPrice": 19.0000,
2976
- * "Discontinued": true
2977
- * }
2978
- * ], {
2979
- * group: this.groups
2980
- * });
2981
- * }
2982
- *
2894
+ * ```html
2895
+ * <kendo-grid [data]="gridData" [group]="groups">
2896
+ * <kendo-grid-column field="ProductName">
2897
+ * <ng-template kendoGridGroupHeaderTemplate let-group let-field="field" let-value="value">
2898
+ * <strong>{{field}}</strong>: {{value}}
2899
+ * </ng-template>
2900
+ * </kendo-grid-column>
2901
+ * </kendo-grid>
2983
2902
  * ```
2984
2903
  */
2985
2904
  class GroupHeaderTemplateDirective {
@@ -3003,7 +2922,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3003
2922
  /**
3004
2923
  * Represents the group-header column template of the Grid which helps to customize the content of the group headers.
3005
2924
  * To define the group header template, nest an `<ng-template>` tag with the `kendoGridGroupHeaderColumnTemplate`
3006
- * directive inside `<kendo-grid-column>`. ([See example]({% slug groupable_grid_with_aggregates %})).
2925
+ * directive inside `<kendo-grid-column>`. ([See example](slug:grouping_grid_templates#toc-header-column-template)).
3007
2926
  *
3008
2927
  * The template context is set to the current data item and the following additional fields are passed:
3009
2928
  * - `group`&mdash;The current group item.
@@ -3012,7 +2931,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3012
2931
  * - `aggregates`&mdash;All aggregate values for the current group.
3013
2932
  *
3014
2933
  * @example
3015
- * ```ts
2934
+ * ```html
3016
2935
  * <kendo-grid-column field="ProductName" title="Product Name">
3017
2936
  * <ng-template kendoGridGroupHeaderColumnTemplate let-group="group" let-aggregates="aggregates">
3018
2937
  * <span title="Group Header Column Template for ProductName">
@@ -3041,13 +2960,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3041
2960
  } });
3042
2961
 
3043
2962
  /**
3044
- * Represents the column edit-cell template of the Grid ([see example]({% slug inline_editing_grid %}#toc-using-reactive-forms)).
2963
+ * Represents the column edit-cell template of the Grid ([see example](slug:custom_reactive_editing_grid#toc-setting-up-custom-inputs)).
3045
2964
  * Helps to customize the content of the edited cells. To define the cell template, nest an `<ng-template>`
3046
2965
  * tag with the `kendoGridEditTemplate` directive inside a `<kendo-grid-column>` tag.
3047
2966
  *
3048
2967
  * The template context is set to the current form group and the following additional fields are passed:
3049
- * - `formGroup`&mdash;The current [FormGroup](link:site.data.urls.angular['formgroupapi']).
3050
- * Represents the default context that will be assigned to any template variable which utilizes the `let-x` syntax&mdash;for example, `let-formGroup`.
2968
+ * - `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`.
3051
2969
  * If you use the Grid inside [Template-Driven Forms](link:site.data.urls.angular['forms']), it will be `undefined`.
3052
2970
  * - `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.
3053
2971
  * - `dataItem`&mdash;The current data item. Use it as an alias for a template variable by utilizing the `let-dataItem="dataItem"` syntax.
@@ -3077,47 +2995,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3077
2995
  * To define the group footer template, nest an `<ng-template>` tag with the `kendoGridGroupFooterTemplate` directive
3078
2996
  * inside `<kendo-grid-column>`.
3079
2997
  *
3080
- * The template context is set to the current aggregates and the following additional fields are passed:
2998
+ * The template context is set to the current data item and the following additional fields are passed:
3081
2999
  * - `column`&mdash;Defines an instance of the `ColumnComponent` option.
3082
3000
  * - `field`&mdash;The current column field name.
3083
3001
  * - `group`&mdash;The current group data item.
3084
3002
  * - `aggregates`&mdash;All aggregate values for the current group.
3085
3003
  *
3086
3004
  * @example
3087
- * ```ts-preview
3088
- * import { process } from '@progress/kendo-data-query';
3089
- *
3090
- * _@Component({
3091
- * selector: 'my-app',
3092
- * template: `
3093
- * <kendo-grid [data]="gridData" [group]="groups">
3094
- * <kendo-grid-column field="ProductName">
3095
- * <ng-template kendoGridGroupFooterTemplate let-aggregates let-field="field">
3096
- * Count: {{aggregates[field].count}}
3097
- * </ng-template>
3098
- * </kendo-grid-column>
3099
- * </kendo-grid>
3100
- * `
3101
- * })
3102
- *
3103
- * class AppComponent {
3104
- * public groups = [{ field: "ProductName", aggregates: [{ field: "ProductName", aggregate: "count" }] }];
3105
- *
3106
- * public gridData = process([{
3107
- * "ProductID": 1,
3108
- * "ProductName": "Chai",
3109
- * "UnitPrice": 18.0000,
3110
- * "Discontinued": false
3111
- * }, {
3112
- * "ProductID": 2,
3113
- * "ProductName": "Chang",
3114
- * "UnitPrice": 19.0000,
3115
- * "Discontinued": true
3116
- * }
3117
- * ], {
3118
- * group: this.groups
3119
- * });
3120
- * }
3005
+ * ```html
3006
+ * <kendo-grid [data]="gridData" [group]="groups">
3007
+ * <kendo-grid-column field="ProductName">
3008
+ * <ng-template kendoGridGroupFooterTemplate let-aggregates let-field="field">
3009
+ * Count: {{aggregates[field].count}}
3010
+ * </ng-template>
3011
+ * </kendo-grid-column>
3012
+ * </kendo-grid>
3121
3013
  * ```
3122
3014
  */
3123
3015
  class GroupFooterTemplateDirective {
@@ -3143,48 +3035,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3143
3035
  * ([more information and example]({% slug templates_columns_grid %}#toc-header-template)).
3144
3036
  * Helps to customize the table header cell for the column.
3145
3037
  * To define a header template, nest an `<ng-template>` tag with the
3146
- * [kendoGridHeaderTemplate]({% slug api_grid_headertemplatedirective %}) directive inside the `<kendo-grid-column>` tag.
3038
+ * `kendoGridHeaderTemplate` directive inside the `<kendo-grid-column>` tag.
3147
3039
  *
3148
3040
  * The template context is set to the current column and then the following additional fields are passed:
3149
3041
  * * `column`&mdash;Defines an instance of the [ColumnComponent]({% slug api_grid_columncomponent %}) option.
3150
3042
  * * `columnIndex`&mdash;Defines the current column index.
3151
3043
  *
3152
3044
  * @example
3153
- * ```ts-preview
3154
- *
3155
- * _@Component({
3156
- * selector: 'my-app',
3157
- * template: `
3158
- * <kendo-grid [data]="gridData">
3159
- * <kendo-grid-column field="ProductName">
3160
- * <ng-template kendoGridHeaderTemplate let-column let-columnIndex="columnIndex">
3161
- * {{column.field}}({{columnIndex}})
3162
- * </ng-template>
3163
- * </kendo-grid-column>
3164
- * <kendo-grid-column field="UnitPrice">
3165
- * <ng-template kendoGridHeaderTemplate let-column let-columnIndex="columnIndex">
3166
- * {{column.field}}({{columnIndex}})
3167
- * </ng-template>
3168
- * </kendo-grid-column>
3169
- * </kendo-grid>
3170
- * `
3171
- * })
3172
- *
3173
- * class AppComponent {
3174
- * public gridData = [{
3175
- * "ProductID": 1,
3176
- * "ProductName": "Chai",
3177
- * "UnitPrice": 18.0000,
3178
- * "Discontinued": false
3179
- * }, {
3180
- * "ProductID": 2,
3181
- * "ProductName": "Chang",
3182
- * "UnitPrice": 19.0000,
3183
- * "Discontinued": true
3184
- * }
3185
- * ];
3186
- * }
3187
- *
3045
+ * ```html
3046
+ * <kendo-grid [data]="gridData">
3047
+ * <kendo-grid-column field="ProductName">
3048
+ * <ng-template kendoGridHeaderTemplate let-column let-columnIndex="columnIndex">
3049
+ * {{column.field}}({{columnIndex}})
3050
+ * </ng-template>
3051
+ * </kendo-grid-column>
3052
+ * </kendo-grid>
3188
3053
  * ```
3189
3054
  */
3190
3055
  class HeaderTemplateDirective {
@@ -3220,41 +3085,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3220
3085
  * refer to the article on [aggregates]({% slug groupable_grid_with_aggregates %}).
3221
3086
  *
3222
3087
  * @example
3223
- * ```ts-preview
3224
- *
3225
- * _@Component({
3226
- * selector: 'my-app',
3227
- * template: `
3228
- * <kendo-grid [data]="gridData" scrollable="none">
3229
- * <kendo-grid-column field="ProductName">
3230
- * <ng-template kendoGridFooterTemplate let-column let-columnIndex="columnIndex">
3231
- * {{column.field}}({{columnIndex}})
3232
- * </ng-template>
3233
- * </kendo-grid-column>
3234
- * <kendo-grid-column field="UnitPrice">
3235
- * <ng-template kendoGridFooterTemplate let-column let-columnIndex="columnIndex">
3236
- * {{column.field}}({{columnIndex}})
3237
- * </ng-template>
3238
- * </kendo-grid-column>
3239
- * </kendo-grid>
3240
- * `
3241
- * })
3242
- *
3243
- * class AppComponent {
3244
- * public gridData = [{
3245
- * "ProductID": 1,
3246
- * "ProductName": "Chai",
3247
- * "UnitPrice": 18.0000,
3248
- * "Discontinued": false
3249
- * }, {
3250
- * "ProductID": 2,
3251
- * "ProductName": "Chang",
3252
- * "UnitPrice": 19.0000,
3253
- * "Discontinued": true
3254
- * }
3255
- * ];
3256
- * }
3257
- *
3088
+ * ```html
3089
+ * <kendo-grid [data]="gridData" scrollable="none">
3090
+ * <kendo-grid-column field="ProductName">
3091
+ * <ng-template kendoGridFooterTemplate let-column let-columnIndex="columnIndex">
3092
+ * {{column.field}}({{columnIndex}})
3093
+ * </ng-template>
3094
+ * </kendo-grid-column>
3095
+ * </kendo-grid>
3258
3096
  * ```
3259
3097
  */
3260
3098
  class FooterTemplateDirective {
@@ -3279,40 +3117,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3279
3117
  * Represents the template for the column menu in the Grid. Provides an option for
3280
3118
  * customizing the content of the column menu for all or for specific columns.
3281
3119
  * To define the content template, nest an `<ng-template>` tag with the
3282
- * `kendoGridColumnMenuTemplate` directive inside the `kendo-grid` or the `<kendo-grid-column>` component.
3120
+ * `kendoGridColumnMenuTemplate` directive inside the `<kendo-grid>` or the `<kendo-grid-column>` component.
3283
3121
  *
3284
3122
  * The template context is passes through the following fields:
3285
3123
  * - `service`&mdash;Represents the [ColumnMenuService]({% slug api_grid_columnmenuservice %}).
3286
3124
  * - `column`&mdash;Represents the Grid column.
3287
3125
  *
3288
3126
  * @example
3289
- * ```ts-preview
3290
- *
3291
- * _@Component({
3292
- * selector: 'my-app',
3293
- * template: `
3294
- * <kendo-grid [kendoGridBinding]="data" [sortable]="true" [columnMenu]="true">
3295
- * <ng-template kendoGridColumnMenuTemplate let-service="service">
3296
- * <kendo-grid-columnmenu-sort [service]="service">
3297
- * </kendo-grid-columnmenu-sort>
3298
- * </ng-template>
3299
- * <kendo-grid-column field="Field1" [width]="100">
3300
- * <ng-template kendoGridColumnMenuTemplate let-service="service">
3301
- * <kendo-grid-columnmenu-lock [service]="service">
3302
- * </kendo-grid-columnmenu-lock>
3303
- * <kendo-grid-columnmenu-sort [service]="service">
3304
- * </kendo-grid-columnmenu-sort>
3305
- * </ng-template>
3306
- * </kendo-grid-column>
3307
- * <kendo-grid-column field="Field2" [width]="100"></kendo-grid-column>
3308
- * </kendo-grid>
3309
- * `
3310
- * })
3311
- *
3312
- * class AppComponent {
3313
- * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }, { Field1: 'Foo1', Field2: 'Bar1' }];
3314
- * }
3315
- *
3127
+ * ```html
3128
+ * <kendo-grid [kendoGridBinding]="data" [sortable]="true" [columnMenu]="true">
3129
+ * <ng-template kendoGridColumnMenuTemplate let-service="service">
3130
+ * <kendo-grid-columnmenu-sort [service]="service"></kendo-grid-columnmenu-sort>
3131
+ * </ng-template>
3132
+ * <kendo-grid-column field="Field1">
3133
+ * <ng-template kendoGridColumnMenuTemplate let-service="service">
3134
+ * <kendo-grid-columnmenu-lock [service]="service"></kendo-grid-columnmenu-lock>
3135
+ * <kendo-grid-columnmenu-sort [service]="service"></kendo-grid-columnmenu-sort>
3136
+ * </ng-template>
3137
+ * </kendo-grid-column>
3138
+ * <kendo-grid-column field="Field2"></kendo-grid-column>
3139
+ * </kendo-grid>
3316
3140
  * ```
3317
3141
  */
3318
3142
  class ColumnMenuTemplateDirective {
@@ -3369,6 +3193,10 @@ const isSpanColumn = column => column.isSpanColumn;
3369
3193
  * @hidden
3370
3194
  */
3371
3195
  const isCheckboxColumn = column => column.isCheckboxColumn;
3196
+ /**
3197
+ * @hidden
3198
+ */
3199
+ const isRowReorderColumn = column => column.isRowReorderColumn;
3372
3200
  const isColumnContainer = column => column.isColumnGroup || isSpanColumn(column);
3373
3201
  /**
3374
3202
  * The base class for the column components of the Grid.
@@ -4387,64 +4215,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4387
4215
  * To define the detail template, nest an `<ng-template>` tag with the `kendoGridDetailTemplate` directive inside a `<kendo-grid>` tag.
4388
4216
  *
4389
4217
  * @example
4390
- * ```ts-preview
4391
- *
4392
- * _@Component({
4393
- * selector: 'my-app',
4394
- * template: `
4395
- * <kendo-grid
4396
- * [data]="data"
4397
- * selectable="true"
4398
- * style="height: 160px"
4399
- * >
4400
- * <kendo-grid-column field="ProductID"></kendo-grid-column>
4401
- * <kendo-grid-column field="ProductName"></kendo-grid-column>
4402
- * <kendo-grid-column field="UnitPrice"></kendo-grid-column>
4403
- * <ng-template kendoGridDetailTemplate let-dataItem>
4404
- * <div *ngIf="dataItem.Category">
4405
- * <header>{{dataItem.Category?.CategoryName}}</header>
4406
- * <span>{{dataItem.Category?.Description}}</span>
4407
- * </div>
4408
- * </ng-template>
4409
- * </kendo-grid>
4410
- * `
4411
- * })
4412
- *
4413
- * class AppComponent {
4414
- * public data = [{
4415
- * "ProductID": 1,
4416
- * "ProductName": "Chai",
4417
- * "UnitPrice": 18.0000,
4418
- * "Discontinued": false,
4419
- * "Category": {
4420
- * "CategoryID": 1,
4421
- * "CategoryName": "Beverages",
4422
- * "Description": "Soft drinks, coffees, teas, beers, and ales"
4423
- * }
4424
- * }, {
4425
- * "ProductID": 2,
4426
- * "ProductName": "Chang",
4427
- * "UnitPrice": 19.0000,
4428
- * "Discontinued": false,
4429
- * "Category": {
4430
- * "CategoryID": 1,
4431
- * "CategoryName": "Beverages",
4432
- * "Description": "Soft drinks, coffees, teas, beers, and ales"
4433
- * }
4434
- * }, {
4435
- * "ProductID": 3,
4436
- * "ProductName": "Aniseed Syrup",
4437
- * "UnitPrice": 10.0000,
4438
- * "Discontinued": false,
4439
- * "Category": {
4440
- * "CategoryID": 2,
4441
- * "CategoryName": "Condiments",
4442
- * "Description": "Sweet and savory sauces, relishes, spreads, and seasonings"
4443
- * }
4444
- * }];
4445
- *
4446
- * }
4447
- *
4218
+ * ```html
4219
+ * <kendo-grid [data]="data" selectable="true" style="height: 160px">
4220
+ * <kendo-grid-column field="ProductName"></kendo-grid-column>
4221
+ * <ng-template kendoGridDetailTemplate let-dataItem>
4222
+ * <div *ngIf="dataItem.Category">
4223
+ * <header>{{dataItem.Category?.CategoryName}}</header>
4224
+ * span>{{dataItem.Category?.Description}}</span>
4225
+ * </div>
4226
+ * </ng-template>
4227
+ * </kendo-grid>
4448
4228
  * ```
4449
4229
  *
4450
4230
  */
@@ -5007,6 +4787,7 @@ class Selection {
5007
4787
  this.cd = cd;
5008
4788
  /**
5009
4789
  * Defines the collection that will store the selected item keys.
4790
+ * @default []
5010
4791
  */
5011
4792
  this.selectedKeys = [];
5012
4793
  /**
@@ -5394,66 +5175,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5394
5175
 
5395
5176
  /**
5396
5177
  * Represents the no-records template of the Grid. Provides an option to customize the
5397
- * appearance of the item that is displayed when no data is present. To define the no-records template,
5398
- * nest an `<ng-template>` tag with the `kendoGridNoRecordsTemplate` directive inside `<kendo-grid>`.
5399
- *
5400
- * > When the locked columns of the Grid are in use, the template is displayed in the non-locked part of the content.
5178
+ * appearance of the item that is displayed when no data is present.
5179
+ * To define the no-records template, nest an `<ng-template>` tag with the `kendoGridNoRecordsTemplate`
5180
+ * directive inside `<kendo-grid>` [see example](slug:norecordtemplate_grid).
5401
5181
  *
5402
5182
  * @example
5403
- * ```ts-preview
5404
- *
5405
- * _@Component({
5406
- * selector: 'my-app',
5407
- * template: `
5408
- * <kendo-grid [data]="data">
5409
- * <kendo-grid-column field="ProductID"></kendo-grid-column>
5410
- * <kendo-grid-column field="ProductName"></kendo-grid-column>
5411
- * <kendo-grid-column field="UnitPrice"></kendo-grid-column>
5412
- * <ng-template kendoGridNoRecordsTemplate>
5413
- * There are not products. <a href="#" (click)="refresh()">Click here to refresh</a>.
5414
- * </ng-template>
5415
- * </kendo-grid>
5416
- * `
5417
- * })
5418
- *
5419
- * class AppComponent {
5420
- * public data = [];
5421
- * public refresh() {
5422
- * this.data = [{
5423
- * "ProductID": 1,
5424
- * "ProductName": "Chai",
5425
- * "UnitPrice": 18.0000,
5426
- * "Discontinued": false,
5427
- * "Category": {
5428
- * "CategoryID": 1,
5429
- * "CategoryName": "Beverages",
5430
- * "Description": "Soft drinks, coffees, teas, beers, and ales"
5431
- * }
5432
- * }, {
5433
- * "ProductID": 2,
5434
- * "ProductName": "Chang",
5435
- * "UnitPrice": 19.0000,
5436
- * "Discontinued": false,
5437
- * "Category": {
5438
- * "CategoryID": 1,
5439
- * "CategoryName": "Beverages",
5440
- * "Description": "Soft drinks, coffees, teas, beers, and ales"
5441
- * }
5442
- * }, {
5443
- * "ProductID": 3,
5444
- * "ProductName": "Aniseed Syrup",
5445
- * "UnitPrice": 10.0000,
5446
- * "Discontinued": false,
5447
- * "Category": {
5448
- * "CategoryID": 2,
5449
- * "CategoryName": "Condiments",
5450
- * "Description": "Sweet and savory sauces, relishes, spreads, and seasonings"
5451
- * }
5452
- * }];
5453
- *
5454
- * }
5455
- * }
5456
- *
5183
+ * ```html
5184
+ * <kendo-grid [data]="data">
5185
+ * <ng-template kendoGridNoRecordsTemplate>
5186
+ * There are not products. <a href="#" (click)="refresh()">Click here to refresh</a>.
5187
+ * </ng-template>
5188
+ * <kendo-grid-column field="ProductID"></kendo-grid-column>
5189
+ * <kendo-grid-column field="ProductName"></kendo-grid-column>
5190
+ * </kendo-grid>
5457
5191
  * ```
5458
5192
  */
5459
5193
  class NoRecordsTemplateDirective {
@@ -5568,7 +5302,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5568
5302
 
5569
5303
  /**
5570
5304
  * Represents the pager template which helps to customize the pager appearance in the Grid. To define a pager
5571
- * template, nest an `<ng-template>` tag with the `kendoPagerTemplate` directive inside `<kendo-grid>`.
5305
+ * template, nest an `<ng-template>` tag with the `kendoPagerTemplate` directive inside `<kendo-grid>` tag
5306
+ * [see example](slug:pager_template_grid).
5572
5307
  *
5573
5308
  * The template context provides the following fields:
5574
5309
  * * `currentPage`&mdash;The index of the displayed page.
@@ -5576,53 +5311,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5576
5311
  * * `skip`&mdash;The current skip value.
5577
5312
  * * `total`&mdash;The total number of records.
5578
5313
  * * `totalPages`&mdash;The total number of available pages.
5579
- * * Needs to be provided as an input to inner pager components used within the template when the Grid is navigable.
5580
5314
  *
5581
5315
  * @example
5582
- * ```ts-preview
5583
- *
5584
- * _@Component({
5585
- * selector: 'my-app',
5586
- * template: `
5587
- * <kendo-grid
5588
- * [kendoGridBinding]="gridData"
5589
- * [pageSize]="1"
5590
- * [pageable]="true"
5591
- * >
5592
- * <kendo-grid-column field="ProductID" title="ID" [width]="40">
5593
- * </kendo-grid-column>
5594
- * <kendo-grid-column field="ProductName" title="Name" [width]="250">
5595
- * </kendo-grid-column>
5596
- * <kendo-grid-column field="UnitPrice" title="Price" [width]="80" format="{0:c}">
5597
- * </kendo-grid-column>
5598
- *
5599
- * <ng-template kendoPagerTemplate let-totalPages="totalPages" let-currentPage="currentPage">
5600
- * <kendo-pager-prev-buttons></kendo-pager-prev-buttons>
5601
- * <kendo-pager-numeric-buttons [buttonCount]="10"></kendo-pager-numeric-buttons>
5602
- * <kendo-pager-next-buttons></kendo-pager-next-buttons>
5603
- * <kendo-pager-info></kendo-pager-info>
5604
- * Current page: {{currentPage}}
5605
- * </ng-template>
5606
- *
5607
- * </kendo-grid>
5608
- * `
5609
- * })
5610
- *
5611
- * class AppComponent {
5612
- * public gridData = [{
5613
- * "ProductID": 1,
5614
- * "ProductName": "Chai",
5615
- * "UnitPrice": 18.0000,
5616
- * "Discontinued": false
5617
- * }, {
5618
- * "ProductID": 2,
5619
- * "ProductName": "Chang",
5620
- * "UnitPrice": 19.0000,
5621
- * "Discontinued": true
5622
- * }
5623
- * ];
5624
- * }
5625
- *
5316
+ * ```html
5317
+ * <kendo-grid ... [pageable]="true">
5318
+ * <ng-template kendoPagerTemplate let-totalPages="totalPages" let-currentPage="currentPage">
5319
+ * <kendo-pager-prev-buttons></kendo-pager-prev-buttons>
5320
+ * <kendo-pager-next-buttons></kendo-pager-next-buttons>
5321
+ * <kendo-pager-info></kendo-pager-info>
5322
+ * Current page: {{currentPage}}
5323
+ * </ng-template>
5324
+ * <kendo-grid-column field="ProductID"></kendo-grid-column>
5325
+ * <kendo-grid-column field="ProductName"></kendo-grid-column>
5326
+ * </kendo-grid>
5626
5327
  * ```
5627
5328
  */
5628
5329
  class PagerTemplateDirective {
@@ -5768,56 +5469,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5768
5469
  * - `position`&mdash;The position at which the toolbar template is rendered. The possible values are "top" and "bottom".
5769
5470
  *
5770
5471
  * @example
5771
- * ```ts-preview
5772
- *
5773
- * _@Component({
5774
- * selector: 'my-app',
5775
- * template: `
5776
- * <div class="example-config">
5777
- * <input type="radio" id="top" name="position" value="top" checked (click)="positionChange($event)"/>
5778
- * <label class="k-radio-label" for="top">Top</label><br/>
5779
- * <input type="radio" id="bottom" name="position" value="bottom" (click)="positionChange($event)"/>
5780
- * <label class="k-radio-label" for="bottom">Bottom</label><br/>
5781
- * <input type="radio" id="both" name="position" value="both" (click)="positionChange($event)"/>
5782
- * <label class="k-radio-label" for="both">Both</label><br/>
5783
- * </div>
5784
- * <kendo-grid [data]="gridData" style="height: 200px">
5785
- * <ng-template kendoGridToolbarTemplate [position]="position" let-position="position">
5786
- * <button (click)="onClick()">Custom action</button>
5787
- * </ng-template>
5788
- * <kendo-grid-column field="ProductName">
5789
- * </kendo-grid-column>
5790
- * <kendo-grid-column field="UnitPrice">
5791
- * </kendo-grid-column>
5792
- * </kendo-grid>
5793
- * `
5794
- * })
5795
- *
5796
- * class AppComponent {
5797
- * public position: 'top' | 'bottom' | 'both' = 'top';
5798
- *
5799
- * public gridData = [{
5800
- * "ProductID": 1,
5801
- * "ProductName": "Chai",
5802
- * "UnitPrice": 18.0000,
5803
- * "Discontinued": false
5804
- * }, {
5805
- * "ProductID": 2,
5806
- * "ProductName": "Chang",
5807
- * "UnitPrice": 19.0000,
5808
- * "Discontinued": true
5809
- * }
5810
- * ];
5811
- *
5812
- * public onClick(): void {
5813
- * console.log("button was clicked");
5814
- * }
5815
- *
5816
- * public positionChange({ target }): void {
5817
- * this.position = target.value;
5818
- * }
5819
- * }
5820
- *
5472
+ * ```html
5473
+ * <kendo-grid [data]="gridData" style="height: 200px">
5474
+ * <ng-template kendoGridToolbarTemplate [position]="position" let-position="position">
5475
+ * <button (click)="onClick()">Custom action</button>
5476
+ * </ng-template>
5477
+ * <kendo-grid-column field="ProductName">
5478
+ * </kendo-grid-column>
5479
+ * </kendo-grid>
5821
5480
  * ```
5822
5481
  */
5823
5482
  class ToolbarTemplateDirective {
@@ -5826,13 +5485,9 @@ class ToolbarTemplateDirective {
5826
5485
  this._position = 'top';
5827
5486
  }
5828
5487
  /**
5829
- * The position of the toolbar ([see example]({% slug toolbartemplate_grid %})).
5488
+ * The position of the toolbar ([see example]({% slug toolbartemplate_grid %}#toc-setting-the-toolbar-position)).
5830
5489
  *
5831
- * The possible values are:
5832
- * - `top`&mdash;Positions the toolbar above the group panel or header.
5833
- * - `bottom`&mdash;Positions the toolbar below the pager.
5834
- * - `both`&mdash;Displays two toolbar instances. Positions the first one above
5835
- * the group panel or header and the second one below the pager.
5490
+ * @default 'top'
5836
5491
  */
5837
5492
  set position(position) {
5838
5493
  this._position = position;
@@ -6236,17 +5891,17 @@ const append = (element) => {
6236
5891
  /**
6237
5892
  * @hidden
6238
5893
  */
6239
- const getDocument = element => element.ownerDocument.documentElement;
5894
+ const getDocument$1 = element => element.ownerDocument.documentElement;
6240
5895
  /**
6241
5896
  * @hidden
6242
5897
  */
6243
- const getWindow = element => element.ownerDocument.defaultView;
5898
+ const getWindow$1 = element => element.ownerDocument.defaultView;
6244
5899
  /**
6245
5900
  * @hidden
6246
5901
  */
6247
5902
  const offset = element => {
6248
- const { clientTop, clientLeft } = getDocument(element);
6249
- const { pageYOffset, pageXOffset } = getWindow(element);
5903
+ const { clientTop, clientLeft } = getDocument$1(element);
5904
+ const { pageYOffset, pageXOffset } = getWindow$1(element);
6250
5905
  const { top, left } = element.getBoundingClientRect();
6251
5906
  return {
6252
5907
  top: top + pageYOffset - clientTop,
@@ -6661,17 +6316,20 @@ class ColumnStickyChangeEvent {
6661
6316
  /**
6662
6317
  * Represents the virtual scrolling cell template of the Grid while loading new data. Provides an option to customize the
6663
6318
  * appearance of the indicator that is displayed while new data is loading. To define the loading cell template,
6664
- * nest an `<ng-template>` tag with the `kendoGridCellLoadingTemplate` directive inside `<kendo-grid>` ([see example]({% slug virtualscrolling_grid %}#toc-custom-loading-skeleton)).
6319
+ * nest an `<ng-template>` tag with the `kendoGridCellLoadingTemplate` directive inside `<kendo-grid>` tag [see example]({% slug virtualscrolling_grid %}#toc-custom-loading-skeleton).
6665
6320
  *
6666
- * The template context is set to the current column, and utilizes the `let-x` syntax&mdash;for example, `let-column`.
6321
+ *
6322
+ * The template context is set to the current column and the following additional field is passed:
6323
+ *
6324
+ * - `column`&mdash;The current column instance. Represents the default context that will be assigned to any template variable which utilizes the `let-x` syntax (for example `let-column`).
6667
6325
  *
6668
6326
  * @example
6669
- * ```ts-no-run
6670
- * <kendo-grid [data]="data" scrollable="virtual" [rowHeight]="36">
6671
- * <ng-template kendoGridCellLoadingTemplate let-column>
6672
- * ...
6673
- * </ng-template>
6674
- * </kendo-grid>
6327
+ * ```html
6328
+ * <kendo-grid ... scrollable="virtual" [rowHeight]="36" [height]="450">
6329
+ * <ng-template kendoGridCellLoadingTemplate let-column>
6330
+ * ...
6331
+ * </ng-template>
6332
+ * </kendo-grid>
6675
6333
  * ```
6676
6334
  */
6677
6335
  class CellLoadingTemplateDirective {
@@ -6695,7 +6353,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6695
6353
  /**
6696
6354
  * Creates a loading template that overrides the default loading indicator of the Grid Component.
6697
6355
  * To define a loading template, nest an `<ng-template>` tag with the `kendoGridLoadingTemplate` directive inside the `<kendo-grid>` tag
6698
- * [see example]({% slug binding_grid %}#toc-loading-template).
6356
+ * ([see example](slug:loadingtemplate_grid)).
6699
6357
  */
6700
6358
  class LoadingTemplateDirective {
6701
6359
  constructor(templateRef) {
@@ -6716,11 +6374,319 @@ class SizingOptionsService {
6716
6374
  this.changes = new Subject();
6717
6375
  }
6718
6376
  }
6719
- SizingOptionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SizingOptionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6720
- SizingOptionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SizingOptionsService });
6721
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SizingOptionsService, decorators: [{
6377
+ SizingOptionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SizingOptionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6378
+ SizingOptionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SizingOptionsService });
6379
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SizingOptionsService, decorators: [{
6380
+ type: Injectable
6381
+ }] });
6382
+
6383
+ /**
6384
+ * @hidden
6385
+ */
6386
+ const isNextSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.nextElementSibling;
6387
+ /**
6388
+ * @hidden
6389
+ */
6390
+ const isPreviousSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.previousElementSibling;
6391
+ /**
6392
+ * @hidden
6393
+ */
6394
+ const isDifferentParent = (dropTarget, dragTarget) => (dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.parentElement) !== (dragTarget === null || dragTarget === void 0 ? void 0 : dragTarget.parentElement);
6395
+ /**
6396
+ * @hidden
6397
+ */
6398
+ function getOffset(element) {
6399
+ const { clientTop, clientLeft } = getDocument(element);
6400
+ const { pageYOffset, pageXOffset } = getWindow(element);
6401
+ const { top, left } = element.getBoundingClientRect();
6402
+ return {
6403
+ top: top + pageYOffset - clientTop,
6404
+ left: left + pageXOffset - clientLeft
6405
+ };
6406
+ }
6407
+ ;
6408
+ /**
6409
+ * @hidden
6410
+ */
6411
+ const hintIcons = {
6412
+ forbidden: 'cancel',
6413
+ before: 'insert-middle',
6414
+ after: 'insert-middle'
6415
+ };
6416
+ /**
6417
+ * @hidden
6418
+ */
6419
+ const hintSVGIcons = {
6420
+ forbidden: cancelIcon,
6421
+ before: insertMiddleIcon,
6422
+ after: insertMiddleIcon
6423
+ };
6424
+ /**
6425
+ * @hidden
6426
+ */
6427
+ const dropPosition = {
6428
+ forbidden: 'forbidden',
6429
+ before: 'before',
6430
+ after: 'after'
6431
+ };
6432
+ /**
6433
+ * @hidden
6434
+ */
6435
+ const hintStyles = {
6436
+ zIndex: '20000',
6437
+ display: 'flex',
6438
+ position: 'fixed'
6439
+ };
6440
+ /**
6441
+ * @hidden
6442
+ */
6443
+ const hintClasses = ['k-drag-clue', 'k-reorder-clue'];
6444
+ /**
6445
+ * @hidden
6446
+ */
6447
+ const dropIndicatorStyles = {
6448
+ zIndex: '19000',
6449
+ position: 'absolute'
6450
+ };
6451
+ /**
6452
+ * @hidden
6453
+ */
6454
+ const dropIndicatorClasses = ['k-drop-hint', 'k-drop-hint-h'];
6455
+ /**
6456
+ * @hidden
6457
+ */
6458
+ const defaultSelectors = {
6459
+ handle: '.k-table-td.k-drag-cell',
6460
+ dragTarget: '.k-master-row',
6461
+ dropTarget: '.k-master-row'
6462
+ };
6463
+ const getDocument = element => element === null || element === void 0 ? void 0 : element.ownerDocument.documentElement;
6464
+ const getWindow = element => element === null || element === void 0 ? void 0 : element.ownerDocument.defaultView;
6465
+
6466
+ /**
6467
+ * @hidden
6468
+ */
6469
+ class RowReorderService {
6470
+ constructor(renderer) {
6471
+ this.renderer = renderer;
6472
+ this.hintElement = null;
6473
+ this.defaultSelectors = defaultSelectors;
6474
+ this.hintText = '';
6475
+ this.lastDropPosition = dropPosition.forbidden;
6476
+ this.dragTarget = null;
6477
+ this.dropTarget = null;
6478
+ this.rowReorder = new EventEmitter();
6479
+ }
6480
+ press(ev) {
6481
+ this.dragTarget = ev.dragTarget;
6482
+ }
6483
+ dragStart() {
6484
+ this.createDropIndicator();
6485
+ }
6486
+ drag(ev) {
6487
+ if (isPresent$1(ev.hintElement) && !isPresent$1(this.hintElement)) {
6488
+ this.hintElement = ev.hintElement;
6489
+ this.decorateHint();
6490
+ }
6491
+ const position = {
6492
+ x: ev.dragEvent.clientX,
6493
+ y: ev.dragEvent.clientY
6494
+ };
6495
+ if (isPresent$1(this.hintElement)) {
6496
+ this.renderer.setStyle(this.hintElement, 'left', `${position.x}px`);
6497
+ this.renderer.setStyle(this.hintElement, 'top', `${position.y}px`);
6498
+ }
6499
+ this.positionDropIndicator(ev);
6500
+ }
6501
+ dragEnter(ev) {
6502
+ this.dropTarget = ev.dropTarget;
6503
+ }
6504
+ dragLeave() {
6505
+ this.dropTarget = null;
6506
+ this.hide();
6507
+ }
6508
+ dragEnd() {
6509
+ this.destroyDropIndicator();
6510
+ this.dragTarget = null;
6511
+ this.dropTarget = null;
6512
+ this.hintElement = null;
6513
+ }
6514
+ drop(ev) {
6515
+ this.destroyDropIndicator();
6516
+ const rowReorderArgs = this.rowReorderArgs(this.dragTarget, this.dropTarget, ev.dragData);
6517
+ this.rowReorder.emit(rowReorderArgs);
6518
+ }
6519
+ reorderRows(ev, collection) {
6520
+ if (this.lastDropPosition === dropPosition.forbidden) {
6521
+ return;
6522
+ }
6523
+ ;
6524
+ const { draggedRows, dropTargetRow } = ev;
6525
+ const draggedDataItem = draggedRows[0].dataItem;
6526
+ const dropTargetDataItem = dropTargetRow.dataItem;
6527
+ const draggedItemIndex = collection.indexOf(draggedDataItem);
6528
+ const dropTargetIndex = collection.indexOf(dropTargetDataItem);
6529
+ const idxToAdd = this.calculateIndexToAdd(draggedItemIndex, dropTargetIndex);
6530
+ collection.splice(draggedItemIndex, 1);
6531
+ collection.splice(idxToAdd, 0, draggedDataItem);
6532
+ }
6533
+ get hintIcon() {
6534
+ return hintIcons[this.lastDropPosition];
6535
+ }
6536
+ get hintSVGIcon() {
6537
+ return hintSVGIcons[this.lastDropPosition];
6538
+ }
6539
+ getDefaultHintText(columns, data) {
6540
+ let hintText = '';
6541
+ const columnFieldsArray = columns
6542
+ .toArray()
6543
+ .filter(column => !column.hidden && isPresent$1(column.field))
6544
+ .map(column => column.field);
6545
+ const draggedDragRow = this.getDragRowPerElement(this.dragTarget, data);
6546
+ const draggedDataItem = draggedDragRow === null || draggedDragRow === void 0 ? void 0 : draggedDragRow.dataItem;
6547
+ isPresent$1(draggedDataItem) && columnFieldsArray.forEach(column => {
6548
+ const columnValue = draggedDataItem[column];
6549
+ isPresent$1(columnValue) ? hintText += `${columnValue} ` : null;
6550
+ });
6551
+ return hintText.trim();
6552
+ }
6553
+ rowReorderArgs(dragRow, dropRow, data) {
6554
+ const dragRowData = this.getDragRowPerElement(dragRow, data);
6555
+ const dropRowData = this.getDragRowPerElement(dropRow, data);
6556
+ return {
6557
+ draggedRows: [dragRowData],
6558
+ dropTargetRow: dropRowData,
6559
+ dropPosition: this.lastDropPosition
6560
+ };
6561
+ }
6562
+ getDragRowPerElement(row, data) {
6563
+ let rowIndex = row === null || row === void 0 ? void 0 : row.getAttribute('data-kendo-grid-item-index');
6564
+ rowIndex = rowIndex ? parseInt(rowIndex, 10) : -1;
6565
+ const skip = this.skip || 0;
6566
+ const dataItem = rowIndex === -1 ? null : data[rowIndex - skip];
6567
+ return {
6568
+ dataItem,
6569
+ rowIndex,
6570
+ element: row
6571
+ };
6572
+ }
6573
+ createDropIndicator() {
6574
+ if (!isDocumentAvailable()) {
6575
+ return;
6576
+ }
6577
+ this.dropIndicator = document.createElement('div');
6578
+ this.decorateDropIndicator();
6579
+ this.dropIndicator.innerHTML = `
6580
+ <div class="k-drop-hint-start"></div>
6581
+ <div class="k-drop-hint-line"></div>
6582
+ `;
6583
+ document.body.appendChild(this.dropIndicator);
6584
+ this.hide();
6585
+ }
6586
+ destroyDropIndicator() {
6587
+ if (!isDocumentAvailable()) {
6588
+ return;
6589
+ }
6590
+ ;
6591
+ if (this.dropIndicator && this.dropIndicator.parentElement) {
6592
+ document.body.removeChild(this.dropIndicator);
6593
+ this.dropIndicator = null;
6594
+ }
6595
+ }
6596
+ decorateHint() {
6597
+ hintClasses.forEach(className => this.renderer.addClass(this.hintElement, className));
6598
+ Object.keys(hintStyles)
6599
+ .forEach(style => this.renderer.setStyle(this.hintElement, style, hintStyles[style]));
6600
+ }
6601
+ positionDropIndicator(ev) {
6602
+ this.lastDropPosition = this.getDropPosition(ev.dragEvent);
6603
+ this.updateDropIndicatorPosition();
6604
+ }
6605
+ calculateIndexToAdd(dragIndex, dropIndex) {
6606
+ if (dragIndex > dropIndex && this.lastDropPosition === dropPosition.after) {
6607
+ return dropIndex + 1;
6608
+ }
6609
+ else if (dragIndex > dropIndex && this.lastDropPosition === dropPosition.before) {
6610
+ return dropIndex;
6611
+ }
6612
+ else if (dragIndex < dropIndex && this.lastDropPosition === dropPosition.after) {
6613
+ return dropIndex;
6614
+ }
6615
+ else if (dragIndex < dropIndex && this.lastDropPosition === dropPosition.before) {
6616
+ return dropIndex - 1;
6617
+ }
6618
+ }
6619
+ decorateDropIndicator() {
6620
+ dropIndicatorClasses.forEach(className => this.renderer.addClass(this.dropIndicator, className));
6621
+ Object.keys(dropIndicatorStyles)
6622
+ .forEach(style => this.renderer.setStyle(this.dropIndicator, style, dropIndicatorStyles[style]));
6623
+ }
6624
+ ;
6625
+ getDropPosition(e) {
6626
+ if (this.dropTarget === this.dragTarget || !isPresent$1(this.dropTarget)) {
6627
+ return dropPosition.forbidden;
6628
+ }
6629
+ ;
6630
+ if (isDifferentParent(this.dropTarget, this.dragTarget)) {
6631
+ return dropPosition.forbidden;
6632
+ }
6633
+ ;
6634
+ const itemViewPortCoords = this.dropTarget.getBoundingClientRect();
6635
+ const itemDivisionsCount = 2;
6636
+ const itemDivisionHeight = itemViewPortCoords.height / itemDivisionsCount;
6637
+ const pointerPosition = e.clientY;
6638
+ const itemTop = itemViewPortCoords.top;
6639
+ let currentDropPosition = null;
6640
+ if (pointerPosition < itemTop + itemDivisionHeight) {
6641
+ currentDropPosition = dropPosition.before;
6642
+ }
6643
+ else if (pointerPosition >= itemTop + itemViewPortCoords.height - itemDivisionHeight) {
6644
+ currentDropPosition = dropPosition.after;
6645
+ }
6646
+ if (currentDropPosition === dropPosition.before && isNextSibling(this.dropTarget, this.dragTarget)) {
6647
+ currentDropPosition = dropPosition.forbidden;
6648
+ }
6649
+ else if (currentDropPosition === dropPosition.after && isPreviousSibling(this.dropTarget, this.dragTarget)) {
6650
+ currentDropPosition = dropPosition.forbidden;
6651
+ }
6652
+ return currentDropPosition;
6653
+ }
6654
+ updateDropIndicatorPosition() {
6655
+ if (this.shouldHideDropIndicator() || !this.dropTarget) {
6656
+ this.hide();
6657
+ return;
6658
+ }
6659
+ this.show();
6660
+ const destinationItemOffset = getOffset(this.dropTarget);
6661
+ let indicatorOffsetTop = destinationItemOffset.top;
6662
+ const indicatorOffsetLeft = destinationItemOffset.left + this.dropIndicator.offsetWidth / 2;
6663
+ if (this.lastDropPosition === dropPosition.after) {
6664
+ indicatorOffsetTop += this.dropTarget.offsetHeight;
6665
+ }
6666
+ this.renderer.setStyle(this.dropIndicator, 'left', `${indicatorOffsetLeft}px`);
6667
+ this.renderer.setStyle(this.dropIndicator, 'top', `${indicatorOffsetTop}px`);
6668
+ }
6669
+ shouldHideDropIndicator() {
6670
+ return this.lastDropPosition === dropPosition.forbidden;
6671
+ }
6672
+ hide() {
6673
+ if (isPresent$1(this.dropIndicator)) {
6674
+ this.dropIndicator.style.display = 'none';
6675
+ }
6676
+ }
6677
+ show() {
6678
+ if (isPresent$1(this.dropIndicator)) {
6679
+ this.dropIndicator.style.display = '';
6680
+ }
6681
+ }
6682
+ }
6683
+ RowReorderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
6684
+ RowReorderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService });
6685
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService, decorators: [{
6722
6686
  type: Injectable
6723
- }] });
6687
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { rowReorder: [{
6688
+ type: Output
6689
+ }] } });
6724
6690
 
6725
6691
  /**
6726
6692
  * @hidden
@@ -7923,7 +7889,7 @@ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
7923
7889
  [value]="pageSize"
7924
7890
  (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
7925
7891
  <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
7926
- `, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional"], exportAs: ["kendoLabel"] }], directives: [{ type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]" }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7892
+ `, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional"], exportAs: ["kendoLabel"] }], directives: [{ type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]" }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7927
7893
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
7928
7894
  type: Component,
7929
7895
  args: [{
@@ -9629,7 +9595,7 @@ FilterMenuInputWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
9629
9595
  (keydown.shift.tab)="onShiftTab($event)">
9630
9596
  </kendo-dropdownlist>
9631
9597
  <ng-content></ng-content>
9632
- `, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
9598
+ `, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
9633
9599
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuInputWrapperComponent, decorators: [{
9634
9600
  type: Component,
9635
9601
  args: [{
@@ -9812,7 +9778,7 @@ StringFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
9812
9778
  [filter]="filter"
9813
9779
  [menuTabbingService]="menuTabbingService">
9814
9780
  </kendo-grid-string-filter-menu-input>
9815
- `, isInline: true, components: [{ type: StringFilterMenuInputComponent, selector: "kendo-grid-string-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "isFirstDropDown", "menuTabbingService"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
9781
+ `, isInline: true, components: [{ type: StringFilterMenuInputComponent, selector: "kendo-grid-string-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "isFirstDropDown", "menuTabbingService"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
9816
9782
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuComponent, decorators: [{
9817
9783
  type: Component,
9818
9784
  args: [{
@@ -10215,7 +10181,7 @@ NumericFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
10215
10181
  [menuTabbingService]="menuTabbingService"
10216
10182
  >
10217
10183
  </kendo-grid-numeric-filter-menu-input>
10218
- `, isInline: true, components: [{ type: NumericFilterMenuInputComponent, selector: "kendo-grid-numeric-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "filterDelay", "isFirstDropDown", "menuTabbingService", "step", "min", "max", "spinners", "decimals", "format"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
10184
+ `, isInline: true, components: [{ type: NumericFilterMenuInputComponent, selector: "kendo-grid-numeric-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "filterDelay", "isFirstDropDown", "menuTabbingService", "step", "min", "max", "spinners", "decimals", "format"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
10219
10185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuComponent, decorators: [{
10220
10186
  type: Component,
10221
10187
  args: [{
@@ -10480,7 +10446,7 @@ DateFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
10480
10446
  </kendo-datepicker-messages>
10481
10447
  </kendo-datepicker>
10482
10448
  </kendo-grid-filter-menu-input-wrapper>
10483
- `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { type: i5$1.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }, { type: i5$1.DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
10449
+ `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { type: i4$3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }, { type: i4$3.DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
10484
10450
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuInputComponent, decorators: [{
10485
10451
  type: Component,
10486
10452
  args: [{
@@ -10666,7 +10632,7 @@ DateFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
10666
10632
  [menuTabbingService]="menuTabbingService"
10667
10633
  >
10668
10634
  </kendo-grid-date-filter-menu-input>
10669
- `, isInline: true, components: [{ type: DateFilterMenuInputComponent, selector: "kendo-grid-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
10635
+ `, isInline: true, components: [{ type: DateFilterMenuInputComponent, selector: "kendo-grid-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
10670
10636
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
10671
10637
  type: Component,
10672
10638
  args: [{
@@ -11478,35 +11444,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11478
11444
 
11479
11445
  /**
11480
11446
  * Represents the content template of the
11481
- * [kendo-grid-columnmenu-item]({% slug api_grid_columnmenuitemcomponent %}) component.
11447
+ * [`ColumnMenuItemComponent`]({% slug api_grid_columnmenuitemcomponent %}) component.
11482
11448
  * Provides an option for specifying the content of a column item.
11483
11449
  * To define the content template, nest an `<ng-template>` tag with the
11484
11450
  * `kendoGridColumnMenuItemContentTemplate` directive inside a `<kendo-grid-columnmenu-item>`.
11485
11451
  *
11486
11452
  * @example
11487
- * ```ts-preview
11488
- *
11489
- * _@Component({
11490
- * selector: 'my-app',
11491
- * template: `
11492
- * <kendo-grid [data]="data" [columnMenu]="true">
11493
- * <ng-template kendoGridColumnMenuTemplate>
11494
- * <kendo-grid-columnmenu-item text="Item Text" [expanded]="true">
11495
- * <ng-template kendoGridColumnMenuItemContentTemplate>
11496
- * Item Content
11497
- * </ng-template>
11498
- * </kendo-grid-columnmenu-item>
11499
- * </ng-template>
11500
- * <kendo-grid-column field="Field1"></kendo-grid-column>
11501
- * <kendo-grid-column field="Field2"></kendo-grid-column>
11502
- * </kendo-grid>
11503
- * `
11504
- * })
11505
- *
11506
- * class AppComponent {
11507
- * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];
11508
- * }
11509
- *
11453
+ * ```html
11454
+ * <kendo-grid [data]="data" [columnMenu]="true" ...>
11455
+ * <ng-template kendoGridColumnMenuTemplate>
11456
+ * <kendo-grid-columnmenu-item text="Item Text" [expanded]="true">
11457
+ * <ng-template kendoGridColumnMenuItemContentTemplate>
11458
+ * Item Content
11459
+ * </ng-template>
11460
+ * </kendo-grid-columnmenu-item>
11461
+ * </ng-template>
11462
+ * <kendo-grid-column field="Field1"></kendo-grid-column>
11463
+ * ...
11464
+ * </kendo-grid>
11510
11465
  * ```
11511
11466
  */
11512
11467
  class ColumnMenuItemContentTemplateDirective {
@@ -13442,7 +13397,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
13442
13397
  [size]="size"
13443
13398
  (click)="clearClick()"
13444
13399
  (keydown)="clearKeydown($event)"></button>
13445
- `, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i4$1.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
13400
+ `, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i4$1.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
13446
13401
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
13447
13402
  type: Component,
13448
13403
  args: [{
@@ -13839,7 +13794,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
13839
13794
  [value]="currentFilter?.value">
13840
13795
  </kendo-dropdownlist>
13841
13796
  </kendo-grid-filter-wrapper-cell>
13842
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
13797
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
13843
13798
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
13844
13799
  type: Component,
13845
13800
  args: [{
@@ -13946,7 +13901,7 @@ DateFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
13946
13901
  </kendo-datepicker-messages>
13947
13902
  </kendo-datepicker>
13948
13903
  </kendo-grid-filter-wrapper-cell>
13949
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i5$1.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }, { type: i5$1.DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
13904
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i4$3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }, { type: i4$3.DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
13950
13905
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterCellComponent, decorators: [{
13951
13906
  type: Component,
13952
13907
  args: [{
@@ -14497,7 +14452,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14497
14452
  }] } });
14498
14453
 
14499
14454
  /**
14500
- * Represents the select-all checkbox feature of the Grid ([see example]({% slug selection_grid %}#toc-select-all-feature)).
14455
+ * Represents the select-all checkbox feature of the Grid ([see example](slug:grid_selection_persistence#toc-selecting-all-items)).
14456
+ *
14457
+ * @example
14458
+ * ```html
14459
+ * <input
14460
+ * type="checkbox"
14461
+ * kendoCheckBox
14462
+ * kendoGridSelectAllCheckbox
14463
+ * [state]="selectAllState"
14464
+ * (selectAllChange)="onSelectAllChange($event)"
14465
+ * />
14466
+ * ```
14501
14467
  */
14502
14468
  class SelectAllCheckboxDirective {
14503
14469
  constructor(selectionService, el, renderer, ngZone) {
@@ -16042,53 +16008,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16042
16008
 
16043
16009
  /**
16044
16010
  * Represents the row-selection checkbox of the Grid. The directive expects the
16045
- * index of the current row as an input parameter. Inside the
16046
- * [CheckboxColumnComponent]({% slug api_grid_checkboxcolumncomponent %}), apply the
16047
- * directive to an `input` element. When the user clicks the checkbox that is associated
16048
- * with the directive, a [selectionChange]({% slug api_grid_gridcomponent %}#toc-selectionChange)
16011
+ * index of the current row as an input parameter. Inside the [`CellTemplateDirective`](slug:api_grid_celltemplatedirective), apply the
16012
+ * `kendoGridSelectionCheckbox` to an `<input type="checkbox"/>` element. When the user clicks the checkbox that is associated
16013
+ * with the directive, a [selectionChange](slug:api_grid_gridcomponent#toc-selectionChange)
16049
16014
  * event is triggered.
16050
16015
  *
16051
16016
  * @example
16052
- * ```ts-preview
16053
- *
16054
- * _@Component({
16055
- * selector: 'my-app',
16056
- * template: `
16057
- * <kendo-grid [data]="gridData" [selectable]="{enabled: true, checkboxOnly: true}">
16058
- * <kendo-grid-checkbox-column title="Custom checkbox">
16059
- * <ng-template kendoGridCellTemplate let-idx="rowIndex">
16060
- * Select row <input [kendoGridSelectionCheckbox]="idx" />
16061
- * </ng-template>
16062
- * </kendo-grid-checkbox-column>
16063
- * <kendo-grid-column field="ProductID" title="Product ID" [width]="120">
16064
- * </kendo-grid-column>
16065
- * <kendo-grid-column field="ProductName" title="Product Name">
16066
- * </kendo-grid-column>
16067
- * </kendo-grid>
16068
- * `
16069
- * })
16070
- *
16071
- * class AppComponent {
16072
- * public gridData: any[];
16073
- *
16074
- * constructor() {
16075
- * this.gridData = products;
16076
- * }
16077
- * }
16078
- *
16079
- * const products = [{
16080
- * "ProductID": 1,
16081
- * "ProductName": "Chai",
16082
- * "UnitPrice": 18.0000,
16083
- * "Discontinued": true
16084
- * }, {
16085
- * "ProductID": 2,
16086
- * "ProductName": "Chang",
16087
- * "UnitPrice": 19.0000,
16088
- * "Discontinued": false
16089
- * }
16090
- * ];
16091
- *
16017
+ * ```html
16018
+ * <kendo-grid ... >
16019
+ * <kendo-grid-column>
16020
+ * <ng-template kendoGridCellTemplate let-rowIndex="rowIndex">
16021
+ * <input ... [kendoGridSelectionCheckbox]="rowIndex"/>
16022
+ * </ng-template>
16023
+ * </kendo-grid-column>
16024
+ * </kendo-grid>
16092
16025
  * ```
16093
16026
  */
16094
16027
  class SelectionCheckboxDirective {
@@ -16200,12 +16133,19 @@ class CellComponent {
16200
16133
  this.isNew = false;
16201
16134
  this.isLoading = false;
16202
16135
  this.isVirtual = false;
16136
+ this.reorderIcon = reorderIcon;
16203
16137
  this._templateContext = {};
16204
16138
  this._editTemplateContext = {};
16205
16139
  }
16206
16140
  get commandCellClass() {
16207
16141
  return this.isCommand(this.column);
16208
16142
  }
16143
+ get dragHandleCellClass() {
16144
+ return isRowReorderColumn(this.column);
16145
+ }
16146
+ get dragRowHandleLabel() {
16147
+ return isRowReorderColumn(this.column) ? this.localizationService.get('dragRowHandleLabel') : undefined;
16148
+ }
16209
16149
  set rowIndex(index) {
16210
16150
  this._rowIndex = index;
16211
16151
  this.updateCellContext();
@@ -16262,6 +16202,9 @@ class CellComponent {
16262
16202
  get childColumns() {
16263
16203
  return columnsToRender([this.column]);
16264
16204
  }
16205
+ get isRowReorderColumn() {
16206
+ return isRowReorderColumn(this.column) && !this.column.templateRef;
16207
+ }
16265
16208
  get isColumnEditable() {
16266
16209
  if (!this.column || this.isCommand(this.column)) {
16267
16210
  return false;
@@ -16308,7 +16251,7 @@ class CellComponent {
16308
16251
  }
16309
16252
  }
16310
16253
  CellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, deps: [{ token: EditService }, { token: IdService }, { token: i1.LocalizationService }, { token: CELL_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
16311
- CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CellComponent, selector: "[kendoGridCell]", inputs: { column: "column", columnIndex: "columnIndex", isNew: "isNew", isLoading: "isLoading", isVirtual: "isVirtual", loadingTemplate: "loadingTemplate", rowIndex: "rowIndex", dataItem: "dataItem" }, host: { properties: { "class.k-command-cell": "this.commandCellClass" } }, usesOnChanges: true, ngImport: i0, template: `
16254
+ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CellComponent, selector: "[kendoGridCell]", inputs: { column: "column", columnIndex: "columnIndex", isNew: "isNew", isLoading: "isLoading", isVirtual: "isVirtual", loadingTemplate: "loadingTemplate", rowIndex: "rowIndex", dataItem: "dataItem" }, host: { properties: { "class.k-command-cell": "this.commandCellClass", "class.k-drag-cell": "this.dragHandleCellClass", "class.k-touch-action-none": "this.dragHandleCellClass", "attr.aria-label": "this.dragRowHandleLabel" } }, usesOnChanges: true, ngImport: i0, template: `
16312
16255
  <ng-container [ngSwitch]="isEdited">
16313
16256
  <ng-container *ngSwitchCase="false">
16314
16257
  <ng-container *ngIf="!showLoading; else loading">
@@ -16329,6 +16272,12 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
16329
16272
  [attr.id]="selectionCheckboxId"
16330
16273
  [attr.aria-label]="selectionCheckboxLabel" />
16331
16274
  </ng-container>
16275
+ <ng-container *ngIf="isRowReorderColumn && !isNew">
16276
+ <kendo-icon-wrapper
16277
+ name="reorder"
16278
+ [svgIcon]="reorderIcon">
16279
+ </kendo-icon-wrapper>
16280
+ </ng-container>
16332
16281
  </ng-container>
16333
16282
  <ng-template #loading>
16334
16283
  <ng-template
@@ -16378,7 +16327,7 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
16378
16327
  </ng-container>
16379
16328
  </ng-container>
16380
16329
  </ng-container>
16381
- `, isInline: true, components: [{ type: i3.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i5$1.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i4$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": FieldAccessorPipe } });
16330
+ `, isInline: true, components: [{ type: i3$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i3.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i4$3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i4$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": FieldAccessorPipe } });
16382
16331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, decorators: [{
16383
16332
  type: Component,
16384
16333
  args: [{
@@ -16404,6 +16353,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16404
16353
  [attr.id]="selectionCheckboxId"
16405
16354
  [attr.aria-label]="selectionCheckboxLabel" />
16406
16355
  </ng-container>
16356
+ <ng-container *ngIf="isRowReorderColumn && !isNew">
16357
+ <kendo-icon-wrapper
16358
+ name="reorder"
16359
+ [svgIcon]="reorderIcon">
16360
+ </kendo-icon-wrapper>
16361
+ </ng-container>
16407
16362
  </ng-container>
16408
16363
  <ng-template #loading>
16409
16364
  <ng-template
@@ -16465,6 +16420,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16465
16420
  }, propDecorators: { commandCellClass: [{
16466
16421
  type: HostBinding,
16467
16422
  args: ['class.k-command-cell']
16423
+ }], dragHandleCellClass: [{
16424
+ type: HostBinding,
16425
+ args: ['class.k-drag-cell']
16426
+ }, {
16427
+ type: HostBinding,
16428
+ args: ['class.k-touch-action-none']
16429
+ }], dragRowHandleLabel: [{
16430
+ type: HostBinding,
16431
+ args: ['attr.aria-label']
16468
16432
  }], column: [{
16469
16433
  type: Input
16470
16434
  }], columnIndex: [{
@@ -18837,7 +18801,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18837
18801
  class GridMessages extends ComponentMessages {
18838
18802
  }
18839
18803
  GridMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
18840
- GridMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", selectPage: "selectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", groupPanelLabel: "groupPanelLabel" }, usesInheritance: true, ngImport: i0 });
18804
+ GridMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", selectPage: "selectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel" }, usesInheritance: true, ngImport: i0 });
18841
18805
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMessages, decorators: [{
18842
18806
  type: Directive,
18843
18807
  args: [{
@@ -18994,6 +18958,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18994
18958
  type: Input
18995
18959
  }], groupPanelLabel: [{
18996
18960
  type: Input
18961
+ }], dragRowHandleLabel: [{
18962
+ type: Input
18997
18963
  }] } });
18998
18964
 
18999
18965
  /**
@@ -19074,7 +19040,7 @@ const isInEditedCell = (element, gridElement) => closest(element, matchesClasses
19074
19040
  * ```
19075
19041
  */
19076
19042
  class GridComponent {
19077
- 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) {
19043
+ 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) {
19078
19044
  this.supportService = supportService;
19079
19045
  this.selectionService = selectionService;
19080
19046
  this.cellSelectionService = cellSelectionService;
@@ -19102,11 +19068,7 @@ class GridComponent {
19102
19068
  this.localization = localization;
19103
19069
  this.ctx = ctx;
19104
19070
  this.sizingService = sizingService;
19105
- /**
19106
- * Sets the data of the Grid. If an array is provided, the Grid automatically gets the total count
19107
- * ([more information and example]({% slug binding_grid %})).
19108
- */
19109
- this.data = [];
19071
+ this.rowReorderService = rowReorderService;
19110
19072
  /**
19111
19073
  * Defines the scroll mode used by the Grid.
19112
19074
  *
@@ -19170,6 +19132,10 @@ class GridComponent {
19170
19132
  * If set to `true`, the grid will render only the columns in the current viewport.
19171
19133
  */
19172
19134
  this.virtualColumns = false;
19135
+ /**
19136
+ * @hidden
19137
+ */
19138
+ this.gridData = () => { return this.flatData; };
19173
19139
  /**
19174
19140
  * Enables the [filtering]({% slug filtering_grid %}) of the Grid columns that have their `field` option set.
19175
19141
  */
@@ -19217,12 +19183,6 @@ class GridComponent {
19217
19183
  * @default false
19218
19184
  */
19219
19185
  this.reorderable = false;
19220
- /**
19221
- * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
19222
- *
19223
- * @default false
19224
- */
19225
- this.loading = false;
19226
19186
  /**
19227
19187
  * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_grid %})).
19228
19188
  *
@@ -19260,6 +19220,11 @@ class GridComponent {
19260
19220
  * Emits the [SelectionEvent]({% slug api_grid_selectionevent %}#toc-selectionchange).
19261
19221
  */
19262
19222
  this.selectionChange = new EventEmitter();
19223
+ /**
19224
+ * Fires when the user drops the dragged row and reordering is performed.
19225
+ * Emits the [RowReorderEvent]({% slug api_grid_selectionevent %}#toc-selectionchange).
19226
+ */
19227
+ this.rowReorder = new EventEmitter();
19263
19228
  /**
19264
19229
  * Fires when the data state of the Grid is changed.
19265
19230
  */
@@ -19371,11 +19336,14 @@ class GridComponent {
19371
19336
  this._sort = new Array();
19372
19337
  this._group = new Array();
19373
19338
  this._skip = 0;
19339
+ this._data = [];
19374
19340
  this.cachedWindowWidth = 0;
19375
19341
  this._rowSelected = null;
19376
19342
  this._cellSelected = null;
19343
+ this._rowReorderable = false;
19377
19344
  this._navigable = [];
19378
19345
  this._size = 'medium';
19346
+ this._loading = false;
19379
19347
  this.rtl = false;
19380
19348
  this._rowClass = () => null;
19381
19349
  validatePackage(packageMetadata);
@@ -19415,6 +19383,19 @@ class GridComponent {
19415
19383
  .changes.subscribe(this.reorder.bind(this));
19416
19384
  this.columnRangeChangeSubscription = this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this));
19417
19385
  }
19386
+ /**
19387
+ * Sets the data of the Grid. If an array is provided, the Grid automatically gets the total count
19388
+ * ([more information and example]({% slug binding_grid %})).
19389
+ */
19390
+ set data(value) {
19391
+ this._data = value;
19392
+ }
19393
+ get data() {
19394
+ return this._data;
19395
+ }
19396
+ get hintText() {
19397
+ return this.rowReorderService.getDefaultHintText(this.columnList, this.flatData);
19398
+ }
19418
19399
  /**
19419
19400
  * Defines the number of records to be skipped by the pager.
19420
19401
  * Required by the [paging]({% slug paging_grid %}) functionality.
@@ -19424,7 +19405,7 @@ class GridComponent {
19424
19405
  }
19425
19406
  set skip(value) {
19426
19407
  if (typeof value === 'number' && value >= 0) {
19427
- this._skip = value;
19408
+ this._skip = this.rowReorderService.skip = value;
19428
19409
  }
19429
19410
  }
19430
19411
  /**
@@ -19522,6 +19503,27 @@ class GridComponent {
19522
19503
  get marqueeSelection() {
19523
19504
  return this.selectionService.enableMarquee || this.cellSelectionService.enableMarquee;
19524
19505
  }
19506
+ /**
19507
+ * Enables the [row reordering]({% slug ToDo %}) of the Grid.
19508
+ * @default false
19509
+ */
19510
+ set rowReorderable(value) {
19511
+ var _a;
19512
+ this._rowReorderable = value;
19513
+ if (value) {
19514
+ this.rowReorderSubscription = this.rowReorderService.rowReorder.subscribe(args => {
19515
+ this.ngZone.run(() => {
19516
+ this.rowReorder.emit(args);
19517
+ });
19518
+ });
19519
+ }
19520
+ else {
19521
+ (_a = this.rowReorderSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
19522
+ }
19523
+ }
19524
+ get rowReorderable() {
19525
+ return this._rowReorderable;
19526
+ }
19525
19527
  /**
19526
19528
  * If set to `true`, the user can use dedicated shortcuts to interact with the Grid.
19527
19529
  * By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.
@@ -19664,6 +19666,18 @@ class GridComponent {
19664
19666
  get activeRow() {
19665
19667
  return this.navigationService.activeRow;
19666
19668
  }
19669
+ /**
19670
+ * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
19671
+ *
19672
+ * @default false
19673
+ */
19674
+ set loading(value) {
19675
+ this._loading = value;
19676
+ this.rowReorderable && this.notifyReorderContainers();
19677
+ }
19678
+ get loading() {
19679
+ return this._loading;
19680
+ }
19667
19681
  get dir() {
19668
19682
  return this.direction;
19669
19683
  }
@@ -19835,6 +19849,18 @@ class GridComponent {
19835
19849
  }
19836
19850
  return this.pageSize;
19837
19851
  }
19852
+ /**
19853
+ * @hidden
19854
+ */
19855
+ getDefaultSelectors(type) {
19856
+ return this.rowReorderService.defaultSelectors[type];
19857
+ }
19858
+ /**
19859
+ * @hidden
19860
+ */
19861
+ getHintSettings(type) {
19862
+ return this.rowReorderService[type];
19863
+ }
19838
19864
  /**
19839
19865
  * Expands the specified master row ([see example]({% slug hierarchy_grid %})).
19840
19866
  *
@@ -20066,6 +20092,9 @@ class GridComponent {
20066
20092
  if (this.focusElementSubscription) {
20067
20093
  this.focusElementSubscription.unsubscribe();
20068
20094
  }
20095
+ if (this.rowReorderSubscription) {
20096
+ this.rowReorderSubscription.unsubscribe();
20097
+ }
20069
20098
  this.columnRangeChangeSubscription.unsubscribe();
20070
20099
  }
20071
20100
  /**
@@ -20565,6 +20594,12 @@ class GridComponent {
20565
20594
  get isGroupExpanded() {
20566
20595
  return this.groupsService.userCallback;
20567
20596
  }
20597
+ /**
20598
+ * @hidden
20599
+ */
20600
+ handleReorderEvents(ev, evType) {
20601
+ this.rowReorderService[evType](ev);
20602
+ }
20568
20603
  /**
20569
20604
  * @hidden
20570
20605
  */
@@ -20791,6 +20826,11 @@ class GridComponent {
20791
20826
  this.closeCell();
20792
20827
  this.cancelCell();
20793
20828
  this.dataStateChange.emit(x);
20829
+ if (this.rowReorderable) {
20830
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
20831
+ this.notifyReorderContainers();
20832
+ });
20833
+ }
20794
20834
  });
20795
20835
  }
20796
20836
  attachEditHandlers() {
@@ -21073,9 +21113,17 @@ class GridComponent {
21073
21113
  }
21074
21114
  return previousValue.cell !== currentValue.cell;
21075
21115
  }
21116
+ notifyReorderContainers() {
21117
+ var _a, _b;
21118
+ (_a = this.dragTargetContainer) === null || _a === void 0 ? void 0 : _a.notify();
21119
+ (_b = this.dropTargetContainer) === null || _b === void 0 ? void 0 : _b.notify();
21120
+ }
21121
+ get flatData() {
21122
+ return isArray(this.data) ? this.data : this.data.data;
21123
+ }
21076
21124
  }
21077
- GridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, deps: [{ token: BrowserSupportService }, { token: SelectionService }, { token: CellSelectionService }, { token: i0.ElementRef }, { token: GroupInfoService }, { token: GroupsService }, { token: ChangeNotificationService }, { token: DetailsService }, { token: EditService }, { token: FilterService }, { token: PDFService }, { token: ResponsiveService }, { token: i0.Renderer2 }, { token: ExcelService }, { token: i0.NgZone }, { token: ScrollSyncService }, { token: DomEventsService }, { token: ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: ColumnReorderService }, { token: ColumnInfoService }, { token: NavigationService }, { token: SortService }, { token: ScrollRequestService }, { token: i1.LocalizationService }, { token: ContextService }, { token: SizingOptionsService }], target: i0.ɵɵFactoryTarget.Component });
21078
- 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: [
21125
+ GridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, deps: [{ token: BrowserSupportService }, { token: SelectionService }, { token: CellSelectionService }, { token: i0.ElementRef }, { token: GroupInfoService }, { token: GroupsService }, { token: ChangeNotificationService }, { token: DetailsService }, { token: EditService }, { token: FilterService }, { token: PDFService }, { token: ResponsiveService }, { token: i0.Renderer2 }, { token: ExcelService }, { token: i0.NgZone }, { token: ScrollSyncService }, { token: DomEventsService }, { token: ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: ColumnReorderService }, { token: ColumnInfoService }, { token: NavigationService }, { token: SortService }, { token: ScrollRequestService }, { token: i1.LocalizationService }, { token: ContextService }, { token: SizingOptionsService }, { token: RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
21126
+ 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: [
21079
21127
  BrowserSupportService,
21080
21128
  LocalizationService,
21081
21129
  ColumnInfoService,
@@ -21116,8 +21164,9 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21116
21164
  ScrollRequestService,
21117
21165
  SortService,
21118
21166
  ContextService,
21119
- SizingOptionsService
21120
- ], 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: `
21167
+ SizingOptionsService,
21168
+ RowReorderService
21169
+ ], 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: `
21121
21170
  <ng-container kendoGridLocalizedMessages
21122
21171
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
21123
21172
  groupPanelEmpty="Drag a column header and drop it here to group by that column"
@@ -21343,6 +21392,9 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21343
21392
 
21344
21393
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
21345
21394
  groupPanelLabel="Group panel"
21395
+
21396
+ i18n-dragRowHandleLabel="kendo.grid.dragRowHandleLabel|The label for the Grid drag row handle"
21397
+ dragRowHandleLabel="Drag row"
21346
21398
  >
21347
21399
  </ng-container>
21348
21400
  <kendo-grid-toolbar
@@ -21470,6 +21522,23 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21470
21522
  </div>
21471
21523
  </div>
21472
21524
  <kendo-grid-list
21525
+ kendoDragTargetContainer
21526
+ kendoDropTargetContainer
21527
+ mode="manual"
21528
+ [dragDisabled]="!rowReorderable"
21529
+ [dropDisabled]="!rowReorderable"
21530
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21531
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21532
+ [dragHandle]="getDefaultSelectors('handle')"
21533
+ [hint]="{hintTemplate: defaultHint}"
21534
+ (press)="handleReorderEvents($event, 'press')"
21535
+ (dragStart)="handleReorderEvents($event, 'dragStart')"
21536
+ (drag)="handleReorderEvents($event, 'drag')"
21537
+ (dragEnter)="handleReorderEvents($event, 'dragEnter')"
21538
+ (dragLeave)="handleReorderEvents($event, 'dragLeave')"
21539
+ (dragEnd)="handleReorderEvents($event, 'dragEnd')"
21540
+ (drop)="handleReorderEvents($event, 'drop')"
21541
+ [dragData]="gridData"
21473
21542
  [data]="$any(view)"
21474
21543
  [rowHeight]="rowHeight"
21475
21544
  [detailRowHeight]="detailRowHeight"
@@ -21635,8 +21704,18 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21635
21704
  [navigable]="navigation.toolbarEnabled"
21636
21705
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
21637
21706
  [attr.aria-controls]="ariaRootId"
21638
- position="bottom"></kendo-grid-toolbar>
21639
- `, isInline: true, components: [{ type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { type: PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "size", "template"], outputs: ["pageChange"] }, { type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "tabIndex", "size"] }, { type: 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: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex"] }, { type: 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: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { type: i1$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }], encapsulation: i0.ViewEncapsulation.None });
21707
+ position="bottom">
21708
+ </kendo-grid-toolbar>
21709
+
21710
+ <ng-template #defaultHint>
21711
+ <kendo-icon-wrapper
21712
+ [name]="getHintSettings('hintIcon')"
21713
+ [svgIcon]="getHintSettings('hintSVGIcon')"
21714
+ innerCssClass="k-drag-status">
21715
+ </kendo-icon-wrapper>
21716
+ {{hintText}}
21717
+ </ng-template>
21718
+ `, isInline: true, components: [{ type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { type: PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "size", "template"], outputs: ["pageChange"] }, { type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "tabIndex", "size"] }, { type: 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: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex"] }, { type: 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: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { type: i3$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { type: 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: i1$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }], encapsulation: i0.ViewEncapsulation.None });
21640
21719
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, decorators: [{
21641
21720
  type: Component,
21642
21721
  args: [{
@@ -21683,7 +21762,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21683
21762
  ScrollRequestService,
21684
21763
  SortService,
21685
21764
  ContextService,
21686
- SizingOptionsService
21765
+ SizingOptionsService,
21766
+ RowReorderService
21687
21767
  ],
21688
21768
  selector: 'kendo-grid',
21689
21769
  template: `
@@ -21912,6 +21992,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21912
21992
 
21913
21993
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
21914
21994
  groupPanelLabel="Group panel"
21995
+
21996
+ i18n-dragRowHandleLabel="kendo.grid.dragRowHandleLabel|The label for the Grid drag row handle"
21997
+ dragRowHandleLabel="Drag row"
21915
21998
  >
21916
21999
  </ng-container>
21917
22000
  <kendo-grid-toolbar
@@ -22039,6 +22122,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22039
22122
  </div>
22040
22123
  </div>
22041
22124
  <kendo-grid-list
22125
+ kendoDragTargetContainer
22126
+ kendoDropTargetContainer
22127
+ mode="manual"
22128
+ [dragDisabled]="!rowReorderable"
22129
+ [dropDisabled]="!rowReorderable"
22130
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
22131
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
22132
+ [dragHandle]="getDefaultSelectors('handle')"
22133
+ [hint]="{hintTemplate: defaultHint}"
22134
+ (press)="handleReorderEvents($event, 'press')"
22135
+ (dragStart)="handleReorderEvents($event, 'dragStart')"
22136
+ (drag)="handleReorderEvents($event, 'drag')"
22137
+ (dragEnter)="handleReorderEvents($event, 'dragEnter')"
22138
+ (dragLeave)="handleReorderEvents($event, 'dragLeave')"
22139
+ (dragEnd)="handleReorderEvents($event, 'dragEnd')"
22140
+ (drop)="handleReorderEvents($event, 'drop')"
22141
+ [dragData]="gridData"
22042
22142
  [data]="$any(view)"
22043
22143
  [rowHeight]="rowHeight"
22044
22144
  [detailRowHeight]="detailRowHeight"
@@ -22204,10 +22304,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22204
22304
  [navigable]="navigation.toolbarEnabled"
22205
22305
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
22206
22306
  [attr.aria-controls]="ariaRootId"
22207
- position="bottom"></kendo-grid-toolbar>
22307
+ position="bottom">
22308
+ </kendo-grid-toolbar>
22309
+
22310
+ <ng-template #defaultHint>
22311
+ <kendo-icon-wrapper
22312
+ [name]="getHintSettings('hintIcon')"
22313
+ [svgIcon]="getHintSettings('hintSVGIcon')"
22314
+ innerCssClass="k-drag-status">
22315
+ </kendo-icon-wrapper>
22316
+ {{hintText}}
22317
+ </ng-template>
22208
22318
  `
22209
22319
  }]
22210
- }], ctorParameters: function () { return [{ type: BrowserSupportService }, { type: SelectionService }, { type: CellSelectionService }, { type: i0.ElementRef }, { type: GroupInfoService }, { type: GroupsService }, { type: ChangeNotificationService }, { type: DetailsService }, { type: EditService }, { type: FilterService }, { type: PDFService }, { type: ResponsiveService }, { type: i0.Renderer2 }, { type: ExcelService }, { type: i0.NgZone }, { type: ScrollSyncService }, { type: DomEventsService }, { type: ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: ColumnReorderService }, { type: ColumnInfoService }, { type: NavigationService }, { type: SortService }, { type: ScrollRequestService }, { type: i1.LocalizationService }, { type: ContextService }, { type: SizingOptionsService }]; }, propDecorators: { data: [{
22320
+ }], ctorParameters: function () { return [{ type: BrowserSupportService }, { type: SelectionService }, { type: CellSelectionService }, { type: i0.ElementRef }, { type: GroupInfoService }, { type: GroupsService }, { type: ChangeNotificationService }, { type: DetailsService }, { type: EditService }, { type: FilterService }, { type: PDFService }, { type: ResponsiveService }, { type: i0.Renderer2 }, { type: ExcelService }, { type: i0.NgZone }, { type: ScrollSyncService }, { type: DomEventsService }, { type: ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: ColumnReorderService }, { type: ColumnInfoService }, { type: NavigationService }, { type: SortService }, { type: ScrollRequestService }, { type: i1.LocalizationService }, { type: ContextService }, { type: SizingOptionsService }, { type: RowReorderService }]; }, propDecorators: { data: [{
22211
22321
  type: Input
22212
22322
  }], pageSize: [{
22213
22323
  type: Input
@@ -22243,6 +22353,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22243
22353
  type: Input
22244
22354
  }], groupable: [{
22245
22355
  type: Input
22356
+ }], rowReorderable: [{
22357
+ type: Input
22246
22358
  }], navigable: [{
22247
22359
  type: Input
22248
22360
  }], navigatable: [{
@@ -22277,6 +22389,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22277
22389
  type: Output
22278
22390
  }], selectionChange: [{
22279
22391
  type: Output
22392
+ }], rowReorder: [{
22393
+ type: Output
22280
22394
  }], dataStateChange: [{
22281
22395
  type: Output
22282
22396
  }], groupExpand: [{
@@ -22376,6 +22490,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22376
22490
  }], ariaRoot: [{
22377
22491
  type: ViewChild,
22378
22492
  args: ['ariaRoot', { static: true }]
22493
+ }], dragTargetContainer: [{
22494
+ type: ViewChild,
22495
+ args: [DragTargetContainerDirective]
22496
+ }], dropTargetContainer: [{
22497
+ type: ViewChild,
22498
+ args: [DropTargetContainerDirective]
22379
22499
  }], isDetailExpanded: [{
22380
22500
  type: Input
22381
22501
  }], isGroupExpanded: [{
@@ -22386,12 +22506,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22386
22506
  * A directive which encapsulates the in-memory handling of data operations such as [paging]({% slug paging_grid %}),
22387
22507
  * [sorting]({% slug sorting_grid %}), and [grouping]({% slug grouping_grid %})
22388
22508
  * ([more information and examples]({% slug local_data_grid %}#toc-using-the-data-binding-directive)).
22509
+ *
22510
+ * @example
22511
+ * ```html
22512
+ * <kendo-grid [kendoGridBinding]="gridData" ...></kendo-grid>
22513
+ * ```
22389
22514
  */
22390
22515
  class DataBindingDirective {
22391
- constructor(grid, changeDetector, localDataChangesService) {
22516
+ constructor(grid, changeDetector, localDataChangesService, rowReorderService) {
22392
22517
  this.grid = grid;
22393
22518
  this.changeDetector = changeDetector;
22394
22519
  this.localDataChangesService = localDataChangesService;
22520
+ this.rowReorderService = rowReorderService;
22395
22521
  this.state = {
22396
22522
  skip: 0
22397
22523
  };
@@ -22402,12 +22528,16 @@ class DataBindingDirective {
22402
22528
  }
22403
22529
  /**
22404
22530
  * Defines the number of records that will be skipped by the pager.
22531
+ * @default 0
22405
22532
  */
22406
22533
  set skip(value) {
22407
22534
  if (!isPresent(value)) {
22408
22535
  value = 0;
22409
22536
  }
22410
22537
  this.grid.skip = this.state.skip = value;
22538
+ if (this.rowReorderService) {
22539
+ this.rowReorderService.skip = value;
22540
+ }
22411
22541
  }
22412
22542
  /**
22413
22543
  * Defines the descriptors by which the data will be sorted.
@@ -22451,6 +22581,11 @@ class DataBindingDirective {
22451
22581
  this.stateChangeSubscription = this.grid
22452
22582
  .dataStateChange
22453
22583
  .subscribe(this.onStateChange.bind(this));
22584
+ if (this.rowReorderService) {
22585
+ this.rowReorderSubscription = this.grid
22586
+ .rowReorder
22587
+ .subscribe(this.onRowReorder.bind(this));
22588
+ }
22454
22589
  }
22455
22590
  /**
22456
22591
  * @hidden
@@ -22462,6 +22597,9 @@ class DataBindingDirective {
22462
22597
  if (this.dataChangedSubscription) {
22463
22598
  this.dataChangedSubscription.unsubscribe();
22464
22599
  }
22600
+ if (this.rowReorderSubscription) {
22601
+ this.rowReorderSubscription.unsubscribe();
22602
+ }
22465
22603
  }
22466
22604
  /**
22467
22605
  * @hidden
@@ -22483,6 +22621,13 @@ class DataBindingDirective {
22483
22621
  this.applyState(state);
22484
22622
  this.rebind();
22485
22623
  }
22624
+ /**
22625
+ * @hidden
22626
+ */
22627
+ onRowReorder(ev) {
22628
+ this.rowReorderService.reorderRows(ev, this.originalData);
22629
+ this.rebind();
22630
+ }
22486
22631
  /**
22487
22632
  * @hidden
22488
22633
  */
@@ -22515,14 +22660,14 @@ class DataBindingDirective {
22515
22660
  this.dataChanged = false;
22516
22661
  }
22517
22662
  }
22518
- DataBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, deps: [{ token: GridComponent }, { token: i0.ChangeDetectorRef }, { token: LocalDataChangesService }], target: i0.ɵɵFactoryTarget.Directive });
22663
+ DataBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, deps: [{ token: GridComponent }, { token: i0.ChangeDetectorRef }, { token: LocalDataChangesService }, { token: RowReorderService }], target: i0.ɵɵFactoryTarget.Directive });
22519
22664
  DataBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DataBindingDirective, selector: "[kendoGridBinding]", inputs: { skip: "skip", sort: "sort", filter: "filter", pageSize: "pageSize", group: "group", data: ["kendoGridBinding", "data"] }, usesOnChanges: true, ngImport: i0 });
22520
22665
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, decorators: [{
22521
22666
  type: Directive,
22522
22667
  args: [{
22523
22668
  selector: '[kendoGridBinding]'
22524
22669
  }]
22525
- }], ctorParameters: function () { return [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }]; }, propDecorators: { skip: [{
22670
+ }], ctorParameters: function () { return [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }]; }, propDecorators: { skip: [{
22526
22671
  type: Input
22527
22672
  }], sort: [{
22528
22673
  type: Input
@@ -22539,7 +22684,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22539
22684
 
22540
22685
  /**
22541
22686
  * A directive which stores the row selection state of the Grid in memory
22542
- * ([see example]({% slug selection_grid %}#toc-during-data-operations)).
22687
+ * ([see example]({% slug selection_grid %}#toc-toggling-the-selection-functionality)).
22543
22688
  */
22544
22689
  class SelectionDirective extends Selection {
22545
22690
  constructor(ctx, cd) {
@@ -22572,7 +22717,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22572
22717
  }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }]; } });
22573
22718
 
22574
22719
  /**
22575
- * A directive which controls the expanded state of the master detail rows.
22720
+ * A directive which controls the expanded state of the master detail rows. ([see example](slug:master_detail_expanded_state_grid#toc-built-in-directive))
22576
22721
  */
22577
22722
  class ExpandDetailsDirective {
22578
22723
  constructor(grid) {
@@ -22889,7 +23034,7 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
22889
23034
  [value]="currentFilter?.value">
22890
23035
  </kendo-autocomplete>
22891
23036
  </kendo-grid-filter-wrapper-cell>
22892
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "focusableId", "data", "value", "valueField", "placeholder", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
23037
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
22893
23038
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
22894
23039
  type: Component,
22895
23040
  args: [{
@@ -24502,28 +24647,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24502
24647
 
24503
24648
  /**
24504
24649
  * Represents the `cancel` command of the Grid. You can apply this directive to any `button`
24505
- * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
24650
+ * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
24651
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
24506
24652
  * When an associated button with the directive is clicked, the
24507
24653
  * [cancel]({% slug api_grid_gridcomponent %}#toc-cancel) event
24508
- * is triggered ([see example]({% slug basics_editing_grid %})).
24509
- *
24510
- * > When the row is not in the edit mode, the button with the `kendoGridCancelCommand` is automatically hidden.
24511
- *
24512
- * @example
24513
- * ```html-no-run
24514
- * <kendo-grid>
24515
- * <kendo-grid-command-column title="command">
24516
- * <ng-template kendoGridCellTemplate>
24517
- * <button kendoGridCancelCommand>Cancel changes</button>
24518
- * </ng-template>
24519
- * </kendo-grid-command-column>
24520
- * </kendo-grid>
24521
- * ```
24654
+ * is triggered. When the row is not in the edit mode, the button with the `kendoGridCancelCommand` is automatically hidden.
24522
24655
  *
24523
24656
  * You can control the content of the button based on the state of the row.
24524
24657
  *
24525
24658
  * @example
24526
- * ```html-no-run
24659
+ * ```html
24527
24660
  * <kendo-grid>
24528
24661
  * <kendo-grid-command-column title="command">
24529
24662
  * <ng-template kendoGridCellTemplate let-isNew="isNew">
@@ -24613,23 +24746,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24613
24746
 
24614
24747
  /**
24615
24748
  * Represents the `save` command of the Grid. You can apply this directive to any `button`
24616
- * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
24749
+ * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
24750
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
24617
24751
  * When an associated button with the directive is clicked, the
24618
24752
  * [save]({% slug api_grid_gridcomponent %}#toc-save) event
24619
- * is triggered ([see example]({% slug basics_editing_grid %})).
24620
- *
24621
- * > When the row is not in the edit mode, the button with `kendoGridSaveCommand` is automatically hidden.
24622
- *
24623
- * @example
24624
- * ```html-no-run
24625
- * <kendo-grid>
24626
- * <kendo-grid-command-column title="command">
24627
- * <ng-template kendoGridCellTemplate>
24628
- * <button kendoGridSaveCommand>Save changes</button>
24629
- * </ng-template>
24630
- * </kendo-grid-command-column>
24631
- * </kendo-grid>
24632
- * ```
24753
+ * is triggered. When the row is not in the edit mode, the button with `kendoGridSaveCommand` is automatically hidden.
24633
24754
  *
24634
24755
  * You can control the content of the button based on the state of the row.
24635
24756
  *
@@ -24724,15 +24845,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24724
24845
 
24725
24846
  /**
24726
24847
  * Represents the `remove` command of the Grid. You can apply this directive to any `button` element
24727
- * inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
24848
+ * inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
24849
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
24728
24850
  * When an associated button with the directive is clicked, the
24729
- * [remove event]({% slug api_grid_gridcomponent %}#toc-remove)
24730
- * is triggered ([see example]({% slug inline_editing_grid %}#toc-using-reactive-forms))).
24731
- *
24732
- * > When the row is in the edit mode, the button with the `kendoGridRemoveCommand` is automatically hidden.
24851
+ * [remove]({% slug api_grid_gridcomponent %}#toc-remove) event
24852
+ * is triggered.
24853
+ * When the row is in the edit mode, the button with the `kendoGridRemoveCommand` is automatically hidden.
24733
24854
  *
24734
24855
  * @example
24735
- * ```html-no-run
24856
+ * ```html
24736
24857
  * <kendo-grid>
24737
24858
  * <kendo-grid-command-column title="command">
24738
24859
  * <ng-template kendoGridCellTemplate>
@@ -24826,7 +24947,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24826
24947
  * ([see example]({% slug basics_editing_grid %})).
24827
24948
  *
24828
24949
  * @example
24829
- * ```html-no-run
24950
+ * ```html
24830
24951
  * <kendo-grid>
24831
24952
  * <ng-template kendoGridToolbarTemplate>
24832
24953
  * <button kendoGridAddCommand>Add new</button>
@@ -24891,6 +25012,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24891
25012
  args: ['class.k-grid-add-command']
24892
25013
  }] } });
24893
25014
 
25015
+ /**
25016
+ * Represents the drag handle for reordering rows in the Grid.
25017
+ */
25018
+ class RowReorderColumnComponent extends ColumnBase {
25019
+ constructor(parent, idService) {
25020
+ super(parent, idService);
25021
+ this.parent = parent;
25022
+ /**
25023
+ * @hidden
25024
+ */
25025
+ this.isRowReorderColumn = true;
25026
+ }
25027
+ }
25028
+ RowReorderColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderColumnComponent, deps: [{ token: ColumnBase, host: true, optional: true, skipSelf: true }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
25029
+ RowReorderColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: RowReorderColumnComponent, selector: "kendo-grid-rowreorder-column", inputs: { dragHandleIcon: "dragHandleIcon", dragHandleSVGIcon: "dragHandleSVGIcon" }, providers: [
25030
+ {
25031
+ provide: ColumnBase,
25032
+ useExisting: forwardRef(() => RowReorderColumnComponent)
25033
+ }
25034
+ ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
25035
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderColumnComponent, decorators: [{
25036
+ type: Component,
25037
+ args: [{
25038
+ providers: [
25039
+ {
25040
+ provide: ColumnBase,
25041
+ useExisting: forwardRef(() => RowReorderColumnComponent)
25042
+ }
25043
+ ],
25044
+ selector: 'kendo-grid-rowreorder-column',
25045
+ template: ``
25046
+ }]
25047
+ }], ctorParameters: function () {
25048
+ return [{ type: ColumnBase, decorators: [{
25049
+ type: SkipSelf
25050
+ }, {
25051
+ type: Host
25052
+ }, {
25053
+ type: Optional
25054
+ }] }, { type: IdService, decorators: [{
25055
+ type: Optional
25056
+ }] }];
25057
+ }, propDecorators: { dragHandleIcon: [{
25058
+ type: Input
25059
+ }], dragHandleSVGIcon: [{
25060
+ type: Input
25061
+ }] } });
25062
+
24894
25063
  const exported = [
24895
25064
  CommandColumnComponent,
24896
25065
  CheckboxColumnComponent,
@@ -24906,7 +25075,8 @@ const exported = [
24906
25075
  RemoveCommandDirective,
24907
25076
  AddCommandDirective,
24908
25077
  CellLoadingTemplateDirective,
24909
- LoadingTemplateDirective
25078
+ LoadingTemplateDirective,
25079
+ RowReorderColumnComponent
24910
25080
  ];
24911
25081
  const importedModules$1 = [
24912
25082
  CommonModule,
@@ -24936,7 +25106,8 @@ class BodyModule {
24936
25106
  RemoveCommandDirective,
24937
25107
  AddCommandDirective,
24938
25108
  CellLoadingTemplateDirective,
24939
- LoadingTemplateDirective
25109
+ LoadingTemplateDirective,
25110
+ RowReorderColumnComponent
24940
25111
  ];
24941
25112
  }
24942
25113
  }
@@ -24955,7 +25126,8 @@ BodyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
24955
25126
  RemoveCommandDirective,
24956
25127
  AddCommandDirective,
24957
25128
  CellLoadingTemplateDirective,
24958
- LoadingTemplateDirective], imports: [CommonModule,
25129
+ LoadingTemplateDirective,
25130
+ RowReorderColumnComponent], imports: [CommonModule,
24959
25131
  ReactiveFormsModule,
24960
25132
  FormsModule,
24961
25133
  SharedModule,
@@ -24976,7 +25148,8 @@ BodyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
24976
25148
  RemoveCommandDirective,
24977
25149
  AddCommandDirective,
24978
25150
  CellLoadingTemplateDirective,
24979
- LoadingTemplateDirective] });
25151
+ LoadingTemplateDirective,
25152
+ RowReorderColumnComponent] });
24980
25153
  BodyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BodyModule, imports: [[...importedModules$1]] });
24981
25154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BodyModule, decorators: [{
24982
25155
  type: NgModule,
@@ -25226,7 +25399,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25226
25399
 
25227
25400
  /**
25228
25401
  * A directive which encapsulates the editing operations of the Grid when using
25229
- * the Template-Driven Angular Forms ([see example]({% slug editing_directives_grid %}#toc-the-template-directive)).
25402
+ * the Template-Driven Angular Forms ([see example]({% slug editing_directives_grid %}#toc-template-editing-directive)).
25230
25403
  */
25231
25404
  class TemplateEditingDirective extends RowEditingDirectiveBase {
25232
25405
  constructor(grid, localDataChangesService) {
@@ -25324,7 +25497,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25324
25497
 
25325
25498
  /**
25326
25499
  * A directive which encapsulates the editing operations of the Grid when using the in-cell
25327
- * editing with Reactive Forms ([see example]({% slug editing_directives_grid %}#toc-the-incell-directive)).
25500
+ * editing with Reactive Forms ([see example]({% slug editing_directives_grid %}#toc-in-cell-editing)).
25328
25501
  */
25329
25502
  class InCellEditingDirective extends EditingDirectiveBase {
25330
25503
  constructor(grid, localDataChangesService, cdr) {
@@ -25812,7 +25985,8 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25812
25985
  RowFilterModule,
25813
25986
  FilterMenuModule,
25814
25987
  ResizeSensorModule,
25815
- ColumnMenuModule], exports: [GridComponent,
25988
+ ColumnMenuModule,
25989
+ DragAndDropModule$1], exports: [GridComponent,
25816
25990
  ToolbarTemplateDirective,
25817
25991
  ToolbarComponent,
25818
25992
  GridSpacerComponent,
@@ -25825,7 +25999,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25825
25999
  InCellEditingDirective,
25826
26000
  ExpandDetailsDirective,
25827
26001
  ExpandGroupDirective,
25828
- GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, ColumnComponent, SpanColumnComponent, ColumnGroupComponent, FooterTemplateDirective, DetailTemplateDirective, FocusableDirective, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, HeaderTemplateDirective, SelectAllCheckboxDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, FilterCellOperatorsComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent] });
26002
+ GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, ColumnComponent, SpanColumnComponent, ColumnGroupComponent, FooterTemplateDirective, DetailTemplateDirective, FocusableDirective, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderTemplateDirective, SelectAllCheckboxDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, FilterCellOperatorsComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent] });
25829
26003
  GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, imports: [[
25830
26004
  CommonModule,
25831
26005
  GroupModule,
@@ -25837,7 +26011,8 @@ GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13
25837
26011
  RowFilterModule,
25838
26012
  FilterMenuModule,
25839
26013
  ResizeSensorModule,
25840
- ColumnMenuModule
26014
+ ColumnMenuModule,
26015
+ DragAndDropModule$1
25841
26016
  ]] });
25842
26017
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, decorators: [{
25843
26018
  type: NgModule,
@@ -25855,7 +26030,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25855
26030
  RowFilterModule,
25856
26031
  FilterMenuModule,
25857
26032
  ResizeSensorModule,
25858
- ColumnMenuModule
26033
+ ColumnMenuModule,
26034
+ DragAndDropModule$1
25859
26035
  ]
25860
26036
  }]
25861
26037
  }] });
@@ -25874,50 +26050,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25874
26050
 
25875
26051
  /**
25876
26052
  * Represents the PDF page template of the Grid that helps to customize the PDF pages. To define a page template,
25877
- * nest an `<ng-template>` tag with the `kendoGridPDFTemplate` directive inside `<kendo-grid-pdf>`.
26053
+ * nest an `<ng-template>` tag with the `kendoGridPDFTemplate` directive inside `<kendo-grid-pdf>` tag.
25878
26054
  *
25879
26055
  * The template context provides the following fields:
25880
26056
  * - `pageNumber`&mdash;Defines PDF page number.
25881
26057
  * - `totalPages`&mdash;Defines the total number of PDF pages.
25882
26058
  *
25883
26059
  * @example
25884
- * ```ts-preview
25885
- *
25886
- * _@Component({
25887
- * selector: 'my-app',
25888
- * template: `
25889
- * <kendo-grid [data]="gridData">
25890
- * <ng-template kendoGridToolbarTemplate>
25891
- * <button kendoGridPDFCommand icon="file-pdf">Export to PDF</button>
25892
- * </ng-template>
25893
- * <kendo-grid-column field="ProductName">
25894
- * </kendo-grid-column>
25895
- * <kendo-grid-column field="UnitPrice">
25896
- * </kendo-grid-column>
25897
- * <kendo-grid-pdf fileName="Products.pdf" paperSize="A4" [margin]="{ top: '1cm', left: '1cm', right: '1cm', bottom: '1cm' }">
25898
- * <ng-template kendoGridPDFTemplate let-pageNum="pageNum" let-totalPages="totalPages">
25899
- * <div style="position: absolute;top: 5px; left: 5px;">
25900
- * Page {{ pageNum }} of {{ totalPages }}
25901
- * </div>
25902
- * </ng-template>
25903
- * </kendo-grid-pdf>
25904
- * </kendo-grid>
25905
- * `
25906
- * })
25907
- *
25908
- * class AppComponent {
25909
- * public gridData = [{
25910
- * "ProductID": 1,
25911
- * "ProductName": "Chai",
25912
- * "UnitPrice": 18.0000
25913
- * }, {
25914
- * "ProductID": 2,
25915
- * "ProductName": "Chang",
25916
- * "UnitPrice": 19.0000
25917
- * }
25918
- * ];
25919
- * }
25920
- *
26060
+ * ```html
26061
+ * <kendo-grid [data]="gridData">
26062
+ * ...
26063
+ * <kendo-grid-pdf fileName="Products.pdf" paperSize="A4">
26064
+ * <ng-template kendoGridPDFTemplate let-pageNumber="pageNumber" let-totalPages="totalPages">
26065
+ * Page {{ pageNumber }} of {{ totalPages }}
26066
+ * </ng-template>
26067
+ * </kendo-grid-pdf>
26068
+ * </kendo-grid>
25921
26069
  * ```
25922
26070
  */
25923
26071
  class PDFTemplateDirective extends PDFExportTemplateDirective {
@@ -26625,13 +26773,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26625
26773
  /**
26626
26774
  * Represents the `export-to-Excel` command of the Grid. You can apply this
26627
26775
  * directive to any `button` element inside a
26628
- * [ToolbarTemplate]({% slug api_grid_commandcolumncomponent %}).
26776
+ * [ToolbarTemplate]({% slug api_grid_toolbartemplatedirective %}).
26629
26777
  * When the user clicks a button associated with the directive, the
26630
26778
  * [excelExport]({% slug api_grid_gridcomponent %}#toc-excelexport) event
26631
26779
  * fires ([see example]({% slug excelexport_grid %})).
26632
26780
  *
26633
26781
  * @example
26634
- * ```html-no-run
26782
+ * ```html
26635
26783
  * <kendo-grid>
26636
26784
  * <ng-template kendoGridToolbarTemplate>
26637
26785
  * <button kendoGridExcelCommand>Export to PDF</button>
@@ -26749,5 +26897,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26749
26897
  * Generated bundle index. Do not edit.
26750
26898
  */
26751
26899
 
26752
- export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditService, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterModule, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupModule, GroupPanelComponent, GroupsService, HeaderComponent, HeaderModule, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerContextService, PagerDropDownListDirective, PagerInfoComponent, PagerInputComponent, PagerInputDirective, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowEditingDirectiveBase, RowFilterModule, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SharedFilterModule, SharedModule, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
26900
+ export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditService, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterModule, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupModule, GroupPanelComponent, GroupsService, HeaderComponent, HeaderModule, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerContextService, PagerDropDownListDirective, PagerInfoComponent, PagerInputComponent, PagerInputDirective, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowEditingDirectiveBase, RowFilterModule, RowReorderColumnComponent, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SharedFilterModule, SharedModule, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
26753
26901