@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 * as i1 from '@progress/kendo-angular-l10n';
11
11
  import { ComponentMessages, LocalizationService, L10N_PREFIX } 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';
@@ -492,47 +494,16 @@ const EMPTY_CELL_CONTEXT = {};
492
494
  * [focus in a navigable Grid]({% slug keyboard_navigation_grid %}).
493
495
  *
494
496
  * @example
495
- * ```ts-preview
496
- * _@Component({
497
- * selector: 'my-app',
498
- * template: `
499
- * <input type="text" placeholder="Tab stop #0" style="margin-bottom: 8px;" />
500
- * <kendo-grid [data]="data" [navigable]="true">
501
- * <kendo-grid-column field="ProductID" title="Product ID" [width]="100">
502
- * </kendo-grid-column>
503
- * <kendo-grid-column field="ProductName" title="Product Name" [width]="150">
504
- * </kendo-grid-column>
505
- * <kendo-grid-column>
506
- * <ng-template kendoGridCellTemplate let-dataItem>
507
- * <!-- The first focusable element will be focused when pressing Enter on the cell -->
508
- * <input type="text" kendoGridFocusable [value]="dataItem.ProductName" style="margin-right: 8px;" />
509
- * <button kendoGridFocusable>Update</button>
510
- * </ng-template>
511
- * </kendo-grid-column>
512
- * <kendo-grid-column [width]="100">
513
- * <ng-template kendoGridCellTemplate>
514
- * <!-- A single focusable element will be focused during navigation -->
515
- * <button kendoGridFocusable>Delete</button>
516
- * </ng-template>
517
- * </kendo-grid-column>
518
- * </kendo-grid>
519
- * <input type="text" placeholder="Tab stop #2" style="margin-top: 8px;" />
520
- * `
521
- * })
522
- *
523
- * class AppComponent {
524
- * public readonly data: any = [{
525
- * "ProductID": 1,
526
- * "ProductName": "Chai",
527
- * "UnitPrice": 18.0000,
528
- * "Discontinued": true
529
- * }, {
530
- * "ProductID": 2,
531
- * "ProductName": "Chang",
532
- * "UnitPrice": 19.0000,
533
- * "Discontinued": false
534
- * }];
535
- * }
497
+ * ```html
498
+ * <kendo-grid [data]="data" [navigable]="true">
499
+ * <kendo-grid-column>
500
+ * <ng-template kendoGridCellTemplate let-dataItem>
501
+ * <!-- The first focusable element will be focused when pressing Enter on the cell -->
502
+ * <input type="text" kendoGridFocusable [value]="dataItem.ProductName" style="margin-right: 8px;" />
503
+ * <button kendoGridFocusable>Update</button>
504
+ * </ng-template>
505
+ * </kendo-grid-column>
506
+ * </kendo-grid>
536
507
  * ```
537
508
  */
538
509
  class FocusableDirective {
@@ -1064,7 +1035,7 @@ class PreventableEvent {
1064
1035
  this.prevented = true;
1065
1036
  }
1066
1037
  /**
1067
- * Returns `true` if the event was prevented
1038
+ * Returns a respective boolean if the event was prevented
1068
1039
  * by any of its subscribers.
1069
1040
  *
1070
1041
  * @returns `true` if the default action was prevented.
@@ -2855,15 +2826,15 @@ const packageMetadata = {
2855
2826
  name: '@progress/kendo-angular-grid',
2856
2827
  productName: 'Kendo UI for Angular',
2857
2828
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
2858
- publishDate: 1680771635,
2859
- version: '12.0.0-develop.1',
2829
+ publishDate: 1681998466,
2830
+ version: '12.0.0-develop.11',
2860
2831
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
2861
2832
  };
2862
2833
 
2863
2834
  /**
2864
- * Represents the column cell template of the Grid ([more information and example]({% slug templates_columns_grid %}#toc-cell-template)).
2865
- * Helps to customize the content of the cells. To define the cell template, nest an `<ng-template>` tag
2866
- * with the `kendoGridCellTemplate` directive inside a `<kendo-grid-column>` tag.
2835
+ * Represents the column cell template of the Grid.
2836
+ * Helps to customize the content of the cells. To define the cell template, nest an `<ng-template>` tag with the
2837
+ * `kendoGridCellTemplate` directive inside a `<kendo-grid-column>` tag [see example](slug:templates_columns_grid#toc-cell-template).
2867
2838
  *
2868
2839
  * The template context is set to the current data item and the following additional fields are passed:
2869
2840
  * - `columnIndex`&mdash;The current column index. Use it as an alias for a template variable by utilizing the `let-columnIndex="columnIndex"` syntax.
@@ -2872,38 +2843,14 @@ const packageMetadata = {
2872
2843
  * - `column`&mdash;The current column instance. Use it as an alias for a template variable by utilizing the `let-column="column"` syntax.
2873
2844
  *
2874
2845
  * @example
2875
- * ```ts-preview
2876
- *
2877
- * _@Component({
2878
- * selector: 'my-app',
2879
- * template: `
2880
- * <kendo-grid [data]="gridData">
2881
- * <kendo-grid-column field="ProductName">
2882
- * <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
2883
- * Data Row #: {{rowIndex}} /
2884
- * <strong>{{dataItem.ProductName}}</strong>
2885
- * ({{dataItem.Discontinued ? "discontinued" : "active"}})
2886
- * </ng-template>
2887
- * </kendo-grid-column>
2888
- * </kendo-grid>
2889
- * `
2890
- * })
2891
- *
2892
- * class AppComponent {
2893
- * public gridData = [{
2894
- * "ProductID": 1,
2895
- * "ProductName": "Chai",
2896
- * "UnitPrice": 18.0000,
2897
- * "Discontinued": false
2898
- * }, {
2899
- * "ProductID": 2,
2900
- * "ProductName": "Chang",
2901
- * "UnitPrice": 19.0000,
2902
- * "Discontinued": true
2903
- * }
2904
- * ];
2905
- * }
2906
- *
2846
+ * ```html
2847
+ * <kendo-grid [data]="gridData" ...>
2848
+ * <kendo-grid-column field="ProductName">
2849
+ * <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex" let-column="column">
2850
+ * Data Row: {{rowIndex}}
2851
+ * </ng-template>
2852
+ * </kendo-grid-column>
2853
+ * </kendo-grid>
2907
2854
  * ```
2908
2855
  */
