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

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 (119) 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/column-menu/column-menu.service.d.ts +9 -21
  4. package/columns/column-base.d.ts +18 -369
  5. package/columns/reorder-column.component.d.ts +31 -0
  6. package/columns/sort-settings.d.ts +20 -4
  7. package/common/fetch-data-callback.d.ts +1 -1
  8. package/common/preventable-event.d.ts +1 -1
  9. package/common/single-popup.service.d.ts +1 -1
  10. package/common/size-options.d.ts +1 -2
  11. package/data/grid-item.interface.d.ts +6 -3
  12. package/databinding.directive.d.ts +15 -1
  13. package/editing/add-command.directive.d.ts +1 -1
  14. package/editing/cancel-command.directive.d.ts +4 -16
  15. package/editing/edit-template.directive.d.ts +2 -3
  16. package/editing/remove-command.directive.d.ts +6 -6
  17. package/editing/save-command.directive.d.ts +3 -15
  18. package/editing-directives/in-cell-editing.directive.d.ts +1 -1
  19. package/editing-directives/template-editing.directive.d.ts +1 -1
  20. package/esm2020/column-menu/column-menu-item-content-template.directive.mjs +13 -24
  21. package/esm2020/column-menu/column-menu-template.directive.mjs +14 -28
  22. package/esm2020/column-menu/column-menu.service.mjs +9 -21
  23. package/esm2020/columns/column-base.mjs +10 -40
  24. package/esm2020/columns/reorder-column.component.mjs +55 -0
  25. package/esm2020/common/preventable-event.mjs +1 -1
  26. package/esm2020/common/single-popup.service.mjs +1 -1
  27. package/esm2020/databinding.directive.mjs +30 -3
  28. package/esm2020/editing/add-command.directive.mjs +1 -1
  29. package/esm2020/editing/cancel-command.directive.mjs +4 -16
  30. package/esm2020/editing/edit-template.directive.mjs +2 -3
  31. package/esm2020/editing/remove-command.directive.mjs +6 -6
  32. package/esm2020/editing/save-command.directive.mjs +3 -15
  33. package/esm2020/editing-directives/in-cell-editing.directive.mjs +1 -1
  34. package/esm2020/editing-directives/template-editing.directive.mjs +1 -1
  35. package/esm2020/excel/excel-command.directive.mjs +2 -2
  36. package/esm2020/excel/excel.module.mjs +5 -15
  37. package/esm2020/filtering/cell/autocomplete-filter-cell.component.mjs +1 -1
  38. package/esm2020/filtering/cell/boolean-filter-cell.component.mjs +1 -1
  39. package/esm2020/filtering/cell/filter-cell-operators.component.mjs +1 -1
  40. package/esm2020/filtering/menu/date-filter-menu.component.mjs +1 -1
  41. package/esm2020/filtering/menu/filter-menu-input-wrapper.component.mjs +1 -1
  42. package/esm2020/filtering/menu/numeric-filter-menu.component.mjs +1 -1
  43. package/esm2020/filtering/menu/string-filter-menu.component.mjs +1 -1
  44. package/esm2020/grid.component.mjs +195 -38
  45. package/esm2020/grid.module.mjs +76 -81
  46. package/esm2020/grouping/group-footer-template.directive.mjs +9 -35
  47. package/esm2020/grouping/group-header-column-template.directive.mjs +2 -2
  48. package/esm2020/grouping/group-header-template.directive.mjs +9 -37
  49. package/esm2020/index.mjs +1 -0
  50. package/esm2020/layout/sizing-options.service.mjs +3 -0
  51. package/esm2020/localization/messages.mjs +3 -1
  52. package/esm2020/navigation/focusable.directive.mjs +10 -41
  53. package/esm2020/package-metadata.mjs +2 -2
  54. package/esm2020/pager/pager-page-sizes.component.mjs +1 -1
  55. package/esm2020/pager/pager-template.directive.mjs +13 -46
  56. package/esm2020/pdf/pdf-template.directive.mjs +10 -38
  57. package/esm2020/pdf/pdf.module.mjs +7 -16
  58. package/esm2020/rendering/body.module.mjs +9 -4
  59. package/esm2020/rendering/cell-loading.template.directive.mjs +11 -8
  60. package/esm2020/rendering/cell-template.directive.mjs +11 -35
  61. package/esm2020/rendering/cell.component.mjs +43 -10
  62. package/esm2020/rendering/details/detail-template.directive.mjs +10 -58
  63. package/esm2020/rendering/details-expand.directive.mjs +1 -1
  64. package/esm2020/rendering/footer/footer-template.directive.mjs +8 -35
  65. package/esm2020/rendering/header/header-template.directive.mjs +9 -36
  66. package/esm2020/rendering/loading-template.directive.mjs +1 -1
  67. package/esm2020/rendering/no-records-template.directive.mjs +11 -58
  68. package/esm2020/rendering/toolbar/toolbar-position.mjs +17 -0
  69. package/esm2020/rendering/toolbar/toolbar-template.directive.mjs +10 -56
  70. package/esm2020/row-reordering/row-reorder.service.mjs +232 -0
  71. package/esm2020/row-reordering/types.mjs +5 -0
  72. package/esm2020/row-reordering/utils.mjs +87 -0
  73. package/esm2020/selection/selectall-checkbox.directive.mjs +12 -1
  74. package/esm2020/selection/selection-checkbox.directive.mjs +11 -44
  75. package/esm2020/selection/selection-default.mjs +1 -0
  76. package/esm2020/selection/selection.directive.mjs +1 -1
  77. package/excel/excel-command.directive.d.ts +2 -2
  78. package/excel/excel.module.d.ts +5 -15
  79. package/fesm2015/progress-kendo-angular-grid.mjs +876 -800
  80. package/fesm2020/progress-kendo-angular-grid.mjs +876 -804
  81. package/filtering/filterable.d.ts +10 -0
  82. package/grid.component.d.ts +46 -4
  83. package/grid.module.d.ts +93 -101
  84. package/grouping/group-footer-template.directive.d.ts +9 -35
  85. package/grouping/group-header-column-template.directive.d.ts +2 -2
  86. package/grouping/group-header-template.directive.d.ts +9 -37
  87. package/index.d.ts +2 -0
  88. package/layout/sizing-options.service.d.ts +3 -0
  89. package/localization/messages.d.ts +5 -1
  90. package/navigation/focusable.directive.d.ts +10 -41
  91. package/navigation/navigable-settings.d.ts +15 -1
  92. package/package.json +15 -14
  93. package/pager/pager-settings.d.ts +8 -12
  94. package/pager/pager-template.directive.d.ts +13 -46
  95. package/pdf/pdf-template.directive.d.ts +10 -38
  96. package/pdf/pdf.module.d.ts +7 -16
  97. package/rendering/body.module.d.ts +9 -8
  98. package/rendering/cell-loading.template.directive.d.ts +11 -8
  99. package/rendering/cell-template.directive.d.ts +11 -35
  100. package/rendering/cell.component.d.ts +5 -0
  101. package/rendering/common/row-class.d.ts +4 -4
  102. package/rendering/details/detail-template.directive.d.ts +10 -58
  103. package/rendering/details-expand.directive.d.ts +1 -1
  104. package/rendering/footer/footer-template.directive.d.ts +8 -35
  105. package/rendering/header/header-template.directive.d.ts +9 -36
  106. package/rendering/loading-template.directive.d.ts +1 -1
  107. package/rendering/no-records-template.directive.d.ts +11 -58
  108. package/rendering/toolbar/toolbar-position.d.ts +18 -1
  109. package/rendering/toolbar/toolbar-template.directive.d.ts +10 -56
  110. package/row-reordering/row-reorder.service.d.ts +56 -0
  111. package/row-reordering/types.d.ts +40 -0
  112. package/row-reordering/utils.d.ts +78 -0
  113. package/schematics/ngAdd/index.js +2 -2
  114. package/scrolling/scrollmode.d.ts +4 -4
  115. package/selection/selectall-checkbox.directive.d.ts +12 -1
  116. package/selection/selection-checkbox.directive.d.ts +11 -44
  117. package/selection/selection-default.d.ts +1 -0
  118. package/selection/selection.directive.d.ts +1 -1
  119. package/selection/types.d.ts +24 -2
@@ -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';
@@ -932,7 +934,7 @@ class PreventableEvent {
932
934
  this.prevented = true;
933
935
  }
934
936
  /**
935
- * Returns `true` if the event was prevented
937
+ * Returns a respective boolean if the event was prevented
936
938
  * by any of its subscribers.
937
939
  *
938
940
  * @returns `true` if the default action was prevented.
@@ -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: 1681998466,
2836
+ version: '12.0.0-develop.11',
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.
@@ -3384,9 +3212,9 @@ class ColumnBase {
3384
3212
  */
3385
3213
  this.matchesMedia = true;
3386
3214
  /**
3387
- * The column index after reordering.
3215
+ * The column index after reordering. The `orderIndex` is a read-only property. Setting this field does not affect column order.
3388
3216
  *
3389
- * > `orderIndex` is a read-only property. Setting this field does not affect column order.
3217
+ * @default 0
3390
3218
  */
3391
3219
  this.orderIndex = 0;
3392
3220
  /**
@@ -3421,18 +3249,22 @@ class ColumnBase {
3421
3249
  this.sticky = false;
3422
3250
  /**
3423
3251
  * Specifies if the column can be locked or unlocked from the column menu or by reordering the columns.
3252
+ * @default true
3424
3253
  */
3425
3254
  this.lockable = true;
3426
3255
  /**
3427
3256
  * Specifies if the column can be stuck or unstuck from the column menu.
3257
+ * @default true
3428
3258
  */
3429
3259
  this.stickable = true;
3430
3260
  /**
3431
3261
  * Specifies if the column menu will be shown for the column.
3262
+ * @default true
3432
3263
  */
3433
3264
  this.columnMenu = true;
3434
3265
  /**
3435
3266
  * Specifies if the column will be included in the column-chooser list.
3267
+ * @default true
3436
3268
  */
3437
3269
  this.includeInChooser = true;
