@progress/kendo-angular-grid 17.0.0-develop.3 → 17.0.0-develop.30

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 (445) hide show
  1. package/README.md +46 -36
  2. package/aggregates/aggregate-types.d.ts +1 -1
  3. package/aggregates/status-bar.component.d.ts +1 -1
  4. package/column-menu/column-chooser-item-checked.directive.d.ts +1 -1
  5. package/column-menu/column-chooser.component.d.ts +1 -1
  6. package/column-menu/column-list.component.d.ts +1 -1
  7. package/column-menu/column-menu-autosize.component.d.ts +1 -1
  8. package/column-menu/column-menu-chooser.component.d.ts +1 -1
  9. package/column-menu/column-menu-filter.component.d.ts +1 -1
  10. package/column-menu/column-menu-item-base.d.ts +1 -1
  11. package/column-menu/column-menu-item.component.d.ts +1 -1
  12. package/column-menu/column-menu-item.directive.d.ts +1 -1
  13. package/column-menu/column-menu-position.component.d.ts +1 -1
  14. package/column-menu/column-menu.component.d.ts +1 -1
  15. package/column-resizing/column-handle.directive.d.ts +1 -1
  16. package/column-resizing/column-resize.interface.d.ts +3 -3
  17. package/column-resizing/table.directive.d.ts +1 -1
  18. package/columns/checkbox-column.component.d.ts +1 -1
  19. package/columns/column-base.d.ts +1 -1
  20. package/columns/column.component.d.ts +1 -1
  21. package/columns/reorder-column.component.d.ts +1 -1
  22. package/columns/sort-settings.d.ts +2 -2
  23. package/columns/span-column.component.d.ts +1 -1
  24. package/common/clipboard-types.d.ts +2 -2
  25. package/common/clipboard.directive.d.ts +1 -1
  26. package/common/create-form-group.d.ts +1 -1
  27. package/common/fetch-data-callback.d.ts +1 -1
  28. package/common/remove-confirmation.d.ts +1 -1
  29. package/common/size-options.d.ts +1 -1
  30. package/data/data.iterators.d.ts +1 -1
  31. package/data/grid-item.interface.d.ts +1 -1
  32. package/databinding.directive.d.ts +1 -1
  33. package/directives.d.ts +8 -5
  34. package/dragdrop/context-types.d.ts +1 -1
  35. package/dragdrop/draggable-column.directive.d.ts +1 -1
  36. package/dragdrop/drop-target.directive.d.ts +1 -1
  37. package/editing/add-command-tool.directive.d.ts +39 -0
  38. package/editing/edit.service.d.ts +3 -3
  39. package/editing-directives/editing-directive-base.d.ts +1 -1
  40. package/editing-directives/in-cell-editing.directive.d.ts +1 -1
  41. package/editing-directives/reactive-editing.directive.d.ts +1 -1
  42. package/editing-directives/template-editing.directive.d.ts +1 -1
  43. package/{esm2020 → esm2022}/aggregates/selection-aggregate.service.mjs +20 -17
  44. package/{esm2020 → esm2022}/aggregates/status-bar-template.directive.mjs +4 -3
  45. package/{esm2020 → esm2022}/aggregates/status-bar.component.mjs +10 -8
  46. package/{esm2020 → esm2022}/column-menu/column-chooser-item-checked.directive.mjs +7 -4
  47. package/{esm2020 → esm2022}/column-menu/column-chooser.component.mjs +36 -24
  48. package/{esm2020 → esm2022}/column-menu/column-list-kb-nav.service.mjs +6 -4
  49. package/{esm2020 → esm2022}/column-menu/column-list.component.mjs +51 -32
  50. package/{esm2020 → esm2022}/column-menu/column-locked-change-event.mjs +4 -0
  51. package/{esm2020 → esm2022}/column-menu/column-menu-autosize-all.component.mjs +6 -5
  52. package/{esm2020 → esm2022}/column-menu/column-menu-autosize.component.mjs +10 -5
  53. package/{esm2020 → esm2022}/column-menu/column-menu-chooser.component.mjs +33 -29
  54. package/{esm2020 → esm2022}/column-menu/column-menu-container.component.mjs +8 -5
  55. package/{esm2020 → esm2022}/column-menu/column-menu-filter.component.mjs +28 -26
  56. package/{esm2020 → esm2022}/column-menu/column-menu-item-base.mjs +9 -6
  57. package/{esm2020 → esm2022}/column-menu/column-menu-item-content-template.directive.mjs +4 -3
  58. package/{esm2020 → esm2022}/column-menu/column-menu-item.component.mjs +73 -42
  59. package/{esm2020 → esm2022}/column-menu/column-menu-item.directive.mjs +38 -28
  60. package/{esm2020 → esm2022}/column-menu/column-menu-lock.component.mjs +9 -6
  61. package/{esm2020 → esm2022}/column-menu/column-menu-position.component.mjs +38 -28
  62. package/{esm2020 → esm2022}/column-menu/column-menu-sort.component.mjs +9 -6
  63. package/{esm2020 → esm2022}/column-menu/column-menu-stick.component.mjs +9 -6
  64. package/{esm2020 → esm2022}/column-menu/column-menu-template.directive.mjs +4 -3
  65. package/{esm2020 → esm2022}/column-menu/column-menu.component.mjs +97 -63
  66. package/{esm2020 → esm2022}/column-menu/column-menu.service.mjs +34 -10
  67. package/{esm2020 → esm2022}/column-menu/column-sticky-change-event.mjs +4 -0
  68. package/{esm2020 → esm2022}/column-menu/column-visibility-change-event.mjs +4 -0
  69. package/{esm2020 → esm2022}/column-resizing/column-handle.directive.mjs +23 -15
  70. package/{esm2020 → esm2022}/column-resizing/column-resizing.service.mjs +8 -8
  71. package/{esm2020 → esm2022}/column-resizing/table.directive.mjs +17 -8
  72. package/{esm2020 → esm2022}/columns/checkbox-column.component.mjs +24 -16
  73. package/{esm2020 → esm2022}/columns/column-base.mjs +188 -84
  74. package/{esm2020 → esm2022}/columns/column-group.component.mjs +29 -20
  75. package/{esm2020 → esm2022}/columns/column-list.mjs +4 -3
  76. package/{esm2020 → esm2022}/columns/column.component.mjs +62 -46
  77. package/{esm2020 → esm2022}/columns/columns-container.mjs +16 -15
  78. package/{esm2020 → esm2022}/columns/command-column.component.mjs +10 -8
  79. package/{esm2020 → esm2022}/columns/reorder-column.component.mjs +23 -12
  80. package/{esm2020 → esm2022}/columns/span-column.component.mjs +49 -29
  81. package/esm2022/common/clipboard.directive.mjs +190 -0
  82. package/{esm2020 → esm2022}/common/clipboard.service.mjs +12 -9
  83. package/{esm2020 → esm2022}/common/column-info.service.mjs +10 -10
  84. package/esm2022/common/dom-events.service.mjs +26 -0
  85. package/{esm2020 → esm2022}/common/error-messages.mjs +4 -1
  86. package/{esm2020 → esm2022}/common/event-emitter.mjs +1 -0
  87. package/{esm2020 → esm2022}/common/id.service.mjs +4 -3
  88. package/{esm2020 → esm2022}/common/preventable-event.mjs +1 -3
  89. package/{esm2020 → esm2022}/common/provider.service.mjs +10 -3
  90. package/{esm2020 → esm2022}/common/single-popup.service.mjs +21 -10
  91. package/{esm2020 → esm2022}/common/sort.service.mjs +1 -3
  92. package/{esm2020 → esm2022}/data/change-notification.service.mjs +6 -4
  93. package/{esm2020 → esm2022}/data/data.collection.mjs +5 -0
  94. package/{esm2020 → esm2022}/data/data.iterators.mjs +16 -1
  95. package/{esm2020 → esm2022}/databinding.directive.mjs +24 -16
  96. package/{esm2020 → esm2022}/directives.mjs +8 -2
  97. package/{esm2020 → esm2022}/dragdrop/column-reorder-event.mjs +14 -0
  98. package/{esm2020 → esm2022}/dragdrop/column-reorder.service.mjs +4 -6
  99. package/{esm2020 → esm2022}/dragdrop/drag-and-drop.service.mjs +6 -8
  100. package/{esm2020 → esm2022}/dragdrop/drag-hint.service.mjs +7 -4
  101. package/{esm2020 → esm2022}/dragdrop/draggable-column.directive.mjs +22 -13
  102. package/{esm2020 → esm2022}/dragdrop/drop-cue.service.mjs +4 -3
  103. package/{esm2020 → esm2022}/dragdrop/drop-target.directive.mjs +10 -8
  104. package/esm2022/editing/add-command-tool.directive.mjs +64 -0
  105. package/{esm2020 → esm2022}/editing/add-command.directive.mjs +9 -8
  106. package/{esm2020 → esm2022}/editing/cancel-command.directive.mjs +17 -13
  107. package/{esm2020 → esm2022}/editing/cell-close-event.mjs +21 -4
  108. package/{esm2020 → esm2022}/editing/edit-command.directive.mjs +17 -13
  109. package/{esm2020 → esm2022}/editing/edit-template.directive.mjs +4 -3
  110. package/{esm2020 → esm2022}/editing/edit.service.mjs +13 -8
  111. package/{esm2020 → esm2022}/editing/local-data-changes.service.mjs +5 -6
  112. package/{esm2020 → esm2022}/editing/remove-command.directive.mjs +17 -13
  113. package/{esm2020 → esm2022}/editing/save-command.directive.mjs +17 -13
  114. package/{esm2020 → esm2022}/editing-directives/editing-directive-base.mjs +17 -9
  115. package/{esm2020 → esm2022}/editing-directives/in-cell-editing.directive.mjs +10 -3
  116. package/{esm2020 → esm2022}/editing-directives/local-edit.service.mjs +2 -0
  117. package/{esm2020 → esm2022}/editing-directives/reactive-editing.directive.mjs +9 -3
  118. package/{esm2020 → esm2022}/editing-directives/row-editing-directive-base.mjs +4 -3
  119. package/{esm2020 → esm2022}/editing-directives/template-editing.directive.mjs +11 -3
  120. package/esm2022/excel/excel-command-tool.directive.mjs +66 -0
  121. package/{esm2020 → esm2022}/excel/excel-command.directive.mjs +11 -10
  122. package/{esm2020 → esm2022}/excel/excel-export-event.mjs +1 -0
  123. package/{esm2020 → esm2022}/excel/excel.component.mjs +66 -12
  124. package/{esm2020 → esm2022}/excel/excel.module.mjs +5 -4
  125. package/{esm2020 → esm2022}/excel/excel.service.mjs +5 -7
  126. package/{esm2020 → esm2022}/filtering/base-filter-cell.component.mjs +22 -11
  127. package/{esm2020 → esm2022}/filtering/boolean-filter.component.mjs +25 -24
  128. package/{esm2020 → esm2022}/filtering/cell/autocomplete-filter-cell.component.mjs +18 -15
  129. package/{esm2020 → esm2022}/filtering/cell/boolean-filter-cell.component.mjs +10 -8
  130. package/{esm2020 → esm2022}/filtering/cell/date-filter-cell.component.mjs +25 -23
  131. package/{esm2020 → esm2022}/filtering/cell/filter-cell-host.directive.mjs +3 -3
  132. package/{esm2020 → esm2022}/filtering/cell/filter-cell-operators.component.mjs +60 -39
  133. package/{esm2020 → esm2022}/filtering/cell/filter-cell-template.directive.mjs +4 -3
  134. package/{esm2020 → esm2022}/filtering/cell/filter-cell-wrapper.component.mjs +8 -8
  135. package/{esm2020 → esm2022}/filtering/cell/filter-cell.component.mjs +9 -9
  136. package/{esm2020 → esm2022}/filtering/cell/numeric-filter-cell.component.mjs +25 -18
  137. package/{esm2020 → esm2022}/filtering/cell/row-filtering.module.mjs +18 -18
  138. package/{esm2020 → esm2022}/filtering/cell/string-filter-cell.component.mjs +23 -17
  139. package/{esm2020 → esm2022}/filtering/date-filter.component.mjs +64 -38
  140. package/{esm2020 → esm2022}/filtering/filter-host.directive.mjs +8 -3
  141. package/{esm2020 → esm2022}/filtering/filter-input-wrapper.component.mjs +11 -8
  142. package/{esm2020 → esm2022}/filtering/filter-input.directive.mjs +20 -13
  143. package/{esm2020 → esm2022}/filtering/filter-row.component.mjs +13 -7
  144. package/{esm2020 → esm2022}/filtering/filter.service.mjs +14 -10
  145. package/{esm2020 → esm2022}/filtering/menu/boolean-filter-menu.component.mjs +25 -13
  146. package/{esm2020 → esm2022}/filtering/menu/date-filter-menu-input.component.mjs +24 -5
  147. package/{esm2020 → esm2022}/filtering/menu/date-filter-menu.component.mjs +26 -21
  148. package/{esm2020 → esm2022}/filtering/menu/filter-menu-container.component.mjs +46 -20
  149. package/{esm2020 → esm2022}/filtering/menu/filter-menu-dropdownlist.directive.mjs +11 -9
  150. package/{esm2020 → esm2022}/filtering/menu/filter-menu-host.directive.mjs +5 -3
  151. package/{esm2020 → esm2022}/filtering/menu/filter-menu-input-wrapper.component.mjs +14 -8
  152. package/{esm2020 → esm2022}/filtering/menu/filter-menu-template.directive.mjs +4 -3
  153. package/{esm2020 → esm2022}/filtering/menu/filter-menu.component.mjs +27 -6
  154. package/{esm2020 → esm2022}/filtering/menu/filter-menu.module.mjs +18 -18
  155. package/{esm2020 → esm2022}/filtering/menu/filter-radio-button.directive.mjs +7 -3
  156. package/{esm2020 → esm2022}/filtering/menu/menu-tabbing.service.mjs +9 -8
  157. package/{esm2020 → esm2022}/filtering/menu/numeric-filter-menu-input.component.mjs +51 -15
  158. package/{esm2020 → esm2022}/filtering/menu/numeric-filter-menu.component.mjs +42 -37
  159. package/{esm2020 → esm2022}/filtering/menu/string-filter-menu-input.component.mjs +14 -5
  160. package/{esm2020 → esm2022}/filtering/menu/string-filter-menu.component.mjs +36 -21
  161. package/{esm2020 → esm2022}/filtering/numeric-filter.component.mjs +51 -28
  162. package/{esm2020 → esm2022}/filtering/operators/after-eq-filter-operator.component.mjs +8 -8
  163. package/{esm2020 → esm2022}/filtering/operators/after-filter-operator.component.mjs +8 -8
  164. package/{esm2020 → esm2022}/filtering/operators/before-eq-filter-operator.component.mjs +8 -8
  165. package/{esm2020 → esm2022}/filtering/operators/before-filter-operator.component.mjs +8 -8
  166. package/{esm2020 → esm2022}/filtering/operators/contains-filter-operator.component.mjs +8 -8
  167. package/{esm2020 → esm2022}/filtering/operators/ends-with-filter-operator.component.mjs +8 -8
  168. package/{esm2020 → esm2022}/filtering/operators/eq-filter-operator.component.mjs +8 -8
  169. package/{esm2020 → esm2022}/filtering/operators/filter-operator.base.mjs +15 -10
  170. package/{esm2020 → esm2022}/filtering/operators/gt-filter-operator.component.mjs +8 -8
  171. package/{esm2020 → esm2022}/filtering/operators/gte-filter-operator.component.mjs +8 -8
  172. package/{esm2020 → esm2022}/filtering/operators/is-empty-filter-operator.component.mjs +8 -8
  173. package/{esm2020 → esm2022}/filtering/operators/is-not-empty-filter-operator.component.mjs +8 -8
  174. package/{esm2020 → esm2022}/filtering/operators/is-not-null-filter-operator.component.mjs +8 -8
  175. package/{esm2020 → esm2022}/filtering/operators/isnull-filter-operator.component.mjs +8 -8
  176. package/{esm2020 → esm2022}/filtering/operators/lt-filter-operator.component.mjs +8 -8
  177. package/{esm2020 → esm2022}/filtering/operators/lte-filter-operator.component.mjs +8 -8
  178. package/{esm2020 → esm2022}/filtering/operators/neq-filter-operator.component.mjs +8 -8
  179. package/{esm2020 → esm2022}/filtering/operators/not-contains-filter-operator.component.mjs +8 -8
  180. package/{esm2020 → esm2022}/filtering/operators/starts-with-filter-operator.component.mjs +8 -8
  181. package/{esm2020 → esm2022}/filtering/shared-filtering.module.mjs +18 -18
  182. package/{esm2020 → esm2022}/filtering/string-filter.component.mjs +20 -15
  183. package/{esm2020 → esm2022}/grid.component.mjs +480 -365
  184. package/esm2022/grid.module.mjs +221 -0
  185. package/{esm2020 → esm2022}/grouping/group-footer-template.directive.mjs +4 -3
  186. package/{esm2020 → esm2022}/grouping/group-header-column-template.directive.mjs +4 -3
  187. package/{esm2020 → esm2022}/grouping/group-header-template.directive.mjs +4 -3
  188. package/{esm2020 → esm2022}/grouping/group-header.component.mjs +23 -14
  189. package/{esm2020 → esm2022}/grouping/group-info.service.mjs +1 -3
  190. package/{esm2020 → esm2022}/grouping/group-panel.component.mjs +71 -53
  191. package/{esm2020 → esm2022}/grouping/group-scroll-binding.directive.mjs +11 -9
  192. package/{esm2020 → esm2022}/grouping/group.module.mjs +4 -4
  193. package/{esm2020 → esm2022}/grouping/groups.service.mjs +6 -7
  194. package/{esm2020 → esm2022}/index.mjs +6 -3
  195. package/{esm2020 → esm2022}/layout/browser-support.service.mjs +7 -4
  196. package/{esm2020 → esm2022}/layout/resizable.directive.mjs +16 -10
  197. package/{esm2020 → esm2022}/layout/resize.service.mjs +6 -8
  198. package/{esm2020 → esm2022}/layout/responsive.service.mjs +7 -9
  199. package/{esm2020 → esm2022}/layout/sizing-options.service.mjs +4 -6
  200. package/{esm2020 → esm2022}/localization/custom-messages.component.mjs +9 -8
  201. package/{esm2020 → esm2022}/localization/localized-messages.directive.mjs +9 -8
  202. package/esm2022/localization/messages.mjs +585 -0
  203. package/{esm2020 → esm2022}/navigation/default-focusable-element.mjs +8 -5
  204. package/{esm2020 → esm2022}/navigation/focus-group.mjs +10 -9
  205. package/{esm2020 → esm2022}/navigation/focus-root.mjs +5 -4
  206. package/{esm2020 → esm2022}/navigation/focusable.directive.mjs +23 -17
  207. package/{esm2020 → esm2022}/navigation/grid-focusable-element.mjs +1 -0
  208. package/{esm2020 → esm2022}/navigation/item-map.mjs +2 -4
  209. package/{esm2020 → esm2022}/navigation/logical-cell.directive.mjs +38 -23
  210. package/{esm2020 → esm2022}/navigation/logical-row.directive.mjs +18 -12
  211. package/{esm2020 → esm2022}/navigation/navigation-cursor.mjs +10 -8
  212. package/{esm2020 → esm2022}/navigation/navigation-metadata.mjs +12 -4
  213. package/{esm2020 → esm2022}/navigation/navigation-model.mjs +1 -3
  214. package/{esm2020 → esm2022}/navigation/navigation.service.mjs +47 -27
  215. package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
  216. package/{esm2020 → esm2022}/pager/pager-context.service.mjs +5 -4
  217. package/{esm2020 → esm2022}/pager/pager-dropdown.directive.mjs +10 -9
  218. package/{esm2020 → esm2022}/pager/pager-element.component.mjs +27 -20
  219. package/{esm2020 → esm2022}/pager/pager-info.component.mjs +8 -7
  220. package/{esm2020 → esm2022}/pager/pager-input.component.mjs +43 -39
  221. package/{esm2020 → esm2022}/pager/pager-input.directive.mjs +5 -3
  222. package/{esm2020 → esm2022}/pager/pager-next-buttons.component.mjs +10 -9
  223. package/{esm2020 → esm2022}/pager/pager-numeric-buttons.component.mjs +19 -9
  224. package/{esm2020 → esm2022}/pager/pager-page-sizes.component.mjs +12 -10
  225. package/{esm2020 → esm2022}/pager/pager-prev-buttons.component.mjs +6 -5
  226. package/{esm2020 → esm2022}/pager/pager-template.directive.mjs +4 -3
  227. package/{esm2020 → esm2022}/pager/pager.component.mjs +82 -68
  228. package/{esm2020 → esm2022}/pager/pager.module.mjs +4 -4
  229. package/{esm2020 → esm2022}/pdf/grid-query.mjs +4 -0
  230. package/esm2022/pdf/pdf-command-tool.directive.mjs +66 -0
  231. package/{esm2020 → esm2022}/pdf/pdf-command.directive.mjs +10 -9
  232. package/{esm2020 → esm2022}/pdf/pdf-margin.component.mjs +3 -3
  233. package/{esm2020 → esm2022}/pdf/pdf-template.directive.mjs +3 -3
  234. package/{esm2020 → esm2022}/pdf/pdf.component.mjs +39 -12
  235. package/{esm2020 → esm2022}/pdf/pdf.module.mjs +5 -4
  236. package/{esm2020 → esm2022}/pdf/pdf.service.mjs +8 -9
  237. package/{esm2020 → esm2022}/rendering/body.module.mjs +18 -17
  238. package/{esm2020 → esm2022}/rendering/cell-loading.template.directive.mjs +4 -3
  239. package/{esm2020 → esm2022}/rendering/cell-template.directive.mjs +4 -3
  240. package/{esm2020 → esm2022}/rendering/cell.component.mjs +25 -16
  241. package/{esm2020 → esm2022}/rendering/common/col-group.component.mjs +8 -9
  242. package/{esm2020 → esm2022}/rendering/common/field-accessor.pipe.mjs +4 -3
  243. package/{esm2020 → esm2022}/rendering/common/loading.component.mjs +10 -8
  244. package/{esm2020 → esm2022}/rendering/common/spacer.component.mjs +11 -6
  245. package/{esm2020 → esm2022}/rendering/details/detail-collapse-event.mjs +8 -0
  246. package/{esm2020 → esm2022}/rendering/details/detail-expand-event.mjs +8 -0
  247. package/{esm2020 → esm2022}/rendering/details/detail-template.directive.mjs +8 -7
  248. package/{esm2020 → esm2022}/rendering/details/details.service.mjs +6 -7
  249. package/{esm2020 → esm2022}/rendering/details-expand.directive.mjs +28 -25
  250. package/{esm2020 → esm2022}/rendering/footer/footer-template.directive.mjs +4 -3
  251. package/{esm2020 → esm2022}/rendering/footer/footer.component.mjs +17 -13
  252. package/{esm2020 → esm2022}/rendering/footer/footer.module.mjs +4 -4
  253. package/{esm2020 → esm2022}/rendering/grid-table.directive.mjs +9 -8
  254. package/{esm2020 → esm2022}/rendering/groups-expand.directive.mjs +21 -18
  255. package/{esm2020 → esm2022}/rendering/header/header-template.directive.mjs +4 -3
  256. package/{esm2020 → esm2022}/rendering/header/header.component.mjs +61 -35
  257. package/{esm2020 → esm2022}/rendering/header/header.module.mjs +18 -18
  258. package/{esm2020 → esm2022}/rendering/list.component.mjs +95 -48
  259. package/{esm2020 → esm2022}/rendering/loading-template.directive.mjs +4 -3
  260. package/{esm2020 → esm2022}/rendering/no-records-template.directive.mjs +4 -3
  261. package/{esm2020 → esm2022}/rendering/table-body.component.mjs +50 -17
  262. package/{esm2020 → esm2022}/rendering/toolbar/toolbar-focusable.directive.mjs +9 -7
  263. package/{esm2020 → esm2022}/rendering/toolbar/toolbar-navigation.service.mjs +9 -8
  264. package/{esm2020 → esm2022}/rendering/toolbar/toolbar-template.directive.mjs +8 -7
  265. package/{esm2020 → esm2022}/rendering/toolbar/toolbar.component.mjs +26 -12
  266. package/{esm2020 → esm2022}/row-reordering/row-reorder.service.mjs +14 -10
  267. package/{esm2020 → esm2022}/scrolling/row-height.service.mjs +5 -2
  268. package/{esm2020 → esm2022}/scrolling/scroll-request.service.mjs +4 -6
  269. package/{esm2020 → esm2022}/scrolling/scroll-sync.service.mjs +10 -8
  270. package/{esm2020 → esm2022}/scrolling/scroller.service.mjs +12 -1
  271. package/{esm2020 → esm2022}/scrolling/suspend.service.mjs +4 -6
  272. package/{esm2020 → esm2022}/selection/cell-selection.service.mjs +31 -20
  273. package/{esm2020 → esm2022}/selection/marquee.directive.mjs +16 -4
  274. package/{esm2020 → esm2022}/selection/pair-set.mjs +16 -16
  275. package/{esm2020 → esm2022}/selection/selectall-checkbox.directive.mjs +26 -16
  276. package/{esm2020 → esm2022}/selection/selection-checkbox.directive.mjs +19 -7
  277. package/{esm2020 → esm2022}/selection/selection-default.mjs +46 -25
  278. package/{esm2020 → esm2022}/selection/selection.directive.mjs +4 -3
  279. package/{esm2020 → esm2022}/selection/selection.service.mjs +31 -18
  280. package/{esm2020 → esm2022}/shared.module.mjs +4 -4
  281. package/excel/excel-command-tool.directive.d.ts +41 -0
  282. package/excel/excel-command.directive.d.ts +1 -1
  283. package/excel/excel.component.d.ts +1 -1
  284. package/excel/excel.module.d.ts +3 -2
  285. package/{fesm2020 → fesm2022}/progress-kendo-angular-grid.mjs +5040 -3031
  286. package/filtering/base-filter-cell.component.d.ts +5 -1
  287. package/filtering/boolean-filter.component.d.ts +2 -13
  288. package/filtering/cell/autocomplete-filter-cell.component.d.ts +2 -7
  289. package/filtering/cell/date-filter-cell.component.d.ts +1 -1
  290. package/filtering/cell/filter-cell-operators.component.d.ts +1 -1
  291. package/filtering/cell/filter-cell-wrapper.component.d.ts +1 -1
  292. package/filtering/cell/filter-cell.component.d.ts +1 -1
  293. package/filtering/cell/numeric-filter-cell.component.d.ts +1 -1
  294. package/filtering/cell/string-filter-cell.component.d.ts +1 -1
  295. package/filtering/date-filter.component.d.ts +2 -11
  296. package/filtering/filter-host.directive.d.ts +2 -2
  297. package/filtering/filter-input-wrapper.component.d.ts +1 -2
  298. package/filtering/filter-input.directive.d.ts +1 -1
  299. package/filtering/filter-row.component.d.ts +1 -1
  300. package/filtering/filterable.d.ts +1 -1
  301. package/filtering/menu/boolean-filter-menu.component.d.ts +1 -1
  302. package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
  303. package/filtering/menu/date-filter-menu.component.d.ts +1 -7
  304. package/filtering/menu/filter-menu-container.component.d.ts +1 -1
  305. package/filtering/menu/filter-menu-dropdownlist.directive.d.ts +1 -1
  306. package/filtering/menu/filter-menu-host.directive.d.ts +1 -1
  307. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +1 -1
  308. package/filtering/menu/filter-menu.component.d.ts +1 -1
  309. package/filtering/menu/filter-radio-button.directive.d.ts +1 -1
  310. package/filtering/menu/numeric-filter-menu-input.component.d.ts +1 -1
  311. package/filtering/menu/numeric-filter-menu.component.d.ts +1 -7
  312. package/filtering/menu/string-filter-menu-input.component.d.ts +1 -1
  313. package/filtering/menu/string-filter-menu.component.d.ts +1 -7
  314. package/filtering/numeric-filter.component.d.ts +2 -11
  315. package/filtering/operators/filter-operator.base.d.ts +1 -1
  316. package/filtering/string-filter.component.d.ts +2 -11
  317. package/grid.component.d.ts +1 -1
  318. package/grid.module.d.ts +103 -101
  319. package/grouping/group-header.component.d.ts +1 -1
  320. package/grouping/group-panel.component.d.ts +1 -1
  321. package/grouping/group-scroll-binding.directive.d.ts +1 -1
  322. package/index.d.ts +6 -3
  323. package/layout/resizable.directive.d.ts +1 -1
  324. package/localization/messages.d.ts +1 -1
  325. package/navigation/focusable.directive.d.ts +1 -1
  326. package/navigation/logical-cell.directive.d.ts +1 -1
  327. package/navigation/logical-row.directive.d.ts +1 -1
  328. package/navigation/navigable-settings.d.ts +2 -2
  329. package/package.json +27 -32
  330. package/pager/pager-context.service.d.ts +1 -1
  331. package/pager/pager-element.component.d.ts +1 -1
  332. package/pager/pager-numeric-buttons.component.d.ts +1 -1
  333. package/pager/pager-page-sizes.component.d.ts +1 -1
  334. package/pager/pager-settings.d.ts +2 -2
  335. package/pager/pager.component.d.ts +1 -1
  336. package/pdf/pdf-command-tool.directive.d.ts +41 -0
  337. package/pdf/pdf.component.d.ts +1 -1
  338. package/pdf/pdf.module.d.ts +2 -1
  339. package/rendering/body.module.d.ts +5 -4
  340. package/rendering/cell.component.d.ts +1 -1
  341. package/rendering/common/cell-context.d.ts +1 -1
  342. package/rendering/common/col-group.component.d.ts +1 -1
  343. package/rendering/common/loading.component.d.ts +1 -1
  344. package/rendering/common/row-class.d.ts +4 -4
  345. package/rendering/common/spacer.component.d.ts +1 -1
  346. package/rendering/details/detail-template.directive.d.ts +2 -2
  347. package/rendering/details-expand.directive.d.ts +1 -1
  348. package/rendering/footer/footer.component.d.ts +1 -1
  349. package/rendering/grid-table.directive.d.ts +1 -1
  350. package/rendering/groups-expand.directive.d.ts +1 -1
  351. package/rendering/header/header.component.d.ts +1 -1
  352. package/rendering/list.component.d.ts +1 -1
  353. package/rendering/table-body.component.d.ts +1 -1
  354. package/rendering/toolbar/toolbar-position.d.ts +1 -1
  355. package/rendering/toolbar/toolbar-template.directive.d.ts +1 -1
  356. package/rendering/toolbar/toolbar.component.d.ts +2 -1
  357. package/row-reordering/types.d.ts +1 -1
  358. package/schematics/ngAdd/index.js +4 -4
  359. package/scrolling/scroll-sync.service.d.ts +1 -1
  360. package/scrolling/scroller.service.d.ts +1 -1
  361. package/scrolling/scrollmode.d.ts +1 -1
  362. package/selection/cell-selection.service.d.ts +1 -1
  363. package/selection/selectall-checkbox.directive.d.ts +1 -1
  364. package/selection/selection-checkbox.directive.d.ts +1 -1
  365. package/selection/selection-default.d.ts +1 -1
  366. package/selection/selection.service.d.ts +1 -1
  367. package/selection/types.d.ts +4 -4
  368. package/utils.d.ts +1 -1
  369. package/esm2020/common/clipboard.directive.mjs +0 -186
  370. package/esm2020/common/dom-events.service.mjs +0 -28
  371. package/esm2020/grid.module.mjs +0 -219
  372. package/esm2020/localization/messages.mjs +0 -187
  373. package/fesm2015/progress-kendo-angular-grid.mjs +0 -28466
  374. /package/{esm2020 → esm2022}/aggregates/aggregate-types.mjs +0 -0
  375. /package/{esm2020 → esm2022}/column-menu/column-menu-expandable-item.interface.mjs +0 -0
  376. /package/{esm2020 → esm2022}/column-menu/column-menu-settings.interface.mjs +0 -0
  377. /package/{esm2020 → esm2022}/column-menu/utils.mjs +0 -0
  378. /package/{esm2020 → esm2022}/column-resizing/column-resize.interface.mjs +0 -0
  379. /package/{esm2020 → esm2022}/columns/column-common.mjs +0 -0
  380. /package/{esm2020 → esm2022}/columns/sort-settings.mjs +0 -0
  381. /package/{esm2020 → esm2022}/common/cell-click-event-args.interface.mjs +0 -0
  382. /package/{esm2020 → esm2022}/common/clipboard-types.mjs +0 -0
  383. /package/{esm2020 → esm2022}/common/create-form-group.mjs +0 -0
  384. /package/{esm2020 → esm2022}/common/default-track-by.mjs +0 -0
  385. /package/{esm2020 → esm2022}/common/fetch-data-callback.mjs +0 -0
  386. /package/{esm2020 → esm2022}/common/filter-descriptor-differ.mjs +0 -0
  387. /package/{esm2020 → esm2022}/common/filter-operator.interface.mjs +0 -0
  388. /package/{esm2020 → esm2022}/common/remove-confirmation.mjs +0 -0
  389. /package/{esm2020 → esm2022}/common/size-options.mjs +0 -0
  390. /package/{esm2020 → esm2022}/constants.mjs +0 -0
  391. /package/{esm2020 → esm2022}/data/change-event-args.interface.mjs +0 -0
  392. /package/{esm2020 → esm2022}/data/data-item.interface.mjs +0 -0
  393. /package/{esm2020 → esm2022}/data/grid-item.interface.mjs +0 -0
  394. /package/{esm2020 → esm2022}/data/group-footer-item.interface.mjs +0 -0
  395. /package/{esm2020 → esm2022}/data/group-item.interface.mjs +0 -0
  396. /package/{esm2020 → esm2022}/dragdrop/column-reorder-config.mjs +0 -0
  397. /package/{esm2020 → esm2022}/dragdrop/common.mjs +0 -0
  398. /package/{esm2020 → esm2022}/dragdrop/context-types.mjs +0 -0
  399. /package/{esm2020 → esm2022}/editing/add-event-args.interface.mjs +0 -0
  400. /package/{esm2020 → esm2022}/editing/cancel-event-args.interface.mjs +0 -0
  401. /package/{esm2020 → esm2022}/editing/edit-event-args.interface.mjs +0 -0
  402. /package/{esm2020 → esm2022}/editing/edit-row-options.interface.mjs +0 -0
  403. /package/{esm2020 → esm2022}/editing/remove-event-args.interface.mjs +0 -0
  404. /package/{esm2020 → esm2022}/editing/save-event-args.interface.mjs +0 -0
  405. /package/{esm2020 → esm2022}/editing-directives/create-form-group-args.interface.mjs +0 -0
  406. /package/{esm2020 → esm2022}/editing-directives/edit-service.interface.mjs +0 -0
  407. /package/{esm2020 → esm2022}/editing-directives/local-row-edit.service.mjs +0 -0
  408. /package/{esm2020 → esm2022}/editing-directives/utils.mjs +0 -0
  409. /package/{esm2020 → esm2022}/filtering/cell/filter-cell-component.factory.mjs +0 -0
  410. /package/{esm2020 → esm2022}/filtering/filter-component.interface.mjs +0 -0
  411. /package/{esm2020 → esm2022}/filtering/filterable.mjs +0 -0
  412. /package/{esm2020 → esm2022}/filtering/menu/filter-menu-component.factory.mjs +0 -0
  413. /package/{esm2020 → esm2022}/grouping/group-key.interface.mjs +0 -0
  414. /package/{esm2020 → esm2022}/grouping/group-rows-args.interface.mjs +0 -0
  415. /package/{esm2020 → esm2022}/grouping/group-settings.mjs +0 -0
  416. /package/{esm2020 → esm2022}/grouping/utils.mjs +0 -0
  417. /package/{esm2020 → esm2022}/grouping/virtual-group-result.interface.mjs +0 -0
  418. /package/{esm2020 → esm2022}/layout/row-sync.mjs +0 -0
  419. /package/{esm2020 → esm2022}/navigation/focusable-element.interface.mjs +0 -0
  420. /package/{esm2020 → esm2022}/navigation/logical-cell.interface.mjs +0 -0
  421. /package/{esm2020 → esm2022}/navigation/logical-row.interface.mjs +0 -0
  422. /package/{esm2020 → esm2022}/navigation/navigable-settings.mjs +0 -0
  423. /package/{esm2020 → esm2022}/navigation/navigation-cell.interface.mjs +0 -0
  424. /package/{esm2020 → esm2022}/navigation/navigation-change.interface.mjs +0 -0
  425. /package/{esm2020 → esm2022}/navigation/navigation-mode.mjs +0 -0
  426. /package/{esm2020 → esm2022}/navigation/navigation-row.interface.mjs +0 -0
  427. /package/{esm2020 → esm2022}/pager/pager-settings.mjs +0 -0
  428. /package/{esm2020 → esm2022}/pager/pagesize-item.interface.mjs +0 -0
  429. /package/{esm2020 → esm2022}/pdf/export-element.mjs +0 -0
  430. /package/{esm2020 → esm2022}/pdf/pdf-export-event.mjs +0 -0
  431. /package/{esm2020 → esm2022}/pdf/pdf-margin.interface.mjs +0 -0
  432. /package/{esm2020 → esm2022}/progress-kendo-angular-grid.mjs +0 -0
  433. /package/{esm2020 → esm2022}/rendering/common/cell-context.mjs +0 -0
  434. /package/{esm2020 → esm2022}/rendering/common/dom-queries.mjs +0 -0
  435. /package/{esm2020 → esm2022}/rendering/common/row-args.mjs +0 -0
  436. /package/{esm2020 → esm2022}/rendering/common/row-class.mjs +0 -0
  437. /package/{esm2020 → esm2022}/rendering/constants.mjs +0 -0
  438. /package/{esm2020 → esm2022}/rendering/toolbar/toolbar-position.mjs +0 -0
  439. /package/{esm2020 → esm2022}/row-reordering/types.mjs +0 -0
  440. /package/{esm2020 → esm2022}/row-reordering/utils.mjs +0 -0
  441. /package/{esm2020 → esm2022}/scrolling/content-scroll-event.mjs +0 -0
  442. /package/{esm2020 → esm2022}/scrolling/scroll-bottom-event.mjs +0 -0
  443. /package/{esm2020 → esm2022}/scrolling/scrollmode.mjs +0 -0
  444. /package/{esm2020 → esm2022}/selection/types.mjs +0 -0
  445. /package/{esm2020 → esm2022}/utils.mjs +0 -0
