@progress/kendo-angular-grid 17.0.0-develop.8 → 17.0.0

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 (464) 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 +5 -4
  5. package/column-menu/column-chooser.component.d.ts +1 -1
  6. package/column-menu/column-list.component.d.ts +2 -2
  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/{pager → common}/pager-settings.d.ts +15 -2
  29. package/common/remove-confirmation.d.ts +1 -1
  30. package/common/size-options.d.ts +1 -1
  31. package/data/data.iterators.d.ts +1 -1
  32. package/data/grid-item.interface.d.ts +1 -1
  33. package/databinding.directive.d.ts +1 -1
  34. package/directives.d.ts +8 -21
  35. package/dragdrop/context-types.d.ts +1 -1
  36. package/dragdrop/draggable-column.directive.d.ts +1 -1
  37. package/dragdrop/drop-target.directive.d.ts +1 -1
  38. package/editing/add-command-tool.directive.d.ts +39 -0
  39. package/editing/edit.service.d.ts +3 -3
  40. package/editing-directives/editing-directive-base.d.ts +1 -1
  41. package/editing-directives/in-cell-editing.directive.d.ts +1 -1
  42. package/editing-directives/reactive-editing.directive.d.ts +1 -1
  43. package/editing-directives/template-editing.directive.d.ts +1 -1
  44. package/{esm2020 → esm2022}/aggregates/selection-aggregate.service.mjs +20 -17
  45. package/{esm2020 → esm2022}/aggregates/status-bar-template.directive.mjs +4 -3
  46. package/{esm2020 → esm2022}/aggregates/status-bar.component.mjs +10 -8
  47. package/esm2022/column-menu/column-chooser-item-checked.directive.mjs +45 -0
  48. package/{esm2020 → esm2022}/column-menu/column-chooser.component.mjs +35 -23
  49. package/{esm2020 → esm2022}/column-menu/column-list-kb-nav.service.mjs +6 -4
  50. package/{esm2020 → esm2022}/column-menu/column-list.component.mjs +108 -96
  51. package/{esm2020 → esm2022}/column-menu/column-locked-change-event.mjs +4 -0
  52. package/{esm2020 → esm2022}/column-menu/column-menu-autosize-all.component.mjs +6 -5
  53. package/{esm2020 → esm2022}/column-menu/column-menu-autosize.component.mjs +10 -5
  54. package/{esm2020 → esm2022}/column-menu/column-menu-chooser.component.mjs +33 -29
  55. package/{esm2020 → esm2022}/column-menu/column-menu-container.component.mjs +8 -5
  56. package/{esm2020 → esm2022}/column-menu/column-menu-filter.component.mjs +28 -26
  57. package/{esm2020 → esm2022}/column-menu/column-menu-item-base.mjs +9 -6
  58. package/{esm2020 → esm2022}/column-menu/column-menu-item-content-template.directive.mjs +4 -3
  59. package/{esm2020 → esm2022}/column-menu/column-menu-item.component.mjs +73 -42
  60. package/{esm2020 → esm2022}/column-menu/column-menu-item.directive.mjs +38 -28
  61. package/{esm2020 → esm2022}/column-menu/column-menu-lock.component.mjs +9 -6
  62. package/{esm2020 → esm2022}/column-menu/column-menu-position.component.mjs +38 -28
  63. package/{esm2020 → esm2022}/column-menu/column-menu-sort.component.mjs +9 -6
  64. package/{esm2020 → esm2022}/column-menu/column-menu-stick.component.mjs +9 -6
  65. package/{esm2020 → esm2022}/column-menu/column-menu-template.directive.mjs +4 -3
  66. package/{esm2020 → esm2022}/column-menu/column-menu.component.mjs +97 -63
  67. package/{esm2020 → esm2022}/column-menu/column-menu.service.mjs +34 -10
  68. package/{esm2020 → esm2022}/column-menu/column-sticky-change-event.mjs +4 -0
  69. package/{esm2020 → esm2022}/column-menu/column-visibility-change-event.mjs +4 -0
  70. package/{esm2020 → esm2022}/column-resizing/column-handle.directive.mjs +23 -15
  71. package/{esm2020 → esm2022}/column-resizing/column-resizing.service.mjs +8 -8
  72. package/{esm2020 → esm2022}/column-resizing/table.directive.mjs +17 -8
  73. package/{esm2020 → esm2022}/columns/checkbox-column.component.mjs +24 -16
  74. package/{esm2020 → esm2022}/columns/column-base.mjs +188 -84
  75. package/{esm2020 → esm2022}/columns/column-group.component.mjs +29 -20
  76. package/{esm2020 → esm2022}/columns/column-list.mjs +4 -3
  77. package/{esm2020 → esm2022}/columns/column.component.mjs +62 -46
  78. package/{esm2020 → esm2022}/columns/columns-container.mjs +16 -15
  79. package/{esm2020 → esm2022}/columns/command-column.component.mjs +10 -8
  80. package/{esm2020 → esm2022}/columns/reorder-column.component.mjs +23 -12
  81. package/{esm2020 → esm2022}/columns/span-column.component.mjs +49 -29
  82. package/esm2022/common/clipboard.directive.mjs +190 -0
  83. package/{esm2020 → esm2022}/common/clipboard.service.mjs +12 -9
  84. package/{esm2020 → esm2022}/common/column-info.service.mjs +10 -10
  85. package/esm2022/common/dom-events.service.mjs +26 -0
  86. package/{esm2020 → esm2022}/common/error-messages.mjs +4 -1
  87. package/{esm2020 → esm2022}/common/event-emitter.mjs +1 -0
  88. package/{esm2020 → esm2022}/common/id.service.mjs +4 -3
  89. package/{esm2020 → esm2022}/common/preventable-event.mjs +1 -3
  90. package/{esm2020 → esm2022}/common/provider.service.mjs +10 -3
  91. package/{esm2020 → esm2022}/common/single-popup.service.mjs +21 -10
  92. package/{esm2020 → esm2022}/common/sort.service.mjs +1 -3
  93. package/{esm2020 → esm2022}/data/change-notification.service.mjs +6 -4
  94. package/{esm2020 → esm2022}/data/data.collection.mjs +5 -0
  95. package/{esm2020 → esm2022}/data/data.iterators.mjs +16 -1
  96. package/{esm2020 → esm2022}/databinding.directive.mjs +24 -16
  97. package/{esm2020 → esm2022}/directives.mjs +8 -30
  98. package/{esm2020 → esm2022}/dragdrop/column-reorder-event.mjs +14 -0
  99. package/{esm2020 → esm2022}/dragdrop/column-reorder.service.mjs +4 -6
  100. package/{esm2020 → esm2022}/dragdrop/drag-and-drop.service.mjs +6 -8
  101. package/{esm2020 → esm2022}/dragdrop/drag-hint.service.mjs +7 -4
  102. package/{esm2020 → esm2022}/dragdrop/draggable-column.directive.mjs +22 -13
  103. package/{esm2020 → esm2022}/dragdrop/drop-cue.service.mjs +4 -3
  104. package/{esm2020 → esm2022}/dragdrop/drop-target.directive.mjs +10 -8
  105. package/esm2022/editing/add-command-tool.directive.mjs +64 -0
  106. package/{esm2020 → esm2022}/editing/add-command.directive.mjs +9 -8
  107. package/{esm2020 → esm2022}/editing/cancel-command.directive.mjs +17 -13
  108. package/{esm2020 → esm2022}/editing/cell-close-event.mjs +21 -4
  109. package/{esm2020 → esm2022}/editing/edit-command.directive.mjs +17 -13
  110. package/{esm2020 → esm2022}/editing/edit-template.directive.mjs +4 -3
  111. package/{esm2020 → esm2022}/editing/edit.service.mjs +13 -8
  112. package/{esm2020 → esm2022}/editing/local-data-changes.service.mjs +5 -6
  113. package/{esm2020 → esm2022}/editing/remove-command.directive.mjs +17 -13
  114. package/{esm2020 → esm2022}/editing/save-command.directive.mjs +17 -13
  115. package/{esm2020 → esm2022}/editing-directives/editing-directive-base.mjs +17 -9
  116. package/{esm2020 → esm2022}/editing-directives/in-cell-editing.directive.mjs +10 -3
  117. package/{esm2020 → esm2022}/editing-directives/local-edit.service.mjs +2 -0
  118. package/{esm2020 → esm2022}/editing-directives/reactive-editing.directive.mjs +9 -3
  119. package/{esm2020 → esm2022}/editing-directives/row-editing-directive-base.mjs +4 -3
  120. package/{esm2020 → esm2022}/editing-directives/template-editing.directive.mjs +11 -3
  121. package/esm2022/excel/excel-command-tool.directive.mjs +66 -0
  122. package/{esm2020 → esm2022}/excel/excel-command.directive.mjs +11 -10
  123. package/{esm2020 → esm2022}/excel/excel-export-event.mjs +1 -0
  124. package/{esm2020 → esm2022}/excel/excel.component.mjs +66 -12
  125. package/{esm2020 → esm2022}/excel/excel.module.mjs +9 -7
  126. package/{esm2020 → esm2022}/excel/excel.service.mjs +5 -7
  127. package/{esm2020 → esm2022}/filtering/base-filter-cell.component.mjs +22 -11
  128. package/{esm2020 → esm2022}/filtering/boolean-filter.component.mjs +24 -32
  129. package/{esm2020 → esm2022}/filtering/cell/autocomplete-filter-cell.component.mjs +18 -15
  130. package/{esm2020 → esm2022}/filtering/cell/boolean-filter-cell.component.mjs +10 -8
  131. package/{esm2020 → esm2022}/filtering/cell/date-filter-cell.component.mjs +25 -23
  132. package/{esm2020 → esm2022}/filtering/cell/filter-cell-host.directive.mjs +3 -3
  133. package/{esm2020 → esm2022}/filtering/cell/filter-cell-operators.component.mjs +59 -38
  134. package/{esm2020 → esm2022}/filtering/cell/filter-cell-template.directive.mjs +4 -3
  135. package/{esm2020 → esm2022}/filtering/cell/filter-cell-wrapper.component.mjs +8 -8
  136. package/{esm2020 → esm2022}/filtering/cell/filter-cell.component.mjs +9 -9
  137. package/{esm2020 → esm2022}/filtering/cell/numeric-filter-cell.component.mjs +25 -18
  138. package/{esm2020 → esm2022}/filtering/cell/string-filter-cell.component.mjs +27 -19
  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 +17 -15
  144. package/{esm2020 → esm2022}/filtering/filter.service.mjs +14 -10
  145. package/{esm2020 → esm2022}/filtering/menu/boolean-filter-menu.component.mjs +33 -23
  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-radio-button.directive.mjs +7 -3
  155. package/{esm2020 → esm2022}/filtering/menu/menu-tabbing.service.mjs +9 -8
  156. package/{esm2020 → esm2022}/filtering/menu/numeric-filter-menu-input.component.mjs +51 -15
  157. package/{esm2020 → esm2022}/filtering/menu/numeric-filter-menu.component.mjs +42 -37
  158. package/{esm2020 → esm2022}/filtering/menu/string-filter-menu-input.component.mjs +25 -16
  159. package/{esm2020 → esm2022}/filtering/menu/string-filter-menu.component.mjs +36 -21
  160. package/{esm2020 → esm2022}/filtering/numeric-filter.component.mjs +51 -28
  161. package/{esm2020 → esm2022}/filtering/operators/after-eq-filter-operator.component.mjs +8 -8
  162. package/{esm2020 → esm2022}/filtering/operators/after-filter-operator.component.mjs +8 -8
  163. package/{esm2020 → esm2022}/filtering/operators/before-eq-filter-operator.component.mjs +8 -8
  164. package/{esm2020 → esm2022}/filtering/operators/before-filter-operator.component.mjs +8 -8
  165. package/{esm2020 → esm2022}/filtering/operators/contains-filter-operator.component.mjs +8 -8
  166. package/{esm2020 → esm2022}/filtering/operators/ends-with-filter-operator.component.mjs +8 -8
  167. package/{esm2020 → esm2022}/filtering/operators/eq-filter-operator.component.mjs +8 -8
  168. package/{esm2020 → esm2022}/filtering/operators/filter-operator.base.mjs +15 -10
  169. package/{esm2020 → esm2022}/filtering/operators/gt-filter-operator.component.mjs +8 -8
  170. package/{esm2020 → esm2022}/filtering/operators/gte-filter-operator.component.mjs +8 -8
  171. package/{esm2020 → esm2022}/filtering/operators/is-empty-filter-operator.component.mjs +8 -8
  172. package/{esm2020 → esm2022}/filtering/operators/is-not-empty-filter-operator.component.mjs +8 -8
  173. package/{esm2020 → esm2022}/filtering/operators/is-not-null-filter-operator.component.mjs +8 -8
  174. package/{esm2020 → esm2022}/filtering/operators/isnull-filter-operator.component.mjs +8 -8
  175. package/{esm2020 → esm2022}/filtering/operators/lt-filter-operator.component.mjs +8 -8
  176. package/{esm2020 → esm2022}/filtering/operators/lte-filter-operator.component.mjs +8 -8
  177. package/{esm2020 → esm2022}/filtering/operators/neq-filter-operator.component.mjs +8 -8
  178. package/{esm2020 → esm2022}/filtering/operators/not-contains-filter-operator.component.mjs +8 -8
  179. package/{esm2020 → esm2022}/filtering/operators/starts-with-filter-operator.component.mjs +8 -8
  180. package/{esm2020 → esm2022}/filtering/string-filter.component.mjs +20 -15
  181. package/{esm2020 → esm2022}/grid.component.mjs +648 -396
  182. package/esm2022/grid.module.mjs +216 -0
  183. package/{esm2020 → esm2022}/grouping/group-footer-template.directive.mjs +4 -3
  184. package/{esm2020 → esm2022}/grouping/group-header-column-template.directive.mjs +4 -3
  185. package/{esm2020 → esm2022}/grouping/group-header-template.directive.mjs +4 -3
  186. package/{esm2020 → esm2022}/grouping/group-header.component.mjs +25 -16
  187. package/{esm2020 → esm2022}/grouping/group-info.service.mjs +1 -3
  188. package/{esm2020 → esm2022}/grouping/group-panel.component.mjs +71 -53
  189. package/{esm2020 → esm2022}/grouping/group-scroll-binding.directive.mjs +11 -9
  190. package/{esm2020 → esm2022}/grouping/groups.service.mjs +6 -7
  191. package/{esm2020 → esm2022}/index.mjs +6 -24
  192. package/{esm2020 → esm2022}/layout/browser-support.service.mjs +7 -4
  193. package/{esm2020 → esm2022}/layout/resizable.directive.mjs +16 -10
  194. package/{esm2020 → esm2022}/layout/resize.service.mjs +6 -8
  195. package/{esm2020 → esm2022}/layout/responsive.service.mjs +7 -9
  196. package/{esm2020 → esm2022}/layout/sizing-options.service.mjs +4 -6
  197. package/{esm2020 → esm2022}/localization/custom-messages.component.mjs +9 -8
  198. package/{esm2020 → esm2022}/localization/localized-messages.directive.mjs +9 -8
  199. package/esm2022/localization/messages.mjs +591 -0
  200. package/{esm2020 → esm2022}/navigation/default-focusable-element.mjs +10 -6
  201. package/{esm2020 → esm2022}/navigation/focus-group.mjs +10 -9
  202. package/{esm2020 → esm2022}/navigation/focus-root.mjs +5 -4
  203. package/{esm2020 → esm2022}/navigation/focusable.directive.mjs +23 -17
  204. package/{esm2020 → esm2022}/navigation/grid-focusable-element.mjs +1 -0
  205. package/{esm2020 → esm2022}/navigation/item-map.mjs +2 -4
  206. package/{esm2020 → esm2022}/navigation/logical-cell.directive.mjs +38 -23
  207. package/{esm2020 → esm2022}/navigation/logical-row.directive.mjs +18 -12
  208. package/{esm2020 → esm2022}/navigation/navigation-cursor.mjs +10 -8
  209. package/{esm2020 → esm2022}/navigation/navigation-metadata.mjs +12 -4
  210. package/{esm2020 → esm2022}/navigation/navigation-model.mjs +1 -3
  211. package/{esm2020 → esm2022}/navigation/navigation.service.mjs +49 -29
  212. package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
  213. package/{esm2020 → esm2022}/pdf/grid-query.mjs +4 -0
  214. package/esm2022/pdf/pdf-command-tool.directive.mjs +66 -0
  215. package/{esm2020 → esm2022}/pdf/pdf-command.directive.mjs +10 -9
  216. package/{esm2020 → esm2022}/pdf/pdf-margin.component.mjs +3 -3
  217. package/{esm2020 → esm2022}/pdf/pdf-template.directive.mjs +3 -3
  218. package/{esm2020 → esm2022}/pdf/pdf.component.mjs +39 -12
  219. package/{esm2020 → esm2022}/pdf/pdf.module.mjs +5 -4
  220. package/{esm2020 → esm2022}/pdf/pdf.service.mjs +8 -9
  221. package/{esm2020 → esm2022}/rendering/cell-loading.template.directive.mjs +4 -3
  222. package/{esm2020 → esm2022}/rendering/cell-template.directive.mjs +4 -3
  223. package/{esm2020 → esm2022}/rendering/cell.component.mjs +64 -75
  224. package/{esm2020 → esm2022}/rendering/common/col-group.component.mjs +8 -9
  225. package/{esm2020 → esm2022}/rendering/common/field-accessor.pipe.mjs +4 -3
  226. package/{esm2020 → esm2022}/rendering/common/loading.component.mjs +10 -8
  227. package/{esm2020 → esm2022}/rendering/common/spacer.component.mjs +12 -7
  228. package/{esm2020 → esm2022}/rendering/details/detail-collapse-event.mjs +8 -0
  229. package/{esm2020 → esm2022}/rendering/details/detail-expand-event.mjs +8 -0
  230. package/{esm2020 → esm2022}/rendering/details/detail-template.directive.mjs +8 -7
  231. package/{esm2020 → esm2022}/rendering/details/details.service.mjs +6 -7
  232. package/{esm2020 → esm2022}/rendering/details-expand.directive.mjs +28 -25
  233. package/{esm2020 → esm2022}/rendering/footer/footer-template.directive.mjs +4 -3
  234. package/{esm2020 → esm2022}/rendering/footer/footer.component.mjs +19 -15
  235. package/{esm2020 → esm2022}/rendering/grid-table.directive.mjs +9 -8
  236. package/{esm2020 → esm2022}/rendering/groups-expand.directive.mjs +21 -18
  237. package/{esm2020 → esm2022}/rendering/header/header-template.directive.mjs +4 -3
  238. package/{esm2020 → esm2022}/rendering/header/header.component.mjs +78 -55
  239. package/{esm2020 → esm2022}/rendering/list.component.mjs +99 -52
  240. package/{esm2020 → esm2022}/rendering/loading-template.directive.mjs +4 -3
  241. package/{esm2020 → esm2022}/rendering/no-records-template.directive.mjs +4 -3
  242. package/{esm2020 → esm2022}/rendering/table-body.component.mjs +60 -29
  243. package/{esm2020 → esm2022}/rendering/toolbar/toolbar-focusable.directive.mjs +9 -7
  244. package/{esm2020 → esm2022}/rendering/toolbar/toolbar-navigation.service.mjs +9 -8
  245. package/{esm2020 → esm2022}/rendering/toolbar/toolbar-template.directive.mjs +8 -7
  246. package/{esm2020 → esm2022}/rendering/toolbar/toolbar.component.mjs +17 -13
  247. package/{esm2020 → esm2022}/row-reordering/row-reorder.service.mjs +14 -10
  248. package/{esm2020 → esm2022}/scrolling/row-height.service.mjs +5 -2
  249. package/{esm2020 → esm2022}/scrolling/scroll-request.service.mjs +4 -6
  250. package/{esm2020 → esm2022}/scrolling/scroll-sync.service.mjs +10 -8
  251. package/{esm2020 → esm2022}/scrolling/scroller.service.mjs +12 -1
  252. package/{esm2020 → esm2022}/scrolling/suspend.service.mjs +4 -6
  253. package/{esm2020 → esm2022}/selection/cell-selection.service.mjs +31 -20
  254. package/{esm2020 → esm2022}/selection/marquee.directive.mjs +16 -4
  255. package/{esm2020 → esm2022}/selection/pair-set.mjs +16 -16
  256. package/esm2022/selection/selectall-checkbox.directive.mjs +144 -0
  257. package/{esm2020 → esm2022}/selection/selection-checkbox.directive.mjs +36 -15
  258. package/{esm2020 → esm2022}/selection/selection-default.mjs +46 -25
  259. package/{esm2020 → esm2022}/selection/selection.directive.mjs +4 -3
  260. package/{esm2020 → esm2022}/selection/selection.service.mjs +31 -18
  261. package/excel/excel-command-tool.directive.d.ts +41 -0
  262. package/excel/excel-command.directive.d.ts +1 -1
  263. package/excel/excel.component.d.ts +1 -1
  264. package/excel/excel.module.d.ts +3 -2
  265. package/{fesm2020 → fesm2022}/progress-kendo-angular-grid.mjs +5338 -5029
  266. package/filtering/base-filter-cell.component.d.ts +5 -1
  267. package/filtering/boolean-filter.component.d.ts +2 -17
  268. package/filtering/cell/autocomplete-filter-cell.component.d.ts +2 -7
  269. package/filtering/cell/date-filter-cell.component.d.ts +1 -1
  270. package/filtering/cell/filter-cell-operators.component.d.ts +1 -1
  271. package/filtering/cell/filter-cell-wrapper.component.d.ts +1 -1
  272. package/filtering/cell/filter-cell.component.d.ts +1 -1
  273. package/filtering/cell/numeric-filter-cell.component.d.ts +1 -1
  274. package/filtering/cell/string-filter-cell.component.d.ts +1 -1
  275. package/filtering/date-filter.component.d.ts +2 -11
  276. package/filtering/filter-host.directive.d.ts +2 -2
  277. package/filtering/filter-input-wrapper.component.d.ts +1 -2
  278. package/filtering/filter-input.directive.d.ts +1 -1
  279. package/filtering/filter-row.component.d.ts +1 -1
  280. package/filtering/filterable.d.ts +1 -1
  281. package/filtering/menu/boolean-filter-menu.component.d.ts +3 -2
  282. package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
  283. package/filtering/menu/date-filter-menu.component.d.ts +1 -7
  284. package/filtering/menu/filter-menu-container.component.d.ts +1 -1
  285. package/filtering/menu/filter-menu-dropdownlist.directive.d.ts +1 -1
  286. package/filtering/menu/filter-menu-host.directive.d.ts +1 -1
  287. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +1 -1
  288. package/filtering/menu/filter-menu.component.d.ts +1 -1
  289. package/filtering/menu/filter-radio-button.directive.d.ts +1 -1
  290. package/filtering/menu/numeric-filter-menu-input.component.d.ts +1 -1
  291. package/filtering/menu/numeric-filter-menu.component.d.ts +1 -7
  292. package/filtering/menu/string-filter-menu-input.component.d.ts +1 -1
  293. package/filtering/menu/string-filter-menu.component.d.ts +1 -7
  294. package/filtering/numeric-filter.component.d.ts +2 -11
  295. package/filtering/operators/filter-operator.base.d.ts +1 -1
  296. package/filtering/string-filter.component.d.ts +2 -11
  297. package/grid.component.d.ts +5 -6
  298. package/grid.module.d.ts +94 -101
  299. package/grouping/group-header.component.d.ts +1 -1
  300. package/grouping/group-panel.component.d.ts +1 -1
  301. package/grouping/group-scroll-binding.directive.d.ts +1 -1
  302. package/index.d.ts +7 -27
  303. package/layout/resizable.directive.d.ts +1 -1
  304. package/localization/messages.d.ts +10 -6
  305. package/navigation/focusable.directive.d.ts +1 -1
  306. package/navigation/logical-cell.directive.d.ts +1 -1
  307. package/navigation/logical-row.directive.d.ts +1 -1
  308. package/navigation/navigable-settings.d.ts +2 -2
  309. package/navigation/navigation.service.d.ts +1 -1
  310. package/package.json +29 -33
  311. package/pdf/pdf-command-tool.directive.d.ts +41 -0
  312. package/pdf/pdf.component.d.ts +1 -1
  313. package/pdf/pdf.module.d.ts +2 -1
  314. package/rendering/cell.component.d.ts +1 -1
  315. package/rendering/common/cell-context.d.ts +1 -1
  316. package/rendering/common/col-group.component.d.ts +1 -1
  317. package/rendering/common/loading.component.d.ts +1 -1
  318. package/rendering/common/row-class.d.ts +4 -4
  319. package/rendering/common/spacer.component.d.ts +1 -1
  320. package/rendering/details/detail-template.directive.d.ts +2 -2
  321. package/rendering/details-expand.directive.d.ts +1 -1
  322. package/rendering/footer/footer.component.d.ts +1 -1
  323. package/rendering/grid-table.directive.d.ts +1 -1
  324. package/rendering/groups-expand.directive.d.ts +1 -1
  325. package/rendering/header/header.component.d.ts +1 -1
  326. package/rendering/list.component.d.ts +1 -1
  327. package/rendering/table-body.component.d.ts +1 -1
  328. package/rendering/toolbar/toolbar-position.d.ts +1 -1
  329. package/rendering/toolbar/toolbar-template.directive.d.ts +1 -1
  330. package/rendering/toolbar/toolbar.component.d.ts +1 -1
  331. package/row-reordering/types.d.ts +1 -1
  332. package/schematics/ngAdd/index.js +5 -5
  333. package/scrolling/scroll-sync.service.d.ts +1 -1
  334. package/scrolling/scroller.service.d.ts +1 -1
  335. package/scrolling/scrollmode.d.ts +1 -1
  336. package/selection/cell-selection.service.d.ts +1 -1
  337. package/selection/selectall-checkbox.directive.d.ts +9 -7
  338. package/selection/selection-checkbox.directive.d.ts +6 -5
  339. package/selection/selection-default.d.ts +1 -1
  340. package/selection/selection.service.d.ts +1 -1
  341. package/selection/types.d.ts +4 -4
  342. package/utils.d.ts +1 -1
  343. package/esm2020/column-menu/column-chooser-item-checked.directive.mjs +0 -39
  344. package/esm2020/common/clipboard.directive.mjs +0 -186
  345. package/esm2020/common/dom-events.service.mjs +0 -28
  346. package/esm2020/filtering/cell/row-filtering.module.mjs +0 -112
  347. package/esm2020/filtering/menu/filter-menu.module.mjs +0 -116
  348. package/esm2020/filtering/shared-filtering.module.mjs +0 -92
  349. package/esm2020/grid.module.mjs +0 -219
  350. package/esm2020/grouping/group.module.mjs +0 -53
  351. package/esm2020/localization/messages.mjs +0 -187
  352. package/esm2020/pager/pager-context.service.mjs +0 -41
  353. package/esm2020/pager/pager-dropdown.directive.mjs +0 -39
  354. package/esm2020/pager/pager-element.component.mjs +0 -109
  355. package/esm2020/pager/pager-info.component.mjs +0 -76
  356. package/esm2020/pager/pager-input.component.mjs +0 -142
  357. package/esm2020/pager/pager-input.directive.mjs +0 -30
  358. package/esm2020/pager/pager-next-buttons.component.mjs +0 -114
  359. package/esm2020/pager/pager-numeric-buttons.component.mjs +0 -257
  360. package/esm2020/pager/pager-page-sizes.component.mjs +0 -145
  361. package/esm2020/pager/pager-prev-buttons.component.mjs +0 -116
  362. package/esm2020/pager/pager-template.directive.mjs +0 -48
  363. package/esm2020/pager/pager.component.mjs +0 -457
  364. package/esm2020/pager/pager.module.mjs +0 -51
  365. package/esm2020/pager/pagesize-item.interface.mjs +0 -5
  366. package/esm2020/rendering/body.module.mjs +0 -88
  367. package/esm2020/rendering/footer/footer.module.mjs +0 -41
  368. package/esm2020/rendering/header/header.module.mjs +0 -152
  369. package/esm2020/selection/selectall-checkbox.directive.mjs +0 -115
  370. package/esm2020/shared.module.mjs +0 -41
  371. package/fesm2015/progress-kendo-angular-grid.mjs +0 -28474
  372. package/filtering/cell/row-filtering.module.d.ts +0 -59
  373. package/filtering/menu/filter-menu.module.d.ts +0 -63
  374. package/filtering/shared-filtering.module.d.ts +0 -49
  375. package/grouping/group.module.d.ts +0 -38
  376. package/pager/pager-context.service.d.ts +0 -30
  377. package/pager/pager-dropdown.directive.d.ts +0 -18
  378. package/pager/pager-element.component.d.ts +0 -79
  379. package/pager/pager-info.component.d.ts +0 -43
  380. package/pager/pager-input.component.d.ts +0 -45
  381. package/pager/pager-input.directive.d.ts +0 -18
  382. package/pager/pager-next-buttons.component.d.ts +0 -28
  383. package/pager/pager-numeric-buttons.component.d.ts +0 -52
  384. package/pager/pager-page-sizes.component.d.ts +0 -49
  385. package/pager/pager-prev-buttons.component.d.ts +0 -28
  386. package/pager/pager-template.directive.d.ts +0 -38
  387. package/pager/pager.component.d.ts +0 -80
  388. package/pager/pager.module.d.ts +0 -37
  389. package/pager/pagesize-item.interface.d.ts +0 -14
  390. package/rendering/body.module.d.ts +0 -50
  391. package/rendering/footer/footer.module.d.ts +0 -30
  392. package/rendering/header/header.module.d.ts +0 -101
  393. package/shared.module.d.ts +0 -29
  394. /package/{esm2020 → esm2022}/aggregates/aggregate-types.mjs +0 -0
  395. /package/{esm2020 → esm2022}/column-menu/column-menu-expandable-item.interface.mjs +0 -0
  396. /package/{esm2020 → esm2022}/column-menu/column-menu-settings.interface.mjs +0 -0
  397. /package/{esm2020 → esm2022}/column-menu/utils.mjs +0 -0
  398. /package/{esm2020 → esm2022}/column-resizing/column-resize.interface.mjs +0 -0
  399. /package/{esm2020 → esm2022}/columns/column-common.mjs +0 -0
  400. /package/{esm2020 → esm2022}/columns/sort-settings.mjs +0 -0
  401. /package/{esm2020 → esm2022}/common/cell-click-event-args.interface.mjs +0 -0
  402. /package/{esm2020 → esm2022}/common/clipboard-types.mjs +0 -0
  403. /package/{esm2020 → esm2022}/common/create-form-group.mjs +0 -0
  404. /package/{esm2020 → esm2022}/common/default-track-by.mjs +0 -0
  405. /package/{esm2020 → esm2022}/common/fetch-data-callback.mjs +0 -0
  406. /package/{esm2020 → esm2022}/common/filter-descriptor-differ.mjs +0 -0
  407. /package/{esm2020 → esm2022}/common/filter-operator.interface.mjs +0 -0
  408. /package/{esm2020/pager → esm2022/common}/pager-settings.mjs +0 -0
  409. /package/{esm2020 → esm2022}/common/remove-confirmation.mjs +0 -0
  410. /package/{esm2020 → esm2022}/common/size-options.mjs +0 -0
  411. /package/{esm2020 → esm2022}/constants.mjs +0 -0
  412. /package/{esm2020 → esm2022}/data/change-event-args.interface.mjs +0 -0
  413. /package/{esm2020 → esm2022}/data/data-item.interface.mjs +0 -0
  414. /package/{esm2020 → esm2022}/data/grid-item.interface.mjs +0 -0
  415. /package/{esm2020 → esm2022}/data/group-footer-item.interface.mjs +0 -0
  416. /package/{esm2020 → esm2022}/data/group-item.interface.mjs +0 -0
  417. /package/{esm2020 → esm2022}/dragdrop/column-reorder-config.mjs +0 -0
  418. /package/{esm2020 → esm2022}/dragdrop/common.mjs +0 -0
  419. /package/{esm2020 → esm2022}/dragdrop/context-types.mjs +0 -0
  420. /package/{esm2020 → esm2022}/editing/add-event-args.interface.mjs +0 -0
  421. /package/{esm2020 → esm2022}/editing/cancel-event-args.interface.mjs +0 -0
  422. /package/{esm2020 → esm2022}/editing/edit-event-args.interface.mjs +0 -0
  423. /package/{esm2020 → esm2022}/editing/edit-row-options.interface.mjs +0 -0
  424. /package/{esm2020 → esm2022}/editing/remove-event-args.interface.mjs +0 -0
  425. /package/{esm2020 → esm2022}/editing/save-event-args.interface.mjs +0 -0
  426. /package/{esm2020 → esm2022}/editing-directives/create-form-group-args.interface.mjs +0 -0
  427. /package/{esm2020 → esm2022}/editing-directives/edit-service.interface.mjs +0 -0
  428. /package/{esm2020 → esm2022}/editing-directives/local-row-edit.service.mjs +0 -0
  429. /package/{esm2020 → esm2022}/editing-directives/utils.mjs +0 -0
  430. /package/{esm2020 → esm2022}/filtering/cell/filter-cell-component.factory.mjs +0 -0
  431. /package/{esm2020 → esm2022}/filtering/filter-component.interface.mjs +0 -0
  432. /package/{esm2020 → esm2022}/filtering/filterable.mjs +0 -0
  433. /package/{esm2020 → esm2022}/filtering/menu/filter-menu-component.factory.mjs +0 -0
  434. /package/{esm2020 → esm2022}/grouping/group-key.interface.mjs +0 -0
  435. /package/{esm2020 → esm2022}/grouping/group-rows-args.interface.mjs +0 -0
  436. /package/{esm2020 → esm2022}/grouping/group-settings.mjs +0 -0
  437. /package/{esm2020 → esm2022}/grouping/utils.mjs +0 -0
  438. /package/{esm2020 → esm2022}/grouping/virtual-group-result.interface.mjs +0 -0
  439. /package/{esm2020 → esm2022}/layout/row-sync.mjs +0 -0
  440. /package/{esm2020 → esm2022}/navigation/focusable-element.interface.mjs +0 -0
  441. /package/{esm2020 → esm2022}/navigation/logical-cell.interface.mjs +0 -0
  442. /package/{esm2020 → esm2022}/navigation/logical-row.interface.mjs +0 -0
  443. /package/{esm2020 → esm2022}/navigation/navigable-settings.mjs +0 -0
  444. /package/{esm2020 → esm2022}/navigation/navigation-cell.interface.mjs +0 -0
  445. /package/{esm2020 → esm2022}/navigation/navigation-change.interface.mjs +0 -0
  446. /package/{esm2020 → esm2022}/navigation/navigation-mode.mjs +0 -0
  447. /package/{esm2020 → esm2022}/navigation/navigation-row.interface.mjs +0 -0
  448. /package/{esm2020 → esm2022}/pdf/export-element.mjs +0 -0
  449. /package/{esm2020 → esm2022}/pdf/pdf-export-event.mjs +0 -0
  450. /package/{esm2020 → esm2022}/pdf/pdf-margin.interface.mjs +0 -0
  451. /package/{esm2020 → esm2022}/progress-kendo-angular-grid.mjs +0 -0
  452. /package/{esm2020 → esm2022}/rendering/common/cell-context.mjs +0 -0
  453. /package/{esm2020 → esm2022}/rendering/common/dom-queries.mjs +0 -0
  454. /package/{esm2020 → esm2022}/rendering/common/row-args.mjs +0 -0
  455. /package/{esm2020 → esm2022}/rendering/common/row-class.mjs +0 -0
  456. /package/{esm2020 → esm2022}/rendering/constants.mjs +0 -0
  457. /package/{esm2020 → esm2022}/rendering/toolbar/toolbar-position.mjs +0 -0
  458. /package/{esm2020 → esm2022}/row-reordering/types.mjs +0 -0
  459. /package/{esm2020 → esm2022}/row-reordering/utils.mjs +0 -0
  460. /package/{esm2020 → esm2022}/scrolling/content-scroll-event.mjs +0 -0
  461. /package/{esm2020 → esm2022}/scrolling/scroll-bottom-event.mjs +0 -0
  462. /package/{esm2020 → esm2022}/scrolling/scrollmode.mjs +0 -0
  463. /package/{esm2020 → esm2022}/selection/types.mjs +0 -0
  464. /package/{esm2020 → esm2022}/utils.mjs +0 -0
