@progress/kendo-angular-treelist 13.0.0-develop.2 → 13.0.0-develop.20

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 (196) 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/autocomplete-filter-cell.component.mjs +12 -1
  64. package/esm2020/filtering/cell/boolean-filter-cell.component.mjs +29 -12
  65. package/esm2020/filtering/cell/date-filter-cell.component.mjs +23 -12
  66. package/esm2020/filtering/cell/filter-cell-operators.component.mjs +36 -1
  67. package/esm2020/filtering/cell/filter-cell-wrapper.component.mjs +3 -1
  68. package/esm2020/filtering/cell/numeric-filter-cell.component.mjs +25 -13
  69. package/esm2020/filtering/cell/string-filter-cell.component.mjs +26 -14
  70. package/esm2020/filtering/date-filter.component.mjs +6 -1
  71. package/esm2020/filtering/filter-input.directive.mjs +29 -3
  72. package/esm2020/filtering/menu/boolean-filter-menu.component.mjs +33 -19
  73. package/esm2020/filtering/menu/date-filter-menu-input.component.mjs +1 -1
  74. package/esm2020/filtering/menu/date-filter-menu.component.mjs +12 -12
  75. package/esm2020/filtering/menu/filter-menu.component.mjs +1 -1
  76. package/esm2020/filtering/menu/numeric-filter-menu-input.component.mjs +1 -1
  77. package/esm2020/filtering/menu/numeric-filter-menu.component.mjs +12 -12
  78. package/esm2020/filtering/menu/string-filter-menu-input.component.mjs +19 -8
  79. package/esm2020/filtering/menu/string-filter-menu.component.mjs +15 -0
  80. package/esm2020/filtering/numeric-filter.component.mjs +4 -1
  81. package/esm2020/filtering/operators/after-eq-filter-operator.component.mjs +2 -5
  82. package/esm2020/filtering/operators/after-filter-operator.component.mjs +2 -5
  83. package/esm2020/filtering/operators/before-eq-filter-operator.component.mjs +2 -5
  84. package/esm2020/filtering/operators/before-filter-operator.component.mjs +3 -6
  85. package/esm2020/filtering/operators/contains-filter-operator.component.mjs +1 -4
  86. package/esm2020/filtering/operators/ends-with-filter-operator.component.mjs +1 -4
  87. package/esm2020/filtering/operators/eq-filter-operator.component.mjs +1 -4
  88. package/esm2020/filtering/operators/gt-filter-operator.component.mjs +1 -4
  89. package/esm2020/filtering/operators/gte-filter-operator.component.mjs +1 -4
  90. package/esm2020/filtering/operators/is-empty-filter-operator.component.mjs +1 -4
  91. package/esm2020/filtering/operators/is-not-empty-filter-operator.component.mjs +1 -4
  92. package/esm2020/filtering/operators/is-not-null-filter-operator.component.mjs +1 -4
  93. package/esm2020/filtering/operators/isnull-filter-operator.component.mjs +1 -4
  94. package/esm2020/filtering/operators/lt-filter-operator.component.mjs +2 -5
  95. package/esm2020/filtering/operators/lte-filter-operator.component.mjs +1 -4
  96. package/esm2020/filtering/operators/neq-filter-operator.component.mjs +1 -4
  97. package/esm2020/filtering/operators/not-contains-filter-operator.component.mjs +1 -4
  98. package/esm2020/filtering/operators/starts-with-filter-operator.component.mjs +1 -4
  99. package/esm2020/filtering/string-filter.component.mjs +2 -1
  100. package/esm2020/index.mjs +2 -0
  101. package/esm2020/localization/custom-messages.component.mjs +1 -1
  102. package/esm2020/localization/messages.mjs +13 -1
  103. package/esm2020/package-metadata.mjs +2 -2
  104. package/esm2020/pager/pager-element.component.mjs +17 -0
  105. package/esm2020/pager/pager-next-buttons.component.mjs +8 -11
  106. package/esm2020/pager/pager-numeric-buttons.component.mjs +1 -1
  107. package/esm2020/pager/pager-page-sizes.component.mjs +1 -1
  108. package/esm2020/pager/pager-prev-buttons.component.mjs +8 -11
  109. package/esm2020/pager/pager-template.directive.mjs +1 -1
  110. package/esm2020/pdf/pdf-command.directive.mjs +2 -2
  111. package/esm2020/pdf/pdf-margin.component.mjs +9 -0
  112. package/esm2020/rendering/cell-template.directive.mjs +1 -1
  113. package/esm2020/rendering/cell.component.mjs +73 -20
  114. package/esm2020/rendering/common/spacer.component.mjs +1 -1
  115. package/esm2020/rendering/constants.mjs +4 -0
  116. package/esm2020/rendering/header/header.component.mjs +6 -1
  117. package/esm2020/rendering/list.component.mjs +20 -18
  118. package/esm2020/rendering/table-body.component.mjs +5 -3
  119. package/esm2020/row-reordering/flat-reorder.service.mjs +48 -0
  120. package/esm2020/row-reordering/hierarchical-reorder.service.mjs +55 -0
  121. package/esm2020/row-reordering/row-reorder.service.mjs +220 -0
  122. package/esm2020/row-reordering/types.mjs +5 -0
  123. package/esm2020/row-reordering/utils.mjs +129 -0
  124. package/esm2020/shared.module.mjs +8 -3
  125. package/esm2020/treelist.component.mjs +229 -321
  126. package/esm2020/treelist.module.mjs +71 -66
  127. package/excel/excel-command.directive.d.ts +1 -1
  128. package/excel/excel-export-data.interface.d.ts +1 -1
  129. package/excel/excel.component.d.ts +9 -8
  130. package/fesm2015/progress-kendo-angular-treelist.mjs +1434 -832
  131. package/fesm2020/progress-kendo-angular-treelist.mjs +1426 -833
  132. package/filtering/cell/autocomplete-filter-cell.component.d.ts +4 -0
  133. package/filtering/cell/boolean-filter-cell.component.d.ts +19 -11
  134. package/filtering/cell/date-filter-cell.component.d.ts +15 -11
  135. package/filtering/cell/filter-cell-operators.component.d.ts +29 -1
  136. package/filtering/cell/numeric-filter-cell.component.d.ts +17 -12
  137. package/filtering/cell/string-filter-cell.component.d.ts +16 -11
  138. package/filtering/date-filter.component.d.ts +7 -11
  139. package/filtering/filter-input.directive.d.ts +7 -1
  140. package/filtering/menu/boolean-filter-menu.component.d.ts +19 -13
  141. package/filtering/menu/date-filter-menu.component.d.ts +12 -12
  142. package/filtering/menu/numeric-filter-menu.component.d.ts +12 -12
  143. package/filtering/menu/string-filter-menu-input.component.d.ts +4 -0
  144. package/filtering/menu/string-filter-menu.component.d.ts +15 -0
  145. package/filtering/numeric-filter.component.d.ts +4 -1
  146. package/filtering/operators/after-eq-filter-operator.component.d.ts +4 -0
  147. package/filtering/operators/after-filter-operator.component.d.ts +4 -0
  148. package/filtering/operators/before-eq-filter-operator.component.d.ts +4 -0
  149. package/filtering/operators/before-filter-operator.component.d.ts +4 -0
  150. package/filtering/operators/contains-filter-operator.component.d.ts +1 -4
  151. package/filtering/operators/ends-with-filter-operator.component.d.ts +1 -4
  152. package/filtering/operators/eq-filter-operator.component.d.ts +1 -4
  153. package/filtering/operators/gte-filter-operator.component.d.ts +1 -4
  154. package/filtering/operators/is-empty-filter-operator.component.d.ts +1 -4
  155. package/filtering/operators/is-not-empty-filter-operator.component.d.ts +1 -4
  156. package/filtering/operators/is-not-null-filter-operator.component.d.ts +1 -4
  157. package/filtering/operators/isnull-filter-operator.component.d.ts +1 -4
  158. package/filtering/operators/lt-filter-operator.component.d.ts +4 -0
  159. package/filtering/operators/neq-filter-operator.component.d.ts +1 -4
  160. package/filtering/operators/not-contains-filter-operator.component.d.ts +1 -4
  161. package/filtering/operators/starts-with-filter-operator.component.d.ts +1 -4
  162. package/filtering/string-filter.component.d.ts +2 -1
  163. package/index.d.ts +2 -0
  164. package/localization/custom-messages.component.d.ts +1 -1
  165. package/localization/messages.d.ts +42 -2
  166. package/navigation/navigation-cell.interface.d.ts +1 -4
  167. package/navigation/navigation-row.interface.d.ts +1 -4
  168. package/package.json +16 -15
  169. package/pager/pager-element.component.d.ts +9 -0
  170. package/pager/pager-next-buttons.component.d.ts +0 -3
  171. package/pager/pager-numeric-buttons.component.d.ts +1 -1
  172. package/pager/pager-prev-buttons.component.d.ts +0 -3
  173. package/pager/pager-settings.d.ts +1 -15
  174. package/pager/pager-template.directive.d.ts +1 -1
  175. package/pdf/pdf-command.directive.d.ts +1 -1
  176. package/pdf/pdf-margin.component.d.ts +9 -0
  177. package/rendering/cell-template.directive.d.ts +1 -1
  178. package/rendering/cell.component.d.ts +10 -1
  179. package/rendering/common/spacer.component.d.ts +1 -1
  180. package/rendering/constants.d.ts +4 -0
  181. package/rendering/header/header.component.d.ts +1 -0
  182. package/row-reordering/flat-reorder.service.d.ts +16 -0
  183. package/row-reordering/hierarchical-reorder.service.d.ts +16 -0
  184. package/row-reordering/row-reorder.service.d.ts +61 -0
  185. package/row-reordering/types.d.ts +39 -0
  186. package/row-reordering/utils.d.ts +85 -0
  187. package/schematics/ngAdd/index.js +3 -3
  188. package/scrolling/content-scroll-event.d.ts +1 -1
  189. package/scrolling/scroll-bottom-event.d.ts +1 -1
  190. package/scrolling/scroll-request.service.d.ts +6 -0
  191. package/selection/selectable-settings.d.ts +5 -15
  192. package/selection/selectable.directive.d.ts +1 -1
  193. package/selection/selection-change-event.d.ts +1 -1
  194. package/shared.module.d.ts +5 -4
  195. package/treelist.component.d.ts +66 -289
  196. package/treelist.module.d.ts +68 -66
@@ -3,29 +3,31 @@
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
- import * as i3$2 from '@angular/forms';
9
+ import * as i4$1 from '@angular/forms';
10
10
  import { NG_VALUE_ACCESSOR, FormControl, FormGroup, ReactiveFormsModule, FormsModule } from '@angular/forms';
11
11
  import { merge, of, fromEvent, isObservable, BehaviorSubject, Subscription, Subject, zip as zip$1, from, interval, Observable } from 'rxjs';
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, KendoInput, 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 i3$2 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';
@@ -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: 1684846780,
50
- version: '13.0.0-develop.2',
51
+ publishDate: 1685961291,
52
+ version: '13.0.0-develop.20',
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
  }
@@ -5800,6 +6079,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5800
6079
  */
5801
6080
  class FilterInputDirective {
5802
6081
  constructor(valueAccessors, ngZone, element, renderer) {
6082
+ this.element = element;
6083
+ this.renderer = renderer;
5803
6084
  this.change = new EventEmitter();
5804
6085
  this.composing = false;
5805
6086
  this.filterDelay = 500;
@@ -5821,6 +6102,7 @@ class FilterInputDirective {
5821
6102
  this.accessor.setDisabledState(value);
5822
6103
  }
5823
6104
  ngAfterViewInit() {
6105
+ this.addAriaAttributes();
5824
6106
  this.accessor.registerOnChange(x => this.filterDelay > 0 ?
5825
6107
  this.changeRequests.next(x) :
5826
6108
  this.change.emit(x));
@@ -5846,9 +6128,24 @@ class FilterInputDirective {
5846
6128
  this.changeRequestsSubscription.unsubscribe();
5847
6129
  }
5848
6130
  }
6131
+ addAriaAttributes() {
6132
+ const ariaValue = this.columnLabel;
6133
+ if (this.kendoInput && this.kendoInput.focusableId && isDocumentAvailable()) {
6134
+ const focusableElement = this.element.nativeElement.querySelector(`#${this.kendoInput.focusableId}`) ||
6135
+ this.element.nativeElement;
6136
+ this.renderer.setAttribute(focusableElement, 'aria-label', ariaValue);
6137
+ }
6138
+ else {
6139
+ const inputElement = this.element.nativeElement.querySelector('.k-input-inner');
6140
+ const elementToSetLabel = inputElement ? inputElement : this.element.nativeElement;
6141
+ if (ariaValue) {
6142
+ this.renderer.setAttribute(elementToSetLabel, 'aria-label', ariaValue);
6143
+ }
6144
+ }
6145
+ }
5849
6146
  }
5850
6147
  FilterInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterInputDirective, deps: [{ token: NG_VALUE_ACCESSOR, self: true }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
5851
- FilterInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: { filterDelay: "filterDelay", value: "value" }, usesOnChanges: true, ngImport: i0 });
6148
+ FilterInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: { filterDelay: "filterDelay", columnLabel: "columnLabel", column: "column", value: "value" }, queries: [{ propertyName: "kendoInput", first: true, predicate: KendoInput, descendants: true, static: true }], usesOnChanges: true, ngImport: i0 });
5852
6149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterInputDirective, decorators: [{
5853
6150
  type: Directive,
5854
6151
  args: [{
@@ -5861,7 +6158,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5861
6158
  type: Inject,
5862
6159
  args: [NG_VALUE_ACCESSOR]
5863
6160
  }] }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }];