@@ -92,7 +92,7 @@ import { GridTableDirective } from './rendering/grid-table.directive';
92
92
  import { TableDirective } from './column-resizing/table.directive';
93
93
  import { GroupPanelComponent } from './grouping/group-panel.component';
94
94
  import { PagerComponent } from './pager/pager.component';
95
- import { ToolbarComponent } from './rendering/toolbar/toolbar.component';
95
+ import { ToolbarComponent as GridToolbarComponent } from './rendering/toolbar/toolbar.component';
96
96
  import { NgIf } from '@angular/common';
97
97
  import { LocalizedMessagesDirective } from './localization/localized-messages.directive';
98
98
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
@@ -145,315 +145,34 @@ const NOTIFY_DELAY = 500;
145
145
  * ```
146
146
  */
147
147
  export class GridComponent {
148
- constructor(supportService, selectionService, cellSelectionService, wrapper, groupInfoService, groupsService, changeNotification, detailsService, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, localization, ctx, sizingService, rowReorderService) {
149
- this.supportService = supportService;
150
- this.selectionService = selectionService;
151
- this.cellSelectionService = cellSelectionService;
152
- this.wrapper = wrapper;
153
- this.groupInfoService = groupInfoService;
154
- this.groupsService = groupsService;
155
- this.changeNotification = changeNotification;
156
- this.detailsService = detailsService;
157
- this.editService = editService;
158
- this.filterService = filterService;
159
- this.pdfService = pdfService;
160
- this.responsiveService = responsiveService;
161
- this.renderer = renderer;
162
- this.excelService = excelService;
163
- this.ngZone = ngZone;
164
- this.scrollSyncService = scrollSyncService;
165
- this.domEvents = domEvents;
166
- this.columnResizingService = columnResizingService;
167
- this.changeDetectorRef = changeDetectorRef;
168
- this.columnReorderService = columnReorderService;
169
- this.columnInfoService = columnInfoService;
170
- this.navigationService = navigationService;
171
- this.sortService = sortService;
172
- this.scrollRequestService = scrollRequestService;
173
- this.localization = localization;
174
- this.ctx = ctx;
175
- this.sizingService = sizingService;
176
- this.rowReorderService = rowReorderService;
177
- /**
178
- * Defines the scroll mode used by the Grid.
179
- *
180
- * @default 'scrollable'
181
- */
182
- this.scrollable = 'scrollable';
183
- /**
184
- * Enables the [single-row selection](slug:grid_row_selection) of the Grid.
185
- *
186
- * @default false
187
- */
188
- this.selectable = false;
189
- /**
190
- * A function that defines how to track changes for the data rows.
191
- * By default, the Grid tracks changes by the index of the data item.
192
- * Edited rows are tracked by reference.
193
- * [See example](slug:track_changes_grid)
194
- */
195
- this.trackBy = defaultTrackBy;
196
- /**
197
- * If set to `true`, the grid will render only the columns in the current viewport.
198
- * @default false
199
- */
200
- this.virtualColumns = false;
201
- /**
202
- * @hidden
203
- */
204
- this.gridData = () => { return this.flatData; };
205
- /**
206
- * Enables the [filtering]({% slug filtering_grid %}) of the Grid columns that have their `field` option set.
207
- * @default false
208
- */
209
- this.filterable = false;
210
- /**
211
- * Enables the [sorting]({% slug sorting_grid %}) of the Grid columns that have their `field` option set.
212
- * @default false
213
- */
214
- this.sortable = false;
215
- /**
216
- * Configures the pager of the Grid ([see example](slug:paging_grid_settings)).
217
- * @default false
218
- */
219
- this.pageable = false;
220
- /**
221
- * If set to `true`, the user can group the Grid by dragging the column header cells ([see example]({% slug grouping_grid %})).
222
- * @default false
223
- */
224
- this.groupable = false;
225
- /**
226
- * Indicates whether the Grid columns will be resized during initialization so that
227
- * they fit their headers and row content.
228
- * Columns with `autoSize` set to `false` are excluded.
229
- * To dynamically update the column width to match the new content,
230
- * refer to [this example]({% slug resizing_columns_grid %}).
231
- * @default false
232
- */
233
- this.autoSize = false;
234
- /**
235
- * If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells
236
- * ([see example]({% slug resizing_columns_grid %})).
237
- *
238
- * @default false
239
- */
240
- this.resizable = false;
241
- /**
242
- * If set to `true`, the user can reorder columns by dragging their header cells
243
- * ([see example]({% slug reordering_columns_grid %})).
244
- *
245
- * @default false
246
- */
247
- this.reorderable = false;
248
- /**
249
- * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_grid %})).
250
- *
251
- * @default false
252
- */
253
- this.columnMenu = false;
254
- /**
255
- * Specifies if the header of the grid will be hidden. The header is visible by default.
256
- * The header includes column headers and the [filter row](slug:filter_row).
257
- * @default false
258
- */
259
- this.hideHeader = false;
260
- /**
261
- * Fires when the Grid filter is modified through the UI.
262
- * You have to handle the event yourself and filter the data.
263
- */
264
- this.filterChange = new EventEmitter();
265
- /**
266
- * Fires when the page of the Grid is changed ([see example]({% slug paging_grid %})).
267
- * You have to handle the event yourself and page the data.
268
- */
269
- this.pageChange = new EventEmitter();
270
- /**
271
- * Fires when the grouping of the Grid is changed.
272
- * You have to handle the event yourself and group the data ([see example]({% slug grouping_grid %})).
273
- */
274
- this.groupChange = new ZoneAwareEventEmitter(this.ngZone);
275
- /**
276
- * Fires when the sorting of the Grid is changed ([see example]({% slug sorting_grid %})).
277
- * You have to handle the event yourself and sort the data.
278
- */
279
- this.sortChange = new EventEmitter();
280
- /**
281
- * Fires when the user selects a Grid row.
282
- */
283
- this.selectionChange = new EventEmitter();
284
- /**
285
- * Fires when the user drops the dragged row and reordering is performed.
286
- */
287
- this.rowReorder = new EventEmitter();
288
- /**
289
- * Fires when the data state of the Grid is changed.
290
- */
291
- this.dataStateChange = new EventEmitter();
292
- /**
293
- * Fires when the user expands a group header.
294
- */
295
- this.groupExpand = new EventEmitter();
296
- /**
297
- * Fires when the user collapses a group header.
298
- */
299
- this.groupCollapse = new EventEmitter();
300
- /**
301
- * Fires when the user expands a master row.
302
- */
303
- this.detailExpand = new EventEmitter();
304
- /**
305
- * Fires when the user collapses a master row.
306
- */
307
- this.detailCollapse = new EventEmitter();
308
- /**
309
- * Fires when the user clicks the **Edit** command button to edit a row
310
- * ([see example])({% slug inline_editing_grid %}#toc-editing-records-1).
311
- */
312
- this.edit = new EventEmitter();
313
- /**
314
- * Fires when the user clicks the **Cancel** command button to close a row
315
- * ([see example]({% slug inline_editing_grid %}#toc-canceling-editing-1)).
316
- */
317
- this.cancel = new EventEmitter();
318
- /**
319
- * Fires when the user clicks the **Save** command button to save changes in a row
320
- * ([see example]({% slug inline_editing_grid %}#toc-saving-records-1)).
321
- */
322
- this.save = new EventEmitter();
323
- /**
324
- * Fires when the user clicks the **Remove** command button to remove a row
325
- * ([see example]({% slug inline_editing_grid %}#toc-removing-records-1)).
326
- */
327
- this.remove = new EventEmitter();
328
- /**
329
- * Fires when the user clicks the **Add** command button to add a new row
330
- * ([see example]({% slug inline_editing_grid %}#toc-adding-records-1)).
331
- */
332
- this.add = new EventEmitter();
333
- /**
334
- * Fires when the user leaves an edited cell ([see example](slug:editing_incell_grid)).
335
- */
336
- this.cellClose = new EventEmitter();
337
- /**
338
- * Fires when the user clicks a cell ([see example](slug:editing_incell_grid)).
339
- */
340
- this.cellClick = new ZoneAwareEventEmitter(this.ngZone);
341
- /**
342
- * Fires when the user clicks the **Export to PDF** command button.
343
- */
344
- this.pdfExport = new EventEmitter();
345
- /**
346
- * Fires when the user clicks the **Export to Excel** command button.
347
- */
348
- this.excelExport = new EventEmitter();
349
- /**
350
- * Fires when the user completes the resizing of the column.
351
- */
352
- this.columnResize = new ZoneAwareEventEmitter(this.ngZone);
353
- /**
354
- * Fires when the user completes the reordering of the column.
355
- */
356
- this.columnReorder = new EventEmitter();
357
- /**
358
- * Fires when the user changes the visibility of the columns from the column menu or column chooser.
359
- */
360
- this.columnVisibilityChange = new EventEmitter();
361
- /**
362
- * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
363
- */
364
- this.columnLockedChange = new EventEmitter();
365
- /**
366
- * Fires when the user changes the sticky state of the columns from the column menu.
367
- */
368
- this.columnStickyChange = new EventEmitter();
369
- /**
370
- * Fires when the user scrolls to the last record on the page and enables endless scrolling
371
- * ([see example]({% slug scrollmmodes_grid %}#toc-endless-scrolling)).
372
- * You have to handle the event yourself and page the data.
373
- */
374
- this.scrollBottom = new EventEmitter();
375
- /**
376
- * Fires when the grid content is scrolled.
377
- * For performance reasons, the event is triggered outside the Angular zone. Enter the Angular zone if you make any changes that require change detection.
378
- */
379
- this.contentScroll = new EventEmitter();
380
- /**
381
- * A query list of all declared columns.
382
- */
383
- this.columns = new QueryList();
384
- this.hostClass = true;
385
- this.footer = new QueryList();
386
- this.selectionDirective = false;
387
- this.ariaRootId = `k-${guid()}`;
388
- /**
389
- * @hidden
390
- */
391
- this.showLicenseWatermark = false;
392
- this.columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
393
- if (!isUniversal()) {
394
- column.matchesMedia = this.matchesMedia(column);
395
- }
396
- return column.isVisible;
397
- }));
398
- this.view = new DataCollection(() => new DataResultIterator(this.data, this.skip, this.hasGroupFooters));
399
- this.shouldGenerateColumns = true;
400
- this.notifyTimeout = null;
401
- this._sort = new Array();
402
- this._group = new Array();
403
- this._skip = 0;
404
- this._data = [];
405
- this.cachedWindowWidth = 0;
406
- this._rowSelected = null;
407
- this._isRowSelectable = null;
408
- this._cellSelected = null;
409
- this._rowReorderable = false;
410
- this._navigable = [];
411
- this._size = 'medium';
412
- this._loading = false;
413
- /**
414
- * @hidden
415
- */
416
- this.blockArrowSelection = false;
417
- this.rtl = false;
418
- this._rowClass = () => null;
419
- const isValid = validatePackage(packageMetadata);
420
- this.showLicenseWatermark = shouldShowValidationUI(isValid);
421
- this.ctx.grid = this;
422
- this.localizationSubscription = this.localization.changes.subscribe(({ rtl }) => {
423
- this.rtl = rtl;
424
- this.direction = this.rtl ? 'rtl' : 'ltr';
425
- });
426
- this.groupInfoService.registerColumnsContainer(() => this.columnList);
427
- this.columnInfoService.init(this.columnsContainer, () => this.columnList);
428
- this.columnVisibilityChangeSubscription = this.columnInfoService.visibilityChange.subscribe((changed) => {
429
- this.columnVisibilityChange.emit(new ColumnVisibilityChangeEvent(changed));
430
- });
431
- this.columnLockedChangeSubscription = this.columnInfoService.lockedChange.subscribe((changed) => {
432
- this.columnLockedChange.emit(new ColumnLockedChangeEvent(changed));
433
- });
434
- this.columnStickyChangeSubscription = this.columnInfoService.stickyChange.subscribe((changed) => {
435
- this.columnStickyChange.emit(new ColumnStickyChangeEvent(changed));
436
- });
437
- this.groupExpandCollapseSubscription = handleExpandCollapseGroupsService(groupsService, this.groupExpand, this.groupCollapse, ({ group, groupIndex, parentGroup }) => ({ group, groupIndex, parentGroup }));
438
- this.detailsServiceSubscription = handleExpandCollapseDetailsService(detailsService, this.detailExpand, this.detailCollapse, args => args);
439
- this.filterSubscription = this.filterService.changes.subscribe(x => {
440
- this.filterChange.emit(x);
441
- });
442
- this.sortSubscription = this.sortService.changes.subscribe(x => {
443
- this.sortChange.emit(x);
444
- });
445
- this.attachStateChangesEmitter();
446
- this.attachEditHandlers();
447
- this.attachDomEventHandlers();
448
- this.pdfSubscription = this.pdfService.exportClick.subscribe(this.emitPDFExportEvent.bind(this));
449
- this.excelSubscription = this.excelService.exportClick.subscribe(this.saveAsExcel.bind(this));
450
- this.columnsContainerChange();
451
- this.handleColumnResize();
452
- this.columnList = new ColumnList(this.columns);
453
- this.columnReorderSubscription = this.columnReorderService
454
- .changes.subscribe(this.reorder.bind(this));
455
- this.columnRangeChangeSubscription = this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this));
456
- }
148
+ supportService;
149
+ selectionService;
150
+ cellSelectionService;
151
+ wrapper;
152
+ groupInfoService;
153
+ groupsService;
154
+ changeNotification;
155
+ detailsService;
156
+ editService;
157
+ filterService;
158
+ pdfService;
159
+ responsiveService;
160
+ renderer;
161
+ excelService;
162
+ ngZone;
163
+ scrollSyncService;
164
+ domEvents;
165
+ columnResizingService;
166
+ changeDetectorRef;
167
+ columnReorderService;
168
+ columnInfoService;
169
+ navigationService;
170
+ sortService;
171
+ scrollRequestService;
172
+ localization;
173
+ ctx;
174
+ sizingService;
175
+ rowReorderService;
457
176
  /**
458
177
  * Sets the data of the Grid. If an array is provided, the Grid automatically gets the total count
459
178
  * ([more information and example]({% slug binding_grid %})).
@@ -481,6 +200,29 @@ export class GridComponent {
481
200
  get hintText() {
482
201
  return this.rowReorderService.getDefaultHintText(this.columnList, this.flatData);
483
202
  }
203
+ /**
204
+ * Defines the page size used by the Grid pager.
205
+ * Required by the [paging]({% slug paging_grid %}) functionality.
206
+ */
207
+ pageSize;
208
+ /**
209
+ * Defines the height (in pixels) that is used when the `scrollable` option of the Grid is set.
210
+ * To set the height of the Grid, you can also use `style.height`. The `style.height`
211
+ * option supports units such as `px`, `%`, `em`, `rem`, and others.
212
+ */
213
+ height;
214
+ /**
215
+ * Represent the actual height of each Grid row (`tr`) element in the DOM.
216
+ * Required by the [virtual scrolling functionality]({% slug scrollmmodes_grid %}).
217
+ * Set the `rowHeight` option to the exact pixels as the height of the `tr` element appears in the DOM.
218
+ */
219
+ rowHeight;
220
+ /**
221
+ * Represent the actual height of each Grid detail row (`tr`) element in the DOM.
222
+ * Required by the [virtual scrolling functionality]({% slug scrollmmodes_grid %}).
223
+ * Set the `detailRowHeight` option to the exact pixels as the height of the detail Grid `tr` element appears in the DOM.
224
+ */
225
+ detailRowHeight;
484
226
  /**
485
227
  * Defines the number of records to be skipped by the pager.
486
228
  * Required by the [paging]({% slug paging_grid %}) functionality.
@@ -493,6 +235,18 @@ export class GridComponent {
493
235
  this._skip = this.rowReorderService.skip = value;
494
236
  }
495
237
  }
238
+ /**
239
+ * Defines the scroll mode used by the Grid.
240
+ *
241
+ * @default 'scrollable'
242
+ */
243
+ scrollable = 'scrollable';
244
+ /**
245
+ * Enables the [single-row selection](slug:grid_row_selection) of the Grid.
246
+ *
247
+ * @default false
248
+ */
249
+ selectable = false;
496
250
  /**
497
251
  * The descriptors by which the data will be sorted ([see example]({% slug sorting_grid %})).
498
252
  */
@@ -518,6 +272,17 @@ export class GridComponent {
518
272
  get size() {
519
273
  return this._size;
520
274
  }
275
+ /**
276
+ * A function that defines how to track changes for the data rows.
277
+ * By default, the Grid tracks changes by the index of the data item.
278
+ * Edited rows are tracked by reference.
279
+ * [See example](slug:track_changes_grid)
280
+ */
281
+ trackBy = defaultTrackBy;
282
+ /**
283
+ * The descriptor by which the data will be filtered ([see examples]({% slug filtering_grid %})).
284
+ */
285
+ filter;
521
286
  /**
522
287
  * The descriptors by which the data will be grouped ([see example]({% slug grouping_grid %})).
523
288
  */
@@ -531,6 +296,11 @@ export class GridComponent {
531
296
  get group() {
532
297
  return this._group;
533
298
  }
299
+ /**
300
+ * If set to `true`, the grid will render only the columns in the current viewport.
301
+ * @default false
302
+ */
303
+ virtualColumns = false;
534
304
  /**
535
305
  * @hidden
536
306
  */
@@ -593,6 +363,30 @@ export class GridComponent {
593
363
  get marqueeSelection() {
594
364
  return this.selectionService.enableMarquee || this.cellSelectionService.enableMarquee;
595
365
  }
366
+ /**
367
+ * @hidden
368
+ */
369
+ gridData = () => { return this.flatData; };
370
+ /**
371
+ * Enables the [filtering]({% slug filtering_grid %}) of the Grid columns that have their `field` option set.
372
+ * @default false
373
+ */
374
+ filterable = false;
375
+ /**
376
+ * Enables the [sorting]({% slug sorting_grid %}) of the Grid columns that have their `field` option set.
377
+ * @default false
378
+ */
379
+ sortable = false;
380
+ /**
381
+ * Configures the pager of the Grid ([see example](slug:paging_grid_settings)).
382
+ * @default false
383
+ */
384
+ pageable = false;
385
+ /**
386
+ * If set to `true`, the user can group the Grid by dragging the column header cells ([see example]({% slug grouping_grid %})).
387
+ * @default false
388
+ */
389
+ groupable = false;
596
390
  /**
597
391
  * Enables the [row reordering]({% slug reordering_rows_grid %}) of the Grid.
598
392
  * @default false
@@ -646,6 +440,15 @@ export class GridComponent {
646
440
  get navigatable() {
647
441
  return this.navigable;
648
442
  }
443
+ /**
444
+ * Indicates whether the Grid columns will be resized during initialization so that
445
+ * they fit their headers and row content.
446
+ * Columns with `autoSize` set to `false` are excluded.
447
+ * To dynamically update the column width to match the new content,
448
+ * refer to [this example]({% slug resizing_columns_grid %}).
449
+ * @default false
450
+ */
451
+ autoSize = false;
649
452
  /**
650
453
  * Defines a function that is executed for every data row in the component
651
454
  * ([see example](slug:styling_grid_rows)).
@@ -740,6 +543,20 @@ export class GridComponent {
740
543
  this.defaultSelection ? this.defaultSelection.stateToArray() : this.selectionDirective.stateToArray() :
741
544
  [];
742
545
  }
546
+ /**
547
+ * If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells
548
+ * ([see example]({% slug resizing_columns_grid %})).
549
+ *
550
+ * @default false
551
+ */
552
+ resizable = false;
553
+ /**
554
+ * If set to `true`, the user can reorder columns by dragging their header cells
555
+ * ([see example]({% slug reordering_columns_grid %})).
556
+ *
557
+ * @default false
558
+ */
559
+ reorderable = false;
743
560
  /**
744
561
  * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
745
562
  *
@@ -752,9 +569,146 @@ export class GridComponent {
752
569
  get loading() {
753
570
  return this._loading;
754
571
  }
572
+ /**
573
+ * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_grid %})).
574
+ *
575
+ * @default false
576
+ */
577
+ columnMenu = false;
578
+ /**
579
+ * Specifies if the header of the grid will be hidden. The header is visible by default.
580
+ * The header includes column headers and the [filter row](slug:filter_row).
581
+ * @default false
582
+ */
583
+ hideHeader = false;
584
+ /**
585
+ * Fires when the Grid filter is modified through the UI.
586
+ * You have to handle the event yourself and filter the data.
587
+ */
588
+ filterChange = new EventEmitter();
589
+ /**
590
+ * Fires when the page of the Grid is changed ([see example]({% slug paging_grid %})).
591
+ * You have to handle the event yourself and page the data.
592
+ */
593
+ pageChange = new EventEmitter();
594
+ /**
595
+ * Fires when the grouping of the Grid is changed.
596
+ * You have to handle the event yourself and group the data ([see example]({% slug grouping_grid %})).
597
+ */
598
+ groupChange;
599
+ /**
600
+ * Fires when the sorting of the Grid is changed ([see example]({% slug sorting_grid %})).
601
+ * You have to handle the event yourself and sort the data.
602
+ */
603
+ sortChange = new EventEmitter();
604
+ /**
605
+ * Fires when the user selects a Grid row.
606
+ */
607
+ selectionChange = new EventEmitter();
608
+ /**
609
+ * Fires when the user drops the dragged row and reordering is performed.
610
+ */
611
+ rowReorder = new EventEmitter();
612
+ /**
613
+ * Fires when the data state of the Grid is changed.
614
+ */
615
+ dataStateChange = new EventEmitter();
616
+ /**
617
+ * Fires when the user expands a group header.
618
+ */
619
+ groupExpand = new EventEmitter();
620
+ /**
621
+ * Fires when the user collapses a group header.
622
+ */
623
+ groupCollapse = new EventEmitter();
624
+ /**
625
+ * Fires when the user expands a master row.
626
+ */
627
+ detailExpand = new EventEmitter();
628
+ /**
629
+ * Fires when the user collapses a master row.
630
+ */
631
+ detailCollapse = new EventEmitter();
632
+ /**
633
+ * Fires when the user clicks the **Edit** command button to edit a row
634
+ * ([see example])({% slug inline_editing_grid %}#toc-editing-records-1).
635
+ */
636
+ edit = new EventEmitter();
637
+ /**
638
+ * Fires when the user clicks the **Cancel** command button to close a row
639
+ * ([see example]({% slug inline_editing_grid %}#toc-canceling-editing-1)).
640
+ */
641
+ cancel = new EventEmitter();
642
+ /**
643
+ * Fires when the user clicks the **Save** command button to save changes in a row
644
+ * ([see example]({% slug inline_editing_grid %}#toc-saving-records-1)).
645
+ */
646
+ save = new EventEmitter();
647
+ /**
648
+ * Fires when the user clicks the **Remove** command button to remove a row
649
+ * ([see example]({% slug inline_editing_grid %}#toc-removing-records-1)).
650
+ */
651
+ remove = new EventEmitter();
652
+ /**
653
+ * Fires when the user clicks the **Add** command button to add a new row
654
+ * ([see example]({% slug inline_editing_grid %}#toc-adding-records-1)).
655
+ */
656
+ add = new EventEmitter();
657
+ /**
658
+ * Fires when the user leaves an edited cell ([see example](slug:editing_incell_grid)).
659
+ */
660
+ cellClose = new EventEmitter();
661
+ /**
662
+ * Fires when the user clicks a cell ([see example](slug:editing_incell_grid)).
663
+ */
664
+ cellClick;
665
+ /**
666
+ * Fires when the user clicks the **Export to PDF** command button.
667
+ */
668
+ pdfExport = new EventEmitter();
669
+ /**
670
+ * Fires when the user clicks the **Export to Excel** command button.
671
+ */
672
+ excelExport = new EventEmitter();
673
+ /**
674
+ * Fires when the user completes the resizing of the column.
675
+ */
676
+ columnResize;
677
+ /**
678
+ * Fires when the user completes the reordering of the column.
679
+ */
680
+ columnReorder = new EventEmitter();
681
+ /**
682
+ * Fires when the user changes the visibility of the columns from the column menu or column chooser.
683
+ */
684
+ columnVisibilityChange = new EventEmitter();
685
+ /**
686
+ * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
687
+ */
688
+ columnLockedChange = new EventEmitter();
689
+ /**
690
+ * Fires when the user changes the sticky state of the columns from the column menu.
691
+ */
692
+ columnStickyChange = new EventEmitter();
693
+ /**
694
+ * Fires when the user scrolls to the last record on the page and enables endless scrolling
695
+ * ([see example]({% slug scrollmmodes_grid %}#toc-endless-scrolling)).
696
+ * You have to handle the event yourself and page the data.
697
+ */
698
+ scrollBottom = new EventEmitter();
699
+ /**
700
+ * Fires when the grid content is scrolled.
701
+ * For performance reasons, the event is triggered outside the Angular zone. Enter the Angular zone if you make any changes that require change detection.
702
+ */
703
+ contentScroll = new EventEmitter();
704
+ /**
705
+ * A query list of all declared columns.
706
+ */
707
+ columns = new QueryList();
755
708
  get dir() {
756
709
  return this.direction;
757
710
  }
711
+ hostClass = true;
758
712
  get sizeSmallClass() {
759
713
  return this.size === 'small';
760
714
  }
@@ -770,6 +724,7 @@ export class GridComponent {
770
724
  get noScrollbarClass() {
771
725
  return this.scrollbarWidth === 0;
772
726
  }
727
+ detailTemplateChildren;
773
728
  get detailTemplate() {
774
729
  if (this._customDetailTemplate) {
775
730
  return this._customDetailTemplate;
@@ -779,6 +734,7 @@ export class GridComponent {
779
734
  set detailTemplate(detailTemplate) {
780
735
  this._customDetailTemplate = detailTemplate;
781
736
  }
737
+ cellLoadingTemplateChildren;
782
738
  get cellLoadingTemplate() {
783
739
  if (this._cellLoadingTemplate) {
784
740
  return this._customDetailTemplate;
@@ -788,6 +744,7 @@ export class GridComponent {
788
744
  set cellLoadingTemplate(cellLoadingTemplate) {
789
745
  this._cellLoadingTemplate = cellLoadingTemplate;
790
746
  }
747
+ loadingTemplateChildren;
791
748
  get loadingTemplate() {
792
749
  if (this._loadingTemplate) {
793
750
  return this._loadingTemplate;
@@ -797,6 +754,7 @@ export class GridComponent {
797
754
  set loadingTemplate(loadingTemplate) {
798
755
  this._loadingTemplate = loadingTemplate;
799
756
  }
757
+ statusBarTemplateChildren;
800
758
  get statusBarTemplate() {
801
759
  if (this._statusBarTemplate) {
802
760
  return this._statusBarTemplate;
@@ -806,6 +764,7 @@ export class GridComponent {
806
764
  set statusBarTemplate(statusBarTemplate) {
807
765
  this._statusBarTemplate = statusBarTemplate;
808
766
  }
767
+ noRecordsTemplateChildren;
809
768
  get noRecordsTemplate() {
810
769
  if (this._customNoRecordsTemplate) {
811
770
  return this._customNoRecordsTemplate;
@@ -815,6 +774,7 @@ export class GridComponent {
815
774
  set noRecordsTemplate(customNoRecordsTemplate) {
816
775
  this._customNoRecordsTemplate = customNoRecordsTemplate;
817
776
  }
777
+ pagerTemplateChildren;
818
778
  get pagerTemplate() {
819
779
  if (this._customPagerTemplate) {
820
780
  return this._customPagerTemplate;
@@ -824,6 +784,7 @@ export class GridComponent {
824
784
  set pagerTemplate(customPagerTemplate) {
825
785
  this._customPagerTemplate = customPagerTemplate;
826
786
  }
787
+ toolbarTemplateChildren;
827
788
  get toolbarTemplate() {
828
789
  if (this._customToolbarTemplate) {
829
790
  return this._customToolbarTemplate;
@@ -833,6 +794,13 @@ export class GridComponent {
833
794
  set toolbarTemplate(customToolbarTemplate) {
834
795
  this._customToolbarTemplate = customToolbarTemplate;
835
796
  }
797
+ columnMenuTemplates;
798
+ lockedHeader;
799
+ header;
800
+ footer = new QueryList();
801
+ ariaRoot;
802
+ dragTargetContainer;
803
+ dropTargetContainer;
836
804
  get scrollbarWidth() {
837
805
  return this.supportService.scrollbarWidth;
838
806
  }
@@ -845,6 +813,21 @@ export class GridComponent {
845
813
  const left = this.rtl ? padding : 0;
846
814
  return `0 ${right} 0 ${left}`;
847
815
  }
816
+ columnMenuOptions;
817
+ columnList;
818
+ selectionDirective = false;
819
+ ariaRootId = `k-${guid()}`;
820
+ /**
821
+ * @hidden
822
+ */
823
+ showLicenseWatermark = false;
824
+ columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
825
+ if (!isUniversal()) {
826
+ column.matchesMedia = this.matchesMedia(column);
827
+ }
828
+ return column.isVisible;
829
+ }));
830
+ view = new DataCollection(() => new DataResultIterator(this.data, this.skip, this.hasGroupFooters));
848
831
  get hasGroupFooters() {
849
832
  return this.columnsContainer.hasGroupFooter;
850
833
  }
@@ -863,6 +846,31 @@ export class GridComponent {
863
846
  get navigation() {
864
847
  return this.navigationService;
865
848
  }
849
+ shouldGenerateColumns = true;
850
+ direction;
851
+ notifyTimeout = null;
852
+ _sort = new Array();
853
+ _group = new Array();
854
+ _skip = 0;
855
+ _data = [];
856
+ cachedWindowWidth = 0;
857
+ defaultSelection;
858
+ _rowSelected = null;
859
+ _isRowSelectable = null;
860
+ _cellSelected = null;
861
+ _customDetailTemplate;
862
+ _cellLoadingTemplate;
863
+ _loadingTemplate;
864
+ _statusBarTemplate;
865
+ _customNoRecordsTemplate;
866
+ _customPagerTemplate;
867
+ _customToolbarTemplate;
868
+ _rowReorderable = false;
869
+ leafViewportColumns;
870
+ viewportColumns;
871
+ _navigable = [];
872
+ _size = 'medium';
873
+ _loading = false;
866
874
  get isVirtual() {
867
875
  return this.scrollable === 'virtual';
868
876
  }
@@ -944,6 +952,105 @@ export class GridComponent {
944
952
  getHintSettings(type) {
945
953
  return this.rowReorderService[type];
946
954
  }
955
+ /**
956
+ * @hidden
957
+ */
958
+ blockArrowSelection = false;
959
+ selectionSubscription;
960
+ stateChangeSubscription;
961
+ groupExpandCollapseSubscription;
962
+ editServiceSubscription;
963
+ detailsServiceSubscription;
964
+ filterSubscription;
965
+ sortSubscription;
966
+ columnsChangeSubscription;
967
+ pdfSubscription;
968
+ excelSubscription;
969
+ columnsContainerChangeSubscription;
970
+ cellClickSubscription;
971
+ footerChangeSubscription;
972
+ columnResizingSubscription;
973
+ columnReorderSubscription;
974
+ detachElementEventHandlers;
975
+ localizationSubscription;
976
+ columnVisibilityChangeSubscription;
977
+ columnLockedChangeSubscription;
978
+ columnStickyChangeSubscription;
979
+ focusElementSubscription;
980
+ columnRangeChangeSubscription;
981
+ rowReorderSubscription;
982
+ rtl = false;
983
+ _rowSticky;
984
+ constructor(supportService, selectionService, cellSelectionService, wrapper, groupInfoService, groupsService, changeNotification, detailsService, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, localization, ctx, sizingService, rowReorderService) {
985
+ this.supportService = supportService;
986
+ this.selectionService = selectionService;
987
+ this.cellSelectionService = cellSelectionService;
988
+ this.wrapper = wrapper;
989
+ this.groupInfoService = groupInfoService;
990
+ this.groupsService = groupsService;
991
+ this.changeNotification = changeNotification;
992
+ this.detailsService = detailsService;
993
+ this.editService = editService;
994
+ this.filterService = filterService;
995
+ this.pdfService = pdfService;
996
+ this.responsiveService = responsiveService;
997
+ this.renderer = renderer;
998
+ this.excelService = excelService;
999
+ this.ngZone = ngZone;
1000
+ this.scrollSyncService = scrollSyncService;
1001
+ this.domEvents = domEvents;
1002
+ this.columnResizingService = columnResizingService;
1003
+ this.changeDetectorRef = changeDetectorRef;
1004
+ this.columnReorderService = columnReorderService;
1005
+ this.columnInfoService = columnInfoService;
1006
+ this.navigationService = navigationService;
1007
+ this.sortService = sortService;
1008
+ this.scrollRequestService = scrollRequestService;
1009
+ this.localization = localization;
1010
+ this.ctx = ctx;
1011
+ this.sizingService = sizingService;
1012
+ this.rowReorderService = rowReorderService;
1013
+ const isValid = validatePackage(packageMetadata);
1014
+ this.showLicenseWatermark = shouldShowValidationUI(isValid);
1015
+ this.ctx.grid = this;
1016
+ this.groupChange = new ZoneAwareEventEmitter(this.ngZone);
1017
+ this.cellClick = new ZoneAwareEventEmitter(this.ngZone);
1018
+ this.columnResize = new ZoneAwareEventEmitter(this.ngZone);
1019
+ this.localizationSubscription = this.localization.changes.subscribe(({ rtl }) => {
1020
+ this.rtl = rtl;
1021
+ this.direction = this.rtl ? 'rtl' : 'ltr';
1022
+ });
1023
+ this.groupInfoService.registerColumnsContainer(() => this.columnList);
1024
+ this.columnInfoService.init(this.columnsContainer, () => this.columnList);
1025
+ this.columnVisibilityChangeSubscription = this.columnInfoService.visibilityChange.subscribe((changed) => {
1026
+ this.columnVisibilityChange.emit(new ColumnVisibilityChangeEvent(changed));
1027
+ });
1028
+ this.columnLockedChangeSubscription = this.columnInfoService.lockedChange.subscribe((changed) => {
1029
+ this.columnLockedChange.emit(new ColumnLockedChangeEvent(changed));
1030
+ });
1031
+ this.columnStickyChangeSubscription = this.columnInfoService.stickyChange.subscribe((changed) => {
1032
+ this.columnStickyChange.emit(new ColumnStickyChangeEvent(changed));
1033
+ });
1034
+ this.groupExpandCollapseSubscription = handleExpandCollapseGroupsService(groupsService, this.groupExpand, this.groupCollapse, ({ group, groupIndex, parentGroup }) => ({ group, groupIndex, parentGroup }));
1035
+ this.detailsServiceSubscription = handleExpandCollapseDetailsService(detailsService, this.detailExpand, this.detailCollapse, args => args);
1036
+ this.filterSubscription = this.filterService.changes.subscribe(x => {
1037
+ this.filterChange.emit(x);
1038
+ });
1039
+ this.sortSubscription = this.sortService.changes.subscribe(x => {
1040
+ this.sortChange.emit(x);
1041
+ });
1042
+ this.attachStateChangesEmitter();
1043
+ this.attachEditHandlers();
1044
+ this.attachDomEventHandlers();
1045
+ this.pdfSubscription = this.pdfService.exportClick.subscribe(this.emitPDFExportEvent.bind(this));
1046
+ this.excelSubscription = this.excelService.exportClick.subscribe(this.saveAsExcel.bind(this));
1047
+ this.columnsContainerChange();
1048
+ this.handleColumnResize();
1049
+ this.columnList = new ColumnList(this.columns);
1050
+ this.columnReorderSubscription = this.columnReorderService
1051
+ .changes.subscribe(this.reorder.bind(this));
1052
+ this.columnRangeChangeSubscription = this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this));
1053
+ }
947
1054
  /**
948
1055
  * Expands the specified master row ([see example]({% slug hierarchy_grid %})).
949
1056
  *
@@ -1082,6 +1189,10 @@ export class GridComponent {
1082
1189
  this.attachElementEventHandlers();
1083
1190
  this.updateNavigationMetadata();
1084
1191
  this.applyAutoSize();
1192
+ const toolbarComponentWrapper = this.wrapper?.nativeElement?.querySelector('kendo-toolbar');
1193
+ if (toolbarComponentWrapper) {
1194
+ this.renderer.addClass(toolbarComponentWrapper, 'k-grid-toolbar');
1195
+ }
1085
1196
  }
1086
1197
  ngAfterContentChecked() {
1087
1198
  this.columnsContainer.refresh();
@@ -1717,6 +1828,9 @@ export class GridComponent {
1717
1828
  if (this.rowSticky && this.groupable) {
1718
1829
  throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky rows', 'grouping'));
1719
1830
  }
1831
+ if (this.wrapper?.nativeElement?.querySelector('kendo-toolbar') && this.toolbarTemplate) {
1832
+ console.warn(GridConfigurationErrorMessages.unsupportedToolbarConfig);
1833
+ }
1720
1834
  validateColumnsField(this.columnList);
1721
1835
  }
1722
1836
  }
@@ -1920,6 +2034,7 @@ export class GridComponent {
1920
2034
  throw new Error(GridConfigurationErrorMessages.focusNavigable);
1921
2035
  }
1922
2036
  }
2037
+ _rowClass = () => null;
1923
2038
  navigationMetadata() {
1924
2039
  const isVirtual = this.isVirtual;
1925
2040
  const pageSize = this.pageSize;
@@ -2030,54 +2145,53 @@ export class GridComponent {
2030
2145
  this.dragTargetContainer?.notify();
2031
2146
  this.dropTargetContainer?.notify();
2032
2147
  }
2033
- }
2034
- GridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GridComponent, deps: [{ token: i1.BrowserSupportService }, { token: i2.SelectionService }, { token: i3.CellSelectionService }, { token: i0.ElementRef }, { token: i4.GroupInfoService }, { token: i5.GroupsService }, { token: i6.ChangeNotificationService }, { token: i7.DetailsService }, { token: i8.EditService }, { token: i9.FilterService }, { token: i10.PDFService }, { token: i11.ResponsiveService }, { token: i0.Renderer2 }, { token: i12.ExcelService }, { token: i0.NgZone }, { token: i13.ScrollSyncService }, { token: i14.DomEventsService }, { token: i15.ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: i16.ColumnReorderService }, { token: i17.ColumnInfoService }, { token: i18.NavigationService }, { token: i19.SortService }, { token: i20.ScrollRequestService }, { token: i21.LocalizationService }, { token: i22.ContextService }, { token: i23.SizingOptionsService }, { token: i24.RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
2035
- GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GridComponent, isStandalone: true, selector: "kendo-grid", inputs: { data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", detailRowHeight: "detailRowHeight", skip: "skip", scrollable: "scrollable", selectable: "selectable", sort: "sort", size: "size", trackBy: "trackBy", filter: "filter", group: "group", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", groupable: "groupable", rowReorderable: "rowReorderable", navigable: "navigable", navigatable: "navigatable", autoSize: "autoSize", rowClass: "rowClass", rowSticky: "rowSticky", rowSelected: "rowSelected", isRowSelectable: "isRowSelectable", cellSelected: "cellSelected", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", isDetailExpanded: "isDetailExpanded", isGroupExpanded: "isGroupExpanded" }, outputs: { filterChange: "filterChange", pageChange: "pageChange", groupChange: "groupChange", sortChange: "sortChange", selectionChange: "selectionChange", rowReorder: "rowReorder", dataStateChange: "dataStateChange", groupExpand: "groupExpand", groupCollapse: "groupCollapse", detailExpand: "detailExpand", detailCollapse: "detailCollapse", edit: "edit", cancel: "cancel", save: "save", remove: "remove", add: "add", cellClose: "cellClose", cellClick: "cellClick", pdfExport: "pdfExport", excelExport: "excelExport", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", columnStickyChange: "columnStickyChange", scrollBottom: "scrollBottom", contentScroll: "contentScroll" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClass", "class.k-grid-sm": "this.sizeSmallClass", "class.k-grid-md": "this.sizeMediumClass", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass" } }, providers: [
2036
- BrowserSupportService,
2037
- LocalizationService,
2038
- ColumnInfoService,
2039
- SelectionService,
2040
- CellSelectionService,
2041
- DetailsService,
2042
- GroupsService,
2043
- GroupInfoService,
2044
- ChangeNotificationService,
2045
- EditService,
2046
- PDFService,
2047
- SuspendService,
2048
- {
2049
- provide: CELL_CONTEXT,
2050
- useValue: EMPTY_CELL_CONTEXT
2051
- },
2052
- {
2053
- provide: L10N_PREFIX,
2054
- useValue: 'kendo.grid'
2055
- },
2056
- FilterService,
2057
- ResponsiveService,
2058
- PagerContextService,
2059
- ExcelService,
2060
- ScrollSyncService,
2061
- ResizeService,
2062
- LocalDataChangesService,
2063
- DomEventsService,
2064
- ColumnResizingService,
2065
- SinglePopupService,
2066
- DragAndDropService,
2067
- DragHintService,
2068
- DropCueService,
2069
- ColumnReorderService,
2070
- NavigationService,
2071
- FocusRoot,
2072
- IdService,
2073
- CellSelectionAggregateService,
2074
- ScrollRequestService,
2075
- SortService,
2076
- ContextService,
2077
- SizingOptionsService,
2078
- RowReorderService,
2079
- ClipboardService
2080
- ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "statusBarTemplateChildren", predicate: StatusBarTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
2148
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, deps: [{ token: i1.BrowserSupportService }, { token: i2.SelectionService }, { token: i3.CellSelectionService }, { token: i0.ElementRef }, { token: i4.GroupInfoService }, { token: i5.GroupsService }, { token: i6.ChangeNotificationService }, { token: i7.DetailsService }, { token: i8.EditService }, { token: i9.FilterService }, { token: i10.PDFService }, { token: i11.ResponsiveService }, { token: i0.Renderer2 }, { token: i12.ExcelService }, { token: i0.NgZone }, { token: i13.ScrollSyncService }, { token: i14.DomEventsService }, { token: i15.ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: i16.ColumnReorderService }, { token: i17.ColumnInfoService }, { token: i18.NavigationService }, { token: i19.SortService }, { token: i20.ScrollRequestService }, { token: i21.LocalizationService }, { token: i22.ContextService }, { token: i23.SizingOptionsService }, { token: i24.RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
2149
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridComponent, isStandalone: true, selector: "kendo-grid", inputs: { data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", detailRowHeight: "detailRowHeight", skip: "skip", scrollable: "scrollable", selectable: "selectable", sort: "sort", size: "size", trackBy: "trackBy", filter: "filter", group: "group", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", groupable: "groupable", rowReorderable: "rowReorderable", navigable: "navigable", navigatable: "navigatable", autoSize: "autoSize", rowClass: "rowClass", rowSticky: "rowSticky", rowSelected: "rowSelected", isRowSelectable: "isRowSelectable", cellSelected: "cellSelected", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", isDetailExpanded: "isDetailExpanded", isGroupExpanded: "isGroupExpanded" }, outputs: { filterChange: "filterChange", pageChange: "pageChange", groupChange: "groupChange", sortChange: "sortChange", selectionChange: "selectionChange", rowReorder: "rowReorder", dataStateChange: "dataStateChange", groupExpand: "groupExpand", groupCollapse: "groupCollapse", detailExpand: "detailExpand", detailCollapse: "detailCollapse", edit: "edit", cancel: "cancel", save: "save", remove: "remove", add: "add", cellClose: "cellClose", cellClick: "cellClick", pdfExport: "pdfExport", excelExport: "excelExport", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", columnStickyChange: "columnStickyChange", scrollBottom: "scrollBottom", contentScroll: "contentScroll" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClass", "class.k-grid-sm": "this.sizeSmallClass", "class.k-grid-md": "this.sizeMediumClass", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass" } }, providers: [
2150
+ BrowserSupportService,
2151
+ LocalizationService,
2152
+ ColumnInfoService,
2153
+ SelectionService,
2154
+ CellSelectionService,
2155
+ DetailsService,
2156
+ GroupsService,
2157
+ GroupInfoService,
2158
+ ChangeNotificationService,
2159
+ EditService,
2160
+ PDFService,
2161
+ SuspendService,
2162
+ {
2163
+ provide: CELL_CONTEXT,
2164
+ useValue: EMPTY_CELL_CONTEXT
2165
+ },
2166
+ {
2167
+ provide: L10N_PREFIX,
2168
+ useValue: 'kendo.grid'
2169
+ },
2170
+ FilterService,
2171
+ ResponsiveService,
2172
+ PagerContextService,
2173
+ ExcelService,
2174
+ ScrollSyncService,
2175
+ ResizeService,
2176
+ LocalDataChangesService,
2177
+ DomEventsService,
2178
+ ColumnResizingService,
2179
+ SinglePopupService,
2180
+ DragAndDropService,
2181
+ DragHintService,
2182
+ DropCueService,
2183
+ ColumnReorderService,
2184
+ NavigationService,
2185
+ FocusRoot,
2186
+ IdService,
2187
+ CellSelectionAggregateService,
2188
+ ScrollRequestService,
2189
+ SortService,
2190
+ ContextService,
2191
+ SizingOptionsService,
2192
+ RowReorderService,
2193
+ ClipboardService
2194
+ ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "statusBarTemplateChildren", predicate: StatusBarTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
2081
2195
  <ng-container kendoGridLocalizedMessages
2082
2196
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
2083
2197
  groupPanelEmpty="Drag a column header and drop it here to group by that column"
@@ -2330,13 +2444,13 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2330
2444
  >
2331
2445
  </ng-container>
2332
2446
  <kendo-grid-toolbar
2333
- class="k-toolbar k-grid-toolbar"
2334
2447
  *ngIf="showTopToolbar"
2335
2448
  [size]="size"
2336
2449
  [attr.aria-label]="messageFor('topToolbarLabel')"
2337
2450
  [navigable]="navigation.toolbarEnabled"
2338
2451
  [attr.aria-controls]="ariaRootId"
2339
2452
  position="top"></kendo-grid-toolbar>
2453
+ <ng-content select="kendo-toolbar"></ng-content>
2340
2454
  <kendo-pager
2341
2455
  *ngIf="showTopPager"
2342
2456
  [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
@@ -2642,7 +2756,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2642
2756
  (pageChange)="notifyPageChange('pager', $event)">
2643
2757
  </kendo-pager>
2644
2758
  <kendo-grid-toolbar
2645
- class="k-toolbar k-grid-toolbar k-grid-toolbar-bottom"
2759
+ class="k-grid-toolbar-bottom"
2646
2760
  *ngIf="showBottomToolbar"
2647
2761
  [size]="size"
2648
2762
  [navigable]="navigation.toolbarEnabled"
@@ -2661,8 +2775,9 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2661
2775
  </ng-template>
2662
2776
 
2663
2777
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
2664
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "size", "template"], outputs: ["pageChange"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { 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: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], encapsulation: i0.ViewEncapsulation.None });
2665
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GridComponent, decorators: [{
2778
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "size", "template"], outputs: ["pageChange"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { 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: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], encapsulation: i0.ViewEncapsulation.None });
2779
+ }
2780
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
2666
2781
  type: Component,
2667
2782
  args: [{
2668
2783
  encapsulation: ViewEncapsulation.None,
@@ -2967,13 +3082,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2967
3082
  >
2968
3083
  </ng-container>
2969
3084
  <kendo-grid-toolbar
2970
- class="k-toolbar k-grid-toolbar"
2971
3085
  *ngIf="showTopToolbar"
2972
3086
  [size]="size"
2973
3087
  [attr.aria-label]="messageFor('topToolbarLabel')"
2974
3088
  [navigable]="navigation.toolbarEnabled"
2975
3089
  [attr.aria-controls]="ariaRootId"
2976
3090
  position="top"></kendo-grid-toolbar>
3091
+ <ng-content select="kendo-toolbar"></ng-content>
2977
3092
  <kendo-pager
2978
3093
  *ngIf="showTopPager"
2979
3094
  [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
@@ -3279,7 +3394,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3279
3394
  (pageChange)="notifyPageChange('pager', $event)">
3280
3395
  </kendo-pager>
3281
3396
  <kendo-grid-toolbar
3282
- class="k-toolbar k-grid-toolbar k-grid-toolbar-bottom"
3397
+ class="k-grid-toolbar-bottom"
3283
3398
  *ngIf="showBottomToolbar"
3284
3399
  [size]="size"
3285
3400
  [navigable]="navigation.toolbarEnabled"
@@ -3301,7 +3416,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3301
3416
  `,
3302
3417
  standalone: true,
3303
3418
  imports: [
3304
- LocalizedMessagesDirective, NgIf, ToolbarComponent, PagerComponent, GroupPanelComponent,
3419
+ LocalizedMessagesDirective, NgIf, GridToolbarComponent, PagerComponent, GroupPanelComponent,
3305
3420
  TableDirective, GridTableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective,
3306
3421
  ListComponent, DragTargetContainerDirective, DropTargetContainerDirective, DraggableDirective,
3307
3422
  GridMarqueeDirective, FooterComponent, TableBodyComponent, LoadingComponent, StatusBarComponent,