@@ -13,6 +13,7 @@ import { ColumnComponent, isColumnComponent } from './columns/column.component';
13
13
  import { isSpanColumnComponent } from './columns/span-column.component';
14
14
  import { isColumnGroupComponent, ColumnGroupComponent } from './columns/column-group.component';
15
15
  import { DetailTemplateDirective } from './rendering/details/detail-template.directive';
16
+ import { normalize } from './common/pager-settings';
16
17
  import { isArray, anyChanged, isChanged, isPresent, isUniversal, observe, isTruthy, createPromise, hasObservers } from './utils';
17
18
  import { BrowserSupportService } from './layout/browser-support.service';
18
19
  import { DataResultIterator, DataCollection } from './data/data.collection';
@@ -30,8 +31,6 @@ import { syncRowsHeight } from './layout/row-sync';
30
31
  import { CELL_CONTEXT, EMPTY_CELL_CONTEXT } from './rendering/common/cell-context';
31
32
  import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
32
33
  import { FilterService } from './filtering/filter.service';
33
- import { PagerTemplateDirective } from './pager/pager-template.directive';
34
- import { PagerContextService } from "./pager/pager-context.service";
35
34
  import { PDFService } from './pdf/pdf.service';
36
35
  import { PDFExportEvent } from './pdf/pdf-export-event';
