@progress/kendo-angular-treelist 17.0.0-develop.9 → 17.0.1-develop.1

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 (393) hide show
  1. package/binding-directives/base-binding.directive.d.ts +1 -1
  2. package/binding-directives/flat-binding.directive.d.ts +1 -1
  3. package/binding-directives/hierarchy-binding.directive.d.ts +1 -1
  4. package/column-menu/column-chooser.component.d.ts +1 -1
  5. package/column-menu/column-list.component.d.ts +2 -2
  6. package/column-menu/column-menu-chooser.component.d.ts +1 -1
  7. package/column-menu/column-menu-filter.component.d.ts +1 -1
  8. package/column-menu/column-menu-item-base.d.ts +1 -1
  9. package/column-menu/column-menu-item.component.d.ts +1 -1
  10. package/column-menu/column-menu.component.d.ts +1 -1
  11. package/column-resizing/column-handle.directive.d.ts +1 -1
  12. package/column-resizing/column-resize.interface.d.ts +3 -3
  13. package/column-resizing/table.directive.d.ts +1 -1
  14. package/columns/checkbox-column.component.d.ts +1 -1
  15. package/columns/column-base.d.ts +1 -1
  16. package/columns/column.component.d.ts +1 -1
  17. package/columns/sort-settings.d.ts +2 -2
  18. package/columns/span-column.component.d.ts +13 -13
  19. package/common/create-form-group.d.ts +1 -1
  20. package/{pager → common}/pager-settings.d.ts +1 -1
  21. package/common/provider.service.d.ts +0 -1
  22. package/common/remove-confirmation.d.ts +1 -1
  23. package/data/treelist-item.interface.d.ts +1 -1
  24. package/directives.d.ts +7 -17
  25. package/dragdrop/context-types.d.ts +1 -1
  26. package/dragdrop/draggable-column.directive.d.ts +1 -1
  27. package/dragdrop/drop-target.directive.d.ts +1 -1
  28. package/editing/add-command-tool.directive.d.ts +38 -0
  29. package/editing/add-command.directive.d.ts +1 -1
  30. package/editing/cancel-command.directive.d.ts +1 -1
  31. package/editing/cancel-event-args.interface.d.ts +1 -1
  32. package/editing/edit-command.directive.d.ts +1 -1
  33. package/editing/edit.service.d.ts +3 -3
  34. package/editing/remove-command.directive.d.ts +1 -1
  35. package/editing/save-command.directive.d.ts +1 -1
  36. package/editing-directives/create-form-group-args.interface.d.ts +1 -1
  37. package/editing-directives/editing-directive-base.d.ts +1 -1
  38. package/editing-directives/in-cell-editing.directive.d.ts +1 -1
  39. package/editing-directives/reactive-editing.directive.d.ts +1 -1
  40. package/editing-directives/row-editing-directive-base.d.ts +0 -1
  41. package/editing-directives/template-editing.directive.d.ts +1 -2
  42. package/{esm2020 → esm2022}/binding-directives/base-binding.directive.mjs +17 -13
  43. package/{esm2020 → esm2022}/binding-directives/data-bound-tree-component.mjs +3 -3
  44. package/{esm2020 → esm2022}/binding-directives/flat-binding.directive.mjs +29 -21
  45. package/{esm2020 → esm2022}/binding-directives/hierarchy-binding.directive.mjs +26 -19
  46. package/{esm2020 → esm2022}/column-menu/column-chooser.component.mjs +26 -18
  47. package/{esm2020 → esm2022}/column-menu/column-list.component.mjs +71 -59
  48. package/{esm2020 → esm2022}/column-menu/column-locked-change-event.mjs +4 -0
  49. package/{esm2020 → esm2022}/column-menu/column-menu-chooser.component.mjs +28 -25
  50. package/{esm2020 → esm2022}/column-menu/column-menu-filter.component.mjs +23 -22
  51. package/{esm2020 → esm2022}/column-menu/column-menu-item-base.mjs +9 -6
  52. package/{esm2020 → esm2022}/column-menu/column-menu-item-content-template.directive.mjs +4 -3
  53. package/{esm2020 → esm2022}/column-menu/column-menu-item.component.mjs +67 -42
  54. package/{esm2020 → esm2022}/column-menu/column-menu-lock.component.mjs +9 -6
  55. package/{esm2020 → esm2022}/column-menu/column-menu-sort.component.mjs +8 -6
  56. package/{esm2020 → esm2022}/column-menu/column-menu-template.directive.mjs +4 -3
  57. package/{esm2020 → esm2022}/column-menu/column-menu.component.mjs +49 -25
  58. package/{esm2020 → esm2022}/column-menu/column-menu.service.mjs +23 -9
  59. package/{esm2020 → esm2022}/column-menu/column-visibility-change-event.mjs +4 -0
  60. package/{esm2020 → esm2022}/column-resizing/column-handle.directive.mjs +21 -14
  61. package/{esm2020 → esm2022}/column-resizing/column-resizing.service.mjs +8 -8
  62. package/{esm2020 → esm2022}/column-resizing/table.directive.mjs +17 -8
  63. package/{esm2020 → esm2022}/columns/checkbox-column.component.mjs +27 -12
  64. package/{esm2020 → esm2022}/columns/column-base.mjs +140 -72
  65. package/{esm2020 → esm2022}/columns/column-group.component.mjs +24 -20
  66. package/{esm2020 → esm2022}/columns/column-list.mjs +4 -3
  67. package/{esm2020 → esm2022}/columns/column.component.mjs +56 -38
  68. package/{esm2020 → esm2022}/columns/columns-container.mjs +14 -13
  69. package/{esm2020 → esm2022}/columns/command-column.component.mjs +11 -9
  70. package/{esm2020 → esm2022}/columns/rowreorder-column.component.mjs +13 -12
  71. package/{esm2020 → esm2022}/columns/span-column.component.mjs +64 -29
  72. package/{esm2020 → esm2022}/common/column-info.service.mjs +8 -9
  73. package/esm2022/common/dom-events.service.mjs +24 -0
  74. package/{esm2020 → esm2022}/common/id.service.mjs +4 -3
  75. package/{esm2020 → esm2022}/common/option-changes.service.mjs +5 -7
  76. package/{esm2020 → esm2022}/common/preventable-event.mjs +1 -3
  77. package/{esm2020 → esm2022}/common/provider.service.mjs +8 -6
  78. package/{esm2020 → esm2022}/common/single-popup.service.mjs +19 -8
  79. package/{esm2020 → esm2022}/common/sort.service.mjs +1 -3
  80. package/{esm2020 → esm2022}/data/change-notification.service.mjs +6 -4
  81. package/{esm2020 → esm2022}/data/data.collection.mjs +45 -23
  82. package/{esm2020 → esm2022}/directives.mjs +8 -25
  83. package/{esm2020 → esm2022}/dragdrop/column-reorder-event.mjs +14 -0
  84. package/{esm2020 → esm2022}/dragdrop/column-reorder.service.mjs +4 -6
  85. package/{esm2020 → esm2022}/dragdrop/drag-and-drop.service.mjs +6 -8
  86. package/{esm2020 → esm2022}/dragdrop/drag-hint.service.mjs +7 -4
  87. package/{esm2020 → esm2022}/dragdrop/draggable-column.directive.mjs +22 -13
  88. package/{esm2020 → esm2022}/dragdrop/drop-cue.service.mjs +4 -3
  89. package/{esm2020 → esm2022}/dragdrop/drop-target.directive.mjs +10 -8
  90. package/esm2022/editing/add-command-tool.directive.mjs +63 -0
  91. package/{esm2020 → esm2022}/editing/add-command.directive.mjs +10 -6
  92. package/{esm2020 → esm2022}/editing/base-command.directive.mjs +9 -8
  93. package/{esm2020 → esm2022}/editing/cancel-command.directive.mjs +10 -6
  94. package/{esm2020 → esm2022}/editing/cell-close-event.mjs +20 -4
  95. package/{esm2020 → esm2022}/editing/edit-command.directive.mjs +10 -6
  96. package/{esm2020 → esm2022}/editing/edit-template.directive.mjs +4 -3
  97. package/{esm2020 → esm2022}/editing/edit.service.mjs +18 -13
  98. package/{esm2020 → esm2022}/editing/remove-command.directive.mjs +10 -6
  99. package/{esm2020 → esm2022}/editing/save-command.directive.mjs +10 -6
  100. package/{esm2020 → esm2022}/editing-directives/editing-directive-base.mjs +17 -7
  101. package/{esm2020 → esm2022}/editing-directives/flat-edit.service.mjs +1 -0
  102. package/{esm2020 → esm2022}/editing-directives/hierarchy-edit.service.mjs +1 -0
  103. package/{esm2020 → esm2022}/editing-directives/in-cell-editing.directive.mjs +8 -3
  104. package/{esm2020 → esm2022}/editing-directives/reactive-editing.directive.mjs +8 -3
  105. package/{esm2020 → esm2022}/editing-directives/row-editing-directive-base.mjs +3 -3
  106. package/{esm2020 → esm2022}/editing-directives/template-editing.directive.mjs +9 -3
  107. package/esm2022/excel/excel-command-tool.directive.mjs +66 -0
  108. package/{esm2020 → esm2022}/excel/excel-command.directive.mjs +10 -9
  109. package/{esm2020 → esm2022}/excel/excel-export-event.mjs +1 -0
  110. package/{esm2020 → esm2022}/excel/excel.component.mjs +71 -22
  111. package/{esm2020 → esm2022}/excel/excel.module.mjs +5 -4
  112. package/{esm2020 → esm2022}/excel/excel.service.mjs +7 -8
  113. package/{esm2020 → esm2022}/expand-state/expand-event.mjs +12 -0
  114. package/{esm2020 → esm2022}/expand-state/expand-state.service.mjs +5 -7
  115. package/{esm2020 → esm2022}/expand-state/expandable-tree-component.mjs +3 -3
  116. package/{esm2020 → esm2022}/expand-state/expandable.directive.mjs +23 -19
  117. package/{esm2020 → esm2022}/filtering/base-filter-cell.component.mjs +18 -7
  118. package/{esm2020 → esm2022}/filtering/boolean-filter.component.mjs +33 -29
  119. package/{esm2020 → esm2022}/filtering/cell/autocomplete-filter-cell.component.mjs +15 -13
  120. package/{esm2020 → esm2022}/filtering/cell/boolean-filter-cell.component.mjs +5 -4
  121. package/{esm2020 → esm2022}/filtering/cell/date-filter-cell.component.mjs +11 -10
  122. package/{esm2020 → esm2022}/filtering/cell/filter-cell-host.directive.mjs +3 -3
  123. package/{esm2020 → esm2022}/filtering/cell/filter-cell-operators.component.mjs +53 -33
  124. package/{esm2020 → esm2022}/filtering/cell/filter-cell-template.directive.mjs +4 -3
  125. package/{esm2020 → esm2022}/filtering/cell/filter-cell-wrapper.component.mjs +8 -8
  126. package/{esm2020 → esm2022}/filtering/cell/filter-cell.component.mjs +11 -8
  127. package/{esm2020 → esm2022}/filtering/cell/numeric-filter-cell.component.mjs +23 -17
  128. package/{esm2020 → esm2022}/filtering/cell/string-filter-cell.component.mjs +34 -28
  129. package/{esm2020 → esm2022}/filtering/date-filter.component.mjs +64 -39
  130. package/{esm2020 → esm2022}/filtering/filter-host.directive.mjs +8 -3
  131. package/{esm2020 → esm2022}/filtering/filter-input-wrapper.component.mjs +11 -8
  132. package/{esm2020 → esm2022}/filtering/filter-input.directive.mjs +21 -13
  133. package/{esm2020 → esm2022}/filtering/filter-row.component.mjs +11 -8
  134. package/{esm2020 → esm2022}/filtering/filter.service.mjs +7 -9
  135. package/{esm2020 → esm2022}/filtering/menu/boolean-filter-menu.component.mjs +33 -26
  136. package/{esm2020 → esm2022}/filtering/menu/date-filter-menu-input.component.mjs +21 -5
  137. package/{esm2020 → esm2022}/filtering/menu/date-filter-menu.component.mjs +22 -21
  138. package/{esm2020 → esm2022}/filtering/menu/filter-menu-container.component.mjs +28 -16
  139. package/{esm2020 → esm2022}/filtering/menu/filter-menu-host.directive.mjs +4 -3
  140. package/{esm2020 → esm2022}/filtering/menu/filter-menu-input-wrapper.component.mjs +9 -7
  141. package/{esm2020 → esm2022}/filtering/menu/filter-menu-template.directive.mjs +4 -3
  142. package/{esm2020 → esm2022}/filtering/menu/filter-menu.component.mjs +20 -8
  143. package/{esm2020 → esm2022}/filtering/menu/filter-radio-button.directive.mjs +7 -3
  144. package/{esm2020 → esm2022}/filtering/menu/numeric-filter-menu-input.component.mjs +43 -17
  145. package/{esm2020 → esm2022}/filtering/menu/numeric-filter-menu.component.mjs +32 -31
  146. package/{esm2020 → esm2022}/filtering/menu/string-filter-menu-input.component.mjs +23 -16
  147. package/{esm2020 → esm2022}/filtering/menu/string-filter-menu.component.mjs +32 -21
  148. package/{esm2020 → esm2022}/filtering/numeric-filter.component.mjs +51 -28
  149. package/{esm2020 → esm2022}/filtering/operators/after-eq-filter-operator.component.mjs +8 -8
  150. package/{esm2020 → esm2022}/filtering/operators/after-filter-operator.component.mjs +8 -8
  151. package/{esm2020 → esm2022}/filtering/operators/before-eq-filter-operator.component.mjs +8 -8
  152. package/{esm2020 → esm2022}/filtering/operators/before-filter-operator.component.mjs +8 -8
  153. package/{esm2020 → esm2022}/filtering/operators/contains-filter-operator.component.mjs +8 -8
  154. package/{esm2020 → esm2022}/filtering/operators/ends-with-filter-operator.component.mjs +8 -8
  155. package/{esm2020 → esm2022}/filtering/operators/eq-filter-operator.component.mjs +8 -8
  156. package/{esm2020 → esm2022}/filtering/operators/filter-operator.base.mjs +15 -10
  157. package/{esm2020 → esm2022}/filtering/operators/gt-filter-operator.component.mjs +8 -8
  158. package/{esm2020 → esm2022}/filtering/operators/gte-filter-operator.component.mjs +8 -8
  159. package/{esm2020 → esm2022}/filtering/operators/is-empty-filter-operator.component.mjs +8 -8
  160. package/{esm2020 → esm2022}/filtering/operators/is-not-empty-filter-operator.component.mjs +8 -8
  161. package/{esm2020 → esm2022}/filtering/operators/is-not-null-filter-operator.component.mjs +8 -8
  162. package/{esm2020 → esm2022}/filtering/operators/isnull-filter-operator.component.mjs +8 -8
  163. package/{esm2020 → esm2022}/filtering/operators/lt-filter-operator.component.mjs +8 -8
  164. package/{esm2020 → esm2022}/filtering/operators/lte-filter-operator.component.mjs +8 -8
  165. package/{esm2020 → esm2022}/filtering/operators/neq-filter-operator.component.mjs +8 -8
  166. package/{esm2020 → esm2022}/filtering/operators/not-contains-filter-operator.component.mjs +8 -8
  167. package/{esm2020 → esm2022}/filtering/operators/starts-with-filter-operator.component.mjs +8 -8
  168. package/{esm2020 → esm2022}/filtering/string-filter.component.mjs +20 -15
  169. package/{esm2020 → esm2022}/index.mjs +3 -15
  170. package/{esm2020 → esm2022}/layout/browser-support.service.mjs +7 -4
  171. package/{esm2020 → esm2022}/layout/resizable.directive.mjs +16 -10
  172. package/{esm2020 → esm2022}/layout/resize.service.mjs +6 -8
  173. package/{esm2020 → esm2022}/layout/responsive.service.mjs +7 -9
  174. package/{esm2020 → esm2022}/localization/custom-messages.component.mjs +9 -8
  175. package/{esm2020 → esm2022}/localization/localized-messages.directive.mjs +9 -8
  176. package/esm2022/localization/messages.mjs +416 -0
  177. package/{esm2020 → esm2022}/navigation/default-focusable-element.mjs +10 -6
  178. package/{esm2020 → esm2022}/navigation/focus-group.mjs +12 -11
  179. package/{esm2020 → esm2022}/navigation/focus-root.mjs +5 -4
  180. package/{esm2020 → esm2022}/navigation/focusable.directive.mjs +18 -10
  181. package/{esm2020 → esm2022}/navigation/item-map.mjs +2 -4
  182. package/{esm2020 → esm2022}/navigation/logical-cell.directive.mjs +35 -22
  183. package/{esm2020 → esm2022}/navigation/logical-row.directive.mjs +19 -13
  184. package/{esm2020 → esm2022}/navigation/model-cell.mjs +11 -0
  185. package/{esm2020 → esm2022}/navigation/navigation-cursor.mjs +10 -8
  186. package/{esm2020 → esm2022}/navigation/navigation-metadata.mjs +13 -6
  187. package/{esm2020 → esm2022}/navigation/navigation-model.mjs +1 -3
  188. package/{esm2020 → esm2022}/navigation/navigation.service.mjs +46 -26
  189. package/{esm2020 → esm2022}/navigation/treelist-focusable-element.mjs +1 -0
  190. package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
  191. package/esm2022/pdf/pdf-command-tool.directive.mjs +66 -0
  192. package/{esm2020 → esm2022}/pdf/pdf-command.directive.mjs +10 -9
  193. package/{esm2020 → esm2022}/pdf/pdf-margin.component.mjs +3 -3
  194. package/{esm2020 → esm2022}/pdf/pdf-template.directive.mjs +3 -3
  195. package/{esm2020 → esm2022}/pdf/pdf.component.mjs +24 -4
  196. package/{esm2020 → esm2022}/pdf/pdf.module.mjs +6 -5
  197. package/{esm2020 → esm2022}/pdf/pdf.service.mjs +8 -9
  198. package/{esm2020 → esm2022}/pdf/treelist-query.mjs +4 -0
  199. package/{esm2020 → esm2022}/rendering/cell-template.directive.mjs +4 -3
  200. package/{esm2020 → esm2022}/rendering/cell.component.mjs +60 -54
  201. package/{esm2020 → esm2022}/rendering/common/col-group.component.mjs +5 -7
  202. package/{esm2020 → esm2022}/rendering/common/field-accessor.pipe.mjs +4 -3
  203. package/{esm2020 → esm2022}/rendering/common/level-items.pipe.mjs +3 -3
  204. package/{esm2020 → esm2022}/rendering/common/loading.component.mjs +9 -8
  205. package/{esm2020 → esm2022}/rendering/common/spacer.component.mjs +12 -7
  206. package/{esm2020 → esm2022}/rendering/footer-template.directive.mjs +4 -3
  207. package/{esm2020 → esm2022}/rendering/header/header-template.directive.mjs +4 -3
  208. package/{esm2020 → esm2022}/rendering/header/header.component.mjs +62 -44
  209. package/{esm2020 → esm2022}/rendering/list.component.mjs +85 -45
  210. package/{esm2020 → esm2022}/rendering/no-records-template.directive.mjs +4 -3
  211. package/{esm2020 → esm2022}/rendering/table-body.component.mjs +48 -21
  212. package/{esm2020 → esm2022}/rendering/toolbar/toolbar-focusable.directive.mjs +9 -7
  213. package/{esm2020 → esm2022}/rendering/toolbar/toolbar-navigation.service.mjs +9 -8
  214. package/{esm2020 → esm2022}/rendering/toolbar/toolbar-template.directive.mjs +10 -8
  215. package/{esm2020 → esm2022}/rendering/toolbar/toolbar.component.mjs +18 -13
  216. package/{esm2020 → esm2022}/row-reordering/flat-reorder.service.mjs +3 -3
  217. package/{esm2020 → esm2022}/row-reordering/hierarchical-reorder.service.mjs +3 -3
  218. package/{esm2020 → esm2022}/row-reordering/row-reorder.service.mjs +14 -9
  219. package/{esm2020 → esm2022}/scrolling/row-height.service.mjs +2 -0
  220. package/{esm2020 → esm2022}/scrolling/scroll-request.service.mjs +4 -6
  221. package/{esm2020 → esm2022}/scrolling/scroll-sync.service.mjs +10 -8
  222. package/{esm2020 → esm2022}/scrolling/scroller.service.mjs +12 -2
  223. package/{esm2020 → esm2022}/scrolling/suspend.service.mjs +4 -6
  224. package/{esm2020 → esm2022}/selection/marquee.directive.mjs +18 -7
  225. package/{esm2020 → esm2022}/selection/selectable.directive.mjs +23 -17
  226. package/{esm2020 → esm2022}/selection/selection-change-event.mjs +12 -0
  227. package/{esm2020 → esm2022}/selection/selection-state.mjs +2 -6
  228. package/{esm2020 → esm2022}/selection/selection.service.mjs +15 -14
  229. package/{esm2020 → esm2022}/treelist.component.mjs +619 -420
  230. package/esm2022/treelist.module.mjs +173 -0
  231. package/excel/excel-command-tool.directive.d.ts +41 -0
  232. package/excel/excel.component.d.ts +1 -1
  233. package/excel/excel.module.d.ts +3 -2
  234. package/expand-state/expandable.directive.d.ts +1 -1
  235. package/{fesm2020 → fesm2022}/progress-kendo-angular-treelist.mjs +4095 -4024
  236. package/filtering/base-filter-cell.component.d.ts +5 -1
  237. package/filtering/boolean-filter.component.d.ts +2 -7
  238. package/filtering/cell/autocomplete-filter-cell.component.d.ts +2 -7
  239. package/filtering/cell/date-filter-cell.component.d.ts +1 -1
  240. package/filtering/cell/filter-cell-operators.component.d.ts +1 -1
  241. package/filtering/cell/filter-cell-wrapper.component.d.ts +1 -1
  242. package/filtering/cell/filter-cell.component.d.ts +1 -1
  243. package/filtering/cell/numeric-filter-cell.component.d.ts +1 -1
  244. package/filtering/cell/string-filter-cell.component.d.ts +1 -1
  245. package/filtering/date-filter.component.d.ts +2 -11
  246. package/filtering/filter-host.directive.d.ts +2 -2
  247. package/filtering/filter-input-wrapper.component.d.ts +1 -2
  248. package/filtering/filter-input.directive.d.ts +1 -1
  249. package/filtering/filter-row.component.d.ts +1 -2
  250. package/filtering/filterable.d.ts +1 -1
  251. package/filtering/menu/boolean-filter-menu.component.d.ts +1 -1
  252. package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
  253. package/filtering/menu/date-filter-menu.component.d.ts +1 -7
  254. package/filtering/menu/filter-menu-container.component.d.ts +1 -1
  255. package/filtering/menu/filter-menu-host.directive.d.ts +1 -1
  256. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +1 -1
  257. package/filtering/menu/filter-menu.component.d.ts +1 -4
  258. package/filtering/menu/filter-radio-button.directive.d.ts +1 -1
  259. package/filtering/menu/numeric-filter-menu-input.component.d.ts +1 -1
  260. package/filtering/menu/numeric-filter-menu.component.d.ts +1 -7
  261. package/filtering/menu/string-filter-menu-input.component.d.ts +1 -1
  262. package/filtering/menu/string-filter-menu.component.d.ts +1 -7
  263. package/filtering/numeric-filter.component.d.ts +2 -11
  264. package/filtering/operators/filter-operator.base.d.ts +1 -1
  265. package/filtering/string-filter.component.d.ts +2 -11
  266. package/index.d.ts +4 -17
  267. package/layout/resizable.directive.d.ts +1 -1
  268. package/localization/messages.d.ts +6 -2
  269. package/navigation/focusable.directive.d.ts +1 -1
  270. package/navigation/logical-cell.directive.d.ts +1 -1
  271. package/navigation/logical-row.directive.d.ts +1 -1
  272. package/navigation/navigation.service.d.ts +1 -1
  273. package/package.json +27 -32
  274. package/pdf/pdf-command-tool.directive.d.ts +41 -0
  275. package/pdf/pdf-margin.interface.d.ts +1 -1
  276. package/pdf/pdf.component.d.ts +1 -7
  277. package/pdf/pdf.module.d.ts +3 -2
  278. package/rendering/cell.component.d.ts +2 -1
  279. package/rendering/common/col-group.component.d.ts +1 -1
  280. package/rendering/common/row-class.d.ts +2 -2
  281. package/rendering/common/spacer.component.d.ts +1 -1
  282. package/rendering/header/header.component.d.ts +2 -2
  283. package/rendering/list.component.d.ts +1 -1
  284. package/rendering/table-body.component.d.ts +1 -1
  285. package/rendering/toolbar/toolbar-template.directive.d.ts +1 -1
  286. package/rendering/toolbar/toolbar.component.d.ts +1 -1
  287. package/row-reordering/types.d.ts +1 -1
  288. package/schematics/ngAdd/index.js +4 -4
  289. package/scrolling/scroll-sync.service.d.ts +1 -1
  290. package/scrolling/scroller.service.d.ts +1 -1
  291. package/scrolling/scrollmode.d.ts +1 -1
  292. package/selection/is-selected.d.ts +1 -1
  293. package/selection/selectable.directive.d.ts +1 -1
  294. package/treelist.component.d.ts +4 -3
  295. package/treelist.module.d.ts +60 -65
  296. package/utils.d.ts +1 -1
  297. package/constants.d.ts +0 -12
  298. package/esm2020/common/dom-events.service.mjs +0 -26
  299. package/esm2020/constants.mjs +0 -12
  300. package/esm2020/filtering/cell/row-filtering.module.mjs +0 -77
  301. package/esm2020/filtering/menu/filter-menu.module.mjs +0 -80
  302. package/esm2020/filtering/shared-filtering.module.mjs +0 -94
  303. package/esm2020/localization/messages.mjs +0 -138
  304. package/esm2020/pager/pager-context.service.mjs +0 -42
  305. package/esm2020/pager/pager-element.component.mjs +0 -103
  306. package/esm2020/pager/pager-info.component.mjs +0 -75
  307. package/esm2020/pager/pager-input.component.mjs +0 -144
  308. package/esm2020/pager/pager-next-buttons.component.mjs +0 -126
  309. package/esm2020/pager/pager-numeric-buttons.component.mjs +0 -244
  310. package/esm2020/pager/pager-page-sizes.component.mjs +0 -139
  311. package/esm2020/pager/pager-prev-buttons.component.mjs +0 -126
  312. package/esm2020/pager/pager-template.directive.mjs +0 -48
  313. package/esm2020/pager/pager.component.mjs +0 -415
  314. package/esm2020/pager/pager.module.mjs +0 -43
  315. package/esm2020/pager/pagesize-item.interface.mjs +0 -5
  316. package/esm2020/rendering/body.module.mjs +0 -40
  317. package/esm2020/rendering/header/header.module.mjs +0 -94
  318. package/esm2020/shared.module.mjs +0 -41
  319. package/esm2020/treelist.module.mjs +0 -176
  320. package/fesm2015/progress-kendo-angular-treelist.mjs +0 -21537
  321. package/filtering/cell/row-filtering.module.d.ts +0 -57
  322. package/filtering/menu/filter-menu.module.d.ts +0 -60
  323. package/filtering/shared-filtering.module.d.ts +0 -52
  324. package/pager/pager-context.service.d.ts +0 -32
  325. package/pager/pager-element.component.d.ts +0 -74
  326. package/pager/pager-info.component.d.ts +0 -43
  327. package/pager/pager-input.component.d.ts +0 -45
  328. package/pager/pager-next-buttons.component.d.ts +0 -36
  329. package/pager/pager-numeric-buttons.component.d.ts +0 -52
  330. package/pager/pager-page-sizes.component.d.ts +0 -48
  331. package/pager/pager-prev-buttons.component.d.ts +0 -32
  332. package/pager/pager-template.directive.d.ts +0 -38
  333. package/pager/pager.component.d.ts +0 -73
  334. package/pager/pager.module.d.ts +0 -27
  335. package/pager/pagesize-item.interface.d.ts +0 -14
  336. package/rendering/body.module.d.ts +0 -28
  337. package/rendering/header/header.module.d.ts +0 -84
  338. package/shared.module.d.ts +0 -29
  339. /package/{esm2020 → esm2022}/column-menu/column-menu-settings.interface.mjs +0 -0
  340. /package/{esm2020 → esm2022}/column-menu/utils.mjs +0 -0
  341. /package/{esm2020 → esm2022}/column-resizing/column-resize.interface.mjs +0 -0
  342. /package/{esm2020 → esm2022}/columns/column-common.mjs +0 -0
  343. /package/{esm2020 → esm2022}/columns/sort-settings.mjs +0 -0
  344. /package/{esm2020 → esm2022}/common/cell-click-event-args.interface.mjs +0 -0
  345. /package/{esm2020 → esm2022}/common/create-form-group.mjs +0 -0
  346. /package/{esm2020 → esm2022}/common/default-track-by.mjs +0 -0
  347. /package/{esm2020 → esm2022}/common/filter-descriptor-differ.mjs +0 -0
  348. /package/{esm2020 → esm2022}/common/filter-operator.interface.mjs +0 -0
  349. /package/{esm2020/pager → esm2022/common}/pager-settings.mjs +0 -0
  350. /package/{esm2020 → esm2022}/common/remove-confirmation.mjs +0 -0
  351. /package/{esm2020 → esm2022}/data/change-event-args.interface.mjs +0 -0
  352. /package/{esm2020 → esm2022}/data/data-item.interface.mjs +0 -0
  353. /package/{esm2020 → esm2022}/data/treelist-item.interface.mjs +0 -0
  354. /package/{esm2020 → esm2022}/dragdrop/column-reorder-config.mjs +0 -0
  355. /package/{esm2020 → esm2022}/dragdrop/common.mjs +0 -0
  356. /package/{esm2020 → esm2022}/dragdrop/context-types.mjs +0 -0
  357. /package/{esm2020 → esm2022}/editing/add-event-args.interface.mjs +0 -0
  358. /package/{esm2020 → esm2022}/editing/cancel-event-args.interface.mjs +0 -0
  359. /package/{esm2020 → esm2022}/editing/edit-event-args.interface.mjs +0 -0
  360. /package/{esm2020 → esm2022}/editing/remove-event-args.interface.mjs +0 -0
  361. /package/{esm2020 → esm2022}/editing/save-event-args.interface.mjs +0 -0
  362. /package/{esm2020 → esm2022}/editing-directives/create-form-group-args.interface.mjs +0 -0
  363. /package/{esm2020 → esm2022}/editing-directives/edit-service.interface.mjs +0 -0
  364. /package/{esm2020 → esm2022}/editing-directives/local-edit.service.mjs +0 -0
  365. /package/{esm2020 → esm2022}/editing-directives/utils.mjs +0 -0
  366. /package/{esm2020 → esm2022}/excel/excel-export-data.interface.mjs +0 -0
  367. /package/{esm2020 → esm2022}/filtering/cell/filter-cell-component.factory.mjs +0 -0
  368. /package/{esm2020 → esm2022}/filtering/filter-component.interface.mjs +0 -0
  369. /package/{esm2020 → esm2022}/filtering/filterable.mjs +0 -0
  370. /package/{esm2020 → esm2022}/filtering/menu/filter-menu-component.factory.mjs +0 -0
  371. /package/{esm2020 → esm2022}/layout/row-sync.mjs +0 -0
  372. /package/{esm2020 → esm2022}/navigation/focusable-element.interface.mjs +0 -0
  373. /package/{esm2020 → esm2022}/navigation/logical-cell.interface.mjs +0 -0
  374. /package/{esm2020 → esm2022}/navigation/logical-row.interface.mjs +0 -0
  375. /package/{esm2020 → esm2022}/navigation/navigation-cell.interface.mjs +0 -0
  376. /package/{esm2020 → esm2022}/navigation/navigation-change.interface.mjs +0 -0
  377. /package/{esm2020 → esm2022}/navigation/navigation-mode.mjs +0 -0
  378. /package/{esm2020 → esm2022}/navigation/navigation-row.interface.mjs +0 -0
  379. /package/{esm2020 → esm2022}/pdf/export-element.mjs +0 -0
  380. /package/{esm2020 → esm2022}/pdf/pdf-export-event.mjs +0 -0
  381. /package/{esm2020 → esm2022}/pdf/pdf-margin.interface.mjs +0 -0
  382. /package/{esm2020 → esm2022}/progress-kendo-angular-treelist.mjs +0 -0
  383. /package/{esm2020 → esm2022}/rendering/common/dom-queries.mjs +0 -0
  384. /package/{esm2020 → esm2022}/rendering/common/row-class.mjs +0 -0
  385. /package/{esm2020 → esm2022}/rendering/constants.mjs +0 -0
  386. /package/{esm2020 → esm2022}/row-reordering/types.mjs +0 -0
  387. /package/{esm2020 → esm2022}/row-reordering/utils.mjs +0 -0
  388. /package/{esm2020 → esm2022}/scrolling/content-scroll-event.mjs +0 -0
  389. /package/{esm2020 → esm2022}/scrolling/scroll-bottom-event.mjs +0 -0
  390. /package/{esm2020 → esm2022}/scrolling/scrollmode.mjs +0 -0
  391. /package/{esm2020 → esm2022}/selection/is-selected.mjs +0 -0
  392. /package/{esm2020 → esm2022}/selection/selectable-settings.mjs +0 -0
  393. /package/{esm2020 → esm2022}/utils.mjs +0 -0
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  /* eslint-disable @typescript-eslint/no-explicit-any */
6
6
  import { Component, ContentChildren, ElementRef, EventEmitter, HostBinding, Input, Output, Renderer2, QueryList, ViewChild, isDevMode, NgZone, ViewChildren, ChangeDetectorRef, ViewEncapsulation, ChangeDetectionStrategy, forwardRef } from '@angular/core';
