@progress/kendo-angular-treelist 12.2.0-develop.7 → 13.0.0-develop.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/binding-directives/base-binding.directive.d.ts +5 -1
  2. package/binding-directives/data-bound-tree-component.d.ts +9 -0
  3. package/binding-directives/flat-binding.directive.d.ts +14 -3
  4. package/binding-directives/hierarchy-binding.directive.d.ts +12 -3
  5. package/column-menu/column-chooser.component.d.ts +10 -6
  6. package/column-menu/column-menu-chooser.component.d.ts +6 -10
  7. package/column-menu/column-menu-filter.component.d.ts +6 -10
  8. package/column-menu/column-menu-item-content-template.directive.d.ts +1 -1
  9. package/column-menu/column-menu-item.component.d.ts +8 -6
  10. package/column-menu/column-menu-lock.component.d.ts +5 -11
  11. package/column-menu/column-menu-settings.interface.d.ts +7 -10
  12. package/column-menu/column-menu-sort.component.d.ts +5 -11
  13. package/column-menu/column-menu.component.d.ts +1 -1
  14. package/column-menu/column-menu.service.d.ts +1 -1
  15. package/column-resizing/column-resize.interface.d.ts +1 -1
  16. package/columns/checkbox-column.component.d.ts +1 -1
  17. package/columns/column-base.d.ts +4 -0
  18. package/columns/column-group.component.d.ts +9 -6
  19. package/columns/column.component.d.ts +16 -66
  20. package/columns/command-column.component.d.ts +13 -15
  21. package/columns/rowreorder-column.component.d.ts +19 -0
  22. package/columns/span-column.component.d.ts +10 -81
  23. package/data/change-event-args.interface.d.ts +2 -2
  24. package/data/data.collection.d.ts +6 -0
  25. package/dragdrop/column-reorder-config.d.ts +1 -1
  26. package/editing/add-command.directive.d.ts +1 -1
  27. package/editing/cancel-command.directive.d.ts +1 -1
  28. package/editing/edit-command.directive.d.ts +1 -1
  29. package/editing/edit-event-args.interface.d.ts +1 -1
  30. package/editing/edit-template.directive.d.ts +11 -0
  31. package/editing/remove-command.directive.d.ts +1 -1
  32. package/editing/remove-event-args.interface.d.ts +1 -1
  33. package/editing/save-command.directive.d.ts +1 -1
  34. package/editing/save-event-args.interface.d.ts +1 -1
  35. package/esm2020/binding-directives/base-binding.directive.mjs +9 -3
  36. package/esm2020/binding-directives/flat-binding.directive.mjs +56 -6
  37. package/esm2020/binding-directives/hierarchy-binding.directive.mjs +46 -6
  38. package/esm2020/column-menu/column-chooser.component.mjs +10 -6
  39. package/esm2020/column-menu/column-menu-chooser.component.mjs +8 -12
  40. package/esm2020/column-menu/column-menu-filter.component.mjs +6 -10
  41. package/esm2020/column-menu/column-menu-item-content-template.directive.mjs +1 -1
  42. package/esm2020/column-menu/column-menu-item.component.mjs +9 -7
  43. package/esm2020/column-menu/column-menu-lock.component.mjs +5 -11
  44. package/esm2020/column-menu/column-menu-sort.component.mjs +5 -11
  45. package/esm2020/column-menu/column-menu.component.mjs +2 -2
  46. package/esm2020/column-menu/column-menu.service.mjs +1 -1
  47. package/esm2020/columns/checkbox-column.component.mjs +1 -1
  48. package/esm2020/columns/column-base.mjs +4 -0
  49. package/esm2020/columns/column-group.component.mjs +9 -6
  50. package/esm2020/columns/column.component.mjs +16 -39
  51. package/esm2020/columns/command-column.component.mjs +13 -15
  52. package/esm2020/columns/rowreorder-column.component.mjs +47 -0
  53. package/esm2020/columns/span-column.component.mjs +10 -81
  54. package/esm2020/data/data.collection.mjs +41 -28
  55. package/esm2020/editing/add-command.directive.mjs +2 -2
  56. package/esm2020/editing/base-command.directive.mjs +1 -1
  57. package/esm2020/editing/cancel-command.directive.mjs +2 -2
  58. package/esm2020/editing/edit-command.directive.mjs +2 -2
  59. package/esm2020/editing/edit-template.directive.mjs +11 -0
  60. package/esm2020/editing/remove-command.directive.mjs +2 -2
  61. package/esm2020/editing/save-command.directive.mjs +2 -2
  62. package/esm2020/excel/excel-command.directive.mjs +2 -2
  63. package/esm2020/filtering/cell/boolean-filter-cell.component.mjs +11 -11
  64. package/esm2020/filtering/cell/date-filter-cell.component.mjs +11 -11
  65. package/esm2020/filtering/cell/filter-cell-operators.component.mjs +15 -0
  66. package/esm2020/filtering/cell/numeric-filter-cell.component.mjs +13 -12
  67. package/esm2020/filtering/cell/string-filter-cell.component.mjs +14 -13
  68. package/esm2020/filtering/date-filter.component.mjs +6 -1
  69. package/esm2020/filtering/menu/boolean-filter-menu.component.mjs +11 -12
  70. package/esm2020/filtering/menu/date-filter-menu.component.mjs +12 -12
  71. package/esm2020/filtering/menu/filter-menu.component.mjs +1 -1
  72. package/esm2020/filtering/menu/numeric-filter-menu.component.mjs +12 -12
  73. package/esm2020/filtering/menu/string-filter-menu.component.mjs +15 -0
  74. package/esm2020/filtering/numeric-filter.component.mjs +4 -1
  75. package/esm2020/filtering/operators/after-eq-filter-operator.component.mjs +2 -5
  76. package/esm2020/filtering/operators/after-filter-operator.component.mjs +2 -5
  77. package/esm2020/filtering/operators/before-eq-filter-operator.component.mjs +2 -5
  78. package/esm2020/filtering/operators/before-filter-operator.component.mjs +3 -6
  79. package/esm2020/filtering/operators/contains-filter-operator.component.mjs +1 -4
  80. package/esm2020/filtering/operators/ends-with-filter-operator.component.mjs +1 -4
  81. package/esm2020/filtering/operators/eq-filter-operator.component.mjs +1 -4
  82. package/esm2020/filtering/operators/gt-filter-operator.component.mjs +1 -4
  83. package/esm2020/filtering/operators/gte-filter-operator.component.mjs +1 -4
  84. package/esm2020/filtering/operators/is-empty-filter-operator.component.mjs +1 -4
  85. package/esm2020/filtering/operators/is-not-empty-filter-operator.component.mjs +1 -4
  86. package/esm2020/filtering/operators/is-not-null-filter-operator.component.mjs +1 -4
  87. package/esm2020/filtering/operators/isnull-filter-operator.component.mjs +1 -4
  88. package/esm2020/filtering/operators/lt-filter-operator.component.mjs +2 -5
  89. package/esm2020/filtering/operators/lte-filter-operator.component.mjs +1 -4
  90. package/esm2020/filtering/operators/neq-filter-operator.component.mjs +1 -4
  91. package/esm2020/filtering/operators/not-contains-filter-operator.component.mjs +1 -4
  92. package/esm2020/filtering/operators/starts-with-filter-operator.component.mjs +1 -4
  93. package/esm2020/filtering/string-filter.component.mjs +2 -1
  94. package/esm2020/index.mjs +2 -0
  95. package/esm2020/localization/custom-messages.component.mjs +1 -1
  96. package/esm2020/localization/messages.mjs +3 -1
  97. package/esm2020/package-metadata.mjs +2 -2
  98. package/esm2020/pager/pager-element.component.mjs +17 -0
  99. package/esm2020/pager/pager-next-buttons.component.mjs +8 -11
  100. package/esm2020/pager/pager-numeric-buttons.component.mjs +1 -1
  101. package/esm2020/pager/pager-page-sizes.component.mjs +1 -1
  102. package/esm2020/pager/pager-prev-buttons.component.mjs +8 -11
  103. package/esm2020/pager/pager-template.directive.mjs +1 -1
  104. package/esm2020/pdf/pdf-command.directive.mjs +2 -2
  105. package/esm2020/pdf/pdf-margin.component.mjs +9 -0
  106. package/esm2020/rendering/cell-template.directive.mjs +1 -1
  107. package/esm2020/rendering/cell.component.mjs +68 -20
  108. package/esm2020/rendering/common/spacer.component.mjs +1 -1
  109. package/esm2020/rendering/constants.mjs +4 -0
  110. package/esm2020/rendering/header/header.component.mjs +1 -1
  111. package/esm2020/rendering/table-body.component.mjs +5 -3
  112. package/esm2020/row-reordering/flat-reorder.service.mjs +48 -0
  113. package/esm2020/row-reordering/hierarchical-reorder.service.mjs +55 -0
  114. package/esm2020/row-reordering/row-reorder.service.mjs +220 -0
  115. package/esm2020/row-reordering/types.mjs +5 -0
  116. package/esm2020/row-reordering/utils.mjs +129 -0
  117. package/esm2020/shared.module.mjs +8 -3
  118. package/esm2020/treelist.component.mjs +185 -311
  119. package/esm2020/treelist.module.mjs +71 -66
  120. package/excel/excel-command.directive.d.ts +1 -1
  121. package/excel/excel-export-data.interface.d.ts +1 -1
  122. package/excel/excel.component.d.ts +9 -8
  123. package/fesm2015/progress-kendo-angular-treelist.mjs +1215 -792
  124. package/fesm2020/progress-kendo-angular-treelist.mjs +1205 -791
  125. package/filtering/cell/boolean-filter-cell.component.d.ts +11 -11
  126. package/filtering/cell/date-filter-cell.component.d.ts +11 -11
  127. package/filtering/cell/filter-cell-operators.component.d.ts +15 -0
  128. package/filtering/cell/numeric-filter-cell.component.d.ts +13 -12
  129. package/filtering/cell/string-filter-cell.component.d.ts +12 -11
  130. package/filtering/date-filter.component.d.ts +7 -11
  131. package/filtering/menu/boolean-filter-menu.component.d.ts +11 -12
  132. package/filtering/menu/date-filter-menu.component.d.ts +12 -12
  133. package/filtering/menu/numeric-filter-menu.component.d.ts +12 -12
  134. package/filtering/menu/string-filter-menu.component.d.ts +15 -0
  135. package/filtering/numeric-filter.component.d.ts +4 -1
  136. package/filtering/operators/after-eq-filter-operator.component.d.ts +4 -0
  137. package/filtering/operators/after-filter-operator.component.d.ts +4 -0
  138. package/filtering/operators/before-eq-filter-operator.component.d.ts +4 -0
  139. package/filtering/operators/before-filter-operator.component.d.ts +4 -0
  140. package/filtering/operators/contains-filter-operator.component.d.ts +1 -4
  141. package/filtering/operators/ends-with-filter-operator.component.d.ts +1 -4
  142. package/filtering/operators/eq-filter-operator.component.d.ts +1 -4
  143. package/filtering/operators/gte-filter-operator.component.d.ts +1 -4
  144. package/filtering/operators/is-empty-filter-operator.component.d.ts +1 -4
  145. package/filtering/operators/is-not-empty-filter-operator.component.d.ts +1 -4
  146. package/filtering/operators/is-not-null-filter-operator.component.d.ts +1 -4
  147. package/filtering/operators/isnull-filter-operator.component.d.ts +1 -4
  148. package/filtering/operators/lt-filter-operator.component.d.ts +4 -0
  149. package/filtering/operators/neq-filter-operator.component.d.ts +1 -4
  150. package/filtering/operators/not-contains-filter-operator.component.d.ts +1 -4
  151. package/filtering/operators/starts-with-filter-operator.component.d.ts +1 -4
  152. package/filtering/string-filter.component.d.ts +2 -1
  153. package/index.d.ts +2 -0
  154. package/localization/custom-messages.component.d.ts +1 -1
  155. package/localization/messages.d.ts +6 -2
  156. package/navigation/navigation-cell.interface.d.ts +1 -4
  157. package/navigation/navigation-row.interface.d.ts +1 -4
  158. package/package.json +16 -15
  159. package/pager/pager-element.component.d.ts +9 -0
  160. package/pager/pager-next-buttons.component.d.ts +0 -3
  161. package/pager/pager-numeric-buttons.component.d.ts +1 -1
  162. package/pager/pager-prev-buttons.component.d.ts +0 -3
  163. package/pager/pager-settings.d.ts +1 -15
  164. package/pager/pager-template.directive.d.ts +1 -1
  165. package/pdf/pdf-command.directive.d.ts +1 -1
  166. package/pdf/pdf-margin.component.d.ts +9 -0
  167. package/rendering/cell-template.directive.d.ts +1 -1
  168. package/rendering/cell.component.d.ts +9 -1
  169. package/rendering/common/spacer.component.d.ts +1 -1
  170. package/rendering/constants.d.ts +4 -0
  171. package/row-reordering/flat-reorder.service.d.ts +16 -0
  172. package/row-reordering/hierarchical-reorder.service.d.ts +16 -0
  173. package/row-reordering/row-reorder.service.d.ts +61 -0
  174. package/row-reordering/types.d.ts +39 -0
  175. package/row-reordering/utils.d.ts +85 -0
  176. package/schematics/ngAdd/index.js +3 -3
  177. package/scrolling/content-scroll-event.d.ts +1 -1
  178. package/scrolling/scroll-bottom-event.d.ts +1 -1
  179. package/scrolling/scroll-request.service.d.ts +6 -0
  180. package/selection/selectable-settings.d.ts +5 -15
  181. package/selection/selectable.directive.d.ts +1 -1
  182. package/selection/selection-change-event.d.ts +1 -1
  183. package/shared.module.d.ts +5 -4
  184. package/treelist.component.d.ts +66 -289
  185. package/treelist.module.d.ts +68 -66
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { Directive, Optional, EventEmitter, Injectable, QueryList, Input, ContentChildren, ContentChild, InjectionToken, forwardRef, Component, SkipSelf, Host, isDevMode, SecurityContext, Inject, HostBinding, Output, Self, ViewChild, HostListener, ViewChildren, Pipe, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
6
+ import { Directive, Optional, EventEmitter, Injectable, QueryList, Input, ContentChildren, ContentChild, InjectionToken, forwardRef, Component, SkipSelf, Host, isDevMode, SecurityContext, Inject, Output, HostBinding, Self, ViewChild, HostListener, ViewChildren, Pipe, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
7
7
  import * as i4 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
9
  import * as i3$2 from '@angular/forms';
@@ -12,28 +12,30 @@ import { merge, of, fromEvent, isObservable, BehaviorSubject, Subscription, Subj
12
12
  import { auditTime, take, switchMap, map, distinctUntilChanged, filter, tap, throttleTime, takeUntil, switchMapTo, debounceTime, delay, bufferCount } from 'rxjs/operators';
13
13
  import { validatePackage } from '@progress/kendo-licensing';
14
14
  import * as i1$3 from '@progress/kendo-angular-common';
15
- import { isDocumentAvailable, Keys, anyChanged, isChanged as isChanged$1, guid, ResizeSensorComponent, hasObservers, DraggableModule, ResizeSensorModule, EventsModule } from '@progress/kendo-angular-common';
15
+ import { isDocumentAvailable, Keys, isPresent as isPresent$1, anyChanged, isChanged as isChanged$1, guid, ResizeSensorComponent, hasObservers, DraggableModule, ResizeSensorModule, EventsModule } from '@progress/kendo-angular-common';
16
16
  import { orderBy, isCompositeFilterDescriptor, process, aggregateBy } from '@progress/kendo-data-query';
17
17
  import * as i1$1 from '@progress/kendo-angular-l10n';
18
18
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
19
19
  import * as i1 from '@progress/kendo-angular-popup';
20
20
  import { PopupModule } from '@progress/kendo-angular-popup';
21
- import { plusIcon, cancelIcon, lockIcon, unlockIcon, filterIcon, sortAscSmallIcon, sortDescSmallIcon, columnsIcon, moreVerticalIcon, filterClearIcon, caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon, caretAltToLeftIcon, caretAltToRightIcon } from '@progress/kendo-svg-icons';
21
+ import { plusIcon, cancelIcon, lockIcon, unlockIcon, insertMiddleIcon, filterIcon, sortAscSmallIcon, sortDescSmallIcon, columnsIcon, moreVerticalIcon, filterClearIcon, caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon, reorderIcon, caretAltToLeftIcon, caretAltToRightIcon } from '@progress/kendo-svg-icons';
22
22
  import * as i1$2 from '@angular/platform-browser';
23
23
  import * as i3 from '@progress/kendo-angular-icons';
24
24
  import { IconsModule } from '@progress/kendo-angular-icons';
25
25
  import { getter, setter } from '@progress/kendo-common';
26
+ import * as i32 from '@progress/kendo-angular-utils';
27
+ import { DragTargetContainerDirective, DropTargetContainerDirective, DragAndDropModule as DragAndDropModule$1 } from '@progress/kendo-angular-utils';
26
28
  import * as i3$1 from '@progress/kendo-angular-dropdowns';
27
29
  import { DropDownListModule, AutoCompleteModule, DropDownsModule } from '@progress/kendo-angular-dropdowns';
28
- import * as i4$1 from '@progress/kendo-angular-inputs';
30
+ import * as i2 from '@progress/kendo-angular-inputs';
29
31
  import { NumericTextBoxComponent, InputsModule, NumericTextBoxModule } from '@progress/kendo-angular-inputs';
30
32
  import * as i3$3 from '@progress/kendo-angular-dateinputs';
31
33
  import { DatePickerModule } from '@progress/kendo-angular-dateinputs';
32
34
  import { trigger, state, style, transition, animate } from '@angular/animations';
33
- import * as i4$2 from '@progress/kendo-angular-buttons';
35
+ import * as i4$1 from '@progress/kendo-angular-buttons';
34
36
  import { ButtonModule, Button } from '@progress/kendo-angular-buttons';
35
37
  import * as i1$4 from '@progress/kendo-angular-intl';
36
- import * as i4$3 from '@progress/kendo-angular-label';
38
+ import * as i4$2 from '@progress/kendo-angular-label';
37
39
  import { LabelModule } from '@progress/kendo-angular-label';
38
40
  import { PDFExportMarginComponent, PDFExportTemplateDirective, PDFExportComponent } from '@progress/kendo-angular-pdf-export';
39
41
  import { saveAs } from '@progress/kendo-file-saver';
@@ -46,8 +48,8 @@ const packageMetadata = {
46
48
  name: '@progress/kendo-angular-treelist',
47
49
  productName: 'Kendo UI for Angular',
48
50
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
49
- publishDate: 1684780301,
50
- version: '12.2.0-develop.7',
51
+ publishDate: 1685119813,
52
+ version: '13.0.0-develop.10',
51
53
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
52
54
  };
53
55
 
@@ -67,7 +69,7 @@ const packageMetadata = {
67
69
  * - `loading`—Specifies if the item children are currently loading.
68
70
  * - `rowIndex`—The current row index. Use it as an alias for a template variable by utilizing the `let-rowIndex="rowIndex"` syntax.
69
71
  *
70
- * * @example
72
+ * @example
71
73
  * ```html
72
74
  * <kendo-treelist ...>
73
75
  * <kendo-treelist-column field="ProductName">
@@ -108,6 +110,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
108
110
  * - `formGroup`&mdash;The current [`FormGroup`](link:site.data.urls.angular['formgroupapi']). If you use the TreeList inside [Template-Driven Forms](link:site.data.urls.angular['forms']), `formGroup` will be `undefined`.
109
111
  * - `isNew`&mdash;The state of the current item.
110
112
  * - `rowIndex`&mdash;The current row index. If inside a new item row, `rowIndex` is `-1`.
113
+ *
114
+ * * @example
115
+ * ```html
116
+ * <kendo-treelist ...>
117
+ * <kendo-treelist-command-column title="command">
118
+ * <ng-template kendoTreeListEditTemplate let-rowIndex="rowIndex">
119
+ * {{rowIndex}}
120
+ * </ng-template>
121
+ * </kendo-treelist-command-column>
122
+ * </kendo-treelist>
123
+ * ```
111
124
  */
112
125
  class EditTemplateDirective {
113
126
  constructor(templateRef) {
@@ -282,6 +295,10 @@ const isSpanColumn = column => column.isSpanColumn;
282
295
  * @hidden
283
296
  */
284
297
  const isCheckboxColumn = column => column.isCheckboxColumn;
298
+ /**
299
+ * @hidden
300
+ */
301
+ const isRowReorderColumn = column => column.isRowReorderColumn;
285
302
  const isColumnContainer = column => column.isColumnGroup || isSpanColumn(column);
286
303
  /**
287
304
  * The base class for the column components of the TreeList.
@@ -674,14 +691,15 @@ function isColumnComponent(column) {
674
691
  return isPresent(column.field);
675
692
  }
676
693
  /**
677
- * Represents the columns of the [Angular TreeList]({% slug getstarted_treelist %}).
694
+ * Represents the columns of the TreeList.
678
695
  *
679
- * {% meta height:470 %}
680
- * {% embed_file basic-usage/app.component.ts preview %}
681
- * {% embed_file basic-usage/app.module.ts %}
682
- * {% embed_file shared/main.ts %}
683
- * {% embed_file shared/employees.ts %}
684
- * {% endmeta %}
696
+ * @example
697
+ * ```html
698
+ * <kendo-treelist [kendoTreeListFlatBinding]="data" ...>
699
+ * <kendo-treelist-column field="name" title="Name"></kendo-treelist-column>
700
+ * <kendo-treelist-column field="title"title="Title"></kendo-treelist-column>
701
+ * </kendo-treelist>
702
+ * ```
685
703
  */
686
704
  class ColumnComponent extends ColumnBase {
687
705
  constructor(parent, optionChanges) {
@@ -693,51 +711,27 @@ class ColumnComponent extends ColumnBase {
693
711
  this.sortable = true;
694
712
  /**
695
713
  * Defines the editor type ([see example]({% slug editing_reactive_forms_treelist %}#toc-setup)).
696
- * Used when the column enters the edit mode. The default value is `text`.
714
+ * Used when the column enters the edit mode. [See example](slug:editing_reactive_forms_treelist).
697
715
  *
698
- * @example
699
- * ```html-no-run
700
- * <kendo-treelist>
701
- * <kendo-treelist-column field="UnitPrice" editor="numeric">
702
- * </kendo-treelist-column>
703
- * </kendo-treelist>
704
- * ```
716
+ * @default 'text'
705
717
  */
706
718
  this.editor = 'text';
707
719
  /**
708
- * Defines the filter type that is displayed inside the filter row. The default value is `text`.
720
+ * Defines the filter type that is displayed inside the filter row.
709
721
  *
710
- * @example
711
- * ```html-no-run
712
- * <kendo-treelist>
713
- * <kendo-treelist-column field="UnitPrice" filter="numeric">
714
- * </kendo-treelist-column>
715
- * </kendo-treelist>
716
- * ```
722
+ * @default 'text'
717
723
  */
718
724
  this.filter = 'text';
719
725
  /**
720
- * Defines if a filter UI will be displayed for this column. The default value is `true`.
726
+ * Defines if a filter UI will be displayed for this column.
721
727
  *
722
- * @example
723
- * ```html-no-run
724
- * <kendo-treelist>
725
- * <kendo-treelist-column field="UnitPrice" [filterable]="false">
726
- * </kendo-treelist-column>
727
- * </kendo-treelist>
728
- * ```
728
+ * @default true
729
729
  */
730
730
  this.filterable = true;
731
731
  /**
732
- * Defines whether the column is editable. The default value is `true`.
732
+ * Defines whether the column is editable.
733
733
  *
734
- * @example
735
- * ```html-no-run
736
- * <kendo-treelist>
737
- * <kendo-treelist-column field="UnitPrice" [editable]="false">
738
- * </kendo-treelist-column>
739
- * </kendo-treelist>
740
- * ```
734
+ * @default true
741
735
  */
742
736
  this.editable = true;
743
737
  }
@@ -833,25 +827,15 @@ function isSpanColumnComponent(column) {
833
827
  * [sorting]({% slug sorting_treelist %}) and [filtering]({% slug filtering_treelist %}). Wrap the columns that will be
834
828
  * merged inside the `<kendo-treelist-span-column>` tag.
835
829
  *
836
- * {% meta height:570 %}
837
- * {% embed_file configuration/span-column/app.component.ts preview %}
838
- * {% embed_file configuration/span-column/app.module.ts %}
839
- * {% embed_file shared/main.ts %}
840
- * {% embed_file shared/employees.ts %}
841
- * {% endmeta %}
842
- *
843
- * By default, the data cell displays the data for the specified fields. To further customize
844
- * the span-column functionality, use a [cell template]({% slug api_treelist_celltemplatedirective %}).
845
- *
846
- * ```html-no-run
830
+ * ```html
847
831
  * <kendo-treelist-span-column>
848
- * <kendo-treelist-column field="field1" title="Field 1"></kendo-treelist-column>
849
- * <kendo-treelist-column field="field2" title="Field 2"></kendo-treelist-column>
850
- * <ng-template kendoTreeListCellTemplate let-dataItem>
851
- * <h5>{{ dataItem.field1 }}</h5>
852
- * <p>{{ dataItem.field2 }}</p>
853
- * </ng-template>
854
- * </kendo-treelist-span-column>
832
+ * <kendo-treelist-column field="field1" ></kendo-treelist-column>
833
+ * <kendo-treelist-column field="field2" ></kendo-treelist-column>
834
+ * <ng-template kendoTreeListCellTemplate let-dataItem>
835
+ * <h5>{{ dataItem.field1 }}</h5>
836
+ * <p>{{ dataItem.field2 }}</p>
837
+ * </ng-template>
838
+ * </kendo-treelist-span-column>
855
839
  * ```
856
840
  */
857
841
  class SpanColumnComponent extends ColumnBase {
@@ -879,22 +863,8 @@ class SpanColumnComponent extends ColumnBase {
879
863
  /**
880
864
  * Defines whether the edit template of the column will be rendered. The default value is `false`.
881
865
  *
882
- * > To enable the editing functionality for a spanned column, set an edit template for it.
866
+ * To enable the editing functionality for a spanned column, set an edit template for it.
883
867
  *
884
- * @example
885
- * ```html-no-run
886
- * <kendo-treelist>
887
- * <kendo-treelist-span-column [editable]="false">
888
- * <kendo-treelist-column field="UnitPrice">
889
- * </kendo-treelist-column>
890
- * <kendo-treelist-column field="ProductName">
891
- * </kendo-treelist-column>
892
- * <ng-template kendoTreeListEditTemplate>
893
- * .....
894
- * </ng-template>
895
- * </kendo-treelist-span-column>
896
- * </kendo-treelist>
897
- * ```
898
868
  */
899
869
  set editable(value) {
900
870
  this._editable = value;
@@ -939,56 +909,9 @@ class SpanColumnComponent extends ColumnBase {
939
909
  }
940
910
  /**
941
911
  * Toggles the locked (frozen) state of the columns. Locked columns are visible
942
- * at all times during the horizontal scrolling of the TreeList.
943
- *
944
- * For the option to work properly, make sure that:
945
- * - Scrolling is enabled.
946
- * - The `height` option of the TreeList is set.
947
- * - The widths of all TreeList columns are explicitly set in pixels. In this way,
948
- * the TreeList adjusts the layout of the locked and unlocked columns.
912
+ * at all times during the horizontal scrolling of the TreeList. [See example](slug:locked_columns_treelist).
949
913
  *
950
914
  * @default false
951
- *
952
- * @example
953
- * ```ts
954
- * _@Component({
955
- * selector: 'my-app',
956
- * template: `
957
- * <kendo-treelist [data]="treelistData" [scrollable]="scrollable" style="height: 200px">
958
- * <kendo-treelist-span-column [locked]="true">
959
- * <kendo-treelist-column field="ProductID" title="Product ID" [width]="120">
960
- * </kendo-treelist-column>
961
- * <kendo-treelist-column field="ProductName" title="Product Name" [width]="200">
962
- * </kendo-treelist-column>
963
- * </kendo-treelist-span-column>
964
- * <kendo-treelist-column field="UnitPrice" title="Unit Price" [width]="230">
965
- * </kendo-treelist-column>
966
- * </kendo-treelist>
967
- * `
968
- * })
969
- *
970
- * class AppComponent {
971
- * public treelistData: any[];
972
- *
973
- * constructor() {
974
- * this.treelistData = products;
975
- * }
976
- * }
977
- *
978
- * const products = [{
979
- * "ProductID": 1,
980
- * "ProductName": "Chai",
981
- * "UnitPrice": 18.0000,
982
- * "Discontinued": true
983
- * }, {
984
- * "ProductID": 2,
985
- * "ProductName": "Chang",
986
- * "UnitPrice": 19.0000,
987
- * "Discontinued": false
988
- * }
989
- * ];
990
- *
991
- * ```
992
915
  */
993
916
  set locked(value) {
994
917
  this._locked = value;
@@ -1127,12 +1050,15 @@ function isColumnGroupComponent(column) {
1127
1050
  * Represents the column group header of the TreeList
1128
1051
  * ([more information and examples]({% slug multicolumnheaders_columns_treelist %})).
1129
1052
  *
1130
- * {% meta height:533 %}
1131
- * {% embed_file configuration/multi-column-headers/app.component.ts preview %}
1132
- * {% embed_file configuration/multi-column-headers/app.module.ts %}
1133
- * {% embed_file shared/main.ts %}
1134
- * {% embed_file shared/filesystem.ts %}
1135
- * {% endmeta %}
1053
+ * @example
1054
+ * ```html
1055
+ * <kendo-treelist ...>
1056
+ * <kendo-treelist-column-group title="File Info">
1057
+ * <kendo-treelist-column field="type" title="Type"> </kendo-treelist-column>
1058
+ * <kendo-treelist-column field="size" title="Size"> </kendo-treelist-column>
1059
+ * </kendo-treelist-column-group>
1060
+ * </kendo-treelist>
1061
+ * ```
1136
1062
  */
1137
1063
  class ColumnGroupComponent extends ColumnBase {
1138
1064
  constructor(parent, optionChanges) {
@@ -1289,22 +1215,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1289
1215
  * @hidden
1290
1216
  */
1291
1217
  const EXPANDED_STATE = {
1292
- isExpanded: () => true
1218
+ isExpanded: () => true,
1293
1219
  };
1294
1220
  /**
1295
1221
  * @hidden
1296
1222
  */
1297
1223
  const UNSELECTED_STATE = {
1298
- isRowSelected: () => false
1224
+ isRowSelected: () => false,
1299
1225
  };
1300
1226
  /**
1301
1227
  * @hidden
1302
1228
  */
1303
1229
  const NOT_EDITED_STATE = {
1304
1230
  hasNew: () => false,
1305
- context: () => null
1231
+ context: () => null,
1306
1232
  };
1307
- const identity$1 = item => item;
1233
+ const identity$1 = (item) => item;
1308
1234
  function loadView(view, subject) {
1309
1235
  view.loadData();
1310
1236
  if (view.loading) {
@@ -1349,10 +1275,11 @@ class ViewRange {
1349
1275
  return true;
1350
1276
  }
1351
1277
  includeParents(_children) {
1278
+ // eslint-disable-next-line no-empty
1352
1279
  }
1353
1280
  }
1354
1281
  function isPagerSettings(pageable) {
1355
- return typeof pageable === "object";
1282
+ return typeof pageable === 'object';
1356
1283
  }
1357
1284
  class PagerRange extends ViewRange {
1358
1285
  constructor(skip, pageSize, pageable) {
@@ -1366,8 +1293,8 @@ class PagerRange extends ViewRange {
1366
1293
  return this.skip <= index && index < this.skip + this.pageSize;
1367
1294
  }
1368
1295
  levelInRange(parent, items, _rowIndex) {
1369
- return parent.level === -1 ||
1370
- (this.skip <= parent.index + items.length && parent.index + 1 < this.skip + this.pageSize);
1296
+ return (parent.level === -1 ||
1297
+ (this.skip <= parent.index + items.length && parent.index + 1 < this.skip + this.pageSize));
1371
1298
  }
1372
1299
  includeParents(children) {
1373
1300
  let parentLevel = children.parentLevel;
@@ -1410,7 +1337,7 @@ class ViewItemFactory {
1410
1337
  this.rootLevel = this.dataLevel({
1411
1338
  level: -1,
1412
1339
  id: null,
1413
- expanded: true
1340
+ expanded: true,
1414
1341
  }, options.data);
1415
1342
  }
1416
1343
  }
@@ -1425,7 +1352,8 @@ class ViewItemFactory {
1425
1352
  while (dataLevels[0] && dataLevels[0].idx >= dataLevels[0].items.length) {
1426
1353
  const dataLevel = dataLevels.shift();
1427
1354
  if (this.hasFooter && dataLevel.expanded && dataLevel.items.length) {
1428
- if (dataLevel.inRange || this.viewRange.levelInRange(dataLevel.parent, dataLevel.items, this.rowIndex)) {
1355
+ if (dataLevel.inRange ||
1356
+ this.viewRange.levelInRange(dataLevel.parent, dataLevel.items, this.rowIndex)) {
1429
1357
  result.push({
1430
1358
  type: 'footer',
1431
1359
  items: dataLevel.items,
@@ -1433,7 +1361,7 @@ class ViewItemFactory {
1433
1361
  level: dataLevel.level,
1434
1362
  parentItem: dataLevel.parent.data,
1435
1363
  parentIndex: dataLevel.parentIndex,
1436
- rowIndex: this.rowIndex
1364
+ rowIndex: this.rowIndex,
1437
1365
  });
1438
1366
  this.viewRange.includeParents(dataLevel);
1439
1367
  }
@@ -1453,7 +1381,7 @@ class ViewItemFactory {
1453
1381
  index: itemIndex,
1454
1382
  level: currentLevel.level,
1455
1383
  hasChildren: this.hasChildren(dataItem),
1456
- parent: currentLevel.parent
1384
+ parent: currentLevel.parent,
1457
1385
  };
1458
1386
  if (currentLevel.expanded) {
1459
1387
  this.rowIndex++;
@@ -1486,7 +1414,7 @@ class ViewItemFactory {
1486
1414
  observables: this.observables,
1487
1415
  total: itemCount,
1488
1416
  totalVisible: itemIndex,
1489
- totalRows: this.rowIndex
1417
+ totalRows: this.rowIndex,
1490
1418
  };
1491
1419
  }
1492
1420
  loadChildren(parent) {
@@ -1505,7 +1433,7 @@ class ViewItemFactory {
1505
1433
  if (isObservable(children)) {
1506
1434
  this.observables.push({
1507
1435
  observable: children,
1508
- parentId: parentId
1436
+ parentId: parentId,
1509
1437
  });
1510
1438
  parent.loading = true;
1511
1439
  }
@@ -1526,7 +1454,7 @@ class ViewItemFactory {
1526
1454
  aggregates: children.aggregates,
1527
1455
  expanded: parent.expanded,
1528
1456
  parentIndex: parent.index,
1529
- parent: parent
1457
+ parent: parent,
1530
1458
  };
1531
1459
  }
1532
1460
  addNew(result, parent) {
@@ -1539,7 +1467,7 @@ class ViewItemFactory {
1539
1467
  type: 'data',
1540
1468
  data: this.editState.newItem.dataItem,
1541
1469
  editContext: this.editState.newItem,
1542
- rowIndex: rowIndex
1470
+ rowIndex: rowIndex,
1543
1471
  });
1544
1472
  if (parent || inRange) {
1545
1473
  this.rowIndex++;
@@ -1575,7 +1503,7 @@ class ViewCollection {
1575
1503
  idGetter: identity$1,
1576
1504
  pageable: false,
1577
1505
  isVirtual: false,
1578
- skip: 0
1506
+ skip: 0,
1579
1507
  }, options.fields);
1580
1508
  const childrenView = new ViewCollection(viewFields, options.expandState || EXPANDED_STATE, options.editState || NOT_EDITED_STATE, options.selectionState || UNSELECTED_STATE);
1581
1509
  if (options.loaded) {
@@ -1596,20 +1524,28 @@ class ViewCollection {
1596
1524
  }
1597
1525
  return this._data;
1598
1526
  }
1599
- get length() { return this.data.length; }
1600
- get first() { return this.data[0]; }
1527
+ get length() {
1528
+ return this.data.length;
1529
+ }
1530
+ get first() {
1531
+ return this.data[0];
1532
+ }
1601
1533
  get firstItem() {
1602
- return this.find(item => item.type === 'data');
1534
+ return this.find((item) => item.type === 'data');
1535
+ }
1536
+ get last() {
1537
+ return this.data[this.data.length - 1];
1603
1538
  }
1604
- get last() { return this.data[this.data.length - 1]; }
1605
1539
  at(index) {
1606
1540
  return this.data[index];
1607
1541
  }
1608
1542
  itemIndex(item) {
1609
1543
  const idGetter = this.fieldAccessor().idGetter;
1610
- return this.data.findIndex(i => i.id === idGetter(item));
1544
+ return this.data.findIndex((i) => i.id === idGetter(item));
1545
+ }
1546
+ map(fn) {
1547
+ return this.data.map(fn);
1611
1548
  }
1612
- map(fn) { return this.data.map(fn); }
1613
1549
  filter(fn) {
1614
1550
  return this.data.filter(fn);
1615
1551
  }
@@ -1628,16 +1564,18 @@ class ViewCollection {
1628
1564
  find(fn) {
1629
1565
  return this.data.find(fn);
1630
1566
  }
1631
- toString() { return this.data.toString(); }
1567
+ toString() {
1568
+ return this.data.toString();
1569
+ }
1632
1570
  updateSelectedState() {
1633
- this.forEach(item => {
1571
+ this.forEach((item) => {
1634
1572
  if (item.type === 'data') {
1635
1573
  item.selected = this.selectionState.isRowSelected(item.data);
1636
1574
  }
1637
1575
  });
1638
1576
  }
1639
1577
  updateEditedState() {
1640
- this.forEach(item => {
1578
+ this.forEach((item) => {
1641
1579
  if (item.type === 'data') {
1642
1580
  item.editContext = this.editState.context(item.data);
1643
1581
  }
@@ -1670,7 +1608,7 @@ class ViewCollection {
1670
1608
  loadData() {
1671
1609
  const itemFactory = new ViewItemFactory(this.expandState, this.editState, this.selectionState, this.loaded, this.fieldAccessor);
1672
1610
  let result = itemFactory.generate();
1673
- if (!result.loading && result.total && (!result.items.length || !result.items.some(i => i.type === 'data'))) {
1611
+ if (!result.loading && result.total && (!result.items.length || !result.items.some((i) => i.type === 'data'))) {
1674
1612
  this.resetPage.emit();
1675
1613
  result = new ViewItemFactory(this.expandState, this.editState, this.selectionState, this.loaded, this.fieldAccessor).generate();
1676
1614
  }
@@ -1684,9 +1622,10 @@ class ViewCollection {
1684
1622
  if (!this.childrenSubscription) {
1685
1623
  this.childrenSubscription = new Subscription();
1686
1624
  }
1687
- result.observables.forEach(o => {
1625
+ result.observables.forEach((o) => {
1688
1626
  this.loaded.set(o.parentId, LOADING);
1689
- this.childrenSubscription.add(o.observable.subscribe(children => {
1627
+ this.childrenSubscription.add(o.observable.subscribe((children) => {
1628
+ // handle error, might show reload icon
1690
1629
  this.clear();
1691
1630
  this.loaded.set(o.parentId, children);
1692
1631
  this.childrenLoaded.emit();
@@ -2134,7 +2073,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2134
2073
  * * `totalPages`&mdash;The total number of available pages.
2135
2074
  *
2136
2075
  * @example
2137
- * ```
2076
+ * ```html
2138
2077
  * <kendo-treelist ...>
2139
2078
  * <kendo-treelist-column field="type"></kendo-treelist-column>
2140
2079
  * <ng-template
@@ -3007,17 +2946,17 @@ const append = (element) => {
3007
2946
  /**
3008
2947
  * @hidden
3009
2948
  */
3010
- const getDocument = element => element.ownerDocument.documentElement;
2949
+ const getDocument$1 = element => element.ownerDocument.documentElement;
3011
2950
  /**
3012
2951
  * @hidden
3013
2952
  */
3014
- const getWindow = element => element.ownerDocument.defaultView;
2953
+ const getWindow$1 = element => element.ownerDocument.defaultView;
3015
2954
  /**
3016
2955
  * @hidden
3017
2956
  */
3018
2957
  const offset = element => {
3019
- const { clientTop, clientLeft } = getDocument(element);
3020
- const { pageYOffset, pageXOffset } = getWindow(element);
2958
+ const { clientTop, clientLeft } = getDocument$1(element);
2959
+ const { pageYOffset, pageXOffset } = getWindow$1(element);
3021
2960
  const { top, left } = element.getBoundingClientRect();
3022
2961
  return {
3023
2962
  top: top + pageYOffset - clientTop,
@@ -5177,6 +5116,345 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5177
5116
  type: Injectable
5178
5117
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
5179
5118
 
5119
+ /**
5120
+ * @hidden
5121
+ */
5122
+ const isNextSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.nextElementSibling;
5123
+ /**
5124
+ * @hidden
5125
+ */
5126
+ const isPreviousSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.previousElementSibling;
5127
+ /**
5128
+ * @hidden
5129
+ */
5130
+ function getOffset(element) {
5131
+ const { clientTop, clientLeft } = getDocument(element);
5132
+ const { pageYOffset, pageXOffset } = getWindow(element);
5133
+ const { top, left } = element.getBoundingClientRect();
5134
+ return {
5135
+ top: top + pageYOffset - clientTop,
5136
+ left: left + pageXOffset - clientLeft
5137
+ };
5138
+ }
5139
+ ;
5140
+ /**
5141
+ * @hidden
5142
+ */
5143
+ const hintIcons = {
5144
+ forbidden: 'cancel',
5145
+ before: 'insert-middle',
5146
+ after: 'insert-middle',
5147
+ over: 'plus'
5148
+ };
5149
+ /**
5150
+ * @hidden
5151
+ */
5152
+ const hintSVGIcons = {
5153
+ forbidden: cancelIcon,
5154
+ before: insertMiddleIcon,
5155
+ after: insertMiddleIcon,
5156
+ over: plusIcon
5157
+ };
5158
+ /**
5159
+ * @hidden
5160
+ */
5161
+ const dropPosition = {
5162
+ forbidden: 'forbidden',
5163
+ before: 'before',
5164
+ after: 'after',
5165
+ over: 'over'
5166
+ };
5167
+ /**
5168
+ * @hidden
5169
+ */
5170
+ const hintStyles = {
5171
+ zIndex: '20000',
5172
+ display: 'flex',
5173
+ position: 'fixed'
5174
+ };
5175
+ /**
5176
+ * @hidden
5177
+ */
5178
+ const hintClasses = ['k-drag-clue', 'k-reorder-clue'];
5179
+ /**
5180
+ * @hidden
5181
+ */
5182
+ const dropIndicatorStyles = {
5183
+ zIndex: '19000',
5184
+ position: 'absolute'
5185
+ };
5186
+ /**
5187
+ * @hidden
5188
+ */
5189
+ const dropIndicatorClasses = ['k-drop-hint', 'k-drop-hint-h'];
5190
+ /**
5191
+ * @hidden
5192
+ */
5193
+ const defaultSelectors = {
5194
+ handle: '.k-table-td.k-drag-cell',
5195
+ dragTarget: '.k-table-row[data-treelist-view-index]',
5196
+ dropTarget: '.k-table-row[data-treelist-view-index]'
5197
+ };
5198
+ /**
5199
+ * @hidden
5200
+ */
5201
+ const rowIndexAttr = 'data-treelist-view-index';
5202
+ /**
5203
+ * @hidden
5204
+ */
5205
+ const findParent$1 = (collection, searchItem, field) => {
5206
+ let parent = null;
5207
+ for (const item of collection) {
5208
+ if (searchItem === item) {
5209
+ return null;
5210
+ }
5211
+ const checked = [];
5212
+ const queue = [];
5213
+ queue.push(item);
5214
+ while (queue.length !== 0) {
5215
+ const current = queue.shift();
5216
+ if (!current) {
5217
+ continue;
5218
+ }
5219
+ checked.push(current);
5220
+ if (current === searchItem) {
5221
+ return item;
5222
+ }
5223
+ if (current.hasOwnProperty(field)) {
5224
+ current[field].forEach(node => {
5225
+ if (checked.indexOf(node) === -1) {
5226
+ checked.push(node);
5227
+ queue.push(node);
5228
+ if (node === searchItem) {
5229
+ parent = current;
5230
+ return;
5231
+ }
5232
+ }
5233
+ });
5234
+ }
5235
+ if (parent) {
5236
+ return parent;
5237
+ }
5238
+ }
5239
+ }
5240
+ };
5241
+ const getDocument = element => element === null || element === void 0 ? void 0 : element.ownerDocument.documentElement;
5242
+ const getWindow = element => element === null || element === void 0 ? void 0 : element.ownerDocument.defaultView;
5243
+
5244
+ /**
5245
+ * @hidden
5246
+ */
5247
+ class RowReorderService {
5248
+ constructor(renderer) {
5249
+ this.renderer = renderer;
5250
+ this.defaultSelectors = defaultSelectors;
5251
+ this.dragTarget = null;
5252
+ this.dropTarget = null;
5253
+ this.lastDropPosition = dropPosition.forbidden;
5254
+ this.hintElement = null;
5255
+ this.rowReorder = new EventEmitter();
5256
+ }
5257
+ press(ev) {
5258
+ this.dragTarget = ev.dragTarget;
5259
+ this.offsetY = ev.dragEvent.offsetY;
5260
+ }
5261
+ dragStart() {
5262
+ this.createDropIndicator();
5263
+ }
5264
+ drag(ev) {
5265
+ if (isPresent$1(ev.hintElement) && !isPresent$1(this.hintElement)) {
5266
+ this.hintElement = ev.hintElement;
5267
+ this.decorateHint();
5268
+ }
5269
+ const position = {
5270
+ x: ev.dragEvent.clientX,
5271
+ y: ev.dragEvent.clientY - this.offsetY
5272
+ };
5273
+ if (isPresent$1(this.hintElement)) {
5274
+ this.renderer.setStyle(this.hintElement, 'left', `${position.x}px`);
5275
+ this.renderer.setStyle(this.hintElement, 'top', `${position.y}px`);
5276
+ }
5277
+ this.positionDropIndicator(ev);
5278
+ }
5279
+ dragEnter(ev) {
5280
+ this.dropTarget = ev.dropTarget;
5281
+ this.view = ev.dragData;
5282
+ }
5283
+ dragLeave() {
5284
+ this.dropTarget = null;
5285
+ this.lastDropPosition === dropPosition.forbidden && this.hide();
5286
+ }
5287
+ dragEnd() {
5288
+ this.destroyDropIndicator();
5289
+ this.dragTarget = null;
5290
+ this.dropTarget = null;
5291
+ this.hintElement = null;
5292
+ }
5293
+ drop() {
5294
+ this.destroyDropIndicator();
5295
+ const rowReorderArgs = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view);
5296
+ this.rowReorder.emit(rowReorderArgs);
5297
+ }
5298
+ get hintIcon() {
5299
+ return hintIcons[this.lastDropPosition];
5300
+ }
5301
+ get hintSVGIcon() {
5302
+ return hintSVGIcons[this.lastDropPosition];
5303
+ }
5304
+ getDefaultHintText(columns, data) {
5305
+ let hintText = '';
5306
+ const columnFieldsArray = columns
5307
+ .toArray()
5308
+ .filter(column => !column.hidden && isPresent$1(column.field))
5309
+ .map(column => column.field);
5310
+ const draggedDragRow = this.getDragRowPerElement(this.dragTarget, data);
5311
+ const draggedDataItem = draggedDragRow === null || draggedDragRow === void 0 ? void 0 : draggedDragRow.dataItem;
5312
+ isPresent$1(draggedDataItem) && columnFieldsArray.forEach(column => {
5313
+ const columnValue = draggedDataItem[column];
5314
+ isPresent$1(columnValue) ? hintText += `${columnValue} ` : null;
5315
+ });
5316
+ return hintText.trim();
5317
+ }
5318
+ rowReorderArgs(dragRow, dropRow, data) {
5319
+ const dragRowData = this.getDragRowPerElement(dragRow, data);
5320
+ const dropRowData = this.getDragRowPerElement(dropRow, data);
5321
+ return {
5322
+ draggedRows: [dragRowData],
5323
+ dropTargetRow: dropRowData,
5324
+ dropPosition: this.lastDropPosition
5325
+ };
5326
+ }
5327
+ isOverChild(_item) { return false; }
5328
+ reorderRows(_ev, _collection, _field) { }
5329
+ get parentIdField() {
5330
+ return this.bindingDirective.parentIdField;
5331
+ }
5332
+ get idField() {
5333
+ return this.bindingDirective.idField;
5334
+ }
5335
+ get childrenField() {
5336
+ return this.bindingDirective.childrenField;
5337
+ }
5338
+ get data() {
5339
+ return this.bindingDirective.data;
5340
+ }
5341
+ getDragRowPerElement(row, data) {
5342
+ var _a;
5343
+ let rowIndex = row === null || row === void 0 ? void 0 : row.getAttribute(rowIndexAttr);
5344
+ rowIndex = rowIndex ? parseInt(rowIndex, 10) : -1;
5345
+ const dataItem = rowIndex === -1 ? null : (_a = data === null || data === void 0 ? void 0 : data.at(rowIndex)) === null || _a === void 0 ? void 0 : _a.data;
5346
+ return {
5347
+ dataItem,
5348
+ rowIndex,
5349
+ element: row
5350
+ };
5351
+ }
5352
+ createDropIndicator() {
5353
+ if (!isDocumentAvailable()) {
5354
+ return;
5355
+ }
5356
+ this.dropIndicator = document.createElement('div');
5357
+ this.decorateDropIndicator();
5358
+ this.dropIndicator.innerHTML = `
5359
+ <div class="k-drop-hint-start"></div>
5360
+ <div class="k-drop-hint-line"></div>
5361
+ `;
5362
+ document.body.appendChild(this.dropIndicator);
5363
+ this.hide();
5364
+ }
5365
+ destroyDropIndicator() {
5366
+ if (!isDocumentAvailable()) {
5367
+ return;
5368
+ }
5369
+ ;
5370
+ if (this.dropIndicator && this.dropIndicator.parentElement) {
5371
+ document.body.removeChild(this.dropIndicator);
5372
+ this.dropIndicator = null;
5373
+ }
5374
+ }
5375
+ decorateHint() {
5376
+ hintClasses.forEach(className => this.renderer.addClass(this.hintElement, className));
5377
+ Object.keys(hintStyles)
5378
+ .forEach(style => this.renderer.setStyle(this.hintElement, style, hintStyles[style]));
5379
+ }
5380
+ positionDropIndicator(ev) {
5381
+ this.lastDropPosition = this.getDropPosition(ev.dragEvent);
5382
+ this.updateDropIndicatorPosition();
5383
+ }
5384
+ decorateDropIndicator() {
5385
+ dropIndicatorClasses.forEach(className => this.renderer.addClass(this.dropIndicator, className));
5386
+ Object.keys(dropIndicatorStyles)
5387
+ .forEach(style => this.renderer.setStyle(this.dropIndicator, style, dropIndicatorStyles[style]));
5388
+ }
5389
+ getDropPosition(e) {
5390
+ if (this.dropTarget === this.dragTarget || !isPresent$1(this.dropTarget)) {
5391
+ return dropPosition.forbidden;
5392
+ }
5393
+ ;
5394
+ const itemViewPortCoords = this.dropTarget.getBoundingClientRect();
5395
+ const itemDivisionsCount = 3;
5396
+ const itemDivisionHeight = itemViewPortCoords.height / itemDivisionsCount;
5397
+ const { dropTargetRow } = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view);
5398
+ const pointerPosition = e.clientY;
5399
+ const itemTop = itemViewPortCoords.top;
5400
+ let currentDropPosition = null;
5401
+ if (pointerPosition <= itemTop + itemDivisionHeight) {
5402
+ currentDropPosition = dropPosition.before;
5403
+ }
5404
+ else if (pointerPosition >= itemTop + itemViewPortCoords.height - itemDivisionHeight) {
5405
+ currentDropPosition = dropPosition.after;
5406
+ }
5407
+ else {
5408
+ currentDropPosition = dropPosition.over;
5409
+ }
5410
+ if (currentDropPosition === dropPosition.before && isNextSibling(this.dropTarget, this.dragTarget)) {
5411
+ currentDropPosition = dropPosition.forbidden;
5412
+ }
5413
+ else if (currentDropPosition === dropPosition.after && isPreviousSibling(this.dropTarget, this.dragTarget)) {
5414
+ currentDropPosition = dropPosition.forbidden;
5415
+ }
5416
+ if (this.isOverChild(dropTargetRow.dataItem)) {
5417
+ currentDropPosition = dropPosition.forbidden;
5418
+ }
5419
+ return currentDropPosition;
5420
+ }
5421
+ updateDropIndicatorPosition() {
5422
+ if (this.shouldHideDropIndicator() || !this.dropTarget) {
5423
+ this.hide();
5424
+ return;
5425
+ }
5426
+ this.show();
5427
+ const destinationItemOffset = getOffset(this.dropTarget);
5428
+ let indicatorOffsetTop = destinationItemOffset.top;
5429
+ const indicatorOffsetLeft = destinationItemOffset.left + this.dropIndicator.offsetWidth / 2;
5430
+ if (this.lastDropPosition === dropPosition.after) {
5431
+ indicatorOffsetTop += this.dropTarget.offsetHeight;
5432
+ }
5433
+ this.renderer.setStyle(this.dropIndicator, 'left', `${indicatorOffsetLeft}px`);
5434
+ this.renderer.setStyle(this.dropIndicator, 'top', `${indicatorOffsetTop}px`);
5435
+ }
5436
+ shouldHideDropIndicator() {
5437
+ return this.lastDropPosition === dropPosition.forbidden || this.lastDropPosition === dropPosition.over;
5438
+ }
5439
+ hide() {
5440
+ if (isPresent$1(this.dropIndicator)) {
5441
+ this.renderer.setStyle(this.dropIndicator, 'display', 'none');
5442
+ }
5443
+ }
5444
+ show() {
5445
+ if (isPresent$1(this.dropIndicator)) {
5446
+ this.renderer.removeStyle(this.dropIndicator, 'display');
5447
+ }
5448
+ }
5449
+ }
5450
+ RowReorderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
5451
+ RowReorderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService });
5452
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService, decorators: [{
5453
+ type: Injectable
5454
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { rowReorder: [{
5455
+ type: Output
5456
+ }] } });
5457
+
5180
5458
  /* eslint-disable @typescript-eslint/no-inferrable-types */
5181
5459
  /**
5182
5460
  * @hidden
@@ -5745,8 +6023,9 @@ class StringFilterComponent extends BaseFilterCellComponent {
5745
6023
  super(filterService);
5746
6024
  this.localization = localization;
5747
6025
  /**
5748
- * The default filter operator. Defaults to `contains`.
6026
+ * The default filter operator.
5749
6027
  * @type {string}
6028
+ * @default 'contains'
5750
6029
  */
5751
6030
  this.operator = "contains";
5752
6031
  }
@@ -6077,7 +6356,7 @@ StringFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
6077
6356
  [filterDelay]="0"
6078
6357
  [ngModel]="currentFilter?.value" />
6079
6358
  </kendo-treelist-filter-menu-input-wrapper>
6080
- `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }], directives: [{ type: i4$1.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { type: i3$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]" }, { type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }, { type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
6359
+ `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }], directives: [{ type: i2.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { type: i3$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]" }, { type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }, { type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
6081
6360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuInputComponent, decorators: [{
6082
6361
  type: Component,
6083
6362
  args: [{
@@ -6116,6 +6395,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6116
6395
  /**
6117
6396
  * Represents a string-filter menu component.
6118
6397
  * ([see example]({% slug builtinfiltertemplate_treelist %}#toc-configuration-components-for-filter-templates)).
6398
+ *
6399
+ * @example
6400
+ * ```html
6401
+ * <kendo-treelist-column field="name">
6402
+ * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
6403
+ * <kendo-treelist-string-filter-menu
6404
+ * [column]="column"
6405
+ * [filter]="filter"
6406
+ * [filterService]="filterService">
6407
+ * </kendo-treelist-string-filter-menu>
6408
+ * </ng-template>
6409
+ * </kendo-treelist-column>
6410
+ * ```
6411
+ *
6119
6412
  */
6120
6413
  class StringFilterMenuComponent extends StringFilterComponent {
6121
6414
  constructor(localization) {
@@ -6128,6 +6421,7 @@ class StringFilterMenuComponent extends StringFilterComponent {
6128
6421
  this.filter = { filters: [], logic: "and" };
6129
6422
  /**
6130
6423
  * Determines if the inputs of second criteria will displayed.
6424
+ * @default true
6131
6425
  */
6132
6426
  this.extra = true;
6133
6427
  }
@@ -6240,18 +6534,21 @@ class NumericFilterComponent extends BaseFilterCellComponent {
6240
6534
  super(filterService);
6241
6535
  this.localization = localization;
6242
6536
  /**
6243
- * The default filter operator. Defaults to `eq`.
6537
+ * The default filter operator.
6244
6538
  * @type {string}
6539
+ * @default 'eq'
6245
6540
  */
6246
6541
  this.operator = "eq";
6247
6542
  /**
6248
6543
  * Specifies the value that is used to increment or decrement the component value.
6249
6544
  * @type {numeric}
6545
+ * @default 1
6250
6546
  */
6251
6547
  this.step = 1;
6252
6548
  /**
6253
6549
  * Specifies whether the **Up** and **Down** spin buttons will be rendered.
6254
6550
  * @type {boolean}
6551
+ * @default true
6255
6552
  */
6256
6553
  this.spinners = true;
6257
6554
  this.defaultOperators = numericOperators(this.localization);
@@ -6375,7 +6672,7 @@ NumericFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
6375
6672
  [step]="step">
6376
6673
  </kendo-numerictextbox>
6377
6674
  </kendo-treelist-filter-menu-input-wrapper>
6378
- `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }, { type: i4$1.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"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
6675
+ `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }, { type: i2.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"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
6379
6676
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuInputComponent, decorators: [{
6380
6677
  type: Component,
6381
6678
  args: [{
@@ -6434,18 +6731,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6434
6731
  * Represents a numeric-filter menu component.
6435
6732
  *
6436
6733
  * @example
6437
- * ```html-no-run
6438
- * <kendo-treelist-column field="UnitPrice" title="Unit Price">
6439
- * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
6440
- * <kendo-treelist-numeric-filter-menu
6441
- * [column]="column"
6442
- * [filter]="filter"
6443
- * [filterService]="filterService"
6444
- * >
6445
- * </kendo-treelist-numeric-filter-menu>
6446
- * </ng-template>
6447
- * </kendo-treelist-column>
6448
- * ```
6734
+ * ```html
6735
+ * <kendo-treelist-column field="UnitPrice">
6736
+ * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
6737
+ * <kendo-treelist-numeric-filter-menu
6738
+ * [column]="column"
6739
+ * [filter]="filter"
6740
+ * [filterService]="filterService">
6741
+ * </kendo-treelist-numeric-filter-menu>
6742
+ * </ng-template>
6743
+ * </kendo-treelist-column>
6744
+ * ```
6449
6745
  */
6450
6746
  class NumericFilterMenuComponent extends NumericFilterComponent {
6451
6747
  constructor(localization) {
@@ -6458,6 +6754,7 @@ class NumericFilterMenuComponent extends NumericFilterComponent {
6458
6754
  this.filter = { filters: [], logic: "and" };
6459
6755
  /**
6460
6756
  * Determines if the inputs of second criteria will displayed.
6757
+ * @default true
6461
6758
  */
6462
6759
  this.extra = true;
6463
6760
  }
@@ -6603,25 +6900,30 @@ class DateFilterComponent extends BaseFilterCellComponent {
6603
6900
  /**
6604
6901
  * The default filter operator. Defaults to `contains`.
6605
6902
  * @type {string}
6903
+ * @default 'gte'
6606
6904
  */
6607
6905
  this.operator = "gte";
6608
6906
  /**
6609
6907
  * Defines the active view that the calendar initially renders.
6610
6908
  * By default, the active view is `month`.
6611
6909
  *
6612
- * > You have to set `activeView` within the `topView`-`bottomView` range.
6910
+ * You have to set `activeView` within the `topView`-`bottomView` range.
6911
+ * @default 'month'
6613
6912
  */
6614
6913
  this.activeView = "month";
6615
6914
  /**
6616
6915
  * Defines the bottommost calendar view, to which the user can navigate.
6916
+ * @default 'month'
6617
6917
  */
6618
6918
  this.bottomView = "month";
6619
6919
  /**
6620
6920
  * Defines the topmost calendar view, to which the user can navigate.
6921
+ * @default 'century'
6621
6922
  */
6622
6923
  this.topView = "century";
6623
6924
  /**
6624
6925
  * Determines whether to display a week number column in the `month` view of the Calendar.
6926
+ * @default false
6625
6927
  */
6626
6928
  this.weekNumber = false;
6627
6929
  this.defaultOperators = dateOperators(this.localization);
@@ -6827,18 +7129,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6827
7129
  * Represents a date-filter menu component.
6828
7130
  *
6829
7131
  * @example
6830
- * ```html-no-run
6831
- * <kendo-treelist-column field="OrderDate" title="Order Date">
6832
- * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
6833
- * <kendo-treelist-date-filter-menu
6834
- * [column]="column"
6835
- * [filter]="filter"
6836
- * [filterService]="filterService"
6837
- * >
6838
- * </kendo-treelist-date-filter-menu>
6839
- * </ng-template>
6840
- * </kendo-treelist-column>
6841
- * ```
7132
+ * ```html
7133
+ * <kendo-treelist-column field="OrderDate" title="Order Date">
7134
+ * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
7135
+ * <kendo-treelist-date-filter-menu
7136
+ * [column]="column"
7137
+ * [filter]="filter"
7138
+ * [filterService]="filterService">
7139
+ * </kendo-treelist-date-filter-menu>
7140
+ * </ng-template>
7141
+ * </kendo-treelist-column>
7142
+ * ```
6842
7143
  */
6843
7144
  class DateFilterMenuComponent extends DateFilterComponent {
6844
7145
  constructor(localization) {
@@ -6851,6 +7152,7 @@ class DateFilterMenuComponent extends DateFilterComponent {
6851
7152
  this.filter = { filters: [], logic: "and" };
6852
7153
  /**
6853
7154
  * Determines if the inputs of second criteria will be displayed.
7155
+ * @default true
6854
7156
  */
6855
7157
  this.extra = true;
6856
7158
  }
@@ -7064,20 +7366,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7064
7366
  }] } });
7065
7367
 
7066
7368
  /**
7067
- * Represents a Boolean-filter menu component.
7369
+ * Represents a Boolean-filter menu component. [See example](slug:columnmenu_treelist#toc-customizing-the-content).
7068
7370
  *
7069
7371
  * @example
7070
- * ```html-no-run
7071
- * <kendo-treelist-column field="Discontinued" title="Discontinued">
7072
- * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
7073
- * <kendo-treelist-boolean-filter-menu
7074
- * [column]="column"
7075
- * [filter]="filter"
7076
- * [filterService]="filterService"
7077
- * >
7078
- * </kendo-treelist-boolean-filter-menu>
7079
- * </ng-template>
7080
- * </kendo-treelist-column>
7372
+ * ```html
7373
+ * <kendo-treelist-column field="Discontinued" title="Discontinued">
7374
+ * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
7375
+ * <kendo-treelist-boolean-filter-menu
7376
+ * [column]="column"
7377
+ * [filter]="filter"
7378
+ * [filterService]="filterService">
7379
+ * </kendo-treelist-boolean-filter-menu>
7380
+ * </ng-template>
7381
+ * </kendo-treelist-column>
7081
7382
  * ```
7082
7383
  */
7083
7384
  class BooleanFilterMenuComponent extends BooleanFilterComponent {
@@ -7133,7 +7434,7 @@ BooleanFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
7133
7434
  <label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
7134
7435
  </li>
7135
7436
  </ul>
7136
- `, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$1.RadioButtonDirective, selector: "input[kendoRadioButton]", inputs: ["size"] }] });
7437
+ `, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.RadioButtonDirective, selector: "input[kendoRadioButton]", inputs: ["size"] }] });
7137
7438
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterMenuComponent, decorators: [{
7138
7439
  type: Component,
7139
7440
  args: [{
@@ -7459,7 +7760,7 @@ FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
7459
7760
  >
7460
7761
  </kendo-treelist-filter-menu-container>
7461
7762
  </ng-template>
7462
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: FilterMenuContainerComponent, selector: "kendo-treelist-filter-menu-container", inputs: ["column", "filter", "actionsClass"], outputs: ["close"] }] });
7763
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: FilterMenuContainerComponent, selector: "kendo-treelist-filter-menu-container", inputs: ["column", "filter", "actionsClass"], outputs: ["close"] }] });
7463
7764
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, decorators: [{
7464
7765
  type: Component,
7465
7766
  args: [{
@@ -7497,7 +7798,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7497
7798
  *
7498
7799
  * @example
7499
7800
  * ```html
7500
- * <kendo-treelist>
7801
+ * <kendo-treelist ...>
7501
7802
  * <ng-template
7502
7803
  * kendoTreeListColumnMenuTemplate
7503
7804
  * let-service="service"
@@ -7567,7 +7868,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7567
7868
  *
7568
7869
  * @example
7569
7870
  * ```html
7570
- * <kendo-treelist>
7871
+ * <kendo-treelist ...>
7571
7872
  * <kendo-treelist-column field="ProductName">
7572
7873
  * <ng-template kendoTreeListColumnMenuTemplate>
7573
7874
  * <kendo-treelist-columnmenu-item text="Item Text" [expanded]="true">
@@ -7602,12 +7903,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7602
7903
  * Represents an item that can be placed inside a
7603
7904
  * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
7604
7905
  *
7605
- * {% meta height:500 %}
7606
- * {% embed_file column-menu/template-item/app.component.ts preview %}
7607
- * {% embed_file column-menu/template-item/app.module.ts %}
7608
- * {% embed_file shared/main.ts %}
7609
- * {% embed_file shared/employees.ts %}
7610
- * {% endmeta %}
7906
+ * * @example
7907
+ * ```html
7908
+ * <kendo-treelist ...>
7909
+ * <ng-template kendoTreeListColumnMenuTemplate let-service="service" let-column="column">
7910
+ * <kendo-treelist-columnmenu-item text="Fit column"></kendo-treelist-columnmenu-item>
7911
+ * </ng-template>
7912
+ * </kendo-treelist>
7913
+ * ```
7611
7914
  */
7612
7915
  class ColumnMenuItemComponent {
7613
7916
  constructor() {
@@ -7662,7 +7965,7 @@ ColumnMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
7662
7965
  <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
7663
7966
  </ng-container>
7664
7967
  <div>
7665
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
7968
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
7666
7969
  trigger('state', [
7667
7970
  state('collapsed', style({ display: 'none' })),
7668
7971
  state('expanded', style({ display: 'block' })),
@@ -7749,19 +8052,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7749
8052
  }] } });
7750
8053
 
7751
8054
  /**
7752
- * Represents a column-menu item for sorting TreeList columns that can be placed inside a
7753
- * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
7754
- * Allows the user to sort the column.
8055
+ * Represents the column-menu item for sorting TreeList columns.
8056
+ *
8057
+ * The component can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
7755
8058
  *
7756
- * > You have to set the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) that is passed by
7757
- * > the template to the service input of the `kendo-treelist-columnmenu-sort` component.
8059
+ * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})
8060
+ * that is passed by the template to the service input of the `kendo-treelist-columnmenu-sort` component.
7758
8061
  *
7759
- * {% meta height:500 %}
7760
- * {% embed_file column-menu/template-sort/app.component.ts preview %}
7761
- * {% embed_file column-menu/template-sort/app.module.ts %}
7762
- * {% embed_file shared/main.ts %}
7763
- * {% embed_file shared/employees.ts %}
7764
- * {% endmeta %}
7765
8062
  */
7766
8063
  class ColumnMenuSortComponent extends ColumnMenuItemBase {
7767
8064
  constructor(localization, sortService) {
@@ -7843,19 +8140,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7843
8140
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: SortService }]; } });
7844
8141
 
7845
8142
  /**
7846
- * Represents a column-menu item that can be placed inside a
7847
- * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
7848
- * Allows the user to lock or unlock the columns.
8143
+ * Represents the column-menu item that allows the user to lock or unlock columns.
8144
+ *
8145
+ * The componnt can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
7849
8146
  *
7850
- * > You have to set the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) that is passed by
7851
- * > the template to the service input of the `kendo-treelist-columnmenu-lock` component.
8147
+ * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})
8148
+ * that is passed by the template to the service input of the `kendo-treelist-columnmenu-lock` component.
7852
8149
  *
7853
- * {% meta height:500 %}
7854
- * {% embed_file column-menu/template-lock/app.component.ts preview %}
7855
- * {% embed_file column-menu/template-lock/app.module.ts %}
7856
- * {% embed_file shared/main.ts %}
7857
- * {% embed_file shared/employees.ts %}
7858
- * {% endmeta %}
7859
8150
  */
7860
8151
  class ColumnMenuLockComponent extends ColumnMenuItemBase {
7861
8152
  constructor(localization, columnInfoService, changeDetector) {
@@ -8142,18 +8433,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8142
8433
  }] } });
8143
8434
 
8144
8435
  /**
8145
- * Represents the component for selecting columns in the TreeList that can be placed
8146
- * inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
8436
+ * Represents the column-menu item for selecting columns in the TreeList. [See example](slug:columnmenu_treelist#toc-column-chooser-item).
8147
8437
  *
8148
- * > You have to set the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) that is passed by
8149
- * > the template to the service input of the `kendo-treelist-columnmenu-chooser` component.
8438
+ * The component can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
8439
+ *
8440
+ * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})
8441
+ * that is passed by the template to the service input of the `kendo-treelist-columnmenu-chooser` component.
8150
8442
  *
8151
- * {% meta height:500 %}
8152
- * {% embed_file column-menu/template-chooser/app.component.ts preview %}
8153
- * {% embed_file column-menu/template-chooser/app.module.ts %}
8154
- * {% embed_file shared/main.ts %}
8155
- * {% embed_file shared/employees.ts %}
8156
- * {% endmeta %}
8157
8443
  */
8158
8444
  class ColumnMenuChooserComponent extends ColumnMenuItemBase {
8159
8445
  constructor(localization, columnInfoService, changeDetector) {
@@ -8171,6 +8457,7 @@ class ColumnMenuChooserComponent extends ColumnMenuItemBase {
8171
8457
  this.collapse = new EventEmitter();
8172
8458
  /**
8173
8459
  * Specifies if the content is expanded.
8460
+ * @default false
8174
8461
  */
8175
8462
  this.expanded = false;
8176
8463
  /**
@@ -8195,7 +8482,7 @@ class ColumnMenuChooserComponent extends ColumnMenuItemBase {
8195
8482
  }
8196
8483
  ColumnMenuChooserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserComponent, deps: [{ token: i1$1.LocalizationService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
8197
8484
  ColumnMenuChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnMenuChooserComponent, selector: "kendo-treelist-columnmenu-chooser", inputs: { expanded: "expanded" }, outputs: { expand: "expand", collapse: "collapse" }, usesInheritance: true, ngImport: i0, template: `
8198
- <kendo-treelist-columnmenu-item
8485
+ <kendo-treelist-columnmenu-item
8199
8486
  [text]="localization.get('columns')"
8200
8487
  icon="columns"
8201
8488
  [svgIcon]="columnsIcon"
@@ -8220,7 +8507,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8220
8507
  args: [{
8221
8508
  selector: 'kendo-treelist-columnmenu-chooser',
8222
8509
  template: `
8223
- <kendo-treelist-columnmenu-item
8510
+ <kendo-treelist-columnmenu-item
8224
8511
  [text]="localization.get('columns')"
8225
8512
  icon="columns"
8226
8513
  [svgIcon]="columnsIcon"
@@ -8250,18 +8537,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8250
8537
  }] } });
8251
8538
 
8252
8539
  /**
8253
- * Represents the component for editing column filters in the TreeList that can be placed
8254
- * inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
8540
+ * Represents the column-menu item for editing column filters in the TreeList.
8255
8541
  *
8256
- * > You have to set the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) that is passed by
8257
- * > the template to the service input of the `kendo-treelist-columnmenu-filter` component.
8542
+ * The component can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
8543
+ *
8544
+ * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})
8545
+ * that is passed by the template to the service input of the `kendo-treelist-columnmenu-filter` component.
8258
8546
  *
8259
- * {% meta height:500 %}
8260
- * {% embed_file column-menu/template-filter/app.component.ts preview %}
8261
- * {% embed_file column-menu/template-filter/app.module.ts %}
8262
- * {% embed_file shared/main.ts %}
8263
- * {% embed_file shared/employees.ts %}
8264
- * {% endmeta %}
8265
8547
  */
8266
8548
  class ColumnMenuFilterComponent extends ColumnMenuItemBase {
8267
8549
  constructor(localization) {
@@ -8277,6 +8559,7 @@ class ColumnMenuFilterComponent extends ColumnMenuItemBase {
8277
8559
  this.collapse = new EventEmitter();
8278
8560
  /**
8279
8561
  * Specifies if the content is expanded.
8562
+ * @default false
8280
8563
  */
8281
8564
  this.expanded = false;
8282
8565
  /**
@@ -8338,7 +8621,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8338
8621
 
8339
8622
  const POPUP_CLASS = 'k-grid-columnmenu-popup';
8340
8623
  /**
8341
- * Represents the [column menu]({% slug columnmenu_treelist %}) component.
8624
+ * Represents the [column menu]({% slug columnmenu_treelist %}) component of the TreeList.
8342
8625
  */
8343
8626
  class ColumnMenuComponent {
8344
8627
  constructor(popupService, localization, service) {
@@ -8470,7 +8753,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8470
8753
  [expanded]="expandedFilter" (expand)="onFilterExpand()">
8471
8754
  </kendo-treelist-columnmenu-filter>
8472
8755
  </ng-template>
8473
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ColumnMenuSortComponent, selector: "kendo-treelist-columnmenu-sort" }, { type: ColumnMenuLockComponent, selector: "kendo-treelist-columnmenu-lock" }, { type: ColumnMenuChooserComponent, selector: "kendo-treelist-columnmenu-chooser", inputs: ["expanded"], outputs: ["expand", "collapse"] }, { type: ColumnMenuFilterComponent, selector: "kendo-treelist-columnmenu-filter", inputs: ["expanded"], outputs: ["expand", "collapse"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
8756
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: ColumnMenuSortComponent, selector: "kendo-treelist-columnmenu-sort" }, { type: ColumnMenuLockComponent, selector: "kendo-treelist-columnmenu-lock" }, { type: ColumnMenuChooserComponent, selector: "kendo-treelist-columnmenu-chooser", inputs: ["expanded"], outputs: ["expand", "collapse"] }, { type: ColumnMenuFilterComponent, selector: "kendo-treelist-columnmenu-filter", inputs: ["expanded"], outputs: ["expand", "collapse"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
8474
8757
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
8475
8758
  type: Component,
8476
8759
  args: [{
@@ -8528,6 +8811,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8528
8811
 
8529
8812
  /**
8530
8813
  * Represents a component which accommodates the filter operators.
8814
+ *
8815
+ * @example
8816
+ * ```html
8817
+ * <kendo-treelist ...>
8818
+ * <kendo-treelist-column field="ProductName">
8819
+ * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
8820
+ * <input />
8821
+ * <kendo-treelist-filter-cell-operators
8822
+ * [operators]="[{text: 'Equals', value: 'eq'}]">
8823
+ * </kendo-treelist-filter-cell-operators>
8824
+ * </ng-template>
8825
+ * </kendo-treelist-column>
8826
+ * </kendo-treelist>
8827
+ * ```
8531
8828
  */
8532
8829
  class FilterCellOperatorsComponent {
8533
8830
  constructor(localization) {
@@ -8541,6 +8838,7 @@ class FilterCellOperatorsComponent {
8541
8838
  /**
8542
8839
  * Determines if the list of operators will be displayed.
8543
8840
  * @type {boolean}
8841
+ * @default true
8544
8842
  */
8545
8843
  this.showOperators = true;
8546
8844
  /**
@@ -8629,7 +8927,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
8629
8927
  (click)="clearClick()"
8630
8928
  (keydown)="clearKeydown($event)">
8631
8929
  </button>
8632
- `, isInline: true, components: [{ type: i3$1.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$2.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: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }] });
8930
+ `, isInline: true, components: [{ type: i3$1.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: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }] });
8633
8931
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
8634
8932
  type: Component,
8635
8933
  args: [{
@@ -8748,17 +9046,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8748
9046
  *
8749
9047
  * @example
8750
9048
  *
8751
- * ```html-no-run
8752
- * <kendo-treelist-column field="ProductName" title="Product Name">
8753
- * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
8754
- * <kendo-treelist-string-filter-cell
8755
- * [showOperators]="false"
8756
- * [column]="column"
8757
- * [filter]="filter">
8758
- * </kendo-treelist-string-filter-cell>
8759
- * </ng-template>
8760
- * </kendo-treelist-column>
8761
- * ```
9049
+ * ```html
9050
+ * <kendo-treelist-column field="ProductName">
9051
+ * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
9052
+ * <kendo-treelist-string-filter-cell
9053
+ * [column]="column"
9054
+ * [filter]="filter">
9055
+ * </kendo-treelist-string-filter-cell>
9056
+ * </ng-template>
9057
+ * </kendo-treelist-column>
9058
+ * ```
8762
9059
  */
8763
9060
  class StringFilterCellComponent extends StringFilterComponent {
8764
9061
  constructor(filterService, localization) {
@@ -8767,12 +9064,14 @@ class StringFilterCellComponent extends StringFilterComponent {
8767
9064
  * Determines the delay time (in milliseconds) before the filter value is submitted.
8768
9065
  * A value of `0` indicates no delay. The default value is `500`.
8769
9066
  * @type {boolean}
9067
+ * @default 500
8770
9068
  */
8771
9069
  this.filterDelay = 500;
8772
9070
  /**
8773
9071
  * Determines if the drop-down filter operators will be displayed.
8774
9072
  * The default value is `true`.
8775
9073
  * @type {boolean}
9074
+ * @default true
8776
9075
  */
8777
9076
  this.showOperators = true;
8778
9077
  }
@@ -8785,7 +9084,7 @@ StringFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
8785
9084
  [operators]="operators"
8786
9085
  [defaultOperator]="operator"
8787
9086
  [showOperators]="showOperators">
8788
- <input
9087
+ <input
8789
9088
  class="k-textbox k-input k-input-md k-rounded-md k-input-solid"
8790
9089
  kendoTreeListFocusable
8791
9090
  kendoFilterInput
@@ -8804,7 +9103,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8804
9103
  [operators]="operators"
8805
9104
  [defaultOperator]="operator"
8806
9105
  [showOperators]="showOperators">
8807
- <input
9106
+ <input
8808
9107
  class="k-textbox k-input k-input-md k-rounded-md k-input-solid"
8809
9108
  kendoTreeListFocusable
8810
9109
  kendoFilterInput
@@ -8823,16 +9122,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8823
9122
  * Represents a numeric filter cell.
8824
9123
  *
8825
9124
  * @example
8826
- * ```html-no-run
8827
- * <kendo-treelist-column field="ProductName" title="Product Name">
8828
- * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
8829
- * <kendo-treelist-numeric-filter-cell
8830
- * [column]="column"
8831
- * [filter]="filter">
8832
- * </kendo-treelist-numeric-filter-cell>
8833
- * </ng-template>
8834
- * </kendo-treelist-column>
8835
- * ```
9125
+ * ```html
9126
+ * <kendo-treelist-column field="ProductName" title="Product Name">
9127
+ * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
9128
+ * <kendo-treelist-numeric-filter-cell
9129
+ * [column]="column"
9130
+ * [filter]="filter">
9131
+ * </kendo-treelist-numeric-filter-cell>
9132
+ * </ng-template>
9133
+ * </kendo-treelist-column>
9134
+ * ```
8836
9135
  */
8837
9136
  class NumericFilterCellComponent extends NumericFilterComponent {
8838
9137
  constructor(filterService, localization) {
@@ -8840,14 +9139,15 @@ class NumericFilterCellComponent extends NumericFilterComponent {
8840
9139
  this.localization = localization;
8841
9140
  /**
8842
9141
  * Determines the delay time (in milliseconds) before the filter value is submitted.
8843
- * A value of `0` indicates no delay. The default value is `500`.
9142
+ * A value of `0` indicates no delay.
8844
9143
  * @type {boolean}
9144
+ * @default 500
8845
9145
  */
8846
9146
  this.filterDelay = 500;
8847
9147
  /**
8848
9148
  * Determines if the drop-down filter operators will be displayed.
8849
- * The default value is `true`.
8850
9149
  * @type {boolean}
9150
+ * @default true
8851
9151
  */
8852
9152
  this.showOperators = true;
8853
9153
  }
@@ -8874,7 +9174,7 @@ NumericFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
8874
9174
  [step]="step">
8875
9175
  </kendo-numerictextbox>
8876
9176
  </kendo-treelist-filter-wrapper-cell>
8877
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i4$1.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"] }], directives: [{ type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
9177
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i2.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"] }], directives: [{ type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
8878
9178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterCellComponent, decorators: [{
8879
9179
  type: Component,
8880
9180
  args: [{
@@ -8910,19 +9210,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8910
9210
 
8911
9211
  /**
8912
9212
  * Represents a Boolean filter-cell component.
9213
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-default-filter-operator).
8913
9214
  *
8914
9215
  * @example
8915
- *
8916
- * ```html-no-run
8917
- * <kendo-treelist-column field="ProductName" title="Product Name">
8918
- * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
8919
- * <kendo-treelist-boolean-filter-cell
8920
- * [column]="column"
8921
- * [filter]="filter">
8922
- * </kendo-treelist-boolean-filter-cell>
8923
- * </ng-template>
8924
- * </kendo-treelist-column>
8925
- * ```
9216
+ * ```html
9217
+ * <kendo-treelist-column field="ProductName" title="Product Name">
9218
+ * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
9219
+ * <kendo-treelist-boolean-filter-cell
9220
+ * [column]="column"
9221
+ * [filter]="filter">
9222
+ * </kendo-treelist-boolean-filter-cell>
9223
+ * </ng-template>
9224
+ * </kendo-treelist-column>
9225
+ * ```
8926
9226
  */
8927
9227
  class BooleanFilterCellComponent extends BooleanFilterComponent {
8928
9228
  constructor(filterService, localization, cd) {
@@ -8983,17 +9283,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8983
9283
  *
8984
9284
  * @example
8985
9285
  *
8986
- * ```html-no-run
8987
- * <kendo-treelist-column field="OrderDate" title="Order Date">
8988
- * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
8989
- * <kendo-treelist-date-filter-cell
8990
- * [showOperators]="false"
8991
- * [column]="column"
8992
- * [filter]="filter">
8993
- * </kendo-treelist-date-filter-cell>
8994
- * </ng-template>
8995
- * </kendo-treelist-column>
8996
- * ```
9286
+ * ```html
9287
+ * <kendo-treelist-column field="OrderDate">
9288
+ * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
9289
+ * <kendo-treelist-date-filter-cell
9290
+ * [column]="column"
9291
+ * [filter]="filter">
9292
+ * </kendo-treelist-date-filter-cell>
9293
+ * </ng-template>
9294
+ * </kendo-treelist-column>
9295
+ * ```
8997
9296
  */
8998
9297
  class DateFilterCellComponent extends DateFilterComponent {
8999
9298
  constructor(filterService, localization) {
@@ -9002,6 +9301,7 @@ class DateFilterCellComponent extends DateFilterComponent {
9002
9301
  /**
9003
9302
  * Determines if the drop-down filter operators will be displayed. The default value is `true`.
9004
9303
  * @type {boolean}
9304
+ * @default true
9005
9305
  */
9006
9306
  this.showOperators = true;
9007
9307
  }
@@ -10329,7 +10629,7 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
10329
10629
  [logicalSlaveCellsCount]="unlockedColumnsCount"
10330
10630
  >
10331
10631
  </tr>
10332
- `, isInline: true, components: [{ type: FilterMenuComponent, selector: "kendo-treelist-filter-menu", inputs: ["column", "filter"] }, { type: ColumnMenuComponent, selector: "kendo-treelist-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate"] }, { type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: FilterRowComponent, selector: "[kendoTreeListFilterRow]", inputs: ["columns", "filter", "logicalRowIndex", "lockedColumnsCount"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: LogicalRowDirective, selector: "[kendoTreeListLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem", "isNew"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: LogicalCellDirective, selector: "[kendoTreeListLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "column", "colIndex", "colSpan", "rowSpan", "dataRowIndex", "dataItem", "expandable"] }, { type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { type: i1$3.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: ColumnHandleDirective, selector: "[kendoTreeListColumnHandle]", inputs: ["columns", "column"] }] });
10632
+ `, isInline: true, components: [{ type: FilterMenuComponent, selector: "kendo-treelist-filter-menu", inputs: ["column", "filter"] }, { type: ColumnMenuComponent, selector: "kendo-treelist-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate"] }, { type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: FilterRowComponent, selector: "[kendoTreeListFilterRow]", inputs: ["columns", "filter", "logicalRowIndex", "lockedColumnsCount"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: LogicalRowDirective, selector: "[kendoTreeListLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem", "isNew"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: LogicalCellDirective, selector: "[kendoTreeListLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "column", "colIndex", "colSpan", "rowSpan", "dataRowIndex", "dataItem", "expandable"] }, { type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { type: i1$3.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: ColumnHandleDirective, selector: "[kendoTreeListColumnHandle]", inputs: ["columns", "column"] }] });
10333
10633
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, decorators: [{
10334
10634
  type: Component,
10335
10635
  args: [{
@@ -10700,6 +11000,10 @@ const ICON_CLASS = 'k-icon k-svg-icon';
10700
11000
  * @hidden
10701
11001
  */
10702
11002
  const IGNORE_CONTAINER_CLASSES = 'k-treelist-ignore-click';
11003
+ /**
11004
+ * @hidden
11005
+ */
11006
+ const DRAG_HANDLE_CLASS = 'k-drag-cell';
10703
11007
 
10704
11008
  /* eslint-disable @angular-eslint/pipe-prefix */
10705
11009
  /**
@@ -10766,13 +11070,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10766
11070
  * @hidden
10767
11071
  */
10768
11072
  class CellComponent {
10769
- constructor(editService, focusGroup) {
11073
+ constructor(editService, localization, focusGroup) {
10770
11074
  this.editService = editService;
11075
+ this.localization = localization;
10771
11076
  this.focusGroup = focusGroup;
10772
11077
  this.isNew = false;
10773
11078
  this.level = 0;
10774
11079
  this.caretAltDownIcon = caretAltDownIcon;
10775
11080
  this.caretAltRightIcon = caretAltRightIcon;
11081
+ this.caretAltLeftIcon = caretAltLeftIcon;
11082
+ this.reorderIcon = reorderIcon;
10776
11083
  this.cellContext = {};
10777
11084
  this._templateContext = {};
10778
11085
  this._editTemplateContext = {};
@@ -10788,7 +11095,13 @@ class CellComponent {
10788
11095
  get textNoWrapClass() {
10789
11096
  return this.column.expandable;
10790
11097
  }
10791
- set viewItem(value) {
11098
+ get dragHandleCellClass() {
11099
+ return isRowReorderColumn(this.column);
11100
+ }
11101
+ get dragRowHandleLabel() {
11102
+ return isRowReorderColumn(this.column) ? this.localization.get('dragRowHandleLabel') : undefined;
11103
+ }
11104
+ set viewItem(value) {
10792
11105
  this._viewItem = value;
10793
11106
  this.cellContext.viewItem = this.viewItem;
10794
11107
  }
@@ -10854,9 +11167,25 @@ class CellComponent {
10854
11167
  context.loading = this.loading;
10855
11168
  context.rowIndex = this.viewItem.rowIndex;
10856
11169
  }
11170
+ get arrowIcon() {
11171
+ const icon = !this.isExpanded ?
11172
+ !this.localization.rtl ?
11173
+ 'caret-alt-right' :
11174
+ 'caret-alt-left' :
11175
+ 'caret-alt-down';
11176
+ return icon;
11177
+ }
11178
+ get arrowSVGIcon() {
11179
+ const icon = !this.isExpanded ?
11180
+ !this.localization.rtl ?
11181
+ this.caretAltRightIcon :
11182
+ this.caretAltLeftIcon :
11183
+ this.caretAltDownIcon;
11184
+ return icon;
11185
+ }
10857
11186
  }
10858
- CellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, deps: [{ token: EditService }, { token: FocusGroup }], target: i0.ɵɵFactoryTarget.Component });
10859
- CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CellComponent, selector: "[kendoTreeListCell]", inputs: { column: "column", columnIndex: "columnIndex", isNew: "isNew", level: "level", hasChildren: "hasChildren", isExpanded: "isExpanded", loading: "loading", expandIcons: "expandIcons", selected: "selected", dataItem: "dataItem", viewItem: "viewItem" }, host: { properties: { "class.k-command-cell": "this.commandCellClass", "class.k-checkbox-cell": "this.isCheckboxColumn", "class.k-text-nowrap": "this.textNoWrapClass" } }, ngImport: i0, template: `
11187
+ CellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, deps: [{ token: EditService }, { token: i1$1.LocalizationService }, { token: FocusGroup }], target: i0.ɵɵFactoryTarget.Component });
11188
+ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CellComponent, selector: "[kendoTreeListCell]", inputs: { column: "column", columnIndex: "columnIndex", isNew: "isNew", level: "level", hasChildren: "hasChildren", isExpanded: "isExpanded", loading: "loading", expandIcons: "expandIcons", selected: "selected", dataItem: "dataItem", viewItem: "viewItem" }, host: { properties: { "class.k-command-cell": "this.commandCellClass", "class.k-checkbox-cell": "this.isCheckboxColumn", "class.k-text-nowrap": "this.textNoWrapClass", "class.k-drag-cell": "this.dragHandleCellClass", "class.k-touch-action-none": "this.dragHandleCellClass", "attr.aria-label": "this.dragRowHandleLabel" } }, ngImport: i0, template: `
10860
11189
  <ng-container [ngSwitch]="isEdited">
10861
11190
  <ng-container *ngSwitchCase="false">
10862
11191
  <ng-container *ngIf="column.expandable">
@@ -10864,8 +11193,8 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
10864
11193
  <kendo-icon-wrapper
10865
11194
  aria-hidden="true"
10866
11195
  *ngIf="hasChildren && expandIcons && !loading"
10867
- [name]="isExpanded ? 'caret-alt-down' : 'caret-alt-right'"
10868
- [svgIcon]="isExpanded ? caretAltDownIcon : caretAltRightIcon"></kendo-icon-wrapper>
11196
+ [name]="arrowIcon"
11197
+ [svgIcon]="arrowSVGIcon"></kendo-icon-wrapper>
10869
11198
  <span class="k-icon k-i-loading" *ngIf="hasChildren && expandIcons && loading"></span>
10870
11199
  </ng-container>
10871
11200
  <ng-container *ngIf="column.templateRef"
@@ -10885,6 +11214,12 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
10885
11214
  class="k-checkbox k-checkbox-md k-rounded-md"
10886
11215
  [checked]="selected" />
10887
11216
  </ng-template>
11217
+ <ng-container *ngIf="column.isRowReorderColumn && !isNew">
11218
+ <kendo-icon-wrapper
11219
+ name="reorder"
11220
+ [svgIcon]="reorderIcon">
11221
+ </kendo-icon-wrapper>
11222
+ </ng-container>
10888
11223
  </ng-container>
10889
11224
  <ng-container *ngSwitchCase="true">
10890
11225
  <ng-container
@@ -10925,7 +11260,7 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
10925
11260
  </ng-container>
10926
11261
  </ng-container>
10927
11262
  </ng-container>
10928
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i4$1.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: i3$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.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i3$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: { "levelItems": LevelItemsPipe, "valueOf": FieldAccessorPipe } });
11263
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i2.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: i3$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.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i3$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: { "levelItems": LevelItemsPipe, "valueOf": FieldAccessorPipe } });
10929
11264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, decorators: [{
10930
11265
  type: Component,
10931
11266
  args: [{
@@ -10938,8 +11273,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10938
11273
  <kendo-icon-wrapper
10939
11274
  aria-hidden="true"
10940
11275
  *ngIf="hasChildren && expandIcons && !loading"
10941
- [name]="isExpanded ? 'caret-alt-down' : 'caret-alt-right'"
10942
- [svgIcon]="isExpanded ? caretAltDownIcon : caretAltRightIcon"></kendo-icon-wrapper>
11276
+ [name]="arrowIcon"
11277
+ [svgIcon]="arrowSVGIcon"></kendo-icon-wrapper>
10943
11278
  <span class="k-icon k-i-loading" *ngIf="hasChildren && expandIcons && loading"></span>
10944
11279
  </ng-container>
10945
11280
  <ng-container *ngIf="column.templateRef"
@@ -10959,6 +11294,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10959
11294
  class="k-checkbox k-checkbox-md k-rounded-md"
10960
11295
  [checked]="selected" />
10961
11296
  </ng-template>
11297
+ <ng-container *ngIf="column.isRowReorderColumn && !isNew">
11298
+ <kendo-icon-wrapper
11299
+ name="reorder"
11300
+ [svgIcon]="reorderIcon">
11301
+ </kendo-icon-wrapper>
11302
+ </ng-container>
10962
11303
  </ng-container>
10963
11304
  <ng-container *ngSwitchCase="true">
10964
11305
  <ng-container
@@ -11001,7 +11342,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11001
11342
  </ng-container>
11002
11343
  `
11003
11344
  }]
11004
- }], ctorParameters: function () { return [{ type: EditService }, { type: FocusGroup }]; }, propDecorators: { commandCellClass: [{
11345
+ }], ctorParameters: function () { return [{ type: EditService }, { type: i1$1.LocalizationService }, { type: FocusGroup }]; }, propDecorators: { commandCellClass: [{
11005
11346
  type: HostBinding,
11006
11347
  args: ['class.k-command-cell']
11007
11348
  }], isCheckboxColumn: [{
@@ -11010,6 +11351,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11010
11351
  }], textNoWrapClass: [{
11011
11352
  type: HostBinding,
11012
11353
  args: ['class.k-text-nowrap']
11354
+ }], dragHandleCellClass: [{
11355
+ type: HostBinding,
11356
+ args: ['class.k-drag-cell']
11357
+ }, {
11358
+ type: HostBinding,
11359
+ args: ['class.k-touch-action-none']
11360
+ }], dragRowHandleLabel: [{
11361
+ type: HostBinding,
11362
+ args: ['attr.aria-label']
11013
11363
  }], column: [{
11014
11364
  type: Input
11015
11365
  }], columnIndex: [{
@@ -11214,8 +11564,10 @@ class TableBodyComponent {
11214
11564
  clickHandler(eventArg) {
11215
11565
  const target = eventArg.target;
11216
11566
  const { cell, row } = this.targetElements(target);
11217
- if (cell && !hasClasses(cell, NON_DATA_CELL_CLASSES) &&
11218
- !hasClasses(row, NON_DATA_ROW_CLASSES)) {
11567
+ const forbiddenCellClasses = NON_DATA_CELL_CLASSES.concat(` ${DRAG_HANDLE_CLASS}`);
11568
+ const isValidCell = cell ? !hasClasses(cell, forbiddenCellClasses) : false;
11569
+ const isValidRow = row ? !hasClasses(row, NON_DATA_ROW_CLASSES) : false;
11570
+ if (isValidRow && isValidCell) {
11219
11571
  if (this.expandClick(eventArg, row) || this.checkboxClick(cell, row, eventArg)) {
11220
11572
  return;
11221
11573
  }
@@ -12494,6 +12846,10 @@ class PagerElementComponent {
12494
12846
  this.skip = this.pagerContext.skip;
12495
12847
  this.pageSize = this.pagerContext.pageSize;
12496
12848
  this.allCount = this.pagerContext.allCount;
12849
+ this.caretAltLeftIcon = caretAltLeftIcon;
12850
+ this.caretAltToLeftIcon = caretAltToLeftIcon;
12851
+ this.caretAltRightIcon = caretAltRightIcon;
12852
+ this.caretAltToRightIcon = caretAltToRightIcon;
12497
12853
  }
12498
12854
  /**
12499
12855
  * @hidden
@@ -12551,6 +12907,18 @@ class PagerElementComponent {
12551
12907
  this.subscriptions.unsubscribe();
12552
12908
  }
12553
12909
  }
12910
+ get prevArrowIcons() {
12911
+ return !this.localization.rtl ? ['caret-alt-to-left', 'caret-alt-left'] : ['caret-alt-to-right', 'caret-alt-right'];
12912
+ }
12913
+ get prevArrowSVGIcons() {
12914
+ return !this.localization.rtl ? [this.caretAltToLeftIcon, this.caretAltLeftIcon] : [this.caretAltToRightIcon, this.caretAltRightIcon];
12915
+ }
12916
+ get nextArrowIcons() {
12917
+ return !this.localization.rtl ? ['caret-alt-right', 'caret-alt-to-right'] : ['caret-alt-left', 'caret-alt-to-left'];
12918
+ }
12919
+ get nextArrowSVGIcons() {
12920
+ return !this.localization.rtl ? [this.caretAltRightIcon, this.caretAltToRightIcon] : [this.caretAltLeftIcon, this.caretAltToLeftIcon];
12921
+ }
12554
12922
  }
12555
12923
  PagerElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerElementComponent, deps: [{ token: i1$1.LocalizationService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
12556
12924
  PagerElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerElementComponent, ngImport: i0 });
@@ -12567,8 +12935,6 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
12567
12935
  constructor(localization, pagerContext, cd, navigationService) {
12568
12936
  super(localization, pagerContext, cd);
12569
12937
  this.navigationService = navigationService;
12570
- this.caretAltLeftIcon = caretAltLeftIcon;
12571
- this.caretAltToLeftIcon = caretAltToLeftIcon;
12572
12938
  }
12573
12939
  /**
12574
12940
  * @hidden
@@ -12607,8 +12973,8 @@ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
12607
12973
  [attr.aria-label]="textFor('pagerFirstPage')"
12608
12974
  (click)="onButtonClick('firstPage')"
12609
12975
  role="button"
12610
- icon="caret-alt-to-left"
12611
- [svgIcon]="caretAltToLeftIcon"
12976
+ [icon]="prevArrowIcons[0]"
12977
+ [svgIcon]="prevArrowSVGIcons[0]"
12612
12978
  class="k-pager-nav k-pager-first"
12613
12979
  [disabled]="disabled"
12614
12980
  fillMode="flat"
@@ -12621,15 +12987,15 @@ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
12621
12987
  [enabled]="!disabled"
12622
12988
  class="k-pager-nav"
12623
12989
  [disabled]="disabled"
12624
- icon="caret-alt-left"
12625
- [svgIcon]="caretAltLeftIcon"
12990
+ [icon]="prevArrowIcons[1]"
12991
+ [svgIcon]="prevArrowSVGIcons[1]"
12626
12992
  fillMode="flat"
12627
12993
  rounded="none"
12628
12994
  [title]="textFor('pagerPreviousPage')"
12629
12995
  [attr.aria-label]="textFor('pagerPreviousPage')"
12630
12996
  (click)="onButtonClick('prevPage')">
12631
12997
  </button>
12632
- `, isInline: true, components: [{ type: i4$2.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: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12998
+ `, isInline: true, components: [{ 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: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12633
12999
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
12634
13000
  type: Component,
12635
13001
  args: [{
@@ -12645,8 +13011,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12645
13011
  [attr.aria-label]="textFor('pagerFirstPage')"
12646
13012
  (click)="onButtonClick('firstPage')"
12647
13013
  role="button"
12648
- icon="caret-alt-to-left"
12649
- [svgIcon]="caretAltToLeftIcon"
13014
+ [icon]="prevArrowIcons[0]"
13015
+ [svgIcon]="prevArrowSVGIcons[0]"
12650
13016
  class="k-pager-nav k-pager-first"
12651
13017
  [disabled]="disabled"
12652
13018
  fillMode="flat"
@@ -12659,8 +13025,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12659
13025
  [enabled]="!disabled"
12660
13026
  class="k-pager-nav"
12661
13027
  [disabled]="disabled"
12662
- icon="caret-alt-left"
12663
- [svgIcon]="caretAltLeftIcon"
13028
+ [icon]="prevArrowIcons[1]"
13029
+ [svgIcon]="prevArrowSVGIcons[1]"
12664
13030
  fillMode="flat"
12665
13031
  rounded="none"
12666
13032
  [title]="textFor('pagerPreviousPage')"
@@ -12673,7 +13039,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12673
13039
 
12674
13040
  /* eslint-disable @typescript-eslint/no-inferrable-types */
12675
13041
  /**
12676
- * Displays numeric buttons to enable navigation between the pages.
13042
+ * Displays numeric buttons to enable navigation between the pages ([see example]({% slug paging_treelist %}#toc-pager-templates)).
12677
13043
  */
12678
13044
  class PagerNumericButtonsComponent extends PagerElementComponent {
12679
13045
  constructor(localization, cd, pagerContext) {
@@ -12814,7 +13180,7 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
12814
13180
  [attr.title]="pageLabel(end + 1)"
12815
13181
  (click)="changePage(end)">...</button>
12816
13182
  </div>
12817
- `, isInline: true, components: [{ type: i4$2.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: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13183
+ `, isInline: true, components: [{ 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: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12818
13184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNumericButtonsComponent, decorators: [{
12819
13185
  type: Component,
12820
13186
  args: [{
@@ -12983,7 +13349,7 @@ PagerInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
12983
13349
  </kendo-numerictextbox>
12984
13350
  {{textFor('pagerOf')}} {{totalPages}}
12985
13351
  </span>
12986
- `, isInline: true, components: [{ type: i4$1.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"] }], directives: [{ type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: i1$3.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
13352
+ `, isInline: true, components: [{ type: i2.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"] }], directives: [{ type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: i1$3.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
12987
13353
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInputComponent, decorators: [{
12988
13354
  type: Component,
12989
13355
  args: [{
@@ -13028,8 +13394,6 @@ class PagerNextButtonsComponent extends PagerElementComponent {
13028
13394
  constructor(localization, pagerContext, cd, navigationService) {
13029
13395
  super(localization, pagerContext, cd);
13030
13396
  this.navigationService = navigationService;
13031
- this.caretAltRightIcon = caretAltRightIcon;
13032
- this.caretAltToRightIcon = caretAltToRightIcon;
13033
13397
  }
13034
13398
  /**
13035
13399
  * @hidden
@@ -13064,8 +13428,8 @@ PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
13064
13428
  type="button"
13065
13429
  kendoTreeListFocusable
13066
13430
  [enabled]="!disabled"
13067
- icon="caret-alt-right"
13068
- [svgIcon]="caretAltRightIcon"
13431
+ [icon]="nextArrowIcons[0]"
13432
+ [svgIcon]="nextArrowSVGIcons[0]"
13069
13433
  fillMode="flat"
13070
13434
  rounded="none"
13071
13435
  class="k-pager-nav"
@@ -13079,8 +13443,8 @@ PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
13079
13443
  type="button"
13080
13444
  kendoTreeListFocusable
13081
13445
  [enabled]="!disabled"
13082
- icon="caret-alt-to-right"
13083
- [svgIcon]="caretAltToRightIcon"
13446
+ [icon]="nextArrowIcons[1]"
13447
+ [svgIcon]="nextArrowSVGIcons[1]"
13084
13448
  fillMode="flat"
13085
13449
  rounded="none"
13086
13450
  class="k-pager-nav k-pager-last"
@@ -13089,7 +13453,7 @@ PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
13089
13453
  [attr.aria-label]="textFor('pagerLastPage')"
13090
13454
  (click)="onButtonClick('lastPage')">
13091
13455
  </button>
13092
- `, isInline: true, components: [{ type: i4$2.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: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13456
+ `, isInline: true, components: [{ 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: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13093
13457
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNextButtonsComponent, decorators: [{
13094
13458
  type: Component,
13095
13459
  args: [{
@@ -13101,8 +13465,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13101
13465
  type="button"
13102
13466
  kendoTreeListFocusable
13103
13467
  [enabled]="!disabled"
13104
- icon="caret-alt-right"
13105
- [svgIcon]="caretAltRightIcon"
13468
+ [icon]="nextArrowIcons[0]"
13469
+ [svgIcon]="nextArrowSVGIcons[0]"
13106
13470
  fillMode="flat"
13107
13471
  rounded="none"
13108
13472
  class="k-pager-nav"
@@ -13116,8 +13480,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13116
13480
  type="button"
13117
13481
  kendoTreeListFocusable
13118
13482
  [enabled]="!disabled"
13119
- icon="caret-alt-to-right"
13120
- [svgIcon]="caretAltToRightIcon"
13483
+ [icon]="nextArrowIcons[1]"
13484
+ [svgIcon]="nextArrowSVGIcons[1]"
13121
13485
  fillMode="flat"
13122
13486
  rounded="none"
13123
13487
  class="k-pager-nav k-pager-last"
@@ -13289,7 +13653,7 @@ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
13289
13653
  [attr.aria-label]="textFor('pagerItemsPerPage')"
13290
13654
  (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
13291
13655
  <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
13292
- `, isInline: true, components: [{ type: i3$1.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$3.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional"], exportAs: ["kendoLabel"] }], directives: [{ type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13656
+ `, isInline: true, components: [{ type: i3$1.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$2.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }], directives: [{ type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13293
13657
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
13294
13658
  type: Component,
13295
13659
  args: [{
@@ -13691,7 +14055,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13691
14055
  class Messages extends ComponentMessages {
13692
14056
  }
13693
14057
  Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
13694
- Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Messages, inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItemsTotal: "pagerItemsTotal", selectPage: "selectPage", filter: "filter", 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", columnMenu: "columnMenu", columns: "columns", lock: "lock", unlock: "unlock", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel" }, usesInheritance: true, ngImport: i0 });
14058
+ Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Messages, inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItemsTotal: "pagerItemsTotal", selectPage: "selectPage", filter: "filter", 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", columnMenu: "columnMenu", columns: "columns", lock: "lock", unlock: "unlock", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", dragRowHandleLabel: "dragRowHandleLabel" }, usesInheritance: true, ngImport: i0 });
13695
14059
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, decorators: [{
13696
14060
  type: Directive,
13697
14061
  args: [{}]
@@ -13803,6 +14167,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13803
14167
  type: Input
13804
14168
  }], bottomToolbarLabel: [{
13805
14169
  type: Input
14170
+ }], dragRowHandleLabel: [{
14171
+ type: Input
13806
14172
  }] } });
13807
14173
 
13808
14174
  /**
@@ -14117,15 +14483,14 @@ const isInEditedCell = (element, treelistElement) => closest(element, matchesCla
14117
14483
  /**
14118
14484
  * Represents the Kendo UI TreeList component for Angular.
14119
14485
  *
14120
- * {% meta height:470 %}
14121
- * {% embed_file data-binding/flat/app.component.ts preview %}
14122
- * {% embed_file data-binding/flat/app.module.ts %}
14123
- * {% embed_file shared/main.ts %}
14124
- * {% embed_file shared/employees.ts %}
14125
- * {% endmeta %}
14486
+ * @example
14487
+ * ```html
14488
+ * <kendo-treelist [kendoTreeListFlatBinding]="data" ...></kendo-treelist>
14489
+ * ```
14490
+ *
14126
14491
  */
14127
14492
  class TreeListComponent {
14128
- constructor(supportService, wrapper, changeNotification, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, expandStateService, optionChanges, selectionService, localization, ctx) {
14493
+ constructor(supportService, wrapper, changeNotification, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, expandStateService, optionChanges, selectionService, localization, ctx, rowReorderService) {
14129
14494
  this.supportService = supportService;
14130
14495
  this.wrapper = wrapper;
14131
14496
  this.changeNotification = changeNotification;
@@ -14150,6 +14515,7 @@ class TreeListComponent {
14150
14515
  this.selectionService = selectionService;
14151
14516
  this.localization = localization;
14152
14517
  this.ctx = ctx;
14518
+ this.rowReorderService = rowReorderService;
14153
14519
  /**
14154
14520
  * Defines the page size used by the TreeList when [paging]({% slug paging_treelist %}) is enabled.
14155
14521
  *
@@ -14158,10 +14524,7 @@ class TreeListComponent {
14158
14524
  this.pageSize = 10;
14159
14525
  /**
14160
14526
  * Defines the scroll mode used by the TreeList.
14161
- *
14162
- * The available options are:
14163
- * - `none`&mdash;Renders no scrollbar.
14164
- * - `scrollable`&mdash;The default scroll mode. It requires the setting of the `height` option.
14527
+ * @default 'scrollable'
14165
14528
  */
14166
14529
  this.scrollable = 'scrollable';
14167
14530
  /**
@@ -14169,49 +14532,12 @@ class TreeListComponent {
14169
14532
  *
14170
14533
  * By default, the TreeList tracks changes by the index of the data item.
14171
14534
  * Edited rows are tracked by reference.
14172
- * In some cases, you might need to override the default behavior,
14173
- * for example, when you implement editing with immutable data items.
14174
- *
14175
- * The following example demonstrates how to track items only by index.
14176
- *
14177
- * @example
14178
- * ```ts
14179
- * import { Component } from '@angular/core';
14180
- * import { TreeListItem } from '@progress/kendo-angular-treelist';
14181
- *
14182
- * _@Component({
14183
- * selector: 'my-app',
14184
- * template: `
14185
- * <kendo-treelist [data]="treelistData" [trackBy]="trackBy">
14186
- * </kendo-treelist>
14187
- * `
14188
- * })
14189
- * class AppComponent {
14190
- * public treelistData: any[] = products;
14191
14535
  *
14192
- * public trackBy(index: number, item: TreeListItem): any {
14193
- * console.log(item);
14194
- * return index;
14195
- * }
14196
- * }
14197
- *
14198
- * const products = [{
14199
- * "ProductID": 1,
14200
- * "ProductName": "Chai",
14201
- * "UnitPrice": 18.0000,
14202
- * "Discontinued": true
14203
- * }, {
14204
- * "ProductID": 2,
14205
- * "ProductName": "Chang",
14206
- * "UnitPrice": 19.0000,
14207
- * "Discontinued": false
14208
- * }
14209
- * ];
14210
- * ```
14211
14536
  */
14212
14537
  this.trackBy = defaultTrackBy;
14213
14538
  /**
14214
14539
  * If set to `true`, the treelist will render only the columns in the current viewport.
14540
+ * @default false
14215
14541
  */
14216
14542
  this.virtualColumns = false;
14217
14543
  /**
@@ -14225,18 +14551,12 @@ class TreeListComponent {
14225
14551
  /**
14226
14552
  * Configures the pager of the TreeList ([see example]({% slug paging_treelist %})).
14227
14553
  *
14228
- * The available options are:
14229
- * - `buttonCount: Number`&mdash;Sets the maximum numeric buttons count before the buttons are collapsed. Defaults to `10`.
14230
- * - `info: Boolean`&mdash;Toggles the information about the current page and the total number of records. Defaults to `true`.
14231
- * - `type: PagerType`&mdash;Accepts the `numeric` (buttons with numbers) and `input` (input for typing the page number) values. Defaults to `'numeric'`.
14232
- * - `pageSizes: Boolean` or `Array<number>`&mdash;Shows a menu for selecting the page size. Defaults to `false`.
14233
- * - `previousNext: Boolean`&mdash;Toggles the **Previous** and **Next** buttons. Defaults to `true`.
14234
- * - `responsive: Boolean`&mdash;Toggles the built-in responsive behavior of the Pager. Defaults to `true`.
14235
14554
  */
14236
14555
  this.pageable = false;
14237
14556
  /**
14238
14557
  * If set to `true`, the user can use dedicated shortcuts to interact with the TreeList.
14239
14558
  * By default, navigation is disabled and the TreeList content is accessible in the normal tab sequence.
14559
+ * @default false
14240
14560
  */
14241
14561
  this.navigable = false;
14242
14562
  /**
@@ -14245,6 +14565,8 @@ class TreeListComponent {
14245
14565
  * Columns with `autoSize` set to `false` are excluded.
14246
14566
  * To dynamically update the column width to match the new content,
14247
14567
  * refer to [this example]({% slug resizing_columns_treelist %}).
14568
+ *
14569
+ * @default false
14248
14570
  */
14249
14571
  this.autoSize = false;
14250
14572
  /**
@@ -14276,7 +14598,9 @@ class TreeListComponent {
14276
14598
  /**
14277
14599
  * Specifies if the header of the treelist will be hidden. The header is visible by default.
14278
14600
  *
14279
- * > The header includes column headers and the [filter row]({% slug filtering_treelist %}#toc-filter-row).
14601
+ * The header includes column headers and the [filter row]({% slug filtering_treelist %}#toc-filter-row).
14602
+ *
14603
+ * @default false
14280
14604
  */
14281
14605
  this.hideHeader = false;
14282
14606
  /**
@@ -14385,6 +14709,11 @@ class TreeListComponent {
14385
14709
  * Used by the expand directive and the Gantt component.
14386
14710
  */
14387
14711
  this.expandStateChange = new EventEmitter();
14712
+ /**
14713
+ * Fires when the user drops the dragged row and reordering is performed.
14714
+ * Emits the [RowReorderEvent]({% slug api_treelist_rowreorderevent %}).
14715
+ */
14716
+ this.rowReorder = new EventEmitter();
14388
14717
  /**
14389
14718
  * @hidden
14390
14719
  */
@@ -14414,6 +14743,11 @@ class TreeListComponent {
14414
14743
  this._sort = new Array();
14415
14744
  this._skip = 0;
14416
14745
  this.cachedWindowWidth = 0;
14746
+ this._rowReorderable = false;
14747
+ /**
14748
+ * @hidden
14749
+ */
14750
+ this.treeListData = () => { return this.view; };
14417
14751
  this._rowClass = () => null;
14418
14752
  validatePackage(packageMetadata);
14419
14753
  this.subscriptions.add(localization.changes.subscribe(({ rtl }) => {
@@ -14476,6 +14810,11 @@ class TreeListComponent {
14476
14810
  this.view.clear();
14477
14811
  this.expandStateChange.emit(args);
14478
14812
  }
14813
+ if (this.rowReorderable) {
14814
+ this.ngZone.onStable.pipe(take(2)).subscribe(() => {
14815
+ this.notifyReorderContainers();
14816
+ });
14817
+ }
14479
14818
  }));
14480
14819
  this.subscriptions.add(this.view.childrenLoaded.subscribe(() => {
14481
14820
  this.changeDetectorRef.detectChanges();
@@ -14581,48 +14920,6 @@ class TreeListComponent {
14581
14920
  /**
14582
14921
  * Defines a function that is executed for every data row in the component.
14583
14922
  *
14584
- * @example
14585
- * ```ts
14586
- * import { Component, ViewEncapsulation } from '@angular/core';
14587
- * import { RowClassArgs } from '@progress/kendo-angular-treelist';
14588
- *
14589
- * _@Component({
14590
- * selector: 'my-app',
14591
- * encapsulation: ViewEncapsulation.None,
14592
- * styles: [`
14593
- * .k-treelist tr.even { background-color: #f45c42; }
14594
- * .k-treelist tr.odd { background-color: #41f4df; }
14595
- * `],
14596
- * template: `
14597
- * <kendo-treelist [data]="treelistData" [rowClass]="rowCallback">
14598
- * </kendo-treelist>
14599
- * `
14600
- * })
14601
- * class AppComponent {
14602
- * public treelistData: any[] = products;
14603
- *
14604
- * public rowCallback(context: RowClassArgs) {
14605
- * const isEven = context.index % 2 === 0;
14606
- * return {
14607
- * even: isEven,
14608
- * odd: !isEven
14609
- * };
14610
- * }
14611
- * }
14612
- *
14613
- * const products = [{
14614
- * "ProductID": 1,
14615
- * "ProductName": "Chai",
14616
- * "UnitPrice": 18.0000,
14617
- * "Discontinued": true
14618
- * }, {
14619
- * "ProductID": 2,
14620
- * "ProductName": "Chang",
14621
- * "UnitPrice": 19.0000,
14622
- * "Discontinued": false
14623
- * }
14624
- * ];
14625
- * ```
14626
14923
  */
14627
14924
  set rowClass(fn) {
14628
14925
  if (typeof fn !== 'function') {
@@ -14666,7 +14963,7 @@ class TreeListComponent {
14666
14963
  this.selectionService.settings = value;
14667
14964
  }
14668
14965
  /**
14669
- * Provides a callback that determines if the given row / cell is selected.
14966
+ * Provides a callback that determines if the given row or cell is selected.
14670
14967
  */
14671
14968
  set isSelected(value) {
14672
14969
  if (typeof value !== 'function' && isDevMode()) {
@@ -14674,6 +14971,27 @@ class TreeListComponent {
14674
14971
  }
14675
14972
  this.selectionService.isSelected = value;
14676
14973
  }
14974
+ /**
14975
+ * Enables the [row reordering]({% slug treelist_row_reordering %}) of the TreeList.
14976
+ * @default false
14977
+ */
14978
+ set rowReorderable(value) {
14979
+ var _a;
14980
+ this._rowReorderable = value;
14981
+ if (value) {
14982
+ this.rowReorderSubscription = this.rowReorderService.rowReorder.subscribe(args => {
14983
+ hasObservers(this.rowReorder) && this.ngZone.run(() => {
14984
+ this.rowReorder.emit(args);
14985
+ });
14986
+ });
14987
+ }
14988
+ else {
14989
+ (_a = this.rowReorderSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
14990
+ }
14991
+ }
14992
+ get rowReorderable() {
14993
+ return this._rowReorderable;
14994
+ }
14677
14995
  /**
14678
14996
  * @hidden
14679
14997
  */
@@ -14935,6 +15253,30 @@ class TreeListComponent {
14935
15253
  this.ngZone = null;
14936
15254
  clearTimeout(this.pageChangeTimeout);
14937
15255
  }
15256
+ /**
15257
+ * @hidden
15258
+ */
15259
+ handleReorderEvents(ev, evType) {
15260
+ this.rowReorderService[evType](ev);
15261
+ }
15262
+ /**
15263
+ * @hidden
15264
+ */
15265
+ getDefaultSelectors(type) {
15266
+ return this.rowReorderService.defaultSelectors[type];
15267
+ }
15268
+ /**
15269
+ * @hidden
15270
+ */
15271
+ getHintSettings(setting) {
15272
+ return this.rowReorderService[setting];
15273
+ }
15274
+ /**
15275
+ * @hidden
15276
+ */
15277
+ get hintText() {
15278
+ return this.rowReorderService.getDefaultHintText(this.columnList, this.view);
15279
+ }
14938
15280
  /**
14939
15281
  * @hidden
14940
15282
  */
@@ -15076,7 +15418,7 @@ class TreeListComponent {
15076
15418
  * Exports the TreeList element to a Drawing [`Group`]({% slug api_kendo-drawing_group %}) by using the `kendo-treelist-pdf` component options.
15077
15419
  * ([see example]({% slug pdfexport_treelist %}#toc-exporting-multiple-treelists-to-the-same-pdf)).
15078
15420
  *
15079
- * @return {Promise} - A promise that will be resolved with the Drawing `Group`.
15421
+ * @return {Promise} A promise that will be resolved with the Drawing `Group`.
15080
15422
  */
15081
15423
  drawPDF() {
15082
15424
  const promise = createPromise();
@@ -15094,64 +15436,8 @@ class TreeListComponent {
15094
15436
  * so that the whole text fits without wrapping. This method expects the TreeList
15095
15437
  * to be resizable (set `resizable` to `true`).
15096
15438
  * Makes sense to execute this method only
15097
- * after the TreeList is already populated with data.
15098
- *
15099
- * @example
15100
- * ```ts
15101
- * _@Component({
15102
- * selector: 'my-app',
15103
- * template: `
15104
- * <kendo-treelist
15105
- * #treelist
15106
- * [data]="treelistData"
15107
- * [resizable]="true"
15108
- * style="height: 300px">
15109
- * <ng-template kendoTreeListToolbarTemplate>
15110
- * <button kendoButton (click)="treelist.autoFitColumn(groupColumn)">
15111
- * Auto-fit the group column
15112
- * </button>
15113
- * </ng-template>
15114
- * <kendo-treelist-column-group #groupColumn title="Product Info">
15115
- * <kendo-treelist-column
15116
- * field="ProductID"
15117
- * [width]="50"
15118
- * [minResizableWidth]="30"
15119
- * title="ID">
15120
- * </kendo-treelist-column>
15121
- *
15122
- * <kendo-treelist-column
15123
- * field="ProductName"
15124
- * title="Product Name">
15125
- * </kendo-treelist-column>
15126
- * </kendo-treelist-column-group>
15127
- *
15128
- * <kendo-treelist-column
15129
- * field="UnitPrice"
15130
- * title="Unit Price"
15131
- * [width]="180"
15132
- * filter="numeric"
15133
- * format="{0:c}">
15134
- * </kendo-treelist-column>
15135
- * </kendo-treelist>
15136
- * `
15137
- * })
15138
- * class AppComponent {
15139
- * public treelistData: any[] = products;
15140
- * }
15439
+ * after the TreeList is already populated with data. [See example](slug:resizing_columns_treelist#toc-auto-fitting-the-content).
15141
15440
  *
15142
- * const products = [{
15143
- * "ProductID": 1,
15144
- * "ProductName": "Chai",
15145
- * "UnitPrice": 18.0000,
15146
- * "Discontinued": true
15147
- * }, {
15148
- * "ProductID": 2,
15149
- * "ProductName": "Chang",
15150
- * "UnitPrice": 19.0000,
15151
- * "Discontinued": false
15152
- * }
15153
- * ];
15154
- * ```
15155
15441
  */
15156
15442
  autoFitColumn(column) {
15157
15443
  this.columnResizingService.autoFit(column);
@@ -15161,69 +15447,7 @@ class TreeListComponent {
15161
15447
  * If no columns are specified, `autoFitColumns` is applied to all columns.
15162
15448
  *
15163
15449
  * This method requires the TreeList to be resizable (set `resizable` to `true`).
15164
- *
15165
- * @example
15166
- * ```ts
15167
- * _@Component({
15168
- * selector: 'my-app',
15169
- * template: `
15170
- * <kendo-treelist
15171
- * #treelist
15172
- * [data]="treelistData"
15173
- * [resizable]="true"
15174
- * style="height: 300px">
15175
- * <ng-template kendoTreeListToolbarTemplate>
15176
- * <button kendoButton (click)="treelist.autoFitColumns([firstColumn, lastColumn])">
15177
- * Auto-fit the first and last column
15178
- * </button>
15179
- * <button kendoButton (click)="treelist.autoFitColumns()">
15180
- * Auto-fit all columns
15181
- * </button>
15182
- * </ng-template>
15183
- * <kendo-treelist-column-group title="Product Info">
15184
- * <kendo-treelist-column
15185
- * #firstColumn
15186
- * field="ProductID"
15187
- * [width]="50"
15188
- * [minResizableWidth]="30"
15189
- * title="ID">
15190
- * </kendo-treelist-column>
15191
- *
15192
- * <kendo-treelist-column
15193
- * field="ProductName"
15194
- * title="Product Name"
15195
- * >
15196
- * </kendo-treelist-column>
15197
- * </kendo-treelist-column-group>
15198
- *
15199
- * <kendo-treelist-column
15200
- * #lastColumn
15201
- * field="UnitPrice"
15202
- * title="Unit Price"
15203
- * [width]="180"
15204
- * filter="numeric"
15205
- * format="{0:c}">
15206
- * </kendo-treelist-column>
15207
- * </kendo-treelist>
15208
- * `
15209
- * })
15210
- * class AppComponent {
15211
- * public treelistData: any[] = products;
15212
- * }
15213
- *
15214
- * const products = [{
15215
- * "ProductID": 1,
15216
- * "ProductName": "Chai",
15217
- * "UnitPrice": 18.0000,
15218
- * "Discontinued": true
15219
- * }, {
15220
- * "ProductID": 2,
15221
- * "ProductName": "Chang",
15222
- * "UnitPrice": 19.0000,
15223
- * "Discontinued": false
15224
- * }
15225
- * ];
15226
- * ```
15450
+ * [See example](slug:resizing_columns_treelist#toc-auto-fitting-the-content).
15227
15451
  */
15228
15452
  autoFitColumns(columns = this.columns) {
15229
15453
  let cols;
@@ -15296,9 +15520,9 @@ class TreeListComponent {
15296
15520
  /**
15297
15521
  * Focuses the cell with the specified row and column index.
15298
15522
  *
15299
- * The row index is based on the logical structure of the TreeList and does not correspond to the data item index:
15300
- * * Header rows are included, starting at index 0.
15301
- * * The row indexing is absolute and does not change with paging.
15523
+ * The row index is based on the logical structure of the TreeList and does not correspond to the data item index.
15524
+ * The row indexing is absolute and does not change with paging.
15525
+ * Header rows are included, starting at index 0.
15302
15526
  *
15303
15527
  * If the TreeList is configured for scrolling, including virtual scrolling, the scroll position will be updated.
15304
15528
  * If the row is not present on the current page, the method will have no effect.
@@ -15349,67 +15573,6 @@ class TreeListComponent {
15349
15573
  * @param {number} destIndex - The new position of the column.
15350
15574
  * @param {ColumnReorderConfig} options - Additional options.
15351
15575
  *
15352
- * @example
15353
- * ```ts
15354
- * _@Component({
15355
- * selector: 'my-app',
15356
- * template: `
15357
- * <kendo-treelist
15358
- * #treelist
15359
- * [data]="treelistData"
15360
- * [reorderable]="true"
15361
- * style="height: 300px">
15362
- * <ng-template kendoTreeListToolbarTemplate>
15363
- * <button kendoButton
15364
- * (click)="treelist.reorderColumn(groupColumn, 2, { before: true })">
15365
- * Move the group column before the last one.
15366
- * </button>
15367
- * </ng-template>
15368
- * <kendo-treelist-column-group #groupColumn title="Product Info">
15369
- * <kendo-treelist-column
15370
- * field="ProductID"
15371
- * [width]="50"
15372
- * title="ID">
15373
- * </kendo-treelist-column>
15374
- *
15375
- * <kendo-treelist-column
15376
- * field="ProductName"
15377
- * title="Product Name">
15378
- * </kendo-treelist-column>
15379
- * </kendo-treelist-column-group>
15380
- *
15381
- * <kendo-treelist-column
15382
- * field="UnitPrice"
15383
- * title="Unit Price"
15384
- * [width]="180"
15385
- * format="{0:c}">
15386
- * </kendo-treelist-column>
15387
- *
15388
- * <kendo-treelist-column
15389
- * field="Discontinued"
15390
- * title="Discontinued"
15391
- * [width]="100">
15392
- * </kendo-treelist-column>
15393
- * </kendo-treelist>
15394
- * `
15395
- * })
15396
- * class AppComponent {
15397
- * public treelistData: any[] = products;
15398
- * }
15399
- *
15400
- * const products = [{
15401
- * "ProductID": 1,
15402
- * "ProductName": "Chai",
15403
- * "UnitPrice": 18.0000,
15404
- * "Discontinued": true
15405
- * }, {
15406
- * "ProductID": 2,
15407
- * "ProductName": "Chang",
15408
- * "UnitPrice": 19.0000,
15409
- * "Discontinued": false
15410
- * }
15411
- * ];
15412
- * ```
15413
15576
  */
15414
15577
  reorderColumn(source, destIndex, options = { before: false }) {
15415
15578
  const columnsForLevel = sortColumns(this.allColumnsForLevel(source.level));
@@ -15626,6 +15789,7 @@ class TreeListComponent {
15626
15789
  this.closeCell();
15627
15790
  this.cancelCell();
15628
15791
  this.dataStateChange.emit(x);
15792
+ this.rowReorderable && this.notifyReorderContainers();
15629
15793
  }));
15630
15794
  }
15631
15795
  attachEditHandlers() {
@@ -15890,9 +16054,14 @@ class TreeListComponent {
15890
16054
  this.columns.reset(columns.toArray());
15891
16055
  this.columns.notifyOnChanges();
15892
16056
  }
16057
+ notifyReorderContainers() {
16058
+ var _a, _b;
16059
+ (_a = this.dragTargetContainer) === null || _a === void 0 ? void 0 : _a.notify();
16060
+ (_b = this.dropTargetContainer) === null || _b === void 0 ? void 0 : _b.notify();
16061
+ }
15893
16062
  }
15894
- TreeListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TreeListComponent, deps: [{ token: BrowserSupportService }, { token: i0.ElementRef }, { token: ChangeNotificationService }, { 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: ExpandStateService }, { token: OptionChangesService }, { token: SelectionService }, { token: i1$1.LocalizationService }, { token: ContextService }], target: i0.ɵɵFactoryTarget.Component });
15895
- TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TreeListComponent, selector: "kendo-treelist", inputs: { ariaLabel: ["aria-label", "ariaLabel"], data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", skip: "skip", scrollable: "scrollable", sort: "sort", trackBy: "trackBy", filter: "filter", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", navigable: "navigable", navigatable: "navigatable", autoSize: "autoSize", rowClass: "rowClass", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", idField: "idField", selectable: "selectable", isSelected: "isSelected", columnsRef: ["columns", "columnsRef"], fetchChildren: "fetchChildren", hasChildren: "hasChildren", isExpanded: "isExpanded" }, outputs: { selectionChange: "selectionChange", filterChange: "filterChange", pageChange: "pageChange", sortChange: "sortChange", dataStateChange: "dataStateChange", 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", scrollBottom: "scrollBottom", contentScroll: "contentScroll", expandEvent: "expand", collapseEvent: "collapse", expandStateChange: "expandStateChange" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClasses", "class.k-grid-md": "this.hostClasses", "class.k-treelist": "this.hostClasses", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass" } }, providers: [
16063
+ TreeListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TreeListComponent, deps: [{ token: BrowserSupportService }, { token: i0.ElementRef }, { token: ChangeNotificationService }, { 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: ExpandStateService }, { token: OptionChangesService }, { token: SelectionService }, { token: i1$1.LocalizationService }, { token: ContextService }, { token: RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
16064
+ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TreeListComponent, selector: "kendo-treelist", inputs: { ariaLabel: ["aria-label", "ariaLabel"], data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", skip: "skip", scrollable: "scrollable", sort: "sort", trackBy: "trackBy", filter: "filter", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", navigable: "navigable", navigatable: "navigatable", autoSize: "autoSize", rowClass: "rowClass", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", idField: "idField", selectable: "selectable", isSelected: "isSelected", rowReorderable: "rowReorderable", columnsRef: ["columns", "columnsRef"], fetchChildren: "fetchChildren", hasChildren: "hasChildren", isExpanded: "isExpanded" }, outputs: { selectionChange: "selectionChange", filterChange: "filterChange", pageChange: "pageChange", sortChange: "sortChange", dataStateChange: "dataStateChange", 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", scrollBottom: "scrollBottom", contentScroll: "contentScroll", expandEvent: "expand", collapseEvent: "collapse", expandStateChange: "expandStateChange", rowReorder: "rowReorder" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClasses", "class.k-grid-md": "this.hostClasses", "class.k-treelist": "this.hostClasses", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass" } }, providers: [
15896
16065
  BrowserSupportService,
15897
16066
  LocalizationService,
15898
16067
  ColumnInfoService,
@@ -15933,8 +16102,9 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
15933
16102
  provide: ExpandableTreeComponent,
15934
16103
  useExisting: forwardRef(() => TreeListComponent)
15935
16104
  },
15936
- ContextService
15937
- ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { 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: ["kendoTreeList"], usesOnChanges: true, ngImport: i0, template: `
16105
+ ContextService,
16106
+ RowReorderService
16107
+ ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { 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: ["kendoTreeList"], usesOnChanges: true, ngImport: i0, template: `
15938
16108
  <ng-container kendoTreeListLocalizedMessages
15939
16109
 
15940
16110
  i18n-noRecords="kendo.treelist.noRecords|The label visible in the TreeList when there are no records"
@@ -16095,6 +16265,8 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16095
16265
 
16096
16266
  i18n-bottomToolbarLabel="kendo.treelist.bottomToolbarLabel|The label of the TreeList bottom toolbar"
16097
16267
  bottomToolbarLabel="Bottom toolbar"
16268
+ i18n-dragRowHandleLabel="kendo.treelist.dragRowHandleLabel|The label for the TreeList drag row handle"
16269
+ dragRowHandleLabel="Drag row"
16098
16270
  >
16099
16271
  </ng-container>
16100
16272
  <kendo-treelist-toolbar
@@ -16112,7 +16284,24 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16112
16284
  [attr.aria-rowcount]="ariaRowCount"
16113
16285
  [attr.aria-colcount]="ariaColCount"
16114
16286
  [attr.aria-multiselectable]="ariaMultiselectable"
16115
- [attr.aria-label]="ariaLabel">
16287
+ [attr.aria-label]="ariaLabel"
16288
+ kendoDragTargetContainer
16289
+ kendoDropTargetContainer
16290
+ mode="manual"
16291
+ [dragDisabled]="!rowReorderable"
16292
+ [dropDisabled]="!rowReorderable"
16293
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
16294
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
16295
+ [dragHandle]="getDefaultSelectors('handle')"
16296
+ [hint]="{hintTemplate: defaultHint}"
16297
+ (onPress)="handleReorderEvents($event, 'press')"
16298
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
16299
+ (onDrag)="handleReorderEvents($event, 'drag')"
16300
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
16301
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
16302
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
16303
+ (onDrop)="handleReorderEvents($event, 'drop')"
16304
+ [dragData]="treeListData">
16116
16305
  <ng-template [ngIf]="isScrollable">
16117
16306
  <div *ngIf="!hideHeader"
16118
16307
  class="k-grid-header"
@@ -16199,14 +16388,14 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16199
16388
  [virtualColumns]="virtualColumns"
16200
16389
  [expandIcons]="expandIcons"
16201
16390
  (scrollBottom)="notifyScrollBottom()"
16202
- (contentScroll)="contentScroll.emit($event)"
16391
+ (contentScroll)="contentScroll.emit($event)"
16203
16392
  kendoDraggable
16204
16393
  kendoTreeListSelectionMarquee
16205
16394
  [enableDrag]="marqueeSelection">
16206
16395
  </kendo-treelist-list>
16207
16396
  </ng-template>
16208
16397
  <ng-template [ngIf]="!isScrollable">
16209
- <table
16398
+ <table
16210
16399
  class="k-table k-table-md k-grid-header-table"
16211
16400
  [style.table-layout]="resizable ? 'fixed' : null">
16212
16401
  <colgroup kendoTreeListColGroup
@@ -16264,7 +16453,16 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16264
16453
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
16265
16454
  [attr.aria-controls]="ariaRootId">
16266
16455
  </kendo-treelist-toolbar>
16267
- `, isInline: true, components: [{ type: ToolbarComponent, selector: "kendo-treelist-toolbar", inputs: ["position", "navigable"] }, { type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { type: HeaderComponent, selector: "[kendoTreeListHeader]", inputs: ["totalColumnLevels", "columns", "scrollable", "filterable", "sort", "filter", "sortable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount"] }, { type: ListComponent, selector: "kendo-treelist-list", inputs: ["view", "total", "rowHeight", "take", "skip", "columns", "noRecordsTemplate", "filterable", "rowClass", "loading", "trackBy", "virtualColumns", "isVirtual", "expandIcons"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "rowClass"] }, { type: LoadingComponent, selector: "[kendoTreeListLoading]" }, { type: PagerComponent, selector: "kendo-treelist-pager", inputs: ["allCount", "total", "skip", "navigable", "pageSize", "options", "template"], outputs: ["pageChange"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoTreeListLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { type: i1$3.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: MarqueeDirective, selector: "[kendoTreeListSelectionMarquee]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
16456
+
16457
+ <ng-template #defaultHint>
16458
+ <kendo-icon-wrapper
16459
+ [name]="getHintSettings('hintIcon')"
16460
+ [svgIcon]="getHintSettings('hintSVGIcon')"
16461
+ innerCssClass="k-drag-status">
16462
+ </kendo-icon-wrapper>
16463
+ {{hintText}}
16464
+ </ng-template>
16465
+ `, isInline: true, components: [{ type: ToolbarComponent, selector: "kendo-treelist-toolbar", inputs: ["position", "navigable"] }, { type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { type: HeaderComponent, selector: "[kendoTreeListHeader]", inputs: ["totalColumnLevels", "columns", "scrollable", "filterable", "sort", "filter", "sortable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount"] }, { type: ListComponent, selector: "kendo-treelist-list", inputs: ["view", "total", "rowHeight", "take", "skip", "columns", "noRecordsTemplate", "filterable", "rowClass", "loading", "trackBy", "virtualColumns", "isVirtual", "expandIcons"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "rowClass"] }, { type: LoadingComponent, selector: "[kendoTreeListLoading]" }, { type: PagerComponent, selector: "kendo-treelist-pager", inputs: ["allCount", "total", "skip", "navigable", "pageSize", "options", "template"], outputs: ["pageChange"] }, { type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoTreeListLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i32.DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { type: i32.DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { type: TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { type: i1$3.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: MarqueeDirective, selector: "[kendoTreeListSelectionMarquee]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
16268
16466
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TreeListComponent, decorators: [{
16269
16467
  type: Component,
16270
16468
  args: [{
@@ -16312,7 +16510,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16312
16510
  provide: ExpandableTreeComponent,
16313
16511
  useExisting: forwardRef(() => TreeListComponent)
16314
16512
  },
16315
- ContextService
16513
+ ContextService,
16514
+ RowReorderService
16316
16515
  ],
16317
16516
  selector: 'kendo-treelist',
16318
16517
  template: `
@@ -16476,6 +16675,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16476
16675
 
16477
16676
  i18n-bottomToolbarLabel="kendo.treelist.bottomToolbarLabel|The label of the TreeList bottom toolbar"
16478
16677
  bottomToolbarLabel="Bottom toolbar"
16678
+ i18n-dragRowHandleLabel="kendo.treelist.dragRowHandleLabel|The label for the TreeList drag row handle"
16679
+ dragRowHandleLabel="Drag row"
16479
16680
  >
16480
16681
  </ng-container>
16481
16682
  <kendo-treelist-toolbar
@@ -16493,7 +16694,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16493
16694
  [attr.aria-rowcount]="ariaRowCount"
16494
16695
  [attr.aria-colcount]="ariaColCount"
16495
16696
  [attr.aria-multiselectable]="ariaMultiselectable"
16496
- [attr.aria-label]="ariaLabel">
16697
+ [attr.aria-label]="ariaLabel"
16698
+ kendoDragTargetContainer
16699
+ kendoDropTargetContainer
16700
+ mode="manual"
16701
+ [dragDisabled]="!rowReorderable"
16702
+ [dropDisabled]="!rowReorderable"
16703
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
16704
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
16705
+ [dragHandle]="getDefaultSelectors('handle')"
16706
+ [hint]="{hintTemplate: defaultHint}"
16707
+ (onPress)="handleReorderEvents($event, 'press')"
16708
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
16709
+ (onDrag)="handleReorderEvents($event, 'drag')"
16710
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
16711
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
16712
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
16713
+ (onDrop)="handleReorderEvents($event, 'drop')"
16714
+ [dragData]="treeListData">
16497
16715
  <ng-template [ngIf]="isScrollable">
16498
16716
  <div *ngIf="!hideHeader"
16499
16717
  class="k-grid-header"
@@ -16580,14 +16798,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16580
16798
  [virtualColumns]="virtualColumns"
16581
16799
  [expandIcons]="expandIcons"
16582
16800
  (scrollBottom)="notifyScrollBottom()"
16583
- (contentScroll)="contentScroll.emit($event)"
16801
+ (contentScroll)="contentScroll.emit($event)"
16584
16802
  kendoDraggable
16585
16803
  kendoTreeListSelectionMarquee
16586
16804
  [enableDrag]="marqueeSelection">
16587
16805
  </kendo-treelist-list>
16588
16806
  </ng-template>
16589
16807
  <ng-template [ngIf]="!isScrollable">
16590
- <table
16808
+ <table
16591
16809
  class="k-table k-table-md k-grid-header-table"
16592
16810
  [style.table-layout]="resizable ? 'fixed' : null">
16593
16811
  <colgroup kendoTreeListColGroup
@@ -16645,9 +16863,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16645
16863
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
16646
16864
  [attr.aria-controls]="ariaRootId">
16647
16865
  </kendo-treelist-toolbar>
16866
+
16867
+ <ng-template #defaultHint>
16868
+ <kendo-icon-wrapper
16869
+ [name]="getHintSettings('hintIcon')"
16870
+ [svgIcon]="getHintSettings('hintSVGIcon')"
16871
+ innerCssClass="k-drag-status">
16872
+ </kendo-icon-wrapper>
16873
+ {{hintText}}
16874
+ </ng-template>
16648
16875
  `
16649
16876
  }]
16650
- }], ctorParameters: function () { return [{ type: BrowserSupportService }, { type: i0.ElementRef }, { type: ChangeNotificationService }, { 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: ExpandStateService }, { type: OptionChangesService }, { type: SelectionService }, { type: i1$1.LocalizationService }, { type: ContextService }]; }, propDecorators: { ariaLabel: [{
16877
+ }], ctorParameters: function () { return [{ type: BrowserSupportService }, { type: i0.ElementRef }, { type: ChangeNotificationService }, { 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: ExpandStateService }, { type: OptionChangesService }, { type: SelectionService }, { type: i1$1.LocalizationService }, { type: ContextService }, { type: RowReorderService }]; }, propDecorators: { ariaLabel: [{
16651
16878
  type: Input,
16652
16879
  args: ['aria-label']
16653
16880
  }], data: [{
@@ -16700,6 +16927,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16700
16927
  type: Input
16701
16928
  }], isSelected: [{
16702
16929
  type: Input
16930
+ }], rowReorderable: [{
16931
+ type: Input
16703
16932
  }], selectionChange: [{
16704
16933
  type: Output
16705
16934
  }], filterChange: [{
@@ -16748,6 +16977,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16748
16977
  args: ['collapse']
16749
16978
  }], expandStateChange: [{
16750
16979
  type: Output
16980
+ }], rowReorder: [{
16981
+ type: Output
16751
16982
  }], columnsRef: [{
16752
16983
  type: Input,
16753
16984
  args: ['columns']
@@ -16799,6 +17030,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16799
17030
  }], ariaRoot: [{
16800
17031
  type: ViewChild,
16801
17032
  args: ['ariaRoot', { static: true }]
17033
+ }], dragTargetContainer: [{
17034
+ type: ViewChild,
17035
+ args: [DragTargetContainerDirective]
17036
+ }], dropTargetContainer: [{
17037
+ type: ViewChild,
17038
+ args: [DropTargetContainerDirective]
16802
17039
  }], fetchChildren: [{
16803
17040
  type: Input
16804
17041
  }], hasChildren: [{
@@ -16809,7 +17046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16809
17046
 
16810
17047
  /**
16811
17048
  * Custom component messages override default component messages
16812
- * ([see example]({% slug globalization_treelist %}#toc-localization)).
17049
+ * ([see example](slug:globalization_treelist#toc-custom-messages)).
16813
17050
  */
16814
17051
  class CustomMessagesComponent extends Messages {
16815
17052
  constructor(service) {
@@ -16925,7 +17162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16925
17162
  }] } });
16926
17163
 
16927
17164
  /**
16928
- * Represents the checkbox for selecting rows in the TreeList.
17165
+ * Represents the checkbox for selecting rows in the TreeList. [See example](slug:selection_treelist#toc-select-all-checkbox).
16929
17166
  */
16930
17167
  class CheckboxColumnComponent extends ColumnBase {
16931
17168
  constructor(parent) {
@@ -16978,6 +17215,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16978
17215
  args: [CellTemplateDirective, { static: false }]
16979
17216
  }] } });
16980
17217
 
17218
+ /**
17219
+ * Represents the drag handle for reordering rows in the TreeList.
17220
+ */
17221
+ class RowReorderColumnComponent extends ColumnBase {
17222
+ constructor(parent) {
17223
+ super(parent);
17224
+ this.parent = parent;
17225
+ /**
17226
+ * @hidden
17227
+ */
17228
+ this.isRowReorderColumn = true;
17229
+ }
17230
+ }
17231
+ 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 }], target: i0.ɵɵFactoryTarget.Component });
17232
+ RowReorderColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: RowReorderColumnComponent, selector: "kendo-treelist-rowreorder-column", providers: [
17233
+ {
17234
+ provide: ColumnBase,
17235
+ useExisting: forwardRef(() => RowReorderColumnComponent)
17236
+ }
17237
+ ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
17238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderColumnComponent, decorators: [{
17239
+ type: Component,
17240
+ args: [{
17241
+ providers: [
17242
+ {
17243
+ provide: ColumnBase,
17244
+ useExisting: forwardRef(() => RowReorderColumnComponent)
17245
+ }
17246
+ ],
17247
+ selector: 'kendo-treelist-rowreorder-column',
17248
+ template: ``
17249
+ }]
17250
+ }], ctorParameters: function () {
17251
+ return [{ type: ColumnBase, decorators: [{
17252
+ type: SkipSelf
17253
+ }, {
17254
+ type: Host
17255
+ }, {
17256
+ type: Optional
17257
+ }] }];
17258
+ } });
17259
+
16981
17260
  const exportedModules$3 = [
16982
17261
  ColumnComponent,
16983
17262
  ColumnGroupComponent,
@@ -16991,7 +17270,8 @@ const exportedModules$3 = [
16991
17270
  SpanColumnComponent,
16992
17271
  TableDirective,
16993
17272
  LoadingComponent,
16994
- CheckboxColumnComponent
17273
+ CheckboxColumnComponent,
17274
+ RowReorderColumnComponent
16995
17275
  ];
16996
17276
  /**
16997
17277
  * @hidden
@@ -17002,6 +17282,7 @@ class SharedModule {
17002
17282
  ColumnComponent,
17003
17283
  SpanColumnComponent,
17004
17284
  CheckboxColumnComponent,
17285
+ RowReorderColumnComponent,
17005
17286
  ColumnGroupComponent,
17006
17287
  FocusableDirective
17007
17288
  ];
@@ -17020,7 +17301,8 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
17020
17301
  SpanColumnComponent,
17021
17302
  TableDirective,
17022
17303
  LoadingComponent,
17023
- CheckboxColumnComponent], imports: [CommonModule, IconsModule], exports: [ColumnComponent,
17304
+ CheckboxColumnComponent,
17305
+ RowReorderColumnComponent], imports: [CommonModule, IconsModule], exports: [ColumnComponent,
17024
17306
  ColumnGroupComponent,
17025
17307
  LogicalCellDirective,
17026
17308
  LogicalRowDirective,
@@ -17032,7 +17314,8 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
17032
17314
  SpanColumnComponent,
17033
17315
  TableDirective,
17034
17316
  LoadingComponent,
17035
- CheckboxColumnComponent, DraggableModule, IconsModule] });
17317
+ CheckboxColumnComponent,
17318
+ RowReorderColumnComponent, DraggableModule, IconsModule] });
17036
17319
  SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, imports: [[CommonModule, IconsModule], DraggableModule, IconsModule] });
17037
17320
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, decorators: [{
17038
17321
  type: NgModule,
@@ -17045,10 +17328,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17045
17328
 
17046
17329
  /**
17047
17330
  * Represents the `Contains` (**Contains**) filter operator.
17048
- *
17049
- * For more information and examples, refer to:
17050
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17051
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17331
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17052
17332
  */
17053
17333
  class ContainsFilterOperatorComponent extends FilterOperatorBase {
17054
17334
  constructor(localization) { super("contains", localization); }
@@ -17076,10 +17356,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17076
17356
 
17077
17357
  /**
17078
17358
  * Represents the `DoesNotContain` (**Does not contain**) filter operator.
17079
- *
17080
- * For more information and examples, refer to:
17081
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17082
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17359
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17083
17360
  */
17084
17361
  class DoesNotContainFilterOperatorComponent extends FilterOperatorBase {
17085
17362
  constructor(localization) { super("doesnotcontain", localization); }
@@ -17107,10 +17384,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17107
17384
 
17108
17385
  /**
17109
17386
  * Represents the `EndsWith` (**Ends with**) string filter operator.
17110
- *
17111
- * For more information and examples, refer to:
17112
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17113
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17387
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17114
17388
  */
17115
17389
  class EndsWithFilterOperatorComponent extends FilterOperatorBase {
17116
17390
  constructor(localization) { super("endswith", localization); }
@@ -17138,10 +17412,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17138
17412
 
17139
17413
  /**
17140
17414
  * Represents the `Equal` (**Is equal to**) filter operator.
17141
- *
17142
- * For more information and examples, refer to:
17143
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17144
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17415
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17145
17416
  */
17146
17417
  class EqualFilterOperatorComponent extends FilterOperatorBase {
17147
17418
  constructor(localization) { super("eq", localization); }
@@ -17169,10 +17440,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17169
17440
 
17170
17441
  /**
17171
17442
  * Represents the `IsEmpty` (**Is empty**) filter operator.
17172
- *
17173
- * For more information and examples, refer to:
17174
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17175
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17443
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17176
17444
  */
17177
17445
  class IsEmptyFilterOperatorComponent extends FilterOperatorBase {
17178
17446
  constructor(localization) { super("isempty", localization); }
@@ -17200,10 +17468,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17200
17468
 
17201
17469
  /**
17202
17470
  * Represents the `IsNotEmpty` (**Is not empty**) filter operator.
17203
- *
17204
- * For more information and examples, refer to:
17205
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17206
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17471
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17207
17472
  */
17208
17473
  class IsNotEmptyFilterOperatorComponent extends FilterOperatorBase {
17209
17474
  constructor(localization) { super("isnotempty", localization); }
@@ -17231,10 +17496,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17231
17496
 
17232
17497
  /**
17233
17498
  * Represents the `IsNotNull` (**Is not null**) filter operator.
17234
- *
17235
- * For more information and examples, refer to:
17236
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17237
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17499
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17238
17500
  */
17239
17501
  class IsNotNullFilterOperatorComponent extends FilterOperatorBase {
17240
17502
  constructor(localization) { super("isnotnull", localization); }
@@ -17262,10 +17524,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17262
17524
 
17263
17525
  /**
17264
17526
  * Represents the `IsNull` (**Is null**) filter operator.
17265
- *
17266
- * For more information and examples, refer to:
17267
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17268
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17527
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17269
17528
  */
17270
17529
  class IsNullFilterOperatorComponent extends FilterOperatorBase {
17271
17530
  constructor(localization) { super("isnull", localization); }
@@ -17293,10 +17552,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17293
17552
 
17294
17553
  /**
17295
17554
  * Represents the `NotEqual` (**Is not equal to**) filter operator.
17296
- *
17297
- * For more information and examples, refer to:
17298
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17299
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17555
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17300
17556
  */
17301
17557
  class NotEqualFilterOperatorComponent extends FilterOperatorBase {
17302
17558
  constructor(localization) { super("neq", localization); }
@@ -17324,10 +17580,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17324
17580
 
17325
17581
  /**
17326
17582
  * Represents the `StartsWith` (**Starts with**) filter operator.
17327
- *
17328
- * For more information and examples, refer to:
17329
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17330
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17583
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17331
17584
  */
17332
17585
  class StartsWithFilterOperatorComponent extends FilterOperatorBase {
17333
17586
  constructor(localization) { super("startswith", localization); }
@@ -17355,10 +17608,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17355
17608
 
17356
17609
  /*
17357
17610
  * Represents the `Greater` (**Is greater than**) numeric filter operator.
17358
- *
17359
- * For more information and examples, refer to:
17360
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17361
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17611
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17362
17612
  */
17363
17613
  class GreaterFilterOperatorComponent extends FilterOperatorBase {
17364
17614
  constructor(localization) { super("gt", localization); }
@@ -17386,10 +17636,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17386
17636
 
17387
17637
  /**
17388
17638
  * Represents the `GreaterOrEqualTo` (**Is greater than or equal to**) numeric filter operator.
17389
- *
17390
- * For more information and examples, refer to:
17391
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17392
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17639
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17393
17640
  */
17394
17641
  class GreaterOrEqualToFilterOperatorComponent extends FilterOperatorBase {
17395
17642
  constructor(localization) { super("gte", localization); }
@@ -17415,12 +17662,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17415
17662
  }]
17416
17663
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
17417
17664
 
17418
- /*
17665
+ /**
17419
17666
  * Represents the `Less` (**Is less than**) numeric filter operator.
17420
- *
17421
- * For more information and examples, refer to:
17422
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17423
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17667
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17424
17668
  */
17425
17669
  class LessFilterOperatorComponent extends FilterOperatorBase {
17426
17670
  constructor(localization) { super("lt", localization); }
@@ -17448,10 +17692,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17448
17692
 
17449
17693
  /*
17450
17694
  * Represents the `LessOrEqualTo` (**Is less than or equal to**) numeric filter operator.
17451
- *
17452
- * For more information and examples, refer to:
17453
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17454
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17695
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17455
17696
  */
17456
17697
  class LessOrEqualToFilterOperatorComponent extends FilterOperatorBase {
17457
17698
  constructor(localization) { super("lte", localization); }
@@ -17477,12 +17718,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17477
17718
  }]
17478
17719
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
17479
17720
 
17480
- /*
17721
+ /**
17481
17722
  * Represents the `Greater` (**Is after**) date filter operator.
17482
- *
17483
- * For more information and examples, refer to:
17484
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17485
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17723
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17486
17724
  */
17487
17725
  class AfterFilterOperatorComponent extends FilterOperatorBase {
17488
17726
  constructor(localization) { super("after", localization); }
@@ -17517,12 +17755,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17517
17755
  }]
17518
17756
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
17519
17757
 
17520
- /*
17758
+ /**
17521
17759
  * Represents the `GreaterOrEqualTo` (**Is after or equal to**) date filter operator.
17522
- *
17523
- * For more information and examples, refer to:
17524
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17525
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17760
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17526
17761
  */
17527
17762
  class AfterEqFilterOperatorComponent extends FilterOperatorBase {
17528
17763
  constructor(localization) { super("after-eq", localization); }
@@ -17557,12 +17792,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17557
17792
  }]
17558
17793
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
17559
17794
 
17560
- /*
17795
+ /**
17561
17796
  * Represents the `LessOrEqualTo` (**Is before or equal to**) date filter operator.
17562
- *
17563
- * For more information and examples, refer to:
17564
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17565
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17797
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17566
17798
  */
17567
17799
  class BeforeEqFilterOperatorComponent extends FilterOperatorBase {
17568
17800
  constructor(localization) { super("before-eq", localization); }
@@ -17597,12 +17829,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17597
17829
  }]
17598
17830
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
17599
17831
 
17600
- /*
17601
- * Represents the `Less then` (**Is before**) date filter operator.
17602
- *
17603
- * For more information and examples, refer to:
17604
- * * [Setting the default filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-default-filter-operator)
17605
- * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)
17832
+ /**
17833
+ * Represents the `Less than` (**Is before**) date filter operator.
17834
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17606
17835
  */
17607
17836
  class BeforeFilterOperatorComponent extends FilterOperatorBase {
17608
17837
  constructor(localization) { super("before", localization); }
@@ -17992,12 +18221,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17992
18221
  * Represents the component for selecting columns in the TreeList. To enable the user to show or hide columns,
17993
18222
  * add the component inside a [`ToolbarTemplate`]({% slug api_treelist_toolbartemplatedirective %}) directive.
17994
18223
  *
17995
- * {% meta height:500 %}
17996
- * {% embed_file column-menu/chooser-toolbar/app.component.ts preview %}
17997
- * {% embed_file column-menu/chooser-toolbar/app.module.ts %}
17998
- * {% embed_file shared/main.ts %}
17999
- * {% embed_file shared/employees.ts %}
18000
- * {% endmeta %}
18224
+ * @example
18225
+ * ```html
18226
+ * <kendo-treelist ...>
18227
+ * <ng-template kendoTreeListToolbarTemplate>
18228
+ * <kendo-treelist-column-chooser> </kendo-treelist-column-chooser>
18229
+ * </ng-template>
18230
+ * </kendo-treelist>
18231
+ * ```
18001
18232
  */
18002
18233
  class ColumnChooserComponent {
18003
18234
  constructor(localization, columnInfoService, popupService, ngZone, renderer, changeDetector) {
@@ -18009,10 +18240,12 @@ class ColumnChooserComponent {
18009
18240
  this.changeDetector = changeDetector;
18010
18241
  /**
18011
18242
  * Specifies if the changes in the visibility of the column will be immediately applied.
18243
+ * @default false
18012
18244
  */
18013
18245
  this.autoSync = false;
18014
18246
  /**
18015
18247
  * Specifies if all columns can be hidden.
18248
+ * @default true
18016
18249
  */
18017
18250
  this.allowHideAll = true;
18018
18251
  this.columnsIcon = columnsIcon;
@@ -18103,7 +18336,7 @@ ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
18103
18336
  (columnChange)="onChange($event)">
18104
18337
  </kendo-treelist-columnlist>
18105
18338
  </ng-template>
18106
- `, isInline: true, components: [{ type: i4$2.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"] }, { type: ColumnListComponent, selector: "kendo-treelist-columnlist", inputs: ["columns", "autoSync", "allowHideAll", "applyText", "resetText", "actionsClass"], outputs: ["reset", "apply", "columnChange"] }] });
18339
+ `, isInline: true, components: [{ 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"] }, { type: ColumnListComponent, selector: "kendo-treelist-columnlist", inputs: ["columns", "autoSync", "allowHideAll", "applyText", "resetText", "actionsClass"], outputs: ["reset", "apply", "columnChange"] }] });
18107
18340
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnChooserComponent, decorators: [{
18108
18341
  type: Component,
18109
18342
  args: [{
@@ -18243,30 +18476,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18243
18476
 
18244
18477
  /**
18245
18478
  * Represents the command columns of the TreeList. You have to define the content of the
18246
- * column inside an `<ng-template>` tag. The template context is set to the current
18247
- * data item. For more information and examples on using the passed fields
18479
+ * column inside an `<ng-template>` tag. For more information and examples on using the passed fields
18248
18480
  * and the command directives, refer to the article on
18249
18481
  * [editing the TreeList in Angular Reactive Forms]({% slug editing_reactive_forms_treelist %}).
18250
18482
  *
18251
- * The following additional fields are passed:
18252
- * - `columnIndex`&mdash;The current column index.
18253
- * - `rowIndex`&mdash;The current data row index. If inside a new item row, `rowIndex`is `-1`.
18254
- * - `dataItem`&mdash;The current data item.
18255
- * - `column`&mdash;The current column instance.
18256
- * - `isNew`&mdash;The state of the current item.
18257
- *
18258
18483
  * Usually, the template contains CRUD command directives such as:
18259
18484
  * - [`EditCommandDirective`]({% slug api_treelist_editcommanddirective %})
18260
18485
  * - [`RemoveCommandDirective`]({% slug api_treelist_removecommanddirective %})
18261
18486
  * - [`CancelCommandDirective`]({% slug api_treelist_cancelcommanddirective %})
18262
18487
  * - [`SaveCommandDirective`]({% slug api_treelist_savecommanddirective %})
18263
18488
  *
18264
- * {% meta height:590 %}
18265
- * {% embed_file editing/editing-directives/reactive-editing/app.component.ts preview %}
18266
- * {% embed_file shared/employees.ts %}
18267
- * {% embed_file editing/editing-directives/reactive-editing/app.module.ts %}
18268
- * {% embed_file shared/main.ts %}
18269
- * {% endmeta %}
18489
+ * @example
18490
+ * ```html
18491
+ * <kendo-treelist ...>
18492
+ * <kendo-treelist-column field="ProductID"></kendo-treelist-column>
18493
+ * <kendo-treelist-command-column title="command" >
18494
+ * <ng-template kendoTreeListCellTemplate>
18495
+ * <button kendoTreeListEditCommand class="k-primary">Edit</button>
18496
+ * <button kendoTreeListRemoveCommand>Remove</button>
18497
+ * </ng-template>
18498
+ * </kendo-treelist-command-column>
18499
+ * </kendo-treelist>
18500
+ * ```
18270
18501
  */
18271
18502
  class CommandColumnComponent extends ColumnBase {
18272
18503
  constructor(parent, optionChanges) {
@@ -18354,7 +18585,7 @@ BaseCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
18354
18585
  </span>
18355
18586
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18356
18587
  <span class="k-button-text"><ng-content></ng-content></span>
18357
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18588
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18358
18589
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseCommandDirective, decorators: [{
18359
18590
  type: Component,
18360
18591
  args: [{
@@ -18392,7 +18623,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18392
18623
  *
18393
18624
  * @example
18394
18625
  * ```html
18395
- * <kendo-treelist>
18626
+ * <kendo-treelist ...>
18396
18627
  * <kendo-treelist-command-column title="command">
18397
18628
  * <ng-template kendoTreeListCellTemplate let-cellContext="cellContext">
18398
18629
  * <button [kendoTreeListEditCommand]="cellContext">Edit</button>
@@ -18426,7 +18657,7 @@ EditCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
18426
18657
  </span>
18427
18658
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18428
18659
  <span class="k-button-text"><ng-content></ng-content></span>
18429
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18660
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18430
18661
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditCommandDirective, decorators: [{
18431
18662
  type: Component,
18432
18663
  args: [{
@@ -18464,7 +18695,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18464
18695
  *
18465
18696
  * @example
18466
18697
  * ```html
18467
- * <kendo-treelist>
18698
+ * <kendo-treelist ...>
18468
18699
  * <kendo-treelist-command-column title="command">
18469
18700
  * <ng-template kendoTreeListCellTemplate let-cellContext="cellContext">
18470
18701
  * <button [kendoTreeListCancelCommand]="cellContext">Cancel changes</button>
@@ -18498,7 +18729,7 @@ CancelCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
18498
18729
  </span>
18499
18730
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18500
18731
  <span class="k-button-text"><ng-content></ng-content></span>
18501
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18732
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18502
18733
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CancelCommandDirective, decorators: [{
18503
18734
  type: Component,
18504
18735
  args: [{
@@ -18536,7 +18767,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18536
18767
  *
18537
18768
  * @example
18538
18769
  * ```html
18539
- * <kendo-treelist>
18770
+ * <kendo-treelist ...>
18540
18771
  * <kendo-treelist-command-column title="command">
18541
18772
  * <ng-template kendoTreeListCellTemplate let-cellContext="cellContext">
18542
18773
  * <button [kendoTreeListSaveCommand]="cellContext">Save changes</button>
@@ -18569,7 +18800,7 @@ SaveCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
18569
18800
  </span>
18570
18801
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18571
18802
  <span class="k-button-text"><ng-content></ng-content></span>
18572
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18803
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18573
18804
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SaveCommandDirective, decorators: [{
18574
18805
  type: Component,
18575
18806
  args: [{
@@ -18607,7 +18838,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18607
18838
  *
18608
18839
  * @example
18609
18840
  * ```html
18610
- * <kendo-treelist>
18841
+ * <kendo-treelist ...>
18611
18842
  * <kendo-treelist-command-column title="command">
18612
18843
  * <ng-template kendoTreeListCellTemplate let-cellContext="cellContext">
18613
18844
  * <button [kendoTreeListRemoveCommand]="cellContext">Remove row</button>
@@ -18640,7 +18871,7 @@ RemoveCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
18640
18871
  </span>
18641
18872
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18642
18873
  <span class="k-button-text"><ng-content></ng-content></span>
18643
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18874
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18644
18875
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RemoveCommandDirective, decorators: [{
18645
18876
  type: Component,
18646
18877
  args: [{
@@ -18681,7 +18912,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18681
18912
  *
18682
18913
  * @example
18683
18914
  * ```html
18684
- * <kendo-treelist>
18915
+ * <kendo-treelist ...>
18685
18916
  * <kendo-treelist-command-column title="command">
18686
18917
  * <ng-template kendoTreeListCellTemplate let-cellContext="cellContext">
18687
18918
  * <button [kendoTreeListAddCommand]="cellContext" class="k-primary">Edit</button>
@@ -18712,7 +18943,7 @@ AddCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
18712
18943
  </span>
18713
18944
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18714
18945
  <span class="k-button-text"><ng-content></ng-content></span>
18715
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18946
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
18716
18947
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AddCommandDirective, decorators: [{
18717
18948
  type: Component,
18718
18949
  args: [{
@@ -19213,8 +19444,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
19213
19444
  }] } });
19214
19445
 
19215
19446
  class BaseBindingDirective {
19216
- constructor(component) {
19447
+ constructor(component, rowReorderService) {
19217
19448
  this.component = component;
19449
+ this.rowReorderService = rowReorderService;
19218
19450
  this.state = {};
19219
19451
  this.cache = new Map();
19220
19452
  this.originalData = [];
@@ -19247,6 +19479,8 @@ class BaseBindingDirective {
19247
19479
  this.applyState(this.state);
19248
19480
  this.subscriptions.add(this.component.dataStateChange
19249
19481
  .subscribe(this.onStateChange.bind(this)));
19482
+ this.component.rowReorderable && this.subscriptions.add(this.rowReorderService.rowReorder
19483
+ .subscribe(this.onRowReorder.bind(this)));
19250
19484
  }
19251
19485
  /**
19252
19486
  * @hidden
@@ -19287,6 +19521,7 @@ class BaseBindingDirective {
19287
19521
  this.cache.clear();
19288
19522
  this.component.data = this.fetchChildren();
19289
19523
  }
19524
+ onRowReorder(_event) { }
19290
19525
  applyState({ sort, filter }) {
19291
19526
  this.sort = sort;
19292
19527
  this.filter = filter;
@@ -19355,12 +19590,12 @@ class BaseBindingDirective {
19355
19590
  this.dataChanged = true;
19356
19591
  }
19357
19592
  }
19358
- BaseBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseBindingDirective, deps: [{ token: DataBoundTreeComponent }], target: i0.ɵɵFactoryTarget.Directive });
19593
+ BaseBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseBindingDirective, deps: [{ token: DataBoundTreeComponent }, { token: RowReorderService }], target: i0.ɵɵFactoryTarget.Directive });
19359
19594
  BaseBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: BaseBindingDirective, inputs: { sort: "sort", filter: "filter", aggregate: "aggregate" }, usesOnChanges: true, ngImport: i0 });
19360
19595
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseBindingDirective, decorators: [{
19361
19596
  type: Directive,
19362
19597
  args: [{}]
19363
- }], ctorParameters: function () { return [{ type: DataBoundTreeComponent }]; }, propDecorators: { sort: [{
19598
+ }], ctorParameters: function () { return [{ type: DataBoundTreeComponent }, { type: RowReorderService }]; }, propDecorators: { sort: [{
19364
19599
  type: Input
19365
19600
  }], filter: [{
19366
19601
  type: Input
@@ -19410,6 +19645,53 @@ class HierarchyEditService extends LocalEditService {
19410
19645
  }
19411
19646
  }
19412
19647
 
19648
+ /**
19649
+ * @hidden
19650
+ */
19651
+ class HierarchicalRowReorderService extends RowReorderService {
19652
+ isOverChild(targetItem) {
19653
+ const { draggedRows } = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view);
19654
+ const draggedItem = draggedRows[0].dataItem;
19655
+ const hasChildren = isPresent(draggedItem[this.childrenField]) && draggedItem[this.childrenField].length > 0;
19656
+ if (!hasChildren) {
19657
+ return false;
19658
+ }
19659
+ if (targetItem && draggedItem.hasOwnProperty(this.childrenField)) {
19660
+ if (draggedItem[this.childrenField].includes(targetItem)) {
19661
+ return true;
19662
+ }
19663
+ const parent = findParent$1(this.data, targetItem, this.childrenField);
19664
+ if (parent) {
19665
+ return this.isOverChild(parent);
19666
+ }
19667
+ }
19668
+ return false;
19669
+ }
19670
+ reorderRows(ev, collection, field) {
19671
+ const draggedItem = ev.draggedRows[0].dataItem;
19672
+ const dropTargetItem = ev.dropTargetRow.dataItem;
19673
+ const draggedItemParent = findParent$1(collection, draggedItem, field);
19674
+ const dropTargetParent = findParent$1(collection, dropTargetItem, field);
19675
+ const draggedItemIdx = draggedItemParent ? draggedItemParent[field].indexOf(draggedItem) : collection.indexOf(draggedItem);
19676
+ let dropTargetItemIdx = dropTargetParent ? dropTargetParent[field].indexOf(dropTargetItem) : collection.indexOf(dropTargetItem);
19677
+ if (ev.dropPosition === dropPosition.after && dropTargetItemIdx < draggedItemIdx) {
19678
+ dropTargetItemIdx++;
19679
+ }
19680
+ draggedItemParent ? draggedItemParent[field].splice(draggedItemIdx, 1) : collection.splice(draggedItemIdx, 1);
19681
+ if (ev.dropPosition !== dropPosition.over) {
19682
+ dropTargetParent ? dropTargetParent[field].splice(dropTargetItemIdx, 0, draggedItem) : collection.splice(dropTargetItemIdx, 0, draggedItem);
19683
+ }
19684
+ else {
19685
+ dropTargetItem[field].unshift(draggedItem);
19686
+ }
19687
+ }
19688
+ }
19689
+ HierarchicalRowReorderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HierarchicalRowReorderService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
19690
+ HierarchicalRowReorderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HierarchicalRowReorderService });
19691
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HierarchicalRowReorderService, decorators: [{
19692
+ type: Injectable
19693
+ }] });
19694
+
19413
19695
  /**
19414
19696
  * A directive which binds the TreeList to a tree of objects.
19415
19697
  *
@@ -19418,12 +19700,16 @@ class HierarchyEditService extends LocalEditService {
19418
19700
  * and [filtering]({% slug filtering_treelist %}) ([more information and examples](slug:databinding_treelist#toc-binding-to-hierarchical-data)).
19419
19701
  */
19420
19702
  class HierarchyBindingDirective extends BaseBindingDirective {
19421
- constructor(component) {
19703
+ constructor(component, rowReorderService) {
19422
19704
  super(component);
19423
19705
  this.component = component;
19706
+ this.rowReorderService = rowReorderService;
19424
19707
  this.childrenGetter = getter('items');
19425
19708
  this.childrenSetter = setter('items');
19426
19709
  component.localEditService = new HierarchyEditService(this);
19710
+ if (this.rowReorderService) {
19711
+ this.rowReorderService.bindingDirective = this;
19712
+ }
19427
19713
  }
19428
19714
  /**
19429
19715
  * The name of the field which holds the child data items of the node.
@@ -19431,23 +19717,58 @@ class HierarchyBindingDirective extends BaseBindingDirective {
19431
19717
  set childrenField(value) {
19432
19718
  this.childrenGetter = getter(value);
19433
19719
  this.childrenSetter = setter(value);
19720
+ this._childrenField = value;
19434
19721
  }
19722
+ get childrenField() {
19723
+ return this._childrenField;
19724
+ }
19725
+ /**
19726
+ * @hidden
19727
+ */
19435
19728
  getChildren(item) {
19436
19729
  return item ? this.childrenGetter(item) || [] : this.originalData;
19437
19730
  }
19438
19731
  itemKey(item) {
19439
19732
  return item;
19440
19733
  }
19734
+ onRowReorder(ev) {
19735
+ if (ev.dropPosition === 'forbidden') {
19736
+ return;
19737
+ }
19738
+ const dropTargetItem = ev.dropTargetRow.dataItem;
19739
+ if (ev.dropPosition === 'over') {
19740
+ if (!dropTargetItem.hasOwnProperty(this.childrenField)) {
19741
+ dropTargetItem[this.childrenField] = [];
19742
+ }
19743
+ }
19744
+ this.rowReorderService.reorderRows(ev, this.originalData, this.childrenField);
19745
+ this.rebind();
19746
+ }
19441
19747
  }
19442
- HierarchyBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HierarchyBindingDirective, deps: [{ token: DataBoundTreeComponent }], target: i0.ɵɵFactoryTarget.Directive });
19443
- HierarchyBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: HierarchyBindingDirective, selector: "[kendoTreeListHierarchyBinding]", inputs: { childrenField: "childrenField", data: ["kendoTreeListHierarchyBinding", "data"] }, exportAs: ["kendoTreeListHierarchyBinding"], usesInheritance: true, ngImport: i0 });
19748
+ HierarchyBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HierarchyBindingDirective, deps: [{ token: DataBoundTreeComponent }, { token: RowReorderService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
19749
+ HierarchyBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: HierarchyBindingDirective, selector: "[kendoTreeListHierarchyBinding]", inputs: { childrenField: "childrenField", data: ["kendoTreeListHierarchyBinding", "data"] }, providers: [
19750
+ {
19751
+ provide: RowReorderService,
19752
+ useClass: HierarchicalRowReorderService
19753
+ }
19754
+ ], exportAs: ["kendoTreeListHierarchyBinding"], usesInheritance: true, ngImport: i0 });
19444
19755
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HierarchyBindingDirective, decorators: [{
19445
19756
  type: Directive,
19446
19757
  args: [{
19447
19758
  exportAs: 'kendoTreeListHierarchyBinding',
19448
- selector: '[kendoTreeListHierarchyBinding]'
19759
+ selector: '[kendoTreeListHierarchyBinding]',
19760
+ providers: [
19761
+ {
19762
+ provide: RowReorderService,
19763
+ useClass: HierarchicalRowReorderService
19764
+ }
19765
+ ]
19449
19766
  }]
19450
- }], ctorParameters: function () { return [{ type: DataBoundTreeComponent }]; }, propDecorators: { childrenField: [{
19767
+ }], ctorParameters: function () {
19768
+ return [{ type: DataBoundTreeComponent }, { type: RowReorderService, decorators: [{
19769
+ type: Optional
19770
+ }] }];
19771
+ }, propDecorators: { childrenField: [{
19451
19772
  type: Input
19452
19773
  }], data: [{
19453
19774
  type: Input,
@@ -19498,6 +19819,47 @@ class FlatEditService extends LocalEditService {
19498
19819
  }
19499
19820
  }
19500
19821
 
19822
+ /**
19823
+ * @hidden
19824
+ */
19825
+ class FlatRowReorderService extends RowReorderService {
19826
+ isOverChild(targetItem) {
19827
+ const { draggedRows } = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view);
19828
+ const draggedItem = draggedRows[0].dataItem;
19829
+ const hasParent = isPresent(targetItem[this.parentIdField]);
19830
+ const sameParents = draggedItem[this.parentIdField] === targetItem[this.parentIdField];
19831
+ if (!hasParent || sameParents) {
19832
+ return false;
19833
+ }
19834
+ if (targetItem && targetItem.hasOwnProperty(this.parentIdField)) {
19835
+ if (draggedItem[this.idField] === targetItem[this.parentIdField]) {
19836
+ return true;
19837
+ }
19838
+ const parent = this.data.find(i => i[this.idField] === targetItem[this.parentIdField]);
19839
+ if (parent) {
19840
+ return this.isOverChild(parent);
19841
+ }
19842
+ }
19843
+ }
19844
+ reorderRows(ev, collection) {
19845
+ const { draggedRows, dropTargetRow } = ev;
19846
+ const draggedDataItem = draggedRows[0].dataItem;
19847
+ const dropTargetDataItem = dropTargetRow.dataItem;
19848
+ let dropTargetIdx = collection.indexOf(dropTargetDataItem);
19849
+ const draggedItemIdx = collection.indexOf(draggedDataItem);
19850
+ collection.splice(draggedItemIdx, 1);
19851
+ if (ev.dropPosition === 'after' && dropTargetIdx < draggedItemIdx) {
19852
+ dropTargetIdx++;
19853
+ }
19854
+ collection.splice(dropTargetIdx, 0, draggedDataItem);
19855
+ }
19856
+ }
19857
+ FlatRowReorderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FlatRowReorderService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
19858
+ FlatRowReorderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FlatRowReorderService });
19859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FlatRowReorderService, decorators: [{
19860
+ type: Injectable
19861
+ }] });
19862
+
19501
19863
  const ROOT_ID = null;
19502
19864
  /**
19503
19865
  * A directive which binds the TreeList to an array of objects by using
@@ -19508,14 +19870,18 @@ const ROOT_ID = null;
19508
19870
  * and [filtering]({% slug filtering_treelist %}) ([more information and examples]({% slug databinding_treelist %})).
19509
19871
  */
19510
19872
  class FlatBindingDirective extends BaseBindingDirective {
19511
- constructor(component) {
19873
+ constructor(component, rowReorderService) {
19512
19874
  super(component);
19513
19875
  this.component = component;
19876
+ this.rowReorderService = rowReorderService;
19514
19877
  this.idGetter = getter('id');
19515
19878
  this.idSetter = setter('id');
19516
19879
  this.parentIdGetter = getter('parentId');
19517
19880
  this.parentIdSetter = setter('parentId');
19518
19881
  component.localEditService = new FlatEditService(this);
19882
+ if (this.rowReorderService) {
19883
+ this.rowReorderService.bindingDirective = this;
19884
+ }
19519
19885
  }
19520
19886
  /**
19521
19887
  * The name of the field which contains the identifier of the parent node.
@@ -19523,6 +19889,10 @@ class FlatBindingDirective extends BaseBindingDirective {
19523
19889
  set parentIdField(value) {
19524
19890
  this.parentIdGetter = getter(value);
19525
19891
  this.parentIdSetter = setter(value);
19892
+ this._parentIdField = value;
19893
+ }
19894
+ get parentIdField() {
19895
+ return this._parentIdField;
19526
19896
  }
19527
19897
  /**
19528
19898
  * The name of the field which contains the unique identifier of the node.
@@ -19530,7 +19900,14 @@ class FlatBindingDirective extends BaseBindingDirective {
19530
19900
  set idField(value) {
19531
19901
  this.idGetter = getter(value);
19532
19902
  this.idSetter = setter(value);
19903
+ this._idField = value;
19533
19904
  }
19905
+ get idField() {
19906
+ return this._idField;
19907
+ }
19908
+ /**
19909
+ * @hidden
19910
+ */
19534
19911
  getChildren(item) {
19535
19912
  const id = this.itemKey(item);
19536
19913
  const children = id === ROOT_ID ?
@@ -19541,16 +19918,50 @@ class FlatBindingDirective extends BaseBindingDirective {
19541
19918
  itemKey(item) {
19542
19919
  return item ? this.idGetter(item) : ROOT_ID;
19543
19920
  }
19921
+ onRowReorder(ev) {
19922
+ if (ev.dropPosition === 'forbidden') {
19923
+ return;
19924
+ }
19925
+ const draggedItem = ev.draggedRows[0].dataItem;
19926
+ const dropTargetItem = ev.dropTargetRow.dataItem;
19927
+ if (ev.dropPosition === 'over') {
19928
+ const dropItemId = this.itemKey(dropTargetItem);
19929
+ if (draggedItem[this.parentIdField] !== dropItemId) {
19930
+ draggedItem[this.parentIdField] = dropItemId;
19931
+ }
19932
+ }
19933
+ else {
19934
+ const dropItemParentId = dropTargetItem[this.parentIdField];
19935
+ draggedItem[this.parentIdField] = dropItemParentId;
19936
+ this.rowReorderService.reorderRows(ev, this.originalData);
19937
+ }
19938
+ this.rebind();
19939
+ }
19544
19940
  }
19545
- FlatBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FlatBindingDirective, deps: [{ token: DataBoundTreeComponent }], target: i0.ɵɵFactoryTarget.Directive });
19546
- FlatBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FlatBindingDirective, selector: "[kendoTreeListFlatBinding]", inputs: { parentIdField: "parentIdField", idField: "idField", data: ["kendoTreeListFlatBinding", "data"] }, exportAs: ["kendoTreeListFlatBinding"], usesInheritance: true, ngImport: i0 });
19941
+ FlatBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FlatBindingDirective, deps: [{ token: DataBoundTreeComponent }, { token: RowReorderService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
19942
+ FlatBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FlatBindingDirective, selector: "[kendoTreeListFlatBinding]", inputs: { parentIdField: "parentIdField", idField: "idField", data: ["kendoTreeListFlatBinding", "data"] }, providers: [
19943
+ {
19944
+ provide: RowReorderService,
19945
+ useClass: FlatRowReorderService
19946
+ }
19947
+ ], exportAs: ["kendoTreeListFlatBinding"], usesInheritance: true, ngImport: i0 });
19547
19948
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FlatBindingDirective, decorators: [{
19548
19949
  type: Directive,
19549
19950
  args: [{
19550
19951
  exportAs: 'kendoTreeListFlatBinding',
19551
- selector: '[kendoTreeListFlatBinding]'
19952
+ selector: '[kendoTreeListFlatBinding]',
19953
+ providers: [
19954
+ {
19955
+ provide: RowReorderService,
19956
+ useClass: FlatRowReorderService
19957
+ }
19958
+ ]
19552
19959
  }]
19553
- }], ctorParameters: function () { return [{ type: DataBoundTreeComponent }]; }, propDecorators: { parentIdField: [{
19960
+ }], ctorParameters: function () {
19961
+ return [{ type: DataBoundTreeComponent }, { type: RowReorderService, decorators: [{
19962
+ type: Optional
19963
+ }] }];
19964
+ }, propDecorators: { parentIdField: [{
19554
19965
  type: Input
19555
19966
  }], idField: [{
19556
19967
  type: Input
@@ -19841,7 +20252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
19841
20252
  * Represents the Kendo UI TreeListSpacer component for Angular.
19842
20253
  * Used to give additional white space between the Pager inner elements,
19843
20254
  * and provides a way for customizing the spacer width.
19844
- * It can also be used in any flex container within the TreeList.
20255
+ * It can also be used in any flex container within the TreeList. [See example](slug:toolbartemplate_treelist#toc-define-spacing-between-the-toolbar-elements).
19845
20256
  */
19846
20257
  class TreeListSpacerComponent {
19847
20258
  constructor() {
@@ -19962,7 +20373,8 @@ TreeListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
19962
20373
  RowFilterModule,
19963
20374
  FilterMenuModule,
19964
20375
  ResizeSensorModule,
19965
- ColumnMenuModule], exports: [TreeListComponent,
20376
+ ColumnMenuModule,
20377
+ DragAndDropModule$1], exports: [TreeListComponent,
19966
20378
  ToolbarTemplateDirective,
19967
20379
  ToolbarComponent,
19968
20380
  TreeListSpacerComponent,
@@ -19974,7 +20386,7 @@ TreeListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
19974
20386
  FlatBindingDirective,
19975
20387
  ExpandableDirective,
19976
20388
  SelectableDirective,
19977
- TreeListToolbarFocusableDirective, ColumnComponent, SpanColumnComponent, CheckboxColumnComponent, ColumnGroupComponent, FocusableDirective, CommandColumnComponent, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, FooterTemplateDirective, HeaderTemplateDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, 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, 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, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuComponent] });
20389
+ TreeListToolbarFocusableDirective, ColumnComponent, SpanColumnComponent, CheckboxColumnComponent, RowReorderColumnComponent, ColumnGroupComponent, FocusableDirective, CommandColumnComponent, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, FooterTemplateDirective, HeaderTemplateDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, 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, 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, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuComponent] });
19978
20390
  TreeListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TreeListModule, imports: [[
19979
20391
  CommonModule,
19980
20392
  SharedModule,
@@ -19984,7 +20396,8 @@ TreeListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
19984
20396
  RowFilterModule,
19985
20397
  FilterMenuModule,
19986
20398
  ResizeSensorModule,
19987
- ColumnMenuModule
20399
+ ColumnMenuModule,
20400
+ DragAndDropModule$1
19988
20401
  ]] });
19989
20402
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TreeListModule, decorators: [{
19990
20403
  type: NgModule,
@@ -20000,11 +20413,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20000
20413
  RowFilterModule,
20001
20414
  FilterMenuModule,
20002
20415
  ResizeSensorModule,
20003
- ColumnMenuModule
20416
+ ColumnMenuModule,
20417
+ DragAndDropModule$1
20004
20418
  ]
20005
20419
  }]
20006
20420
  }] });
20007
20421
 
20422
+ /**
20423
+ * Represents the Kendo UI PDFMargin component for Angular.
20424
+ * The supported units are:
20425
+ * `"mm"`
20426
+ * `"cm"`
20427
+ * `"in"`
20428
+ * `"pt"` (default).
20429
+ * Numbers are considered to be points (`"pt"`).
20430
+ */
20008
20431
  class PDFMarginComponent extends PDFExportMarginComponent {
20009
20432
  }
20010
20433
  PDFMarginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PDFMarginComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -20434,7 +20857,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20434
20857
  *
20435
20858
  * @example
20436
20859
  * ```html
20437
- * <kendo-treelist>
20860
+ * <kendo-treelist ...>
20438
20861
  * <ng-template kendoTreeListToolbarTemplate>
20439
20862
  * <button kendoTreeListPDFCommand>Export to PDF</button>
20440
20863
  * </ng-template>
@@ -20474,7 +20897,7 @@ PDFCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
20474
20897
  </span>
20475
20898
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
20476
20899
  <span class="k-button-text"><ng-content></ng-content></span>
20477
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
20900
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
20478
20901
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PDFCommandDirective, decorators: [{
20479
20902
  type: Component,
20480
20903
  args: [{
@@ -20775,7 +21198,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20775
21198
  *
20776
21199
  * @example
20777
21200
  * ```html
20778
- * <kendo-treelist>
21201
+ * <kendo-treelist ...>
20779
21202
  * <ng-template kendoTreeListToolbarTemplate>
20780
21203
  * <button kendoTreeListExcelCommand>Export to PDF</button>
20781
21204
  * </ng-template>
@@ -20815,7 +21238,7 @@ ExcelCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
20815
21238
  </span>
20816
21239
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
20817
21240
  <span class="k-button-text"><ng-content></ng-content></span>
20818
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
21241
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
20819
21242
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ExcelCommandDirective, decorators: [{
20820
21243
  type: Component,
20821
21244
  args: [{
@@ -20879,5 +21302,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20879
21302
  * Generated bundle index. Do not edit.
20880
21303
  */
20881
21304
 
20882
- export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseCommandDirective, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, CancelCommandDirective, CellCloseEvent, CellComponent, CellTemplateDirective, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuLockComponent, ColumnMenuSortComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, CustomMessagesComponent, DataBoundTreeComponent, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DoesNotContainFilterOperatorComponent, EditCommandDirective, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandEvent, ExpandableDirective, ExpandableTreeComponent, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FlatBindingDirective, FocusableDirective, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, HeaderComponent, HeaderModule, HeaderTemplateDirective, HierarchyBindingDirective, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, LevelItemsPipe, ListComponent, LoadingComponent, LogicalCellDirective, LogicalRowDirective, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerInfoComponent, PagerInputComponent, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, RowEditingDirectiveBase, RowFilterModule, SaveCommandDirective, SelectableDirective, SelectionChangeEvent, SharedFilterModule, SharedModule, SinglePopupService, Skip, SpanColumnComponent, StartsWithFilterOperatorComponent, StringFilterCellComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, TreeListComponent, TreeListModule, TreeListSpacerComponent, TreeListToolbarFocusableDirective };
21305
+ export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseCommandDirective, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, CancelCommandDirective, CellCloseEvent, CellComponent, CellTemplateDirective, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuLockComponent, ColumnMenuSortComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, CustomMessagesComponent, DataBoundTreeComponent, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DoesNotContainFilterOperatorComponent, EditCommandDirective, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandEvent, ExpandableDirective, ExpandableTreeComponent, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FlatBindingDirective, FocusableDirective, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, HeaderComponent, HeaderModule, HeaderTemplateDirective, HierarchyBindingDirective, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, LevelItemsPipe, ListComponent, LoadingComponent, LogicalCellDirective, LogicalRowDirective, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerInfoComponent, PagerInputComponent, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, RowEditingDirectiveBase, RowFilterModule, RowReorderColumnComponent, SaveCommandDirective, SelectableDirective, SelectionChangeEvent, SharedFilterModule, SharedModule, SinglePopupService, Skip, SpanColumnComponent, StartsWithFilterOperatorComponent, StringFilterCellComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, TreeListComponent, TreeListModule, TreeListSpacerComponent, TreeListToolbarFocusableDirective };
20883
21306