5864
- }, propDecorators: { filterDelay: [{
6161
+ }, propDecorators: { kendoInput: [{
6162
+ type: ContentChild,
6163
+ args: [KendoInput, { static: true }]
6164
+ }], filterDelay: [{
6165
+ type: Input
6166
+ }], columnLabel: [{
6167
+ type: Input
6168
+ }], column: [{
5865
6169
  type: Input
5866
6170
  }], value: [{
5867
6171
  type: Input
@@ -6057,11 +6361,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6057
6361
  * @hidden
6058
6362
  */
6059
6363
  class StringFilterMenuInputComponent {
6060
- constructor() {
6364
+ constructor(localization) {
6365
+ this.localization = localization;
6061
6366
  this.operators = [];
6062
6367
  }
6368
+ get columnLabel() {
6369
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
6370
+ const columnName = this.column ? this.column.title || this.column.field : '';
6371
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
6372
+ }
6063
6373
  }
6064
- StringFilterMenuInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6374
+ StringFilterMenuInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuInputComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
6065
6375
  StringFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: StringFilterMenuInputComponent, selector: "kendo-treelist-string-filter-menu-input", inputs: { operators: "operators", column: "column", filter: "filter", operator: "operator", currentFilter: "currentFilter", filterService: "filterService" }, ngImport: i0, template: `
6066
6376
  <kendo-treelist-filter-menu-input-wrapper
6067
6377
  [column]="column"
@@ -6074,10 +6384,11 @@ StringFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
6074
6384
  <input
6075
6385
  kendoTextBox
6076
6386
  kendoFilterInput
6387
+ [columnLabel]="columnLabel"
6077
6388
  [filterDelay]="0"
6078
6389
  [ngModel]="currentFilter?.value" />
6079
6390
  </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"] }] });
6391
+ `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }], directives: [{ type: i3$2.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { type: i4$1.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", "columnLabel", "column", "value"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
6081
6392
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuInputComponent, decorators: [{
6082
6393
  type: Component,
6083
6394
  args: [{
@@ -6094,12 +6405,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6094
6405
  <input
6095
6406
  kendoTextBox
6096
6407
  kendoFilterInput
6408
+ [columnLabel]="columnLabel"
6097
6409
  [filterDelay]="0"
6098
6410
  [ngModel]="currentFilter?.value" />
6099
6411
  </kendo-treelist-filter-menu-input-wrapper>
6100
6412
  `
6101
6413
  }]
6102
- }], propDecorators: { operators: [{
6414
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { operators: [{
6103
6415
  type: Input
6104
6416
  }], column: [{
6105
6417
  type: Input
@@ -6116,6 +6428,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6116
6428
  /**
6117
6429
  * Represents a string-filter menu component.
6118
6430
  * ([see example]({% slug builtinfiltertemplate_treelist %}#toc-configuration-components-for-filter-templates)).
6431
+ *
6432
+ * @example
6433
+ * ```html
6434
+ * <kendo-treelist-column field="name">
6435
+ * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
6436
+ * <kendo-treelist-string-filter-menu
6437
+ * [column]="column"
6438
+ * [filter]="filter"
6439
+ * [filterService]="filterService">
6440
+ * </kendo-treelist-string-filter-menu>
6441
+ * </ng-template>
6442
+ * </kendo-treelist-column>
6443
+ * ```
6444
+ *
6119
6445
  */
6120
6446
  class StringFilterMenuComponent extends StringFilterComponent {
6121
6447
  constructor(localization) {
@@ -6128,6 +6454,7 @@ class StringFilterMenuComponent extends StringFilterComponent {
6128
6454
  this.filter = { filters: [], logic: "and" };
6129
6455
  /**
6130
6456
  * Determines if the inputs of second criteria will displayed.
6457
+ * @default true
6131
6458
  */
6132
6459
  this.extra = true;
6133
6460
  }
@@ -6240,18 +6567,21 @@ class NumericFilterComponent extends BaseFilterCellComponent {
6240
6567
  super(filterService);
6241
6568
  this.localization = localization;
6242
6569
  /**
6243
- * The default filter operator. Defaults to `eq`.
6570
+ * The default filter operator.
6244
6571
  * @type {string}
6572
+ * @default 'eq'
6245
6573
  */
6246
6574
  this.operator = "eq";
6247
6575
  /**
6248
6576
  * Specifies the value that is used to increment or decrement the component value.
6249
6577
  * @type {numeric}
6578
+ * @default 1
6250
6579
  */
6251
6580
  this.step = 1;
6252
6581
  /**
6253
6582
  * Specifies whether the **Up** and **Down** spin buttons will be rendered.
6254
6583
  * @type {boolean}
6584
+ * @default true
6255
6585
  */
6256
6586
  this.spinners = true;
6257
6587
  this.defaultOperators = numericOperators(this.localization);
@@ -6375,7 +6705,7 @@ NumericFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
6375
6705
  [step]="step">
6376
6706
  </kendo-numerictextbox>
6377
6707
  </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"] }] });
6708
+ `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }, { type: i3$2.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", "columnLabel", "column", "value"] }] });
6379
6709
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuInputComponent, decorators: [{
6380
6710
  type: Component,
6381
6711
  args: [{
@@ -6434,18 +6764,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6434
6764
  * Represents a numeric-filter menu component.
6435
6765
  *
6436
6766
  * @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
- * ```
6767
+ * ```html
6768
+ * <kendo-treelist-column field="UnitPrice">
6769
+ * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
6770
+ * <kendo-treelist-numeric-filter-menu
6771
+ * [column]="column"
6772
+ * [filter]="filter"
6773
+ * [filterService]="filterService">
6774
+ * </kendo-treelist-numeric-filter-menu>
6775
+ * </ng-template>
6776
+ * </kendo-treelist-column>
6777
+ * ```
6449
6778
  */
6450
6779
  class NumericFilterMenuComponent extends NumericFilterComponent {
6451
6780
  constructor(localization) {
@@ -6458,6 +6787,7 @@ class NumericFilterMenuComponent extends NumericFilterComponent {
6458
6787
  this.filter = { filters: [], logic: "and" };
6459
6788
  /**
6460
6789
  * Determines if the inputs of second criteria will displayed.
6790
+ * @default true
6461
6791
  */
6462
6792
  this.extra = true;
6463
6793
  }
@@ -6603,25 +6933,30 @@ class DateFilterComponent extends BaseFilterCellComponent {
6603
6933
  /**
6604
6934
  * The default filter operator. Defaults to `contains`.
6605
6935
  * @type {string}
6936
+ * @default 'gte'
6606
6937
  */
6607
6938
  this.operator = "gte";
6608
6939
  /**
6609
6940
  * Defines the active view that the calendar initially renders.
6610
6941
  * By default, the active view is `month`.
6611
6942
  *
6612
- * > You have to set `activeView` within the `topView`-`bottomView` range.
6943
+ * You have to set `activeView` within the `topView`-`bottomView` range.
6944
+ * @default 'month'
6613
6945
  */
6614
6946
  this.activeView = "month";
6615
6947
  /**
6616
6948
  * Defines the bottommost calendar view, to which the user can navigate.
6949
+ * @default 'month'
6617
6950
  */
6618
6951
  this.bottomView = "month";
6619
6952
  /**
6620
6953
  * Defines the topmost calendar view, to which the user can navigate.
6954
+ * @default 'century'
6621
6955
  */
6622
6956
  this.topView = "century";
6623
6957
  /**
6624
6958
  * Determines whether to display a week number column in the `month` view of the Calendar.
6959
+ * @default false
6625
6960
  */
6626
6961
  this.weekNumber = false;
6627
6962
  this.defaultOperators = dateOperators(this.localization);
@@ -6757,7 +7092,7 @@ DateFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
6757
7092
  >
6758
7093
  </kendo-datepicker>
6759
7094
  </kendo-treelist-filter-menu-input-wrapper>
6760
- `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }, { 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: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
7095
+ `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }, { 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: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
6761
7096
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuInputComponent, decorators: [{
6762
7097
  type: Component,
6763
7098
  args: [{
@@ -6827,18 +7162,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6827
7162
  * Represents a date-filter menu component.
6828
7163
  *
6829
7164
  * @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
- * ```
7165
+ * ```html
7166
+ * <kendo-treelist-column field="OrderDate" title="Order Date">
7167
+ * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
7168
+ * <kendo-treelist-date-filter-menu
7169
+ * [column]="column"
7170
+ * [filter]="filter"
7171
+ * [filterService]="filterService">
7172
+ * </kendo-treelist-date-filter-menu>
7173
+ * </ng-template>
7174
+ * </kendo-treelist-column>
7175
+ * ```
6842
7176
  */
6843
7177
  class DateFilterMenuComponent extends DateFilterComponent {
6844
7178
  constructor(localization) {
@@ -6851,6 +7185,7 @@ class DateFilterMenuComponent extends DateFilterComponent {
6851
7185
  this.filter = { filters: [], logic: "and" };
6852
7186
  /**
6853
7187
  * Determines if the inputs of second criteria will be displayed.
7188
+ * @default true
6854
7189
  */
6855
7190
  this.extra = true;
6856
7191
  }
@@ -7064,25 +7399,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7064
7399
  }] } });
7065
7400
 
7066
7401
  /**
7067
- * Represents a Boolean-filter menu component.
7402
+ * Represents a Boolean-filter menu component. [See example](slug:columnmenu_treelist#toc-customizing-the-content).
7068
7403
  *
7069
7404
  * @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>
7405
+ * ```html
7406
+ * <kendo-treelist-column field="Discontinued" title="Discontinued">
7407
+ * <ng-template kendoTreeListFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
7408
+ * <kendo-treelist-boolean-filter-menu
7409
+ * [column]="column"
7410
+ * [filter]="filter"
7411
+ * [filterService]="filterService">
7412
+ * </kendo-treelist-boolean-filter-menu>
7413
+ * </ng-template>
7414
+ * </kendo-treelist-column>
7081
7415
  * ```
7082
7416
  */
7083
7417
  class BooleanFilterMenuComponent extends BooleanFilterComponent {
7084
- constructor(localization) {
7418
+ constructor(renderer, localization) {
7085
7419
  super(null, localization);
7420
+ this.renderer = renderer;
7086
7421
  /**
7087
7422
  * The current menu filter.
7088
7423
  * @type {CompositeFilterDescriptor}
@@ -7118,12 +7453,22 @@ class BooleanFilterMenuComponent extends BooleanFilterComponent {
7118
7453
  isSelected(radioValue) {
7119
7454
  return this.filtersByField(this.column.field).some(({ value }) => value === radioValue);
7120
7455
  }
7456
+ /**
7457
+ * @hidden
7458
+ */
7459
+ columnLabel() {
7460
+ const elem = this.inputElem.nativeElement;
7461
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
7462
+ const columnName = this.column.title || this.column.field;
7463
+ const fullMessage = replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
7464
+ this.renderer.setAttribute(elem, 'aria-label', fullMessage);
7465
+ }
7121
7466
  }
7122
- BooleanFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterMenuComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
7123
- BooleanFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BooleanFilterMenuComponent, selector: "kendo-treelist-boolean-filter-menu", inputs: { filter: "filter", filterService: "filterService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, usesInheritance: true, ngImport: i0, template: `
7467
+ BooleanFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterMenuComponent, deps: [{ token: i0.Renderer2 }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
7468
+ BooleanFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BooleanFilterMenuComponent, selector: "kendo-treelist-boolean-filter-menu", inputs: { filter: "filter", filterService: "filterService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, viewQueries: [{ propertyName: "inputElem", first: true, predicate: ["inputElem"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
7124
7469
  <ul class="k-radio-list k-reset">
7125
7470
  <li *ngFor="let item of items">
7126
- <input type="radio"
7471
+ <input #inputElem type="radio"
7127
7472
  kendoRadioButton
7128
7473
  [name]="idPrefix"
7129
7474
  [checked]="isSelected(item.value)"
@@ -7133,7 +7478,7 @@ BooleanFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
7133
7478
  <label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
7134
7479
  </li>
7135
7480
  </ul>
7136
- `, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$1.RadioButtonDirective, selector: "input[kendoRadioButton]", inputs: ["size"] }] });
7481
+ `, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$2.RadioButtonDirective, selector: "input[kendoRadioButton]", inputs: ["size"] }] });
7137
7482
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterMenuComponent, decorators: [{
7138
7483
  type: Component,
7139
7484
  args: [{
@@ -7141,7 +7486,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7141
7486
  template: `
7142
7487
  <ul class="k-radio-list k-reset">
7143
7488
  <li *ngFor="let item of items">
7144
- <input type="radio"
7489
+ <input #inputElem type="radio"
7145
7490
  kendoRadioButton
7146
7491
  [name]="idPrefix"
7147
7492
  [checked]="isSelected(item.value)"
@@ -7153,9 +7498,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7153
7498
  </ul>
7154
7499
  `
7155
7500
  }]
7156
- }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { hostClasses: [{
7501
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1$1.LocalizationService }]; }, propDecorators: { hostClasses: [{
7157
7502
  type: HostBinding,
7158
7503
  args: ['class.k-filtercell']
7504
+ }], inputElem: [{
7505
+ type: ViewChild,
7506
+ args: ['inputElem']
7159
7507
  }], filter: [{
7160
7508
  type: Input
7161
7509
  }], filterService: [{
@@ -7355,7 +7703,7 @@ FilterMenuContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
7355
7703
  </div>
7356
7704
  </div>
7357
7705
  </form>
7358
- `, isInline: true, directives: [{ type: i3$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: FilterMenuHostDirective, selector: "[kendoFilterMenuHost]", inputs: ["filterService"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
7706
+ `, isInline: true, directives: [{ type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: FilterMenuHostDirective, selector: "[kendoFilterMenuHost]", inputs: ["filterService"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
7359
7707
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuContainerComponent, decorators: [{
7360
7708
  type: Component,
7361
7709
  args: [{
@@ -7459,7 +7807,7 @@ FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
7459
7807
  >
7460
7808
  </kendo-treelist-filter-menu-container>
7461
7809
  </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"] }] });
7810
+ `, 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
7811
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, decorators: [{
7464
7812
  type: Component,
7465
7813
  args: [{
@@ -7497,7 +7845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7497
7845
  *
7498
7846
  * @example
7499
7847
  * ```html
7500
- * <kendo-treelist>
7848
+ * <kendo-treelist ...>
7501
7849
  * <ng-template
7502
7850
  * kendoTreeListColumnMenuTemplate
7503
7851
  * let-service="service"
@@ -7567,7 +7915,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7567
7915
  *
7568
7916
  * @example
7569
7917
  * ```html
7570
- * <kendo-treelist>
7918
+ * <kendo-treelist ...>
7571
7919
  * <kendo-treelist-column field="ProductName">
7572
7920
  * <ng-template kendoTreeListColumnMenuTemplate>
7573
7921
  * <kendo-treelist-columnmenu-item text="Item Text" [expanded]="true">
@@ -7602,12 +7950,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7602
7950
  * Represents an item that can be placed inside a
7603
7951
  * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
7604
7952
  *
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 %}
7953
+ * * @example
7954
+ * ```html
7955
+ * <kendo-treelist ...>
7956
+ * <ng-template kendoTreeListColumnMenuTemplate let-service="service" let-column="column">
7957
+ * <kendo-treelist-columnmenu-item text="Fit column"></kendo-treelist-columnmenu-item>
7958
+ * </ng-template>
7959
+ * </kendo-treelist>
7960
+ * ```
7611
7961
  */
7612
7962
  class ColumnMenuItemComponent {
7613
7963
  constructor() {
@@ -7662,7 +8012,7 @@ ColumnMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
7662
8012
  <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
7663
8013
  </ng-container>
7664
8014
  <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: [
8015
+ `, 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
8016
  trigger('state', [
7667
8017
  state('collapsed', style({ display: 'none' })),
7668
8018
  state('expanded', style({ display: 'block' })),
@@ -7749,19 +8099,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7749
8099
  }] } });
7750
8100
 
7751
8101
  /**
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.
8102
+ * Represents the column-menu item for sorting TreeList columns.
8103
+ *
8104
+ * The component can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
7755
8105
  *
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.
8106
+ * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})
8107
+ * that is passed by the template to the service input of the `kendo-treelist-columnmenu-sort` component.
7758
8108
  *
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
8109
  */
7766
8110
  class ColumnMenuSortComponent extends ColumnMenuItemBase {
7767
8111
  constructor(localization, sortService) {
@@ -7843,19 +8187,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7843
8187
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: SortService }]; } });
7844
8188
 
7845
8189
  /**
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.
8190
+ * Represents the column-menu item that allows the user to lock or unlock columns.
8191
+ *
8192
+ * The componnt can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
7849
8193
  *
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.
8194
+ * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})
8195
+ * that is passed by the template to the service input of the `kendo-treelist-columnmenu-lock` component.
7852
8196
  *
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
8197
  */
7860
8198
  class ColumnMenuLockComponent extends ColumnMenuItemBase {
7861
8199
  constructor(localization, columnInfoService, changeDetector) {
@@ -8142,18 +8480,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8142
8480
  }] } });
8143
8481
 
8144
8482
  /**
8145
- * Represents the component for selecting columns in the TreeList that can be placed
8146
- * inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
8483
+ * Represents the column-menu item for selecting columns in the TreeList. [See example](slug:columnmenu_treelist#toc-column-chooser-item).
8147
8484
  *
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.
8485
+ * The component can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
8486
+ *
8487
+ * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})
8488
+ * that is passed by the template to the service input of the `kendo-treelist-columnmenu-chooser` component.
8150
8489
  *
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
8490
  */
8158
8491
  class ColumnMenuChooserComponent extends ColumnMenuItemBase {
8159
8492
  constructor(localization, columnInfoService, changeDetector) {
@@ -8171,6 +8504,7 @@ class ColumnMenuChooserComponent extends ColumnMenuItemBase {
8171
8504
  this.collapse = new EventEmitter();
8172
8505
  /**
8173
8506
  * Specifies if the content is expanded.
8507
+ * @default false
8174
8508
  */
8175
8509
  this.expanded = false;
8176
8510
  /**
@@ -8195,7 +8529,7 @@ class ColumnMenuChooserComponent extends ColumnMenuItemBase {
8195
8529
  }
8196
8530
  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
8531
  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
8532
+ <kendo-treelist-columnmenu-item
8199
8533
  [text]="localization.get('columns')"
8200
8534
  icon="columns"
8201
8535
  [svgIcon]="columnsIcon"
@@ -8220,7 +8554,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8220
8554
  args: [{
8221
8555
  selector: 'kendo-treelist-columnmenu-chooser',
8222
8556
  template: `
8223
- <kendo-treelist-columnmenu-item
8557
+ <kendo-treelist-columnmenu-item
8224
8558
  [text]="localization.get('columns')"
8225
8559
  icon="columns"
8226
8560
  [svgIcon]="columnsIcon"
@@ -8250,18 +8584,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8250
8584
  }] } });
8251
8585
 
8252
8586
  /**
8253
- * Represents the component for editing column filters in the TreeList that can be placed
8254
- * inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
8587
+ * Represents the column-menu item for editing column filters in the TreeList.
8255
8588
  *
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.
8589
+ * The component can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.
8590
+ *
8591
+ * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})
8592
+ * that is passed by the template to the service input of the `kendo-treelist-columnmenu-filter` component.
8258
8593
  *
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
8594
  */
8266
8595
  class ColumnMenuFilterComponent extends ColumnMenuItemBase {
8267
8596
  constructor(localization) {
@@ -8277,6 +8606,7 @@ class ColumnMenuFilterComponent extends ColumnMenuItemBase {
8277
8606
  this.collapse = new EventEmitter();
8278
8607
  /**
8279
8608
  * Specifies if the content is expanded.
8609
+ * @default false
8280
8610
  */
8281
8611
  this.expanded = false;
8282
8612
  /**
@@ -8338,7 +8668,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8338
8668
 
8339
8669
  const POPUP_CLASS = 'k-grid-columnmenu-popup';
8340
8670
  /**
8341
- * Represents the [column menu]({% slug columnmenu_treelist %}) component.
8671
+ * Represents the [column menu]({% slug columnmenu_treelist %}) component of the TreeList.
8342
8672
  */
8343
8673
  class ColumnMenuComponent {
8344
8674
  constructor(popupService, localization, service) {
@@ -8470,7 +8800,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8470
8800
  [expanded]="expandedFilter" (expand)="onFilterExpand()">
8471
8801
  </kendo-treelist-columnmenu-filter>
8472
8802
  </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"] }] });
8803
+ `, 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
8804
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
8475
8805
  type: Component,
8476
8806
  args: [{
@@ -8528,6 +8858,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8528
8858
 
8529
8859
  /**
8530
8860
  * Represents a component which accommodates the filter operators.
8861
+ *
8862
+ * @example
8863
+ * ```html
8864
+ * <kendo-treelist ...>
8865
+ * <kendo-treelist-column field="ProductName">
8866
+ * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
8867
+ * <input />
8868
+ * <kendo-treelist-filter-cell-operators
8869
+ * [operators]="[{text: 'Equals', value: 'eq'}]">
8870
+ * </kendo-treelist-filter-cell-operators>
8871
+ * </ng-template>
8872
+ * </kendo-treelist-column>
8873
+ * </kendo-treelist>
8874
+ * ```
8531
8875
  */
8532
8876
  class FilterCellOperatorsComponent {
8533
8877
  constructor(localization) {
@@ -8541,6 +8885,7 @@ class FilterCellOperatorsComponent {
8541
8885
  /**
8542
8886
  * Determines if the list of operators will be displayed.
8543
8887
  * @type {boolean}
8888
+ * @default true
8544
8889
  */
8545
8890
  this.showOperators = true;
8546
8891
  /**
@@ -8601,9 +8946,23 @@ class FilterCellOperatorsComponent {
8601
8946
  this.subscription.unsubscribe();
8602
8947
  }
8603
8948
  }
8949
+ /**
8950
+ * @hidden
8951
+ */
8952
+ get columnLabel() {
8953
+ const localizationMsg = this.localization.get('filterCellOperatorLabel') || '';
8954
+ const columnName = this.column.title || this.column.field;
8955
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
8956
+ }
8957
+ /**
8958
+ * @hidden
8959
+ */
8960
+ messageFor(token) {
8961
+ return this.localization.get(token);
8962
+ }
8604
8963
  }
8605
8964
  FilterCellOperatorsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellOperatorsComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
8606
- FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FilterCellOperatorsComponent, selector: "kendo-treelist-filter-cell-operators", inputs: { operators: "operators", showButton: "showButton", showOperators: "showOperators", value: "value" }, outputs: { valueChange: "valueChange", clear: "clear" }, host: { properties: { "class.k-filtercell-operator": "this.hostClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: `
8965
+ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FilterCellOperatorsComponent, selector: "kendo-treelist-filter-cell-operators", inputs: { operators: "operators", showButton: "showButton", showOperators: "showOperators", value: "value", column: "column" }, outputs: { valueChange: "valueChange", clear: "clear" }, host: { properties: { "class.k-filtercell-operator": "this.hostClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: `
8607
8966
  <kendo-dropdownlist
8608
8967
  #dropdown
8609
8968
  *ngIf="showOperators"
@@ -8612,6 +8971,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
8612
8971
  class="k-dropdown-operator"
8613
8972
  (valueChange)="onChange($event)"
8614
8973
  [value]="value"
8974
+ [attr.aria-label]="columnLabel"
8615
8975
  iconClass="k-i-filter"
8616
8976
  [valuePrimitive]="true"
8617
8977
  textField="text"
@@ -8643,6 +9003,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8643
9003
  class="k-dropdown-operator"
8644
9004
  (valueChange)="onChange($event)"
8645
9005
  [value]="value"
9006
+ [attr.aria-label]="columnLabel"
8646
9007
  iconClass="k-i-filter"
8647
9008
  [valuePrimitive]="true"
8648
9009
  textField="text"
@@ -8676,6 +9037,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8676
9037
  type: Input
8677
9038
  }], value: [{
8678
9039
  type: Input
9040
+ }], column: [{
9041
+ type: Input
8679
9042
  }], valueChange: [{
8680
9043
  type: Output
8681
9044
  }], clear: [{
@@ -8712,11 +9075,12 @@ FilterCellWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
8712
9075
  <kendo-treelist-filter-cell-operators
8713
9076
  [showOperators]="showOperators"
8714
9077
  [operators]="operators"
9078
+ [column]="column"
8715
9079
  (clear)="onClear()"
8716
9080
  [showButton]="showButton"
8717
9081
  [(value)]="currentOperator">
8718
9082
  </kendo-treelist-filter-cell-operators>
8719
- `, isInline: true, components: [{ type: FilterCellOperatorsComponent, selector: "kendo-treelist-filter-cell-operators", inputs: ["operators", "showButton", "showOperators", "value"], outputs: ["valueChange", "clear"] }] });
9083
+ `, isInline: true, components: [{ type: FilterCellOperatorsComponent, selector: "kendo-treelist-filter-cell-operators", inputs: ["operators", "showButton", "showOperators", "value", "column"], outputs: ["valueChange", "clear"] }] });
8720
9084
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellWrapperComponent, decorators: [{
8721
9085
  type: Component,
8722
9086
  args: [{
@@ -8726,6 +9090,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8726
9090
  <kendo-treelist-filter-cell-operators
8727
9091
  [showOperators]="showOperators"
8728
9092
  [operators]="operators"
9093
+ [column]="column"
8729
9094
  (clear)="onClear()"
8730
9095
  [showButton]="showButton"
8731
9096
  [(value)]="currentOperator">
@@ -8748,17 +9113,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8748
9113
  *
8749
9114
  * @example
8750
9115
  *
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
- * ```
9116
+ * ```html
9117
+ * <kendo-treelist-column field="ProductName">
9118
+ * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
9119
+ * <kendo-treelist-string-filter-cell
9120
+ * [column]="column"
9121
+ * [filter]="filter">
9122
+ * </kendo-treelist-string-filter-cell>
9123
+ * </ng-template>
9124
+ * </kendo-treelist-column>
9125
+ * ```
8762
9126
  */
8763
9127
  class StringFilterCellComponent extends StringFilterComponent {
8764
9128
  constructor(filterService, localization) {
@@ -8767,15 +9131,25 @@ class StringFilterCellComponent extends StringFilterComponent {
8767
9131
  * Determines the delay time (in milliseconds) before the filter value is submitted.
8768
9132
  * A value of `0` indicates no delay. The default value is `500`.
8769
9133
  * @type {boolean}
9134
+ * @default 500
8770
9135
  */
8771
9136
  this.filterDelay = 500;
8772
9137
  /**
8773
9138
  * Determines if the drop-down filter operators will be displayed.
8774
9139
  * The default value is `true`.
8775
9140
  * @type {boolean}
9141
+ * @default true
8776
9142
  */
8777
9143
  this.showOperators = true;
8778
9144
  }
9145
+ /**
9146
+ * @hidden
9147
+ */
9148
+ get columnLabel() {
9149
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
9150
+ const columnName = this.column.title || this.column.field;
9151
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
9152
+ }
8779
9153
  }
8780
9154
  StringFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterCellComponent, deps: [{ token: FilterService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
8781
9155
  StringFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: StringFilterCellComponent, selector: "kendo-treelist-string-filter-cell", inputs: { filterDelay: "filterDelay", showOperators: "showOperators" }, usesInheritance: true, ngImport: i0, template: `
@@ -8785,14 +9159,15 @@ StringFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
8785
9159
  [operators]="operators"
8786
9160
  [defaultOperator]="operator"
8787
9161
  [showOperators]="showOperators">
8788
- <input
9162
+ <input
8789
9163
  class="k-textbox k-input k-input-md k-rounded-md k-input-solid"
8790
9164
  kendoTreeListFocusable
8791
9165
  kendoFilterInput
9166
+ [columnLabel]="columnLabel"
8792
9167
  [filterDelay]="filterDelay"
8793
9168
  [ngModel]="currentFilter?.value" />
8794
9169
  </kendo-treelist-filter-wrapper-cell>
8795
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }], directives: [{ 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: 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"] }, { 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"] }] });
9170
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }], directives: [{ type: i4$1.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: 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", "columnLabel", "column", "value"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
8796
9171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterCellComponent, decorators: [{
8797
9172
  type: Component,
8798
9173
  args: [{
@@ -8804,10 +9179,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8804
9179
  [operators]="operators"
8805
9180
  [defaultOperator]="operator"
8806
9181
  [showOperators]="showOperators">
8807
- <input
9182
+ <input
8808
9183
  class="k-textbox k-input k-input-md k-rounded-md k-input-solid"
8809
9184
  kendoTreeListFocusable
8810
9185
  kendoFilterInput
9186
+ [columnLabel]="columnLabel"
8811
9187
  [filterDelay]="filterDelay"
8812
9188
  [ngModel]="currentFilter?.value" />
8813
9189
  </kendo-treelist-filter-wrapper-cell>
@@ -8823,16 +9199,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8823
9199
  * Represents a numeric filter cell.
8824
9200
  *
8825
9201
  * @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
- * ```
9202
+ * ```html
9203
+ * <kendo-treelist-column field="ProductName" title="Product Name">
9204
+ * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
9205
+ * <kendo-treelist-numeric-filter-cell
9206
+ * [column]="column"
9207
+ * [filter]="filter">
9208
+ * </kendo-treelist-numeric-filter-cell>
9209
+ * </ng-template>
9210
+ * </kendo-treelist-column>
9211
+ * ```
8836
9212
  */
8837
9213
  class NumericFilterCellComponent extends NumericFilterComponent {
8838
9214
  constructor(filterService, localization) {
@@ -8840,17 +9216,26 @@ class NumericFilterCellComponent extends NumericFilterComponent {
8840
9216
  this.localization = localization;
8841
9217
  /**
8842
9218
  * 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`.
9219
+ * A value of `0` indicates no delay.
8844
9220
  * @type {boolean}
9221
+ * @default 500
8845
9222
  */
8846
9223
  this.filterDelay = 500;
8847
9224
  /**
8848
9225
  * Determines if the drop-down filter operators will be displayed.
8849
- * The default value is `true`.
8850
9226
  * @type {boolean}
9227
+ * @default true
8851
9228
  */
8852
9229
  this.showOperators = true;
8853
9230
  }
9231
+ /**
9232
+ * @hidden
9233
+ */
9234
+ get columnLabel() {
9235
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
9236
+ const columnName = this.column.title || this.column.field;
9237
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
9238
+ }
8854
9239
  }
8855
9240
  NumericFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterCellComponent, deps: [{ token: FilterService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
8856
9241
  NumericFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: NumericFilterCellComponent, selector: "kendo-treelist-numeric-filter-cell", inputs: { filterDelay: "filterDelay", showOperators: "showOperators" }, usesInheritance: true, ngImport: i0, template: `
@@ -8863,6 +9248,7 @@ NumericFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
8863
9248
  <kendo-numerictextbox
8864
9249
  kendoTreeListFocusable
8865
9250
  kendoFilterInput
9251
+ [columnLabel]="columnLabel"
8866
9252
  [filterDelay]="filterDelay"
8867
9253
  [autoCorrect]="true"
8868
9254
  [value]="currentFilter?.value"
@@ -8874,7 +9260,7 @@ NumericFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
8874
9260
  [step]="step">
8875
9261
  </kendo-numerictextbox>
8876
9262
  </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"] }] });
9263
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$2.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", "columnLabel", "column", "value"] }] });
8878
9264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterCellComponent, decorators: [{
8879
9265
  type: Component,
8880
9266
  args: [{
@@ -8889,6 +9275,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8889
9275
  <kendo-numerictextbox
8890
9276
  kendoTreeListFocusable
8891
9277
  kendoFilterInput
9278
+ [columnLabel]="columnLabel"
8892
9279
  [filterDelay]="filterDelay"
8893
9280
  [autoCorrect]="true"
8894
9281
  [value]="currentFilter?.value"
@@ -8910,19 +9297,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8910
9297
 
8911
9298
  /**
8912
9299
  * Represents a Boolean filter-cell component.
9300
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-default-filter-operator).
8913
9301
  *
8914
9302
  * @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
- * ```
9303
+ * ```html
9304
+ * <kendo-treelist-column field="ProductName" title="Product Name">
9305
+ * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
9306
+ * <kendo-treelist-boolean-filter-cell
9307
+ * [column]="column"
9308
+ * [filter]="filter">
9309
+ * </kendo-treelist-boolean-filter-cell>
9310
+ * </ng-template>
9311
+ * </kendo-treelist-column>
9312
+ * ```
8926
9313
  */
8927
9314
  class BooleanFilterCellComponent extends BooleanFilterComponent {
8928
9315
  constructor(filterService, localization, cd) {
@@ -8933,6 +9320,20 @@ class BooleanFilterCellComponent extends BooleanFilterComponent {
8933
9320
  super.localizationChange();
8934
9321
  this.cd.markForCheck();
8935
9322
  }
9323
+ /**
9324
+ * @hidden
9325
+ */
9326
+ messageFor(token) {
9327
+ return this.localization.get(token);
9328
+ }
9329
+ /**
9330
+ * @hidden
9331
+ */
9332
+ get columnLabel() {
9333
+ const localizationMsg = this.localization.get('booleanFilterCellLabel') || '';
9334
+ const columnName = this.column.title || this.column.field;
9335
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
9336
+ }
8936
9337
  }
8937
9338
  BooleanFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, deps: [{ token: FilterService }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
8938
9339
  BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BooleanFilterCellComponent, selector: "kendo-treelist-boolean-filter-cell", usesInheritance: true, ngImport: i0, template: `
@@ -8944,6 +9345,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
8944
9345
  <kendo-dropdownlist
8945
9346
  kendoFilterInput
8946
9347
  [defaultItem]="defaultItem"
9348
+ [columnLabel]="columnLabel"
8947
9349
  [data]="items"
8948
9350
  textField="text"
8949
9351
  valueField="value"
@@ -8952,7 +9354,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
8952
9354
  [value]="currentFilter?.value">
8953
9355
  </kendo-dropdownlist>
8954
9356
  </kendo-treelist-filter-wrapper-cell>
8955
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { 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"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
9357
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { 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"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
8956
9358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
8957
9359
  type: Component,
8958
9360
  args: [{
@@ -8966,6 +9368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8966
9368
  <kendo-dropdownlist
8967
9369
  kendoFilterInput
8968
9370
  [defaultItem]="defaultItem"
9371
+ [columnLabel]="columnLabel"
8969
9372
  [data]="items"
8970
9373
  textField="text"
8971
9374
  valueField="value"
@@ -8983,17 +9386,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8983
9386
  *
8984
9387
  * @example
8985
9388
  *
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
- * ```
9389
+ * ```html
9390
+ * <kendo-treelist-column field="OrderDate">
9391
+ * <ng-template kendoTreeListFilterCellTemplate let-filter let-column="column">
9392
+ * <kendo-treelist-date-filter-cell
9393
+ * [column]="column"
9394
+ * [filter]="filter">
9395
+ * </kendo-treelist-date-filter-cell>
9396
+ * </ng-template>
9397
+ * </kendo-treelist-column>
9398
+ * ```
8997
9399
  */
8998
9400
  class DateFilterCellComponent extends DateFilterComponent {
8999
9401
  constructor(filterService, localization) {
@@ -9002,9 +9404,18 @@ class DateFilterCellComponent extends DateFilterComponent {
9002
9404
  /**
9003
9405
  * Determines if the drop-down filter operators will be displayed. The default value is `true`.
9004
9406
  * @type {boolean}
9407
+ * @default true
9005
9408
  */
9006
9409
  this.showOperators = true;
9007
9410
  }
9411
+ /**
9412
+ * @hidden
9413
+ */
9414
+ get columnLabel() {
9415
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
9416
+ const columnName = this.column.title || this.column.field;
9417
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
9418
+ }
9008
9419
  }
9009
9420
  DateFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterCellComponent, deps: [{ token: FilterService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
9010
9421
  DateFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DateFilterCellComponent, selector: "kendo-treelist-date-filter-cell", inputs: { showOperators: "showOperators" }, usesInheritance: true, ngImport: i0, template: `
@@ -9019,6 +9430,7 @@ DateFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
9019
9430
  kendoFilterInput
9020
9431
  [value]="currentFilter?.value"
9021
9432
  [format]="format"
9433
+ [columnLabel]="columnLabel"
9022
9434
  [formatPlaceholder]="formatPlaceholder"
9023
9435
  [placeholder]="placeholder"
9024
9436
  [activeView]="activeView"
@@ -9030,7 +9442,7 @@ DateFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
9030
9442
  >
9031
9443
  </kendo-datepicker>
9032
9444
  </kendo-treelist-filter-wrapper-cell>
9033
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { 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: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
9445
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { 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: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
9034
9446
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterCellComponent, decorators: [{
9035
9447
  type: Component,
9036
9448
  args: [{
@@ -9047,6 +9459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
9047
9459
  kendoFilterInput
9048
9460
  [value]="currentFilter?.value"
9049
9461
  [format]="format"
9462
+ [columnLabel]="columnLabel"
9050
9463
  [formatPlaceholder]="formatPlaceholder"
9051
9464
  [placeholder]="placeholder"
9052
9465
  [activeView]="activeView"
@@ -10066,6 +10479,9 @@ class HeaderComponent {
10066
10479
  get leafColumns() {
10067
10480
  return this._leafColumns;
10068
10481
  }
10482
+ messageFor(token) {
10483
+ return this.localization.get(token);
10484
+ }
10069
10485
  attachTargets() {
10070
10486
  if (this.targetSubscription) {
10071
10487
  this.targetSubscription.unsubscribe();
@@ -10256,6 +10672,7 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
10256
10672
  <input
10257
10673
  type="checkbox"
10258
10674
  class="k-checkbox k-checkbox-md k-rounded-md"
10675
+ [attr.aria-label]="messageFor('selectAllRowsCheckboxLabel')"
10259
10676
  kendoTreeListFocusable
10260
10677
  (click)="selectAllClick($event)" />
10261
10678
  </ng-template>
@@ -10329,7 +10746,7 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
10329
10746
  [logicalSlaveCellsCount]="unlockedColumnsCount"
10330
10747
  >
10331
10748
  </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"] }] });
10749
+ `, 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
10750
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, decorators: [{
10334
10751
  type: Component,
10335
10752
  args: [{
@@ -10445,6 +10862,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10445
10862
  <input
10446
10863
  type="checkbox"
10447
10864
  class="k-checkbox k-checkbox-md k-rounded-md"
10865
+ [attr.aria-label]="messageFor('selectAllRowsCheckboxLabel')"
10448
10866
  kendoTreeListFocusable
10449
10867
  (click)="selectAllClick($event)" />
10450
10868
  </ng-template>
@@ -10700,6 +11118,10 @@ const ICON_CLASS = 'k-icon k-svg-icon';
10700
11118
  * @hidden
10701
11119
  */
10702
11120
  const IGNORE_CONTAINER_CLASSES = 'k-treelist-ignore-click';
11121
+ /**
11122
+ * @hidden
11123
+ */
11124
+ const DRAG_HANDLE_CLASS = 'k-drag-cell';
10703
11125
 
10704
11126
  /* eslint-disable @angular-eslint/pipe-prefix */
10705
11127
  /**
@@ -10766,13 +11188,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10766
11188
  * @hidden
10767
11189
  */
10768
11190
  class CellComponent {
10769
- constructor(editService, focusGroup) {
11191
+ constructor(editService, localization, focusGroup) {
10770
11192
  this.editService = editService;
11193
+ this.localization = localization;
10771
11194
  this.focusGroup = focusGroup;
10772
11195
  this.isNew = false;
10773
11196
  this.level = 0;
10774
11197
  this.caretAltDownIcon = caretAltDownIcon;
10775
11198
  this.caretAltRightIcon = caretAltRightIcon;
11199
+ this.caretAltLeftIcon = caretAltLeftIcon;
11200
+ this.reorderIcon = reorderIcon;
10776
11201
  this.cellContext = {};
10777
11202
  this._templateContext = {};
10778
11203
  this._editTemplateContext = {};
@@ -10788,6 +11213,12 @@ class CellComponent {
10788
11213
  get textNoWrapClass() {
10789
11214
  return this.column.expandable;
10790
11215
  }
11216
+ get dragHandleCellClass() {
11217
+ return isRowReorderColumn(this.column);
11218
+ }
11219
+ get dragRowHandleLabel() {
11220
+ return isRowReorderColumn(this.column) ? this.localization.get('dragRowHandleLabel') : undefined;
11221
+ }
10791
11222
  set viewItem(value) {
10792
11223
  this._viewItem = value;
10793
11224
  this.cellContext.viewItem = this.viewItem;
@@ -10854,9 +11285,28 @@ class CellComponent {
10854
11285
  context.loading = this.loading;
10855
11286
  context.rowIndex = this.viewItem.rowIndex;
10856
11287
  }
11288
+ get arrowIcon() {
11289
+ const icon = !this.isExpanded ?
11290
+ !this.localization.rtl ?
11291
+ 'caret-alt-right' :
11292
+ 'caret-alt-left' :
11293
+ 'caret-alt-down';
11294
+ return icon;
11295
+ }
11296
+ get arrowSVGIcon() {
11297
+ const icon = !this.isExpanded ?
11298
+ !this.localization.rtl ?
11299
+ this.caretAltRightIcon :
11300
+ this.caretAltLeftIcon :
11301
+ this.caretAltDownIcon;
11302
+ return icon;
11303
+ }
11304
+ messageFor(token) {
11305
+ return this.localization.get(token);
11306
+ }
10857
11307
  }
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: `
11308
+ 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 });
11309
+ 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
11310
  <ng-container [ngSwitch]="isEdited">
10861
11311
  <ng-container *ngSwitchCase="false">
10862
11312
  <ng-container *ngIf="column.expandable">
@@ -10864,8 +11314,8 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
10864
11314
  <kendo-icon-wrapper
10865
11315
  aria-hidden="true"
10866
11316
  *ngIf="hasChildren && expandIcons && !loading"
10867
- [name]="isExpanded ? 'caret-alt-down' : 'caret-alt-right'"
10868
- [svgIcon]="isExpanded ? caretAltDownIcon : caretAltRightIcon"></kendo-icon-wrapper>
11317
+ [name]="arrowIcon"
11318
+ [svgIcon]="arrowSVGIcon"></kendo-icon-wrapper>
10869
11319
  <span class="k-icon k-i-loading" *ngIf="hasChildren && expandIcons && loading"></span>
10870
11320
  </ng-container>
10871
11321
  <ng-container *ngIf="column.templateRef"
@@ -10882,9 +11332,16 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
10882
11332
  <input
10883
11333
  type="checkbox"
10884
11334
  kendoTreeListFocusable
11335
+ [attr.aria-label]="messageFor('selectRowCheckboxLabel')"
10885
11336
  class="k-checkbox k-checkbox-md k-rounded-md"
10886
11337
  [checked]="selected" />
10887
11338
  </ng-template>
11339
+ <ng-container *ngIf="column.isRowReorderColumn && !isNew">
11340
+ <kendo-icon-wrapper
11341
+ name="reorder"
11342
+ [svgIcon]="reorderIcon">
11343
+ </kendo-icon-wrapper>
11344
+ </ng-container>
10888
11345
  </ng-container>
10889
11346
  <ng-container *ngSwitchCase="true">
10890
11347
  <ng-container
@@ -10925,7 +11382,7 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
10925
11382
  </ng-container>
10926
11383
  </ng-container>
10927
11384
  </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 } });
11385
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i3$2.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: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i4$1.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
11386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, decorators: [{
10930
11387
  type: Component,
10931
11388
  args: [{
@@ -10938,8 +11395,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10938
11395
  <kendo-icon-wrapper
10939
11396
  aria-hidden="true"
10940
11397
  *ngIf="hasChildren && expandIcons && !loading"
10941
- [name]="isExpanded ? 'caret-alt-down' : 'caret-alt-right'"
10942
- [svgIcon]="isExpanded ? caretAltDownIcon : caretAltRightIcon"></kendo-icon-wrapper>
11398
+ [name]="arrowIcon"
11399
+ [svgIcon]="arrowSVGIcon"></kendo-icon-wrapper>
10943
11400
  <span class="k-icon k-i-loading" *ngIf="hasChildren && expandIcons && loading"></span>
10944
11401
  </ng-container>
10945
11402
  <ng-container *ngIf="column.templateRef"
@@ -10956,9 +11413,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10956
11413
  <input
10957
11414
  type="checkbox"
10958
11415
  kendoTreeListFocusable
11416
+ [attr.aria-label]="messageFor('selectRowCheckboxLabel')"
10959
11417
  class="k-checkbox k-checkbox-md k-rounded-md"
10960
11418
  [checked]="selected" />
10961
11419
  </ng-template>
11420
+ <ng-container *ngIf="column.isRowReorderColumn && !isNew">
11421
+ <kendo-icon-wrapper
11422
+ name="reorder"
11423
+ [svgIcon]="reorderIcon">
11424
+ </kendo-icon-wrapper>
11425
+ </ng-container>
10962
11426
  </ng-container>
10963
11427
  <ng-container *ngSwitchCase="true">
10964
11428
  <ng-container
@@ -11001,7 +11465,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11001
11465
  </ng-container>
11002
11466
  `
11003
11467
  }]
11004
- }], ctorParameters: function () { return [{ type: EditService }, { type: FocusGroup }]; }, propDecorators: { commandCellClass: [{
11468
+ }], ctorParameters: function () { return [{ type: EditService }, { type: i1$1.LocalizationService }, { type: FocusGroup }]; }, propDecorators: { commandCellClass: [{
11005
11469
  type: HostBinding,
11006
11470
  args: ['class.k-command-cell']
11007
11471
  }], isCheckboxColumn: [{
@@ -11010,6 +11474,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11010
11474
  }], textNoWrapClass: [{
11011
11475
  type: HostBinding,
11012
11476
  args: ['class.k-text-nowrap']
11477
+ }], dragHandleCellClass: [{
11478
+ type: HostBinding,
11479
+ args: ['class.k-drag-cell']
11480
+ }, {
11481
+ type: HostBinding,
11482
+ args: ['class.k-touch-action-none']
11483
+ }], dragRowHandleLabel: [{
11484
+ type: HostBinding,
11485
+ args: ['attr.aria-label']
11013
11486
  }], column: [{
11014
11487
  type: Input
11015
11488
  }], columnIndex: [{
@@ -11214,8 +11687,10 @@ class TableBodyComponent {
11214
11687
  clickHandler(eventArg) {
11215
11688
  const target = eventArg.target;
11216
11689
  const { cell, row } = this.targetElements(target);
11217
- if (cell && !hasClasses(cell, NON_DATA_CELL_CLASSES) &&
11218
- !hasClasses(row, NON_DATA_ROW_CLASSES)) {
11690
+ const forbiddenCellClasses = NON_DATA_CELL_CLASSES.concat(` ${DRAG_HANDLE_CLASS}`);
11691
+ const isValidCell = cell ? !hasClasses(cell, forbiddenCellClasses) : false;
11692
+ const isValidRow = row ? !hasClasses(row, NON_DATA_ROW_CLASSES) : false;
11693
+ if (isValidRow && isValidCell) {
11219
11694
  if (this.expandClick(eventArg, row) || this.checkboxClick(cell, row, eventArg)) {
11220
11695
  return;
11221
11696
  }
@@ -12244,8 +12719,8 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
12244
12719
  class="k-table k-grid-table k-table-md"
12245
12720
  role="presentation"
12246
12721
  [style.width.px]="lockedWidth">
12247
- <colgroup kendoTreeListColGroup
12248
- role="presentation"
12722
+ <colgroup
12723
+ kendoTreeListColGroup
12249
12724
  [columns]="$any(lockedLeafColumns)">
12250
12725
  </colgroup>
12251
12726
  <tbody kendoTreeListTableBody
@@ -12268,16 +12743,17 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
12268
12743
  <div [style.height.px]="totalHeight"></div>
12269
12744
  </div>
12270
12745
  </div>
12271
- <div #container
12272
- class="k-grid-content k-virtual-content"
12273
- role="presentation" tabindex="-1"
12274
- [kendoTreeListResizableContainer]="lockedLeafColumns.length > 0"
12275
- [lockedWidth]="lockedWidth + 1">
12746
+ <div
12747
+ #container
12748
+ class="k-grid-content k-virtual-content"
12749
+ [kendoTreeListResizableContainer]="lockedLeafColumns.length > 0"
12750
+ [lockedWidth]="lockedWidth + 1"
12751
+ >
12276
12752
  <div role="presentation" class="k-grid-table-wrap">
12277
12753
  <table [style.width.px]="nonLockedWidth" #table [virtualColumns]="virtualColumns"
12278
12754
  class="k-table k-grid-table k-table-md" role="presentation">
12279
- <colgroup kendoTreeListColGroup
12280
- role="presentation"
12755
+ <colgroup
12756
+ kendoTreeListColGroup
12281
12757
  [columns]="$any(nonLockedColumnsToRender)">
12282
12758
  </colgroup>
12283
12759
  <tbody kendoTreeListTableBody
@@ -12329,8 +12805,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12329
12805
  class="k-table k-grid-table k-table-md"
12330
12806
  role="presentation"
12331
12807
  [style.width.px]="lockedWidth">
12332
- <colgroup kendoTreeListColGroup
12333
- role="presentation"
12808
+ <colgroup
12809
+ kendoTreeListColGroup
12334
12810
  [columns]="$any(lockedLeafColumns)">
12335
12811
  </colgroup>
12336
12812
  <tbody kendoTreeListTableBody
@@ -12353,16 +12829,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12353
12829
  <div [style.height.px]="totalHeight"></div>
12354
12830
  </div>
12355
12831
  </div>
12356
- <div #container
12357
- class="k-grid-content k-virtual-content"
12358
- role="presentation" tabindex="-1"
12359
- [kendoTreeListResizableContainer]="lockedLeafColumns.length > 0"
12360
- [lockedWidth]="lockedWidth + 1">
12832
+ <div
12833
+ #container
12834
+ class="k-grid-content k-virtual-content"
12835
+ [kendoTreeListResizableContainer]="lockedLeafColumns.length > 0"
12836
+ [lockedWidth]="lockedWidth + 1"
12837
+ >
12361
12838
  <div role="presentation" class="k-grid-table-wrap">
12362
12839
  <table [style.width.px]="nonLockedWidth" #table [virtualColumns]="virtualColumns"
12363
12840
  class="k-table k-grid-table k-table-md" role="presentation">
12364
- <colgroup kendoTreeListColGroup
12365
- role="presentation"
12841
+ <colgroup
12842
+ kendoTreeListColGroup
12366
12843
  [columns]="$any(nonLockedColumnsToRender)">
12367
12844
  </colgroup>
12368
12845
  <tbody kendoTreeListTableBody
@@ -12494,6 +12971,10 @@ class PagerElementComponent {
12494
12971
  this.skip = this.pagerContext.skip;
12495
12972
  this.pageSize = this.pagerContext.pageSize;
12496
12973
  this.allCount = this.pagerContext.allCount;
12974
+ this.caretAltLeftIcon = caretAltLeftIcon;
12975
+ this.caretAltToLeftIcon = caretAltToLeftIcon;
12976
+ this.caretAltRightIcon = caretAltRightIcon;
12977
+ this.caretAltToRightIcon = caretAltToRightIcon;
12497
12978
  }
12498
12979
  /**
12499
12980
  * @hidden
@@ -12551,6 +13032,18 @@ class PagerElementComponent {
12551
13032
  this.subscriptions.unsubscribe();
12552
13033
  }
12553
13034
  }
13035
+ get prevArrowIcons() {
13036
+ return !this.localization.rtl ? ['caret-alt-to-left', 'caret-alt-left'] : ['caret-alt-to-right', 'caret-alt-right'];
13037
+ }
13038
+ get prevArrowSVGIcons() {
13039
+ return !this.localization.rtl ? [this.caretAltToLeftIcon, this.caretAltLeftIcon] : [this.caretAltToRightIcon, this.caretAltRightIcon];
13040
+ }
13041
+ get nextArrowIcons() {
13042
+ return !this.localization.rtl ? ['caret-alt-right', 'caret-alt-to-right'] : ['caret-alt-left', 'caret-alt-to-left'];
13043
+ }
13044
+ get nextArrowSVGIcons() {
13045
+ return !this.localization.rtl ? [this.caretAltRightIcon, this.caretAltToRightIcon] : [this.caretAltLeftIcon, this.caretAltToLeftIcon];
13046
+ }
12554
13047
  }
12555
13048
  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
13049
  PagerElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerElementComponent, ngImport: i0 });
@@ -12567,8 +13060,6 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
12567
13060
  constructor(localization, pagerContext, cd, navigationService) {
12568
13061
  super(localization, pagerContext, cd);
12569
13062
  this.navigationService = navigationService;
12570
- this.caretAltLeftIcon = caretAltLeftIcon;
12571
- this.caretAltToLeftIcon = caretAltToLeftIcon;
12572
13063
  }
12573
13064
  /**
12574
13065
  * @hidden
@@ -12607,8 +13098,8 @@ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
12607
13098
  [attr.aria-label]="textFor('pagerFirstPage')"
12608
13099
  (click)="onButtonClick('firstPage')"
12609
13100
  role="button"
12610
- icon="caret-alt-to-left"
12611
- [svgIcon]="caretAltToLeftIcon"
13101
+ [icon]="prevArrowIcons[0]"
13102
+ [svgIcon]="prevArrowSVGIcons[0]"
12612
13103
  class="k-pager-nav k-pager-first"
12613
13104
  [disabled]="disabled"
12614
13105
  fillMode="flat"
@@ -12621,8 +13112,8 @@ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
12621
13112
  [enabled]="!disabled"
12622
13113
  class="k-pager-nav"
12623
13114
  [disabled]="disabled"
12624
- icon="caret-alt-left"
12625
- [svgIcon]="caretAltLeftIcon"
13115
+ [icon]="prevArrowIcons[1]"
13116
+ [svgIcon]="prevArrowSVGIcons[1]"
12626
13117
  fillMode="flat"
12627
13118
  rounded="none"
12628
13119
  [title]="textFor('pagerPreviousPage')"
@@ -12645,8 +13136,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12645
13136
  [attr.aria-label]="textFor('pagerFirstPage')"
12646
13137
  (click)="onButtonClick('firstPage')"
12647
13138
  role="button"
12648
- icon="caret-alt-to-left"
12649
- [svgIcon]="caretAltToLeftIcon"
13139
+ [icon]="prevArrowIcons[0]"
13140
+ [svgIcon]="prevArrowSVGIcons[0]"
12650
13141
  class="k-pager-nav k-pager-first"
12651
13142
  [disabled]="disabled"
12652
13143
  fillMode="flat"
@@ -12659,8 +13150,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12659
13150
  [enabled]="!disabled"
12660
13151
  class="k-pager-nav"
12661
13152
  [disabled]="disabled"
12662
- icon="caret-alt-left"
12663
- [svgIcon]="caretAltLeftIcon"
13153
+ [icon]="prevArrowIcons[1]"
13154
+ [svgIcon]="prevArrowSVGIcons[1]"
12664
13155
  fillMode="flat"
12665
13156
  rounded="none"
12666
13157
  [title]="textFor('pagerPreviousPage')"
@@ -12673,7 +13164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12673
13164
 
12674
13165
  /* eslint-disable @typescript-eslint/no-inferrable-types */
12675
13166
  /**
12676
- * Displays numeric buttons to enable navigation between the pages.
13167
+ * Displays numeric buttons to enable navigation between the pages ([see example]({% slug paging_treelist %}#toc-pager-templates)).
12677
13168
  */
12678
13169
  class PagerNumericButtonsComponent extends PagerElementComponent {
12679
13170
  constructor(localization, cd, pagerContext) {
@@ -12983,7 +13474,7 @@ PagerInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
12983
13474
  </kendo-numerictextbox>
12984
13475
  {{textFor('pagerOf')}} {{totalPages}}
12985
13476
  </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"] }] });
13477
+ `, isInline: true, components: [{ type: i3$2.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
13478
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInputComponent, decorators: [{
12988
13479
  type: Component,
12989
13480
  args: [{
@@ -13028,8 +13519,6 @@ class PagerNextButtonsComponent extends PagerElementComponent {
13028
13519
  constructor(localization, pagerContext, cd, navigationService) {
13029
13520
  super(localization, pagerContext, cd);
13030
13521
  this.navigationService = navigationService;
13031
- this.caretAltRightIcon = caretAltRightIcon;
13032
- this.caretAltToRightIcon = caretAltToRightIcon;
13033
13522
  }
13034
13523
  /**
13035
13524
  * @hidden
@@ -13064,8 +13553,8 @@ PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
13064
13553
  type="button"
13065
13554
  kendoTreeListFocusable
13066
13555
  [enabled]="!disabled"
13067
- icon="caret-alt-right"
13068
- [svgIcon]="caretAltRightIcon"
13556
+ [icon]="nextArrowIcons[0]"
13557
+ [svgIcon]="nextArrowSVGIcons[0]"
13069
13558
  fillMode="flat"
13070
13559
  rounded="none"
13071
13560
  class="k-pager-nav"
@@ -13079,8 +13568,8 @@ PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
13079
13568
  type="button"
13080
13569
  kendoTreeListFocusable
13081
13570
  [enabled]="!disabled"
13082
- icon="caret-alt-to-right"
13083
- [svgIcon]="caretAltToRightIcon"
13571
+ [icon]="nextArrowIcons[1]"
13572
+ [svgIcon]="nextArrowSVGIcons[1]"
13084
13573
  fillMode="flat"
13085
13574
  rounded="none"
13086
13575
  class="k-pager-nav k-pager-last"
@@ -13101,8 +13590,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13101
13590
  type="button"
13102
13591
  kendoTreeListFocusable
13103
13592
  [enabled]="!disabled"
13104
- icon="caret-alt-right"
13105
- [svgIcon]="caretAltRightIcon"
13593
+ [icon]="nextArrowIcons[0]"
13594
+ [svgIcon]="nextArrowSVGIcons[0]"
13106
13595
  fillMode="flat"
13107
13596
  rounded="none"
13108
13597
  class="k-pager-nav"
@@ -13116,8 +13605,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13116
13605
  type="button"
13117
13606
  kendoTreeListFocusable
13118
13607
  [enabled]="!disabled"
13119
- icon="caret-alt-to-right"
13120
- [svgIcon]="caretAltToRightIcon"
13608
+ [icon]="nextArrowIcons[1]"
13609
+ [svgIcon]="nextArrowSVGIcons[1]"
13121
13610
  fillMode="flat"
13122
13611
  rounded="none"
13123
13612
  class="k-pager-nav k-pager-last"
@@ -13289,7 +13778,7 @@ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
13289
13778
  [attr.aria-label]="textFor('pagerItemsPerPage')"
13290
13779
  (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
13291
13780
  <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 });
13781
+ `, 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", "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
13782
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
13294
13783
  type: Component,
13295
13784
  args: [{
@@ -13691,7 +14180,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13691
14180
  class Messages extends ComponentMessages {
13692
14181
  }
13693
14182
  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 });
14183
+ 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", filterInputLabel: "filterInputLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", 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", selectRowCheckboxLabel: "selectRowCheckboxLabel", selectAllRowsCheckboxLabel: "selectAllRowsCheckboxLabel" }, usesInheritance: true, ngImport: i0 });
13695
14184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, decorators: [{
13696
14185
  type: Directive,
13697
14186
  args: [{}]
@@ -13723,6 +14212,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13723
14212
  type: Input
13724
14213
  }], filter: [{
13725
14214
  type: Input
14215
+ }], filterInputLabel: [{
14216
+ type: Input
14217
+ }], filterCellOperatorLabel: [{
14218
+ type: Input
14219
+ }], booleanFilterCellLabel: [{
14220
+ type: Input
13726
14221
  }], filterEqOperator: [{
13727
14222
  type: Input
13728
14223
  }], filterNotEqOperator: [{
@@ -13803,6 +14298,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13803
14298
  type: Input
13804
14299
  }], bottomToolbarLabel: [{
13805
14300
  type: Input
14301
+ }], dragRowHandleLabel: [{
14302
+ type: Input
14303
+ }], selectRowCheckboxLabel: [{
14304
+ type: Input
14305
+ }], selectAllRowsCheckboxLabel: [{
14306
+ type: Input
13806
14307
  }] } });
13807
14308
 
13808
14309
  /**
@@ -14117,15 +14618,14 @@ const isInEditedCell = (element, treelistElement) => closest(element, matchesCla
14117
14618
  /**
14118
14619
  * Represents the Kendo UI TreeList component for Angular.
14119
14620
  *
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 %}
14621
+ * @example
14622
+ * ```html
14623
+ * <kendo-treelist [kendoTreeListFlatBinding]="data" ...></kendo-treelist>
14624
+ * ```
14625
+ *
14126
14626
  */
14127
14627
  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) {
14628
+ 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
14629
  this.supportService = supportService;
14130
14630
  this.wrapper = wrapper;
14131
14631
  this.changeNotification = changeNotification;
@@ -14150,6 +14650,7 @@ class TreeListComponent {
14150
14650
  this.selectionService = selectionService;
14151
14651
  this.localization = localization;
14152
14652
  this.ctx = ctx;
14653
+ this.rowReorderService = rowReorderService;
14153
14654
  /**
14154
14655
  * Defines the page size used by the TreeList when [paging]({% slug paging_treelist %}) is enabled.
14155
14656
  *
@@ -14158,10 +14659,7 @@ class TreeListComponent {
14158
14659
  this.pageSize = 10;
14159
14660
  /**
14160
14661
  * 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.
14662
+ * @default 'scrollable'
14165
14663
  */
14166
14664
  this.scrollable = 'scrollable';
14167
14665
  /**
@@ -14169,49 +14667,12 @@ class TreeListComponent {
14169
14667
  *
14170
14668
  * By default, the TreeList tracks changes by the index of the data item.
14171
14669
  * 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
14670
  *
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
- *
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
14671
  */
14212
14672
  this.trackBy = defaultTrackBy;
14213
14673
  /**
14214
14674
  * If set to `true`, the treelist will render only the columns in the current viewport.
14675
+ * @default false
14215
14676
  */
14216
14677
  this.virtualColumns = false;
14217
14678
  /**
@@ -14225,18 +14686,12 @@ class TreeListComponent {
14225
14686
  /**
14226
14687
  * Configures the pager of the TreeList ([see example]({% slug paging_treelist %})).
14227
14688
  *
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
14689
  */
14236
14690
  this.pageable = false;
14237
14691
  /**
14238
14692
  * If set to `true`, the user can use dedicated shortcuts to interact with the TreeList.
14239
14693
  * By default, navigation is disabled and the TreeList content is accessible in the normal tab sequence.
14694
+ * @default false
14240
14695
  */
14241
14696
  this.navigable = false;
14242
14697
  /**
@@ -14245,6 +14700,8 @@ class TreeListComponent {
14245
14700
  * Columns with `autoSize` set to `false` are excluded.
14246
14701
  * To dynamically update the column width to match the new content,
14247
14702
  * refer to [this example]({% slug resizing_columns_treelist %}).
14703
+ *
14704
+ * @default false
14248
14705
  */
14249
14706
  this.autoSize = false;
14250
14707
  /**
@@ -14276,7 +14733,9 @@ class TreeListComponent {
14276
14733
  /**
14277
14734
  * Specifies if the header of the treelist will be hidden. The header is visible by default.
14278
14735
  *
14279
- * > The header includes column headers and the [filter row]({% slug filtering_treelist %}#toc-filter-row).
14736
+ * The header includes column headers and the [filter row]({% slug filtering_treelist %}#toc-filter-row).
14737
+ *
14738
+ * @default false
14280
14739
  */
14281
14740
  this.hideHeader = false;
14282
14741
  /**
@@ -14385,6 +14844,11 @@ class TreeListComponent {
14385
14844
  * Used by the expand directive and the Gantt component.
14386
14845
  */
14387
14846
  this.expandStateChange = new EventEmitter();
14847
+ /**
14848
+ * Fires when the user drops the dragged row and reordering is performed.
14849
+ * Emits the [RowReorderEvent]({% slug api_treelist_rowreorderevent %}).
14850
+ */
14851
+ this.rowReorder = new EventEmitter();
14388
14852
  /**
14389
14853
  * @hidden
14390
14854
  */
@@ -14414,6 +14878,11 @@ class TreeListComponent {
14414
14878
  this._sort = new Array();
14415
14879
  this._skip = 0;
14416
14880
  this.cachedWindowWidth = 0;
14881
+ this._rowReorderable = false;
14882
+ /**
14883
+ * @hidden
14884
+ */
14885
+ this.treeListData = () => { return this.view; };
14417
14886
  this._rowClass = () => null;
14418
14887
  validatePackage(packageMetadata);
14419
14888
  this.subscriptions.add(localization.changes.subscribe(({ rtl }) => {
@@ -14476,6 +14945,11 @@ class TreeListComponent {
14476
14945
  this.view.clear();
14477
14946
  this.expandStateChange.emit(args);
14478
14947
  }
14948
+ if (this.rowReorderable) {
14949
+ this.ngZone.onStable.pipe(take(2)).subscribe(() => {
14950
+ this.notifyReorderContainers();
14951
+ });
14952
+ }
14479
14953
  }));
14480
14954
  this.subscriptions.add(this.view.childrenLoaded.subscribe(() => {
14481
14955
  this.changeDetectorRef.detectChanges();
@@ -14581,48 +15055,6 @@ class TreeListComponent {
14581
15055
  /**
14582
15056
  * Defines a function that is executed for every data row in the component.
14583
15057
  *
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
15058
  */
14627
15059
  set rowClass(fn) {
14628
15060
  if (typeof fn !== 'function') {
@@ -14666,7 +15098,7 @@ class TreeListComponent {
14666
15098
  this.selectionService.settings = value;
14667
15099
  }
14668
15100
  /**
14669
- * Provides a callback that determines if the given row / cell is selected.
15101
+ * Provides a callback that determines if the given row or cell is selected.
14670
15102
  */
14671
15103
  set isSelected(value) {
14672
15104
  if (typeof value !== 'function' && isDevMode()) {
@@ -14674,6 +15106,27 @@ class TreeListComponent {
14674
15106
  }
14675
15107
  this.selectionService.isSelected = value;
14676
15108
  }
15109
+ /**
15110
+ * Enables the [row reordering]({% slug treelist_row_reordering %}) of the TreeList.
15111
+ * @default false
15112
+ */
15113
+ set rowReorderable(value) {
15114
+ var _a;
15115
+ this._rowReorderable = value;
15116
+ if (value) {
15117
+ this.rowReorderSubscription = this.rowReorderService.rowReorder.subscribe(args => {
15118
+ hasObservers(this.rowReorder) && this.ngZone.run(() => {
15119
+ this.rowReorder.emit(args);
15120
+ });
15121
+ });
15122
+ }
15123
+ else {
15124
+ (_a = this.rowReorderSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
15125
+ }
15126
+ }
15127
+ get rowReorderable() {
15128
+ return this._rowReorderable;
15129
+ }
14677
15130
  /**
14678
15131
  * @hidden
14679
15132
  */
@@ -14935,6 +15388,30 @@ class TreeListComponent {
14935
15388
  this.ngZone = null;
14936
15389
  clearTimeout(this.pageChangeTimeout);
14937
15390
  }
15391
+ /**
15392
+ * @hidden
15393
+ */
15394
+ handleReorderEvents(ev, evType) {
15395
+ this.rowReorderService[evType](ev);
15396
+ }
15397
+ /**
15398
+ * @hidden
15399
+ */
15400
+ getDefaultSelectors(type) {
15401
+ return this.rowReorderService.defaultSelectors[type];
15402
+ }
15403
+ /**
15404
+ * @hidden
15405
+ */
15406
+ getHintSettings(setting) {
15407
+ return this.rowReorderService[setting];
15408
+ }
15409
+ /**
15410
+ * @hidden
15411
+ */
15412
+ get hintText() {
15413
+ return this.rowReorderService.getDefaultHintText(this.columnList, this.view);
15414
+ }
14938
15415
  /**
14939
15416
  * @hidden
14940
15417
  */
@@ -15076,7 +15553,7 @@ class TreeListComponent {
15076
15553
  * Exports the TreeList element to a Drawing [`Group`]({% slug api_kendo-drawing_group %}) by using the `kendo-treelist-pdf` component options.
15077
15554
  * ([see example]({% slug pdfexport_treelist %}#toc-exporting-multiple-treelists-to-the-same-pdf)).
15078
15555
  *
15079
- * @return {Promise} - A promise that will be resolved with the Drawing `Group`.
15556
+ * @return {Promise} A promise that will be resolved with the Drawing `Group`.
15080
15557
  */
15081
15558
  drawPDF() {
15082
15559
  const promise = createPromise();
@@ -15094,64 +15571,8 @@ class TreeListComponent {
15094
15571
  * so that the whole text fits without wrapping. This method expects the TreeList
15095
15572
  * to be resizable (set `resizable` to `true`).
15096
15573
  * 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
- * }
15574
+ * after the TreeList is already populated with data. [See example](slug:resizing_columns_treelist#toc-auto-fitting-the-content).
15141
15575
  *
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
15576
  */
15156
15577
  autoFitColumn(column) {
15157
15578
  this.columnResizingService.autoFit(column);
@@ -15161,69 +15582,7 @@ class TreeListComponent {
15161
15582
  * If no columns are specified, `autoFitColumns` is applied to all columns.
15162
15583
  *
15163
15584
  * 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
- * ```
15585
+ * [See example](slug:resizing_columns_treelist#toc-auto-fitting-the-content).
15227
15586
  */
15228
15587
  autoFitColumns(columns = this.columns) {
15229
15588
  let cols;
@@ -15296,9 +15655,9 @@ class TreeListComponent {
15296
15655
  /**
15297
15656
  * Focuses the cell with the specified row and column index.
15298
15657
  *
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.
15658
+ * The row index is based on the logical structure of the TreeList and does not correspond to the data item index.
15659
+ * The row indexing is absolute and does not change with paging.
15660
+ * Header rows are included, starting at index 0.
15302
15661
  *
15303
15662
  * If the TreeList is configured for scrolling, including virtual scrolling, the scroll position will be updated.
15304
15663
  * If the row is not present on the current page, the method will have no effect.
@@ -15349,67 +15708,6 @@ class TreeListComponent {
15349
15708
  * @param {number} destIndex - The new position of the column.
15350
15709
  * @param {ColumnReorderConfig} options - Additional options.
15351
15710
  *
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
15711
  */
15414
15712
  reorderColumn(source, destIndex, options = { before: false }) {
15415
15713
  const columnsForLevel = sortColumns(this.allColumnsForLevel(source.level));
@@ -15626,6 +15924,7 @@ class TreeListComponent {
15626
15924
  this.closeCell();
15627
15925
  this.cancelCell();
15628
15926
  this.dataStateChange.emit(x);
15927
+ this.rowReorderable && this.notifyReorderContainers();
15629
15928
  }));
15630
15929
  }
15631
15930
  attachEditHandlers() {
@@ -15890,9 +16189,14 @@ class TreeListComponent {
15890
16189
  this.columns.reset(columns.toArray());
15891
16190
  this.columns.notifyOnChanges();
15892
16191
  }
16192
+ notifyReorderContainers() {
16193
+ var _a, _b;
16194
+ (_a = this.dragTargetContainer) === null || _a === void 0 ? void 0 : _a.notify();
16195
+ (_b = this.dropTargetContainer) === null || _b === void 0 ? void 0 : _b.notify();
16196
+ }
15893
16197
  }
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: [
16198
+ 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 });
16199
+ 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
16200
  BrowserSupportService,
15897
16201
  LocalizationService,
15898
16202
  ColumnInfoService,
@@ -15933,8 +16237,9 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
15933
16237
  provide: ExpandableTreeComponent,
15934
16238
  useExisting: forwardRef(() => TreeListComponent)
15935
16239
  },
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: `
16240
+ ContextService,
16241
+ RowReorderService
16242
+ ], 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
16243
  <ng-container kendoTreeListLocalizedMessages
15939
16244
 
15940
16245
  i18n-noRecords="kendo.treelist.noRecords|The label visible in the TreeList when there are no records"
@@ -15970,6 +16275,12 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
15970
16275
  i18n-pagerItemsTotal="kendo.treelist.pagerItemsTotal|The label after the total items count in the TreeList pager"
15971
16276
  pagerItemsTotal="items total"
15972
16277
 
16278
+ i18n-filterCellOperatorLabel="kendo.treelist.filterCellOperatorLabel|The label of the filter cell operators dropdown"
16279
+ filterCellOperatorLabel="{{ 'Filter cell operators for {columnName}' }}"
16280
+
16281
+ i18n-booleanFilterCellLabel="kendo.treelist.booleanFilterCellLabel|The label of the boolean filter cell dropdown"
16282
+ booleanFilterCellLabel="{{ 'Boolean filter cell for {columnName}' }}"
16283
+
15973
16284
  i18n-filter="kendo.treelist.filter|The label of the filter cell or icon"
15974
16285
  filter="Filter"
15975
16286
 
@@ -16051,6 +16362,9 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16051
16362
  i18n-loading="kendo.treelist.loading|The loading text"
16052
16363
  loading="Loading"
16053
16364
 
16365
+ i18n-filterInputLabel="kendo.treelist.filterInputLabel|The label of the filter row and menu inputs"
16366
+ filterInputLabel="{{ '{columnName} Filter' }}"
16367
+
16054
16368
  i18n-columnMenu="kendo.treelist.columnMenu|The title of the column menu icon"
16055
16369
  columnMenu="Column Menu"
16056
16370
 
@@ -16095,6 +16409,15 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16095
16409
 
16096
16410
  i18n-bottomToolbarLabel="kendo.treelist.bottomToolbarLabel|The label of the TreeList bottom toolbar"
16097
16411
  bottomToolbarLabel="Bottom toolbar"
16412
+
16413
+ i18n-dragRowHandleLabel="kendo.treelist.dragRowHandleLabel|The label for the TreeList drag row handle"
16414
+ dragRowHandleLabel="Drag row"
16415
+
16416
+ i18n-selectRowCheckboxLabel="kendo.treelist.selectRowCheckboxLabel|The label for the select row checkbox"
16417
+ selectRowCheckboxLabel="Select row"
16418
+
16419
+ i18n-selectAllRowsCheckboxLabel="kendo.treelist.selectAllRowsCheckboxLabel|The label for the select all rows checkbox"
16420
+ selectAllRowsCheckboxLabel="Select all rows"
16098
16421
  >
16099
16422
  </ng-container>
16100
16423
  <kendo-treelist-toolbar
@@ -16112,7 +16435,24 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16112
16435
  [attr.aria-rowcount]="ariaRowCount"
16113
16436
  [attr.aria-colcount]="ariaColCount"
16114
16437
  [attr.aria-multiselectable]="ariaMultiselectable"
16115
- [attr.aria-label]="ariaLabel">
16438
+ [attr.aria-label]="ariaLabel"
16439
+ kendoDragTargetContainer
16440
+ kendoDropTargetContainer
16441
+ mode="manual"
16442
+ [dragDisabled]="!rowReorderable"
16443
+ [dropDisabled]="!rowReorderable"
16444
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
16445
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
16446
+ [dragHandle]="getDefaultSelectors('handle')"
16447
+ [hint]="{hintTemplate: defaultHint}"
16448
+ (onPress)="handleReorderEvents($event, 'press')"
16449
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
16450
+ (onDrag)="handleReorderEvents($event, 'drag')"
16451
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
16452
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
16453
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
16454
+ (onDrop)="handleReorderEvents($event, 'drop')"
16455
+ [dragData]="treeListData">
16116
16456
  <ng-template [ngIf]="isScrollable">
16117
16457
  <div *ngIf="!hideHeader"
16118
16458
  class="k-grid-header"
@@ -16128,8 +16468,8 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16128
16468
  role="presentation"
16129
16469
  [style.width.px]="lockedWidth"
16130
16470
  class="k-grid-header-table k-table k-table-md">
16131
- <colgroup kendoTreeListColGroup
16132
- role="presentation"
16471
+ <colgroup
16472
+ kendoTreeListColGroup
16133
16473
  [columns]="$any(lockedLeafColumns)">
16134
16474
  </colgroup>
16135
16475
  <thead kendoTreeListHeader
@@ -16156,8 +16496,8 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16156
16496
  [style.width.px]="nonLockedWidth"
16157
16497
  [virtualColumns]="virtualColumns"
16158
16498
  class="k-grid-header-table k-table k-table-md">
16159
- <colgroup kendoTreeListColGroup
16160
- role="presentation"
16499
+ <colgroup
16500
+ kendoTreeListColGroup
16161
16501
  [columns]="headerLeafColumns">
16162
16502
  </colgroup>
16163
16503
  <thead kendoTreeListHeader
@@ -16199,17 +16539,18 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16199
16539
  [virtualColumns]="virtualColumns"
16200
16540
  [expandIcons]="expandIcons"
16201
16541
  (scrollBottom)="notifyScrollBottom()"
16202
- (contentScroll)="contentScroll.emit($event)"
16542
+ (contentScroll)="contentScroll.emit($event)"
16203
16543
  kendoDraggable
16204
16544
  kendoTreeListSelectionMarquee
16205
16545
  [enableDrag]="marqueeSelection">
16206
16546
  </kendo-treelist-list>
16207
16547
  </ng-template>
16208
16548
  <ng-template [ngIf]="!isScrollable">
16209
- <table
16549
+ <table
16210
16550
  class="k-table k-table-md k-grid-header-table"
16211
16551
  [style.table-layout]="resizable ? 'fixed' : null">
16212
- <colgroup kendoTreeListColGroup
16552
+ <colgroup
16553
+ kendoTreeListColGroup
16213
16554
  [columns]="$any(leafColumns)">
16214
16555
  </colgroup>
16215
16556
  <thead kendoTreeListHeader
@@ -16264,7 +16605,16 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
16264
16605
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
16265
16606
  [attr.aria-controls]="ariaRootId">
16266
16607
  </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 });
16608
+
16609
+ <ng-template #defaultHint>
16610
+ <kendo-icon-wrapper
16611
+ [name]="getHintSettings('hintIcon')"
16612
+ [svgIcon]="getHintSettings('hintSVGIcon')"
16613
+ innerCssClass="k-drag-status">
16614
+ </kendo-icon-wrapper>
16615
+ {{hintText}}
16616
+ </ng-template>
16617
+ `, 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
16618
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TreeListComponent, decorators: [{
16269
16619
  type: Component,
16270
16620
  args: [{
@@ -16312,7 +16662,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16312
16662
  provide: ExpandableTreeComponent,
16313
16663
  useExisting: forwardRef(() => TreeListComponent)
16314
16664
  },
16315
- ContextService
16665
+ ContextService,
16666
+ RowReorderService
16316
16667
  ],
16317
16668
  selector: 'kendo-treelist',
16318
16669
  template: `
@@ -16351,6 +16702,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16351
16702
  i18n-pagerItemsTotal="kendo.treelist.pagerItemsTotal|The label after the total items count in the TreeList pager"
16352
16703
  pagerItemsTotal="items total"
16353
16704
 
16705
+ i18n-filterCellOperatorLabel="kendo.treelist.filterCellOperatorLabel|The label of the filter cell operators dropdown"
16706
+ filterCellOperatorLabel="{{ 'Filter cell operators for {columnName}' }}"
16707
+
16708
+ i18n-booleanFilterCellLabel="kendo.treelist.booleanFilterCellLabel|The label of the boolean filter cell dropdown"
16709
+ booleanFilterCellLabel="{{ 'Boolean filter cell for {columnName}' }}"
16710
+
16354
16711
  i18n-filter="kendo.treelist.filter|The label of the filter cell or icon"
16355
16712
  filter="Filter"
16356
16713
 
@@ -16432,6 +16789,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16432
16789
  i18n-loading="kendo.treelist.loading|The loading text"
16433
16790
  loading="Loading"
16434
16791
 
16792
+ i18n-filterInputLabel="kendo.treelist.filterInputLabel|The label of the filter row and menu inputs"
16793
+ filterInputLabel="{{ '{columnName} Filter' }}"
16794
+
16435
16795
  i18n-columnMenu="kendo.treelist.columnMenu|The title of the column menu icon"
16436
16796
  columnMenu="Column Menu"
16437
16797
 
@@ -16476,6 +16836,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16476
16836
 
16477
16837
  i18n-bottomToolbarLabel="kendo.treelist.bottomToolbarLabel|The label of the TreeList bottom toolbar"
16478
16838
  bottomToolbarLabel="Bottom toolbar"
16839
+
16840
+ i18n-dragRowHandleLabel="kendo.treelist.dragRowHandleLabel|The label for the TreeList drag row handle"
16841
+ dragRowHandleLabel="Drag row"
16842
+
16843
+ i18n-selectRowCheckboxLabel="kendo.treelist.selectRowCheckboxLabel|The label for the select row checkbox"
16844
+ selectRowCheckboxLabel="Select row"
16845
+
16846
+ i18n-selectAllRowsCheckboxLabel="kendo.treelist.selectAllRowsCheckboxLabel|The label for the select all rows checkbox"
16847
+ selectAllRowsCheckboxLabel="Select all rows"
16479
16848
  >
16480
16849
  </ng-container>
16481
16850
  <kendo-treelist-toolbar
@@ -16493,7 +16862,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16493
16862
  [attr.aria-rowcount]="ariaRowCount"
16494
16863
  [attr.aria-colcount]="ariaColCount"
16495
16864
  [attr.aria-multiselectable]="ariaMultiselectable"
16496
- [attr.aria-label]="ariaLabel">
16865
+ [attr.aria-label]="ariaLabel"
16866
+ kendoDragTargetContainer
16867
+ kendoDropTargetContainer
16868
+ mode="manual"
16869
+ [dragDisabled]="!rowReorderable"
16870
+ [dropDisabled]="!rowReorderable"
16871
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
16872
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
16873
+ [dragHandle]="getDefaultSelectors('handle')"
16874
+ [hint]="{hintTemplate: defaultHint}"
16875
+ (onPress)="handleReorderEvents($event, 'press')"
16876
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
16877
+ (onDrag)="handleReorderEvents($event, 'drag')"
16878
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
16879
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
16880
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
16881
+ (onDrop)="handleReorderEvents($event, 'drop')"
16882
+ [dragData]="treeListData">
16497
16883
  <ng-template [ngIf]="isScrollable">
16498
16884
  <div *ngIf="!hideHeader"
16499
16885
  class="k-grid-header"
@@ -16509,8 +16895,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16509
16895
  role="presentation"
16510
16896
  [style.width.px]="lockedWidth"
16511
16897
  class="k-grid-header-table k-table k-table-md">
16512
- <colgroup kendoTreeListColGroup
16513
- role="presentation"
16898
+ <colgroup
16899
+ kendoTreeListColGroup
16514
16900
  [columns]="$any(lockedLeafColumns)">
16515
16901
  </colgroup>
16516
16902
  <thead kendoTreeListHeader
@@ -16537,8 +16923,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16537
16923
  [style.width.px]="nonLockedWidth"
16538
16924
  [virtualColumns]="virtualColumns"
16539
16925
  class="k-grid-header-table k-table k-table-md">
16540
- <colgroup kendoTreeListColGroup
16541
- role="presentation"
16926
+ <colgroup
16927
+ kendoTreeListColGroup
16542
16928
  [columns]="headerLeafColumns">
16543
16929
  </colgroup>
16544
16930
  <thead kendoTreeListHeader
@@ -16580,17 +16966,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16580
16966
  [virtualColumns]="virtualColumns"
16581
16967
  [expandIcons]="expandIcons"
16582
16968
  (scrollBottom)="notifyScrollBottom()"
16583
- (contentScroll)="contentScroll.emit($event)"
16969
+ (contentScroll)="contentScroll.emit($event)"
16584
16970
  kendoDraggable
16585
16971
  kendoTreeListSelectionMarquee
16586
16972
  [enableDrag]="marqueeSelection">
16587
16973
  </kendo-treelist-list>
16588
16974
  </ng-template>
16589
16975
  <ng-template [ngIf]="!isScrollable">
16590
- <table
16976
+ <table
16591
16977
  class="k-table k-table-md k-grid-header-table"
16592
16978
  [style.table-layout]="resizable ? 'fixed' : null">
16593
- <colgroup kendoTreeListColGroup
16979
+ <colgroup
16980
+ kendoTreeListColGroup
16594
16981
  [columns]="$any(leafColumns)">
16595
16982
  </colgroup>
16596
16983
  <thead kendoTreeListHeader
@@ -16645,9 +17032,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16645
17032
  [attr.aria-label]="messageFor('bottomToolbarLabel')"
16646
17033
  [attr.aria-controls]="ariaRootId">
16647
17034
  </kendo-treelist-toolbar>
17035
+
17036
+ <ng-template #defaultHint>
17037
+ <kendo-icon-wrapper
17038
+ [name]="getHintSettings('hintIcon')"
17039
+ [svgIcon]="getHintSettings('hintSVGIcon')"
17040
+ innerCssClass="k-drag-status">
17041
+ </kendo-icon-wrapper>
17042
+ {{hintText}}
17043
+ </ng-template>
16648
17044
  `
16649
17045
  }]
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: [{
17046
+ }], 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
17047
  type: Input,
16652
17048
  args: ['aria-label']
16653
17049
  }], data: [{
@@ -16700,6 +17096,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16700
17096
  type: Input
16701
17097
  }], isSelected: [{
16702
17098
  type: Input
17099
+ }], rowReorderable: [{
17100
+ type: Input
16703
17101
  }], selectionChange: [{
16704
17102
  type: Output
16705
17103
  }], filterChange: [{
@@ -16748,6 +17146,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16748
17146
  args: ['collapse']
16749
17147
  }], expandStateChange: [{
16750
17148
  type: Output
17149
+ }], rowReorder: [{
17150
+ type: Output
16751
17151
  }], columnsRef: [{
16752
17152
  type: Input,
16753
17153
  args: ['columns']
@@ -16799,6 +17199,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16799
17199
  }], ariaRoot: [{
16800
17200
  type: ViewChild,
16801
17201
  args: ['ariaRoot', { static: true }]
17202
+ }], dragTargetContainer: [{
17203
+ type: ViewChild,
17204
+ args: [DragTargetContainerDirective]
17205
+ }], dropTargetContainer: [{
17206
+ type: ViewChild,
17207
+ args: [DropTargetContainerDirective]
16802
17208
  }], fetchChildren: [{
16803
17209
  type: Input
16804
17210
  }], hasChildren: [{
@@ -16809,7 +17215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16809
17215
 
16810
17216
  /**
16811
17217
  * Custom component messages override default component messages
16812
- * ([see example]({% slug globalization_treelist %}#toc-localization)).
17218
+ * ([see example](slug:globalization_treelist#toc-custom-messages)).
16813
17219
  */
16814
17220
  class CustomMessagesComponent extends Messages {
16815
17221
  constructor(service) {
@@ -16877,6 +17283,14 @@ class AutoCompleteFilterCellComponent extends BaseFilterCellComponent {
16877
17283
  get currentOperator() {
16878
17284
  return this.currentFilter ? this.currentFilter.operator : "contains";
16879
17285
  }
17286
+ /**
17287
+ * @hidden
17288
+ */
17289
+ get columnLabel() {
17290
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
17291
+ const columnName = this.column.title || this.column.field;
17292
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
17293
+ }
16880
17294
  }
16881
17295
  AutoCompleteFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, deps: [{ token: FilterService }, { token: ColumnComponent }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
16882
17296
  AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AutoCompleteFilterCellComponent, selector: "kendo-treelist-autocomplete-filter-cell", inputs: { showOperators: "showOperators", column: "column", filter: "filter", data: "data", valueField: "valueField" }, usesInheritance: true, ngImport: i0, template: `
@@ -16888,11 +17302,12 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
16888
17302
  <kendo-autocomplete
16889
17303
  kendoFilterInput
16890
17304
  [data]="data"
17305
+ [columnLabel]="columnLabel"
16891
17306
  [valueField]="valueField"
16892
17307
  [value]="currentFilter?.value">
16893
17308
  </kendo-autocomplete>
16894
17309
  </kendo-treelist-filter-wrapper-cell>
16895
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$1.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
17310
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$1.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
16896
17311
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
16897
17312
  type: Component,
16898
17313
  args: [{
@@ -16906,6 +17321,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16906
17321
  <kendo-autocomplete
16907
17322
  kendoFilterInput
16908
17323
  [data]="data"
17324
+ [columnLabel]="columnLabel"
16909
17325
  [valueField]="valueField"
16910
17326
  [value]="currentFilter?.value">
16911
17327
  </kendo-autocomplete>
@@ -16925,7 +17341,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16925
17341
  }] } });
16926
17342
 
16927
17343
  /**
16928
- * Represents the checkbox for selecting rows in the TreeList.
17344
+ * Represents the checkbox for selecting rows in the TreeList. [See example](slug:selection_treelist#toc-select-all-checkbox).
16929
17345
  */
16930
17346
  class CheckboxColumnComponent extends ColumnBase {
16931
17347
  constructor(parent) {
@@ -16978,6 +17394,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16978
17394
  args: [CellTemplateDirective, { static: false }]
16979
17395
  }] } });
16980
17396
 
17397
+ /**
17398
+ * Represents the drag handle for reordering rows in the TreeList.
17399
+ */
17400
+ class RowReorderColumnComponent extends ColumnBase {
17401
+ constructor(parent) {
17402
+ super(parent);
17403
+ this.parent = parent;
17404
+ /**
17405
+ * @hidden
17406
+ */
17407
+ this.isRowReorderColumn = true;
17408
+ }
17409
+ }
17410
+ 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 });
17411
+ RowReorderColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: RowReorderColumnComponent, selector: "kendo-treelist-rowreorder-column", providers: [
17412
+ {
17413
+ provide: ColumnBase,
17414
+ useExisting: forwardRef(() => RowReorderColumnComponent)
17415
+ }
17416
+ ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
17417
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderColumnComponent, decorators: [{
17418
+ type: Component,
17419
+ args: [{
17420
+ providers: [
17421
+ {
17422
+ provide: ColumnBase,
17423
+ useExisting: forwardRef(() => RowReorderColumnComponent)
17424
+ }
17425
+ ],
17426
+ selector: 'kendo-treelist-rowreorder-column',
17427
+ template: ``
17428
+ }]
17429
+ }], ctorParameters: function () {
17430
+ return [{ type: ColumnBase, decorators: [{
17431
+ type: SkipSelf
17432
+ }, {
17433
+ type: Host
17434
+ }, {
17435
+ type: Optional
17436
+ }] }];
17437
+ } });
17438
+
16981
17439
  const exportedModules$3 = [
16982
17440
  ColumnComponent,
16983
17441
  ColumnGroupComponent,
@@ -16991,7 +17449,8 @@ const exportedModules$3 = [
16991
17449
  SpanColumnComponent,
16992
17450
  TableDirective,
16993
17451
  LoadingComponent,
16994
- CheckboxColumnComponent
17452
+ CheckboxColumnComponent,
17453
+ RowReorderColumnComponent
16995
17454
  ];
16996
17455
  /**
16997
17456
  * @hidden
@@ -17002,6 +17461,7 @@ class SharedModule {
17002
17461
  ColumnComponent,
17003
17462
  SpanColumnComponent,
17004
17463
  CheckboxColumnComponent,
17464
+ RowReorderColumnComponent,
17005
17465
  ColumnGroupComponent,
17006
17466
  FocusableDirective
17007
17467
  ];
@@ -17020,7 +17480,8 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
17020
17480
  SpanColumnComponent,
17021
17481
  TableDirective,
17022
17482
  LoadingComponent,
17023
- CheckboxColumnComponent], imports: [CommonModule, IconsModule], exports: [ColumnComponent,
17483
+ CheckboxColumnComponent,
17484
+ RowReorderColumnComponent], imports: [CommonModule, IconsModule], exports: [ColumnComponent,
17024
17485
  ColumnGroupComponent,
17025
17486
  LogicalCellDirective,
17026
17487
  LogicalRowDirective,
@@ -17032,7 +17493,8 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
17032
17493
  SpanColumnComponent,
17033
17494
  TableDirective,
17034
17495
  LoadingComponent,
17035
- CheckboxColumnComponent, DraggableModule, IconsModule] });
17496
+ CheckboxColumnComponent,
17497
+ RowReorderColumnComponent, DraggableModule, IconsModule] });
17036
17498
  SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, imports: [[CommonModule, IconsModule], DraggableModule, IconsModule] });
17037
17499
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, decorators: [{
17038
17500
  type: NgModule,
@@ -17045,10 +17507,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17045
17507
 
17046
17508
  /**
17047
17509
  * 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)
17510
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17052
17511
  */
17053
17512
  class ContainsFilterOperatorComponent extends FilterOperatorBase {
17054
17513
  constructor(localization) { super("contains", localization); }
@@ -17076,10 +17535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17076
17535
 
17077
17536
  /**
17078
17537
  * 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)
17538
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17083
17539
  */
17084
17540
  class DoesNotContainFilterOperatorComponent extends FilterOperatorBase {
17085
17541
  constructor(localization) { super("doesnotcontain", localization); }
@@ -17107,10 +17563,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17107
17563
 
17108
17564
  /**
17109
17565
  * 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)
17566
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17114
17567
  */
17115
17568
  class EndsWithFilterOperatorComponent extends FilterOperatorBase {
17116
17569
  constructor(localization) { super("endswith", localization); }
@@ -17138,10 +17591,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17138
17591
 
17139
17592
  /**
17140
17593
  * 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)
17594
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17145
17595
  */
17146
17596
  class EqualFilterOperatorComponent extends FilterOperatorBase {
17147
17597
  constructor(localization) { super("eq", localization); }
@@ -17169,10 +17619,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17169
17619
 
17170
17620
  /**
17171
17621
  * 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)
17622
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17176
17623
  */
17177
17624
  class IsEmptyFilterOperatorComponent extends FilterOperatorBase {
17178
17625
  constructor(localization) { super("isempty", localization); }
@@ -17200,10 +17647,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17200
17647
 
17201
17648
  /**
17202
17649
  * 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)
17650
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17207
17651
  */
17208
17652
  class IsNotEmptyFilterOperatorComponent extends FilterOperatorBase {
17209
17653
  constructor(localization) { super("isnotempty", localization); }
@@ -17231,10 +17675,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17231
17675
 
17232
17676
  /**
17233
17677
  * 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)
17678
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17238
17679
  */
17239
17680
  class IsNotNullFilterOperatorComponent extends FilterOperatorBase {
17240
17681
  constructor(localization) { super("isnotnull", localization); }
@@ -17262,10 +17703,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17262
17703
 
17263
17704
  /**
17264
17705
  * 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)
17706
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17269
17707
  */
17270
17708
  class IsNullFilterOperatorComponent extends FilterOperatorBase {
17271
17709
  constructor(localization) { super("isnull", localization); }
@@ -17293,10 +17731,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17293
17731
 
17294
17732
  /**
17295
17733
  * 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)
17734
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17300
17735
  */
17301
17736
  class NotEqualFilterOperatorComponent extends FilterOperatorBase {
17302
17737
  constructor(localization) { super("neq", localization); }
@@ -17324,10 +17759,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17324
17759
 
17325
17760
  /**
17326
17761
  * 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)
17762
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17331
17763
  */
17332
17764
  class StartsWithFilterOperatorComponent extends FilterOperatorBase {
17333
17765
  constructor(localization) { super("startswith", localization); }
@@ -17355,10 +17787,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17355
17787
 
17356
17788
  /*
17357
17789
  * 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)
17790
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17362
17791
  */
17363
17792
  class GreaterFilterOperatorComponent extends FilterOperatorBase {
17364
17793
  constructor(localization) { super("gt", localization); }
@@ -17386,10 +17815,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17386
17815
 
17387
17816
  /**
17388
17817
  * 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)
17818
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17393
17819
  */
17394
17820
  class GreaterOrEqualToFilterOperatorComponent extends FilterOperatorBase {
17395
17821
  constructor(localization) { super("gte", localization); }
@@ -17415,12 +17841,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17415
17841
  }]
17416
17842
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
17417
17843
 
17418
- /*
17844
+ /**
17419
17845
  * 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)
17846
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17424
17847
  */
17425
17848
  class LessFilterOperatorComponent extends FilterOperatorBase {
17426
17849
  constructor(localization) { super("lt", localization); }
@@ -17448,10 +17871,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17448
17871
 
17449
17872
  /*
17450
17873
  * 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)
17874
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17455
17875
  */
17456
17876
  class LessOrEqualToFilterOperatorComponent extends FilterOperatorBase {
17457
17877
  constructor(localization) { super("lte", localization); }
@@ -17477,12 +17897,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17477
17897
  }]
17478
17898
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
17479
17899
 
17480
- /*
17900
+ /**
17481
17901
  * 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)
17902
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17486
17903
  */
17487
17904
  class AfterFilterOperatorComponent extends FilterOperatorBase {
17488
17905
  constructor(localization) { super("after", localization); }
@@ -17517,12 +17934,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17517
17934
  }]
17518
17935
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
17519
17936
 
17520
- /*
17937
+ /**
17521
17938
  * 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)
17939
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17526
17940
  */
17527
17941
  class AfterEqFilterOperatorComponent extends FilterOperatorBase {
17528
17942
  constructor(localization) { super("after-eq", localization); }
@@ -17557,12 +17971,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17557
17971
  }]
17558
17972
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
17559
17973
 
17560
- /*
17974
+ /**
17561
17975
  * 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)
17976
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17566
17977
  */
17567
17978
  class BeforeEqFilterOperatorComponent extends FilterOperatorBase {
17568
17979
  constructor(localization) { super("before-eq", localization); }
@@ -17597,12 +18008,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17597
18008
  }]
17598
18009
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
17599
18010
 
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)
18011
+ /**
18012
+ * Represents the `Less than` (**Is before**) date filter operator.
18013
+ * [See example](slug:builtinfiltertemplate_treelist#toc-setting-the-order-of-the-filter-operators).
17606
18014
  */
17607
18015
  class BeforeFilterOperatorComponent extends FilterOperatorBase {
17608
18016
  constructor(localization) { super("before", localization); }
@@ -17992,12 +18400,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17992
18400
  * Represents the component for selecting columns in the TreeList. To enable the user to show or hide columns,
17993
18401
  * add the component inside a [`ToolbarTemplate`]({% slug api_treelist_toolbartemplatedirective %}) directive.
17994
18402
  *
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 %}
18403
+ * @example
18404
+ * ```html
18405
+ * <kendo-treelist ...>
18406
+ * <ng-template kendoTreeListToolbarTemplate>
18407
+ * <kendo-treelist-column-chooser> </kendo-treelist-column-chooser>
18408
+ * </ng-template>
18409
+ * </kendo-treelist>
18410
+ * ```
18001
18411
  */
18002
18412
  class ColumnChooserComponent {
18003
18413
  constructor(localization, columnInfoService, popupService, ngZone, renderer, changeDetector) {
@@ -18009,10 +18419,12 @@ class ColumnChooserComponent {
18009
18419
  this.changeDetector = changeDetector;
18010
18420
  /**
18011
18421
  * Specifies if the changes in the visibility of the column will be immediately applied.
18422
+ * @default false
18012
18423
  */
18013
18424
  this.autoSync = false;
18014
18425
  /**
18015
18426
  * Specifies if all columns can be hidden.
18427
+ * @default true
18016
18428
  */
18017
18429
  this.allowHideAll = true;
18018
18430
  this.columnsIcon = columnsIcon;
@@ -18243,30 +18655,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18243
18655
 
18244
18656
  /**
18245
18657
  * 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
18658
+ * column inside an `<ng-template>` tag. For more information and examples on using the passed fields
18248
18659
  * and the command directives, refer to the article on
18249
18660
  * [editing the TreeList in Angular Reactive Forms]({% slug editing_reactive_forms_treelist %}).
18250
18661
  *
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
18662
  * Usually, the template contains CRUD command directives such as:
18259
18663
  * - [`EditCommandDirective`]({% slug api_treelist_editcommanddirective %})
18260
18664
  * - [`RemoveCommandDirective`]({% slug api_treelist_removecommanddirective %})
18261
18665
  * - [`CancelCommandDirective`]({% slug api_treelist_cancelcommanddirective %})
18262
18666
  * - [`SaveCommandDirective`]({% slug api_treelist_savecommanddirective %})
18263
18667
  *
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 %}
18668
+ * @example
18669
+ * ```html
18670
+ * <kendo-treelist ...>
18671
+ * <kendo-treelist-column field="ProductID"></kendo-treelist-column>
18672
+ * <kendo-treelist-command-column title="command" >
18673
+ * <ng-template kendoTreeListCellTemplate>
18674
+ * <button kendoTreeListEditCommand class="k-primary">Edit</button>
18675
+ * <button kendoTreeListRemoveCommand>Remove</button>
18676
+ * </ng-template>
18677
+ * </kendo-treelist-command-column>
18678
+ * </kendo-treelist>
18679
+ * ```
18270
18680
  */
18271
18681
  class CommandColumnComponent extends ColumnBase {
18272
18682
  constructor(parent, optionChanges) {
@@ -18354,7 +18764,7 @@ BaseCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
18354
18764
  </span>
18355
18765
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18356
18766
  <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"] }] });
18767
+ `, 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
18768
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseCommandDirective, decorators: [{
18359
18769
  type: Component,
18360
18770
  args: [{
@@ -18392,7 +18802,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18392
18802
  *
18393
18803
  * @example
18394
18804
  * ```html
18395
- * <kendo-treelist>
18805
+ * <kendo-treelist ...>
18396
18806
  * <kendo-treelist-command-column title="command">
18397
18807
  * <ng-template kendoTreeListCellTemplate let-cellContext="cellContext">
18398
18808
  * <button [kendoTreeListEditCommand]="cellContext">Edit</button>
@@ -18426,7 +18836,7 @@ EditCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
18426
18836
  </span>
18427
18837
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18428
18838
  <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"] }] });
18839
+ `, 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
18840
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EditCommandDirective, decorators: [{
18431
18841
  type: Component,
18432
18842
  args: [{
@@ -18464,7 +18874,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18464
18874
  *
18465
18875
  * @example
18466
18876
  * ```html
18467
- * <kendo-treelist>
18877
+ * <kendo-treelist ...>
18468
18878
  * <kendo-treelist-command-column title="command">
18469
18879
  * <ng-template kendoTreeListCellTemplate let-cellContext="cellContext">
18470
18880
  * <button [kendoTreeListCancelCommand]="cellContext">Cancel changes</button>
@@ -18498,7 +18908,7 @@ CancelCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
18498
18908
  </span>
18499
18909
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18500
18910
  <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"] }] });
18911
+ `, 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
18912
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CancelCommandDirective, decorators: [{
18503
18913
  type: Component,
18504
18914
  args: [{
@@ -18536,7 +18946,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18536
18946
  *
18537
18947
  * @example
18538
18948
  * ```html
18539
- * <kendo-treelist>
18949
+ * <kendo-treelist ...>
18540
18950
  * <kendo-treelist-command-column title="command">
18541
18951
  * <ng-template kendoTreeListCellTemplate let-cellContext="cellContext">
18542
18952
  * <button [kendoTreeListSaveCommand]="cellContext">Save changes</button>
@@ -18569,7 +18979,7 @@ SaveCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
18569
18979
  </span>
18570
18980
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18571
18981
  <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"] }] });
18982
+ `, 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
18983
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SaveCommandDirective, decorators: [{
18574
18984
  type: Component,
18575
18985
  args: [{
@@ -18607,7 +19017,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18607
19017
  *
18608
19018
  * @example
18609
19019
  * ```html
18610
- * <kendo-treelist>
19020
+ * <kendo-treelist ...>
18611
19021
  * <kendo-treelist-command-column title="command">
18612
19022
  * <ng-template kendoTreeListCellTemplate let-cellContext="cellContext">
18613
19023
  * <button [kendoTreeListRemoveCommand]="cellContext">Remove row</button>
@@ -18640,7 +19050,7 @@ RemoveCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
18640
19050
  </span>
18641
19051
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18642
19052
  <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"] }] });
19053
+ `, 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
19054
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RemoveCommandDirective, decorators: [{
18645
19055
  type: Component,
18646
19056
  args: [{
@@ -18681,7 +19091,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18681
19091
  *
18682
19092
  * @example
18683
19093
  * ```html
18684
- * <kendo-treelist>
19094
+ * <kendo-treelist ...>
18685
19095
  * <kendo-treelist-command-column title="command">
18686
19096
  * <ng-template kendoTreeListCellTemplate let-cellContext="cellContext">
18687
19097
  * <button [kendoTreeListAddCommand]="cellContext" class="k-primary">Edit</button>
@@ -18712,7 +19122,7 @@ AddCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
18712
19122
  </span>
18713
19123
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
18714
19124
  <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"] }] });
19125
+ `, 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
19126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AddCommandDirective, decorators: [{
18717
19127
  type: Component,
18718
19128
  args: [{
@@ -19213,8 +19623,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
19213
19623
  }] } });
19214
19624
 
19215
19625
  class BaseBindingDirective {
19216
- constructor(component) {
19626
+ constructor(component, rowReorderService) {
19217
19627
  this.component = component;
19628
+ this.rowReorderService = rowReorderService;
19218
19629
  this.state = {};
19219
19630
  this.cache = new Map();
19220
19631
  this.originalData = [];
@@ -19247,6 +19658,8 @@ class BaseBindingDirective {
19247
19658
  this.applyState(this.state);
19248
19659
  this.subscriptions.add(this.component.dataStateChange
19249
19660
  .subscribe(this.onStateChange.bind(this)));
19661
+ this.component.rowReorderable && this.subscriptions.add(this.rowReorderService.rowReorder
19662
+ .subscribe(this.onRowReorder.bind(this)));
19250
19663
  }
19251
19664
  /**
19252
19665
  * @hidden
@@ -19287,6 +19700,7 @@ class BaseBindingDirective {
19287
19700
  this.cache.clear();
19288
19701
  this.component.data = this.fetchChildren();
19289
19702
  }
19703
+ onRowReorder(_event) { }
19290
19704
  applyState({ sort, filter }) {
19291
19705
  this.sort = sort;
19292
19706
  this.filter = filter;
@@ -19355,12 +19769,12 @@ class BaseBindingDirective {
19355
19769
  this.dataChanged = true;
19356
19770
  }
19357
19771
  }
19358
- BaseBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseBindingDirective, deps: [{ token: DataBoundTreeComponent }], target: i0.ɵɵFactoryTarget.Directive });
19772
+ 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
19773
  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
19774
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseBindingDirective, decorators: [{
19361
19775
  type: Directive,
19362
19776
  args: [{}]
19363
- }], ctorParameters: function () { return [{ type: DataBoundTreeComponent }]; }, propDecorators: { sort: [{
19777
+ }], ctorParameters: function () { return [{ type: DataBoundTreeComponent }, { type: RowReorderService }]; }, propDecorators: { sort: [{
19364
19778
  type: Input
19365
19779
  }], filter: [{
19366
19780
  type: Input
@@ -19410,6 +19824,53 @@ class HierarchyEditService extends LocalEditService {
19410
19824
  }
19411
19825
  }
19412
19826
 
19827
+ /**
19828
+ * @hidden
19829
+ */
19830
+ class HierarchicalRowReorderService extends RowReorderService {
19831
+ isOverChild(targetItem) {
19832
+ const { draggedRows } = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view);
19833
+ const draggedItem = draggedRows[0].dataItem;
19834
+ const hasChildren = isPresent(draggedItem[this.childrenField]) && draggedItem[this.childrenField].length > 0;
19835
+ if (!hasChildren) {
19836
+ return false;
19837
+ }
19838
+ if (targetItem && draggedItem.hasOwnProperty(this.childrenField)) {
19839
+ if (draggedItem[this.childrenField].includes(targetItem)) {
19840
+ return true;
19841
+ }
19842
+ const parent = findParent$1(this.data, targetItem, this.childrenField);
19843
+ if (parent) {
19844
+ return this.isOverChild(parent);
19845
+ }
19846
+ }
19847
+ return false;
19848
+ }
19849
+ reorderRows(ev, collection, field) {
19850
+ const draggedItem = ev.draggedRows[0].dataItem;
19851
+ const dropTargetItem = ev.dropTargetRow.dataItem;
19852
+ const draggedItemParent = findParent$1(collection, draggedItem, field);
19853
+ const dropTargetParent = findParent$1(collection, dropTargetItem, field);
19854
+ const draggedItemIdx = draggedItemParent ? draggedItemParent[field].indexOf(draggedItem) : collection.indexOf(draggedItem);
19855
+ let dropTargetItemIdx = dropTargetParent ? dropTargetParent[field].indexOf(dropTargetItem) : collection.indexOf(dropTargetItem);
19856
+ if (ev.dropPosition === dropPosition.after && dropTargetItemIdx < draggedItemIdx) {
19857
+ dropTargetItemIdx++;
19858
+ }
19859
+ draggedItemParent ? draggedItemParent[field].splice(draggedItemIdx, 1) : collection.splice(draggedItemIdx, 1);
19860
+ if (ev.dropPosition !== dropPosition.over) {
19861
+ dropTargetParent ? dropTargetParent[field].splice(dropTargetItemIdx, 0, draggedItem) : collection.splice(dropTargetItemIdx, 0, draggedItem);
19862
+ }
19863
+ else {
19864
+ dropTargetItem[field].unshift(draggedItem);
19865
+ }
19866
+ }
19867
+ }
19868
+ HierarchicalRowReorderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HierarchicalRowReorderService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
19869
+ HierarchicalRowReorderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HierarchicalRowReorderService });
19870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HierarchicalRowReorderService, decorators: [{
19871
+ type: Injectable
19872
+ }] });
19873
+
19413
19874
  /**
19414
19875
  * A directive which binds the TreeList to a tree of objects.
19415
19876
  *
@@ -19418,12 +19879,16 @@ class HierarchyEditService extends LocalEditService {
19418
19879
  * and [filtering]({% slug filtering_treelist %}) ([more information and examples](slug:databinding_treelist#toc-binding-to-hierarchical-data)).
19419
19880
  */
19420
19881
  class HierarchyBindingDirective extends BaseBindingDirective {
19421
- constructor(component) {
19882
+ constructor(component, rowReorderService) {
19422
19883
  super(component);
19423
19884
  this.component = component;
19885
+ this.rowReorderService = rowReorderService;
19424
19886
  this.childrenGetter = getter('items');
19425
19887
  this.childrenSetter = setter('items');
19426
19888
  component.localEditService = new HierarchyEditService(this);
19889
+ if (this.rowReorderService) {
19890
+ this.rowReorderService.bindingDirective = this;
19891
+ }
19427
19892
  }
19428
19893
  /**
19429
19894
  * The name of the field which holds the child data items of the node.
@@ -19431,23 +19896,58 @@ class HierarchyBindingDirective extends BaseBindingDirective {
19431
19896
  set childrenField(value) {
19432
19897
  this.childrenGetter = getter(value);
19433
19898
  this.childrenSetter = setter(value);
19899
+ this._childrenField = value;
19900
+ }
19901
+ get childrenField() {
19902
+ return this._childrenField;
19434
19903
  }
19904
+ /**
19905
+ * @hidden
19906
+ */
19435
19907
  getChildren(item) {
19436
19908
  return item ? this.childrenGetter(item) || [] : this.originalData;
19437
19909
  }
19438
19910
  itemKey(item) {
19439
19911
  return item;
19440
19912
  }
19913
+ onRowReorder(ev) {
19914
+ if (ev.dropPosition === 'forbidden') {
19915
+ return;
19916
+ }
19917
+ const dropTargetItem = ev.dropTargetRow.dataItem;
19918
+ if (ev.dropPosition === 'over') {
19919
+ if (!dropTargetItem.hasOwnProperty(this.childrenField)) {
19920
+ dropTargetItem[this.childrenField] = [];
19921
+ }
19922
+ }
19923
+ this.rowReorderService.reorderRows(ev, this.originalData, this.childrenField);
19924
+ this.rebind();
19925
+ }
19441
19926
  }
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 });
19927
+ 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 });
19928
+ HierarchyBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: HierarchyBindingDirective, selector: "[kendoTreeListHierarchyBinding]", inputs: { childrenField: "childrenField", data: ["kendoTreeListHierarchyBinding", "data"] }, providers: [
19929
+ {
19930
+ provide: RowReorderService,
19931
+ useClass: HierarchicalRowReorderService
19932
+ }
19933
+ ], exportAs: ["kendoTreeListHierarchyBinding"], usesInheritance: true, ngImport: i0 });
19444
19934
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HierarchyBindingDirective, decorators: [{
19445
19935
  type: Directive,
19446
19936
  args: [{
19447
19937
  exportAs: 'kendoTreeListHierarchyBinding',
19448
- selector: '[kendoTreeListHierarchyBinding]'
19938
+ selector: '[kendoTreeListHierarchyBinding]',
19939
+ providers: [
19940
+ {
19941
+ provide: RowReorderService,
19942
+ useClass: HierarchicalRowReorderService
19943
+ }
19944
+ ]
19449
19945
  }]
19450
- }], ctorParameters: function () { return [{ type: DataBoundTreeComponent }]; }, propDecorators: { childrenField: [{
19946
+ }], ctorParameters: function () {
19947
+ return [{ type: DataBoundTreeComponent }, { type: RowReorderService, decorators: [{
19948
+ type: Optional
19949
+ }] }];
19950
+ }, propDecorators: { childrenField: [{
19451
19951
  type: Input
19452
19952
  }], data: [{
19453
19953
  type: Input,
@@ -19498,6 +19998,47 @@ class FlatEditService extends LocalEditService {
19498
19998
  }
19499
19999
  }
19500
20000
 
20001
+ /**
20002
+ * @hidden
20003
+ */
20004
+ class FlatRowReorderService extends RowReorderService {
20005
+ isOverChild(targetItem) {
20006
+ const { draggedRows } = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view);
20007
+ const draggedItem = draggedRows[0].dataItem;
20008
+ const hasParent = isPresent(targetItem[this.parentIdField]);
20009
+ const sameParents = draggedItem[this.parentIdField] === targetItem[this.parentIdField];
20010
+ if (!hasParent || sameParents) {
20011
+ return false;
20012
+ }
20013
+ if (targetItem && targetItem.hasOwnProperty(this.parentIdField)) {
20014
+ if (draggedItem[this.idField] === targetItem[this.parentIdField]) {
20015
+ return true;
20016
+ }
20017
+ const parent = this.data.find(i => i[this.idField] === targetItem[this.parentIdField]);
20018
+ if (parent) {
20019
+ return this.isOverChild(parent);
20020
+ }
20021
+ }
20022
+ }
20023
+ reorderRows(ev, collection) {
20024
+ const { draggedRows, dropTargetRow } = ev;
20025
+ const draggedDataItem = draggedRows[0].dataItem;
20026
+ const dropTargetDataItem = dropTargetRow.dataItem;
20027
+ let dropTargetIdx = collection.indexOf(dropTargetDataItem);
20028
+ const draggedItemIdx = collection.indexOf(draggedDataItem);
20029
+ collection.splice(draggedItemIdx, 1);
20030
+ if (ev.dropPosition === 'after' && dropTargetIdx < draggedItemIdx) {
20031
+ dropTargetIdx++;
20032
+ }
20033
+ collection.splice(dropTargetIdx, 0, draggedDataItem);
20034
+ }
20035
+ }
20036
+ FlatRowReorderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FlatRowReorderService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
20037
+ FlatRowReorderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FlatRowReorderService });
20038
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FlatRowReorderService, decorators: [{
20039
+ type: Injectable
20040
+ }] });
20041
+
19501
20042
  const ROOT_ID = null;
19502
20043
  /**
19503
20044
  * A directive which binds the TreeList to an array of objects by using
@@ -19508,14 +20049,18 @@ const ROOT_ID = null;
19508
20049
  * and [filtering]({% slug filtering_treelist %}) ([more information and examples]({% slug databinding_treelist %})).
19509
20050
  */
19510
20051
  class FlatBindingDirective extends BaseBindingDirective {
19511
- constructor(component) {
20052
+ constructor(component, rowReorderService) {
19512
20053
  super(component);
19513
20054
  this.component = component;
20055
+ this.rowReorderService = rowReorderService;
19514
20056
  this.idGetter = getter('id');
19515
20057
  this.idSetter = setter('id');
19516
20058
  this.parentIdGetter = getter('parentId');
19517
20059
  this.parentIdSetter = setter('parentId');
19518
20060
  component.localEditService = new FlatEditService(this);
20061
+ if (this.rowReorderService) {
20062
+ this.rowReorderService.bindingDirective = this;
20063
+ }
19519
20064
  }
19520
20065
  /**
19521
20066
  * The name of the field which contains the identifier of the parent node.
@@ -19523,6 +20068,10 @@ class FlatBindingDirective extends BaseBindingDirective {
19523
20068
  set parentIdField(value) {
19524
20069
  this.parentIdGetter = getter(value);
19525
20070
  this.parentIdSetter = setter(value);
20071
+ this._parentIdField = value;
20072
+ }
20073
+ get parentIdField() {
20074
+ return this._parentIdField;
19526
20075
  }
19527
20076
  /**
19528
20077
  * The name of the field which contains the unique identifier of the node.
@@ -19530,7 +20079,14 @@ class FlatBindingDirective extends BaseBindingDirective {
19530
20079
  set idField(value) {
19531
20080
  this.idGetter = getter(value);
19532
20081
  this.idSetter = setter(value);
20082
+ this._idField = value;
20083
+ }
20084
+ get idField() {
20085
+ return this._idField;
19533
20086
  }
20087
+ /**
20088
+ * @hidden
20089
+ */
19534
20090
  getChildren(item) {
19535
20091
  const id = this.itemKey(item);
19536
20092
  const children = id === ROOT_ID ?
@@ -19541,16 +20097,50 @@ class FlatBindingDirective extends BaseBindingDirective {
19541
20097
  itemKey(item) {
19542
20098
  return item ? this.idGetter(item) : ROOT_ID;
19543
20099
  }
20100
+ onRowReorder(ev) {
20101
+ if (ev.dropPosition === 'forbidden') {
20102
+ return;
20103
+ }
20104
+ const draggedItem = ev.draggedRows[0].dataItem;
20105
+ const dropTargetItem = ev.dropTargetRow.dataItem;
20106
+ if (ev.dropPosition === 'over') {
20107
+ const dropItemId = this.itemKey(dropTargetItem);
20108
+ if (draggedItem[this.parentIdField] !== dropItemId) {
20109
+ draggedItem[this.parentIdField] = dropItemId;
20110
+ }
20111
+ }
20112
+ else {
20113
+ const dropItemParentId = dropTargetItem[this.parentIdField];
20114
+ draggedItem[this.parentIdField] = dropItemParentId;
20115
+ this.rowReorderService.reorderRows(ev, this.originalData);
20116
+ }
20117
+ this.rebind();
20118
+ }
19544
20119
  }
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 });
20120
+ 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 });
20121
+ 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: [
20122
+ {
20123
+ provide: RowReorderService,
20124
+ useClass: FlatRowReorderService
20125
+ }
20126
+ ], exportAs: ["kendoTreeListFlatBinding"], usesInheritance: true, ngImport: i0 });
19547
20127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FlatBindingDirective, decorators: [{
19548
20128
  type: Directive,
19549
20129
  args: [{
19550
20130
  exportAs: 'kendoTreeListFlatBinding',
19551
- selector: '[kendoTreeListFlatBinding]'
20131
+ selector: '[kendoTreeListFlatBinding]',
20132
+ providers: [
20133
+ {
20134
+ provide: RowReorderService,
20135
+ useClass: FlatRowReorderService
20136
+ }
20137
+ ]
19552
20138
  }]
19553
- }], ctorParameters: function () { return [{ type: DataBoundTreeComponent }]; }, propDecorators: { parentIdField: [{
20139
+ }], ctorParameters: function () {
20140
+ return [{ type: DataBoundTreeComponent }, { type: RowReorderService, decorators: [{
20141
+ type: Optional
20142
+ }] }];
20143
+ }, propDecorators: { parentIdField: [{
19554
20144
  type: Input
19555
20145
  }], idField: [{
19556
20146
  type: Input
@@ -19841,7 +20431,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
19841
20431
  * Represents the Kendo UI TreeListSpacer component for Angular.
19842
20432
  * Used to give additional white space between the Pager inner elements,
19843
20433
  * and provides a way for customizing the spacer width.
19844
- * It can also be used in any flex container within the TreeList.
20434
+ * 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
20435
  */
19846
20436
  class TreeListSpacerComponent {
19847
20437
  constructor() {
@@ -19962,7 +20552,8 @@ TreeListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
19962
20552
  RowFilterModule,
19963
20553
  FilterMenuModule,
19964
20554
  ResizeSensorModule,
19965
- ColumnMenuModule], exports: [TreeListComponent,
20555
+ ColumnMenuModule,
20556
+ DragAndDropModule$1], exports: [TreeListComponent,
19966
20557
  ToolbarTemplateDirective,
19967
20558
  ToolbarComponent,
19968
20559
  TreeListSpacerComponent,
@@ -19974,7 +20565,7 @@ TreeListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
19974
20565
  FlatBindingDirective,
19975
20566
  ExpandableDirective,
19976
20567
  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] });
20568
+ 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
20569
  TreeListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TreeListModule, imports: [[
19979
20570
  CommonModule,
19980
20571
  SharedModule,
@@ -19984,7 +20575,8 @@ TreeListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
19984
20575
  RowFilterModule,
19985
20576
  FilterMenuModule,
19986
20577
  ResizeSensorModule,
19987
- ColumnMenuModule
20578
+ ColumnMenuModule,
20579
+ DragAndDropModule$1
19988
20580
  ]] });
19989
20581
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TreeListModule, decorators: [{
19990
20582
  type: NgModule,
@@ -20000,11 +20592,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20000
20592
  RowFilterModule,
20001
20593
  FilterMenuModule,
20002
20594
  ResizeSensorModule,
20003
- ColumnMenuModule
20595
+ ColumnMenuModule,
20596
+ DragAndDropModule$1
20004
20597
  ]
20005
20598
  }]
20006
20599
  }] });
20007
20600
 
20601
+ /**
20602
+ * Represents the Kendo UI PDFMargin component for Angular.
20603
+ * The supported units are:
20604
+ * `"mm"`
20605
+ * `"cm"`
20606
+ * `"in"`
20607
+ * `"pt"` (default).
20608
+ * Numbers are considered to be points (`"pt"`).
20609
+ */
20008
20610
  class PDFMarginComponent extends PDFExportMarginComponent {
20009
20611
  }
20010
20612
  PDFMarginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PDFMarginComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -20434,7 +21036,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20434
21036
  *
20435
21037
  * @example
20436
21038
  * ```html
20437
- * <kendo-treelist>
21039
+ * <kendo-treelist ...>
20438
21040
  * <ng-template kendoTreeListToolbarTemplate>
20439
21041
  * <button kendoTreeListPDFCommand>Export to PDF</button>
20440
21042
  * </ng-template>
@@ -20474,7 +21076,7 @@ PDFCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
20474
21076
  </span>
20475
21077
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
20476
21078
  <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"] }] });
21079
+ `, 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
21080
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PDFCommandDirective, decorators: [{
20479
21081
  type: Component,
20480
21082
  args: [{
@@ -20775,7 +21377,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20775
21377
  *
20776
21378
  * @example
20777
21379
  * ```html
20778
- * <kendo-treelist>
21380
+ * <kendo-treelist ...>
20779
21381
  * <ng-template kendoTreeListToolbarTemplate>
20780
21382
  * <button kendoTreeListExcelCommand>Export to PDF</button>
20781
21383
  * </ng-template>
@@ -20815,7 +21417,7 @@ ExcelCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
20815
21417
  </span>
20816
21418
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
20817
21419
  <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"] }] });
21420
+ `, 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
21421
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ExcelCommandDirective, decorators: [{
20820
21422
  type: Component,
20821
21423
  args: [{
@@ -20879,5 +21481,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20879
21481
  * Generated bundle index. Do not edit.
20880
21482
  */
20881
21483
 
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 };
21484
+ 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
21485