7
- import { NgIf } from '@angular/common';
7
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
8
8
  import { FormControl, FormGroup } from '@angular/forms';
9
9
  import { Subscription, merge, isObservable } from 'rxjs';
10
10
  import { map, tap, take, filter, switchMap, takeUntil } from 'rxjs/operators';
@@ -27,8 +27,6 @@ import { NoRecordsTemplateDirective } from './rendering/no-records-template.dire
27
27
  import { ColumnBase } from './columns/column-base';
28
28
  import { syncRowsHeight } from './layout/row-sync';
29
29
  import { FilterService } from './filtering/filter.service';
30
- import { PagerTemplateDirective } from './pager/pager-template.directive';
31
- import { PagerContextService } from "./pager/pager-context.service";
32
30
  import { PDFService } from './pdf/pdf.service';
33
31
  import { PDFExportEvent } from './pdf/pdf-export-event';
34
32
  import { SuspendService } from './scrolling/suspend.service';
@@ -70,7 +68,6 @@ import { DataBoundTreeComponent } from './binding-directives/data-bound-tree-com
70
68
  import { ExpandableTreeComponent } from './expand-state/expandable-tree-component';
71
69
  import { ContextService } from './common/provider.service';
72
70
  import { RowReorderService } from './row-reordering/row-reorder.service';