3438
3270
  /**
@@ -3480,44 +3312,6 @@ class ColumnBase {
3480
3312
  *
3481
3313
  * @default false
3482
3314
  *
3483
- * @example
3484
- * ```ts
3485
- * _@Component({
3486
- * selector: 'my-app',
3487
- * template: `
3488
- * <kendo-grid [data]="gridData" [scrollable]="scrollable" style="height: 200px">
3489
- * <kendo-grid-column field="ProductID" title="Product ID" [width]="120" [locked]="true">
3490
- * </kendo-grid-column>
3491
- * <kendo-grid-column field="ProductName" title="Product Name" [width]="200">
3492
- * </kendo-grid-column>
3493
- * <kendo-grid-column field="UnitPrice" title="Unit Price" [width]="230">
3494
- * </kendo-grid-column>
3495
- * </kendo-grid>
3496
- * `
3497
- * })
3498
- *
3499
- * class AppComponent {
3500
- * public gridData: any[];
3501
- *
3502
- * constructor() {
3503
- * this.gridData = products;
3504
- * }
3505
- * }
3506
- *
3507
- * const products = [{
3508
- * "ProductID": 1,
3509
- * "ProductName": "Chai",
3510
- * "UnitPrice": 18.0000,
3511
- * "Discontinued": true
3512
- * }, {
3513
- * "ProductID": 2,
3514
- * "ProductName": "Chang",
3515
- * "UnitPrice": 19.0000,
3516
- * "Discontinued": false
3517
- * }
3518
- * ];
3519
- *
3520
- * ```
3521
3315
  */