37
36
  import { SuspendService } from './scrolling/suspend.service';
@@ -91,11 +90,11 @@ import { ColGroupComponent } from './rendering/common/col-group.component';
91
90
  import { GridTableDirective } from './rendering/grid-table.directive';
92
91
  import { TableDirective } from './column-resizing/table.directive';
93
92
  import { GroupPanelComponent } from './grouping/group-panel.component';
94
- import { PagerComponent } from './pager/pager.component';
95
- import { ToolbarComponent } from './rendering/toolbar/toolbar.component';
96
- import { NgIf } from '@angular/common';
93
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
94
+ import { ToolbarComponent as GridToolbarComponent } from './rendering/toolbar/toolbar.component';
97
95
  import { LocalizedMessagesDirective } from './localization/localized-messages.directive';
98
96
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
97
+ import { PagerTemplateDirective, PagerContextService, PagerNavigationService, KENDO_PAGER } from '@progress/kendo-angular-pager';
99
98
  import * as i0 from "@angular/core";
100
99
  import * as i1 from "./layout/browser-support.service";
101
100
  import * as i2 from "./selection/selection.service";
@@ -121,6 +120,7 @@ import * as i21 from "@progress/kendo-angular-l10n";
121
120
  import * as i22 from "./common/provider.service";
122
121
  import * as i23 from "./layout/sizing-options.service";