73
- import { PagerComponent } from './pager/pager.component';
74
71
  import { LoadingComponent } from './rendering/common/loading.component';
75
72
  import { TableBodyComponent } from './rendering/table-body.component';
76
73
  import { MarqueeDirective } from './selection/marquee.directive';
@@ -81,6 +78,8 @@ import { ColGroupComponent } from './rendering/common/col-group.component';
81
78
  import { TableDirective } from './column-resizing/table.directive';
82
79
  import { ToolbarComponent } from './rendering/toolbar/toolbar.component';
83
80
  import { LocalizedMessagesDirective } from './localization/localized-messages.directive';
81
+ import { KENDO_PAGER, PagerContextService, PagerNavigationService, PagerTemplateDirective } from '@progress/kendo-angular-pager';
82
+ import { normalize } from './common/pager-settings';
84
83
  import * as i0 from "@angular/core";
85
84
  import * as i1 from "./layout/browser-support.service";
86
85
  import * as i2 from "./data/change-notification.service";
@@ -103,6 +102,7 @@ import * as i18 from "./selection/selection.service";
103
102
  import * as i19 from "@progress/kendo-angular-l10n";
104
103
  import * as i20 from "./common/provider.service";
105
104
  import * as i21 from "./row-reordering/row-reorder.service";