3522
3316
  set locked(value) {
3523
3317
  this._locked = value;
@@ -4387,64 +4181,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4387
4181
  * To define the detail template, nest an `<ng-template>` tag with the `kendoGridDetailTemplate` directive inside a `<kendo-grid>` tag.
4388
4182
  *
4389
4183
  * @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
- *
4184
+ * ```html
4185
+ * <kendo-grid [data]="data" selectable="true" style="height: 160px">
4186
+ * <kendo-grid-column field="ProductName"></kendo-grid-column>
4187
+ * <ng-template kendoGridDetailTemplate let-dataItem>
4188
+ * <div *ngIf="dataItem.Category">
4189
+ * <header>{{dataItem.Category?.CategoryName}}</header>
4190
+ * span>{{dataItem.Category?.Description}}</span>
4191
+ * </div>
4192
+ * </ng-template>
4193
+ * </kendo-grid>
4448
4194
  * ```
4449
4195
  *
4450
4196
  */
@@ -5007,6 +4753,7 @@ class Selection {
5007
4753
  this.cd = cd;
5008
4754
  /**
5009
4755
  * Defines the collection that will store the selected item keys.
4756
+ * @default []
5010
4757
  */
5011
4758
  this.selectedKeys = [];
5012
4759
  /**
@@ -5394,66 +5141,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5394
5141
 
5395
5142
  /**
5396
5143
  * 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.
5144
+ * appearance of the item that is displayed when no data is present.
5145
+ * To define the no-records template, nest an `<ng-template>` tag with the `kendoGridNoRecordsTemplate`
5146
+ * directive inside `<kendo-grid>` [see example](slug:norecordtemplate_grid).
5401
5147
  *
5402
5148
  * @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
- *
5149
+ * ```html
5150
+ * <kendo-grid [data]="data">
5151
+ * <ng-template kendoGridNoRecordsTemplate>
5152
+ * There are not products. <a href="#" (click)="refresh()">Click here to refresh</a>.
5153
+ * </ng-template>
5154
+ * <kendo-grid-column field="ProductID"></kendo-grid-column>
5155
+ * <kendo-grid-column field="ProductName"></kendo-grid-column>
5156
+ * </kendo-grid>
5457
5157
  * ```
5458
5158
  */
5459
5159
  class NoRecordsTemplateDirective {
@@ -5568,7 +5268,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5568
5268
 
5569
5269
  /**
5570
5270
  * 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>`.
5271
+ * template, nest an `<ng-template>` tag with the `kendoPagerTemplate` directive inside `<kendo-grid>` tag
5272
+ * [see example](slug:pager_template_grid).
5572
5273
  *
5573
5274
  * The template context provides the following fields:
5574
5275
  * * `currentPage`&mdash;The index of the displayed page.
@@ -5576,53 +5277,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5576
5277
  * * `skip`&mdash;The current skip value.
5577
5278
  * * `total`&mdash;The total number of records.
5578
5279
  * * `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
5280
  *
5581
5281
  * @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
- *
5282
+ * ```html
5283
+ * <kendo-grid ... [pageable]="true">
5284
+ * <ng-template kendoPagerTemplate let-totalPages="totalPages" let-currentPage="currentPage">
5285
+ * <kendo-pager-prev-buttons></kendo-pager-prev-buttons>
5286
+ * <kendo-pager-next-buttons></kendo-pager-next-buttons>
5287
+ * <kendo-pager-info></kendo-pager-info>
5288
+ * Current page: {{currentPage}}
5289
+ * </ng-template>
5290
+ * <kendo-grid-column field="ProductID"></kendo-grid-column>
5291
+ * <kendo-grid-column field="ProductName"></kendo-grid-column>
5292
+ * </kendo-grid>
5626
5293
  * ```
5627
5294
  */
5628
5295
  class PagerTemplateDirective {
@@ -5768,56 +5435,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5768
5435
  * - `position`&mdash;The position at which the toolbar template is rendered. The possible values are "top" and "bottom".
5769
5436
  *
5770
5437
  * @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
- *
5438
+ * ```html
5439
+ * <kendo-grid [data]="gridData" style="height: 200px">
5440
+ * <ng-template kendoGridToolbarTemplate [position]="position" let-position="position">
5441
+ * <button (click)="onClick()">Custom action</button>
5442
+ * </ng-template>
5443
+ * <kendo-grid-column field="ProductName">
5444
+ * </kendo-grid-column>
5445
+ * </kendo-grid>
5821
5446
  * ```
5822
5447
  */
5823
5448
  class ToolbarTemplateDirective {
@@ -5826,13 +5451,9 @@ class ToolbarTemplateDirective {
5826
5451
  this._position = 'top';
5827
5452
  }
5828
5453
  /**
5829
- * The position of the toolbar ([see example]({% slug toolbartemplate_grid %})).
5454
+ * The position of the toolbar ([see example]({% slug toolbartemplate_grid %}#toc-setting-the-toolbar-position)).
5830
5455
  *
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.
5456
+ * @default 'top'
5836
5457
  */
5837
5458
  set position(position) {
5838
5459
  this._position = position;
@@ -6118,7 +5739,7 @@ class PopupCloseEvent extends PreventableEvent {
6118
5739
  const DEFAULT_POPUP_CLASS = 'k-grid-filter-popup';
6119
5740
  /**
6120
5741
  * The service that is used for the popups of the filter and column menus
6121
- * ([see example]({% slug filter_menu %}#toc-custom-filter-row-components)#toc-filter-menu-with-popup).
5742
+ * ([see example]({% slug filter_menu %}#toc-filter-menu-with-popup)).
6122
5743
  */
6123
5744
  class SinglePopupService {
6124
5745
  constructor(popupService, renderer, ngZone, scrollSyncService, localization) {
@@ -6236,17 +5857,17 @@ const append = (element) => {
6236
5857
  /**
6237
5858
  * @hidden
6238
5859
  */
6239
- const getDocument = element => element.ownerDocument.documentElement;
5860
+ const getDocument$1 = element => element.ownerDocument.documentElement;
6240
5861
  /**
6241
5862
  * @hidden
6242
5863
  */
6243
- const getWindow = element => element.ownerDocument.defaultView;
5864
+ const getWindow$1 = element => element.ownerDocument.defaultView;
6244
5865
  /**
6245
5866
  * @hidden
6246
5867
  */
6247
5868
  const offset = element => {
6248
- const { clientTop, clientLeft } = getDocument(element);
6249
- const { pageYOffset, pageXOffset } = getWindow(element);
5869
+ const { clientTop, clientLeft } = getDocument$1(element);
5870
+ const { pageYOffset, pageXOffset } = getWindow$1(element);
6250
5871
  const { top, left } = element.getBoundingClientRect();
6251
5872
  return {
6252
5873
  top: top + pageYOffset - clientTop,
@@ -6661,17 +6282,20 @@ class ColumnStickyChangeEvent {
6661
6282
  /**
6662
6283
  * Represents the virtual scrolling cell template of the Grid while loading new data. Provides an option to customize the
6663
6284
  * 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)).
6285
+ * nest an `<ng-template>` tag with the `kendoGridCellLoadingTemplate` directive inside `<kendo-grid>` tag [see example]({% slug virtualscrolling_grid %}#toc-custom-loading-skeleton).
6286
+ *
6287
+ *
6288
+ * The template context is set to the current column and the following additional field is passed:
6665
6289
  *
6666
- * The template context is set to the current column, and utilizes the `let-x` syntax&mdash;for example, `let-column`.
6290
+ * - `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
6291
  *
6668
6292
  * @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>
6293
+ * ```html
6294
+ * <kendo-grid ... scrollable="virtual" [rowHeight]="36" [height]="450">
6295
+ * <ng-template kendoGridCellLoadingTemplate let-column>
6296
+ * ...
6297
+ * </ng-template>
6298
+ * </kendo-grid>
6675
6299
  * ```
6676
6300
  */
6677
6301
  class CellLoadingTemplateDirective {
@@ -6695,7 +6319,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6695
6319
  /**
6696
6320
  * Creates a loading template that overrides the default loading indicator of the Grid Component.
6697
6321
  * 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).
6322
+ * ([see example](slug:loadingtemplate_grid)).
6699
6323
  */
6700
6324
  class LoadingTemplateDirective {
6701
6325
  constructor(templateRef) {
@@ -6711,6 +6335,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6711
6335
  }]
6712
6336
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
6713
6337
 
6338
+ /**
6339
+ * @hidden
6340
+ */
6714
6341
  class SizingOptionsService {
6715
6342
  constructor() {
6716
6343
  this.changes = new Subject();
@@ -6722,6 +6349,314 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6722
6349
  type: Injectable
6723
6350
  }] });
6724
6351
 
6352
+ /**
6353
+ * @hidden
6354
+ */
6355
+ const isNextSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.nextElementSibling;
6356
+ /**
6357
+ * @hidden
6358
+ */
6359
+ const isPreviousSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.previousElementSibling;
6360
+ /**
6361
+ * @hidden
6362
+ */
6363
+ const isDifferentParent = (dropTarget, dragTarget) => (dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.parentElement) !== (dragTarget === null || dragTarget === void 0 ? void 0 : dragTarget.parentElement);
6364
+ /**
6365
+ * @hidden
6366
+ */
6367
+ function getOffset(element) {
6368
+ const { clientTop, clientLeft } = getDocument(element);
6369
+ const { pageYOffset, pageXOffset } = getWindow(element);
6370
+ const { top, left } = element.getBoundingClientRect();
6371
+ return {
6372
+ top: top + pageYOffset - clientTop,
6373
+ left: left + pageXOffset - clientLeft
6374
+ };
6375
+ }
6376
+ ;
6377
+ /**
6378
+ * @hidden
6379
+ */
6380
+ const hintIcons = {
6381
+ forbidden: 'cancel',
6382
+ before: 'insert-middle',
6383
+ after: 'insert-middle'
6384
+ };
6385
+ /**
6386
+ * @hidden
6387
+ */
6388
+ const hintSVGIcons = {
6389
+ forbidden: cancelIcon,
6390
+ before: insertMiddleIcon,
6391
+ after: insertMiddleIcon
6392
+ };
6393
+ /**
6394
+ * @hidden
6395
+ */
6396
+ const dropPosition = {
6397
+ forbidden: 'forbidden',
6398
+ before: 'before',
6399
+ after: 'after'
6400
+ };
6401
+ /**
6402
+ * @hidden
6403
+ */
6404
+ const hintStyles = {
6405
+ zIndex: '20000',
6406
+ display: 'flex',
6407
+ position: 'fixed'
6408
+ };
6409
+ /**
6410
+ * @hidden
6411
+ */
6412
+ const hintClasses = ['k-drag-clue', 'k-reorder-clue'];
6413
+ /**
6414
+ * @hidden
6415
+ */
6416
+ const dropIndicatorStyles = {
6417
+ zIndex: '19000',
6418
+ position: 'absolute'
6419
+ };
6420
+ /**
6421
+ * @hidden
6422
+ */
6423
+ const dropIndicatorClasses = ['k-drop-hint', 'k-drop-hint-h'];
6424
+ /**
6425
+ * @hidden
6426
+ */
6427
+ const defaultSelectors = {
6428
+ handle: '.k-table-td.k-drag-cell',
6429
+ dragTarget: '.k-master-row',
6430
+ dropTarget: '.k-master-row'
6431
+ };
6432
+ const getDocument = element => element === null || element === void 0 ? void 0 : element.ownerDocument.documentElement;
6433
+ const getWindow = element => element === null || element === void 0 ? void 0 : element.ownerDocument.defaultView;
6434
+
6435
+ /**
6436
+ * @hidden
6437
+ */
6438
+ class RowReorderService {
6439
+ constructor(renderer) {
6440
+ this.renderer = renderer;
6441
+ this.hintElement = null;
6442
+ this.defaultSelectors = defaultSelectors;
6443
+ this.hintText = '';
6444
+ this.lastDropPosition = dropPosition.forbidden;
6445
+ this.dragTarget = null;
6446
+ this.dropTarget = null;
6447
+ this.rowReorder = new EventEmitter();
6448
+ }
6449
+ press(ev) {
6450
+ this.dragTarget = ev.dragTarget;
6451
+ }
6452
+ dragStart() {
6453
+ this.createDropIndicator();
6454
+ }
6455
+ drag(ev) {
6456
+ if (isPresent$1(ev.hintElement) && !isPresent$1(this.hintElement)) {
6457
+ this.hintElement = ev.hintElement;
6458
+ this.decorateHint();
6459
+ }
6460
+ const position = {
6461
+ x: ev.dragEvent.clientX,
6462
+ y: ev.dragEvent.clientY
6463
+ };
6464
+ if (isPresent$1(this.hintElement)) {
6465
+ this.renderer.setStyle(this.hintElement, 'left', `${position.x}px`);
6466
+ this.renderer.setStyle(this.hintElement, 'top', `${position.y}px`);
6467
+ }
6468
+ this.positionDropIndicator(ev);
6469
+ }
6470
+ dragEnter(ev) {
6471
+ this.dropTarget = ev.dropTarget;
6472
+ }
6473
+ dragLeave() {
6474
+ this.dropTarget = null;
6475
+ this.hide();
6476
+ }
6477
+ dragEnd() {
6478
+ this.destroyDropIndicator();
6479
+ this.dragTarget = null;
6480
+ this.dropTarget = null;
6481
+ this.hintElement = null;
6482
+ }
6483
+ drop(ev) {
6484
+ this.destroyDropIndicator();
6485
+ const rowReorderArgs = this.rowReorderArgs(this.dragTarget, this.dropTarget, ev.dragData);
6486
+ this.rowReorder.emit(rowReorderArgs);
6487
+ }
6488
+ reorderRows(ev, collection) {
6489
+ if (this.lastDropPosition === dropPosition.forbidden) {
6490
+ return;
6491
+ }
6492
+ ;
6493
+ const { draggedRows, dropTargetRow } = ev;
6494
+ const draggedDataItem = draggedRows[0].dataItem;
6495
+ const dropTargetDataItem = dropTargetRow.dataItem;
6496
+ const draggedItemIndex = collection.indexOf(draggedDataItem);
6497
+ const dropTargetIndex = collection.indexOf(dropTargetDataItem);
6498
+ const idxToAdd = this.calculateIndexToAdd(draggedItemIndex, dropTargetIndex);
6499
+ collection.splice(draggedItemIndex, 1);
6500
+ collection.splice(idxToAdd, 0, draggedDataItem);
6501
+ }
6502
+ get hintIcon() {
6503
+ return hintIcons[this.lastDropPosition];
6504
+ }
6505
+ get hintSVGIcon() {
6506
+ return hintSVGIcons[this.lastDropPosition];
6507
+ }
6508
+ getDefaultHintText(columns, data) {
6509
+ let hintText = '';
6510
+ const columnFieldsArray = columns
6511
+ .toArray()
6512
+ .filter(column => !column.hidden && isPresent$1(column.field))
6513
+ .map(column => column.field);
6514
+ const draggedDragRow = this.getDragRowPerElement(this.dragTarget, data);
6515
+ const draggedDataItem = draggedDragRow === null || draggedDragRow === void 0 ? void 0 : draggedDragRow.dataItem;
6516
+ isPresent$1(draggedDataItem) && columnFieldsArray.forEach(column => {
6517
+ const columnValue = draggedDataItem[column];
6518
+ isPresent$1(columnValue) ? hintText += `${columnValue} ` : null;
6519
+ });
6520
+ return hintText.trim();
6521
+ }
6522
+ rowReorderArgs(dragRow, dropRow, data) {
6523
+ const dragRowData = this.getDragRowPerElement(dragRow, data);
6524
+ const dropRowData = this.getDragRowPerElement(dropRow, data);
6525
+ return {
6526
+ draggedRows: [dragRowData],
6527
+ dropTargetRow: dropRowData,
6528
+ dropPosition: this.lastDropPosition
6529
+ };
6530
+ }
6531
+ getDragRowPerElement(row, data) {
6532
+ let rowIndex = row === null || row === void 0 ? void 0 : row.getAttribute('data-kendo-grid-item-index');
6533
+ rowIndex = rowIndex ? parseInt(rowIndex, 10) : -1;
6534
+ const skip = this.skip || 0;
6535
+ const dataItem = rowIndex === -1 ? null : data[rowIndex - skip];
6536
+ return {
6537
+ dataItem,
6538
+ rowIndex,
6539
+ element: row
6540
+ };
6541
+ }
6542
+ createDropIndicator() {
6543
+ if (!isDocumentAvailable()) {
6544
+ return;
6545
+ }
6546
+ this.dropIndicator = document.createElement('div');
6547
+ this.decorateDropIndicator();
6548
+ this.dropIndicator.innerHTML = `
6549
+ <div class="k-drop-hint-start"></div>
6550
+ <div class="k-drop-hint-line"></div>
6551
+ `;
6552
+ document.body.appendChild(this.dropIndicator);
6553
+ this.hide();
6554
+ }
6555
+ destroyDropIndicator() {
6556
+ if (!isDocumentAvailable()) {
6557
+ return;
6558
+ }
6559
+ ;
6560
+ if (this.dropIndicator && this.dropIndicator.parentElement) {
6561
+ document.body.removeChild(this.dropIndicator);
6562
+ this.dropIndicator = null;
6563
+ }
6564
+ }
6565
+ decorateHint() {
6566
+ hintClasses.forEach(className => this.renderer.addClass(this.hintElement, className));
6567
+ Object.keys(hintStyles)
6568
+ .forEach(style => this.renderer.setStyle(this.hintElement, style, hintStyles[style]));
6569
+ }
6570
+ positionDropIndicator(ev) {
6571
+ this.lastDropPosition = this.getDropPosition(ev.dragEvent);
6572
+ this.updateDropIndicatorPosition();
6573
+ }
6574
+ calculateIndexToAdd(dragIndex, dropIndex) {
6575
+ if (dragIndex > dropIndex && this.lastDropPosition === dropPosition.after) {
6576
+ return dropIndex + 1;
6577
+ }
6578
+ else if (dragIndex > dropIndex && this.lastDropPosition === dropPosition.before) {
6579
+ return dropIndex;
6580
+ }
6581
+ else if (dragIndex < dropIndex && this.lastDropPosition === dropPosition.after) {
6582
+ return dropIndex;
6583
+ }
6584
+ else if (dragIndex < dropIndex && this.lastDropPosition === dropPosition.before) {
6585
+ return dropIndex - 1;
6586
+ }
6587
+ }
6588
+ decorateDropIndicator() {
6589
+ dropIndicatorClasses.forEach(className => this.renderer.addClass(this.dropIndicator, className));
6590
+ Object.keys(dropIndicatorStyles)
6591
+ .forEach(style => this.renderer.setStyle(this.dropIndicator, style, dropIndicatorStyles[style]));
6592
+ }
6593
+ ;
6594
+ getDropPosition(e) {
6595
+ if (this.dropTarget === this.dragTarget || !isPresent$1(this.dropTarget)) {
6596
+ return dropPosition.forbidden;
6597
+ }
6598
+ ;
6599
+ if (isDifferentParent(this.dropTarget, this.dragTarget)) {
6600
+ return dropPosition.forbidden;
6601
+ }
6602
+ ;
6603
+ const itemViewPortCoords = this.dropTarget.getBoundingClientRect();
6604
+ const itemDivisionsCount = 2;
6605
+ const itemDivisionHeight = itemViewPortCoords.height / itemDivisionsCount;
6606
+ const pointerPosition = e.clientY;
6607
+ const itemTop = itemViewPortCoords.top;
6608
+ let currentDropPosition = null;
6609
+ if (pointerPosition < itemTop + itemDivisionHeight) {
6610
+ currentDropPosition = dropPosition.before;
6611
+ }
6612
+ else if (pointerPosition >= itemTop + itemViewPortCoords.height - itemDivisionHeight) {
6613
+ currentDropPosition = dropPosition.after;
6614
+ }
6615
+ if (currentDropPosition === dropPosition.before && isNextSibling(this.dropTarget, this.dragTarget)) {
6616
+ currentDropPosition = dropPosition.forbidden;
6617
+ }
6618
+ else if (currentDropPosition === dropPosition.after && isPreviousSibling(this.dropTarget, this.dragTarget)) {
6619
+ currentDropPosition = dropPosition.forbidden;
6620
+ }
6621
+ return currentDropPosition;
6622
+ }
6623
+ updateDropIndicatorPosition() {
6624
+ if (this.shouldHideDropIndicator() || !this.dropTarget) {
6625
+ this.hide();
6626
+ return;
6627
+ }
6628
+ this.show();
6629
+ const destinationItemOffset = getOffset(this.dropTarget);
6630
+ let indicatorOffsetTop = destinationItemOffset.top;
6631
+ const indicatorOffsetLeft = destinationItemOffset.left + this.dropIndicator.offsetWidth / 2;
6632
+ if (this.lastDropPosition === dropPosition.after) {
6633
+ indicatorOffsetTop += this.dropTarget.offsetHeight;
6634
+ }
6635
+ this.renderer.setStyle(this.dropIndicator, 'left', `${indicatorOffsetLeft}px`);
6636
+ this.renderer.setStyle(this.dropIndicator, 'top', `${indicatorOffsetTop}px`);
6637
+ }
6638
+ shouldHideDropIndicator() {
6639
+ return this.lastDropPosition === dropPosition.forbidden;
6640
+ }
6641
+ hide() {
6642
+ if (isPresent$1(this.dropIndicator)) {
6643
+ this.dropIndicator.style.display = 'none';
6644
+ }
6645
+ }
6646
+ show() {
6647
+ if (isPresent$1(this.dropIndicator)) {
6648
+ this.dropIndicator.style.display = '';
6649
+ }
6650
+ }
6651
+ }
6652
+ RowReorderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
6653
+ RowReorderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService });
6654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService, decorators: [{
6655
+ type: Injectable
6656
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { rowReorder: [{
6657
+ type: Output
6658
+ }] } });
6659
+
6725
6660
  /**
6726
6661
  * @hidden
6727
6662
  */
@@ -7923,7 +7858,7 @@ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
7923
7858
  [value]="pageSize"
7924
7859
  (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
7925
7860
  <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 });
7861
+ `, 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
7862
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
7928
7863
  type: Component,
7929
7864
  args: [{
@@ -9629,7 +9564,7 @@ FilterMenuInputWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
9629
9564
  (keydown.shift.tab)="onShiftTab($event)">
9630
9565
  </kendo-dropdownlist>
9631
9566
  <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"] }] });
9567
+ `, 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
9568
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuInputWrapperComponent, decorators: [{
9634
9569
  type: Component,
9635
9570
  args: [{
@@ -9812,7 +9747,7 @@ StringFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
9812
9747
  [filter]="filter"
9813
9748
  [menuTabbingService]="menuTabbingService">
9814
9749
  </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"] }] });
9750
+ `, 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
9751
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuComponent, decorators: [{
9817
9752
  type: Component,
9818
9753
  args: [{
@@ -10215,7 +10150,7 @@ NumericFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
10215
10150
  [menuTabbingService]="menuTabbingService"
10216
10151
  >
10217
10152
  </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"] }] });
10153
+ `, 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
10154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuComponent, decorators: [{
10220
10155
  type: Component,
10221
10156
  args: [{
@@ -10480,7 +10415,7 @@ DateFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
10480
10415
  </kendo-datepicker-messages>
10481
10416
  </kendo-datepicker>
10482
10417
  </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"] }] });
10418
+ `, 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
10419
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuInputComponent, decorators: [{
10485
10420
  type: Component,
10486
10421
  args: [{
@@ -10666,7 +10601,7 @@ DateFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
10666
10601
  [menuTabbingService]="menuTabbingService"
10667
10602
  >
10668
10603
  </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"] }] });
10604
+ `, 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
10605
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
10671
10606
  type: Component,
10672
10607
  args: [{
@@ -11386,27 +11321,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11386
11321
  * [ColumnMenuTemplate]({% slug api_grid_columnmenutemplatedirective %}) directive.
11387
11322
  *
11388
11323
  * @example
11389
- * ```ts-preview
11390
- *
11391
- * _@Component({
11392
- * selector: 'my-app',
11393
- * template: `
11394
- * <kendo-grid [data]="data" [columnMenu]="true">
11395
- * <ng-template kendoGridColumnMenuTemplate let-service="service">
11396
- * <span class="k-icon k-i-x" (click)="service.close()"
11397
- * style="position: absolute; right: 5px; top: 5px;cursor: pointer;"></span>
11398
- * <kendo-grid-columnmenu-sort [service]="service">
11399
- * </kendo-grid-columnmenu-sort>
11400
- * </ng-template>
11401
- * <kendo-grid-column field="Field1"></kendo-grid-column>
11402
- * <kendo-grid-column field="Field2"></kendo-grid-column>
11403
- * </kendo-grid>
11404
- * `
11405
- * })
11406
- *
11407
- * class AppComponent {
11408
- * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];
11409
- * }
11324
+ * ```html
11325
+ * <kendo-grid [data]="data" [columnMenu]="true">
11326
+ * <ng-template kendoGridColumnMenuTemplate let-service="service">
11327
+ * <span class="k-icon k-i-x" (click)="service.close()" </span>
11328
+ * <kendo-grid-columnmenu-sort [service]="service">
11329
+ * </kendo-grid-columnmenu-sort>
11330
+ * </ng-template>
11331
+ * <kendo-grid-column field="Field1"></kendo-grid-column>
11332
+ * </kendo-grid>
11410
11333
  *
11411
11334
  * ```
11412
11335
  */
@@ -11478,35 +11401,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11478
11401
 
11479
11402
  /**
11480
11403
  * Represents the content template of the
11481
- * [kendo-grid-columnmenu-item]({% slug api_grid_columnmenuitemcomponent %}) component.
11482
- * Provides an option for specifying the content of a column item.
11483
- * To define the content template, nest an `<ng-template>` tag with the
11484
- * `kendoGridColumnMenuItemContentTemplate` directive inside a `<kendo-grid-columnmenu-item>`.
11485
- *
11486
- * @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
- * }
11404
+ * [`ColumnMenuItemComponent`]({% slug api_grid_columnmenuitemcomponent %}) component.
11405
+ * Provides an option for specifying the content of a column item.
11406
+ * To define the content template, nest an `<ng-template>` tag with the
11407
+ * `kendoGridColumnMenuItemContentTemplate` directive inside a `<kendo-grid-columnmenu-item>`.
11509
11408
  *
11409
+ * @example
11410
+ * ```html
11411
+ * <kendo-grid [data]="data" [columnMenu]="true" ...>
11412
+ * <ng-template kendoGridColumnMenuTemplate>
11413
+ * <kendo-grid-columnmenu-item text="Item Text" [expanded]="true">
11414
+ * <ng-template kendoGridColumnMenuItemContentTemplate>
11415
+ * Item Content
11416
+ * </ng-template>
11417
+ * </kendo-grid-columnmenu-item>
11418
+ * </ng-template>
11419
+ * <kendo-grid-column field="Field1"></kendo-grid-column>
11420
+ * ...
11421
+ * </kendo-grid>
11510
11422
  * ```
11511
11423
  */
11512
11424
  class ColumnMenuItemContentTemplateDirective {
@@ -13442,7 +13354,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
13442
13354
  [size]="size"
13443
13355
  (click)="clearClick()"
13444
13356
  (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"] }] });
13357
+ `, 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
13358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
13447
13359
  type: Component,
13448
13360
  args: [{
@@ -13839,7 +13751,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
13839
13751
  [value]="currentFilter?.value">
13840
13752
  </kendo-dropdownlist>
13841
13753
  </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"] }] });
13754
+ `, 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
13755
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
13844
13756
  type: Component,
13845
13757
  args: [{
@@ -13946,7 +13858,7 @@ DateFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
13946
13858
  </kendo-datepicker-messages>
13947
13859
  </kendo-datepicker>
13948
13860
  </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"] }] });
13861
+ `, 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
13862
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterCellComponent, decorators: [{
13951
13863
  type: Component,
13952
13864
  args: [{
@@ -14497,7 +14409,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14497
14409
  }] } });
14498
14410
 
14499
14411
  /**
14500
- * Represents the select-all checkbox feature of the Grid ([see example]({% slug selection_grid %}#toc-select-all-feature)).
14412
+ * Represents the select-all checkbox feature of the Grid ([see example](slug:grid_selection_persistence#toc-selecting-all-items)).
14413
+ *
14414
+ * @example
14415
+ * ```html
14416
+ * <input
14417
+ * type="checkbox"
14418
+ * kendoCheckBox
14419
+ * kendoGridSelectAllCheckbox
14420
+ * [state]="selectAllState"
14421
+ * (selectAllChange)="onSelectAllChange($event)"
14422
+ * />
14423
+ * ```
14501
14424
  */
14502
14425
  class SelectAllCheckboxDirective {
14503
14426
  constructor(selectionService, el, renderer, ngZone) {
@@ -16042,53 +15965,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16042
15965
 
16043
15966
  /**
16044
15967
  * 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)
15968
+ * index of the current row as an input parameter. Inside the [`CellTemplateDirective`](slug:api_grid_celltemplatedirective), apply the
15969
+ * `kendoGridSelectionCheckbox` to an `<input type="checkbox"/>` element. When the user clicks the checkbox that is associated
15970
+ * with the directive, a [selectionChange](slug:api_grid_gridcomponent#toc-selectionChange)
16049
15971
  * event is triggered.
16050
15972
  *
16051
15973
  * @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
- *
15974
+ * ```html
15975
+ * <kendo-grid ... >
15976
+ * <kendo-grid-column>
15977
+ * <ng-template kendoGridCellTemplate let-rowIndex="rowIndex">
15978
+ * <input ... [kendoGridSelectionCheckbox]="rowIndex"/>
15979
+ * </ng-template>
15980
+ * </kendo-grid-column>
15981
+ * </kendo-grid>
16092
15982
  * ```
16093
15983
  */
16094
15984
  class SelectionCheckboxDirective {
@@ -16200,12 +16090,19 @@ class CellComponent {
16200
16090
  this.isNew = false;
16201
16091
  this.isLoading = false;
16202
16092
  this.isVirtual = false;
16093
+ this.reorderIcon = reorderIcon;
16203
16094
  this._templateContext = {};
16204
16095
  this._editTemplateContext = {};
16205
16096
  }
16206
16097
  get commandCellClass() {
16207
16098
  return this.isCommand(this.column);
16208
16099
  }
16100
+ get dragHandleCellClass() {
16101
+ return isRowReorderColumn(this.column);
16102
+ }
16103
+ get dragRowHandleLabel() {
16104
+ return isRowReorderColumn(this.column) ? this.localizationService.get('dragRowHandleLabel') : undefined;
16105
+ }
16209
16106
  set rowIndex(index) {
16210
16107
  this._rowIndex = index;
16211
16108
  this.updateCellContext();
@@ -16262,6 +16159,9 @@ class CellComponent {
16262
16159
  get childColumns() {
16263
16160
  return columnsToRender([this.column]);
16264
16161
  }
16162
+ get isRowReorderColumn() {
16163
+ return isRowReorderColumn(this.column) && !this.column.templateRef;
16164
+ }
16265
16165
  get isColumnEditable() {
16266
16166
  if (!this.column || this.isCommand(this.column)) {
16267
16167
  return false;
@@ -16308,7 +16208,7 @@ class CellComponent {
16308
16208
  }
16309
16209
  }
16310
16210
  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: `
16211
+ 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
16212
  <ng-container [ngSwitch]="isEdited">
16313
16213
  <ng-container *ngSwitchCase="false">
16314
16214
  <ng-container *ngIf="!showLoading; else loading">
@@ -16329,6 +16229,12 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
16329
16229
  [attr.id]="selectionCheckboxId"
16330
16230
  [attr.aria-label]="selectionCheckboxLabel" />
16331
16231
  </ng-container>
16232
+ <ng-container *ngIf="isRowReorderColumn && !isNew">
16233
+ <kendo-icon-wrapper
16234
+ name="reorder"
16235
+ [svgIcon]="reorderIcon">
16236
+ </kendo-icon-wrapper>
16237
+ </ng-container>
16332
16238
  </ng-container>
16333
16239
  <ng-template #loading>
16334
16240
  <ng-template
@@ -16378,7 +16284,7 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
16378
16284
  </ng-container>
16379
16285
  </ng-container>
16380
16286
  </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 } });
16287
+ `, 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
16288
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, decorators: [{
16383
16289
  type: Component,
16384
16290
  args: [{
@@ -16404,6 +16310,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16404
16310
  [attr.id]="selectionCheckboxId"
16405
16311
  [attr.aria-label]="selectionCheckboxLabel" />
16406
16312
  </ng-container>
16313
+ <ng-container *ngIf="isRowReorderColumn && !isNew">
16314
+ <kendo-icon-wrapper
16315
+ name="reorder"
16316
+ [svgIcon]="reorderIcon">
16317
+ </kendo-icon-wrapper>
16318
+ </ng-container>
16407
16319
  </ng-container>
16408
16320
  <ng-template #loading>
16409
16321
  <ng-template
@@ -16465,6 +16377,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16465
16377
  }, propDecorators: { commandCellClass: [{
16466
16378
  type: HostBinding,
16467
16379
  args: ['class.k-command-cell']
16380
+ }], dragHandleCellClass: [{
16381
+ type: HostBinding,
16382
+ args: ['class.k-drag-cell']
16383
+ }, {
16384
+ type: HostBinding,
16385
+ args: ['class.k-touch-action-none']
16386
+ }], dragRowHandleLabel: [{
16387
+ type: HostBinding,
16388
+ args: ['attr.aria-label']
16468
16389
  }], column: [{
16469
16390
  type: Input
16470
16391
  }], columnIndex: [{
@@ -18837,7 +18758,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18837
18758
  class GridMessages extends ComponentMessages {
18838
18759
  }
18839
18760
  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 });
18761
+ 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
18762
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMessages, decorators: [{
18842
18763
  type: Directive,
18843
18764
  args: [{
@@ -18994,6 +18915,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18994
18915
  type: Input
18995
18916
  }], groupPanelLabel: [{
18996
18917
  type: Input
18918
+ }], dragRowHandleLabel: [{
18919
+ type: Input
18997
18920
  }] } });
18998
18921
 
18999
18922
  /**
@@ -19074,7 +18997,7 @@ const isInEditedCell = (element, gridElement) => closest(element, matchesClasses
19074
18997
  * ```
19075
18998
  */
19076
18999
  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) {
19000
+ 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
19001
  this.supportService = supportService;
19079
19002
  this.selectionService = selectionService;
19080
19003
  this.cellSelectionService = cellSelectionService;
@@ -19102,11 +19025,7 @@ class GridComponent {
19102
19025
  this.localization = localization;
19103
19026
  this.ctx = ctx;
19104
19027
  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 = [];
19028
+ this.rowReorderService = rowReorderService;
19110
19029
  /**
19111
19030
  * Defines the scroll mode used by the Grid.
19112
19031
  *
@@ -19170,6 +19089,10 @@ class GridComponent {
19170
19089
  * If set to `true`, the grid will render only the columns in the current viewport.
19171
19090
  */
19172
19091
  this.virtualColumns = false;
19092
+ /**
19093
+ * @hidden
19094
+ */
19095
+ this.gridData = () => { return this.flatData; };
19173
19096
  /**
19174
19097
  * Enables the [filtering]({% slug filtering_grid %}) of the Grid columns that have their `field` option set.
19175
19098
  */
@@ -19217,12 +19140,6 @@ class GridComponent {
19217
19140
  * @default false
19218
19141
  */
19219
19142
  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
19143
  /**
19227
19144
  * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_grid %})).
19228
19145
  *
@@ -19260,6 +19177,11 @@ class GridComponent {
19260
19177
  * Emits the [SelectionEvent]({% slug api_grid_selectionevent %}#toc-selectionchange).
19261
19178
  */
19262
19179
  this.selectionChange = new EventEmitter();
19180
+ /**
19181
+ * Fires when the user drops the dragged row and reordering is performed.
19182
+ * Emits the [RowReorderEvent]({% slug api_grid_selectionevent %}#toc-selectionchange).
19183
+ */
19184
+ this.rowReorder = new EventEmitter();
19263
19185
  /**
19264
19186
  * Fires when the data state of the Grid is changed.
19265
19187
  */
@@ -19371,11 +19293,14 @@ class GridComponent {
19371
19293
  this._sort = new Array();
19372
19294
  this._group = new Array();
19373
19295
  this._skip = 0;
19296
+ this._data = [];
19374
19297
  this.cachedWindowWidth = 0;
19375
19298
  this._rowSelected = null;
19376
19299
  this._cellSelected = null;
19300
+ this._rowReorderable = false;
19377
19301
  this._navigable = [];
19378
19302
  this._size = 'medium';
19303
+ this._loading = false;
19379
19304
  this.rtl = false;
19380
19305
  this._rowClass = () => null;
19381
19306
  validatePackage(packageMetadata);
@@ -19415,6 +19340,19 @@ class GridComponent {
19415
19340
  .changes.subscribe(this.reorder.bind(this));
19416
19341
  this.columnRangeChangeSubscription = this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this));
19417
19342
  }
19343
+ /**
19344
+ * Sets the data of the Grid. If an array is provided, the Grid automatically gets the total count
19345
+ * ([more information and example]({% slug binding_grid %})).
19346
+ */
19347
+ set data(value) {
19348
+ this._data = value;
19349
+ }
19350
+ get data() {
19351
+ return this._data;
19352
+ }
19353
+ get hintText() {
19354
+ return this.rowReorderService.getDefaultHintText(this.columnList, this.flatData);
19355
+ }
19418
19356
  /**
19419
19357
  * Defines the number of records to be skipped by the pager.
19420
19358
  * Required by the [paging]({% slug paging_grid %}) functionality.
@@ -19424,7 +19362,7 @@ class GridComponent {
19424
19362
  }
19425
19363
  set skip(value) {
19426
19364
  if (typeof value === 'number' && value >= 0) {
19427
- this._skip = value;
19365
+ this._skip = this.rowReorderService.skip = value;
19428
19366
  }
19429
19367
  }
19430
19368
  /**
@@ -19522,6 +19460,27 @@ class GridComponent {
19522
19460
  get marqueeSelection() {
19523
19461
  return this.selectionService.enableMarquee || this.cellSelectionService.enableMarquee;
19524
19462
  }
19463
+ /**
19464
+ * Enables the [row reordering]({% slug reordering_rows_grid %}) of the Grid.
19465
+ * @default false
19466
+ */
19467
+ set rowReorderable(value) {
19468
+ var _a;
19469
+ this._rowReorderable = value;
19470
+ if (value) {
19471
+ this.rowReorderSubscription = this.rowReorderService.rowReorder.subscribe(args => {
19472
+ this.ngZone.run(() => {
19473
+ this.rowReorder.emit(args);
19474
+ });
19475
+ });
19476
+ }
19477
+ else {
19478
+ (_a = this.rowReorderSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
19479
+ }
19480
+ }
19481
+ get rowReorderable() {
19482
+ return this._rowReorderable;
19483
+ }
19525
19484
  /**
19526
19485
  * If set to `true`, the user can use dedicated shortcuts to interact with the Grid.
19527
19486
  * By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.
@@ -19664,6 +19623,18 @@ class GridComponent {
19664
19623
  get activeRow() {
19665
19624
  return this.navigationService.activeRow;
19666
19625
  }
19626
+ /**
19627
+ * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
19628
+ *
19629
+ * @default false
19630
+ */
19631
+ set loading(value) {
19632
+ this._loading = value;
19633
+ this.rowReorderable && this.notifyReorderContainers();
19634
+ }
19635
+ get loading() {
19636
+ return this._loading;
19637
+ }
19667
19638
  get dir() {
19668
19639
  return this.direction;
19669
19640
  }
@@ -19835,6 +19806,18 @@ class GridComponent {
19835
19806
  }
19836
19807
  return this.pageSize;
19837
19808
  }
19809
+ /**
19810
+ * @hidden
19811
+ */
19812
+ getDefaultSelectors(type) {
19813
+ return this.rowReorderService.defaultSelectors[type];
19814
+ }
19815
+ /**
19816
+ * @hidden
19817
+ */
19818
+ getHintSettings(type) {
19819
+ return this.rowReorderService[type];
19820
+ }
19838
19821
  /**
19839
19822
  * Expands the specified master row ([see example]({% slug hierarchy_grid %})).
19840
19823
  *
@@ -20066,6 +20049,9 @@ class GridComponent {
20066
20049
  if (this.focusElementSubscription) {
20067
20050
  this.focusElementSubscription.unsubscribe();
20068
20051
  }
20052
+ if (this.rowReorderSubscription) {
20053
+ this.rowReorderSubscription.unsubscribe();
20054
+ }
20069
20055
  this.columnRangeChangeSubscription.unsubscribe();
20070
20056
  }
20071
20057
  /**
@@ -20565,6 +20551,12 @@ class GridComponent {
20565
20551
  get isGroupExpanded() {
20566
20552
  return this.groupsService.userCallback;
20567
20553
  }
20554
+ /**
20555
+ * @hidden
20556
+ */
20557
+ handleReorderEvents(ev, evType) {
20558
+ this.rowReorderService[evType](ev);
20559
+ }
20568
20560
  /**
20569
20561
  * @hidden
20570
20562
  */
@@ -20791,6 +20783,11 @@ class GridComponent {
20791
20783
  this.closeCell();
20792
20784
  this.cancelCell();
20793
20785
  this.dataStateChange.emit(x);
20786
+ if (this.rowReorderable) {
20787
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
20788
+ this.notifyReorderContainers();
20789
+ });
20790
+ }
20794
20791
  });
20795
20792
  }
20796
20793
  attachEditHandlers() {
@@ -21073,9 +21070,17 @@ class GridComponent {
21073
21070
  }
21074
21071
  return previousValue.cell !== currentValue.cell;
21075
21072
  }
21073
+ notifyReorderContainers() {
21074
+ var _a, _b;
21075
+ (_a = this.dragTargetContainer) === null || _a === void 0 ? void 0 : _a.notify();
21076
+ (_b = this.dropTargetContainer) === null || _b === void 0 ? void 0 : _b.notify();
21077
+ }
21078
+ get flatData() {
21079
+ return isArray(this.data) ? this.data : this.data.data;
21080
+ }
21076
21081
  }
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: [
21082
+ 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 });
21083
+ 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
21084
  BrowserSupportService,
21080
21085
  LocalizationService,
21081
21086
  ColumnInfoService,
@@ -21116,8 +21121,9 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21116
21121
  ScrollRequestService,
21117
21122
  SortService,
21118
21123
  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: `
21124
+ SizingOptionsService,
21125
+ RowReorderService
21126
+ ], 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
21127
  <ng-container kendoGridLocalizedMessages
21122
21128
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
21123
21129
  groupPanelEmpty="Drag a column header and drop it here to group by that column"
@@ -21343,6 +21349,9 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21343
21349
 
21344
21350
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
21345
21351
  groupPanelLabel="Group panel"
21352
+
21353
+ i18n-dragRowHandleLabel="kendo.grid.dragRowHandleLabel|The label for the Grid drag row handle"
21354
+ dragRowHandleLabel="Drag row"
21346
21355
  >
21347
21356
  </ng-container>
21348
21357
  <kendo-grid-toolbar
@@ -21470,6 +21479,23 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21470
21479
  </div>
21471
21480
  </div>
21472
21481
  <kendo-grid-list
21482
+ kendoDragTargetContainer
21483
+ kendoDropTargetContainer
21484
+ mode="manual"
21485
+ [dragDisabled]="!rowReorderable"
21486
+ [dropDisabled]="!rowReorderable"
21487
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21488
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21489
+ [dragHandle]="getDefaultSelectors('handle')"
21490
+ [hint]="{hintTemplate: defaultHint}"
21491
+ (press)="handleReorderEvents($event, 'press')"
21492
+ (dragStart)="handleReorderEvents($event, 'dragStart')"
21493
+ (drag)="handleReorderEvents($event, 'drag')"
21494
+ (dragEnter)="handleReorderEvents($event, 'dragEnter')"
21495
+ (dragLeave)="handleReorderEvents($event, 'dragLeave')"
21496
+ (dragEnd)="handleReorderEvents($event, 'dragEnd')"
21497
+ (drop)="handleReorderEvents($event, 'drop')"
21498
+ [dragData]="gridData"
21473
21499
  [data]="$any(view)"
21474
21500
  [rowHeight]="rowHeight"
21475
21501
  [detailRowHeight]="detailRowHeight"
@@ -21635,8 +21661,18 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21635
21661
  [navigable]="navigation.toolbarEnabled"
21636
21662
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
21637
21663
  [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 });
21664
+ position="bottom">
21665
+ </kendo-grid-toolbar>
21666
+
21667
+ <ng-template #defaultHint>
21668
+ <kendo-icon-wrapper
21669
+ [name]="getHintSettings('hintIcon')"
21670
+ [svgIcon]="getHintSettings('hintSVGIcon')"
21671
+ innerCssClass="k-drag-status">
21672
+ </kendo-icon-wrapper>
21673
+ {{hintText}}
21674
+ </ng-template>
21675
+ `, 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
21676
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, decorators: [{
21641
21677
  type: Component,
21642
21678
  args: [{
@@ -21683,7 +21719,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21683
21719
  ScrollRequestService,
21684
21720
  SortService,
21685
21721
  ContextService,
21686
- SizingOptionsService
21722
+ SizingOptionsService,
21723
+ RowReorderService
21687
21724
  ],
21688
21725
  selector: 'kendo-grid',
21689
21726
  template: `
@@ -21912,6 +21949,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21912
21949
 
21913
21950
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
21914
21951
  groupPanelLabel="Group panel"
21952
+
21953
+ i18n-dragRowHandleLabel="kendo.grid.dragRowHandleLabel|The label for the Grid drag row handle"
21954
+ dragRowHandleLabel="Drag row"
21915
21955
  >
21916
21956
  </ng-container>
21917
21957
  <kendo-grid-toolbar
@@ -22039,6 +22079,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22039
22079
  </div>
22040
22080
  </div>
22041
22081
  <kendo-grid-list
22082
+ kendoDragTargetContainer
22083
+ kendoDropTargetContainer
22084
+ mode="manual"
22085
+ [dragDisabled]="!rowReorderable"
22086
+ [dropDisabled]="!rowReorderable"
22087
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
22088
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
22089
+ [dragHandle]="getDefaultSelectors('handle')"
22090
+ [hint]="{hintTemplate: defaultHint}"
22091
+ (press)="handleReorderEvents($event, 'press')"
22092
+ (dragStart)="handleReorderEvents($event, 'dragStart')"
22093
+ (drag)="handleReorderEvents($event, 'drag')"
22094
+ (dragEnter)="handleReorderEvents($event, 'dragEnter')"
22095
+ (dragLeave)="handleReorderEvents($event, 'dragLeave')"
22096
+ (dragEnd)="handleReorderEvents($event, 'dragEnd')"
22097
+ (drop)="handleReorderEvents($event, 'drop')"
22098
+ [dragData]="gridData"
22042
22099
  [data]="$any(view)"
22043
22100
  [rowHeight]="rowHeight"
22044
22101
  [detailRowHeight]="detailRowHeight"
@@ -22204,10 +22261,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22204
22261
  [navigable]="navigation.toolbarEnabled"
22205
22262
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
22206
22263
  [attr.aria-controls]="ariaRootId"
22207
- position="bottom"></kendo-grid-toolbar>
22264
+ position="bottom">
22265
+ </kendo-grid-toolbar>
22266
+
22267
+ <ng-template #defaultHint>
22268
+ <kendo-icon-wrapper
22269
+ [name]="getHintSettings('hintIcon')"
22270
+ [svgIcon]="getHintSettings('hintSVGIcon')"
22271
+ innerCssClass="k-drag-status">
22272
+ </kendo-icon-wrapper>
22273
+ {{hintText}}
22274
+ </ng-template>
22208
22275
  `
22209
22276
  }]
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: [{
22277
+ }], 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
22278
  type: Input
22212
22279
  }], pageSize: [{
22213
22280
  type: Input
@@ -22243,6 +22310,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22243
22310
  type: Input
22244
22311
  }], groupable: [{
22245
22312
  type: Input
22313
+ }], rowReorderable: [{
22314
+ type: Input
22246
22315
  }], navigable: [{
22247
22316
  type: Input
22248
22317
  }], navigatable: [{
@@ -22277,6 +22346,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22277
22346
  type: Output
22278
22347
  }], selectionChange: [{
22279
22348
  type: Output
22349
+ }], rowReorder: [{
22350
+ type: Output
22280
22351
  }], dataStateChange: [{
22281
22352
  type: Output
22282
22353
  }], groupExpand: [{
@@ -22376,6 +22447,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22376
22447
  }], ariaRoot: [{
22377
22448
  type: ViewChild,
22378
22449
  args: ['ariaRoot', { static: true }]
22450
+ }], dragTargetContainer: [{
22451
+ type: ViewChild,
22452
+ args: [DragTargetContainerDirective]
22453
+ }], dropTargetContainer: [{
22454
+ type: ViewChild,
22455
+ args: [DropTargetContainerDirective]
22379
22456
  }], isDetailExpanded: [{
22380
22457
  type: Input
22381
22458
  }], isGroupExpanded: [{
@@ -22386,12 +22463,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22386
22463
  * A directive which encapsulates the in-memory handling of data operations such as [paging]({% slug paging_grid %}),
22387
22464
  * [sorting]({% slug sorting_grid %}), and [grouping]({% slug grouping_grid %})
22388
22465
  * ([more information and examples]({% slug local_data_grid %}#toc-using-the-data-binding-directive)).
22466
+ *
22467
+ * @example
22468
+ * ```html
22469
+ * <kendo-grid [kendoGridBinding]="gridData" ...></kendo-grid>
22470
+ * ```
22389
22471
  */
22390
22472
  class DataBindingDirective {
22391
- constructor(grid, changeDetector, localDataChangesService) {
22473
+ constructor(grid, changeDetector, localDataChangesService, rowReorderService) {
22392
22474
  this.grid = grid;
22393
22475
  this.changeDetector = changeDetector;
22394
22476
  this.localDataChangesService = localDataChangesService;
22477
+ this.rowReorderService = rowReorderService;
22395
22478
  this.state = {
22396
22479
  skip: 0
22397
22480
  };
@@ -22402,12 +22485,16 @@ class DataBindingDirective {
22402
22485
  }
22403
22486
  /**
22404
22487
  * Defines the number of records that will be skipped by the pager.
22488
+ * @default 0
22405
22489
  */
22406
22490
  set skip(value) {
22407
22491
  if (!isPresent(value)) {
22408
22492
  value = 0;
22409
22493
  }
22410
22494
  this.grid.skip = this.state.skip = value;
22495
+ if (this.rowReorderService) {
22496
+ this.rowReorderService.skip = value;
22497
+ }
22411
22498
  }
22412
22499
  /**
22413
22500
  * Defines the descriptors by which the data will be sorted.
@@ -22451,6 +22538,11 @@ class DataBindingDirective {
22451
22538
  this.stateChangeSubscription = this.grid
22452
22539
  .dataStateChange
22453
22540
  .subscribe(this.onStateChange.bind(this));
22541
+ if (this.rowReorderService) {
22542
+ this.rowReorderSubscription = this.grid
22543
+ .rowReorder
22544
+ .subscribe(this.onRowReorder.bind(this));
22545
+ }
22454
22546
  }
22455
22547
  /**
22456
22548
  * @hidden
@@ -22462,6 +22554,9 @@ class DataBindingDirective {
22462
22554
  if (this.dataChangedSubscription) {
22463
22555
  this.dataChangedSubscription.unsubscribe();
22464
22556
  }
22557
+ if (this.rowReorderSubscription) {
22558
+ this.rowReorderSubscription.unsubscribe();
22559
+ }
22465
22560
  }
22466
22561
  /**
22467
22562
  * @hidden
@@ -22483,6 +22578,13 @@ class DataBindingDirective {
22483
22578
  this.applyState(state);
22484
22579
  this.rebind();
22485
22580
  }
22581
+ /**
22582
+ * @hidden
22583
+ */
22584
+ onRowReorder(ev) {
22585
+ this.rowReorderService.reorderRows(ev, this.originalData);
22586
+ this.rebind();
22587
+ }
22486
22588
  /**
22487
22589
  * @hidden
22488
22590
  */
@@ -22515,14 +22617,14 @@ class DataBindingDirective {
22515
22617
  this.dataChanged = false;
22516
22618
  }
22517
22619
  }
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 });
22620
+ 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
22621
  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
22622
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, decorators: [{
22521
22623
  type: Directive,
22522
22624
  args: [{
22523
22625
  selector: '[kendoGridBinding]'
22524
22626
  }]
22525
- }], ctorParameters: function () { return [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }]; }, propDecorators: { skip: [{
22627
+ }], ctorParameters: function () { return [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }]; }, propDecorators: { skip: [{
22526
22628
  type: Input
22527
22629
  }], sort: [{
22528
22630
  type: Input
@@ -22539,7 +22641,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22539
22641
 
22540
22642
  /**
22541
22643
  * A directive which stores the row selection state of the Grid in memory
22542
- * ([see example]({% slug selection_grid %}#toc-during-data-operations)).
22644
+ * ([see example]({% slug selection_grid %}#toc-toggling-the-selection-functionality)).
22543
22645
  */
22544
22646
  class SelectionDirective extends Selection {
22545
22647
  constructor(ctx, cd) {
@@ -22572,7 +22674,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22572
22674
  }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }]; } });
22573
22675
 
22574
22676
  /**
22575
- * A directive which controls the expanded state of the master detail rows.
22677
+ * 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
22678
  */
22577
22679
  class ExpandDetailsDirective {
22578
22680
  constructor(grid) {
@@ -22889,7 +22991,7 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
22889
22991
  [value]="currentFilter?.value">
22890
22992
  </kendo-autocomplete>
22891
22993
  </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"] }] });
22994
+ `, 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
22995
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
22894
22996
  type: Component,
22895
22997
  args: [{
@@ -24502,28 +24604,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24502
24604
 
24503
24605
  /**
24504
24606
  * Represents the `cancel` command of the Grid. You can apply this directive to any `button`
24505
- * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
24607
+ * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
24608
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
24506
24609
  * When an associated button with the directive is clicked, the
24507
24610
  * [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
- * ```
24611
+ * is triggered. When the row is not in the edit mode, the button with the `kendoGridCancelCommand` is automatically hidden.
24522
24612
  *
24523
24613
  * You can control the content of the button based on the state of the row.
24524
24614
  *
24525
24615
  * @example
24526
- * ```html-no-run
24616
+ * ```html
24527
24617
  * <kendo-grid>
24528
24618
  * <kendo-grid-command-column title="command">
24529
24619
  * <ng-template kendoGridCellTemplate let-isNew="isNew">
@@ -24613,23 +24703,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24613
24703
 
24614
24704
  /**
24615
24705
  * Represents the `save` command of the Grid. You can apply this directive to any `button`
24616
- * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
24706
+ * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
24707
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
24617
24708
  * When an associated button with the directive is clicked, the
24618
24709
  * [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
- * ```
24710
+ * is triggered. When the row is not in the edit mode, the button with `kendoGridSaveCommand` is automatically hidden.
24633
24711
  *
24634
24712
  * You can control the content of the button based on the state of the row.
24635
24713
  *
@@ -24724,15 +24802,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24724
24802
 
24725
24803
  /**
24726
24804
  * Represents the `remove` command of the Grid. You can apply this directive to any `button` element
24727
- * inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
24805
+ * inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
24806
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
24728
24807
  * 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.
24808
+ * [remove]({% slug api_grid_gridcomponent %}#toc-remove) event
24809
+ * is triggered.
24810
+ * When the row is in the edit mode, the button with the `kendoGridRemoveCommand` is automatically hidden.
24733
24811
  *
24734
24812
  * @example
24735
- * ```html-no-run
24813
+ * ```html
24736
24814
  * <kendo-grid>
24737
24815
  * <kendo-grid-command-column title="command">
24738
24816
  * <ng-template kendoGridCellTemplate>
@@ -24826,7 +24904,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24826
24904
  * ([see example]({% slug basics_editing_grid %})).
24827
24905
  *
24828
24906
  * @example
24829
- * ```html-no-run
24907
+ * ```html
24830
24908
  * <kendo-grid>
24831
24909
  * <ng-template kendoGridToolbarTemplate>
24832
24910
  * <button kendoGridAddCommand>Add new</button>
@@ -24891,6 +24969,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24891
24969
  args: ['class.k-grid-add-command']
24892
24970
  }] } });
24893
24971
 
24972
+ /**
24973
+ * Represents the drag handle for reordering rows in the Grid.
24974
+ */
24975
+ class RowReorderColumnComponent extends ColumnBase {
24976
+ constructor(parent, idService) {
24977
+ super(parent, idService);
24978
+ this.parent = parent;
24979
+ /**
24980
+ * @hidden
24981
+ */
24982
+ this.isRowReorderColumn = true;
24983
+ }
24984
+ }
24985
+ 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 });
24986
+ 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: [
24987
+ {
24988
+ provide: ColumnBase,
24989
+ useExisting: forwardRef(() => RowReorderColumnComponent)
24990
+ }
24991
+ ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
24992
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderColumnComponent, decorators: [{
24993
+ type: Component,
24994
+ args: [{
24995
+ providers: [
24996
+ {
24997
+ provide: ColumnBase,
24998
+ useExisting: forwardRef(() => RowReorderColumnComponent)
24999
+ }
25000
+ ],
25001
+ selector: 'kendo-grid-rowreorder-column',
25002
+ template: ``
25003
+ }]
25004
+ }], ctorParameters: function () {
25005
+ return [{ type: ColumnBase, decorators: [{
25006
+ type: SkipSelf
25007
+ }, {
25008
+ type: Host
25009
+ }, {
25010
+ type: Optional
25011
+ }] }, { type: IdService, decorators: [{
25012
+ type: Optional
25013
+ }] }];
25014
+ }, propDecorators: { dragHandleIcon: [{
25015
+ type: Input
25016
+ }], dragHandleSVGIcon: [{
25017
+ type: Input
25018
+ }] } });
25019
+
24894
25020
  const exported = [
24895
25021
  CommandColumnComponent,
24896
25022
  CheckboxColumnComponent,
@@ -24906,7 +25032,8 @@ const exported = [
24906
25032
  RemoveCommandDirective,
24907
25033
  AddCommandDirective,
24908
25034
  CellLoadingTemplateDirective,
24909
- LoadingTemplateDirective
25035
+ LoadingTemplateDirective,
25036
+ RowReorderColumnComponent
24910
25037
  ];
24911
25038
  const importedModules$1 = [
24912
25039
  CommonModule,
@@ -24936,7 +25063,8 @@ class BodyModule {
24936
25063
  RemoveCommandDirective,
24937
25064
  AddCommandDirective,
24938
25065
  CellLoadingTemplateDirective,
24939
- LoadingTemplateDirective
25066
+ LoadingTemplateDirective,
25067
+ RowReorderColumnComponent
24940
25068
  ];
24941
25069
  }
24942
25070
  }
@@ -24955,7 +25083,8 @@ BodyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
24955
25083
  RemoveCommandDirective,
24956
25084
  AddCommandDirective,
24957
25085
  CellLoadingTemplateDirective,
24958
- LoadingTemplateDirective], imports: [CommonModule,
25086
+ LoadingTemplateDirective,
25087
+ RowReorderColumnComponent], imports: [CommonModule,
24959
25088
  ReactiveFormsModule,
24960
25089
  FormsModule,
24961
25090
  SharedModule,
@@ -24976,7 +25105,8 @@ BodyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
24976
25105
  RemoveCommandDirective,
24977
25106
  AddCommandDirective,
24978
25107
  CellLoadingTemplateDirective,
24979
- LoadingTemplateDirective] });
25108
+ LoadingTemplateDirective,
25109
+ RowReorderColumnComponent] });
24980
25110
  BodyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BodyModule, imports: [[...importedModules$1]] });
24981
25111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BodyModule, decorators: [{
24982
25112
  type: NgModule,
@@ -25226,7 +25356,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25226
25356
 
25227
25357
  /**
25228
25358
  * 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)).
25359
+ * the Template-Driven Angular Forms ([see example]({% slug editing_directives_grid %}#toc-template-editing-directive)).
25230
25360
  */
25231
25361
  class TemplateEditingDirective extends RowEditingDirectiveBase {
25232
25362
  constructor(grid, localDataChangesService) {
@@ -25324,7 +25454,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25324
25454
 
25325
25455
  /**
25326
25456
  * 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)).
25457
+ * editing with Reactive Forms ([see example]({% slug editing_directives_grid %}#toc-in-cell-editing)).
25328
25458
  */
25329
25459
  class InCellEditingDirective extends EditingDirectiveBase {
25330
25460
  constructor(grid, localDataChangesService, cdr) {
@@ -25758,29 +25888,19 @@ const declarations$2 = [
25758
25888
  *
25759
25889
  * @example
25760
25890
  *
25761
- * ```ts-no-run
25762
- * // Import the Grid module
25763
- * import { GridModule } from '@progress/kendo-angular-grid';
25764
- *
25765
- * // The browser platform with a compiler
25766
- * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
25767
- *
25891
+ * ```ts
25768
25892
  * import { NgModule } from '@angular/core';
25769
- *
25770
- * // Import the app component
25893
+ * import { GridModule } from '@progress/kendo-angular-grid';
25894
+ * import { BrowserModule } from "@angular/platform-browser";
25771
25895
  * import { AppComponent } from './app.component';
25772
25896
  *
25773
- * // Define the app module
25774
- * _@NgModule({
25775
- * declarations: [AppComponent], // declare app component
25776
- * imports: [BrowserModule, GridModule], // import Grid module
25897
+ * @NgModule({
25898
+ * declarations: [AppComponent],
25899
+ * imports: [BrowserModule, GridModule],
25777
25900
  * bootstrap: [AppComponent]
25778
25901
  * })
25779
25902
  * export class AppModule {}
25780
25903
  *
25781
- * // Compile and launch the module
25782
- * platformBrowserDynamic().bootstrapModule(AppModule);
25783
- *
25784
25904
  * ```
25785
25905
  */
25786
25906
  class GridModule {
@@ -25812,7 +25932,8 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25812
25932
  RowFilterModule,
25813
25933
  FilterMenuModule,
25814
25934
  ResizeSensorModule,
25815
- ColumnMenuModule], exports: [GridComponent,
25935
+ ColumnMenuModule,
25936
+ DragAndDropModule$1], exports: [GridComponent,
25816
25937
  ToolbarTemplateDirective,
25817
25938
  ToolbarComponent,
25818
25939
  GridSpacerComponent,
@@ -25825,7 +25946,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25825
25946
  InCellEditingDirective,
25826
25947
  ExpandDetailsDirective,
25827
25948
  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] });
25949
+ 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
25950
  GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, imports: [[
25830
25951
  CommonModule,
25831
25952
  GroupModule,
@@ -25837,7 +25958,8 @@ GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13
25837
25958
  RowFilterModule,
25838
25959
  FilterMenuModule,
25839
25960
  ResizeSensorModule,
25840
- ColumnMenuModule
25961
+ ColumnMenuModule,
25962
+ DragAndDropModule$1
25841
25963
  ]] });
25842
25964
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, decorators: [{
25843
25965
  type: NgModule,
@@ -25855,7 +25977,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25855
25977
  RowFilterModule,
25856
25978
  FilterMenuModule,
25857
25979
  ResizeSensorModule,
25858
- ColumnMenuModule
25980
+ ColumnMenuModule,
25981
+ DragAndDropModule$1
25859
25982
  ]
25860
25983
  }]
25861
25984
  }] });
@@ -25874,50 +25997,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25874
25997
 
25875
25998
  /**
25876
25999
  * 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>`.
26000
+ * nest an `<ng-template>` tag with the `kendoGridPDFTemplate` directive inside `<kendo-grid-pdf>` tag.
25878
26001
  *
25879
26002
  * The template context provides the following fields:
25880
26003
  * - `pageNumber`&mdash;Defines PDF page number.
25881
26004
  * - `totalPages`&mdash;Defines the total number of PDF pages.
25882
26005
  *
25883
26006
  * @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
- *
26007
+ * ```html
26008
+ * <kendo-grid [data]="gridData">
26009
+ * ...
26010
+ * <kendo-grid-pdf fileName="Products.pdf" paperSize="A4">
26011
+ * <ng-template kendoGridPDFTemplate let-pageNumber="pageNumber" let-totalPages="totalPages">
26012
+ * Page {{ pageNumber }} of {{ totalPages }}
26013
+ * </ng-template>
26014
+ * </kendo-grid-pdf>
26015
+ * </kendo-grid>
25921
26016
  * ```
25922
26017
  */
25923
26018
  class PDFTemplateDirective extends PDFExportTemplateDirective {
@@ -26425,28 +26520,19 @@ const declarations$1 = [
26425
26520
  *
26426
26521
  * @example
26427
26522
  *
26428
- * ```ts-no-run
26429
- * // Import the Grid and PDF modules
26430
- * import { GridModule, PDFModule } from '@progress/kendo-angular-grid';
26431
- *
26432
- * // The browser platform with a compiler
26433
- * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
26434
- *
26523
+ * ```ts
26435
26524
  * import { NgModule } from '@angular/core';
26436
- *
26437
- * // Import the app component
26525
+ * import { BrowserModule } from "@angular/platform-browser";
26526
+ * import { GridModule, PDFModule } from '@progress/kendo-angular-grid';
26438
26527
  * import { AppComponent } from './app.component';
26439
26528
  *
26440
- * // Define the app module
26441
- * _@NgModule({
26442
- * declarations: [AppComponent], // declare app component
26443
- * imports: [BrowserModule, GridModule, PDFModule], // import Grid and PDF modules
26529
+ * @NgModule({
26530
+ * declarations: [AppComponent],
26531
+ * imports: [BrowserModule, GridModule, PDFModule],
26444
26532
  * bootstrap: [AppComponent]
26445
26533
  * })
26446
- * export class AppModule {}
26447
26534
  *
26448
- * // Compile and launch the module
26449
- * platformBrowserDynamic().bootstrapModule(AppModule);
26535
+ * export class AppModule {}
26450
26536
  *
26451
26537
  * ```
26452
26538
  */
@@ -26625,13 +26711,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26625
26711
  /**
26626
26712
  * Represents the `export-to-Excel` command of the Grid. You can apply this
26627
26713
  * directive to any `button` element inside a
26628
- * [ToolbarTemplate]({% slug api_grid_commandcolumncomponent %}).
26714
+ * [ToolbarTemplate]({% slug api_grid_toolbartemplatedirective %}).
26629
26715
  * When the user clicks a button associated with the directive, the
26630
26716
  * [excelExport]({% slug api_grid_gridcomponent %}#toc-excelexport) event
26631
26717
  * fires ([see example]({% slug excelexport_grid %})).
26632
26718
  *
26633
26719
  * @example
26634
- * ```html-no-run
26720
+ * ```html
26635
26721
  * <kendo-grid>
26636
26722
  * <ng-template kendoGridToolbarTemplate>
26637
26723
  * <button kendoGridExcelCommand>Export to PDF</button>
@@ -26706,29 +26792,19 @@ const declarations = [ExcelComponent, ExcelCommandDirective];
26706
26792
  *
26707
26793
  * @example
26708
26794
  *
26709
- * ```ts-no-run
26710
- * // Import the Grid and Excel modules
26711
- * import { GridModule, ExcelModule } from '@progress/kendo-angular-grid';
26712
- *
26713
- * // The browser platform with a compiler
26714
- * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
26715
- *
26795
+ * ```ts
26716
26796
  * import { NgModule } from '@angular/core';
26717
- *
26718
- * // Import the app component
26797
+ * import { BrowserModule } from "@angular/platform-browser";
26798
+ * import { GridModule, ExcelModule } from '@progress/kendo-angular-grid';
26719
26799
  * import { AppComponent } from './app.component';
26720
26800
  *
26721
- * // Define the app module
26722
26801
  * _@NgModule({
26723
- * declarations: [AppComponent], // declare app component
26724
- * imports: [BrowserModule, GridModule, ExcelModule], // import Grid and Excel modules
26802
+ * declarations: [AppComponent],
26803
+ * imports: [BrowserModule, GridModule, ExcelModule],
26725
26804
  * bootstrap: [AppComponent]
26726
26805
  * })
26727
26806
  * export class AppModule {}
26728
26807
  *
26729
- * // Compile and launch the module
26730
- * platformBrowserDynamic().bootstrapModule(AppModule);
26731
- *
26732
26808
  * ```
26733
26809
  */
26734
26810
  class ExcelModule {
@@ -26749,5 +26825,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26749
26825
  * Generated bundle index. Do not edit.
26750
26826
  */
26751
26827
 
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 };
26828
+ 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
26829