123
122
  import * as i24 from "./row-reordering/row-reorder.service";
123
+ import * as i25 from "@progress/kendo-angular-pager";
124
124
  const createControl = (source) => (acc, key) => {
125
125
  acc[key] = new FormControl(source[key]);
126
126
  return acc;
@@ -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
  */
@@ -526,11 +291,14 @@ export class GridComponent {
526
291
  this._group = value;
527
292
  }
528
293
  }
529
- /**
530
- */
531
294
  get group() {
532
295
  return this._group;
533
296
  }
297
+ /**
298
+ * If set to `true`, the grid will render only the columns in the current viewport.
299
+ * @default false
300
+ */
301
+ virtualColumns = false;
534
302
  /**
535
303
  * @hidden
536
304
  */
@@ -593,6 +361,33 @@ export class GridComponent {
593
361
  get marqueeSelection() {
594
362
  return this.selectionService.enableMarquee || this.cellSelectionService.enableMarquee;
595
363
  }
364
+ /**
365
+ * @hidden
366
+ */
367
+ gridData = () => { return this.flatData; };
368
+ /**
369
+ * Enables the [filtering]({% slug filtering_grid %}) of the Grid columns that have their `field` option set.
370
+ * @default false
371
+ */
372
+ filterable = false;
373
+ /**
374
+ * Enables the [sorting]({% slug sorting_grid %}) of the Grid columns that have their `field` option set.
375
+ * @default false
376
+ */
377
+ sortable = false;
378
+ /**
379
+ * Configures the pager of the Grid ([see example](slug:paging_grid_settings)).
380
+ * @default false
381
+ */
382
+ pageable = false;
383
+ get normalizedPageableSettings() {
384
+ return normalize(this.pageable);
385
+ }
386
+ /**
387
+ * If set to `true`, the user can group the Grid by dragging the column header cells ([see example]({% slug grouping_grid %})).
388
+ * @default false
389
+ */
390
+ groupable = false;
596
391
  /**
597
392
  * Enables the [row reordering]({% slug reordering_rows_grid %}) of the Grid.
598
393
  * @default false
@@ -646,6 +441,15 @@ export class GridComponent {
646
441
  get navigatable() {
647
442
  return this.navigable;
648
443
  }
444
+ /**
445
+ * Indicates whether the Grid columns will be resized during initialization so that
446
+ * they fit their headers and row content.
447
+ * Columns with `autoSize` set to `false` are excluded.
448
+ * To dynamically update the column width to match the new content,
449
+ * refer to [this example]({% slug resizing_columns_grid %}).
450
+ * @default false
451
+ */
452
+ autoSize = false;
649
453
  /**
650
454
  * Defines a function that is executed for every data row in the component
651
455
  * ([see example](slug:styling_grid_rows)).
@@ -740,6 +544,20 @@ export class GridComponent {
740
544
  this.defaultSelection ? this.defaultSelection.stateToArray() : this.selectionDirective.stateToArray() :
741
545
  [];
742
546
  }
547
+ /**
548
+ * If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells
549
+ * ([see example]({% slug resizing_columns_grid %})).
550
+ *
551
+ * @default false
552
+ */
553
+ resizable = false;
554
+ /**
555
+ * If set to `true`, the user can reorder columns by dragging their header cells
556
+ * ([see example]({% slug reordering_columns_grid %})).
557
+ *
558
+ * @default false
559
+ */
560
+ reorderable = false;
743
561
  /**
744
562
  * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
745
563
  *
@@ -752,9 +570,146 @@ export class GridComponent {
752
570
  get loading() {
753
571
  return this._loading;
754
572
  }
573
+ /**
574
+ * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_grid %})).
575
+ *
576
+ * @default false
577
+ */
578
+ columnMenu = false;
579
+ /**
580
+ * Specifies if the header of the grid will be hidden. The header is visible by default.
581
+ * The header includes column headers and the [filter row](slug:filter_row).
582
+ * @default false
583
+ */
584
+ hideHeader = false;
585
+ /**
586
+ * Fires when the Grid filter is modified through the UI.
587
+ * You have to handle the event yourself and filter the data.
588
+ */
589
+ filterChange = new EventEmitter();
590
+ /**
591
+ * Fires when the page of the Grid is changed ([see example]({% slug paging_grid %})).
592
+ * You have to handle the event yourself and page the data.
593
+ */
594
+ pageChange = new EventEmitter();
595
+ /**
596
+ * Fires when the grouping of the Grid is changed.
597
+ * You have to handle the event yourself and group the data ([see example]({% slug grouping_grid %})).
598
+ */
599
+ groupChange;
600
+ /**
601
+ * Fires when the sorting of the Grid is changed ([see example]({% slug sorting_grid %})).
602
+ * You have to handle the event yourself and sort the data.
603
+ */
604
+ sortChange = new EventEmitter();
605
+ /**
606
+ * Fires when the user selects a Grid row.
607
+ */
608
+ selectionChange = new EventEmitter();
609
+ /**
610
+ * Fires when the user drops the dragged row and reordering is performed.
611
+ */
612
+ rowReorder = new EventEmitter();
613
+ /**
614
+ * Fires when the data state of the Grid is changed.
615
+ */
616
+ dataStateChange = new EventEmitter();
617
+ /**
618
+ * Fires when the user expands a group header.
619
+ */
620
+ groupExpand = new EventEmitter();
621
+ /**
622
+ * Fires when the user collapses a group header.
623
+ */
624
+ groupCollapse = new EventEmitter();
625
+ /**
626
+ * Fires when the user expands a master row.
627
+ */
628
+ detailExpand = new EventEmitter();
629
+ /**
630
+ * Fires when the user collapses a master row.
631
+ */
632
+ detailCollapse = new EventEmitter();
633
+ /**
634
+ * Fires when the user clicks the **Edit** command button to edit a row
635
+ * ([see example])({% slug inline_editing_grid %}#toc-editing-records-1).
636
+ */
637
+ edit = new EventEmitter();
638
+ /**
639
+ * Fires when the user clicks the **Cancel** command button to close a row
640
+ * ([see example]({% slug inline_editing_grid %}#toc-canceling-editing-1)).
641
+ */
642
+ cancel = new EventEmitter();
643
+ /**
644
+ * Fires when the user clicks the **Save** command button to save changes in a row
645
+ * ([see example]({% slug inline_editing_grid %}#toc-saving-records-1)).
646
+ */
647
+ save = new EventEmitter();
648
+ /**
649
+ * Fires when the user clicks the **Remove** command button to remove a row
650
+ * ([see example]({% slug inline_editing_grid %}#toc-removing-records-1)).
651
+ */
652
+ remove = new EventEmitter();
653
+ /**
654
+ * Fires when the user clicks the **Add** command button to add a new row
655
+ * ([see example]({% slug inline_editing_grid %}#toc-adding-records-1)).
656
+ */
657
+ add = new EventEmitter();
658
+ /**
659
+ * Fires when the user leaves an edited cell ([see example](slug:editing_incell_grid)).
660
+ */
661
+ cellClose = new EventEmitter();
662
+ /**
663
+ * Fires when the user clicks a cell ([see example](slug:editing_incell_grid)).
664
+ */
665
+ cellClick;
666
+ /**
667
+ * Fires when the user clicks the **Export to PDF** command button.
668
+ */
669
+ pdfExport = new EventEmitter();
670
+ /**
671
+ * Fires when the user clicks the **Export to Excel** command button.
672
+ */
673
+ excelExport = new EventEmitter();
674
+ /**
675
+ * Fires when the user completes the resizing of the column.
676
+ */
677
+ columnResize;
678
+ /**
679
+ * Fires when the user completes the reordering of the column.
680
+ */
681
+ columnReorder = new EventEmitter();
682
+ /**
683
+ * Fires when the user changes the visibility of the columns from the column menu or column chooser.
684
+ */
685
+ columnVisibilityChange = new EventEmitter();
686
+ /**
687
+ * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
688
+ */
689
+ columnLockedChange = new EventEmitter();
690
+ /**
691
+ * Fires when the user changes the sticky state of the columns from the column menu.
692
+ */
693
+ columnStickyChange = new EventEmitter();
694
+ /**
695
+ * Fires when the user scrolls to the last record on the page and enables endless scrolling
696
+ * ([see example]({% slug scrollmmodes_grid %}#toc-endless-scrolling)).
697
+ * You have to handle the event yourself and page the data.
698
+ */
699
+ scrollBottom = new EventEmitter();
700
+ /**
701
+ * Fires when the grid content is scrolled.
702
+ * For performance reasons, the event is triggered outside the Angular zone. Enter the Angular zone if you make any changes that require change detection.
703
+ */
704
+ contentScroll = new EventEmitter();
705
+ /**
706
+ * A query list of all declared columns.
707
+ */
708
+ columns = new QueryList();
755
709
  get dir() {
756
710
  return this.direction;
757
711
  }
712
+ hostClass = true;
758
713
  get sizeSmallClass() {
759
714
  return this.size === 'small';
760
715
  }
@@ -770,6 +725,7 @@ export class GridComponent {
770
725
  get noScrollbarClass() {
771
726
  return this.scrollbarWidth === 0;
772
727
  }
728
+ detailTemplateChildren;
773
729
  get detailTemplate() {
774
730
  if (this._customDetailTemplate) {
775
731
  return this._customDetailTemplate;
@@ -779,6 +735,7 @@ export class GridComponent {
779
735
  set detailTemplate(detailTemplate) {
780
736
  this._customDetailTemplate = detailTemplate;
781
737
  }
738
+ cellLoadingTemplateChildren;
782
739
  get cellLoadingTemplate() {
783
740
  if (this._cellLoadingTemplate) {
784
741
  return this._customDetailTemplate;
@@ -788,6 +745,7 @@ export class GridComponent {
788
745
  set cellLoadingTemplate(cellLoadingTemplate) {
789
746
  this._cellLoadingTemplate = cellLoadingTemplate;
790
747
  }
748
+ loadingTemplateChildren;
791
749
  get loadingTemplate() {
792
750
  if (this._loadingTemplate) {
793
751
  return this._loadingTemplate;
@@ -797,6 +755,7 @@ export class GridComponent {
797
755
  set loadingTemplate(loadingTemplate) {
798
756
  this._loadingTemplate = loadingTemplate;
799
757
  }
758
+ statusBarTemplateChildren;
800
759
  get statusBarTemplate() {
801
760
  if (this._statusBarTemplate) {
802
761
  return this._statusBarTemplate;
@@ -806,6 +765,7 @@ export class GridComponent {
806
765
  set statusBarTemplate(statusBarTemplate) {
807
766
  this._statusBarTemplate = statusBarTemplate;
808
767
  }
768
+ noRecordsTemplateChildren;
809
769
  get noRecordsTemplate() {
810
770
  if (this._customNoRecordsTemplate) {
811
771
  return this._customNoRecordsTemplate;
@@ -815,6 +775,7 @@ export class GridComponent {
815
775
  set noRecordsTemplate(customNoRecordsTemplate) {
816
776
  this._customNoRecordsTemplate = customNoRecordsTemplate;
817
777
  }
778
+ pagerTemplateChildren;
818
779
  get pagerTemplate() {
819
780
  if (this._customPagerTemplate) {
820
781
  return this._customPagerTemplate;
@@ -824,6 +785,7 @@ export class GridComponent {
824
785
  set pagerTemplate(customPagerTemplate) {
825
786
  this._customPagerTemplate = customPagerTemplate;
826
787
  }
788
+ toolbarTemplateChildren;
827
789
  get toolbarTemplate() {
828
790
  if (this._customToolbarTemplate) {
829
791
  return this._customToolbarTemplate;
@@ -833,18 +795,40 @@ export class GridComponent {
833
795
  set toolbarTemplate(customToolbarTemplate) {
834
796
  this._customToolbarTemplate = customToolbarTemplate;
835
797
  }
798
+ columnMenuTemplates;
799
+ lockedHeader;
800
+ header;
801
+ footer = new QueryList();
802
+ ariaRoot;
803
+ dragTargetContainer;
804
+ dropTargetContainer;
836
805
  get scrollbarWidth() {
837
806
  return this.supportService.scrollbarWidth;
838
807
  }
839
808
  get headerPadding() {
840
809
  if (isUniversal()) {
841
- return "";
810
+ return '';
842
811
  }
843
812
  const padding = Math.max(0, this.scrollbarWidth) + 'px';
844
813
  const right = this.rtl ? 0 : padding;
845
814
  const left = this.rtl ? padding : 0;
846
815
  return `0 ${right} 0 ${left}`;
847
816
  }
817
+ columnMenuOptions;
818
+ columnList;
819
+ selectionDirective = false;
820
+ ariaRootId = `k-${guid()}`;
821
+ /**
822
+ * @hidden
823
+ */
824
+ showLicenseWatermark = false;
825
+ columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
826
+ if (!isUniversal()) {
827
+ column.matchesMedia = this.matchesMedia(column);
828
+ }
829
+ return column.isVisible;
830
+ }));
831
+ view = new DataCollection(() => new DataResultIterator(this.data, this.skip, this.hasGroupFooters));
848
832
  get hasGroupFooters() {
849
833
  return this.columnsContainer.hasGroupFooter;
850
834
  }
@@ -863,6 +847,31 @@ export class GridComponent {
863
847
  get navigation() {
864
848
  return this.navigationService;
865
849
  }
850
+ shouldGenerateColumns = true;
851
+ direction;
852
+ notifyTimeout = null;
853
+ _sort = new Array();
854
+ _group = new Array();
855
+ _skip = 0;
856
+ _data = [];
857
+ cachedWindowWidth = 0;
858
+ defaultSelection;
859
+ _rowSelected = null;
860
+ _isRowSelectable = null;
861
+ _cellSelected = null;
862
+ _customDetailTemplate;
863
+ _cellLoadingTemplate;
864
+ _loadingTemplate;
865
+ _statusBarTemplate;
866
+ _customNoRecordsTemplate;
867
+ _customPagerTemplate;
868
+ _customToolbarTemplate;
869
+ _rowReorderable = false;
870
+ leafViewportColumns;
871
+ viewportColumns;
872
+ _navigable = [];
873
+ _size = 'medium';
874
+ _loading = false;
866
875
  get isVirtual() {
867
876
  return this.scrollable === 'virtual';
868
877
  }
@@ -944,6 +953,105 @@ export class GridComponent {
944
953
  getHintSettings(type) {
945
954
  return this.rowReorderService[type];
946
955
  }
956
+ /**
957
+ * @hidden
958
+ */
959
+ blockArrowSelection = false;
960
+ selectionSubscription;
961
+ stateChangeSubscription;
962
+ groupExpandCollapseSubscription;
963
+ editServiceSubscription;
964
+ detailsServiceSubscription;
965
+ filterSubscription;
966
+ sortSubscription;
967
+ columnsChangeSubscription;
968
+ pdfSubscription;
969
+ excelSubscription;
970
+ columnsContainerChangeSubscription;
971
+ cellClickSubscription;
972
+ footerChangeSubscription;
973
+ columnResizingSubscription;
974
+ columnReorderSubscription;
975
+ detachElementEventHandlers;
976
+ localizationSubscription;
977
+ columnVisibilityChangeSubscription;
978
+ columnLockedChangeSubscription;
979
+ columnStickyChangeSubscription;
980
+ focusElementSubscription;
981
+ columnRangeChangeSubscription;
982
+ rowReorderSubscription;
983
+ rtl = false;
984
+ _rowSticky;
985
+ 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) {
986
+ this.supportService = supportService;
987
+ this.selectionService = selectionService;
988
+ this.cellSelectionService = cellSelectionService;
989
+ this.wrapper = wrapper;
990
+ this.groupInfoService = groupInfoService;
991
+ this.groupsService = groupsService;
992
+ this.changeNotification = changeNotification;
993
+ this.detailsService = detailsService;
994
+ this.editService = editService;
995
+ this.filterService = filterService;
996
+ this.pdfService = pdfService;
997
+ this.responsiveService = responsiveService;
998
+ this.renderer = renderer;
999
+ this.excelService = excelService;
1000
+ this.ngZone = ngZone;
1001
+ this.scrollSyncService = scrollSyncService;
1002
+ this.domEvents = domEvents;
1003
+ this.columnResizingService = columnResizingService;
1004
+ this.changeDetectorRef = changeDetectorRef;
1005
+ this.columnReorderService = columnReorderService;
1006
+ this.columnInfoService = columnInfoService;
1007
+ this.navigationService = navigationService;
1008
+ this.sortService = sortService;
1009
+ this.scrollRequestService = scrollRequestService;
1010
+ this.localization = localization;
1011
+ this.ctx = ctx;
1012
+ this.sizingService = sizingService;
1013
+ this.rowReorderService = rowReorderService;
1014
+ const isValid = validatePackage(packageMetadata);
1015
+ this.showLicenseWatermark = shouldShowValidationUI(isValid);
1016
+ this.ctx.grid = this;
1017
+ this.groupChange = new ZoneAwareEventEmitter(this.ngZone);
1018
+ this.cellClick = new ZoneAwareEventEmitter(this.ngZone);
1019
+ this.columnResize = new ZoneAwareEventEmitter(this.ngZone);
1020
+ this.localizationSubscription = this.localization.changes.subscribe(({ rtl }) => {
1021
+ this.rtl = rtl;
1022
+ this.direction = this.rtl ? 'rtl' : 'ltr';
1023
+ });
1024
+ this.groupInfoService.registerColumnsContainer(() => this.columnList);
1025
+ this.columnInfoService.init(this.columnsContainer, () => this.columnList);
1026
+ this.columnVisibilityChangeSubscription = this.columnInfoService.visibilityChange.subscribe((changed) => {
1027
+ this.columnVisibilityChange.emit(new ColumnVisibilityChangeEvent(changed));
1028
+ });
1029
+ this.columnLockedChangeSubscription = this.columnInfoService.lockedChange.subscribe((changed) => {
1030
+ this.columnLockedChange.emit(new ColumnLockedChangeEvent(changed));
1031
+ });
1032
+ this.columnStickyChangeSubscription = this.columnInfoService.stickyChange.subscribe((changed) => {
1033
+ this.columnStickyChange.emit(new ColumnStickyChangeEvent(changed));
1034
+ });
1035
+ this.groupExpandCollapseSubscription = handleExpandCollapseGroupsService(groupsService, this.groupExpand, this.groupCollapse, ({ group, groupIndex, parentGroup }) => ({ group, groupIndex, parentGroup }));
1036
+ this.detailsServiceSubscription = handleExpandCollapseDetailsService(detailsService, this.detailExpand, this.detailCollapse, args => args);
1037
+ this.filterSubscription = this.filterService.changes.subscribe(x => {
1038
+ this.filterChange.emit(x);
1039
+ });
1040
+ this.sortSubscription = this.sortService.changes.subscribe(x => {
1041
+ this.sortChange.emit(x);
1042
+ });
1043
+ this.attachStateChangesEmitter();
1044
+ this.attachEditHandlers();
1045
+ this.attachDomEventHandlers();
1046
+ this.pdfSubscription = this.pdfService.exportClick.subscribe(this.emitPDFExportEvent.bind(this));
1047
+ this.excelSubscription = this.excelService.exportClick.subscribe(this.saveAsExcel.bind(this));
1048
+ this.columnsContainerChange();
1049
+ this.handleColumnResize();
1050
+ this.columnList = new ColumnList(this.columns);
1051
+ this.columnReorderSubscription = this.columnReorderService
1052
+ .changes.subscribe(this.reorder.bind(this));
1053
+ this.columnRangeChangeSubscription = this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this));
1054
+ }
947
1055
  /**
948
1056
  * Expands the specified master row ([see example]({% slug hierarchy_grid %})).
949
1057
  *
@@ -1082,6 +1190,10 @@ export class GridComponent {
1082
1190
  this.attachElementEventHandlers();
1083
1191
  this.updateNavigationMetadata();
1084
1192
  this.applyAutoSize();
1193
+ const toolbarComponentWrapper = this.wrapper?.nativeElement?.querySelector('kendo-toolbar');
1194
+ if (toolbarComponentWrapper) {
1195
+ this.renderer.addClass(toolbarComponentWrapper, 'k-grid-toolbar');
1196
+ }
1085
1197
  }
1086
1198
  ngAfterContentChecked() {
1087
1199
  this.columnsContainer.refresh();
@@ -1200,9 +1312,7 @@ export class GridComponent {
1200
1312
  /**
1201
1313
  * @hidden
1202
1314
  */
1203
- messageFor(token) {
1204
- return this.localization.get(token);
1205
- }
1315
+ messageFor = token => this.localization.get(token);
1206
1316
  /**
1207
1317
  * Switches the specified table row in the edit mode ([see example]({% slug inline_editing_grid %}#toc-editing-records-1)).
1208
1318
  *
@@ -1717,6 +1827,9 @@ export class GridComponent {
1717
1827
  if (this.rowSticky && this.groupable) {
1718
1828
  throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky rows', 'grouping'));
1719
1829
  }
1830
+ if (this.wrapper?.nativeElement?.querySelector('kendo-toolbar') && this.toolbarTemplate) {
1831
+ console.warn(GridConfigurationErrorMessages.unsupportedToolbarConfig);
1832
+ }
1720
1833
  validateColumnsField(this.columnList);
1721
1834
  }
1722
1835
  }
@@ -1920,6 +2033,7 @@ export class GridComponent {
1920
2033
  throw new Error(GridConfigurationErrorMessages.focusNavigable);
1921
2034
  }
1922
2035
  }
2036
+ _rowClass = () => null;
1923
2037
  navigationMetadata() {
1924
2038
  const isVirtual = this.isVirtual;
1925
2039
  const pageSize = this.pageSize;
@@ -2030,54 +2144,54 @@ export class GridComponent {
2030
2144
  this.dragTargetContainer?.notify();
2031
2145
  this.dropTargetContainer?.notify();
2032
2146
  }
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: `
2147
+ 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 });
2148
+ 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: [
2149
+ BrowserSupportService,
2150
+ LocalizationService,
2151
+ ColumnInfoService,
2152
+ SelectionService,
2153
+ CellSelectionService,
2154
+ DetailsService,
2155
+ GroupsService,
2156
+ GroupInfoService,
2157
+ ChangeNotificationService,
2158
+ EditService,
2159
+ PDFService,
2160
+ SuspendService,
2161
+ {
2162
+ provide: CELL_CONTEXT,
2163
+ useValue: EMPTY_CELL_CONTEXT
2164
+ },
2165
+ {
2166
+ provide: L10N_PREFIX,
2167
+ useValue: 'kendo.grid'
2168
+ },
2169
+ FilterService,
2170
+ ResponsiveService,
2171
+ PagerContextService,
2172
+ PagerNavigationService,
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"
@@ -2115,6 +2229,9 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2115
2229
  i18n-pagerItemsPerPage="kendo.grid.pagerItemsPerPage|The label for the page size chooser in the Grid pager"
2116
2230
  pagerItemsPerPage="items per page"
2117
2231
 
2232
+ i18n-pagerInputLabel="kendo.grid.pagerInputLabel|The text of the aria-label attribute applied to the input element for entering the page number"
2233
+ pagerInputLabel="Type a page number"
2234
+
2118
2235
  i18n-filter="kendo.grid.filter|The label of the filter cell or icon"
2119
2236
  filter="Filter"
2120
2237
 
@@ -2298,8 +2415,8 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2298
2415
  i18n-groupExpand="kendo.grid.groupExpand|The text of the title and aria-label attributes applied to the expand icon of group rows."
2299
2416
  groupExpand="Expand Group"
2300
2417
 
2301
- i18n-selectPage="kendo.grid.selectPage|The text of the title and aria-label attributes applied to the page chooser in the Grid Pager"
2302
- selectPage="Select page"
2418
+ i18n-pagerSelectPage="kendo.grid.pagerSelectPage|The text of the title and aria-label attributes applied to the page chooser in the Grid Pager"
2419
+ pagerSelectPage="Select page"
2303
2420
 
2304
2421
  i18n-topToolbarLabel="kendo.grid.topToolbarLabel|The label for the Grid top toolbar"
2305
2422
  topToolbarLabel="Top toolbar"
@@ -2336,18 +2453,42 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2336
2453
  [navigable]="navigation.toolbarEnabled"
2337
2454
  [attr.aria-controls]="ariaRootId"
2338
2455
  position="top"></kendo-grid-toolbar>
2456
+ <ng-content select="kendo-toolbar"></ng-content>
2339
2457
  <kendo-pager
2340
2458
  *ngIf="showTopPager"
2341
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
2342
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
2343
- class="k-grid-pager-top k-pager"
2344
- [template]="pagerTemplate"
2459
+ #topPager
2460
+ [navigable]="navigation.pagerEnabled"
2461
+ class="k-grid-pager k-grid-pager-top"
2345
2462
  [pageSize]="pageSize"
2346
2463
  [total]="view.total"
2347
2464
  [skip]="skip"
2348
2465
  [size]="size"
2349
- [options]="pageable"
2466
+ [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
2467
+ [buttonCount]="normalizedPageableSettings.buttonCount"
2468
+ [info]="normalizedPageableSettings.info"
2469
+ [pageSizeValues]="normalizedPageableSettings.pageSizes"
2470
+ [previousNext]="normalizedPageableSettings.previousNext"
2471
+ [type]="normalizedPageableSettings.type"
2350
2472
  (pageChange)="notifyPageChange('pager', $event)">
2473
+ <ng-template kendoPagerTemplate>
2474
+ <ng-container
2475
+ [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
2476
+ [ngTemplateOutletContext]="topPager.templateContext"></ng-container>
2477
+ </ng-template>
2478
+ <kendo-pager-messages
2479
+ [ariaLabel]="messageFor('pagerLabel')"
2480
+ [firstPage]="messageFor('pagerFirstPage')"
2481
+ [inputLabel]="messageFor('pagerInputLabel')"
2482
+ [previousPage]="messageFor('pagerPreviousPage')"
2483
+ [nextPage]="messageFor('pagerNextPage')"
2484
+ [lastPage]="messageFor('pagerLastPage')"
2485
+ [selectPage]="messageFor('pagerSelectPage')"
2486
+ [page]="messageFor('pagerPage')"
2487
+ [itemsPerPage]="messageFor('pagerItemsPerPage')"
2488
+ [items]="messageFor('pagerItems')"
2489
+ [of]="messageFor('pagerOf')"
2490
+ [pageNumberInputTitle]="messageFor('pagerPageNumberInputTitle')">
2491
+ </kendo-pager-messages>
2351
2492
  </kendo-pager>
2352
2493
  <kendo-grid-group-panel
2353
2494
  *ngIf="showGroupPanel"
@@ -2629,16 +2770,39 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2629
2770
  </kendo-grid-status-bar>
2630
2771
  <kendo-pager
2631
2772
  *ngIf="showBottomPager"
2632
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
2633
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
2634
- [template]="pagerTemplate"
2773
+ #bottomPager
2774
+ class="k-grid-pager"
2775
+ [navigable]="navigation.pagerEnabled"
2635
2776
  [pageSize]="pageSize"
2636
2777
  [total]="view.total"
2637
2778
  [skip]="skip"
2638
2779
  [size]="size"
2639
- [options]="pageable"
2640
- class="k-pager"
2780
+ [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
2781
+ [buttonCount]="normalizedPageableSettings.buttonCount"
2782
+ [info]="normalizedPageableSettings.info"
2783
+ [pageSizeValues]="normalizedPageableSettings.pageSizes"
2784
+ [previousNext]="normalizedPageableSettings.previousNext"
2785
+ [type]="normalizedPageableSettings.type"
2641
2786
  (pageChange)="notifyPageChange('pager', $event)">
2787
+ <ng-template kendoPagerTemplate>
2788
+ <ng-container
2789
+ [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
2790
+ [ngTemplateOutletContext]="bottomPager.templateContext"></ng-container>
2791
+ </ng-template>
2792
+ <kendo-pager-messages
2793
+ [ariaLabel]="messageFor('pagerLabel')"
2794
+ [firstPage]="messageFor('pagerFirstPage')"
2795
+ [inputLabel]="messageFor('pagerInputLabel')"
2796
+ [previousPage]="messageFor('pagerPreviousPage')"
2797
+ [nextPage]="messageFor('pagerNextPage')"
2798
+ [lastPage]="messageFor('pagerLastPage')"
2799
+ [selectPage]="messageFor('pagerSelectPage')"
2800
+ [page]="messageFor('pagerPage')"
2801
+ [itemsPerPage]="messageFor('pagerItemsPerPage')"
2802
+ [items]="messageFor('pagerItems')"
2803
+ [of]="messageFor('pagerOf')"
2804
+ [pageNumberInputTitle]="messageFor('pagerPageNumberInputTitle')">
2805
+ </kendo-pager-messages>
2642
2806
  </kendo-pager>
2643
2807
  <kendo-grid-toolbar
2644
2808
  class="k-grid-toolbar-bottom"
@@ -2659,9 +2823,28 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2659
2823
  {{hintText}}
2660
2824
  </ng-template>
2661
2825
 
2826
+ <ng-template #defaultPager>
2827
+ <div class="k-pager-numbers-wrap">
2828
+ <kendo-pager-prev-buttons [size]="size" *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-prev-buttons>
2829
+ <kendo-pager-numeric-buttons
2830
+ [size]="size"
2831
+ *ngIf="normalizedPageableSettings.type === 'numeric' && normalizedPageableSettings.buttonCount > 0"
2832
+ [buttonCount]="normalizedPageableSettings.buttonCount">
2833
+ </kendo-pager-numeric-buttons>
2834
+ <kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input'"></kendo-pager-input>
2835
+ <kendo-pager-next-buttons [size]="size" *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-next-buttons>
2836
+ </div>
2837
+ <kendo-pager-page-sizes *ngIf="normalizedPageableSettings.pageSizes"
2838
+ [size]="size"
2839
+ [pageSizes]="normalizedPageableSettings.pageSizes">
2840
+ </kendo-pager-page-sizes>
2841
+ <kendo-pager-info *ngIf="normalizedPageableSettings.info">
2842
+ </kendo-pager-info>
2843
+ </ng-template>
2662
2844
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
2663
- `, 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 });
2664
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GridComponent, decorators: [{
2845
+ `, 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: 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]" }, { kind: "component", type: i25.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i25.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i25.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: i25.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i25.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i25.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: i25.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i25.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i25.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
2846
+ }
2847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
2665
2848
  type: Component,
2666
2849
  args: [{
2667
2850
  encapsulation: ViewEncapsulation.None,
@@ -2690,6 +2873,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2690
2873
  FilterService,
2691
2874
  ResponsiveService,
2692
2875
  PagerContextService,
2876
+ PagerNavigationService,
2693
2877
  ExcelService,
2694
2878
  ScrollSyncService,
2695
2879
  ResizeService,
@@ -2751,6 +2935,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2751
2935
  i18n-pagerItemsPerPage="kendo.grid.pagerItemsPerPage|The label for the page size chooser in the Grid pager"
2752
2936
  pagerItemsPerPage="items per page"
2753
2937
 
2938
+ i18n-pagerInputLabel="kendo.grid.pagerInputLabel|The text of the aria-label attribute applied to the input element for entering the page number"
2939
+ pagerInputLabel="Type a page number"
2940
+
2754
2941
  i18n-filter="kendo.grid.filter|The label of the filter cell or icon"
2755
2942
  filter="Filter"
2756
2943
 
@@ -2934,8 +3121,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2934
3121
  i18n-groupExpand="kendo.grid.groupExpand|The text of the title and aria-label attributes applied to the expand icon of group rows."
2935
3122
  groupExpand="Expand Group"
2936
3123
 
2937
- i18n-selectPage="kendo.grid.selectPage|The text of the title and aria-label attributes applied to the page chooser in the Grid Pager"
2938
- selectPage="Select page"
3124
+ i18n-pagerSelectPage="kendo.grid.pagerSelectPage|The text of the title and aria-label attributes applied to the page chooser in the Grid Pager"
3125
+ pagerSelectPage="Select page"
2939
3126
 
2940
3127
  i18n-topToolbarLabel="kendo.grid.topToolbarLabel|The label for the Grid top toolbar"
2941
3128
  topToolbarLabel="Top toolbar"
@@ -2972,18 +3159,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2972
3159
  [navigable]="navigation.toolbarEnabled"
2973
3160
  [attr.aria-controls]="ariaRootId"
2974
3161
  position="top"></kendo-grid-toolbar>
3162
+ <ng-content select="kendo-toolbar"></ng-content>
2975
3163
  <kendo-pager
2976
3164
  *ngIf="showTopPager"
2977
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
2978
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
2979
- class="k-grid-pager-top k-pager"
2980
- [template]="pagerTemplate"
3165
+ #topPager
3166
+ [navigable]="navigation.pagerEnabled"
3167
+ class="k-grid-pager k-grid-pager-top"
2981
3168
  [pageSize]="pageSize"
2982
3169
  [total]="view.total"
2983
3170
  [skip]="skip"
2984
3171
  [size]="size"
2985
- [options]="pageable"
3172
+ [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
3173
+ [buttonCount]="normalizedPageableSettings.buttonCount"
3174
+ [info]="normalizedPageableSettings.info"
3175
+ [pageSizeValues]="normalizedPageableSettings.pageSizes"
3176
+ [previousNext]="normalizedPageableSettings.previousNext"
3177
+ [type]="normalizedPageableSettings.type"
2986
3178
  (pageChange)="notifyPageChange('pager', $event)">
3179
+ <ng-template kendoPagerTemplate>
3180
+ <ng-container
3181
+ [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
3182
+ [ngTemplateOutletContext]="topPager.templateContext"></ng-container>
3183
+ </ng-template>
3184
+ <kendo-pager-messages
3185
+ [ariaLabel]="messageFor('pagerLabel')"
3186
+ [firstPage]="messageFor('pagerFirstPage')"
3187
+ [inputLabel]="messageFor('pagerInputLabel')"
3188
+ [previousPage]="messageFor('pagerPreviousPage')"
3189
+ [nextPage]="messageFor('pagerNextPage')"
3190
+ [lastPage]="messageFor('pagerLastPage')"
3191
+ [selectPage]="messageFor('pagerSelectPage')"
3192
+ [page]="messageFor('pagerPage')"
3193
+ [itemsPerPage]="messageFor('pagerItemsPerPage')"
3194
+ [items]="messageFor('pagerItems')"
3195
+ [of]="messageFor('pagerOf')"
3196
+ [pageNumberInputTitle]="messageFor('pagerPageNumberInputTitle')">
3197
+ </kendo-pager-messages>
2987
3198
  </kendo-pager>
2988
3199
  <kendo-grid-group-panel
2989
3200
  *ngIf="showGroupPanel"
@@ -3265,16 +3476,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3265
3476
  </kendo-grid-status-bar>
3266
3477
  <kendo-pager
3267
3478
  *ngIf="showBottomPager"
3268
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
3269
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
3270
- [template]="pagerTemplate"
3479
+ #bottomPager
3480
+ class="k-grid-pager"
3481
+ [navigable]="navigation.pagerEnabled"
3271
3482
  [pageSize]="pageSize"
3272
3483
  [total]="view.total"
3273
3484
  [skip]="skip"
3274
3485
  [size]="size"
3275
- [options]="pageable"
3276
- class="k-pager"
3486
+ [responsive]="normalizedPageableSettings.responsive && !pagerTemplate"
3487
+ [buttonCount]="normalizedPageableSettings.buttonCount"
3488
+ [info]="normalizedPageableSettings.info"
3489
+ [pageSizeValues]="normalizedPageableSettings.pageSizes"
3490
+ [previousNext]="normalizedPageableSettings.previousNext"
3491
+ [type]="normalizedPageableSettings.type"
3277
3492
  (pageChange)="notifyPageChange('pager', $event)">
3493
+ <ng-template kendoPagerTemplate>
3494
+ <ng-container
3495
+ [ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
3496
+ [ngTemplateOutletContext]="bottomPager.templateContext"></ng-container>
3497
+ </ng-template>
3498
+ <kendo-pager-messages
3499
+ [ariaLabel]="messageFor('pagerLabel')"
3500
+ [firstPage]="messageFor('pagerFirstPage')"
3501
+ [inputLabel]="messageFor('pagerInputLabel')"
3502
+ [previousPage]="messageFor('pagerPreviousPage')"
3503
+ [nextPage]="messageFor('pagerNextPage')"
3504
+ [lastPage]="messageFor('pagerLastPage')"
3505
+ [selectPage]="messageFor('pagerSelectPage')"
3506
+ [page]="messageFor('pagerPage')"
3507
+ [itemsPerPage]="messageFor('pagerItemsPerPage')"
3508
+ [items]="messageFor('pagerItems')"
3509
+ [of]="messageFor('pagerOf')"
3510
+ [pageNumberInputTitle]="messageFor('pagerPageNumberInputTitle')">
3511
+ </kendo-pager-messages>
3278
3512
  </kendo-pager>
3279
3513
  <kendo-grid-toolbar
3280
3514
  class="k-grid-toolbar-bottom"
@@ -3295,15 +3529,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3295
3529
  {{hintText}}
3296
3530
  </ng-template>
3297
3531
 
3532
+ <ng-template #defaultPager>
3533
+ <div class="k-pager-numbers-wrap">
3534
+ <kendo-pager-prev-buttons [size]="size" *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-prev-buttons>
3535
+ <kendo-pager-numeric-buttons
3536
+ [size]="size"
3537
+ *ngIf="normalizedPageableSettings.type === 'numeric' && normalizedPageableSettings.buttonCount > 0"
3538
+ [buttonCount]="normalizedPageableSettings.buttonCount">
3539
+ </kendo-pager-numeric-buttons>
3540
+ <kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input'"></kendo-pager-input>
3541
+ <kendo-pager-next-buttons [size]="size" *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-next-buttons>
3542
+ </div>
3543
+ <kendo-pager-page-sizes *ngIf="normalizedPageableSettings.pageSizes"
3544
+ [size]="size"
3545
+ [pageSizes]="normalizedPageableSettings.pageSizes">
3546
+ </kendo-pager-page-sizes>
3547
+ <kendo-pager-info *ngIf="normalizedPageableSettings.info">
3548
+ </kendo-pager-info>
3549
+ </ng-template>
3298
3550
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3299
3551
  `,
3300
3552
  standalone: true,
3301
3553
  imports: [
3302
- LocalizedMessagesDirective, NgIf, ToolbarComponent, PagerComponent, GroupPanelComponent,
3554
+ LocalizedMessagesDirective, NgIf, GridToolbarComponent, GroupPanelComponent,
3303
3555
  TableDirective, GridTableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective,
3304
3556
  ListComponent, DragTargetContainerDirective, DropTargetContainerDirective, DraggableDirective,
3305
3557
  GridMarqueeDirective, FooterComponent, TableBodyComponent, LoadingComponent, StatusBarComponent,
3306
- IconWrapperComponent, WatermarkOverlayComponent
3558
+ IconWrapperComponent, WatermarkOverlayComponent, ...KENDO_PAGER, NgTemplateOutlet
3307
3559
  ]
3308
3560
  }]
3309
3561
  }], ctorParameters: function () { return [{ type: i1.BrowserSupportService }, { type: i2.SelectionService }, { type: i3.CellSelectionService }, { type: i0.ElementRef }, { type: i4.GroupInfoService }, { type: i5.GroupsService }, { type: i6.ChangeNotificationService }, { type: i7.DetailsService }, { type: i8.EditService }, { type: i9.FilterService }, { type: i10.PDFService }, { type: i11.ResponsiveService }, { type: i0.Renderer2 }, { type: i12.ExcelService }, { type: i0.NgZone }, { type: i13.ScrollSyncService }, { type: i14.DomEventsService }, { type: i15.ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: i16.ColumnReorderService }, { type: i17.ColumnInfoService }, { type: i18.NavigationService }, { type: i19.SortService }, { type: i20.ScrollRequestService }, { type: i21.LocalizationService }, { type: i22.ContextService }, { type: i23.SizingOptionsService }, { type: i24.RowReorderService }]; }, propDecorators: { data: [{