105
+ import * as i22 from "@progress/kendo-angular-pager";
106
106
  const createControl = (source) => (acc, key) => {
107
107
  acc[key] = new FormControl(source[key]);
108
108
  return acc;
@@ -127,349 +127,35 @@ const isInEditedCell = (element, treelistElement) => closest(element, matchesCla
127
127
  *
128
128
  */
129
129
  export class TreeListComponent {
130
- 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) {
131
- this.supportService = supportService;
132
- this.wrapper = wrapper;
133
- this.changeNotification = changeNotification;
134
- this.editService = editService;
135
- this.filterService = filterService;
136
- this.pdfService = pdfService;
137
- this.responsiveService = responsiveService;
138
- this.renderer = renderer;
139
- this.excelService = excelService;
140
- this.ngZone = ngZone;
141
- this.scrollSyncService = scrollSyncService;
142
- this.domEvents = domEvents;
143
- this.columnResizingService = columnResizingService;
144
- this.changeDetectorRef = changeDetectorRef;
145
- this.columnReorderService = columnReorderService;
146
- this.columnInfoService = columnInfoService;
147
- this.navigationService = navigationService;
148
- this.sortService = sortService;
149
- this.scrollRequestService = scrollRequestService;
150
- this.expandStateService = expandStateService;
151
- this.optionChanges = optionChanges;
152
- this.selectionService = selectionService;
153
- this.localization = localization;
154
- this.ctx = ctx;
155
- this.rowReorderService = rowReorderService;
156
- /**
157
- * Defines the page size used by the TreeList when [paging]({% slug paging_treelist %}) is enabled.
158
- *
159
- * @default 10
160
- */
161
- this.pageSize = 10;
162
- /**
163
- * Defines the scroll mode used by the TreeList.
164
- * @default 'scrollable'
165
- */
166
- this.scrollable = 'scrollable';
167
- /**
168
- * A function that defines how to track changes for the data rows.
169
- *
170
- * By default, the TreeList tracks changes by the index of the data item.
171
- * Edited rows are tracked by reference.
172
- *
173
- */
174
- this.trackBy = defaultTrackBy;
175
- /**
176
- * If set to `true`, the treelist will render only the columns in the current viewport.
177
- * @default false
178
- */
179
- this.virtualColumns = false;
180
- /**
181
- * Enables the [filtering]({% slug filtering_treelist %}) of the TreeList columns that have their `field` option set.
182
- */
183
- this.filterable = false;
184
- /**
185
- * Enables the [sorting]({% slug sorting_treelist %}) of the TreeList columns that have their `field` option set.
186
- */
187
- this.sortable = false;
188
- /**
189
- * Configures the pager of the TreeList ([see example]({% slug paging_treelist %})).
190
- *
191
- */
192
- this.pageable = false;
193
- /**
194
- * If set to `true`, the user can use dedicated shortcuts to interact with the TreeList.
195
- * By default, navigation is disabled and the TreeList content is accessible in the normal tab sequence.
196
- * @default false
197
- */
198
- this.navigable = false;
199
- /**
200
- * Indicates whether the TreeList columns will be resized during initialization so that
201
- * they fit their headers and row content. Defaults to `false`.
202
- * Columns with `autoSize` set to `false` are excluded.
203
- * To dynamically update the column width to match the new content,
204
- * refer to [this example]({% slug resizing_columns_treelist %}).
205
- *
206
- * @default false
207
- */
208
- this.autoSize = false;
209
- /**
210
- * If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells
211
- * ([see example]({% slug resizing_columns_treelist %})).
212
- *
213
- * @default false
214
- */
215
- this.resizable = false;
216
- /**
217
- * If set to `true`, the user can reorder columns by dragging their header cells
218
- * ([see example]({% slug reordering_columns_treelist %})).
219
- *
220
- * @default false
221
- */
222
- this.reorderable = false;
223
- /**
224
- * Specifies if the loading indicator of the TreeList will be displayed ([see example]({% slug databinding_treelist %})).
225
- *
226
- * @default false
227
- */
228
- this.loading = false;
229
- /**
230
- * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_treelist %})).
231
- *
232
- * @default false
233
- */
234
- this.columnMenu = false;
235
- /**
236
- * Specifies if the header of the treelist will be hidden. The header is visible by default.
237
- *
238
- * The header includes column headers and the [filter row](slug:filter_row_treelist).
239
- *
240
- * @default false
241
- */
242
- this.hideHeader = false;
243
- /**
244
- * Fires when the TreeList selection is changed.
245
- */
246
- this.selectionChange = new EventEmitter();
247
- /**
248
- * Fires when the TreeList filter is modified through the UI.
249
- * You have to handle the event yourself and filter the data.
250
- */
251
- this.filterChange = new EventEmitter();
252
- /**
253
- * Fires when the page of the TreeList is changed ([see example]({% slug paging_treelist %})).
254
- * You have to handle the event yourself and page the data.
255
- */
256
- this.pageChange = new EventEmitter();
257
- /**
258
- * Fires when the sorting of the TreeList is changed ([see example]({% slug sorting_treelist %})).
259
- * You have to handle the event yourself and sort the data.
260
- */
261
- this.sortChange = new EventEmitter();
262
- /**
263
- * Fires when the data state of the TreeList is changed.
264
- */
265
- this.dataStateChange = new EventEmitter();
266
- /**
267
- * Fires when the user clicks the **Edit** command button to edit a row
268
- * ([see example]({% slug editing_template_forms_treelist %}#toc-editing-records)).
269
- */
270
- this.edit = new EventEmitter();
271
- /**
272
- * Fires when the user clicks the **Cancel** command button to close a row
273
- * ([see example]({% slug editing_template_forms_treelist %}#toc-cancelling-editing)).
274
- */
275
- this.cancel = new EventEmitter();
276
- /**
277
- * Fires when the user clicks the **Save** command button to save changes in a row
278
- * ([see example]({% slug editing_template_forms_treelist %}#toc-saving-records)).
279
- */
280
- this.save = new EventEmitter();
281
- /**
282
- * Fires when the user clicks the **Remove** command button to remove a row
283
- * ([see example]({% slug editing_template_forms_treelist %}#toc-removing-records)).
284
- */
285
- this.remove = new EventEmitter();
286
- /**
287
- * Fires when the user clicks the **Add** command button to add a new row
288
- * ([see example]({% slug editing_template_forms_treelist %}#toc-adding-records)).
289
- */
290
- this.add = new EventEmitter();
291
- /**
292
- * Fires when the user leaves an edited cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).
293
- */
294
- this.cellClose = new EventEmitter();
295
- /**
296
- * Fires when the user clicks a cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).
297
- */
298
- this.cellClick = new EventEmitter();
299
- /**
300
- * Fires when the user clicks the **Export to PDF** command button.
301
- */
302
- this.pdfExport = new EventEmitter();
303
- /**
304
- * Fires when the user clicks the **Export to Excel** command button.
305
- */
306
- this.excelExport = new EventEmitter();
307
- /**
308
- * Fires when the user completes the resizing of the column.
309
- */
310
- this.columnResize = new EventEmitter();
311
- /**
312
- * Fires when the user completes the reordering of the column.
313
- */
314
- this.columnReorder = new EventEmitter();
315
- /**
316
- * Fires when the user changes the visibility of the columns from the column menu or column chooser.
317
- */
318
- this.columnVisibilityChange = new EventEmitter();
319
- /**
320
- * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
321
- */
322
- this.columnLockedChange = new EventEmitter();
323
- /**
324
- * Fires when the user scrolls to the last record on the page and enables endless scrolling
325
- * ([see example]({% slug scrollmmodes_treelist %}#toc-endless-scrolling)).
326
- * You have to handle the event yourself and page the data.
327
- */
328
- this.scrollBottom = new EventEmitter();
329
- /**
330
- * Fires when the treelist content is scrolled.
331
- * For performance reasons, the event is triggered outside the Angular zone. Enter the Angular zone if you make any changes that require change detection.
332
- */
333
- this.contentScroll = new EventEmitter();
334
- /**
335
- * Fires when an item is expanded.
336
- */
337
- this.expandEvent = new EventEmitter();
338
- /**
339
- * Fires when an item is collapsed.
340
- */
341
- this.collapseEvent = new EventEmitter();
342
- /**
343
- * @hidden
344
- *
345
- * Emits when the expand or collapse events are fired.
346
- * Used by the expand directive and the Gantt component.
347
- */
348
- this.expandStateChange = new EventEmitter();
349
- /**
350
- * Fires when the user drops the dragged row and reordering is performed.
351
- * Emits the [RowReorderEvent]({% slug api_treelist_rowreorderevent %}).
352
- */
353
- this.rowReorder = new EventEmitter();
354
- /**
355
- * @hidden
356
- */
357
- this.columnOrderChange = new EventEmitter();
358
- /**
359
- * A query list of all declared columns.
360
- */
361
- this.columns = new QueryList();
362
- this.hostClasses = true;
363
- this.footer = new QueryList();
364
- this.columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
365
- if (!isUniversal()) {
366
- column.matchesMedia = this.matchesMedia(column);
367
- }
368
- return column.isVisible;
369
- }));
370
- this.idGetter = getter(undefined);
371
- this.localEditService = new LocalEditService();
372
- this.view = new ViewCollection(this.viewFieldAccessor.bind(this), this.expandStateService, this.editService, this.selectionService);
373
- this.ariaRootId = `k-${guid()}`;
374
- this.dataChanged = false;
375
- this._hasChildren = (() => false);
376
- this.subscriptions = new Subscription();
377
- this.rtl = false;
378
- this.shouldGenerateColumns = true;
379
- this._data = [];
380
- this._sort = new Array();
381
- this._skip = 0;
382
- this.cachedWindowWidth = 0;
383
- this._rowReorderable = false;
384
- /**
385
- * @hidden
386
- */
387
- this.treeListData = () => { return this.view; };
388
- this._rowClass = () => null;
389
- validatePackage(packageMetadata);
390
- this.subscriptions.add(localization.changes.subscribe(({ rtl }) => {
391
- this.rtl = rtl;
392
- this.direction = this.rtl ? 'rtl' : 'ltr';
393
- }));
394
- this.selectionService.init(this);
395
- this.ctx.treelist = this;
396
- this.subscriptions.add(this.selectionService.changes.subscribe((args) => {
397
- if (hasObservers(this.selectionChange)) {
398
- this.ngZone.run(() => {
399
- args.sender = this;
400
- this.selectionChange.emit(args);
401
- this.selectionService.updateSelectedState();
402
- this.changeDetectorRef.markForCheck();
403
- });
404
- }
405
- }));
406
- this.columnInfoService.init(this.columnsContainer, () => this.columnList);
407
- this.subscriptions.add(this.columnInfoService.visibilityChange.subscribe((changed) => {
408
- this.columnVisibilityChange.emit(new ColumnVisibilityChangeEvent(changed));
409
- this.changeDetectorRef.markForCheck();
410
- }));
411
- this.subscriptions.add(this.columnInfoService.lockedChange.subscribe((changed) => {
412
- this.columnLockedChange.emit(new ColumnLockedChangeEvent(changed));
413
- this.changeDetectorRef.markForCheck();
414
- }));
415
- this.subscriptions.add(merge(this.optionChanges.columns, this.optionChanges.options).subscribe(() => {
416
- this.changeDetectorRef.markForCheck();
417
- }));
418
- this.subscriptions.add(this.filterService.changes.subscribe(x => {
419
- this.filterChange.emit(x);
420
- }));
421
- this.subscriptions.add(this.sortService.changes.subscribe(x => {
422
- this.sortChange.emit(x);
423
- }));
424
- this.attachStateChangesEmitter();
425
- this.attachEditHandlers();
426
- this.attachDomEventHandlers();
427
- this.subscriptions.add(this.pdfService.exportClick.subscribe(this.emitPDFExportEvent.bind(this)));
428
- this.subscriptions.add(this.excelService.exportClick.subscribe(this.saveAsExcel.bind(this)));
429
- this.subscriptions.add(this.excelService.loadingChange.subscribe(() => {
430
- this.changeDetectorRef.detectChanges();
431
- }));
432
- this.columnsContainerChange();
433
- this.handleColumnResize();
434
- this.columnList = new ColumnList(this.columns);
435
- this.subscriptions.add(this.columnReorderService
436
- .changes.subscribe(this.reorder.bind(this)));
437
- this.subscriptions.add(this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this)));
438
- this.subscriptions.add(this.expandStateService.changes.subscribe((args) => {
439
- if (args.expand) {
440
- this.expandEvent.emit(args);
441
- }
442
- else {
443
- this.collapseEvent.emit(args);
444
- }
445
- if (!args.isDefaultPrevented()) {
446
- this.changeDetectorRef.markForCheck();
447
- this.view.clear();
448
- this.expandStateChange.emit(args);
449
- }
450
- if (this.rowReorderable) {
451
- this.ngZone.onStable.pipe(take(1)).subscribe(() => {
452
- this.notifyReorderContainers();
453
- });
454
- }
455
- }));
456
- this.subscriptions.add(this.view.childrenLoaded.subscribe(() => {
457
- this.changeDetectorRef.detectChanges();
458
- }));
459
- this.subscriptions.add(this.view.resetPage.subscribe(() => {
460
- if (this.skip > 0 && hasObservers(this.pageChange)) {
461
- // don't think there is a way to avoid this
462
- // every callback in which the view can be computed is already passed the change detection
463
- // computing the current page in advance also does not seem feasible for such a rare case
464
- this.pageChangeTimeout = setTimeout(() => {
465
- this.pageChange.emit({ skip: 0, take: this.pageSize });
466
- }, 0);
467
- }
468
- this.skip = 0;
469
- }));
470
- this.dataLoaded = this.dataLoaded.bind(this);
471
- this.editService.idGetter = this.idGetter;
472
- }
130
+ supportService;
131
+ wrapper;
132
+ changeNotification;
133
+ editService;
134
+ filterService;
135
+ pdfService;
136
+ responsiveService;
137
+ renderer;
138
+ excelService;
139
+ ngZone;
140
+ scrollSyncService;
141
+ domEvents;
142
+ columnResizingService;
143
+ changeDetectorRef;
144
+ columnReorderService;
145
+ columnInfoService;
146
+ navigationService;
147
+ sortService;
148
+ scrollRequestService;
149
+ expandStateService;
150
+ optionChanges;
151
+ selectionService;
152
+ localization;
153
+ ctx;
154
+ rowReorderService;
155
+ /**
156
+ * An optional accessible description of the component.
157
+ */
158
+ ariaLabel;
473
159
  /**
474
160
  * Sets the data of the TreeList. If an array is provided, the TreeList automatically gets the total count
475
161
  * ([more information and example]({% slug databinding_treelist %})).
@@ -489,6 +175,24 @@ export class TreeListComponent {
489
175
  get data() {
490
176
  return this.loadedData;
491
177
  }
178
+ /**
179
+ * Defines the page size used by the TreeList when [paging]({% slug paging_treelist %}) is enabled.
180
+ *
181
+ * @default 10
182
+ */
183
+ pageSize = 10;
184
+ /**
185
+ * Defines the height (in pixels) that is used when the `scrollable` option of the TreeList is set.
186
+ * To set the height of the TreeList, you can also use `style.height`. The `style.height`
187
+ * option supports units such as `px`, `%`, `em`, `rem`, and others.
188
+ */
189
+ height;
190
+ /**
191
+ * Represent the actual height of each TreeList row (`tr`) element in the DOM.
192
+ * Required by the [virtual scrolling functionality]({% slug scrollmmodes_treelist %}).
193
+ * Set the `rowHeight` option to the exact pixels as the height of the `tr` element appears in the DOM.
194
+ */
195
+ rowHeight;
492
196
  /**
493
197
  * Defines the number of records to be skipped by the pager.
494
198
  * Required by the [paging]({% slug paging_treelist %}) functionality.
@@ -502,6 +206,11 @@ export class TreeListComponent {
502
206
  this.view.clear();
503
207
  }
504
208
  }
209
+ /**
210
+ * Defines the scroll mode used by the TreeList.
211
+ * @default 'scrollable'
212
+ */
213
+ scrollable = 'scrollable';
505
214
  /**
506
215
  * The descriptors by which the data will be sorted ([see example]({% slug sorting_treelist %})).
507
216
  */