2909
2856
  class CellTemplateDirective {
@@ -2925,7 +2872,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2925
2872
  /**
2926
2873
  * Represents the group-header cell template of the Grid which helps to customize the content of the group header item.
2927
2874
  * To define the group header template, nest an `<ng-template>` tag with the `kendoGridGroupHeaderTemplate`
2928
- * directive inside `<kendo-grid-column>`.
2875
+ * directive inside `<kendo-grid-column>`. ([See example](slug:grouping_grid_templates#toc-header-template)).
2929
2876
  *
2930
2877
  * The template context is set to the current data item and the following additional fields are passed:
2931
2878
  * - `group`&mdash;The current group item.
@@ -2934,44 +2881,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2934
2881
  * - `aggregates`&mdash;All aggregate values for the current group.
2935
2882
  * - `index`&mdash;The index of the current group.
2936
2883
  * - `expanded`&mdash;A boolean value indicating if the group is currently expanded.
2937
- * ([see example]({% slug groupable_grid_with_aggregates %})).
2938
2884
  *
2939
2885
  * @example
2940
- * ```ts
2941
- * import { process } from '@progress/kendo-data-query';
2942
- *
2943
- * _@Component({
2944
- * selector: 'my-app',
2945
- * template: `
2946
- * <kendo-grid [data]="gridData" [group]="groups">
2947
- * <kendo-grid-column field="ProductName">
2948
- * <ng-template kendoGridGroupHeaderTemplate let-group let-field="field" let-value="value">
2949
- * <strong>{{field}}</strong>: {{value}}
2950
- * </ng-template>
2951
- * </kendo-grid-column>
2952
- * </kendo-grid>
2953
- * `
2954
- * })
2955
- *
2956
- * class AppComponent {
2957
- * public groups = [{ field: "ProductName" }];
2958
- *
2959
- * public gridData = process([{
2960
- * "ProductID": 1,
2961
- * "ProductName": "Chai",
2962
- * "UnitPrice": 18.0000,
2963
- * "Discontinued": false
2964
- * }, {
2965
- * "ProductID": 2,
2966
- * "ProductName": "Chang",
2967
- * "UnitPrice": 19.0000,
2968
- * "Discontinued": true
2969
- * }
2970
- * ], {
2971
- * group: this.groups
2972
- * });
2973
- * }
2974
- *
2886
+ * ```html
2887
+ * <kendo-grid [data]="gridData" [group]="groups">
2888
+ * <kendo-grid-column field="ProductName">
2889
+ * <ng-template kendoGridGroupHeaderTemplate let-group let-field="field" let-value="value">
2890
+ * <strong>{{field}}</strong>: {{value}}
2891
+ * </ng-template>
2892
+ * </kendo-grid-column>
2893
+ * </kendo-grid>
2975
2894
  * ```
2976
2895
  */
2977
2896
  class GroupHeaderTemplateDirective {
@@ -2993,7 +2912,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2993
2912
  /**
2994
2913
  * Represents the group-header column template of the Grid which helps to customize the content of the group headers.
2995
2914
  * To define the group header template, nest an `<ng-template>` tag with the `kendoGridGroupHeaderColumnTemplate`
2996
- * directive inside `<kendo-grid-column>`. ([See example]({% slug groupable_grid_with_aggregates %})).
2915
+ * directive inside `<kendo-grid-column>`. ([See example](slug:grouping_grid_templates#toc-header-column-template)).
2997
2916
  *
2998
2917
  * The template context is set to the current data item and the following additional fields are passed:
2999
2918
  * - `group`&mdash;The current group item.
@@ -3002,7 +2921,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3002
2921
  * - `aggregates`&mdash;All aggregate values for the current group.
3003
2922
  *
3004
2923
  * @example
3005
- * ```ts
2924
+ * ```html
3006
2925
  * <kendo-grid-column field="ProductName" title="Product Name">
3007
2926
  * <ng-template kendoGridGroupHeaderColumnTemplate let-group="group" let-aggregates="aggregates">
3008
2927
  * <span title="Group Header Column Template for ProductName">
@@ -3029,13 +2948,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3029
2948
  }] }]; } });
3030
2949
 
3031
2950
  /**
3032
- * Represents the column edit-cell template of the Grid ([see example]({% slug inline_editing_grid %}#toc-using-reactive-forms)).
2951
+ * Represents the column edit-cell template of the Grid ([see example](slug:custom_reactive_editing_grid#toc-setting-up-custom-inputs)).
3033
2952
  * Helps to customize the content of the edited cells. To define the cell template, nest an `<ng-template>`
3034
2953
  * tag with the `kendoGridEditTemplate` directive inside a `<kendo-grid-column>` tag.
3035
2954
  *
3036
2955
  * The template context is set to the current form group and the following additional fields are passed:
3037
- * - `formGroup`&mdash;The current [FormGroup](link:site.data.urls.angular['formgroupapi']).
3038
- * Represents the default context that will be assigned to any template variable which utilizes the `let-x` syntax&mdash;for example, `let-formGroup`.
2956
+ * - `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`.
3039
2957
  * If you use the Grid inside [Template-Driven Forms](link:site.data.urls.angular['forms']), it will be `undefined`.
3040
2958
  * - `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.
3041
2959
  * - `dataItem`&mdash;The current data item. Use it as an alias for a template variable by utilizing the `let-dataItem="dataItem"` syntax.
@@ -3063,47 +2981,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3063
2981
  * To define the group footer template, nest an `<ng-template>` tag with the `kendoGridGroupFooterTemplate` directive
3064
2982
  * inside `<kendo-grid-column>`.
3065
2983
  *
3066
- * The template context is set to the current aggregates and the following additional fields are passed:
2984
+ * The template context is set to the current data item and the following additional fields are passed:
3067
2985
  * - `column`&mdash;Defines an instance of the `ColumnComponent` option.
3068
2986
  * - `field`&mdash;The current column field name.
3069
2987
  * - `group`&mdash;The current group data item.
3070
2988
  * - `aggregates`&mdash;All aggregate values for the current group.
3071
2989
  *
3072
2990
  * @example
3073
- * ```ts-preview
3074
- * import { process } from '@progress/kendo-data-query';
3075
- *
3076
- * _@Component({
3077
- * selector: 'my-app',
3078
- * template: `
3079
- * <kendo-grid [data]="gridData" [group]="groups">
3080
- * <kendo-grid-column field="ProductName">
3081
- * <ng-template kendoGridGroupFooterTemplate let-aggregates let-field="field">
3082
- * Count: {{aggregates[field].count}}
3083
- * </ng-template>
3084
- * </kendo-grid-column>
3085
- * </kendo-grid>
3086
- * `
3087
- * })
3088
- *
3089
- * class AppComponent {
3090
- * public groups = [{ field: "ProductName", aggregates: [{ field: "ProductName", aggregate: "count" }] }];
3091
- *
3092
- * public gridData = process([{
3093
- * "ProductID": 1,
3094
- * "ProductName": "Chai",
3095
- * "UnitPrice": 18.0000,
3096
- * "Discontinued": false
3097
- * }, {
3098
- * "ProductID": 2,
3099
- * "ProductName": "Chang",
3100
- * "UnitPrice": 19.0000,
3101
- * "Discontinued": true
3102
- * }
3103
- * ], {
3104
- * group: this.groups
3105
- * });
3106
- * }
2991
+ * ```html
2992
+ * <kendo-grid [data]="gridData" [group]="groups">
2993
+ * <kendo-grid-column field="ProductName">
2994
+ * <ng-template kendoGridGroupFooterTemplate let-aggregates let-field="field">
2995
+ * Count: {{aggregates[field].count}}
2996
+ * </ng-template>
2997
+ * </kendo-grid-column>
2998
+ * </kendo-grid>
3107
2999
  * ```
3108
3000
  */
3109
3001
  class GroupFooterTemplateDirective {
@@ -3127,48 +3019,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3127
3019
  * ([more information and example]({% slug templates_columns_grid %}#toc-header-template)).
3128
3020
  * Helps to customize the table header cell for the column.
3129
3021
  * To define a header template, nest an `<ng-template>` tag with the
3130
- * [kendoGridHeaderTemplate]({% slug api_grid_headertemplatedirective %}) directive inside the `<kendo-grid-column>` tag.
3022
+ * `kendoGridHeaderTemplate` directive inside the `<kendo-grid-column>` tag.
3131
3023
  *
3132
3024
  * The template context is set to the current column and then the following additional fields are passed:
3133
3025
  * * `column`&mdash;Defines an instance of the [ColumnComponent]({% slug api_grid_columncomponent %}) option.
3134
3026
  * * `columnIndex`&mdash;Defines the current column index.
3135
3027
  *
3136
3028
  * @example
3137
- * ```ts-preview
3138
- *
3139
- * _@Component({
3140
- * selector: 'my-app',
3141
- * template: `
3142
- * <kendo-grid [data]="gridData">
3143
- * <kendo-grid-column field="ProductName">
3144
- * <ng-template kendoGridHeaderTemplate let-column let-columnIndex="columnIndex">
3145
- * {{column.field}}({{columnIndex}})
3146
- * </ng-template>
3147
- * </kendo-grid-column>
3148
- * <kendo-grid-column field="UnitPrice">
3149
- * <ng-template kendoGridHeaderTemplate let-column let-columnIndex="columnIndex">
3150
- * {{column.field}}({{columnIndex}})
3151
- * </ng-template>
3152
- * </kendo-grid-column>
3153
- * </kendo-grid>
3154
- * `
3155
- * })
3156
- *
3157
- * class AppComponent {
3158
- * public gridData = [{
3159
- * "ProductID": 1,
3160
- * "ProductName": "Chai",
3161
- * "UnitPrice": 18.0000,
3162
- * "Discontinued": false
3163
- * }, {
3164
- * "ProductID": 2,
3165
- * "ProductName": "Chang",
3166
- * "UnitPrice": 19.0000,
3167
- * "Discontinued": true
3168
- * }
3169
- * ];
3170
- * }
3171
- *
3029
+ * ```html
3030
+ * <kendo-grid [data]="gridData">
3031
+ * <kendo-grid-column field="ProductName">
3032
+ * <ng-template kendoGridHeaderTemplate let-column let-columnIndex="columnIndex">
3033
+ * {{column.field}}({{columnIndex}})
3034
+ * </ng-template>
3035
+ * </kendo-grid-column>
3036
+ * </kendo-grid>
3172
3037
  * ```
3173
3038
  */
3174
3039
  class HeaderTemplateDirective {
@@ -3202,41 +3067,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3202
3067
  * refer to the article on [aggregates]({% slug groupable_grid_with_aggregates %}).
3203
3068
  *
3204
3069
  * @example
3205
- * ```ts-preview
3206
- *
3207
- * _@Component({
3208
- * selector: 'my-app',
3209
- * template: `
3210
- * <kendo-grid [data]="gridData" scrollable="none">
3211
- * <kendo-grid-column field="ProductName">
3212
- * <ng-template kendoGridFooterTemplate let-column let-columnIndex="columnIndex">
3213
- * {{column.field}}({{columnIndex}})
3214
- * </ng-template>
3215
- * </kendo-grid-column>
3216
- * <kendo-grid-column field="UnitPrice">
3217
- * <ng-template kendoGridFooterTemplate let-column let-columnIndex="columnIndex">
3218
- * {{column.field}}({{columnIndex}})
3219
- * </ng-template>
3220
- * </kendo-grid-column>
3221
- * </kendo-grid>
3222
- * `
3223
- * })
3224
- *
3225
- * class AppComponent {
3226
- * public gridData = [{
3227
- * "ProductID": 1,
3228
- * "ProductName": "Chai",
3229
- * "UnitPrice": 18.0000,
3230
- * "Discontinued": false
3231
- * }, {
3232
- * "ProductID": 2,
3233
- * "ProductName": "Chang",
3234
- * "UnitPrice": 19.0000,
3235
- * "Discontinued": true
3236
- * }
3237
- * ];
3238
- * }
3239
- *
3070
+ * ```html
3071
+ * <kendo-grid [data]="gridData" scrollable="none">
3072
+ * <kendo-grid-column field="ProductName">
3073
+ * <ng-template kendoGridFooterTemplate let-column let-columnIndex="columnIndex">
3074
+ * {{column.field}}({{columnIndex}})
3075
+ * </ng-template>
3076
+ * </kendo-grid-column>
3077
+ * </kendo-grid>
3240
3078
  * ```
3241
3079
  */
3242
3080
  class FooterTemplateDirective {
@@ -3259,40 +3097,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3259
3097
  * Represents the template for the column menu in the Grid. Provides an option for
3260
3098
  * customizing the content of the column menu for all or for specific columns.
3261
3099
  * To define the content template, nest an `<ng-template>` tag with the
3262
- * `kendoGridColumnMenuTemplate` directive inside the `kendo-grid` or the `<kendo-grid-column>` component.
3100
+ * `kendoGridColumnMenuTemplate` directive inside the `<kendo-grid>` or the `<kendo-grid-column>` component.
3263
3101
  *
3264
3102
  * The template context is passes through the following fields:
3265
3103
  * - `service`&mdash;Represents the [ColumnMenuService]({% slug api_grid_columnmenuservice %}).
3266
3104
  * - `column`&mdash;Represents the Grid column.
3267
3105
  *
3268
3106
  * @example
3269
- * ```ts-preview
3270
- *
3271
- * _@Component({
3272
- * selector: 'my-app',
3273
- * template: `
3274
- * <kendo-grid [kendoGridBinding]="data" [sortable]="true" [columnMenu]="true">
3275
- * <ng-template kendoGridColumnMenuTemplate let-service="service">
3276
- * <kendo-grid-columnmenu-sort [service]="service">
3277
- * </kendo-grid-columnmenu-sort>
3278
- * </ng-template>
3279
- * <kendo-grid-column field="Field1" [width]="100">
3280
- * <ng-template kendoGridColumnMenuTemplate let-service="service">
3281
- * <kendo-grid-columnmenu-lock [service]="service">
3282
- * </kendo-grid-columnmenu-lock>
3283
- * <kendo-grid-columnmenu-sort [service]="service">
3284
- * </kendo-grid-columnmenu-sort>
3285
- * </ng-template>
3286
- * </kendo-grid-column>
3287
- * <kendo-grid-column field="Field2" [width]="100"></kendo-grid-column>
3288
- * </kendo-grid>
3289
- * `
3290
- * })
3291
- *
3292
- * class AppComponent {
3293
- * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }, { Field1: 'Foo1', Field2: 'Bar1' }];
3294
- * }
3295
- *
3107
+ * ```html
3108
+ * <kendo-grid [kendoGridBinding]="data" [sortable]="true" [columnMenu]="true">
3109
+ * <ng-template kendoGridColumnMenuTemplate let-service="service">
3110
+ * <kendo-grid-columnmenu-sort [service]="service"></kendo-grid-columnmenu-sort>
3111
+ * </ng-template>
3112
+ * <kendo-grid-column field="Field1">
3113
+ * <ng-template kendoGridColumnMenuTemplate let-service="service">
3114
+ * <kendo-grid-columnmenu-lock [service]="service"></kendo-grid-columnmenu-lock>
3115
+ * <kendo-grid-columnmenu-sort [service]="service"></kendo-grid-columnmenu-sort>
3116
+ * </ng-template>
3117
+ * </kendo-grid-column>
3118
+ * <kendo-grid-column field="Field2"></kendo-grid-column>
3119
+ * </kendo-grid>
3296
3120
  * ```
3297
3121
  */
3298
3122
  class ColumnMenuTemplateDirective {
@@ -3347,6 +3171,10 @@ const isSpanColumn = column => column.isSpanColumn;
3347
3171
  * @hidden
3348
3172
  */
3349
3173
  const isCheckboxColumn = column => column.isCheckboxColumn;
3174
+ /**
3175
+ * @hidden
3176
+ */
3177
+ const isRowReorderColumn = column => column.isRowReorderColumn;
3350
3178
  const isColumnContainer = column => column.isColumnGroup || isSpanColumn(column);
3351
3179
  /**
3352
3180
  * The base class for the column components of the Grid.
@@ -3362,9 +3190,9 @@ class ColumnBase {
3362
3190
  */
3363
3191
  this.matchesMedia = true;
3364
3192
  /**
3365
- * The column index after reordering.
3193
+ * The column index after reordering. The `orderIndex` is a read-only property. Setting this field does not affect column order.
3366
3194
  *
3367
- * > `orderIndex` is a read-only property. Setting this field does not affect column order.
3195
+ * @default 0
3368
3196
  */
3369
3197
  this.orderIndex = 0;
3370
3198
  /**
@@ -3399,18 +3227,22 @@ class ColumnBase {
3399
3227
  this.sticky = false;
3400
3228
  /**
3401
3229
  * Specifies if the column can be locked or unlocked from the column menu or by reordering the columns.
3230
+ * @default true
3402
3231
  */
3403
3232
  this.lockable = true;
3404
3233
  /**
3405
3234
  * Specifies if the column can be stuck or unstuck from the column menu.
3235
+ * @default true
3406
3236
  */
3407
3237
  this.stickable = true;
3408
3238
  /**
3409
3239
  * Specifies if the column menu will be shown for the column.
3240
+ * @default true
3410
3241
  */
3411
3242
  this.columnMenu = true;
3412
3243
  /**
3413
3244
  * Specifies if the column will be included in the column-chooser list.
3245
+ * @default true
3414
3246
  */
3415
3247
  this.includeInChooser = true;
3416
3248
  /**
@@ -3458,44 +3290,6 @@ class ColumnBase {
3458
3290
  *
3459
3291
  * @default false
3460
3292
  *
3461
- * @example
3462
- * ```ts
3463
- * _@Component({
3464
- * selector: 'my-app',
3465
- * template: `
3466
- * <kendo-grid [data]="gridData" [scrollable]="scrollable" style="height: 200px">
3467
- * <kendo-grid-column field="ProductID" title="Product ID" [width]="120" [locked]="true">
3468
- * </kendo-grid-column>
3469
- * <kendo-grid-column field="ProductName" title="Product Name" [width]="200">
3470
- * </kendo-grid-column>
3471
- * <kendo-grid-column field="UnitPrice" title="Unit Price" [width]="230">
3472
- * </kendo-grid-column>
3473
- * </kendo-grid>
3474
- * `
3475
- * })
3476
- *
3477
- * class AppComponent {
3478
- * public gridData: any[];
3479
- *
3480
- * constructor() {
3481
- * this.gridData = products;
3482
- * }
3483
- * }
3484
- *
3485
- * const products = [{
3486
- * "ProductID": 1,
3487
- * "ProductName": "Chai",
3488
- * "UnitPrice": 18.0000,
3489
- * "Discontinued": true
3490
- * }, {
3491
- * "ProductID": 2,
3492
- * "ProductName": "Chang",
3493
- * "UnitPrice": 19.0000,
3494
- * "Discontinued": false
3495
- * }
3496
- * ];
3497
- *
3498
- * ```
3499
3293
  */
3500
3294
  set locked(value) {
3501
3295
  this._locked = value;
@@ -4355,64 +4149,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4355
4149
  * To define the detail template, nest an `<ng-template>` tag with the `kendoGridDetailTemplate` directive inside a `<kendo-grid>` tag.
4356
4150
  *
4357
4151
  * @example
4358
- * ```ts-preview
4359
- *
4360
- * _@Component({
4361
- * selector: 'my-app',
4362
- * template: `
4363
- * <kendo-grid
4364
- * [data]="data"
4365
- * selectable="true"
4366
- * style="height: 160px"
4367
- * >
4368
- * <kendo-grid-column field="ProductID"></kendo-grid-column>
4369
- * <kendo-grid-column field="ProductName"></kendo-grid-column>
4370
- * <kendo-grid-column field="UnitPrice"></kendo-grid-column>
4371
- * <ng-template kendoGridDetailTemplate let-dataItem>
4372
- * <div *ngIf="dataItem.Category">
4373
- * <header>{{dataItem.Category?.CategoryName}}</header>
4374
- * <span>{{dataItem.Category?.Description}}</span>
4375
- * </div>
4376
- * </ng-template>
4377
- * </kendo-grid>
4378
- * `
4379
- * })
4380
- *
4381
- * class AppComponent {
4382
- * public data = [{
4383
- * "ProductID": 1,
4384
- * "ProductName": "Chai",
4385
- * "UnitPrice": 18.0000,
4386
- * "Discontinued": false,
4387
- * "Category": {
4388
- * "CategoryID": 1,
4389
- * "CategoryName": "Beverages",
4390
- * "Description": "Soft drinks, coffees, teas, beers, and ales"
4391
- * }
4392
- * }, {
4393
- * "ProductID": 2,
4394
- * "ProductName": "Chang",
4395
- * "UnitPrice": 19.0000,
4396
- * "Discontinued": false,
4397
- * "Category": {
4398
- * "CategoryID": 1,
4399
- * "CategoryName": "Beverages",
4400
- * "Description": "Soft drinks, coffees, teas, beers, and ales"
4401
- * }
4402
- * }, {
4403
- * "ProductID": 3,
4404
- * "ProductName": "Aniseed Syrup",
4405
- * "UnitPrice": 10.0000,
4406
- * "Discontinued": false,
4407
- * "Category": {
4408
- * "CategoryID": 2,
4409
- * "CategoryName": "Condiments",
4410
- * "Description": "Sweet and savory sauces, relishes, spreads, and seasonings"
4411
- * }
4412
- * }];
4413
- *
4414
- * }
4415
- *
4152
+ * ```html
4153
+ * <kendo-grid [data]="data" selectable="true" style="height: 160px">
4154
+ * <kendo-grid-column field="ProductName"></kendo-grid-column>
4155
+ * <ng-template kendoGridDetailTemplate let-dataItem>
4156
+ * <div *ngIf="dataItem.Category">
4157
+ * <header>{{dataItem.Category?.CategoryName}}</header>
4158
+ * span>{{dataItem.Category?.Description}}</span>
4159
+ * </div>
4160
+ * </ng-template>
4161
+ * </kendo-grid>
4416
4162
  * ```
4417
4163
  *
4418
4164
  */
@@ -4972,6 +4718,7 @@ class Selection {
4972
4718
  this.cd = cd;
4973
4719
  /**
4974
4720
  * Defines the collection that will store the selected item keys.
4721
+ * @default []
4975
4722
  */
4976
4723
  this.selectedKeys = [];
4977
4724
  /**
@@ -5359,66 +5106,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5359
5106
 
5360
5107
  /**
5361
5108
  * Represents the no-records template of the Grid. Provides an option to customize the
5362
- * appearance of the item that is displayed when no data is present. To define the no-records template,
5363
- * nest an `<ng-template>` tag with the `kendoGridNoRecordsTemplate` directive inside `<kendo-grid>`.
5364
- *
5365
- * > When the locked columns of the Grid are in use, the template is displayed in the non-locked part of the content.
5109
+ * appearance of the item that is displayed when no data is present.
5110
+ * To define the no-records template, nest an `<ng-template>` tag with the `kendoGridNoRecordsTemplate`
5111
+ * directive inside `<kendo-grid>` [see example](slug:norecordtemplate_grid).
5366
5112
  *
5367
5113
  * @example
5368
- * ```ts-preview
5369
- *
5370
- * _@Component({
5371
- * selector: 'my-app',
5372
- * template: `
5373
- * <kendo-grid [data]="data">
5374
- * <kendo-grid-column field="ProductID"></kendo-grid-column>
5375
- * <kendo-grid-column field="ProductName"></kendo-grid-column>
5376
- * <kendo-grid-column field="UnitPrice"></kendo-grid-column>
5377
- * <ng-template kendoGridNoRecordsTemplate>
5378
- * There are not products. <a href="#" (click)="refresh()">Click here to refresh</a>.
5379
- * </ng-template>
5380
- * </kendo-grid>
5381
- * `
5382
- * })
5383
- *
5384
- * class AppComponent {
5385
- * public data = [];
5386
- * public refresh() {
5387
- * this.data = [{
5388
- * "ProductID": 1,
5389
- * "ProductName": "Chai",
5390
- * "UnitPrice": 18.0000,
5391
- * "Discontinued": false,
5392
- * "Category": {
5393
- * "CategoryID": 1,
5394
- * "CategoryName": "Beverages",
5395
- * "Description": "Soft drinks, coffees, teas, beers, and ales"
5396
- * }
5397
- * }, {
5398
- * "ProductID": 2,
5399
- * "ProductName": "Chang",
5400
- * "UnitPrice": 19.0000,
5401
- * "Discontinued": false,
5402
- * "Category": {
5403
- * "CategoryID": 1,
5404
- * "CategoryName": "Beverages",
5405
- * "Description": "Soft drinks, coffees, teas, beers, and ales"
5406
- * }
5407
- * }, {
5408
- * "ProductID": 3,
5409
- * "ProductName": "Aniseed Syrup",
5410
- * "UnitPrice": 10.0000,
5411
- * "Discontinued": false,
5412
- * "Category": {
5413
- * "CategoryID": 2,
5414
- * "CategoryName": "Condiments",
5415
- * "Description": "Sweet and savory sauces, relishes, spreads, and seasonings"
5416
- * }
5417
- * }];
5418
- *
5419
- * }
5420
- * }
5421
- *
5114
+ * ```html
5115
+ * <kendo-grid [data]="data">
5116
+ * <ng-template kendoGridNoRecordsTemplate>
5117
+ * There are not products. <a href="#" (click)="refresh()">Click here to refresh</a>.
5118
+ * </ng-template>
5119
+ * <kendo-grid-column field="ProductID"></kendo-grid-column>
5120
+ * <kendo-grid-column field="ProductName"></kendo-grid-column>
5121
+ * </kendo-grid>
5422
5122
  * ```
5423
5123
  */
5424
5124
  class NoRecordsTemplateDirective {
@@ -5529,7 +5229,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5529
5229
 
5530
5230
  /**
5531
5231
  * Represents the pager template which helps to customize the pager appearance in the Grid. To define a pager
5532
- * template, nest an `<ng-template>` tag with the `kendoPagerTemplate` directive inside `<kendo-grid>`.
5232
+ * template, nest an `<ng-template>` tag with the `kendoPagerTemplate` directive inside `<kendo-grid>` tag
5233
+ * [see example](slug:pager_template_grid).
5533
5234
  *
5534
5235
  * The template context provides the following fields:
5535
5236
  * * `currentPage`&mdash;The index of the displayed page.
@@ -5537,53 +5238,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5537
5238
  * * `skip`&mdash;The current skip value.
5538
5239
  * * `total`&mdash;The total number of records.
5539
5240
  * * `totalPages`&mdash;The total number of available pages.
5540
- * * Needs to be provided as an input to inner pager components used within the template when the Grid is navigable.
5541
5241
  *
5542
5242
  * @example
5543
- * ```ts-preview
5544
- *
5545
- * _@Component({
5546
- * selector: 'my-app',
5547
- * template: `
5548
- * <kendo-grid
5549
- * [kendoGridBinding]="gridData"
5550
- * [pageSize]="1"
5551
- * [pageable]="true"
5552
- * >
5553
- * <kendo-grid-column field="ProductID" title="ID" [width]="40">
5554
- * </kendo-grid-column>
5555
- * <kendo-grid-column field="ProductName" title="Name" [width]="250">
5556
- * </kendo-grid-column>
5557
- * <kendo-grid-column field="UnitPrice" title="Price" [width]="80" format="{0:c}">
5558
- * </kendo-grid-column>
5559
- *
5560
- * <ng-template kendoPagerTemplate let-totalPages="totalPages" let-currentPage="currentPage">
5561
- * <kendo-pager-prev-buttons></kendo-pager-prev-buttons>
5562
- * <kendo-pager-numeric-buttons [buttonCount]="10"></kendo-pager-numeric-buttons>
5563
- * <kendo-pager-next-buttons></kendo-pager-next-buttons>
5564
- * <kendo-pager-info></kendo-pager-info>
5565
- * Current page: {{currentPage}}
5566
- * </ng-template>
5567
- *
5568
- * </kendo-grid>
5569
- * `
5570
- * })
5571
- *
5572
- * class AppComponent {
5573
- * public gridData = [{
5574
- * "ProductID": 1,
5575
- * "ProductName": "Chai",
5576
- * "UnitPrice": 18.0000,
5577
- * "Discontinued": false
5578
- * }, {
5579
- * "ProductID": 2,
5580
- * "ProductName": "Chang",
5581
- * "UnitPrice": 19.0000,
5582
- * "Discontinued": true
5583
- * }
5584
- * ];
5585
- * }
5586
- *
5243
+ * ```html
5244
+ * <kendo-grid ... [pageable]="true">
5245
+ * <ng-template kendoPagerTemplate let-totalPages="totalPages" let-currentPage="currentPage">
5246
+ * <kendo-pager-prev-buttons></kendo-pager-prev-buttons>
5247
+ * <kendo-pager-next-buttons></kendo-pager-next-buttons>
5248
+ * <kendo-pager-info></kendo-pager-info>
5249
+ * Current page: {{currentPage}}
5250
+ * </ng-template>
5251
+ * <kendo-grid-column field="ProductID"></kendo-grid-column>
5252
+ * <kendo-grid-column field="ProductName"></kendo-grid-column>
5253
+ * </kendo-grid>
5587
5254
  * ```
5588
5255
  */
5589
5256
  class PagerTemplateDirective {
@@ -5727,56 +5394,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5727
5394
  * - `position`&mdash;The position at which the toolbar template is rendered. The possible values are "top" and "bottom".
5728
5395
  *
5729
5396
  * @example
5730
- * ```ts-preview
5731
- *
5732
- * _@Component({
5733
- * selector: 'my-app',
5734
- * template: `
5735
- * <div class="example-config">
5736
- * <input type="radio" id="top" name="position" value="top" checked (click)="positionChange($event)"/>
5737
- * <label class="k-radio-label" for="top">Top</label><br/>
5738
- * <input type="radio" id="bottom" name="position" value="bottom" (click)="positionChange($event)"/>
5739
- * <label class="k-radio-label" for="bottom">Bottom</label><br/>
5740
- * <input type="radio" id="both" name="position" value="both" (click)="positionChange($event)"/>
5741
- * <label class="k-radio-label" for="both">Both</label><br/>
5742
- * </div>
5743
- * <kendo-grid [data]="gridData" style="height: 200px">
5744
- * <ng-template kendoGridToolbarTemplate [position]="position" let-position="position">
5745
- * <button (click)="onClick()">Custom action</button>
5746
- * </ng-template>
5747
- * <kendo-grid-column field="ProductName">
5748
- * </kendo-grid-column>
5749
- * <kendo-grid-column field="UnitPrice">
5750
- * </kendo-grid-column>
5751
- * </kendo-grid>
5752
- * `
5753
- * })
5754
- *
5755
- * class AppComponent {
5756
- * public position: 'top' | 'bottom' | 'both' = 'top';
5757
- *
5758
- * public gridData = [{
5759
- * "ProductID": 1,
5760
- * "ProductName": "Chai",
5761
- * "UnitPrice": 18.0000,
5762
- * "Discontinued": false
5763
- * }, {
5764
- * "ProductID": 2,
5765
- * "ProductName": "Chang",
5766
- * "UnitPrice": 19.0000,
5767
- * "Discontinued": true
5768
- * }
5769
- * ];
5770
- *
5771
- * public onClick(): void {
5772
- * console.log("button was clicked");
5773
- * }
5774
- *
5775
- * public positionChange({ target }): void {
5776
- * this.position = target.value;
5777
- * }
5778
- * }
5779
- *
5397
+ * ```html
5398
+ * <kendo-grid [data]="gridData" style="height: 200px">
5399
+ * <ng-template kendoGridToolbarTemplate [position]="position" let-position="position">
5400
+ * <button (click)="onClick()">Custom action</button>
5401
+ * </ng-template>
5402
+ * <kendo-grid-column field="ProductName">
5403
+ * </kendo-grid-column>
5404
+ * </kendo-grid>
5780
5405
  * ```
5781
5406
  */
5782
5407
  class ToolbarTemplateDirective {
@@ -5785,13 +5410,9 @@ class ToolbarTemplateDirective {
5785
5410
  this._position = 'top';
5786
5411
  }
5787
5412
  /**
5788
- * The position of the toolbar ([see example]({% slug toolbartemplate_grid %})).
5413
+ * The position of the toolbar ([see example]({% slug toolbartemplate_grid %}#toc-setting-the-toolbar-position)).
5789
5414
  *
5790
- * The possible values are:
5791
- * - `top`&mdash;Positions the toolbar above the group panel or header.
5792
- * - `bottom`&mdash;Positions the toolbar below the pager.
5793
- * - `both`&mdash;Displays two toolbar instances. Positions the first one above
5794
- * the group panel or header and the second one below the pager.
5415
+ * @default 'top'
5795
5416
  */
5796
5417
  set position(position) {
5797
5418
  this._position = position;
@@ -6075,7 +5696,7 @@ class PopupCloseEvent extends PreventableEvent {
6075
5696
  const DEFAULT_POPUP_CLASS = 'k-grid-filter-popup';
6076
5697
  /**
6077
5698
  * The service that is used for the popups of the filter and column menus
6078
- * ([see example]({% slug filter_menu %}#toc-custom-filter-row-components)#toc-filter-menu-with-popup).
5699
+ * ([see example]({% slug filter_menu %}#toc-filter-menu-with-popup)).
6079
5700
  */
6080
5701
  class SinglePopupService {
6081
5702
  constructor(popupService, renderer, ngZone, scrollSyncService, localization) {
@@ -6192,17 +5813,17 @@ const append = (element) => {
6192
5813
  /**
6193
5814
  * @hidden
6194
5815
  */
6195
- const getDocument = element => element.ownerDocument.documentElement;
5816
+ const getDocument$1 = element => element.ownerDocument.documentElement;
6196
5817
  /**
6197
5818
  * @hidden
6198
5819
  */
6199
- const getWindow = element => element.ownerDocument.defaultView;
5820
+ const getWindow$1 = element => element.ownerDocument.defaultView;
6200
5821
  /**
6201
5822
  * @hidden
6202
5823
  */
6203
5824
  const offset = element => {
6204
- const { clientTop, clientLeft } = getDocument(element);
6205
- const { pageYOffset, pageXOffset } = getWindow(element);
5825
+ const { clientTop, clientLeft } = getDocument$1(element);
5826
+ const { pageYOffset, pageXOffset } = getWindow$1(element);
6206
5827
  const { top, left } = element.getBoundingClientRect();
6207
5828
  return {
6208
5829
  top: top + pageYOffset - clientTop,
@@ -6617,17 +6238,20 @@ class ColumnStickyChangeEvent {
6617
6238
  /**
6618
6239
  * Represents the virtual scrolling cell template of the Grid while loading new data. Provides an option to customize the
6619
6240
  * appearance of the indicator that is displayed while new data is loading. To define the loading cell template,
6620
- * nest an `<ng-template>` tag with the `kendoGridCellLoadingTemplate` directive inside `<kendo-grid>` ([see example]({% slug virtualscrolling_grid %}#toc-custom-loading-skeleton)).
6241
+ * nest an `<ng-template>` tag with the `kendoGridCellLoadingTemplate` directive inside `<kendo-grid>` tag [see example]({% slug virtualscrolling_grid %}#toc-custom-loading-skeleton).
6621
6242
  *
6622
- * The template context is set to the current column, and utilizes the `let-x` syntax&mdash;for example, `let-column`.
6243
+ *
6244
+ * The template context is set to the current column and the following additional field is passed:
6245
+ *
6246
+ * - `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`).
6623
6247
  *
6624
6248
  * @example
6625
- * ```ts-no-run
6626
- * <kendo-grid [data]="data" scrollable="virtual" [rowHeight]="36">
6627
- * <ng-template kendoGridCellLoadingTemplate let-column>
6628
- * ...
6629
- * </ng-template>
6630
- * </kendo-grid>
6249
+ * ```html
6250
+ * <kendo-grid ... scrollable="virtual" [rowHeight]="36" [height]="450">
6251
+ * <ng-template kendoGridCellLoadingTemplate let-column>
6252
+ * ...
6253
+ * </ng-template>
6254
+ * </kendo-grid>
6631
6255
  * ```
6632
6256
  */
6633
6257
  class CellLoadingTemplateDirective {
@@ -6649,7 +6273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6649
6273
  /**
6650
6274
  * Creates a loading template that overrides the default loading indicator of the Grid Component.
6651
6275
  * To define a loading template, nest an `<ng-template>` tag with the `kendoGridLoadingTemplate` directive inside the `<kendo-grid>` tag
6652
- * [see example]({% slug binding_grid %}#toc-loading-template).
6276
+ * ([see example](slug:loadingtemplate_grid)).
6653
6277
  */
6654
6278
  class LoadingTemplateDirective {
6655
6279
  constructor(templateRef) {
@@ -6665,6 +6289,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6665
6289
  }]
6666
6290
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
6667
6291
 
6292
+ /**
6293
+ * @hidden
6294
+ */
6668
6295
  class SizingOptionsService {
6669
6296
  constructor() {
6670
6297
  this.changes = new Subject();
@@ -6676,6 +6303,314 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6676
6303
  type: Injectable
6677
6304
  }] });
6678
6305
 
6306
+ /**
6307
+ * @hidden
6308
+ */
6309
+ const isNextSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.nextElementSibling;
6310
+ /**
6311
+ * @hidden
6312
+ */
6313
+ const isPreviousSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.previousElementSibling;
6314
+ /**
6315
+ * @hidden
6316
+ */
6317
+ const isDifferentParent = (dropTarget, dragTarget) => dropTarget?.parentElement !== dragTarget?.parentElement;
6318
+ /**
6319
+ * @hidden
6320
+ */
6321
+ function getOffset(element) {
6322
+ const { clientTop, clientLeft } = getDocument(element);
6323
+ const { pageYOffset, pageXOffset } = getWindow(element);
6324
+ const { top, left } = element.getBoundingClientRect();
6325
+ return {
6326
+ top: top + pageYOffset - clientTop,
6327
+ left: left + pageXOffset - clientLeft
6328
+ };
6329
+ }
6330
+ ;
6331
+ /**
6332
+ * @hidden
6333
+ */
6334
+ const hintIcons = {
6335
+ forbidden: 'cancel',
6336
+ before: 'insert-middle',
6337
+ after: 'insert-middle'
6338
+ };
6339
+ /**
6340
+ * @hidden
6341
+ */
6342
+ const hintSVGIcons = {
6343
+ forbidden: cancelIcon,
6344
+ before: insertMiddleIcon,
6345
+ after: insertMiddleIcon
6346
+ };
6347
+ /**
6348
+ * @hidden
6349
+ */
6350
+ const dropPosition = {
6351
+ forbidden: 'forbidden',
6352
+ before: 'before',
6353
+ after: 'after'
6354
+ };
6355
+ /**
6356
+ * @hidden
6357
+ */
6358
+ const hintStyles = {
6359
+ zIndex: '20000',
6360
+ display: 'flex',
6361
+ position: 'fixed'
6362
+ };
6363
+ /**
6364
+ * @hidden
6365
+ */
6366
+ const hintClasses = ['k-drag-clue', 'k-reorder-clue'];
6367
+ /**
6368
+ * @hidden
6369
+ */
6370
+ const dropIndicatorStyles = {
6371
+ zIndex: '19000',
6372
+ position: 'absolute'
6373
+ };
6374
+ /**
6375
+ * @hidden
6376
+ */
6377
+ const dropIndicatorClasses = ['k-drop-hint', 'k-drop-hint-h'];
6378
+ /**
6379
+ * @hidden
6380
+ */
6381
+ const defaultSelectors = {
6382
+ handle: '.k-table-td.k-drag-cell',
6383
+ dragTarget: '.k-master-row',
6384
+ dropTarget: '.k-master-row'
6385
+ };
6386
+ const getDocument = element => element?.ownerDocument.documentElement;
6387
+ const getWindow = element => element?.ownerDocument.defaultView;
6388
+
6389
+ /**
6390
+ * @hidden
6391
+ */
6392
+ class RowReorderService {
6393
+ constructor(renderer) {
6394
+ this.renderer = renderer;
6395
+ this.hintElement = null;
6396
+ this.defaultSelectors = defaultSelectors;
6397
+ this.hintText = '';
6398
+ this.lastDropPosition = dropPosition.forbidden;
6399
+ this.dragTarget = null;
6400
+ this.dropTarget = null;
6401
+ this.rowReorder = new EventEmitter();
6402
+ }
6403
+ press(ev) {
6404
+ this.dragTarget = ev.dragTarget;
6405
+ }
6406
+ dragStart() {
6407
+ this.createDropIndicator();
6408
+ }
6409
+ drag(ev) {
6410
+ if (isPresent$1(ev.hintElement) && !isPresent$1(this.hintElement)) {
6411
+ this.hintElement = ev.hintElement;
6412
+ this.decorateHint();
6413
+ }
6414
+ const position = {
6415
+ x: ev.dragEvent.clientX,
6416
+ y: ev.dragEvent.clientY
6417
+ };
6418
+ if (isPresent$1(this.hintElement)) {
6419
+ this.renderer.setStyle(this.hintElement, 'left', `${position.x}px`);
6420
+ this.renderer.setStyle(this.hintElement, 'top', `${position.y}px`);
6421
+ }
6422
+ this.positionDropIndicator(ev);
6423
+ }
6424
+ dragEnter(ev) {
6425
+ this.dropTarget = ev.dropTarget;
6426
+ }
6427
+ dragLeave() {
6428
+ this.dropTarget = null;
6429
+ this.hide();
6430
+ }
6431
+ dragEnd() {
6432
+ this.destroyDropIndicator();
6433
+ this.dragTarget = null;
6434
+ this.dropTarget = null;
6435
+ this.hintElement = null;
6436
+ }
6437
+ drop(ev) {
6438
+ this.destroyDropIndicator();
6439
+ const rowReorderArgs = this.rowReorderArgs(this.dragTarget, this.dropTarget, ev.dragData);
6440
+ this.rowReorder.emit(rowReorderArgs);
6441
+ }
6442
+ reorderRows(ev, collection) {
6443
+ if (this.lastDropPosition === dropPosition.forbidden) {
6444
+ return;
6445
+ }
6446
+ ;
6447
+ const { draggedRows, dropTargetRow } = ev;
6448
+ const draggedDataItem = draggedRows[0].dataItem;
6449
+ const dropTargetDataItem = dropTargetRow.dataItem;
6450
+ const draggedItemIndex = collection.indexOf(draggedDataItem);
6451
+ const dropTargetIndex = collection.indexOf(dropTargetDataItem);
6452
+ const idxToAdd = this.calculateIndexToAdd(draggedItemIndex, dropTargetIndex);
6453
+ collection.splice(draggedItemIndex, 1);
6454
+ collection.splice(idxToAdd, 0, draggedDataItem);
6455
+ }
6456
+ get hintIcon() {
6457
+ return hintIcons[this.lastDropPosition];
6458
+ }
6459
+ get hintSVGIcon() {
6460
+ return hintSVGIcons[this.lastDropPosition];
6461
+ }
6462
+ getDefaultHintText(columns, data) {
6463
+ let hintText = '';
6464
+ const columnFieldsArray = columns
6465
+ .toArray()
6466
+ .filter(column => !column.hidden && isPresent$1(column.field))
6467
+ .map(column => column.field);
6468
+ const draggedDragRow = this.getDragRowPerElement(this.dragTarget, data);
6469
+ const draggedDataItem = draggedDragRow?.dataItem;
6470
+ isPresent$1(draggedDataItem) && columnFieldsArray.forEach(column => {
6471
+ const columnValue = draggedDataItem[column];
6472
+ isPresent$1(columnValue) ? hintText += `${columnValue} ` : null;
6473
+ });
6474
+ return hintText.trim();
6475
+ }
6476
+ rowReorderArgs(dragRow, dropRow, data) {
6477
+ const dragRowData = this.getDragRowPerElement(dragRow, data);
6478
+ const dropRowData = this.getDragRowPerElement(dropRow, data);
6479
+ return {
6480
+ draggedRows: [dragRowData],
6481
+ dropTargetRow: dropRowData,
6482
+ dropPosition: this.lastDropPosition
6483
+ };
6484
+ }
6485
+ getDragRowPerElement(row, data) {
6486
+ let rowIndex = row?.getAttribute('data-kendo-grid-item-index');
6487
+ rowIndex = rowIndex ? parseInt(rowIndex, 10) : -1;
6488
+ const skip = this.skip || 0;
6489
+ const dataItem = rowIndex === -1 ? null : data[rowIndex - skip];
6490
+ return {
6491
+ dataItem,
6492
+ rowIndex,
6493
+ element: row
6494
+ };
6495
+ }
6496
+ createDropIndicator() {
6497
+ if (!isDocumentAvailable()) {
6498
+ return;
6499
+ }
6500
+ this.dropIndicator = document.createElement('div');
6501
+ this.decorateDropIndicator();
6502
+ this.dropIndicator.innerHTML = `
6503
+ <div class="k-drop-hint-start"></div>
6504
+ <div class="k-drop-hint-line"></div>
6505
+ `;
6506
+ document.body.appendChild(this.dropIndicator);
6507
+ this.hide();
6508
+ }
6509
+ destroyDropIndicator() {
6510
+ if (!isDocumentAvailable()) {
6511
+ return;
6512
+ }
6513
+ ;
6514
+ if (this.dropIndicator && this.dropIndicator.parentElement) {
6515
+ document.body.removeChild(this.dropIndicator);
6516
+ this.dropIndicator = null;
6517
+ }
6518
+ }
6519
+ decorateHint() {
6520
+ hintClasses.forEach(className => this.renderer.addClass(this.hintElement, className));
6521
+ Object.keys(hintStyles)
6522
+ .forEach(style => this.renderer.setStyle(this.hintElement, style, hintStyles[style]));
6523
+ }
6524
+ positionDropIndicator(ev) {
6525
+ this.lastDropPosition = this.getDropPosition(ev.dragEvent);
6526
+ this.updateDropIndicatorPosition();
6527
+ }
6528
+ calculateIndexToAdd(dragIndex, dropIndex) {
6529
+ if (dragIndex > dropIndex && this.lastDropPosition === dropPosition.after) {
6530
+ return dropIndex + 1;
6531
+ }
6532
+ else if (dragIndex > dropIndex && this.lastDropPosition === dropPosition.before) {
6533
+ return dropIndex;
6534
+ }
6535
+ else if (dragIndex < dropIndex && this.lastDropPosition === dropPosition.after) {
6536
+ return dropIndex;
6537
+ }
6538
+ else if (dragIndex < dropIndex && this.lastDropPosition === dropPosition.before) {
6539
+ return dropIndex - 1;
6540
+ }
6541
+ }
6542
+ decorateDropIndicator() {
6543
+ dropIndicatorClasses.forEach(className => this.renderer.addClass(this.dropIndicator, className));
6544
+ Object.keys(dropIndicatorStyles)
6545
+ .forEach(style => this.renderer.setStyle(this.dropIndicator, style, dropIndicatorStyles[style]));
6546
+ }
6547
+ ;
6548
+ getDropPosition(e) {
6549
+ if (this.dropTarget === this.dragTarget || !isPresent$1(this.dropTarget)) {
6550
+ return dropPosition.forbidden;
6551
+ }
6552
+ ;
6553
+ if (isDifferentParent(this.dropTarget, this.dragTarget)) {
6554
+ return dropPosition.forbidden;
6555
+ }
6556
+ ;
6557
+ const itemViewPortCoords = this.dropTarget.getBoundingClientRect();
6558
+ const itemDivisionsCount = 2;
6559
+ const itemDivisionHeight = itemViewPortCoords.height / itemDivisionsCount;
6560
+ const pointerPosition = e.clientY;
6561
+ const itemTop = itemViewPortCoords.top;
6562
+ let currentDropPosition = null;
6563
+ if (pointerPosition < itemTop + itemDivisionHeight) {
6564
+ currentDropPosition = dropPosition.before;
6565
+ }
6566
+ else if (pointerPosition >= itemTop + itemViewPortCoords.height - itemDivisionHeight) {
6567
+ currentDropPosition = dropPosition.after;
6568
+ }
6569
+ if (currentDropPosition === dropPosition.before && isNextSibling(this.dropTarget, this.dragTarget)) {
6570
+ currentDropPosition = dropPosition.forbidden;
6571
+ }
6572
+ else if (currentDropPosition === dropPosition.after && isPreviousSibling(this.dropTarget, this.dragTarget)) {
6573
+ currentDropPosition = dropPosition.forbidden;
6574
+ }
6575
+ return currentDropPosition;
6576
+ }
6577
+ updateDropIndicatorPosition() {
6578
+ if (this.shouldHideDropIndicator() || !this.dropTarget) {
6579
+ this.hide();
6580
+ return;
6581
+ }
6582
+ this.show();
6583
+ const destinationItemOffset = getOffset(this.dropTarget);
6584
+ let indicatorOffsetTop = destinationItemOffset.top;
6585
+ const indicatorOffsetLeft = destinationItemOffset.left + this.dropIndicator.offsetWidth / 2;
6586
+ if (this.lastDropPosition === dropPosition.after) {
6587
+ indicatorOffsetTop += this.dropTarget.offsetHeight;
6588
+ }
6589
+ this.renderer.setStyle(this.dropIndicator, 'left', `${indicatorOffsetLeft}px`);
6590
+ this.renderer.setStyle(this.dropIndicator, 'top', `${indicatorOffsetTop}px`);
6591
+ }
6592
+ shouldHideDropIndicator() {
6593
+ return this.lastDropPosition === dropPosition.forbidden;
6594
+ }
6595
+ hide() {
6596
+ if (isPresent$1(this.dropIndicator)) {
6597
+ this.dropIndicator.style.display = 'none';
6598
+ }
6599
+ }
6600
+ show() {
6601
+ if (isPresent$1(this.dropIndicator)) {
6602
+ this.dropIndicator.style.display = '';
6603
+ }
6604
+ }
6605
+ }
6606
+ RowReorderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
6607
+ RowReorderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService });
6608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService, decorators: [{
6609
+ type: Injectable
6610
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { rowReorder: [{
6611
+ type: Output
6612
+ }] } });
6613
+
6679
6614
  /**
6680
6615
  * @hidden
6681
6616
  */
@@ -7877,7 +7812,7 @@ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
7877
7812
  [value]="pageSize"
7878
7813
  (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
7879
7814
  <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
7880
- `, 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 });
7815
+ `, 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 });
7881
7816
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
7882
7817
  type: Component,
7883
7818
  args: [{
@@ -9574,7 +9509,7 @@ FilterMenuInputWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
9574
9509
  (keydown.shift.tab)="onShiftTab($event)">
9575
9510
  </kendo-dropdownlist>
9576
9511
  <ng-content></ng-content>
9577
- `, 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"] }] });
9512
+ `, 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"] }] });
9578
9513
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuInputWrapperComponent, decorators: [{
9579
9514
  type: Component,
9580
9515
  args: [{
@@ -9757,7 +9692,7 @@ StringFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
9757
9692
  [filter]="filter"
9758
9693
  [menuTabbingService]="menuTabbingService">
9759
9694
  </kendo-grid-string-filter-menu-input>
9760
- `, 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"] }] });
9695
+ `, 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"] }] });
9761
9696
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuComponent, decorators: [{
9762
9697
  type: Component,
9763
9698
  args: [{
@@ -10160,7 +10095,7 @@ NumericFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
10160
10095
  [menuTabbingService]="menuTabbingService"
10161
10096
  >
10162
10097
  </kendo-grid-numeric-filter-menu-input>
10163
- `, 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"] }] });
10098
+ `, 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"] }] });
10164
10099
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuComponent, decorators: [{
10165
10100
  type: Component,
10166
10101
  args: [{
@@ -10425,7 +10360,7 @@ DateFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
10425
10360
  </kendo-datepicker-messages>
10426
10361
  </kendo-datepicker>
10427
10362
  </kendo-grid-filter-menu-input-wrapper>
10428
- `, 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"] }] });
10363
+ `, 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"] }] });
10429
10364
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuInputComponent, decorators: [{
10430
10365
  type: Component,
10431
10366
  args: [{
@@ -10611,7 +10546,7 @@ DateFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
10611
10546
  [menuTabbingService]="menuTabbingService"
10612
10547
  >
10613
10548
  </kendo-grid-date-filter-menu-input>
10614
- `, 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"] }] });
10549
+ `, 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"] }] });
10615
10550
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
10616
10551
  type: Component,
10617
10552
  args: [{
@@ -11329,27 +11264,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11329
11264
  * [ColumnMenuTemplate]({% slug api_grid_columnmenutemplatedirective %}) directive.
11330
11265
  *
11331
11266
  * @example
11332
- * ```ts-preview
11333
- *
11334
- * _@Component({
11335
- * selector: 'my-app',
11336
- * template: `
11337
- * <kendo-grid [data]="data" [columnMenu]="true">
11338
- * <ng-template kendoGridColumnMenuTemplate let-service="service">
11339
- * <span class="k-icon k-i-x" (click)="service.close()"
11340
- * style="position: absolute; right: 5px; top: 5px;cursor: pointer;"></span>
11341
- * <kendo-grid-columnmenu-sort [service]="service">
11342
- * </kendo-grid-columnmenu-sort>
11343
- * </ng-template>
11344
- * <kendo-grid-column field="Field1"></kendo-grid-column>
11345
- * <kendo-grid-column field="Field2"></kendo-grid-column>
11346
- * </kendo-grid>
11347
- * `
11348
- * })
11349
- *
11350
- * class AppComponent {
11351
- * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];
11352
- * }
11267
+ * ```html
11268
+ * <kendo-grid [data]="data" [columnMenu]="true">
11269
+ * <ng-template kendoGridColumnMenuTemplate let-service="service">
11270
+ * <span class="k-icon k-i-x" (click)="service.close()" </span>
11271
+ * <kendo-grid-columnmenu-sort [service]="service">
11272
+ * </kendo-grid-columnmenu-sort>
11273
+ * </ng-template>
11274
+ * <kendo-grid-column field="Field1"></kendo-grid-column>
11275
+ * </kendo-grid>
11353
11276
  *
11354
11277
  * ```
11355
11278
  */
@@ -11417,39 +11340,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11417
11340
  }], hostClass: [{
11418
11341
  type: HostBinding,
11419
11342
  args: ['class.k-columnmenu-item-wrapper']
11420
- }] } });
11421
-
11422
- /**
11423
- * Represents the content template of the
11424
- * [kendo-grid-columnmenu-item]({% slug api_grid_columnmenuitemcomponent %}) component.
11425
- * Provides an option for specifying the content of a column item.
11426
- * To define the content template, nest an `<ng-template>` tag with the
11427
- * `kendoGridColumnMenuItemContentTemplate` directive inside a `<kendo-grid-columnmenu-item>`.
11428
- *
11429
- * @example
11430
- * ```ts-preview
11431
- *
11432
- * _@Component({
11433
- * selector: 'my-app',
11434
- * template: `
11435
- * <kendo-grid [data]="data" [columnMenu]="true">
11436
- * <ng-template kendoGridColumnMenuTemplate>
11437
- * <kendo-grid-columnmenu-item text="Item Text" [expanded]="true">
11438
- * <ng-template kendoGridColumnMenuItemContentTemplate>
11439
- * Item Content
11440
- * </ng-template>
11441
- * </kendo-grid-columnmenu-item>
11442
- * </ng-template>
11443
- * <kendo-grid-column field="Field1"></kendo-grid-column>
11444
- * <kendo-grid-column field="Field2"></kendo-grid-column>
11445
- * </kendo-grid>
11446
- * `
11447
- * })
11448
- *
11449
- * class AppComponent {
11450
- * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];
11451
- * }
11343
+ }] } });
11344
+
11345
+ /**
11346
+ * Represents the content template of the
11347
+ * [`ColumnMenuItemComponent`]({% slug api_grid_columnmenuitemcomponent %}) component.
11348
+ * Provides an option for specifying the content of a column item.
11349
+ * To define the content template, nest an `<ng-template>` tag with the
11350
+ * `kendoGridColumnMenuItemContentTemplate` directive inside a `<kendo-grid-columnmenu-item>`.
11452
11351
  *
11352
+ * @example
11353
+ * ```html
11354
+ * <kendo-grid [data]="data" [columnMenu]="true" ...>
11355
+ * <ng-template kendoGridColumnMenuTemplate>
11356
+ * <kendo-grid-columnmenu-item text="Item Text" [expanded]="true">
11357
+ * <ng-template kendoGridColumnMenuItemContentTemplate>
11358
+ * Item Content
11359
+ * </ng-template>
11360
+ * </kendo-grid-columnmenu-item>
11361
+ * </ng-template>
11362
+ * <kendo-grid-column field="Field1"></kendo-grid-column>
11363
+ * ...
11364
+ * </kendo-grid>
11453
11365
  * ```
11454
11366
  */
11455
11367
  class ColumnMenuItemContentTemplateDirective {
@@ -13383,7 +13295,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
13383
13295
  [size]="size"
13384
13296
  (click)="clearClick()"
13385
13297
  (keydown)="clearKeydown($event)"></button>
13386
- `, 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"] }] });
13298
+ `, 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"] }] });
13387
13299
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
13388
13300
  type: Component,
13389
13301
  args: [{
@@ -13780,7 +13692,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
13780
13692
  [value]="currentFilter?.value">
13781
13693
  </kendo-dropdownlist>
13782
13694
  </kendo-grid-filter-wrapper-cell>
13783
- `, 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"] }] });
13695
+ `, 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"] }] });
13784
13696
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
13785
13697
  type: Component,
13786
13698
  args: [{
@@ -13887,7 +13799,7 @@ DateFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
13887
13799
  </kendo-datepicker-messages>
13888
13800
  </kendo-datepicker>
13889
13801
  </kendo-grid-filter-wrapper-cell>
13890
- `, 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"] }] });
13802
+ `, 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"] }] });
13891
13803
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterCellComponent, decorators: [{
13892
13804
  type: Component,
13893
13805
  args: [{
@@ -14436,7 +14348,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14436
14348
  }] } });
14437
14349
 
14438
14350
  /**
14439
- * Represents the select-all checkbox feature of the Grid ([see example]({% slug selection_grid %}#toc-select-all-feature)).
14351
+ * Represents the select-all checkbox feature of the Grid ([see example](slug:grid_selection_persistence#toc-selecting-all-items)).
14352
+ *
14353
+ * @example
14354
+ * ```html
14355
+ * <input
14356
+ * type="checkbox"
14357
+ * kendoCheckBox
14358
+ * kendoGridSelectAllCheckbox
14359
+ * [state]="selectAllState"
14360
+ * (selectAllChange)="onSelectAllChange($event)"
14361
+ * />
14362
+ * ```
14440
14363
  */
14441
14364
  class SelectAllCheckboxDirective {
14442
14365
  constructor(selectionService, el, renderer, ngZone) {
@@ -15977,53 +15900,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15977
15900
 
15978
15901
  /**
15979
15902
  * Represents the row-selection checkbox of the Grid. The directive expects the
15980
- * index of the current row as an input parameter. Inside the
15981
- * [CheckboxColumnComponent]({% slug api_grid_checkboxcolumncomponent %}), apply the
15982
- * directive to an `input` element. When the user clicks the checkbox that is associated
15983
- * with the directive, a [selectionChange]({% slug api_grid_gridcomponent %}#toc-selectionChange)
15903
+ * index of the current row as an input parameter. Inside the [`CellTemplateDirective`](slug:api_grid_celltemplatedirective), apply the
15904
+ * `kendoGridSelectionCheckbox` to an `<input type="checkbox"/>` element. When the user clicks the checkbox that is associated
15905
+ * with the directive, a [selectionChange](slug:api_grid_gridcomponent#toc-selectionChange)
15984
15906
  * event is triggered.
15985
15907
  *
15986
15908
  * @example
15987
- * ```ts-preview
15988
- *
15989
- * _@Component({
15990
- * selector: 'my-app',
15991
- * template: `
15992
- * <kendo-grid [data]="gridData" [selectable]="{enabled: true, checkboxOnly: true}">
15993
- * <kendo-grid-checkbox-column title="Custom checkbox">
15994
- * <ng-template kendoGridCellTemplate let-idx="rowIndex">
15995
- * Select row <input [kendoGridSelectionCheckbox]="idx" />
15996
- * </ng-template>
15997
- * </kendo-grid-checkbox-column>
15998
- * <kendo-grid-column field="ProductID" title="Product ID" [width]="120">
15999
- * </kendo-grid-column>
16000
- * <kendo-grid-column field="ProductName" title="Product Name">
16001
- * </kendo-grid-column>
16002
- * </kendo-grid>
16003
- * `
16004
- * })
16005
- *
16006
- * class AppComponent {
16007
- * public gridData: any[];
16008
- *
16009
- * constructor() {
16010
- * this.gridData = products;
16011
- * }
16012
- * }
16013
- *
16014
- * const products = [{
16015
- * "ProductID": 1,
16016
- * "ProductName": "Chai",
16017
- * "UnitPrice": 18.0000,
16018
- * "Discontinued": true
16019
- * }, {
16020
- * "ProductID": 2,
16021
- * "ProductName": "Chang",
16022
- * "UnitPrice": 19.0000,
16023
- * "Discontinued": false
16024
- * }
16025
- * ];
16026
- *
15909
+ * ```html
15910
+ * <kendo-grid ... >
15911
+ * <kendo-grid-column>
15912
+ * <ng-template kendoGridCellTemplate let-rowIndex="rowIndex">
15913
+ * <input ... [kendoGridSelectionCheckbox]="rowIndex"/>
15914
+ * </ng-template>
15915
+ * </kendo-grid-column>
15916
+ * </kendo-grid>
16027
15917
  * ```
16028
15918
  */
16029
15919
  class SelectionCheckboxDirective {
@@ -16135,12 +16025,19 @@ class CellComponent {
16135
16025
  this.isNew = false;
16136
16026
  this.isLoading = false;
16137
16027
  this.isVirtual = false;
16028
+ this.reorderIcon = reorderIcon;
16138
16029
  this._templateContext = {};
16139
16030
  this._editTemplateContext = {};
16140
16031
  }
16141
16032
  get commandCellClass() {
16142
16033
  return this.isCommand(this.column);
16143
16034
  }
16035
+ get dragHandleCellClass() {
16036
+ return isRowReorderColumn(this.column);
16037
+ }
16038
+ get dragRowHandleLabel() {
16039
+ return isRowReorderColumn(this.column) ? this.localizationService.get('dragRowHandleLabel') : undefined;
16040
+ }
16144
16041
  set rowIndex(index) {
16145
16042
  this._rowIndex = index;
16146
16043
  this.updateCellContext();
@@ -16197,6 +16094,9 @@ class CellComponent {
16197
16094
  get childColumns() {
16198
16095
  return columnsToRender([this.column]);
16199
16096
  }
16097
+ get isRowReorderColumn() {
16098
+ return isRowReorderColumn(this.column) && !this.column.templateRef;
16099
+ }
16200
16100
  get isColumnEditable() {
16201
16101
  if (!this.column || this.isCommand(this.column)) {
16202
16102
  return false;
@@ -16243,7 +16143,7 @@ class CellComponent {
16243
16143
  }
16244
16144
  }
16245
16145
  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 });
16246
- 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: `
16146
+ 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: `
16247
16147
  <ng-container [ngSwitch]="isEdited">
16248
16148
  <ng-container *ngSwitchCase="false">
16249
16149
  <ng-container *ngIf="!showLoading; else loading">
@@ -16264,6 +16164,12 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
16264
16164
  [attr.id]="selectionCheckboxId"
16265
16165
  [attr.aria-label]="selectionCheckboxLabel" />
16266
16166
  </ng-container>
16167
+ <ng-container *ngIf="isRowReorderColumn && !isNew">
16168
+ <kendo-icon-wrapper
16169
+ name="reorder"
16170
+ [svgIcon]="reorderIcon">
16171
+ </kendo-icon-wrapper>
16172
+ </ng-container>
16267
16173
  </ng-container>
16268
16174
  <ng-template #loading>
16269
16175
  <ng-template
@@ -16313,7 +16219,7 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
16313
16219
  </ng-container>
16314
16220
  </ng-container>
16315
16221
  </ng-container>
16316
- `, 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 } });
16222
+ `, 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 } });
16317
16223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, decorators: [{
16318
16224
  type: Component,
16319
16225
  args: [{
@@ -16339,6 +16245,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16339
16245
  [attr.id]="selectionCheckboxId"
16340
16246
  [attr.aria-label]="selectionCheckboxLabel" />
16341
16247
  </ng-container>
16248
+ <ng-container *ngIf="isRowReorderColumn && !isNew">
16249
+ <kendo-icon-wrapper
16250
+ name="reorder"
16251
+ [svgIcon]="reorderIcon">
16252
+ </kendo-icon-wrapper>
16253
+ </ng-container>
16342
16254
  </ng-container>
16343
16255
  <ng-template #loading>
16344
16256
  <ng-template
@@ -16398,6 +16310,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16398
16310
  }] }]; }, propDecorators: { commandCellClass: [{
16399
16311
  type: HostBinding,
16400
16312
  args: ['class.k-command-cell']
16313
+ }], dragHandleCellClass: [{
16314
+ type: HostBinding,
16315
+ args: ['class.k-drag-cell']
16316
+ }, {
16317
+ type: HostBinding,
16318
+ args: ['class.k-touch-action-none']
16319
+ }], dragRowHandleLabel: [{
16320
+ type: HostBinding,
16321
+ args: ['attr.aria-label']
16401
16322
  }], column: [{
16402
16323
  type: Input
16403
16324
  }], columnIndex: [{
@@ -18768,7 +18689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18768
18689
  class GridMessages extends ComponentMessages {
18769
18690
  }
18770
18691
  GridMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
18771
- 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 });
18692
+ 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 });
18772
18693
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMessages, decorators: [{
18773
18694
  type: Directive,
18774
18695
  args: [{
@@ -18925,6 +18846,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18925
18846
  type: Input
18926
18847
  }], groupPanelLabel: [{
18927
18848
  type: Input
18849
+ }], dragRowHandleLabel: [{
18850
+ type: Input
18928
18851
  }] } });
18929
18852
 
18930
18853
  /**
@@ -19005,7 +18928,7 @@ const isInEditedCell = (element, gridElement) => closest(element, matchesClasses
19005
18928
  * ```
19006
18929
  */
19007
18930
  class GridComponent {
19008
- 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) {
18931
+ 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) {
19009
18932
  this.supportService = supportService;
19010
18933
  this.selectionService = selectionService;
19011
18934
  this.cellSelectionService = cellSelectionService;
@@ -19033,11 +18956,7 @@ class GridComponent {
19033
18956
  this.localization = localization;
19034
18957
  this.ctx = ctx;
19035
18958
  this.sizingService = sizingService;
19036
- /**
19037
- * Sets the data of the Grid. If an array is provided, the Grid automatically gets the total count
19038
- * ([more information and example]({% slug binding_grid %})).
19039
- */
19040
- this.data = [];
18959
+ this.rowReorderService = rowReorderService;
19041
18960
  /**
19042
18961
  * Defines the scroll mode used by the Grid.
19043
18962
  *
@@ -19101,6 +19020,10 @@ class GridComponent {
19101
19020
  * If set to `true`, the grid will render only the columns in the current viewport.
19102
19021
  */
19103
19022
  this.virtualColumns = false;
19023
+ /**
19024
+ * @hidden
19025
+ */
19026
+ this.gridData = () => { return this.flatData; };
19104
19027
  /**
19105
19028
  * Enables the [filtering]({% slug filtering_grid %}) of the Grid columns that have their `field` option set.
19106
19029
  */
@@ -19148,12 +19071,6 @@ class GridComponent {
19148
19071
  * @default false
19149
19072
  */
19150
19073
  this.reorderable = false;
19151
- /**
19152
- * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
19153
- *
19154
- * @default false
19155
- */
19156
- this.loading = false;
19157
19074
  /**
19158
19075
  * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_grid %})).
19159
19076
  *
@@ -19191,6 +19108,11 @@ class GridComponent {
19191
19108
  * Emits the [SelectionEvent]({% slug api_grid_selectionevent %}#toc-selectionchange).
19192
19109
  */
19193
19110
  this.selectionChange = new EventEmitter();
19111
+ /**
19112
+ * Fires when the user drops the dragged row and reordering is performed.
19113
+ * Emits the [RowReorderEvent]({% slug api_grid_selectionevent %}#toc-selectionchange).
19114
+ */
19115
+ this.rowReorder = new EventEmitter();
19194
19116
  /**
19195
19117
  * Fires when the data state of the Grid is changed.
19196
19118
  */
@@ -19302,11 +19224,14 @@ class GridComponent {
19302
19224
  this._sort = new Array();
19303
19225
  this._group = new Array();
19304
19226
  this._skip = 0;
19227
+ this._data = [];
19305
19228
  this.cachedWindowWidth = 0;
19306
19229
  this._rowSelected = null;
19307
19230
  this._cellSelected = null;
19231
+ this._rowReorderable = false;
19308
19232
  this._navigable = [];
19309
19233
  this._size = 'medium';
19234
+ this._loading = false;
19310
19235
  this.rtl = false;
19311
19236
  this._rowClass = () => null;
19312
19237
  validatePackage(packageMetadata);
@@ -19346,6 +19271,19 @@ class GridComponent {
19346
19271
  .changes.subscribe(this.reorder.bind(this));
19347
19272
  this.columnRangeChangeSubscription = this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this));
19348
19273
  }
19274
+ /**
19275
+ * Sets the data of the Grid. If an array is provided, the Grid automatically gets the total count
19276
+ * ([more information and example]({% slug binding_grid %})).
19277
+ */
19278
+ set data(value) {
19279
+ this._data = value;
19280
+ }
19281
+ get data() {
19282
+ return this._data;
19283
+ }
19284
+ get hintText() {
19285
+ return this.rowReorderService.getDefaultHintText(this.columnList, this.flatData);
19286
+ }
19349
19287
  /**
19350
19288
  * Defines the number of records to be skipped by the pager.
19351
19289
  * Required by the [paging]({% slug paging_grid %}) functionality.
@@ -19355,7 +19293,7 @@ class GridComponent {
19355
19293
  }
19356
19294
  set skip(value) {
19357
19295
  if (typeof value === 'number' && value >= 0) {
19358
- this._skip = value;
19296
+ this._skip = this.rowReorderService.skip = value;
19359
19297
  }
19360
19298
  }
19361
19299
  /**
@@ -19453,6 +19391,26 @@ class GridComponent {
19453
19391
  get marqueeSelection() {
19454
19392
  return this.selectionService.enableMarquee || this.cellSelectionService.enableMarquee;
19455
19393
  }
19394
+ /**
19395
+ * Enables the [row reordering]({% slug reordering_rows_grid %}) of the Grid.
19396
+ * @default false
19397
+ */
19398
+ set rowReorderable(value) {
19399
+ this._rowReorderable = value;
19400
+ if (value) {
19401
+ this.rowReorderSubscription = this.rowReorderService.rowReorder.subscribe(args => {
19402
+ this.ngZone.run(() => {
19403
+ this.rowReorder.emit(args);
19404
+ });
19405
+ });
19406
+ }
19407
+ else {
19408
+ this.rowReorderSubscription?.unsubscribe();
19409
+ }
19410
+ }
19411
+ get rowReorderable() {
19412
+ return this._rowReorderable;
19413
+ }
19456
19414
  /**
19457
19415
  * If set to `true`, the user can use dedicated shortcuts to interact with the Grid.
19458
19416
  * By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.
@@ -19595,6 +19553,18 @@ class GridComponent {
19595
19553
  get activeRow() {
19596
19554
  return this.navigationService.activeRow;
19597
19555
  }
19556
+ /**
19557
+ * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
19558
+ *
19559
+ * @default false
19560
+ */
19561
+ set loading(value) {
19562
+ this._loading = value;
19563
+ this.rowReorderable && this.notifyReorderContainers();
19564
+ }
19565
+ get loading() {
19566
+ return this._loading;
19567
+ }
19598
19568
  get dir() {
19599
19569
  return this.direction;
19600
19570
  }
@@ -19766,6 +19736,18 @@ class GridComponent {
19766
19736
  }
19767
19737
  return this.pageSize;
19768
19738
  }
19739
+ /**
19740
+ * @hidden
19741
+ */
19742
+ getDefaultSelectors(type) {
19743
+ return this.rowReorderService.defaultSelectors[type];
19744
+ }
19745
+ /**
19746
+ * @hidden
19747
+ */
19748
+ getHintSettings(type) {
19749
+ return this.rowReorderService[type];
19750
+ }
19769
19751
  /**
19770
19752
  * Expands the specified master row ([see example]({% slug hierarchy_grid %})).
19771
19753
  *
@@ -19997,6 +19979,9 @@ class GridComponent {
19997
19979
  if (this.focusElementSubscription) {
19998
19980
  this.focusElementSubscription.unsubscribe();
19999
19981
  }
19982
+ if (this.rowReorderSubscription) {
19983
+ this.rowReorderSubscription.unsubscribe();
19984
+ }
20000
19985
  this.columnRangeChangeSubscription.unsubscribe();
20001
19986
  }
20002
19987
  /**
@@ -20495,6 +20480,12 @@ class GridComponent {
20495
20480
  get isGroupExpanded() {
20496
20481
  return this.groupsService.userCallback;
20497
20482
  }
20483
+ /**
20484
+ * @hidden
20485
+ */
20486
+ handleReorderEvents(ev, evType) {
20487
+ this.rowReorderService[evType](ev);
20488
+ }
20498
20489
  /**
20499
20490
  * @hidden
20500
20491
  */
@@ -20721,6 +20712,11 @@ class GridComponent {
20721
20712
  this.closeCell();
20722
20713
  this.cancelCell();
20723
20714
  this.dataStateChange.emit(x);
20715
+ if (this.rowReorderable) {
20716
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
20717
+ this.notifyReorderContainers();
20718
+ });
20719
+ }
20724
20720
  });
20725
20721
  }
20726
20722
  attachEditHandlers() {
@@ -21003,9 +20999,16 @@ class GridComponent {
21003
20999
  }
21004
21000
  return previousValue.cell !== currentValue.cell;
21005
21001
  }
21002
+ notifyReorderContainers() {
21003
+ this.dragTargetContainer?.notify();
21004
+ this.dropTargetContainer?.notify();
21005
+ }
21006
+ get flatData() {
21007
+ return isArray(this.data) ? this.data : this.data.data;
21008
+ }
21006
21009
  }
21007
- 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 });
21008
- 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: [
21010
+ 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 });
21011
+ 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: [
21009
21012
  BrowserSupportService,
21010
21013
  LocalizationService,
21011
21014
  ColumnInfoService,
@@ -21046,8 +21049,9 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21046
21049
  ScrollRequestService,
21047
21050
  SortService,
21048
21051
  ContextService,
21049
- SizingOptionsService
21050
- ], 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: `
21052
+ SizingOptionsService,
21053
+ RowReorderService
21054
+ ], 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: `
21051
21055
  <ng-container kendoGridLocalizedMessages
21052
21056
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
21053
21057
  groupPanelEmpty="Drag a column header and drop it here to group by that column"
@@ -21273,6 +21277,9 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21273
21277
 
21274
21278
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
21275
21279
  groupPanelLabel="Group panel"
21280
+
21281
+ i18n-dragRowHandleLabel="kendo.grid.dragRowHandleLabel|The label for the Grid drag row handle"
21282
+ dragRowHandleLabel="Drag row"
21276
21283
  >
21277
21284
  </ng-container>
21278
21285
  <kendo-grid-toolbar
@@ -21400,6 +21407,23 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21400
21407
  </div>
21401
21408
  </div>
21402
21409
  <kendo-grid-list
21410
+ kendoDragTargetContainer
21411
+ kendoDropTargetContainer
21412
+ mode="manual"
21413
+ [dragDisabled]="!rowReorderable"
21414
+ [dropDisabled]="!rowReorderable"
21415
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21416
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21417
+ [dragHandle]="getDefaultSelectors('handle')"
21418
+ [hint]="{hintTemplate: defaultHint}"
21419
+ (press)="handleReorderEvents($event, 'press')"
21420
+ (dragStart)="handleReorderEvents($event, 'dragStart')"
21421
+ (drag)="handleReorderEvents($event, 'drag')"
21422
+ (dragEnter)="handleReorderEvents($event, 'dragEnter')"
21423
+ (dragLeave)="handleReorderEvents($event, 'dragLeave')"
21424
+ (dragEnd)="handleReorderEvents($event, 'dragEnd')"
21425
+ (drop)="handleReorderEvents($event, 'drop')"
21426
+ [dragData]="gridData"
21403
21427
  [data]="$any(view)"
21404
21428
  [rowHeight]="rowHeight"
21405
21429
  [detailRowHeight]="detailRowHeight"
@@ -21565,8 +21589,18 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21565
21589
  [navigable]="navigation.toolbarEnabled"
21566
21590
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
21567
21591
  [attr.aria-controls]="ariaRootId"
21568
- position="bottom"></kendo-grid-toolbar>
21569
- `, 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 });
21592
+ position="bottom">
21593
+ </kendo-grid-toolbar>
21594
+
21595
+ <ng-template #defaultHint>
21596
+ <kendo-icon-wrapper
21597
+ [name]="getHintSettings('hintIcon')"
21598
+ [svgIcon]="getHintSettings('hintSVGIcon')"
21599
+ innerCssClass="k-drag-status">
21600
+ </kendo-icon-wrapper>
21601
+ {{hintText}}
21602
+ </ng-template>
21603
+ `, 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 });
21570
21604
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, decorators: [{
21571
21605
  type: Component,
21572
21606
  args: [{
@@ -21613,7 +21647,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21613
21647
  ScrollRequestService,
21614
21648
  SortService,
21615
21649
  ContextService,
21616
- SizingOptionsService
21650
+ SizingOptionsService,
21651
+ RowReorderService
21617
21652
  ],
21618
21653
  selector: 'kendo-grid',
21619
21654
  template: `
@@ -21842,6 +21877,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21842
21877
 
21843
21878
  i18n-groupPanelLabel="kendo.grid.groupPanelLabel|The label for the Grid group panel toolbar"
21844
21879
  groupPanelLabel="Group panel"
21880
+
21881
+ i18n-dragRowHandleLabel="kendo.grid.dragRowHandleLabel|The label for the Grid drag row handle"
21882
+ dragRowHandleLabel="Drag row"
21845
21883
  >
21846
21884
  </ng-container>
21847
21885
  <kendo-grid-toolbar
@@ -21969,6 +22007,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21969
22007
  </div>
21970
22008
  </div>
21971
22009
  <kendo-grid-list
22010
+ kendoDragTargetContainer
22011
+ kendoDropTargetContainer
22012
+ mode="manual"
22013
+ [dragDisabled]="!rowReorderable"
22014
+ [dropDisabled]="!rowReorderable"
22015
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
22016
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
22017
+ [dragHandle]="getDefaultSelectors('handle')"
22018
+ [hint]="{hintTemplate: defaultHint}"
22019
+ (press)="handleReorderEvents($event, 'press')"
22020
+ (dragStart)="handleReorderEvents($event, 'dragStart')"
22021
+ (drag)="handleReorderEvents($event, 'drag')"
22022
+ (dragEnter)="handleReorderEvents($event, 'dragEnter')"
22023
+ (dragLeave)="handleReorderEvents($event, 'dragLeave')"
22024
+ (dragEnd)="handleReorderEvents($event, 'dragEnd')"
22025
+ (drop)="handleReorderEvents($event, 'drop')"
22026
+ [dragData]="gridData"
21972
22027
  [data]="$any(view)"
21973
22028
  [rowHeight]="rowHeight"
21974
22029
  [detailRowHeight]="detailRowHeight"
@@ -22134,10 +22189,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22134
22189
  [navigable]="navigation.toolbarEnabled"
22135
22190
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
22136
22191
  [attr.aria-controls]="ariaRootId"
22137
- position="bottom"></kendo-grid-toolbar>
22192
+ position="bottom">
22193
+ </kendo-grid-toolbar>
22194
+
22195
+ <ng-template #defaultHint>
22196
+ <kendo-icon-wrapper
22197
+ [name]="getHintSettings('hintIcon')"
22198
+ [svgIcon]="getHintSettings('hintSVGIcon')"
22199
+ innerCssClass="k-drag-status">
22200
+ </kendo-icon-wrapper>
22201
+ {{hintText}}
22202
+ </ng-template>
22138
22203
  `
22139
22204
  }]
22140
- }], 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: [{
22205
+ }], 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: [{
22141
22206
  type: Input
22142
22207
  }], pageSize: [{
22143
22208
  type: Input
@@ -22173,6 +22238,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22173
22238
  type: Input
22174
22239
  }], groupable: [{
22175
22240
  type: Input
22241
+ }], rowReorderable: [{
22242
+ type: Input
22176
22243
  }], navigable: [{
22177
22244
  type: Input
22178
22245
  }], navigatable: [{
@@ -22207,6 +22274,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22207
22274
  type: Output
22208
22275
  }], selectionChange: [{
22209
22276
  type: Output
22277
+ }], rowReorder: [{
22278
+ type: Output
22210
22279
  }], dataStateChange: [{
22211
22280
  type: Output
22212
22281
  }], groupExpand: [{
@@ -22306,6 +22375,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22306
22375
  }], ariaRoot: [{
22307
22376
  type: ViewChild,
22308
22377
  args: ['ariaRoot', { static: true }]
22378
+ }], dragTargetContainer: [{
22379
+ type: ViewChild,
22380
+ args: [DragTargetContainerDirective]
22381
+ }], dropTargetContainer: [{
22382
+ type: ViewChild,
22383
+ args: [DropTargetContainerDirective]
22309
22384
  }], isDetailExpanded: [{
22310
22385
  type: Input
22311
22386
  }], isGroupExpanded: [{
@@ -22316,12 +22391,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22316
22391
  * A directive which encapsulates the in-memory handling of data operations such as [paging]({% slug paging_grid %}),
22317
22392
  * [sorting]({% slug sorting_grid %}), and [grouping]({% slug grouping_grid %})
22318
22393
  * ([more information and examples]({% slug local_data_grid %}#toc-using-the-data-binding-directive)).
22394
+ *
22395
+ * @example
22396
+ * ```html
22397
+ * <kendo-grid [kendoGridBinding]="gridData" ...></kendo-grid>
22398
+ * ```
22319
22399
  */
22320
22400
  class DataBindingDirective {
22321
- constructor(grid, changeDetector, localDataChangesService) {
22401
+ constructor(grid, changeDetector, localDataChangesService, rowReorderService) {
22322
22402
  this.grid = grid;
22323
22403
  this.changeDetector = changeDetector;
22324
22404
  this.localDataChangesService = localDataChangesService;
22405
+ this.rowReorderService = rowReorderService;
22325
22406
  this.state = {
22326
22407
  skip: 0
22327
22408
  };
@@ -22332,12 +22413,16 @@ class DataBindingDirective {
22332
22413
  }
22333
22414
  /**
22334
22415
  * Defines the number of records that will be skipped by the pager.
22416
+ * @default 0
22335
22417
  */
22336
22418
  set skip(value) {
22337
22419
  if (!isPresent(value)) {
22338
22420
  value = 0;
22339
22421
  }
22340
22422
  this.grid.skip = this.state.skip = value;
22423
+ if (this.rowReorderService) {
22424
+ this.rowReorderService.skip = value;
22425
+ }
22341
22426
  }
22342
22427
  /**
22343
22428
  * Defines the descriptors by which the data will be sorted.
@@ -22381,6 +22466,11 @@ class DataBindingDirective {
22381
22466
  this.stateChangeSubscription = this.grid
22382
22467
  .dataStateChange
22383
22468
  .subscribe(this.onStateChange.bind(this));
22469
+ if (this.rowReorderService) {
22470
+ this.rowReorderSubscription = this.grid
22471
+ .rowReorder
22472
+ .subscribe(this.onRowReorder.bind(this));
22473
+ }
22384
22474
  }
22385
22475
  /**
22386
22476
  * @hidden
@@ -22392,6 +22482,9 @@ class DataBindingDirective {
22392
22482
  if (this.dataChangedSubscription) {
22393
22483
  this.dataChangedSubscription.unsubscribe();
22394
22484
  }
22485
+ if (this.rowReorderSubscription) {
22486
+ this.rowReorderSubscription.unsubscribe();
22487
+ }
22395
22488
  }
22396
22489
  /**
22397
22490
  * @hidden
@@ -22413,6 +22506,13 @@ class DataBindingDirective {
22413
22506
  this.applyState(state);
22414
22507
  this.rebind();
22415
22508
  }
22509
+ /**
22510
+ * @hidden
22511
+ */
22512
+ onRowReorder(ev) {
22513
+ this.rowReorderService.reorderRows(ev, this.originalData);
22514
+ this.rebind();
22515
+ }
22416
22516
  /**
22417
22517
  * @hidden
22418
22518
  */
@@ -22445,14 +22545,14 @@ class DataBindingDirective {
22445
22545
  this.dataChanged = false;
22446
22546
  }
22447
22547
  }
22448
- 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 });
22548
+ 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 });
22449
22549
  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 });
22450
22550
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, decorators: [{
22451
22551
  type: Directive,
22452
22552
  args: [{
22453
22553
  selector: '[kendoGridBinding]'
22454
22554
  }]
22455
- }], ctorParameters: function () { return [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }]; }, propDecorators: { skip: [{
22555
+ }], ctorParameters: function () { return [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }]; }, propDecorators: { skip: [{
22456
22556
  type: Input
22457
22557
  }], sort: [{
22458
22558
  type: Input
@@ -22469,7 +22569,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22469
22569
 
22470
22570
  /**
22471
22571
  * A directive which stores the row selection state of the Grid in memory
22472
- * ([see example]({% slug selection_grid %}#toc-during-data-operations)).
22572
+ * ([see example]({% slug selection_grid %}#toc-toggling-the-selection-functionality)).
22473
22573
  */
22474
22574
  class SelectionDirective extends Selection {
22475
22575
  constructor(ctx, cd) {
@@ -22502,7 +22602,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22502
22602
  }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }]; } });
22503
22603
 
22504
22604
  /**
22505
- * A directive which controls the expanded state of the master detail rows.
22605
+ * A directive which controls the expanded state of the master detail rows. ([see example](slug:master_detail_expanded_state_grid#toc-built-in-directive))
22506
22606
  */
22507
22607
  class ExpandDetailsDirective {
22508
22608
  constructor(grid) {
@@ -22819,7 +22919,7 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
22819
22919
  [value]="currentFilter?.value">
22820
22920
  </kendo-autocomplete>
22821
22921
  </kendo-grid-filter-wrapper-cell>
22822
- `, 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"] }] });
22922
+ `, 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"] }] });
22823
22923
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
22824
22924
  type: Component,
22825
22925
  args: [{
@@ -24428,28 +24528,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24428
24528
 
24429
24529
  /**
24430
24530
  * Represents the `cancel` command of the Grid. You can apply this directive to any `button`
24431
- * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
24531
+ * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
24532
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
24432
24533
  * When an associated button with the directive is clicked, the
24433
24534
  * [cancel]({% slug api_grid_gridcomponent %}#toc-cancel) event
24434
- * is triggered ([see example]({% slug basics_editing_grid %})).
24435
- *
24436
- * > When the row is not in the edit mode, the button with the `kendoGridCancelCommand` is automatically hidden.
24437
- *
24438
- * @example
24439
- * ```html-no-run
24440
- * <kendo-grid>
24441
- * <kendo-grid-command-column title="command">
24442
- * <ng-template kendoGridCellTemplate>
24443
- * <button kendoGridCancelCommand>Cancel changes</button>
24444
- * </ng-template>
24445
- * </kendo-grid-command-column>
24446
- * </kendo-grid>
24447
- * ```
24535
+ * is triggered. When the row is not in the edit mode, the button with the `kendoGridCancelCommand` is automatically hidden.
24448
24536
  *
24449
24537
  * You can control the content of the button based on the state of the row.
24450
24538
  *
24451
24539
  * @example
24452
- * ```html-no-run
24540
+ * ```html
24453
24541
  * <kendo-grid>
24454
24542
  * <kendo-grid-command-column title="command">
24455
24543
  * <ng-template kendoGridCellTemplate let-isNew="isNew">
@@ -24537,23 +24625,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24537
24625
 
24538
24626
  /**
24539
24627
  * Represents the `save` command of the Grid. You can apply this directive to any `button`
24540
- * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
24628
+ * element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
24629
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
24541
24630
  * When an associated button with the directive is clicked, the
24542
24631
  * [save]({% slug api_grid_gridcomponent %}#toc-save) event
24543
- * is triggered ([see example]({% slug basics_editing_grid %})).
24544
- *
24545
- * > When the row is not in the edit mode, the button with `kendoGridSaveCommand` is automatically hidden.
24546
- *
24547
- * @example
24548
- * ```html-no-run
24549
- * <kendo-grid>
24550
- * <kendo-grid-command-column title="command">
24551
- * <ng-template kendoGridCellTemplate>
24552
- * <button kendoGridSaveCommand>Save changes</button>
24553
- * </ng-template>
24554
- * </kendo-grid-command-column>
24555
- * </kendo-grid>
24556
- * ```
24632
+ * is triggered. When the row is not in the edit mode, the button with `kendoGridSaveCommand` is automatically hidden.
24557
24633
  *
24558
24634
  * You can control the content of the button based on the state of the row.
24559
24635
  *
@@ -24646,15 +24722,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24646
24722
 
24647
24723
  /**
24648
24724
  * Represents the `remove` command of the Grid. You can apply this directive to any `button` element
24649
- * inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %}).
24725
+ * inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
24726
+ * ([see example](slug:editing_directives_grid#toc-command-column-directives)).
24650
24727
  * When an associated button with the directive is clicked, the
24651
- * [remove event]({% slug api_grid_gridcomponent %}#toc-remove)
24652
- * is triggered ([see example]({% slug inline_editing_grid %}#toc-using-reactive-forms))).
24653
- *
24654
- * > When the row is in the edit mode, the button with the `kendoGridRemoveCommand` is automatically hidden.
24728
+ * [remove]({% slug api_grid_gridcomponent %}#toc-remove) event
24729
+ * is triggered.
24730
+ * When the row is in the edit mode, the button with the `kendoGridRemoveCommand` is automatically hidden.
24655
24731
  *
24656
24732
  * @example
24657
- * ```html-no-run
24733
+ * ```html
24658
24734
  * <kendo-grid>
24659
24735
  * <kendo-grid-command-column title="command">
24660
24736
  * <ng-template kendoGridCellTemplate>
@@ -24746,7 +24822,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24746
24822
  * ([see example]({% slug basics_editing_grid %})).
24747
24823
  *
24748
24824
  * @example
24749
- * ```html-no-run
24825
+ * ```html
24750
24826
  * <kendo-grid>
24751
24827
  * <ng-template kendoGridToolbarTemplate>
24752
24828
  * <button kendoGridAddCommand>Add new</button>
@@ -24811,6 +24887,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
24811
24887
  args: ['class.k-grid-add-command']
24812
24888
  }] } });
24813
24889
 
24890
+ /**
24891
+ * Represents the drag handle for reordering rows in the Grid.
24892
+ */
24893
+ class RowReorderColumnComponent extends ColumnBase {
24894
+ constructor(parent, idService) {
24895
+ super(parent, idService);
24896
+ this.parent = parent;
24897
+ /**
24898
+ * @hidden
24899
+ */
24900
+ this.isRowReorderColumn = true;
24901
+ }
24902
+ }
24903
+ 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 });
24904
+ 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: [
24905
+ {
24906
+ provide: ColumnBase,
24907
+ useExisting: forwardRef(() => RowReorderColumnComponent)
24908
+ }
24909
+ ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
24910
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderColumnComponent, decorators: [{
24911
+ type: Component,
24912
+ args: [{
24913
+ providers: [
24914
+ {
24915
+ provide: ColumnBase,
24916
+ useExisting: forwardRef(() => RowReorderColumnComponent)
24917
+ }
24918
+ ],
24919
+ selector: 'kendo-grid-rowreorder-column',
24920
+ template: ``
24921
+ }]
24922
+ }], ctorParameters: function () { return [{ type: ColumnBase, decorators: [{
24923
+ type: SkipSelf
24924
+ }, {
24925
+ type: Host
24926
+ }, {
24927
+ type: Optional
24928
+ }] }, { type: IdService, decorators: [{
24929
+ type: Optional
24930
+ }] }]; }, propDecorators: { dragHandleIcon: [{
24931
+ type: Input
24932
+ }], dragHandleSVGIcon: [{
24933
+ type: Input
24934
+ }] } });
24935
+
24814
24936
  const exported = [
24815
24937
  CommandColumnComponent,
24816
24938
  CheckboxColumnComponent,
@@ -24826,7 +24948,8 @@ const exported = [
24826
24948
  RemoveCommandDirective,
24827
24949
  AddCommandDirective,
24828
24950
  CellLoadingTemplateDirective,
24829
- LoadingTemplateDirective
24951
+ LoadingTemplateDirective,
24952
+ RowReorderColumnComponent
24830
24953
  ];
24831
24954
  const importedModules$1 = [
24832
24955
  CommonModule,
@@ -24856,7 +24979,8 @@ class BodyModule {
24856
24979
  RemoveCommandDirective,
24857
24980
  AddCommandDirective,
24858
24981
  CellLoadingTemplateDirective,
24859
- LoadingTemplateDirective
24982
+ LoadingTemplateDirective,
24983
+ RowReorderColumnComponent
24860
24984
  ];
24861
24985
  }
24862
24986
  }
@@ -24875,7 +24999,8 @@ BodyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
24875
24999
  RemoveCommandDirective,
24876
25000
  AddCommandDirective,
24877
25001
  CellLoadingTemplateDirective,
24878
- LoadingTemplateDirective], imports: [CommonModule,
25002
+ LoadingTemplateDirective,
25003
+ RowReorderColumnComponent], imports: [CommonModule,
24879
25004
  ReactiveFormsModule,
24880
25005
  FormsModule,
24881
25006
  SharedModule,
@@ -24896,7 +25021,8 @@ BodyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
24896
25021
  RemoveCommandDirective,
24897
25022
  AddCommandDirective,
24898
25023
  CellLoadingTemplateDirective,
24899
- LoadingTemplateDirective] });
25024
+ LoadingTemplateDirective,
25025
+ RowReorderColumnComponent] });
24900
25026
  BodyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BodyModule, imports: [[...importedModules$1]] });
24901
25027
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BodyModule, decorators: [{
24902
25028
  type: NgModule,
@@ -25146,7 +25272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25146
25272
 
25147
25273
  /**
25148
25274
  * A directive which encapsulates the editing operations of the Grid when using
25149
- * the Template-Driven Angular Forms ([see example]({% slug editing_directives_grid %}#toc-the-template-directive)).
25275
+ * the Template-Driven Angular Forms ([see example]({% slug editing_directives_grid %}#toc-template-editing-directive)).
25150
25276
  */
25151
25277
  class TemplateEditingDirective extends RowEditingDirectiveBase {
25152
25278
  constructor(grid, localDataChangesService) {
@@ -25244,7 +25370,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25244
25370
 
25245
25371
  /**
25246
25372
  * A directive which encapsulates the editing operations of the Grid when using the in-cell
25247
- * editing with Reactive Forms ([see example]({% slug editing_directives_grid %}#toc-the-incell-directive)).
25373
+ * editing with Reactive Forms ([see example]({% slug editing_directives_grid %}#toc-in-cell-editing)).
25248
25374
  */
25249
25375
  class InCellEditingDirective extends EditingDirectiveBase {
25250
25376
  constructor(grid, localDataChangesService, cdr) {
@@ -25676,29 +25802,19 @@ const declarations$2 = [
25676
25802
  *
25677
25803
  * @example
25678
25804
  *
25679
- * ```ts-no-run
25680
- * // Import the Grid module
25681
- * import { GridModule } from '@progress/kendo-angular-grid';
25682
- *
25683
- * // The browser platform with a compiler
25684
- * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
25685
- *
25805
+ * ```ts
25686
25806
  * import { NgModule } from '@angular/core';
25687
- *
25688
- * // Import the app component
25807
+ * import { GridModule } from '@progress/kendo-angular-grid';
25808
+ * import { BrowserModule } from "@angular/platform-browser";
25689
25809
  * import { AppComponent } from './app.component';
25690
25810
  *
25691
- * // Define the app module
25692
- * _@NgModule({
25693
- * declarations: [AppComponent], // declare app component
25694
- * imports: [BrowserModule, GridModule], // import Grid module
25811
+ * @NgModule({
25812
+ * declarations: [AppComponent],
25813
+ * imports: [BrowserModule, GridModule],
25695
25814
  * bootstrap: [AppComponent]
25696
25815
  * })
25697
25816
  * export class AppModule {}
25698
25817
  *
25699
- * // Compile and launch the module
25700
- * platformBrowserDynamic().bootstrapModule(AppModule);
25701
- *
25702
25818
  * ```
25703
25819
  */
25704
25820
  class GridModule {
@@ -25730,7 +25846,8 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25730
25846
  RowFilterModule,
25731
25847
  FilterMenuModule,
25732
25848
  ResizeSensorModule,
25733
- ColumnMenuModule], exports: [GridComponent,
25849
+ ColumnMenuModule,
25850
+ DragAndDropModule$1], exports: [GridComponent,
25734
25851
  ToolbarTemplateDirective,
25735
25852
  ToolbarComponent,
25736
25853
  GridSpacerComponent,
@@ -25743,7 +25860,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25743
25860
  InCellEditingDirective,
25744
25861
  ExpandDetailsDirective,
25745
25862
  ExpandGroupDirective,
25746
- 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] });
25863
+ 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] });
25747
25864
  GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, imports: [[
25748
25865
  CommonModule,
25749
25866
  GroupModule,
@@ -25755,7 +25872,8 @@ GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13
25755
25872
  RowFilterModule,
25756
25873
  FilterMenuModule,
25757
25874
  ResizeSensorModule,
25758
- ColumnMenuModule
25875
+ ColumnMenuModule,
25876
+ DragAndDropModule$1
25759
25877
  ]] });
25760
25878
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, decorators: [{
25761
25879
  type: NgModule,
@@ -25773,7 +25891,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25773
25891
  RowFilterModule,
25774
25892
  FilterMenuModule,
25775
25893
  ResizeSensorModule,
25776
- ColumnMenuModule
25894
+ ColumnMenuModule,
25895
+ DragAndDropModule$1
25777
25896
  ]
25778
25897
  }]
25779
25898
  }] });
@@ -25792,50 +25911,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25792
25911
 
25793
25912
  /**
25794
25913
  * Represents the PDF page template of the Grid that helps to customize the PDF pages. To define a page template,
25795
- * nest an `<ng-template>` tag with the `kendoGridPDFTemplate` directive inside `<kendo-grid-pdf>`.
25914
+ * nest an `<ng-template>` tag with the `kendoGridPDFTemplate` directive inside `<kendo-grid-pdf>` tag.
25796
25915
  *
25797
25916
  * The template context provides the following fields:
25798
25917
  * - `pageNumber`&mdash;Defines PDF page number.
25799
25918
  * - `totalPages`&mdash;Defines the total number of PDF pages.
25800
25919
  *
25801
25920
  * @example
25802
- * ```ts-preview
25803
- *
25804
- * _@Component({
25805
- * selector: 'my-app',
25806
- * template: `
25807
- * <kendo-grid [data]="gridData">
25808
- * <ng-template kendoGridToolbarTemplate>
25809
- * <button kendoGridPDFCommand icon="file-pdf">Export to PDF</button>
25810
- * </ng-template>
25811
- * <kendo-grid-column field="ProductName">
25812
- * </kendo-grid-column>
25813
- * <kendo-grid-column field="UnitPrice">
25814
- * </kendo-grid-column>
25815
- * <kendo-grid-pdf fileName="Products.pdf" paperSize="A4" [margin]="{ top: '1cm', left: '1cm', right: '1cm', bottom: '1cm' }">
25816
- * <ng-template kendoGridPDFTemplate let-pageNum="pageNum" let-totalPages="totalPages">
25817
- * <div style="position: absolute;top: 5px; left: 5px;">
25818
- * Page {{ pageNum }} of {{ totalPages }}
25819
- * </div>
25820
- * </ng-template>
25821
- * </kendo-grid-pdf>
25822
- * </kendo-grid>
25823
- * `
25824
- * })
25825
- *
25826
- * class AppComponent {
25827
- * public gridData = [{
25828
- * "ProductID": 1,
25829
- * "ProductName": "Chai",
25830
- * "UnitPrice": 18.0000
25831
- * }, {
25832
- * "ProductID": 2,
25833
- * "ProductName": "Chang",
25834
- * "UnitPrice": 19.0000
25835
- * }
25836
- * ];
25837
- * }
25838
- *
25921
+ * ```html
25922
+ * <kendo-grid [data]="gridData">
25923
+ * ...
25924
+ * <kendo-grid-pdf fileName="Products.pdf" paperSize="A4">
25925
+ * <ng-template kendoGridPDFTemplate let-pageNumber="pageNumber" let-totalPages="totalPages">
25926
+ * Page {{ pageNumber }} of {{ totalPages }}
25927
+ * </ng-template>
25928
+ * </kendo-grid-pdf>
25929
+ * </kendo-grid>
25839
25930
  * ```
25840
25931
  */
25841
25932
  class PDFTemplateDirective extends PDFExportTemplateDirective {
@@ -26341,28 +26432,19 @@ const declarations$1 = [
26341
26432
  *
26342
26433
  * @example
26343
26434
  *
26344
- * ```ts-no-run
26345
- * // Import the Grid and PDF modules
26346
- * import { GridModule, PDFModule } from '@progress/kendo-angular-grid';
26347
- *
26348
- * // The browser platform with a compiler
26349
- * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
26350
- *
26435
+ * ```ts
26351
26436
  * import { NgModule } from '@angular/core';
26352
- *
26353
- * // Import the app component
26437
+ * import { BrowserModule } from "@angular/platform-browser";
26438
+ * import { GridModule, PDFModule } from '@progress/kendo-angular-grid';
26354
26439
  * import { AppComponent } from './app.component';
26355
26440
  *
26356
- * // Define the app module
26357
- * _@NgModule({
26358
- * declarations: [AppComponent], // declare app component
26359
- * imports: [BrowserModule, GridModule, PDFModule], // import Grid and PDF modules
26441
+ * @NgModule({
26442
+ * declarations: [AppComponent],
26443
+ * imports: [BrowserModule, GridModule, PDFModule],
26360
26444
  * bootstrap: [AppComponent]
26361
26445
  * })
26362
- * export class AppModule {}
26363
26446
  *
26364
- * // Compile and launch the module
26365
- * platformBrowserDynamic().bootstrapModule(AppModule);
26447
+ * export class AppModule {}
26366
26448
  *
26367
26449
  * ```
26368
26450
  */
@@ -26541,13 +26623,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26541
26623
  /**
26542
26624
  * Represents the `export-to-Excel` command of the Grid. You can apply this
26543
26625
  * directive to any `button` element inside a
26544
- * [ToolbarTemplate]({% slug api_grid_commandcolumncomponent %}).
26626
+ * [ToolbarTemplate]({% slug api_grid_toolbartemplatedirective %}).
26545
26627
  * When the user clicks a button associated with the directive, the
26546
26628
  * [excelExport]({% slug api_grid_gridcomponent %}#toc-excelexport) event
26547
26629
  * fires ([see example]({% slug excelexport_grid %})).
26548
26630
  *
26549
26631
  * @example
26550
- * ```html-no-run
26632
+ * ```html
26551
26633
  * <kendo-grid>
26552
26634
  * <ng-template kendoGridToolbarTemplate>
26553
26635
  * <button kendoGridExcelCommand>Export to PDF</button>
@@ -26622,29 +26704,19 @@ const declarations = [ExcelComponent, ExcelCommandDirective];
26622
26704
  *
26623
26705
  * @example
26624
26706
  *
26625
- * ```ts-no-run
26626
- * // Import the Grid and Excel modules
26627
- * import { GridModule, ExcelModule } from '@progress/kendo-angular-grid';
26628
- *
26629
- * // The browser platform with a compiler
26630
- * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
26631
- *
26707
+ * ```ts
26632
26708
  * import { NgModule } from '@angular/core';
26633
- *
26634
- * // Import the app component
26709
+ * import { BrowserModule } from "@angular/platform-browser";
26710
+ * import { GridModule, ExcelModule } from '@progress/kendo-angular-grid';
26635
26711
  * import { AppComponent } from './app.component';
26636
26712
  *
26637
- * // Define the app module
26638
26713
  * _@NgModule({
26639
- * declarations: [AppComponent], // declare app component
26640
- * imports: [BrowserModule, GridModule, ExcelModule], // import Grid and Excel modules
26714
+ * declarations: [AppComponent],
26715
+ * imports: [BrowserModule, GridModule, ExcelModule],
26641
26716
  * bootstrap: [AppComponent]
26642
26717
  * })
26643
26718
  * export class AppModule {}
26644
26719
  *
26645
- * // Compile and launch the module
26646
- * platformBrowserDynamic().bootstrapModule(AppModule);
26647
- *
26648
26720
  * ```
26649
26721
  */
26650
26722
  class ExcelModule {
@@ -26665,5 +26737,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26665
26737
  * Generated bundle index. Do not edit.
26666
26738
  */
26667
26739
 
26668
- 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 };
26740
+ 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 };
26669
26741