@@ -513,6 +222,23 @@ export class TreeListComponent {
513
222
  get sort() {
514
223
  return this._sort;
515
224
  }
225
+ /**
226
+ * A function that defines how to track changes for the data rows.
227
+ *
228
+ * By default, the TreeList tracks changes by the index of the data item.
229
+ * Edited rows are tracked by reference.
230
+ *
231
+ */
232
+ trackBy = defaultTrackBy;
233
+ /**
234
+ * The descriptor by which the data will be filtered ([see examples]({% slug filtering_treelist %})).
235
+ */
236
+ filter;
237
+ /**
238
+ * If set to `true`, the treelist will render only the columns in the current viewport.
239
+ * @default false
240
+ */
241
+ virtualColumns = false;
516
242
  /**
517
243
  * @hidden
518
244
  */
@@ -540,6 +266,28 @@ export class TreeListComponent {
540
266
  get marqueeSelection() {
541
267
  return this.selectionService.enableMarquee;
542
268
  }
269
+ /**
270
+ * Enables the [filtering]({% slug filtering_treelist %}) of the TreeList columns that have their `field` option set.
271
+ */
272
+ filterable = false;
273
+ /**
274
+ * Enables the [sorting]({% slug sorting_treelist %}) of the TreeList columns that have their `field` option set.
275
+ */
276
+ sortable = false;
277
+ /**
278
+ * Configures the pager of the TreeList ([see example]({% slug paging_treelist %})).
279
+ *
280
+ */
281
+ pageable = false;
282
+ get normalizedPageableSettings() {
283
+ return normalize(this.pageable);
284
+ }
285
+ /**
286
+ * If set to `true`, the user can use dedicated shortcuts to interact with the TreeList.
287
+ * By default, navigation is disabled and the TreeList content is accessible in the normal tab sequence.
288
+ * @default false
289
+ */
290
+ navigable = false;
543
291
  /**
544
292
  * @hidden
545
293
  *
@@ -554,6 +302,16 @@ export class TreeListComponent {
554
302
  get navigatable() {
555
303
  return this.navigable;
556
304
  }
305
+ /**
306
+ * Indicates whether the TreeList columns will be resized during initialization so that
307
+ * they fit their headers and row content. Defaults to `false`.
308
+ * Columns with `autoSize` set to `false` are excluded.
309
+ * To dynamically update the column width to match the new content,
310
+ * refer to [this example]({% slug resizing_columns_treelist %}).
311
+ *
312
+ * @default false
313
+ */
314
+ autoSize = false;
557
315
  /**
558
316
  * Defines a function that is executed for every data row in the component.
559
317
  *
@@ -579,6 +337,40 @@ export class TreeListComponent {
579
337
  get activeRow() {
580
338
  return this.navigationService.activeRow;
581
339
  }
340
+ /**
341
+ * If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells
342
+ * ([see example]({% slug resizing_columns_treelist %})).
343
+ *
344
+ * @default false
345
+ */
346
+ resizable = false;
347
+ /**
348
+ * If set to `true`, the user can reorder columns by dragging their header cells
349
+ * ([see example]({% slug reordering_columns_treelist %})).
350
+ *
351
+ * @default false
352
+ */
353
+ reorderable = false;
354
+ /**
355
+ * Specifies if the loading indicator of the TreeList will be displayed ([see example]({% slug databinding_treelist %})).
356
+ *
357
+ * @default false
358
+ */
359
+ loading = false;
360
+ /**
361
+ * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_treelist %})).
362
+ *
363
+ * @default false
364
+ */
365
+ columnMenu = false;
366
+ /**
367
+ * Specifies if the header of the treelist will be hidden. The header is visible by default.
368
+ *
369
+ * The header includes column headers and the [filter row](slug:filter_row_treelist).
370
+ *
371
+ * @default false
372
+ */
373
+ hideHeader = false;
582
374
  /**
583
375
  * The name of the field which contains the unique identifier of the node.
584
376
  *
@@ -628,6 +420,121 @@ export class TreeListComponent {
628
420
  get rowReorderable() {
629
421
  return this._rowReorderable;
630
422
  }
423
+ /**
424
+ * Fires when the TreeList selection is changed.
425
+ */
426
+ selectionChange = new EventEmitter();
427
+ /**
428
+ * Fires when the TreeList filter is modified through the UI.
429
+ * You have to handle the event yourself and filter the data.
430
+ */
431
+ filterChange = new EventEmitter();
432
+ /**
433
+ * Fires when the page of the TreeList is changed ([see example]({% slug paging_treelist %})).
434
+ * You have to handle the event yourself and page the data.
435
+ */
436
+ pageChange = new EventEmitter();
437
+ /**
438
+ * Fires when the sorting of the TreeList is changed ([see example]({% slug sorting_treelist %})).
439
+ * You have to handle the event yourself and sort the data.
440
+ */
441
+ sortChange = new EventEmitter();
442
+ /**
443
+ * Fires when the data state of the TreeList is changed.
444
+ */
445
+ dataStateChange = new EventEmitter();
446
+ /**
447
+ * Fires when the user clicks the **Edit** command button to edit a row
448
+ * ([see example]({% slug editing_template_forms_treelist %}#toc-editing-records)).
449
+ */
450
+ edit = new EventEmitter();
451
+ /**
452
+ * Fires when the user clicks the **Cancel** command button to close a row
453
+ * ([see example]({% slug editing_template_forms_treelist %}#toc-cancelling-editing)).
454
+ */
455
+ cancel = new EventEmitter();
456
+ /**
457
+ * Fires when the user clicks the **Save** command button to save changes in a row
458
+ * ([see example]({% slug editing_template_forms_treelist %}#toc-saving-records)).
459
+ */
460
+ save = new EventEmitter();
461
+ /**
462
+ * Fires when the user clicks the **Remove** command button to remove a row
463
+ * ([see example]({% slug editing_template_forms_treelist %}#toc-removing-records)).
464
+ */
465
+ remove = new EventEmitter();
466
+ /**
467
+ * Fires when the user clicks the **Add** command button to add a new row
468
+ * ([see example]({% slug editing_template_forms_treelist %}#toc-adding-records)).
469
+ */
470
+ add = new EventEmitter();
471
+ /**
472
+ * Fires when the user leaves an edited cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).
473
+ */
474
+ cellClose = new EventEmitter();
475
+ /**
476
+ * Fires when the user clicks a cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).
477
+ */
478
+ cellClick = new EventEmitter();
479
+ /**
480
+ * Fires when the user clicks the **Export to PDF** command button.
481
+ */
482
+ pdfExport = new EventEmitter();
483
+ /**
484
+ * Fires when the user clicks the **Export to Excel** command button.
485
+ */
486
+ excelExport = new EventEmitter();
487
+ /**
488
+ * Fires when the user completes the resizing of the column.
489
+ */
490
+ columnResize = new EventEmitter();
491
+ /**
492
+ * Fires when the user completes the reordering of the column.
493
+ */
494
+ columnReorder = new EventEmitter();
495
+ /**
496
+ * Fires when the user changes the visibility of the columns from the column menu or column chooser.
497
+ */
498
+ columnVisibilityChange = new EventEmitter();
499
+ /**
500
+ * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
501
+ */
502
+ columnLockedChange = new EventEmitter();
503
+ /**
504
+ * Fires when the user scrolls to the last record on the page and enables endless scrolling
505
+ * ([see example]({% slug scrollmmodes_treelist %}#toc-endless-scrolling)).
506
+ * You have to handle the event yourself and page the data.
507
+ */
508
+ scrollBottom = new EventEmitter();
509
+ /**
510
+ * Fires when the treelist content is scrolled.
511
+ * For performance reasons, the event is triggered outside the Angular zone. Enter the Angular zone if you make any changes that require change detection.
512
+ */
513
+ contentScroll = new EventEmitter();
514
+ /**
515
+ * Fires when an item is expanded.
516
+ */
517
+ expandEvent = new EventEmitter();
518
+ /**
519
+ * Fires when an item is collapsed.
520
+ */
521
+ collapseEvent = new EventEmitter();
522
+ /**
523
+ * @hidden
524
+ *
525
+ * Emits when the expand or collapse events are fired.
526
+ * Used by the expand directive and the Gantt component.
527
+ */
528
+ expandStateChange = new EventEmitter();
529
+ /**
530
+ * Fires when the user drops the dragged row and reordering is performed.
531
+ * Emits the [RowReorderEvent]({% slug api_treelist_rowreorderevent %}).
532
+ */
533
+ rowReorder = new EventEmitter();
534
+ /**
535
+ * @hidden
536
+ */
537
+ columnOrderChange = new EventEmitter();
631
538
  /**
632
539
  * @hidden
633
540
  */
@@ -641,9 +548,14 @@ export class TreeListComponent {
641
548
  get columnsRef() {
642
549
  return this._columnsRef;
643
550
  }
551
+ /**
552
+ * A query list of all declared columns.
553
+ */
554
+ columns = new QueryList();
644
555
  get dir() {
645
556
  return this.direction;
646
557
  }
558
+ hostClasses = true;
647
559
  get lockedClasses() {
648
560
  return this.lockedLeafColumns.length > 0;
649
561
  }
@@ -653,6 +565,7 @@ export class TreeListComponent {
653
565
  get noScrollbarClass() {
654
566
  return this.scrollbarWidth === 0;
655
567
  }
568
+ noRecordsTemplateChildren;
656
569
  get noRecordsTemplate() {
657
570
  if (this._customNoRecordsTemplate) {
658
571
  return this._customNoRecordsTemplate;
@@ -662,6 +575,7 @@ export class TreeListComponent {
662
575
  set noRecordsTemplate(customNoRecordsTemplate) {
663
576
  this._customNoRecordsTemplate = customNoRecordsTemplate;
664
577
  }
578
+ pagerTemplateChildren;
665
579
  get pagerTemplate() {
666
580
  if (this._customPagerTemplate) {
667
581
  return this._customPagerTemplate;
@@ -671,6 +585,7 @@ export class TreeListComponent {
671
585
  set pagerTemplate(customPagerTemplate) {
672
586
  this._customPagerTemplate = customPagerTemplate;
673
587
  }
588
+ toolbarTemplateChildren;
674
589
  get toolbarTemplate() {
675
590
  if (this._customToolbarTemplate) {
676
591
  return this._customToolbarTemplate;
@@ -680,6 +595,13 @@ export class TreeListComponent {
680
595
  set toolbarTemplate(customToolbarTemplate) {
681
596
  this._customToolbarTemplate = customToolbarTemplate;
682
597
  }
598
+ columnMenuTemplates;
599
+ lockedHeader;
600
+ header;
601
+ footer = new QueryList();
602
+ ariaRoot;
603
+ dragTargetContainer;
604
+ dropTargetContainer;
683
605
  get scrollbarWidth() {
684
606
  return this.supportService.scrollbarWidth;
685
607
  }
@@ -692,6 +614,14 @@ export class TreeListComponent {
692
614
  const left = this.rtl ? padding : 0;
693
615
  return `0 ${right} 0 ${left}`;
694
616
  }
617
+ columnMenuOptions;
618
+ columnList;
619
+ columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
620
+ if (!isUniversal()) {
621
+ column.matchesMedia = this.matchesMedia(column);
622
+ }
623
+ return column.isVisible;
624
+ }));
695
625
  get showLoading() {
696
626
  return this.loading || (isObservable(this._data) && !this.loadedData) || this.excelService.loading;
697
627
  }
@@ -793,6 +723,146 @@ export class TreeListComponent {
793
723
  this.expandStateService.isExpanded = value || defaultExpanded;
794
724
  this.expandIcons = Boolean(value);
795
725
  }
726
+ idGetter = getter(undefined);
727
+ localEditService = new LocalEditService();
728
+ view;
729
+ expandIcons;
730
+ ariaRootId = `k-${guid()}`;
731
+ dataChanged = false;
732
+ loadedData;
733
+ _fetchChildren;
734
+ _hasChildren = (() => false);
735
+ subscriptions = new Subscription();
736
+ dataLoadedSubscription;
737
+ focusElementSubscription;
738
+ rowReorderSubscription;
739
+ detachElementEventHandlers;
740
+ rtl = false;
741
+ shouldGenerateColumns = true;
742
+ direction;
743
+ _data = [];
744
+ _sort = new Array();
745
+ _skip = 0;
746
+ _columnsRef;
747
+ cachedWindowWidth = 0;
748
+ _customNoRecordsTemplate;
749
+ _customPagerTemplate;
750
+ _customToolbarTemplate;
751
+ leafViewportColumns;
752
+ viewportColumns;
753
+ pageChangeTimeout;
754
+ _rowReorderable = false;
755
+ 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) {
756
+ this.supportService = supportService;
757
+ this.wrapper = wrapper;
758
+ this.changeNotification = changeNotification;
759
+ this.editService = editService;
760
+ this.filterService = filterService;
761
+ this.pdfService = pdfService;
762
+ this.responsiveService = responsiveService;
763
+ this.renderer = renderer;
764
+ this.excelService = excelService;
765
+ this.ngZone = ngZone;
766
+ this.scrollSyncService = scrollSyncService;
767
+ this.domEvents = domEvents;
768
+ this.columnResizingService = columnResizingService;
769
+ this.changeDetectorRef = changeDetectorRef;
770
+ this.columnReorderService = columnReorderService;
771
+ this.columnInfoService = columnInfoService;
772
+ this.navigationService = navigationService;
773
+ this.sortService = sortService;
774
+ this.scrollRequestService = scrollRequestService;
775
+ this.expandStateService = expandStateService;
776
+ this.optionChanges = optionChanges;
777
+ this.selectionService = selectionService;
778
+ this.localization = localization;
779
+ this.ctx = ctx;
780
+ this.rowReorderService = rowReorderService;
781
+ validatePackage(packageMetadata);
782
+ this.subscriptions.add(localization.changes.subscribe(({ rtl }) => {
783
+ this.rtl = rtl;
784
+ this.direction = this.rtl ? 'rtl' : 'ltr';
785
+ }));
786
+ this.view = new ViewCollection(this.viewFieldAccessor.bind(this), this.expandStateService, this.editService, this.selectionService);
787
+ this.selectionService.init(this);
788
+ this.ctx.treelist = this;
789
+ this.subscriptions.add(this.selectionService.changes.subscribe((args) => {
790
+ if (hasObservers(this.selectionChange)) {
791
+ this.ngZone.run(() => {
792
+ args.sender = this;
793
+ this.selectionChange.emit(args);
794
+ this.selectionService.updateSelectedState();
795
+ this.changeDetectorRef.markForCheck();
796
+ });
797
+ }
798
+ }));
799
+ this.columnInfoService.init(this.columnsContainer, () => this.columnList);
800
+ this.subscriptions.add(this.columnInfoService.visibilityChange.subscribe((changed) => {
801
+ this.columnVisibilityChange.emit(new ColumnVisibilityChangeEvent(changed));
802
+ this.changeDetectorRef.markForCheck();
803
+ }));
804
+ this.subscriptions.add(this.columnInfoService.lockedChange.subscribe((changed) => {
805
+ this.columnLockedChange.emit(new ColumnLockedChangeEvent(changed));
806
+ this.changeDetectorRef.markForCheck();
807
+ }));
808
+ this.subscriptions.add(merge(this.optionChanges.columns, this.optionChanges.options).subscribe(() => {
809
+ this.changeDetectorRef.markForCheck();
810
+ }));
811
+ this.subscriptions.add(this.filterService.changes.subscribe(x => {
812
+ this.filterChange.emit(x);
813
+ }));
814
+ this.subscriptions.add(this.sortService.changes.subscribe(x => {
815
+ this.sortChange.emit(x);
816
+ }));
817
+ this.attachStateChangesEmitter();
818
+ this.attachEditHandlers();
819
+ this.attachDomEventHandlers();
820
+ this.subscriptions.add(this.pdfService.exportClick.subscribe(this.emitPDFExportEvent.bind(this)));
821
+ this.subscriptions.add(this.excelService.exportClick.subscribe(this.saveAsExcel.bind(this)));
822
+ this.subscriptions.add(this.excelService.loadingChange.subscribe(() => {
823
+ this.changeDetectorRef.detectChanges();
824
+ }));
825
+ this.columnsContainerChange();
826
+ this.handleColumnResize();
827
+ this.columnList = new ColumnList(this.columns);
828
+ this.subscriptions.add(this.columnReorderService
829
+ .changes.subscribe(this.reorder.bind(this)));
830
+ this.subscriptions.add(this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this)));
831
+ this.subscriptions.add(this.expandStateService.changes.subscribe((args) => {
832
+ if (args.expand) {
833
+ this.expandEvent.emit(args);
834
+ }
835
+ else {
836
+ this.collapseEvent.emit(args);
837
+ }
838
+ if (!args.isDefaultPrevented()) {
839
+ this.changeDetectorRef.markForCheck();
840
+ this.view.clear();
841
+ this.expandStateChange.emit(args);
842
+ }
843
+ if (this.rowReorderable) {
844
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
845
+ this.notifyReorderContainers();
846
+ });
847
+ }
848
+ }));
849
+ this.subscriptions.add(this.view.childrenLoaded.subscribe(() => {
850
+ this.changeDetectorRef.detectChanges();
851
+ }));
852
+ this.subscriptions.add(this.view.resetPage.subscribe(() => {
853
+ if (this.skip > 0 && hasObservers(this.pageChange)) {
854
+ // don't think there is a way to avoid this
855
+ // every callback in which the view can be computed is already passed the change detection
856
+ // computing the current page in advance also does not seem feasible for such a rare case
857
+ this.pageChangeTimeout = setTimeout(() => {
858
+ this.pageChange.emit({ skip: 0, take: this.pageSize });
859
+ }, 0);
860
+ }
861
+ this.skip = 0;
862
+ }));
863
+ this.dataLoaded = this.dataLoaded.bind(this);
864
+ this.editService.idGetter = this.idGetter;
865
+ }
796
866
  /**
797
867
  * @hidden
798
868
  */
@@ -850,6 +920,10 @@ export class TreeListComponent {
850
920
  this.updateNavigationMetadata();
851
921
  this.applyAutoSize();
852
922
  this.subscriptions.add(this.pagerTemplateChildren.changes.subscribe(() => this.changeDetectorRef.markForCheck()));
923
+ const toolbarComponentWrapper = this.wrapper?.nativeElement?.querySelector('kendo-toolbar');
924
+ if (toolbarComponentWrapper) {
925
+ this.renderer.addClass(toolbarComponentWrapper, 'k-grid-toolbar');
926
+ }
853
927
  }
854
928
  ngAfterContentChecked() {
855
929
  if (this.dataChanged) {
@@ -902,6 +976,10 @@ export class TreeListComponent {
902
976
  getDefaultSelectors(type) {
903
977
  return this.rowReorderService.defaultSelectors[type];
904
978
  }
979
+ /**
980
+ * @hidden
981
+ */
982
+ treeListData = () => { return this.view; };
905
983
  /**
906
984
  * @hidden
907
985
  */
@@ -1409,6 +1487,10 @@ export class TreeListComponent {
1409
1487
  if ((this.rowHeight) && !this.isVirtual) {
1410
1488
  throw new Error('Row height setting requires virtual scrolling mode to be enabled.');
1411
1489
  }
1490
+ if (this.wrapper?.nativeElement?.querySelector('kendo-toolbar') && this.toolbarTemplate) {
1491
+ console.warn(`Defining both a toolbar template and a ToolBarComponent within the TreeList is not supported.
1492
+ Please use either the ToolBarComponent or a custom template.`);
1493
+ }
1412
1494
  validateColumnsField(this.columnList);
1413
1495
  }
1414
1496
  }
@@ -1617,6 +1699,7 @@ export class TreeListComponent {
1617
1699
  throw new Error('The TreeList should be configured as [navigable]="true" to control focus');
1618
1700
  }
1619
1701
  }
1702
+ _rowClass = () => null;
1620
1703
  navigationMetadata() {
1621
1704
  const isVirtual = this.isVirtual;
1622
1705
  const filterRowOffset = hasFilterRow(this.filterable) ? 1 : 0;
@@ -1700,54 +1783,53 @@ export class TreeListComponent {
1700
1783
  this.dragTargetContainer?.notify();
1701
1784
  this.dropTargetContainer?.notify();
1702
1785
  }
1703
- }
1704
- TreeListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TreeListComponent, deps: [{ token: i1.BrowserSupportService }, { token: i0.ElementRef }, { token: i2.ChangeNotificationService }, { token: i3.EditService }, { token: i4.FilterService }, { token: i5.PDFService }, { token: i6.ResponsiveService }, { token: i0.Renderer2 }, { token: i7.ExcelService }, { token: i0.NgZone }, { token: i8.ScrollSyncService }, { token: i9.DomEventsService }, { token: i10.ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: i11.ColumnReorderService }, { token: i12.ColumnInfoService }, { token: i13.NavigationService }, { token: i14.SortService }, { token: i15.ScrollRequestService }, { token: i16.ExpandStateService }, { token: i17.OptionChangesService }, { token: i18.SelectionService }, { token: i19.LocalizationService }, { token: i20.ContextService }, { token: i21.RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
1705
- TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TreeListComponent, isStandalone: true, 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: [
1706
- BrowserSupportService,
1707
- LocalizationService,
1708
- ColumnInfoService,
1709
- ChangeNotificationService,
1710
- EditService,
1711
- PDFService,
1712
- SuspendService,
1713
- {
1714
- provide: L10N_PREFIX,
1715
- useValue: 'kendo.treelist'
1716
- },
1717
- FilterService,
1718
- ResponsiveService,
1719
- PagerContextService,
1720
- ExcelService,
1721
- ScrollSyncService,
1722
- ResizeService,
1723
- DomEventsService,
1724
- ColumnResizingService,
1725
- SinglePopupService,
1726
- DragAndDropService,
1727
- DragHintService,
1728
- DropCueService,
1729
- ColumnReorderService,
1730
- NavigationService,
1731
- FocusRoot,
1732
- IdService,
1733
- ScrollRequestService,
1734
- SortService,
1735
- ExpandStateService,
1736
- OptionChangesService,
1737
- SelectionService,
1738
- {
1739
- provide: DataBoundTreeComponent,
1740
- useExisting: forwardRef(() => TreeListComponent)
1741
- },
1742
- {
1743
- provide: ExpandableTreeComponent,
1744
- useExisting: forwardRef(() => TreeListComponent)
1745
- },
1746
- ContextService,
1747
- RowReorderService
1748
- ], 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: `
1786
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeListComponent, deps: [{ token: i1.BrowserSupportService }, { token: i0.ElementRef }, { token: i2.ChangeNotificationService }, { token: i3.EditService }, { token: i4.FilterService }, { token: i5.PDFService }, { token: i6.ResponsiveService }, { token: i0.Renderer2 }, { token: i7.ExcelService }, { token: i0.NgZone }, { token: i8.ScrollSyncService }, { token: i9.DomEventsService }, { token: i10.ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: i11.ColumnReorderService }, { token: i12.ColumnInfoService }, { token: i13.NavigationService }, { token: i14.SortService }, { token: i15.ScrollRequestService }, { token: i16.ExpandStateService }, { token: i17.OptionChangesService }, { token: i18.SelectionService }, { token: i19.LocalizationService }, { token: i20.ContextService }, { token: i21.RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
1787
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TreeListComponent, isStandalone: true, 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: [
1788
+ BrowserSupportService,
1789
+ LocalizationService,
1790
+ ColumnInfoService,
1791
+ ChangeNotificationService,
1792
+ EditService,
1793
+ PDFService,
1794
+ SuspendService,
1795
+ {
1796
+ provide: L10N_PREFIX,
1797
+ useValue: 'kendo.treelist'
1798
+ },
1799
+ FilterService,
1800
+ ResponsiveService,
1801
+ PagerContextService,
1802
+ PagerNavigationService,
1803
+ ExcelService,
1804
+ ScrollSyncService,
1805
+ ResizeService,
1806
+ DomEventsService,
1807
+ ColumnResizingService,
1808
+ SinglePopupService,
1809
+ DragAndDropService,
1810
+ DragHintService,
1811
+ DropCueService,
1812
+ ColumnReorderService,
1813
+ NavigationService,
1814
+ FocusRoot,
1815
+ IdService,
1816
+ ScrollRequestService,
1817
+ SortService,
1818
+ ExpandStateService,
1819
+ OptionChangesService,
1820
+ SelectionService,
1821
+ {
1822
+ provide: DataBoundTreeComponent,
1823
+ useExisting: forwardRef(() => TreeListComponent)
1824
+ },
1825
+ {
1826
+ provide: ExpandableTreeComponent,
1827
+ useExisting: forwardRef(() => TreeListComponent)
1828
+ },
1829
+ ContextService,
1830
+ RowReorderService
1831
+ ], 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: `
1749
1832
  <ng-container kendoTreeListLocalizedMessages
1750
-
1751
1833
  i18n-noRecords="kendo.treelist.noRecords|The label visible in the TreeList when there are no records"
1752
1834
  noRecords="No records available."
1753
1835
 
@@ -1781,6 +1863,9 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
1781
1863
  i18n-pagerItemsTotal="kendo.treelist.pagerItemsTotal|The label after the total items count in the TreeList pager"
1782
1864
  pagerItemsTotal="items total"
1783
1865
 
1866
+ i18n-pagerInputLabel="kendo.treelist.pagerInputLabel|The text of the aria-label attribute applied to the input element for entering the page number"
1867
+ pagerInputLabel="Type a page number"
1868
+
1784
1869
  i18n-filterCellOperatorLabel="kendo.treelist.filterCellOperatorLabel|The label of the filter cell operators dropdown"
1785
1870
  filterCellOperatorLabel="{{ 'Filter cell operators for {columnName}' }}"
1786
1871
 
@@ -1901,8 +1986,8 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
1901
1986
  i18n-columnsReset="kendo.treelist.columnsReset|The text shown in the column menu or column chooser for the columns reset button"
1902
1987
  columnsReset="Reset"
1903
1988
 
1904
- i18n-selectPage="kendo.treelist.selectPage|The text of the title and aria-label attributes applied to the page chooser in the TreeList Pager"
1905
- selectPage="Select page"
1989
+ i18n-pagerSelectPage="kendo.treelist.pagerSelectPage|The text of the title and aria-label attributes applied to the page chooser in the TreeList Pager"
1990
+ pagerSelectPage="Select page"
1906
1991
 
1907
1992
  i18n-topToolbarLabel="kendo.treelist.topToolbarLabel|The label of the TreeList top toolbar"
1908
1993
  topToolbarLabel="Top toolbar"
@@ -1926,8 +2011,8 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
1926
2011
  [navigable]="navigable"
1927
2012
  class="k-toolbar k-grid-toolbar k-toolbar-md"
1928
2013
  [attr.aria-label]="messageFor('topToolbarLabel')"
1929
- [attr.aria-controls]="ariaRootId">
1930
- </kendo-treelist-toolbar>
2014
+ [attr.aria-controls]="ariaRootId"></kendo-treelist-toolbar>
2015
+ <ng-content select="kendo-toolbar"></ng-content>
1931
2016
  <div #ariaRoot
1932
2017
  class="k-grid-aria-root"
1933
2018
  role="treegrid"
@@ -2092,18 +2177,41 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
2092
2177
  </div>
2093
2178
  </ng-template>
2094
2179
  </div>
2095
- <kendo-treelist-pager
2180
+ <kendo-pager
2181
+ #pager
2096
2182
  *ngIf="showPager"
2097
- [template]="pagerTemplate"
2183
+ class="k-grid-pager"
2184
+ [navigable]="navigable"
2098
2185
  [pageSize]="pageSize"
2099
2186
  [total]="view.totalVisible"
2100
- [allCount]="view.total"
2101
2187
  [skip]="skip"
2102
- [navigable]="navigable"
2103
- [attr.aria-controls]="ariaRootId"
2104
- [options]="pageable"
2188
+ [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
2189
+ [buttonCount]="normalizedPageableSettings.buttonCount"
2190
+ [info]="normalizedPageableSettings.info"
2191
+ [pageSizeValues]="normalizedPageableSettings.pageSizes"
2192
+ [previousNext]="normalizedPageableSettings.previousNext"
2193
+ [type]="normalizedPageableSettings.type"
2105
2194
  (pageChange)="notifyPageChange('pager', $event)">
2106
- </kendo-treelist-pager>
2195
+ <ng-template kendoPagerTemplate>
2196
+ <ng-container
2197
+ [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
2198
+ [ngTemplateOutletContext]="pager.templateContext"></ng-container>
2199
+ </ng-template>
2200
+ <kendo-pager-messages
2201
+ [ariaLabel]="messageFor('pagerLabel')"
2202
+ [firstPage]="messageFor('pagerFirstPage')"
2203
+ [inputLabel]="messageFor('pagerInputLabel')"
2204
+ [previousPage]="messageFor('pagerPreviousPage')"
2205
+ [nextPage]="messageFor('pagerNextPage')"
2206
+ [lastPage]="messageFor('pagerLastPage')"
2207
+ [selectPage]="messageFor('pagerSelectPage')"
2208
+ [page]="messageFor('pagerPage')"
2209
+ [itemsPerPage]="messageFor('pagerItemsPerPage')"
2210
+ [items]="messageFor('pagerItems')"
2211
+ [of]="messageFor('pagerOf')"
2212
+ [pageNumberInputTitle]="messageFor('pagerPageNumberInputTitle')">
2213
+ </kendo-pager-messages>
2214
+ </kendo-pager>
2107
2215
  <kendo-treelist-toolbar
2108
2216
  *ngIf="showBottomToolbar"
2109
2217
  class="k-toolbar k-grid-toolbar k-grid-toolbar-bottom k-toolbar-md"
@@ -2121,8 +2229,40 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
2121
2229
  </kendo-icon-wrapper>
2122
2230
  {{hintText}}
2123
2231
  </ng-template>
2124
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoTreeListLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-treelist-toolbar", inputs: ["position", "navigable"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: TableDirective, selector: "[kendoTreeListResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { kind: "component", type: HeaderComponent, selector: "[kendoTreeListHeader]", inputs: ["totalColumnLevels", "columns", "scrollable", "filterable", "sort", "filter", "sortable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { kind: "component", 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"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: MarqueeDirective, selector: "[kendoTreeListSelectionMarquee]" }, { kind: "component", type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoTreeListLoading]" }, { kind: "component", type: PagerComponent, selector: "kendo-treelist-pager", inputs: ["allCount", "total", "skip", "navigable", "pageSize", "options", "template"], outputs: ["pageChange"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TreeListComponent, decorators: [{
2232
+
2233
+ <ng-template #defaultPager>
2234
+ <div class="k-pager-numbers-wrap">
2235
+ <kendo-pager-prev-buttons *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-prev-buttons>
2236
+ <kendo-pager-numeric-buttons
2237
+ *ngIf="normalizedPageableSettings.type === 'numeric' && normalizedPageableSettings.buttonCount > 0"
2238
+ [buttonCount]="normalizedPageableSettings.buttonCount">
2239
+ </kendo-pager-numeric-buttons>
2240
+ <kendo-pager-input *ngIf="normalizedPageableSettings.type === 'input'"></kendo-pager-input>
2241
+ <kendo-pager-next-buttons *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-next-buttons>
2242
+ </div>
2243
+ <kendo-pager-page-sizes *ngIf="normalizedPageableSettings.pageSizes"
2244
+ [pageSizes]="normalizedPageableSettings.pageSizes">
2245
+ </kendo-pager-page-sizes>
2246
+ <kendo-pager-info *ngIf="normalizedPageableSettings.info">
2247
+ </kendo-pager-info>
2248
+ <kendo-pager-messages
2249
+ [ariaLabel]="messageFor('pagerLabel')"
2250
+ [firstPage]="messageFor('pagerFirstPage')"
2251
+ [inputLabel]="messageFor('pagerInputLabel')"
2252
+ [previousPage]="messageFor('pagerPreviousPage')"
2253
+ [nextPage]="messageFor('pagerNextPage')"
2254
+ [lastPage]="messageFor('pagerLastPage')"
2255
+ [selectPage]="messageFor('pagerSelectPage')"
2256
+ [page]="messageFor('pagerPage')"
2257
+ [itemsPerPage]="messageFor('pagerItemsPerPage')"
2258
+ [items]="messageFor('pagerItems')"
2259
+ [of]="messageFor('pagerOf')"
2260
+ [pageNumberInputTitle]="messageFor('pagerPageNumberInputTitle')">
2261
+ </kendo-pager-messages>
2262
+ </ng-template>
2263
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoTreeListLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-treelist-toolbar", inputs: ["position", "navigable"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: TableDirective, selector: "[kendoTreeListResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { kind: "component", type: HeaderComponent, selector: "[kendoTreeListHeader]", inputs: ["totalColumnLevels", "columns", "scrollable", "filterable", "sort", "filter", "sortable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { kind: "component", 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"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: MarqueeDirective, selector: "[kendoTreeListSelectionMarquee]" }, { kind: "component", type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoTreeListLoading]" }, { kind: "component", type: i22.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i22.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i22.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: i22.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i22.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i22.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: i22.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i22.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i22.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2264
+ }
2265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeListComponent, decorators: [{
2126
2266
  type: Component,
2127
2267
  args: [{
2128
2268
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -2143,6 +2283,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2143
2283
  FilterService,
2144
2284
  ResponsiveService,
2145
2285
  PagerContextService,
2286
+ PagerNavigationService,
2146
2287
  ExcelService,
2147
2288
  ScrollSyncService,
2148
2289
  ResizeService,
@@ -2175,7 +2316,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2175
2316
  selector: 'kendo-treelist',
2176
2317
  template: `
2177
2318
  <ng-container kendoTreeListLocalizedMessages
2178
-
2179
2319
  i18n-noRecords="kendo.treelist.noRecords|The label visible in the TreeList when there are no records"
2180
2320
  noRecords="No records available."
2181
2321
 
@@ -2209,6 +2349,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2209
2349
  i18n-pagerItemsTotal="kendo.treelist.pagerItemsTotal|The label after the total items count in the TreeList pager"
2210
2350
  pagerItemsTotal="items total"
2211
2351
 
2352
+ i18n-pagerInputLabel="kendo.treelist.pagerInputLabel|The text of the aria-label attribute applied to the input element for entering the page number"
2353
+ pagerInputLabel="Type a page number"
2354
+
2212
2355
  i18n-filterCellOperatorLabel="kendo.treelist.filterCellOperatorLabel|The label of the filter cell operators dropdown"
2213
2356
  filterCellOperatorLabel="{{ 'Filter cell operators for {columnName}' }}"
2214
2357
 
@@ -2329,8 +2472,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2329
2472
  i18n-columnsReset="kendo.treelist.columnsReset|The text shown in the column menu or column chooser for the columns reset button"
2330
2473
  columnsReset="Reset"
2331
2474
 
2332
- i18n-selectPage="kendo.treelist.selectPage|The text of the title and aria-label attributes applied to the page chooser in the TreeList Pager"
2333
- selectPage="Select page"
2475
+ i18n-pagerSelectPage="kendo.treelist.pagerSelectPage|The text of the title and aria-label attributes applied to the page chooser in the TreeList Pager"
2476
+ pagerSelectPage="Select page"
2334
2477
 
2335
2478
  i18n-topToolbarLabel="kendo.treelist.topToolbarLabel|The label of the TreeList top toolbar"
2336
2479
  topToolbarLabel="Top toolbar"
@@ -2354,8 +2497,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2354
2497
  [navigable]="navigable"
2355
2498
  class="k-toolbar k-grid-toolbar k-toolbar-md"
2356
2499
  [attr.aria-label]="messageFor('topToolbarLabel')"
2357
- [attr.aria-controls]="ariaRootId">
2358
- </kendo-treelist-toolbar>
2500
+ [attr.aria-controls]="ariaRootId"></kendo-treelist-toolbar>
2501
+ <ng-content select="kendo-toolbar"></ng-content>
2359
2502
  <div #ariaRoot
2360
2503
  class="k-grid-aria-root"
2361
2504
  role="treegrid"
@@ -2520,18 +2663,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2520
2663
  </div>
2521
2664
  </ng-template>
2522
2665
  </div>
2523
- <kendo-treelist-pager
2666
+ <kendo-pager
2667
+ #pager
2524
2668
  *ngIf="showPager"
2525
- [template]="pagerTemplate"
2669
+ class="k-grid-pager"
2670
+ [navigable]="navigable"
2526
2671
  [pageSize]="pageSize"
2527
2672
  [total]="view.totalVisible"
2528
- [allCount]="view.total"
2529
2673
  [skip]="skip"
2530
- [navigable]="navigable"
2531
- [attr.aria-controls]="ariaRootId"
2532
- [options]="pageable"
2674
+ [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
2675
+ [buttonCount]="normalizedPageableSettings.buttonCount"
2676
+ [info]="normalizedPageableSettings.info"
2677
+ [pageSizeValues]="normalizedPageableSettings.pageSizes"
2678
+ [previousNext]="normalizedPageableSettings.previousNext"
2679
+ [type]="normalizedPageableSettings.type"
2533
2680
  (pageChange)="notifyPageChange('pager', $event)">
2534
- </kendo-treelist-pager>
2681
+ <ng-template kendoPagerTemplate>
2682
+ <ng-container
2683
+ [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
2684
+ [ngTemplateOutletContext]="pager.templateContext"></ng-container>
2685
+ </ng-template>
2686
+ <kendo-pager-messages
2687
+ [ariaLabel]="messageFor('pagerLabel')"
2688
+ [firstPage]="messageFor('pagerFirstPage')"
2689
+ [inputLabel]="messageFor('pagerInputLabel')"
2690
+ [previousPage]="messageFor('pagerPreviousPage')"
2691
+ [nextPage]="messageFor('pagerNextPage')"
2692
+ [lastPage]="messageFor('pagerLastPage')"
2693
+ [selectPage]="messageFor('pagerSelectPage')"
2694
+ [page]="messageFor('pagerPage')"
2695
+ [itemsPerPage]="messageFor('pagerItemsPerPage')"
2696
+ [items]="messageFor('pagerItems')"
2697
+ [of]="messageFor('pagerOf')"
2698
+ [pageNumberInputTitle]="messageFor('pagerPageNumberInputTitle')">
2699
+ </kendo-pager-messages>
2700
+ </kendo-pager>
2535
2701
  <kendo-treelist-toolbar
2536
2702
  *ngIf="showBottomToolbar"
2537
2703
  class="k-toolbar k-grid-toolbar k-grid-toolbar-bottom k-toolbar-md"
@@ -2549,9 +2715,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2549
2715
  </kendo-icon-wrapper>
2550
2716
  {{hintText}}
2551
2717
  </ng-template>
2718
+
2719
+ <ng-template #defaultPager>
2720
+ <div class="k-pager-numbers-wrap">
2721
+ <kendo-pager-prev-buttons *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-prev-buttons>
2722
+ <kendo-pager-numeric-buttons
2723
+ *ngIf="normalizedPageableSettings.type === 'numeric' && normalizedPageableSettings.buttonCount > 0"
2724
+ [buttonCount]="normalizedPageableSettings.buttonCount">
2725
+ </kendo-pager-numeric-buttons>
2726
+ <kendo-pager-input *ngIf="normalizedPageableSettings.type === 'input'"></kendo-pager-input>
2727
+ <kendo-pager-next-buttons *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-next-buttons>
2728
+ </div>
2729
+ <kendo-pager-page-sizes *ngIf="normalizedPageableSettings.pageSizes"
2730
+ [pageSizes]="normalizedPageableSettings.pageSizes">
2731
+ </kendo-pager-page-sizes>
2732
+ <kendo-pager-info *ngIf="normalizedPageableSettings.info">
2733
+ </kendo-pager-info>
2734
+ <kendo-pager-messages
2735
+ [ariaLabel]="messageFor('pagerLabel')"
2736
+ [firstPage]="messageFor('pagerFirstPage')"
2737
+ [inputLabel]="messageFor('pagerInputLabel')"
2738
+ [previousPage]="messageFor('pagerPreviousPage')"
2739
+ [nextPage]="messageFor('pagerNextPage')"
2740
+ [lastPage]="messageFor('pagerLastPage')"
2741
+ [selectPage]="messageFor('pagerSelectPage')"
2742
+ [page]="messageFor('pagerPage')"
2743
+ [itemsPerPage]="messageFor('pagerItemsPerPage')"
2744
+ [items]="messageFor('pagerItems')"
2745
+ [of]="messageFor('pagerOf')"
2746
+ [pageNumberInputTitle]="messageFor('pagerPageNumberInputTitle')">
2747
+ </kendo-pager-messages>
2748
+ </ng-template>
2552
2749
  `,
2553
2750
  standalone: true,
2554
- imports: [LocalizedMessagesDirective, NgIf, ToolbarComponent, DragTargetContainerDirective, DropTargetContainerDirective, TableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective, ListComponent, DraggableDirective, MarqueeDirective, TableBodyComponent, LoadingComponent, PagerComponent, IconWrapperComponent]
2751
+ imports: [LocalizedMessagesDirective, NgIf, NgTemplateOutlet, ToolbarComponent, DragTargetContainerDirective, DropTargetContainerDirective,
2752
+ TableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective, ListComponent, DraggableDirective, MarqueeDirective,
2753
+ TableBodyComponent, LoadingComponent, ...KENDO_PAGER, IconWrapperComponent]
2555
2754
  }]
2556
2755
  }], ctorParameters: function () { return [{ type: i1.BrowserSupportService }, { type: i0.ElementRef }, { type: i2.ChangeNotificationService }, { type: i3.EditService }, { type: i4.FilterService }, { type: i5.PDFService }, { type: i6.ResponsiveService }, { type: i0.Renderer2 }, { type: i7.ExcelService }, { type: i0.NgZone }, { type: i8.ScrollSyncService }, { type: i9.DomEventsService }, { type: i10.ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: i11.ColumnReorderService }, { type: i12.ColumnInfoService }, { type: i13.NavigationService }, { type: i14.SortService }, { type: i15.ScrollRequestService }, { type: i16.ExpandStateService }, { type: i17.OptionChangesService }, { type: i18.SelectionService }, { type: i19.LocalizationService }, { type: i20.ContextService }, { type: i21.RowReorderService }]; }, propDecorators: { ariaLabel: [{
2557
2756
  type: Input,