@progress/kendo-angular-grid 14.4.0-develop.2 → 14.4.0-develop.21

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 (625) hide show
  1. package/LICENSE.md +1 -1
  2. package/NOTICE.txt +147 -594
  3. package/README.md +1 -1
  4. package/aggregates/aggregate-types.d.ts +1 -1
  5. package/aggregates/selection-aggregate.service.d.ts +1 -1
  6. package/aggregates/status-bar-template.directive.d.ts +1 -1
  7. package/aggregates/status-bar.component.d.ts +1 -1
  8. package/column-menu/column-chooser-item-checked.directive.d.ts +1 -1
  9. package/column-menu/column-chooser.component.d.ts +1 -1
  10. package/column-menu/column-list-kb-nav.service.d.ts +1 -1
  11. package/column-menu/column-list.component.d.ts +1 -1
  12. package/column-menu/column-locked-change-event.d.ts +1 -1
  13. package/column-menu/column-menu-autosize-all.component.d.ts +1 -1
  14. package/column-menu/column-menu-autosize.component.d.ts +1 -1
  15. package/column-menu/column-menu-chooser.component.d.ts +1 -1
  16. package/column-menu/column-menu-container.component.d.ts +1 -1
  17. package/column-menu/column-menu-expandable-item.interface.d.ts +1 -1
  18. package/column-menu/column-menu-filter.component.d.ts +1 -1
  19. package/column-menu/column-menu-item-base.d.ts +1 -1
  20. package/column-menu/column-menu-item-content-template.directive.d.ts +1 -1
  21. package/column-menu/column-menu-item.component.d.ts +1 -1
  22. package/column-menu/column-menu-item.directive.d.ts +1 -1
  23. package/column-menu/column-menu-lock.component.d.ts +1 -1
  24. package/column-menu/column-menu-position.component.d.ts +1 -1
  25. package/column-menu/column-menu-settings.interface.d.ts +1 -1
  26. package/column-menu/column-menu-sort.component.d.ts +1 -1
  27. package/column-menu/column-menu-stick.component.d.ts +1 -1
  28. package/column-menu/column-menu-template.directive.d.ts +1 -1
  29. package/column-menu/column-menu.component.d.ts +1 -1
  30. package/column-menu/column-menu.module.d.ts +1 -1
  31. package/column-menu/column-menu.service.d.ts +1 -1
  32. package/column-menu/column-sticky-change-event.d.ts +1 -1
  33. package/column-menu/column-visibility-change-event.d.ts +1 -1
  34. package/column-menu/utils.d.ts +1 -1
  35. package/column-resizing/column-handle.directive.d.ts +1 -1
  36. package/column-resizing/column-resize.interface.d.ts +1 -1
  37. package/column-resizing/column-resizing.service.d.ts +1 -1
  38. package/column-resizing/table.directive.d.ts +1 -1
  39. package/columns/checkbox-column.component.d.ts +1 -1
  40. package/columns/column-base.d.ts +1 -1
  41. package/columns/column-common.d.ts +1 -1
  42. package/columns/column-group.component.d.ts +1 -1
  43. package/columns/column-list.d.ts +1 -1
  44. package/columns/column.component.d.ts +1 -1
  45. package/columns/columns-container.d.ts +1 -1
  46. package/columns/command-column.component.d.ts +1 -1
  47. package/columns/reorder-column.component.d.ts +1 -1
  48. package/columns/sort-settings.d.ts +1 -1
  49. package/columns/span-column.component.d.ts +1 -1
  50. package/common/cell-click-event-args.interface.d.ts +1 -1
  51. package/common/clipboard-types.d.ts +102 -0
  52. package/common/clipboard.directive.d.ts +49 -0
  53. package/common/clipboard.service.d.ts +28 -0
  54. package/common/column-info.service.d.ts +1 -1
  55. package/common/create-form-group.d.ts +1 -1
  56. package/common/default-track-by.d.ts +1 -1
  57. package/common/dom-events.service.d.ts +2 -1
  58. package/common/error-messages.d.ts +13 -1
  59. package/common/event-emitter.d.ts +1 -1
  60. package/common/fetch-data-callback.d.ts +1 -1
  61. package/common/filter-descriptor-differ.d.ts +1 -1
  62. package/common/filter-operator.interface.d.ts +1 -1
  63. package/common/id.service.d.ts +1 -1
  64. package/common/preventable-event.d.ts +1 -1
  65. package/common/provider.service.d.ts +1 -1
  66. package/common/remove-confirmation.d.ts +1 -1
  67. package/common/single-popup.service.d.ts +1 -1
  68. package/common/size-options.d.ts +1 -1
  69. package/common/sort.service.d.ts +1 -1
  70. package/constants.d.ts +1 -1
  71. package/data/change-event-args.interface.d.ts +1 -1
  72. package/data/change-notification.service.d.ts +1 -1
  73. package/data/data-item.interface.d.ts +1 -1
  74. package/data/data.collection.d.ts +1 -1
  75. package/data/data.iterators.d.ts +1 -1
  76. package/data/grid-item.interface.d.ts +1 -1
  77. package/data/group-footer-item.interface.d.ts +1 -1
  78. package/data/group-item.interface.d.ts +1 -1
  79. package/databinding.directive.d.ts +2 -2
  80. package/dragdrop/column-reorder-config.d.ts +1 -1
  81. package/dragdrop/column-reorder-event.d.ts +1 -1
  82. package/dragdrop/column-reorder.service.d.ts +1 -1
  83. package/dragdrop/common.d.ts +1 -1
  84. package/dragdrop/context-types.d.ts +1 -1
  85. package/dragdrop/drag-and-drop.module.d.ts +1 -1
  86. package/dragdrop/drag-and-drop.service.d.ts +1 -1
  87. package/dragdrop/drag-hint.service.d.ts +1 -1
  88. package/dragdrop/draggable-column.directive.d.ts +1 -1
  89. package/dragdrop/drop-cue.service.d.ts +1 -1
  90. package/dragdrop/drop-target.directive.d.ts +1 -1
  91. package/editing/add-command.directive.d.ts +1 -1
  92. package/editing/add-event-args.interface.d.ts +1 -1
  93. package/editing/cancel-command.directive.d.ts +1 -1
  94. package/editing/cancel-event-args.interface.d.ts +1 -1
  95. package/editing/cell-close-event.d.ts +1 -1
  96. package/editing/edit-command.directive.d.ts +1 -1
  97. package/editing/edit-event-args.interface.d.ts +1 -1
  98. package/editing/edit-row-options.interface.d.ts +1 -1
  99. package/editing/edit-template.directive.d.ts +1 -1
  100. package/editing/edit.service.d.ts +1 -1
  101. package/editing/local-data-changes.service.d.ts +1 -1
  102. package/editing/remove-command.directive.d.ts +1 -1
  103. package/editing/remove-event-args.interface.d.ts +1 -1
  104. package/editing/save-command.directive.d.ts +1 -1
  105. package/editing/save-event-args.interface.d.ts +1 -1
  106. package/editing-directives/create-form-group-args.interface.d.ts +1 -1
  107. package/editing-directives/edit-service.interface.d.ts +1 -1
  108. package/editing-directives/editing-directive-base.d.ts +1 -1
  109. package/editing-directives/in-cell-editing.directive.d.ts +1 -1
  110. package/editing-directives/local-edit.service.d.ts +1 -1
  111. package/editing-directives/local-row-edit.service.d.ts +1 -1
  112. package/editing-directives/reactive-editing.directive.d.ts +1 -1
  113. package/editing-directives/row-editing-directive-base.d.ts +1 -1
  114. package/editing-directives/template-editing.directive.d.ts +1 -1
  115. package/editing-directives/utils.d.ts +1 -1
  116. package/esm2020/aggregates/aggregate-types.mjs +1 -1
  117. package/esm2020/aggregates/selection-aggregate.service.mjs +1 -1
  118. package/esm2020/aggregates/status-bar-template.directive.mjs +1 -1
  119. package/esm2020/aggregates/status-bar.component.mjs +1 -1
  120. package/esm2020/column-menu/column-chooser-item-checked.directive.mjs +1 -1
  121. package/esm2020/column-menu/column-chooser.component.mjs +1 -1
  122. package/esm2020/column-menu/column-list-kb-nav.service.mjs +1 -1
  123. package/esm2020/column-menu/column-list.component.mjs +1 -1
  124. package/esm2020/column-menu/column-locked-change-event.mjs +1 -1
  125. package/esm2020/column-menu/column-menu-autosize-all.component.mjs +1 -1
  126. package/esm2020/column-menu/column-menu-autosize.component.mjs +1 -1
  127. package/esm2020/column-menu/column-menu-chooser.component.mjs +1 -1
  128. package/esm2020/column-menu/column-menu-container.component.mjs +1 -1
  129. package/esm2020/column-menu/column-menu-expandable-item.interface.mjs +1 -1
  130. package/esm2020/column-menu/column-menu-filter.component.mjs +1 -1
  131. package/esm2020/column-menu/column-menu-item-base.mjs +3 -2
  132. package/esm2020/column-menu/column-menu-item-content-template.directive.mjs +1 -1
  133. package/esm2020/column-menu/column-menu-item.component.mjs +1 -1
  134. package/esm2020/column-menu/column-menu-item.directive.mjs +1 -1
  135. package/esm2020/column-menu/column-menu-lock.component.mjs +1 -1
  136. package/esm2020/column-menu/column-menu-position.component.mjs +1 -1
  137. package/esm2020/column-menu/column-menu-settings.interface.mjs +1 -1
  138. package/esm2020/column-menu/column-menu-sort.component.mjs +1 -1
  139. package/esm2020/column-menu/column-menu-stick.component.mjs +1 -1
  140. package/esm2020/column-menu/column-menu-template.directive.mjs +1 -1
  141. package/esm2020/column-menu/column-menu.component.mjs +9 -6
  142. package/esm2020/column-menu/column-menu.module.mjs +1 -1
  143. package/esm2020/column-menu/column-menu.service.mjs +1 -1
  144. package/esm2020/column-menu/column-sticky-change-event.mjs +1 -1
  145. package/esm2020/column-menu/column-visibility-change-event.mjs +1 -1
  146. package/esm2020/column-menu/utils.mjs +1 -1
  147. package/esm2020/column-resizing/column-handle.directive.mjs +1 -1
  148. package/esm2020/column-resizing/column-resize.interface.mjs +1 -1
  149. package/esm2020/column-resizing/column-resizing.service.mjs +1 -1
  150. package/esm2020/column-resizing/table.directive.mjs +1 -1
  151. package/esm2020/columns/checkbox-column.component.mjs +1 -1
  152. package/esm2020/columns/column-base.mjs +4 -3
  153. package/esm2020/columns/column-common.mjs +1 -1
  154. package/esm2020/columns/column-group.component.mjs +3 -2
  155. package/esm2020/columns/column-list.mjs +1 -1
  156. package/esm2020/columns/column.component.mjs +1 -1
  157. package/esm2020/columns/columns-container.mjs +1 -1
  158. package/esm2020/columns/command-column.component.mjs +1 -1
  159. package/esm2020/columns/reorder-column.component.mjs +1 -1
  160. package/esm2020/columns/sort-settings.mjs +1 -1
  161. package/esm2020/columns/span-column.component.mjs +3 -2
  162. package/esm2020/common/cell-click-event-args.interface.mjs +1 -1
  163. package/esm2020/common/clipboard-types.mjs +5 -0
  164. package/esm2020/common/clipboard.directive.mjs +185 -0
  165. package/esm2020/common/clipboard.service.mjs +218 -0
  166. package/esm2020/common/column-info.service.mjs +1 -1
  167. package/esm2020/common/create-form-group.mjs +1 -1
  168. package/esm2020/common/default-track-by.mjs +1 -1
  169. package/esm2020/common/dom-events.service.mjs +2 -1
  170. package/esm2020/common/error-messages.mjs +46 -2
  171. package/esm2020/common/event-emitter.mjs +1 -1
  172. package/esm2020/common/fetch-data-callback.mjs +1 -1
  173. package/esm2020/common/filter-descriptor-differ.mjs +1 -1
  174. package/esm2020/common/filter-operator.interface.mjs +1 -1
  175. package/esm2020/common/id.service.mjs +1 -1
  176. package/esm2020/common/preventable-event.mjs +1 -1
  177. package/esm2020/common/provider.service.mjs +1 -1
  178. package/esm2020/common/remove-confirmation.mjs +1 -1
  179. package/esm2020/common/single-popup.service.mjs +1 -1
  180. package/esm2020/common/size-options.mjs +1 -1
  181. package/esm2020/common/sort.service.mjs +1 -1
  182. package/esm2020/constants.mjs +1 -1
  183. package/esm2020/data/change-event-args.interface.mjs +1 -1
  184. package/esm2020/data/change-notification.service.mjs +1 -1
  185. package/esm2020/data/data-item.interface.mjs +1 -1
  186. package/esm2020/data/data.collection.mjs +1 -1
  187. package/esm2020/data/data.iterators.mjs +1 -1
  188. package/esm2020/data/grid-item.interface.mjs +1 -1
  189. package/esm2020/data/group-footer-item.interface.mjs +1 -1
  190. package/esm2020/data/group-item.interface.mjs +1 -1
  191. package/esm2020/databinding.directive.mjs +4 -3
  192. package/esm2020/dragdrop/column-reorder-config.mjs +1 -1
  193. package/esm2020/dragdrop/column-reorder-event.mjs +1 -1
  194. package/esm2020/dragdrop/column-reorder.service.mjs +1 -1
  195. package/esm2020/dragdrop/common.mjs +1 -1
  196. package/esm2020/dragdrop/context-types.mjs +1 -1
  197. package/esm2020/dragdrop/drag-and-drop.module.mjs +1 -1
  198. package/esm2020/dragdrop/drag-and-drop.service.mjs +1 -1
  199. package/esm2020/dragdrop/drag-hint.service.mjs +1 -1
  200. package/esm2020/dragdrop/draggable-column.directive.mjs +1 -1
  201. package/esm2020/dragdrop/drop-cue.service.mjs +1 -1
  202. package/esm2020/dragdrop/drop-target.directive.mjs +1 -1
  203. package/esm2020/editing/add-command.directive.mjs +1 -1
  204. package/esm2020/editing/add-event-args.interface.mjs +1 -1
  205. package/esm2020/editing/cancel-command.directive.mjs +1 -1
  206. package/esm2020/editing/cancel-event-args.interface.mjs +1 -1
  207. package/esm2020/editing/cell-close-event.mjs +1 -1
  208. package/esm2020/editing/edit-command.directive.mjs +1 -1
  209. package/esm2020/editing/edit-event-args.interface.mjs +1 -1
  210. package/esm2020/editing/edit-row-options.interface.mjs +1 -1
  211. package/esm2020/editing/edit-template.directive.mjs +1 -1
  212. package/esm2020/editing/edit.service.mjs +1 -1
  213. package/esm2020/editing/local-data-changes.service.mjs +1 -1
  214. package/esm2020/editing/remove-command.directive.mjs +1 -1
  215. package/esm2020/editing/remove-event-args.interface.mjs +1 -1
  216. package/esm2020/editing/save-command.directive.mjs +1 -1
  217. package/esm2020/editing/save-event-args.interface.mjs +1 -1
  218. package/esm2020/editing-directives/create-form-group-args.interface.mjs +1 -1
  219. package/esm2020/editing-directives/edit-service.interface.mjs +1 -1
  220. package/esm2020/editing-directives/editing-directive-base.mjs +1 -1
  221. package/esm2020/editing-directives/in-cell-editing.directive.mjs +1 -1
  222. package/esm2020/editing-directives/local-edit.service.mjs +3 -3
  223. package/esm2020/editing-directives/local-row-edit.service.mjs +1 -1
  224. package/esm2020/editing-directives/reactive-editing.directive.mjs +1 -1
  225. package/esm2020/editing-directives/row-editing-directive-base.mjs +1 -1
  226. package/esm2020/editing-directives/template-editing.directive.mjs +1 -1
  227. package/esm2020/editing-directives/utils.mjs +1 -1
  228. package/esm2020/excel/excel-command.directive.mjs +1 -1
  229. package/esm2020/excel/excel-export-event.mjs +1 -1
  230. package/esm2020/excel/excel.component.mjs +1 -1
  231. package/esm2020/excel/excel.module.mjs +1 -1
  232. package/esm2020/excel/excel.service.mjs +3 -2
  233. package/esm2020/filtering/base-filter-cell.component.mjs +1 -1
  234. package/esm2020/filtering/boolean-filter.component.mjs +1 -1
  235. package/esm2020/filtering/cell/autocomplete-filter-cell.component.mjs +2 -2
  236. package/esm2020/filtering/cell/boolean-filter-cell.component.mjs +1 -1
  237. package/esm2020/filtering/cell/date-filter-cell.component.mjs +1 -1
  238. package/esm2020/filtering/cell/filter-cell-component.factory.mjs +1 -1
  239. package/esm2020/filtering/cell/filter-cell-host.directive.mjs +1 -1
  240. package/esm2020/filtering/cell/filter-cell-operators.component.mjs +1 -1
  241. package/esm2020/filtering/cell/filter-cell-template.directive.mjs +1 -1
  242. package/esm2020/filtering/cell/filter-cell-wrapper.component.mjs +1 -1
  243. package/esm2020/filtering/cell/filter-cell.component.mjs +1 -1
  244. package/esm2020/filtering/cell/numeric-filter-cell.component.mjs +2 -2
  245. package/esm2020/filtering/cell/row-filtering.module.mjs +1 -1
  246. package/esm2020/filtering/cell/string-filter-cell.component.mjs +1 -1
  247. package/esm2020/filtering/date-filter.component.mjs +1 -1
  248. package/esm2020/filtering/filter-component.interface.mjs +1 -1
  249. package/esm2020/filtering/filter-host.directive.mjs +1 -1
  250. package/esm2020/filtering/filter-input-wrapper.component.mjs +1 -1
  251. package/esm2020/filtering/filter-input.directive.mjs +1 -1
  252. package/esm2020/filtering/filter-row.component.mjs +1 -1
  253. package/esm2020/filtering/filter.service.mjs +1 -1
  254. package/esm2020/filtering/filterable.mjs +1 -1
  255. package/esm2020/filtering/menu/boolean-filter-menu.component.mjs +1 -1
  256. package/esm2020/filtering/menu/date-filter-menu-input.component.mjs +1 -1
  257. package/esm2020/filtering/menu/date-filter-menu.component.mjs +1 -1
  258. package/esm2020/filtering/menu/filter-menu-component.factory.mjs +1 -1
  259. package/esm2020/filtering/menu/filter-menu-container.component.mjs +3 -3
  260. package/esm2020/filtering/menu/filter-menu-dropdownlist.directive.mjs +1 -1
  261. package/esm2020/filtering/menu/filter-menu-host.directive.mjs +1 -1
  262. package/esm2020/filtering/menu/filter-menu-input-wrapper.component.mjs +1 -1
  263. package/esm2020/filtering/menu/filter-menu-template.directive.mjs +1 -1
  264. package/esm2020/filtering/menu/filter-menu.component.mjs +1 -1
  265. package/esm2020/filtering/menu/filter-menu.module.mjs +1 -1
  266. package/esm2020/filtering/menu/filter-radio-button.directive.mjs +1 -1
  267. package/esm2020/filtering/menu/menu-tabbing.service.mjs +1 -1
  268. package/esm2020/filtering/menu/numeric-filter-menu-input.component.mjs +2 -2
  269. package/esm2020/filtering/menu/numeric-filter-menu.component.mjs +1 -1
  270. package/esm2020/filtering/menu/string-filter-menu-input.component.mjs +1 -1
  271. package/esm2020/filtering/menu/string-filter-menu.component.mjs +1 -1
  272. package/esm2020/filtering/numeric-filter.component.mjs +1 -1
  273. package/esm2020/filtering/operators/after-eq-filter-operator.component.mjs +1 -1
  274. package/esm2020/filtering/operators/after-filter-operator.component.mjs +1 -1
  275. package/esm2020/filtering/operators/before-eq-filter-operator.component.mjs +1 -1
  276. package/esm2020/filtering/operators/before-filter-operator.component.mjs +1 -1
  277. package/esm2020/filtering/operators/contains-filter-operator.component.mjs +1 -1
  278. package/esm2020/filtering/operators/ends-with-filter-operator.component.mjs +1 -1
  279. package/esm2020/filtering/operators/eq-filter-operator.component.mjs +1 -1
  280. package/esm2020/filtering/operators/filter-operator.base.mjs +1 -1
  281. package/esm2020/filtering/operators/gt-filter-operator.component.mjs +1 -1
  282. package/esm2020/filtering/operators/gte-filter-operator.component.mjs +1 -1
  283. package/esm2020/filtering/operators/is-empty-filter-operator.component.mjs +1 -1
  284. package/esm2020/filtering/operators/is-not-empty-filter-operator.component.mjs +1 -1
  285. package/esm2020/filtering/operators/is-not-null-filter-operator.component.mjs +1 -1
  286. package/esm2020/filtering/operators/isnull-filter-operator.component.mjs +1 -1
  287. package/esm2020/filtering/operators/lt-filter-operator.component.mjs +1 -1
  288. package/esm2020/filtering/operators/lte-filter-operator.component.mjs +1 -1
  289. package/esm2020/filtering/operators/neq-filter-operator.component.mjs +1 -1
  290. package/esm2020/filtering/operators/not-contains-filter-operator.component.mjs +1 -1
  291. package/esm2020/filtering/operators/starts-with-filter-operator.component.mjs +1 -1
  292. package/esm2020/filtering/shared-filtering.module.mjs +1 -1
  293. package/esm2020/filtering/string-filter.component.mjs +1 -1
  294. package/esm2020/grid.component.mjs +41 -35
  295. package/esm2020/grid.module.mjs +9 -5
  296. package/esm2020/grouping/group-footer-template.directive.mjs +1 -1
  297. package/esm2020/grouping/group-header-column-template.directive.mjs +1 -1
  298. package/esm2020/grouping/group-header-template.directive.mjs +1 -1
  299. package/esm2020/grouping/group-header.component.mjs +1 -1
  300. package/esm2020/grouping/group-info.service.mjs +1 -1
  301. package/esm2020/grouping/group-key.interface.mjs +1 -1
  302. package/esm2020/grouping/group-panel.component.mjs +1 -1
  303. package/esm2020/grouping/group-rows-args.interface.mjs +1 -1
  304. package/esm2020/grouping/group-scroll-binding.directive.mjs +3 -4
  305. package/esm2020/grouping/group-settings.mjs +1 -1
  306. package/esm2020/grouping/group.module.mjs +1 -1
  307. package/esm2020/grouping/groups.service.mjs +1 -1
  308. package/esm2020/grouping/utils.mjs +1 -1
  309. package/esm2020/grouping/virtual-group-result.interface.mjs +1 -1
  310. package/esm2020/index.mjs +3 -1
  311. package/esm2020/layout/browser-support.service.mjs +1 -1
  312. package/esm2020/layout/resizable.directive.mjs +1 -1
  313. package/esm2020/layout/resize.service.mjs +1 -1
  314. package/esm2020/layout/responsive.service.mjs +1 -1
  315. package/esm2020/layout/row-sync.mjs +1 -1
  316. package/esm2020/layout/sizing-options.service.mjs +1 -1
  317. package/esm2020/localization/custom-messages.component.mjs +1 -1
  318. package/esm2020/localization/localized-messages.directive.mjs +1 -1
  319. package/esm2020/localization/messages.mjs +1 -1
  320. package/esm2020/navigation/default-focusable-element.mjs +1 -1
  321. package/esm2020/navigation/focus-group.mjs +1 -1
  322. package/esm2020/navigation/focus-root.mjs +1 -1
  323. package/esm2020/navigation/focusable-element.interface.mjs +1 -1
  324. package/esm2020/navigation/focusable.directive.mjs +1 -1
  325. package/esm2020/navigation/grid-focusable-element.mjs +1 -1
  326. package/esm2020/navigation/item-map.mjs +1 -1
  327. package/esm2020/navigation/logical-cell.directive.mjs +1 -1
  328. package/esm2020/navigation/logical-cell.interface.mjs +1 -1
  329. package/esm2020/navigation/logical-row.directive.mjs +1 -1
  330. package/esm2020/navigation/logical-row.interface.mjs +1 -1
  331. package/esm2020/navigation/navigable-settings.mjs +1 -1
  332. package/esm2020/navigation/navigation-cell.interface.mjs +1 -1
  333. package/esm2020/navigation/navigation-change.interface.mjs +1 -1
  334. package/esm2020/navigation/navigation-cursor.mjs +1 -1
  335. package/esm2020/navigation/navigation-metadata.mjs +1 -1
  336. package/esm2020/navigation/navigation-mode.mjs +1 -1
  337. package/esm2020/navigation/navigation-model.mjs +1 -1
  338. package/esm2020/navigation/navigation-row.interface.mjs +1 -1
  339. package/esm2020/navigation/navigation.service.mjs +1 -1
  340. package/esm2020/package-metadata.mjs +3 -3
  341. package/esm2020/pager/pager-context.service.mjs +1 -1
  342. package/esm2020/pager/pager-dropdown.directive.mjs +1 -1
  343. package/esm2020/pager/pager-element.component.mjs +1 -1
  344. package/esm2020/pager/pager-info.component.mjs +1 -1
  345. package/esm2020/pager/pager-input.component.mjs +2 -2
  346. package/esm2020/pager/pager-input.directive.mjs +1 -1
  347. package/esm2020/pager/pager-next-buttons.component.mjs +1 -1
  348. package/esm2020/pager/pager-numeric-buttons.component.mjs +1 -1
  349. package/esm2020/pager/pager-page-sizes.component.mjs +1 -1
  350. package/esm2020/pager/pager-prev-buttons.component.mjs +1 -1
  351. package/esm2020/pager/pager-settings.mjs +1 -1
  352. package/esm2020/pager/pager-template.directive.mjs +1 -1
  353. package/esm2020/pager/pager.component.mjs +2 -6
  354. package/esm2020/pager/pager.module.mjs +1 -1
  355. package/esm2020/pager/pagesize-item.interface.mjs +1 -1
  356. package/esm2020/pdf/export-element.mjs +1 -1
  357. package/esm2020/pdf/grid-query.mjs +1 -1
  358. package/esm2020/pdf/pdf-command.directive.mjs +1 -1
  359. package/esm2020/pdf/pdf-export-event.mjs +1 -1
  360. package/esm2020/pdf/pdf-margin.component.mjs +1 -1
  361. package/esm2020/pdf/pdf-margin.interface.mjs +1 -1
  362. package/esm2020/pdf/pdf-template.directive.mjs +1 -1
  363. package/esm2020/pdf/pdf.component.mjs +4 -3
  364. package/esm2020/pdf/pdf.module.mjs +1 -1
  365. package/esm2020/pdf/pdf.service.mjs +3 -2
  366. package/esm2020/progress-kendo-angular-grid.mjs +1 -1
  367. package/esm2020/rendering/body.module.mjs +1 -1
  368. package/esm2020/rendering/cell-loading.template.directive.mjs +1 -1
  369. package/esm2020/rendering/cell-template.directive.mjs +1 -1
  370. package/esm2020/rendering/cell.component.mjs +34 -26
  371. package/esm2020/rendering/common/cell-context.mjs +1 -1
  372. package/esm2020/rendering/common/col-group.component.mjs +1 -1
  373. package/esm2020/rendering/common/dom-queries.mjs +1 -1
  374. package/esm2020/rendering/common/field-accessor.pipe.mjs +1 -1
  375. package/esm2020/rendering/common/loading.component.mjs +1 -1
  376. package/esm2020/rendering/common/row-args.mjs +1 -1
  377. package/esm2020/rendering/common/row-class.mjs +1 -1
  378. package/esm2020/rendering/common/spacer.component.mjs +1 -1
  379. package/esm2020/rendering/common/template-context.directive.mjs +1 -1
  380. package/esm2020/rendering/constants.mjs +1 -1
  381. package/esm2020/rendering/details/detail-collapse-event.mjs +1 -1
  382. package/esm2020/rendering/details/detail-expand-event.mjs +1 -1
  383. package/esm2020/rendering/details/detail-template.directive.mjs +3 -2
  384. package/esm2020/rendering/details/details.service.mjs +1 -1
  385. package/esm2020/rendering/details-expand.directive.mjs +1 -1
  386. package/esm2020/rendering/footer/footer-template.directive.mjs +1 -1
  387. package/esm2020/rendering/footer/footer.component.mjs +1 -1
  388. package/esm2020/rendering/footer/footer.module.mjs +1 -1
  389. package/esm2020/rendering/grid-table.directive.mjs +1 -1
  390. package/esm2020/rendering/groups-expand.directive.mjs +1 -1
  391. package/esm2020/rendering/header/header-template.directive.mjs +1 -1
  392. package/esm2020/rendering/header/header.component.mjs +17 -13
  393. package/esm2020/rendering/header/header.module.mjs +1 -1
  394. package/esm2020/rendering/list.component.mjs +1 -1
  395. package/esm2020/rendering/loading-template.directive.mjs +1 -1
  396. package/esm2020/rendering/no-records-template.directive.mjs +1 -1
  397. package/esm2020/rendering/table-body.component.mjs +5 -5
  398. package/esm2020/rendering/toolbar/toolbar-focusable.directive.mjs +1 -1
  399. package/esm2020/rendering/toolbar/toolbar-navigation.service.mjs +1 -1
  400. package/esm2020/rendering/toolbar/toolbar-position.mjs +1 -1
  401. package/esm2020/rendering/toolbar/toolbar-template.directive.mjs +1 -1
  402. package/esm2020/rendering/toolbar/toolbar.component.mjs +1 -1
  403. package/esm2020/row-reordering/row-reorder.service.mjs +1 -1
  404. package/esm2020/row-reordering/types.mjs +1 -1
  405. package/esm2020/row-reordering/utils.mjs +1 -1
  406. package/esm2020/scrolling/content-scroll-event.mjs +1 -1
  407. package/esm2020/scrolling/row-height.service.mjs +1 -1
  408. package/esm2020/scrolling/scroll-bottom-event.mjs +1 -1
  409. package/esm2020/scrolling/scroll-request.service.mjs +1 -1
  410. package/esm2020/scrolling/scroll-sync.service.mjs +1 -1
  411. package/esm2020/scrolling/scroller.service.mjs +1 -1
  412. package/esm2020/scrolling/scrollmode.mjs +1 -1
  413. package/esm2020/scrolling/suspend.service.mjs +1 -1
  414. package/esm2020/selection/cell-selection.service.mjs +1 -1
  415. package/esm2020/selection/marquee.directive.mjs +12 -18
  416. package/esm2020/selection/pair-set.mjs +1 -1
  417. package/esm2020/selection/selectall-checkbox.directive.mjs +1 -1
  418. package/esm2020/selection/selection-checkbox.directive.mjs +1 -1
  419. package/esm2020/selection/selection-default.mjs +12 -6
  420. package/esm2020/selection/selection.directive.mjs +1 -1
  421. package/esm2020/selection/selection.service.mjs +1 -1
  422. package/esm2020/selection/types.mjs +1 -1
  423. package/esm2020/shared.module.mjs +1 -1
  424. package/esm2020/utils.mjs +11 -1
  425. package/excel/excel-command.directive.d.ts +1 -1
  426. package/excel/excel-export-event.d.ts +1 -1
  427. package/excel/excel.component.d.ts +1 -1
  428. package/excel/excel.module.d.ts +1 -1
  429. package/excel/excel.service.d.ts +1 -1
  430. package/fesm2015/progress-kendo-angular-grid.mjs +599 -146
  431. package/fesm2020/progress-kendo-angular-grid.mjs +595 -146
  432. package/filtering/base-filter-cell.component.d.ts +1 -1
  433. package/filtering/boolean-filter.component.d.ts +1 -1
  434. package/filtering/cell/autocomplete-filter-cell.component.d.ts +1 -1
  435. package/filtering/cell/boolean-filter-cell.component.d.ts +1 -1
  436. package/filtering/cell/date-filter-cell.component.d.ts +1 -1
  437. package/filtering/cell/filter-cell-component.factory.d.ts +1 -1
  438. package/filtering/cell/filter-cell-host.directive.d.ts +1 -1
  439. package/filtering/cell/filter-cell-operators.component.d.ts +1 -1
  440. package/filtering/cell/filter-cell-template.directive.d.ts +1 -1
  441. package/filtering/cell/filter-cell-wrapper.component.d.ts +1 -1
  442. package/filtering/cell/filter-cell.component.d.ts +1 -1
  443. package/filtering/cell/numeric-filter-cell.component.d.ts +1 -1
  444. package/filtering/cell/row-filtering.module.d.ts +1 -1
  445. package/filtering/cell/string-filter-cell.component.d.ts +1 -1
  446. package/filtering/date-filter.component.d.ts +1 -1
  447. package/filtering/filter-component.interface.d.ts +1 -1
  448. package/filtering/filter-host.directive.d.ts +1 -1
  449. package/filtering/filter-input-wrapper.component.d.ts +1 -1
  450. package/filtering/filter-input.directive.d.ts +1 -1
  451. package/filtering/filter-row.component.d.ts +1 -1
  452. package/filtering/filter.service.d.ts +1 -1
  453. package/filtering/filterable.d.ts +1 -1
  454. package/filtering/menu/boolean-filter-menu.component.d.ts +1 -1
  455. package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
  456. package/filtering/menu/date-filter-menu.component.d.ts +1 -1
  457. package/filtering/menu/filter-menu-component.factory.d.ts +1 -1
  458. package/filtering/menu/filter-menu-container.component.d.ts +1 -1
  459. package/filtering/menu/filter-menu-dropdownlist.directive.d.ts +1 -1
  460. package/filtering/menu/filter-menu-host.directive.d.ts +1 -1
  461. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +1 -1
  462. package/filtering/menu/filter-menu-template.directive.d.ts +1 -1
  463. package/filtering/menu/filter-menu.component.d.ts +1 -1
  464. package/filtering/menu/filter-menu.module.d.ts +1 -1
  465. package/filtering/menu/filter-radio-button.directive.d.ts +1 -1
  466. package/filtering/menu/menu-tabbing.service.d.ts +1 -1
  467. package/filtering/menu/numeric-filter-menu-input.component.d.ts +1 -1
  468. package/filtering/menu/numeric-filter-menu.component.d.ts +1 -1
  469. package/filtering/menu/string-filter-menu-input.component.d.ts +1 -1
  470. package/filtering/menu/string-filter-menu.component.d.ts +1 -1
  471. package/filtering/numeric-filter.component.d.ts +1 -1
  472. package/filtering/operators/after-eq-filter-operator.component.d.ts +1 -1
  473. package/filtering/operators/after-filter-operator.component.d.ts +1 -1
  474. package/filtering/operators/before-eq-filter-operator.component.d.ts +1 -1
  475. package/filtering/operators/before-filter-operator.component.d.ts +1 -1
  476. package/filtering/operators/contains-filter-operator.component.d.ts +1 -1
  477. package/filtering/operators/ends-with-filter-operator.component.d.ts +1 -1
  478. package/filtering/operators/eq-filter-operator.component.d.ts +1 -1
  479. package/filtering/operators/filter-operator.base.d.ts +1 -1
  480. package/filtering/operators/gt-filter-operator.component.d.ts +1 -1
  481. package/filtering/operators/gte-filter-operator.component.d.ts +1 -1
  482. package/filtering/operators/is-empty-filter-operator.component.d.ts +1 -1
  483. package/filtering/operators/is-not-empty-filter-operator.component.d.ts +1 -1
  484. package/filtering/operators/is-not-null-filter-operator.component.d.ts +1 -1
  485. package/filtering/operators/isnull-filter-operator.component.d.ts +1 -1
  486. package/filtering/operators/lt-filter-operator.component.d.ts +1 -1
  487. package/filtering/operators/lte-filter-operator.component.d.ts +1 -1
  488. package/filtering/operators/neq-filter-operator.component.d.ts +1 -1
  489. package/filtering/operators/not-contains-filter-operator.component.d.ts +1 -1
  490. package/filtering/operators/starts-with-filter-operator.component.d.ts +1 -1
  491. package/filtering/shared-filtering.module.d.ts +1 -1
  492. package/filtering/string-filter.component.d.ts +1 -1
  493. package/grid.component.d.ts +8 -2
  494. package/grid.module.d.ts +100 -99
  495. package/grouping/group-footer-template.directive.d.ts +1 -1
  496. package/grouping/group-header-column-template.directive.d.ts +1 -1
  497. package/grouping/group-header-template.directive.d.ts +1 -1
  498. package/grouping/group-header.component.d.ts +1 -1
  499. package/grouping/group-info.service.d.ts +1 -1
  500. package/grouping/group-key.interface.d.ts +1 -1
  501. package/grouping/group-panel.component.d.ts +1 -1
  502. package/grouping/group-rows-args.interface.d.ts +1 -1
  503. package/grouping/group-scroll-binding.directive.d.ts +1 -1
  504. package/grouping/group-settings.d.ts +1 -1
  505. package/grouping/group.module.d.ts +1 -1
  506. package/grouping/groups.service.d.ts +1 -1
  507. package/grouping/utils.d.ts +1 -1
  508. package/grouping/virtual-group-result.interface.d.ts +1 -1
  509. package/index.d.ts +4 -2
  510. package/layout/browser-support.service.d.ts +1 -1
  511. package/layout/resizable.directive.d.ts +1 -1
  512. package/layout/resize.service.d.ts +1 -1
  513. package/layout/responsive.service.d.ts +1 -1
  514. package/layout/row-sync.d.ts +1 -1
  515. package/layout/sizing-options.service.d.ts +1 -1
  516. package/localization/custom-messages.component.d.ts +1 -1
  517. package/localization/localized-messages.directive.d.ts +1 -1
  518. package/localization/messages.d.ts +1 -1
  519. package/navigation/default-focusable-element.d.ts +1 -1
  520. package/navigation/focus-group.d.ts +1 -1
  521. package/navigation/focus-root.d.ts +1 -1
  522. package/navigation/focusable-element.interface.d.ts +1 -1
  523. package/navigation/focusable.directive.d.ts +1 -1
  524. package/navigation/grid-focusable-element.d.ts +1 -1
  525. package/navigation/item-map.d.ts +1 -1
  526. package/navigation/logical-cell.directive.d.ts +1 -1
  527. package/navigation/logical-cell.interface.d.ts +1 -1
  528. package/navigation/logical-row.directive.d.ts +1 -1
  529. package/navigation/logical-row.interface.d.ts +1 -1
  530. package/navigation/navigable-settings.d.ts +1 -1
  531. package/navigation/navigation-cell.interface.d.ts +1 -1
  532. package/navigation/navigation-change.interface.d.ts +1 -1
  533. package/navigation/navigation-cursor.d.ts +1 -1
  534. package/navigation/navigation-metadata.d.ts +1 -1
  535. package/navigation/navigation-mode.d.ts +1 -1
  536. package/navigation/navigation-model.d.ts +1 -1
  537. package/navigation/navigation-row.interface.d.ts +1 -1
  538. package/navigation/navigation.service.d.ts +1 -1
  539. package/package-metadata.d.ts +1 -1
  540. package/package.json +17 -17
  541. package/pager/pager-context.service.d.ts +1 -1
  542. package/pager/pager-dropdown.directive.d.ts +1 -1
  543. package/pager/pager-element.component.d.ts +1 -1
  544. package/pager/pager-info.component.d.ts +1 -1
  545. package/pager/pager-input.component.d.ts +1 -1
  546. package/pager/pager-input.directive.d.ts +1 -1
  547. package/pager/pager-next-buttons.component.d.ts +1 -1
  548. package/pager/pager-numeric-buttons.component.d.ts +1 -1
  549. package/pager/pager-page-sizes.component.d.ts +1 -1
  550. package/pager/pager-prev-buttons.component.d.ts +1 -1
  551. package/pager/pager-settings.d.ts +1 -1
  552. package/pager/pager-template.directive.d.ts +1 -1
  553. package/pager/pager.component.d.ts +1 -2
  554. package/pager/pager.module.d.ts +1 -1
  555. package/pager/pagesize-item.interface.d.ts +1 -1
  556. package/pdf/export-element.d.ts +1 -1
  557. package/pdf/grid-query.d.ts +1 -1
  558. package/pdf/pdf-command.directive.d.ts +1 -1
  559. package/pdf/pdf-export-event.d.ts +1 -1
  560. package/pdf/pdf-margin.component.d.ts +1 -1
  561. package/pdf/pdf-margin.interface.d.ts +1 -1
  562. package/pdf/pdf-template.directive.d.ts +1 -1
  563. package/pdf/pdf.component.d.ts +1 -1
  564. package/pdf/pdf.module.d.ts +1 -1
  565. package/pdf/pdf.service.d.ts +1 -1
  566. package/progress-kendo-angular-grid.d.ts +1 -1
  567. package/rendering/body.module.d.ts +1 -1
  568. package/rendering/cell-loading.template.directive.d.ts +1 -1
  569. package/rendering/cell-template.directive.d.ts +1 -1
  570. package/rendering/cell.component.d.ts +1 -1
  571. package/rendering/common/cell-context.d.ts +1 -1
  572. package/rendering/common/col-group.component.d.ts +1 -1
  573. package/rendering/common/dom-queries.d.ts +1 -1
  574. package/rendering/common/field-accessor.pipe.d.ts +1 -1
  575. package/rendering/common/loading.component.d.ts +1 -1
  576. package/rendering/common/row-args.d.ts +1 -1
  577. package/rendering/common/row-class.d.ts +1 -1
  578. package/rendering/common/spacer.component.d.ts +1 -1
  579. package/rendering/common/template-context.directive.d.ts +1 -1
  580. package/rendering/constants.d.ts +1 -1
  581. package/rendering/details/detail-collapse-event.d.ts +1 -1
  582. package/rendering/details/detail-expand-event.d.ts +1 -1
  583. package/rendering/details/detail-template.directive.d.ts +1 -1
  584. package/rendering/details/details.service.d.ts +1 -1
  585. package/rendering/details-expand.directive.d.ts +1 -1
  586. package/rendering/footer/footer-template.directive.d.ts +1 -1
  587. package/rendering/footer/footer.component.d.ts +1 -1
  588. package/rendering/footer/footer.module.d.ts +1 -1
  589. package/rendering/grid-table.directive.d.ts +1 -1
  590. package/rendering/groups-expand.directive.d.ts +1 -1
  591. package/rendering/header/header-template.directive.d.ts +1 -1
  592. package/rendering/header/header.component.d.ts +1 -1
  593. package/rendering/header/header.module.d.ts +1 -1
  594. package/rendering/list.component.d.ts +1 -1
  595. package/rendering/loading-template.directive.d.ts +1 -1
  596. package/rendering/no-records-template.directive.d.ts +1 -1
  597. package/rendering/table-body.component.d.ts +1 -1
  598. package/rendering/toolbar/toolbar-focusable.directive.d.ts +1 -1
  599. package/rendering/toolbar/toolbar-navigation.service.d.ts +1 -1
  600. package/rendering/toolbar/toolbar-position.d.ts +1 -1
  601. package/rendering/toolbar/toolbar-template.directive.d.ts +1 -1
  602. package/rendering/toolbar/toolbar.component.d.ts +1 -1
  603. package/row-reordering/row-reorder.service.d.ts +1 -1
  604. package/row-reordering/types.d.ts +1 -1
  605. package/row-reordering/utils.d.ts +1 -1
  606. package/schematics/ngAdd/index.js +3 -3
  607. package/scrolling/content-scroll-event.d.ts +1 -1
  608. package/scrolling/row-height.service.d.ts +1 -1
  609. package/scrolling/scroll-bottom-event.d.ts +1 -1
  610. package/scrolling/scroll-request.service.d.ts +1 -1
  611. package/scrolling/scroll-sync.service.d.ts +1 -1
  612. package/scrolling/scroller.service.d.ts +1 -1
  613. package/scrolling/scrollmode.d.ts +1 -1
  614. package/scrolling/suspend.service.d.ts +1 -1
  615. package/selection/cell-selection.service.d.ts +1 -1
  616. package/selection/marquee.directive.d.ts +5 -4
  617. package/selection/pair-set.d.ts +1 -1
  618. package/selection/selectall-checkbox.directive.d.ts +1 -1
  619. package/selection/selection-checkbox.directive.d.ts +1 -1
  620. package/selection/selection-default.d.ts +11 -5
  621. package/selection/selection.directive.d.ts +1 -1
  622. package/selection/selection.service.d.ts +1 -1
  623. package/selection/types.d.ts +7 -1
  624. package/shared.module.d.ts +1 -1
  625. package/utils.d.ts +9 -1
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
@@ -10,7 +10,7 @@ import { merge, of, Subject, from, Subscription, interval, fromEvent, zip as zip
10
10
  import { switchMap, take, map, filter, takeUntil, switchMapTo, delay, auditTime, distinctUntilChanged, tap, throttleTime, debounceTime, bufferCount } from 'rxjs/operators';
11
11
  import * as i1 from '@progress/kendo-angular-l10n';
12
12
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
13
- import { orderBy, isCompositeFilterDescriptor, process, filterBy } from '@progress/kendo-data-query';
13
+ import { orderBy, groupBy, isCompositeFilterDescriptor, process, filterBy } from '@progress/kendo-data-query';
14
14
  import * as i4 from '@angular/common';
15
15
  import { CommonModule } from '@angular/common';
16
16
  import * as i4$2 from '@angular/forms';
@@ -166,6 +166,16 @@ const nodesToArray = (nodes) => [].slice.call(nodes);
166
166
  * @hidden
167
167
  */
168
168
  const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
169
+ /**
170
+ * @hidden
171
+ */
172
+ const recursiveFlatMap = (item) => isGroupResult(item) ? item.items.flatMap(recursiveFlatMap) : [Object.assign({}, item)];
173
+ /**
174
+ * @hidden
175
+ */
176
+ const isGroupResult = (obj) => {
177
+ return 'aggregates' in obj && 'items' in obj && 'field' in obj && 'value' in obj;
178
+ };
169
179
 
170
180
  /**
171
181
  * Represents the Kendo UI GridSpacer component for Angular.
@@ -220,6 +230,7 @@ class DomEventsService {
220
230
  this.focusIn = new EventEmitter();
221
231
  this.focusOut = new EventEmitter();
222
232
  this.windowBlur = new EventEmitter();
233
+ this.paste = new EventEmitter();
223
234
  }
224
235
  }
225
236
  DomEventsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DomEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -440,6 +451,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
440
451
  }] }];
441
452
  } });
442
453
 
454
+ /**
455
+ * @hidden
456
+ */
457
+ const ColumnMenuErrorMessages = {
458
+ autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
459
+ autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns',
460
+ serviceInput: 'The service input of the predefined column menu components is mandatory.'
461
+ };
462
+ /**
463
+ * @hidden
464
+ */
465
+ const ClipboardErrorMessages = {
466
+ activeCellNavigable: 'Grid must be navigable to use "activeCell" as clipboard target type.',
467
+ selectionSelectable: 'Grid must be selectable to use "selection" as clipboard target type.'
468
+ };
469
+ /**
470
+ * @hidden
471
+ */
472
+ const ColumnConfigurationErrorMessages = {
473
+ fieldName: (field) => `Grid column field name '${field}' does not look like a valid JavaScript identifier.
474
+ Identifiers can contain only alphanumeric characters (including "$" or "_"), and may not start with a digit.
475
+ Please use only valid identifier names to ensure error-free operation.`,
476
+ width: (value, parsedValue) => `Expected numeric value for column width, but got a string "${value}". Treating as ${parsedValue}px.`,
477
+ invalidColumn: (column) => `Invalid column ${column}.`,
478
+ requiredWidth: (columnType) => `${columnType} columns feature requires all columns to have set width.`,
479
+ requiredScroll: (columnType) => `${columnType} columns are only supported when scrolling is enabled.`,
480
+ groupColumnContent: 'ColumnGroupComponent should contain ColumnComponent or CommandColumnComponent.',
481
+ lockedParent: 'Locked child columns require their parent columns to be locked.',
482
+ columnNested: 'Columns can be nested only inside ColumnGroupComponent',
483
+ nestedInside: (nestedColumnNameType, parentColumnType) => `${nestedColumnNameType} cannot be nested inside ${parentColumnType}.`
484
+ };
485
+ /**
486
+ * @hidden
487
+ */
488
+ const GridConfigurationErrorMessages = {
489
+ functionType: (propName, fn) => `${propName} must be a function, but received ${JSON.stringify(fn)}.`,
490
+ incompatibleFeatures: (feat1Name, feat2Name) => `'Having both ${feat1Name} and ${feat2Name} is not supported.'`,
491
+ nonLockedColumnPresent: 'There should be at least one non-locked column',
492
+ rowHeightVirtual: 'Row height and detail row height settings require virtual scrolling mode to be enabled.',
493
+ focusNavigable: 'The Grid should be configured as navigable to control focus',
494
+ expandCollapseMethods: (expandMethodName, collapseMethodName, directiveName, callbackName) => `The ${expandMethodName} and ${collapseMethodName} methods should not be called
495
+ when using the ${directiveName} directive or the ${callbackName} callback.
496
+ These methods are provided only for backwards compatibility with legacy versions.`,
497
+ requiredEditService: `The default edit service of the editing directives works only when binding to plain array.
498
+ Please provide an editService.`,
499
+ requiredModule: (exportedType, moduleName, componentSelector) => `Creating ${exportedType} requires including the ${moduleName} and adding the ${componentSelector} component.`,
500
+ groupBindingDirectives: `Using the "kendoGridGroupBinding" directive in combination with the "kendoGridExpandGroupBy" directive
501
+ or the "isGroupExpanded" callback is not supported. To use grouping with the "kendoGridGroupBinding" directive,
502
+ set the Grid "groupable" property to "true".`,
503
+ unsupportedMethod: (methodName, suggestedMethodName) => `Using ${methodName} in this context is not supported. Use ${suggestedMethodName} instead.`
504
+ };
505
+
443
506
  // Incremented each time the service is instantiated.
444
507
  let sequence = 0;
445
508
  /**
@@ -561,7 +624,7 @@ class ColumnBase {
561
624
  this.columnMenuTemplates = new QueryList();
562
625
  this.idService = idService;
563
626
  if (parent && idService && parent.idService.gridId() === idService.gridId() && !isColumnContainer(parent)) {
564
- throw new Error('Columns can be nested only inside ColumnGroupComponent');
627
+ throw new Error(ColumnConfigurationErrorMessages.columnNested);
565
628
  }
566
629
  }
567
630
  /**
@@ -583,7 +646,7 @@ class ColumnBase {
583
646
  if (typeof value === 'string') {
584
647
  const parsedValue = this._width = parseInt(value, 10);
585
648
  if (isDevMode()) {
586
- console.warn(`Expected numeric value for column width, but got a string "${value}". Treating as ${parsedValue}px.`);
649
+ console.warn(ColumnConfigurationErrorMessages.width(value, parsedValue));
587
650
  }
588
651
  }
589
652
  else {
@@ -1181,7 +1244,7 @@ class SpanColumnComponent extends ColumnBase {
1181
1244
  this.includeInChooser = false;
1182
1245
  this._editable = true;
1183
1246
  if (parent && parent.isSpanColumn) {
1184
- throw new Error('SpanColumn cannot be nested inside another SpanColumn');
1247
+ throw new Error(ColumnConfigurationErrorMessages.nestedInside('SpanColumnComponent', 'SpanColumnComponent'));
1185
1248
  }
1186
1249
  }
1187
1250
  /**
@@ -1396,7 +1459,7 @@ class ColumnGroupComponent extends ColumnBase {
1396
1459
  */
1397
1460
  this.minResizableWidth = 10;
1398
1461
  if (parent && parent.isSpanColumn) {
1399
- throw new Error('ColumnGroupComponent cannot be nested inside SpanColumnComponent');
1462
+ throw new Error(ColumnConfigurationErrorMessages.nestedInside('ColumnGroupComponent', 'SpanColumnComponent'));
1400
1463
  }
1401
1464
  }
1402
1465
  /**
@@ -4296,19 +4359,15 @@ const offsets = {
4296
4359
  * @hidden
4297
4360
  */
4298
4361
  class GridMarqueeDirective {
4299
- constructor(draggable, selection, cellSelection, domEvents) {
4362
+ constructor(draggable, selection, cellSelection, domEvents, host, renderer) {
4300
4363
  this.draggable = draggable;
4301
4364
  this.selection = selection;
4302
4365
  this.cellSelection = cellSelection;
4303
4366
  this.domEvents = domEvents;
4367
+ this.host = host;
4368
+ this.renderer = renderer;
4304
4369
  this.selectionStarted = false;
4305
4370
  }
4306
- get webkitUserSelection() {
4307
- return (this.cellSelection.enableMarquee || this.selection.enableMarquee) ? 'none' : null;
4308
- }
4309
- get userSelection() {
4310
- return (this.cellSelection.enableMarquee || this.selection.enableMarquee);
4311
- }
4312
4371
  ngOnInit() {
4313
4372
  this.subscriptions = (this.draggable.kendoPress.subscribe(this.start.bind(this)));
4314
4373
  this.subscriptions.add(this.draggable.kendoDrag.subscribe(this.moveMarquee.bind(this)));
@@ -4339,6 +4398,8 @@ class GridMarqueeDirective {
4339
4398
  const distance = Math.sqrt(Math.pow((args.pageX - press.pageX), 2) + Math.pow((args.pageY - press.pageY), 2));
4340
4399
  if (distance > MINIMAL_DRAG_DISTANCE) {
4341
4400
  this.selectionStarted = true;
4401
+ this.renderer.addClass(this.host.nativeElement, 'user-select-none');
4402
+ this.renderer.setStyle(this.host.nativeElement, 'user-select', 'none');
4342
4403
  this.dragEndSubscription = merge(this.domEvents.cellMouseup.pipe(take(1)), this.draggable.kendoRelease.pipe(delay(1), take(1)))
4343
4404
  .subscribe(this.endSelection.bind(this));
4344
4405
  }
@@ -4383,6 +4444,8 @@ class GridMarqueeDirective {
4383
4444
  if (this.dragEndSubscription) {
4384
4445
  this.dragEndSubscription.unsubscribe();
4385
4446
  }
4447
+ this.renderer.removeClass(this.host.nativeElement, 'user-select-none');
4448
+ this.renderer.removeStyle(this.host.nativeElement, 'user-select');
4386
4449
  this.dragEndSubscription = null;
4387
4450
  this.pressTarget = null;
4388
4451
  this.pressArgs = null;
@@ -4419,20 +4482,14 @@ class GridMarqueeDirective {
4419
4482
  return null;
4420
4483
  }
4421
4484
  }
4422
- GridMarqueeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMarqueeDirective, deps: [{ token: i1$1.DraggableDirective }, { token: SelectionService }, { token: CellSelectionService }, { token: DomEventsService }], target: i0.ɵɵFactoryTarget.Directive });
4423
- GridMarqueeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]", host: { properties: { "style.-webkit-user-select": "this.webkitUserSelection", "class.user-select-none": "this.userSelection" } }, ngImport: i0 });
4485
+ GridMarqueeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMarqueeDirective, deps: [{ token: i1$1.DraggableDirective }, { token: SelectionService }, { token: CellSelectionService }, { token: DomEventsService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4486
+ GridMarqueeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]", ngImport: i0 });
4424
4487
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMarqueeDirective, decorators: [{
4425
4488
  type: Directive,
4426
4489
  args: [{
4427
4490
  selector: '[kendoGridSelectionMarquee]'
4428
4491
  }]
4429
- }], ctorParameters: function () { return [{ type: i1$1.DraggableDirective }, { type: SelectionService }, { type: CellSelectionService }, { type: DomEventsService }]; }, propDecorators: { webkitUserSelection: [{
4430
- type: HostBinding,
4431
- args: ['style.-webkit-user-select']
4432
- }], userSelection: [{
4433
- type: HostBinding,
4434
- args: ['class.user-select-none']
4435
- }] } });
4492
+ }], ctorParameters: function () { return [{ type: i1$1.DraggableDirective }, { type: SelectionService }, { type: CellSelectionService }, { type: DomEventsService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
4436
4493
 
4437
4494
  /**
4438
4495
  * @hidden
@@ -4475,8 +4532,8 @@ const packageMetadata = {
4475
4532
  name: '@progress/kendo-angular-grid',
4476
4533
  productName: 'Kendo UI for Angular',
4477
4534
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
4478
- publishDate: 1703164656,
4479
- version: '14.4.0-develop.2',
4535
+ publishDate: 1706522979,
4536
+ version: '14.4.0-develop.21',
4480
4537
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
4481
4538
  };
4482
4539
 
@@ -4508,7 +4565,7 @@ class DetailTemplateDirective {
4508
4565
  */
4509
4566
  set showIf(fn) {
4510
4567
  if (typeof fn !== 'function') {
4511
- throw new Error(`showIf must be a function, but received ${JSON.stringify(fn)}.`);
4568
+ throw new Error(GridConfigurationErrorMessages.functionType('showIf', fn));
4512
4569
  }
4513
4570
  this._condition = fn;
4514
4571
  }
@@ -5004,6 +5061,9 @@ class Selection {
5004
5061
  this.cellSelectionState = new PairSet();
5005
5062
  this.init();
5006
5063
  }
5064
+ /**
5065
+ * @hidden
5066
+ */
5007
5067
  get isCellSelectionMode() {
5008
5068
  return isPresent(this.ctx.grid.selectable) && this.ctx.grid.selectable['cell'];
5009
5069
  }
@@ -5057,6 +5117,14 @@ class Selection {
5057
5117
  }
5058
5118
  return row.index;
5059
5119
  }
5120
+ /**
5121
+ * @hidden
5122
+ */
5123
+ stateToArray() {
5124
+ return this.isCellSelectionMode ?
5125
+ this.cellSelectionState.toArray('itemKey', 'columnKey') :
5126
+ Array.from(this.rowSelectionState);
5127
+ }
5060
5128
  getSelectionItem(row, col, colIndex) {
5061
5129
  const itemIdentifiers = {};
5062
5130
  itemIdentifiers.itemKey = this.getItemKey(row);
@@ -5117,11 +5185,6 @@ class Selection {
5117
5185
  this.rowSelectionState = new Set(selectedKeys);
5118
5186
  }
5119
5187
  }
5120
- stateToArray() {
5121
- return this.isCellSelectionMode ?
5122
- this.cellSelectionState.toArray('itemKey', 'columnKey') :
5123
- Array.from(this.rowSelectionState);
5124
- }
5125
5188
  }
5126
5189
  Selection.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Selection, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
5127
5190
  Selection.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Selection, selector: "kendo-grid-selection-base", inputs: { selectedKeys: "selectedKeys", rangeSelectionStartRow: "rangeSelectionStartRow", rangeSelectionStartColumnIndex: "rangeSelectionStartColumnIndex", selectionKey: ["kendoGridSelectBy", "selectionKey"], columnKey: "columnKey" }, outputs: { selectedKeysChange: "selectedKeysChange" }, usesOnChanges: true, ngImport: i0 });
@@ -5489,7 +5552,7 @@ class PDFService {
5489
5552
  emitEvent(emitter, args) {
5490
5553
  if (emitter.observers.length === 0) {
5491
5554
  if (isDevMode()) {
5492
- throw new Error('Creating PDF requires including the PDFModule and adding the <kendo-grid-pdf> component.');
5555
+ throw new Error(GridConfigurationErrorMessages.requiredModule('PDF', 'PDFModule', '<kendo-grid-pdf>'));
5493
5556
  }
5494
5557
  }
5495
5558
  else {
@@ -5571,7 +5634,7 @@ class ExcelService {
5571
5634
  save(component) {
5572
5635
  if (this.saveToExcel.observers.length === 0) {
5573
5636
  if (isDevMode()) {
5574
- throw new Error('Saving excel requires including the ExcelModule and adding the <kendo-grid-excel> component.');
5637
+ throw new Error(GridConfigurationErrorMessages.requiredModule('excel', 'ExcelModule', '<kendo-grid-excel>'));
5575
5638
  }
5576
5639
  }
5577
5640
  else {
@@ -6794,6 +6857,216 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6794
6857
  }]
6795
6858
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
6796
6859
 
6860
+ /**
6861
+ * @hidden
6862
+ */
6863
+ class ClipboardService {
6864
+ constructor(contextService) {
6865
+ this.contextService = contextService;
6866
+ this.itemToString = (item, cols) => {
6867
+ if (!cols.length) {
6868
+ return null;
6869
+ }
6870
+ return cols.map(col => item[col.field]).join(`\t`);
6871
+ };
6872
+ }
6873
+ createClipboardData(data, columns, options) {
6874
+ var _a;
6875
+ let result = {
6876
+ gridItems: [],
6877
+ dataString: ''
6878
+ };
6879
+ const fieldCols = columns.flatMap(c => c instanceof ColumnComponent && isPresent$1(c.field) ? [c] : []);
6880
+ const clipboardData = { items: [], dataStrings: [] };
6881
+ const colFields = fieldCols.map(c => c.field);
6882
+ if (options.wholeRow) {
6883
+ this.targetColField = (_a = fieldCols[0]) === null || _a === void 0 ? void 0 : _a.field;
6884
+ this.targetRowIndex = data[0].dataRowIndex;
6885
+ data.forEach(item => {
6886
+ clipboardData.items.push({ dataItem: Object.assign({}, item.dataItem), fields: colFields });
6887
+ clipboardData.dataStrings.push(this.itemToString(item.dataItem, fieldCols));
6888
+ });
6889
+ result = {
6890
+ gridItems: options.operationType === 'cut' ? clipboardData.items.map(item => {
6891
+ item.fields.forEach(field => item.dataItem[field] = null);
6892
+ return item;
6893
+ }) : [...clipboardData.items],
6894
+ dataString: options.copyHeaders ? this.addHeaders(clipboardData.dataStrings.join(`\r\n`), fieldCols) : clipboardData.dataStrings.join(`\n`)
6895
+ };
6896
+ }
6897
+ else {
6898
+ if (options.target === 'selection') {
6899
+ const { tabular, groups } = this.groupSelection();
6900
+ const selectionDirective = this.contextService.grid.selectionDirective;
6901
+ const colIdentifier = selectionDirective.columnKey;
6902
+ if (tabular) {
6903
+ const selectionKeys = groups[0].items.map(item => item.columnKey);
6904
+ const selectedFieldCols = columns.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
6905
+ const selectedColFields = selectedFieldCols.map(c => c.field);
6906
+ this.targetColField = selectedColFields[0];
6907
+ result.dataString = data.flatMap(item => {
6908
+ const itemString = this.itemToString(item.dataItem, selectedFieldCols);
6909
+ const existingItem = isPresent$1(itemString);
6910
+ if (!isPresent$1(this.targetRowIndex) && isPresent$1(itemString)) {
6911
+ this.targetRowIndex = item.dataRowIndex;
6912
+ }
6913
+ if (options.operationType === 'cut') {
6914
+ selectedColFields.forEach(f => item.dataItem[f] = null);
6915
+ }
6916
+ result.gridItems.push({
6917
+ dataItem: item.dataItem,
6918
+ fields: selectedColFields
6919
+ });
6920
+ return existingItem ? [itemString] : [];
6921
+ }).join(`\r\n`);
6922
+ if (options.copyHeaders) {
6923
+ result.dataString = this.addHeaders(result.dataString, selectedFieldCols);
6924
+ }
6925
+ }
6926
+ else { // split per row (uneven rows)
6927
+ const rowIdentifier = selectionDirective.selectionKey;
6928
+ result.dataString = data.flatMap(item => {
6929
+ // determine cols per item
6930
+ const key = rowIdentifier ?
6931
+ typeof rowIdentifier === 'string' ? item.dataItem[rowIdentifier] : rowIdentifier({ index: item.dataRowIndex, dataItem: item.dataItem }) :
6932
+ item.dataRowIndex;
6933
+ const selectionKeys = groups.find(gr => gr.value === key).items.map(item => item.columnKey);
6934
+ const selectedFieldCols = columns.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
6935
+ const selectedColFields = selectedFieldCols.map(c => c.field);
6936
+ if (!this.targetColField) {
6937
+ this.targetColField = selectedColFields[0];
6938
+ }
6939
+ const itemString = this.itemToString(item.dataItem, selectedFieldCols);
6940
+ const existingItem = isPresent$1(itemString);
6941
+ if (!isPresent$1(this.targetRowIndex) && existingItem) {
6942
+ this.targetRowIndex = item.dataRowIndex;
6943
+ }
6944
+ if (existingItem) {
6945
+ if (options.operationType === 'cut') {
6946
+ selectedColFields.forEach(f => item.dataItem[f] = null);
6947
+ }
6948
+ result.gridItems.push({
6949
+ dataItem: item.dataItem,
6950
+ fields: selectedColFields
6951
+ });
6952
+ }
6953
+ return existingItem ? options.copyHeaders ? [this.addHeaders(itemString, selectedFieldCols)] : [itemString] : [];
6954
+ }).join(`\r\n`);
6955
+ }
6956
+ }
6957
+ else {
6958
+ const item = data[0];
6959
+ const col = columns[item.colIndex];
6960
+ const colField = col.field;
6961
+ const title = col.title;
6962
+ const copiedData = item.dataItem[colField];
6963
+ this.targetRowIndex = item.dataRowIndex;
6964
+ this.targetColField = colField;
6965
+ if (options.operationType === 'cut' && colField) {
6966
+ item.dataItem[colField] = null;
6967
+ }
6968
+ result = {
6969
+ gridItems: [{
6970
+ dataItem: item.dataItem,
6971
+ fields: colField ? [colField] : []
6972
+ }],
6973
+ dataString: options.copyHeaders ? [title || colField, copiedData].join(`\r\n`) : colField ? copiedData : ``
6974
+ };
6975
+ }
6976
+ }
6977
+ return result;
6978
+ }
6979
+ getGridData(data, columns, targetType, targetRowIndex, options) {
6980
+ var _a;
6981
+ const separator = data.includes(`\r\n`) ? `\r\n` : data.includes(`\n`) ? `\n` : null;
6982
+ const dataRows = separator ? data.split(separator) : [data];
6983
+ this.targetRowIndex = targetRowIndex;
6984
+ if (targetType === 'activeCell') {
6985
+ if (options.wholeRow) {
6986
+ this.targetColField = (_a = columns.find(c => c instanceof ColumnComponent && c.field)) === null || _a === void 0 ? void 0 : _a.field;
6987
+ }
6988
+ else {
6989
+ const activeCellIndex = this.contextService.grid.activeCell.colIndex;
6990
+ for (let i = 0; i < columns.length; i++) {
6991
+ const col = columns[i];
6992
+ if (col instanceof ColumnComponent && col.field && i >= activeCellIndex) {
6993
+ this.targetColField = col.field;
6994
+ break;
6995
+ }
6996
+ }
6997
+ }
6998
+ }
6999
+ else {
7000
+ if (options.wholeRow || !options.isCellSelection) {
7001
+ this.targetColField = (columns.filter(c => c instanceof ColumnComponent && c.field))[0]['field'];
7002
+ }
7003
+ else {
7004
+ const { groups } = this.groupSelection();
7005
+ const selectionDirective = this.contextService.grid.selectionDirective;
7006
+ const colIdentifier = selectionDirective.columnKey;
7007
+ const visibleCols = columns.filter(c => c.isVisible);
7008
+ const selectionKeys = groups[0].items.map(item => item.columnKey);
7009
+ const selectedFieldCols = visibleCols.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
7010
+ const selectedColFields = selectedFieldCols.map(c => c.field);
7011
+ this.targetColField = selectedColFields[0];
7012
+ }
7013
+ }
7014
+ const items = dataRows.map(rowString => {
7015
+ const cells = rowString.includes(`\t`) ? rowString.split(`\t`) : [rowString];
7016
+ const colFields = columns.flatMap(c => (c instanceof ColumnComponent) && c.field ? [c.field] : []);
7017
+ const targetColFieldIndex = colFields.indexOf(this.targetColField);
7018
+ const affectedFields = colFields.slice(targetColFieldIndex, targetColFieldIndex + cells.length);
7019
+ const item = {};
7020
+ colFields.slice(targetColFieldIndex, targetColFieldIndex + cells.length).forEach((colField, index) => item[colField] = cells[index]);
7021
+ return {
7022
+ dataItem: item,
7023
+ fields: affectedFields
7024
+ };
7025
+ });
7026
+ return items;
7027
+ }
7028
+ groupSelection() {
7029
+ const selection = this.contextService.grid.selection;
7030
+ const groups = groupBy(selection, [{ field: 'itemKey' }])
7031
+ .map(gr => {
7032
+ gr.items.sort((a, b) => a.columnKey - b.columnKey);
7033
+ return gr;
7034
+ });
7035
+ for (let i = 1; i < groups.length; i++) {
7036
+ if (!this.areEqual(groups[i].items, groups[i - 1].items)) {
7037
+ return {
7038
+ tabular: false,
7039
+ groups
7040
+ };
7041
+ }
7042
+ }
7043
+ return {
7044
+ tabular: true,
7045
+ groups
7046
+ };
7047
+ }
7048
+ areEqual(arr1, arr2) {
7049
+ if (arr1.length !== arr2.length) {
7050
+ return false;
7051
+ }
7052
+ for (let i = 0; i < arr1.length; i++) {
7053
+ if (arr1[i].columnKey !== arr2[i].columnKey) {
7054
+ return false;
7055
+ }
7056
+ }
7057
+ return true;
7058
+ }
7059
+ addHeaders(initialData, cols) {
7060
+ const headersRowData = cols.map(c => c.title || c.field).join(`\t`);
7061
+ return `${headersRowData}\r\n${initialData}`;
7062
+ }
7063
+ }
7064
+ ClipboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService, deps: [{ token: ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
7065
+ ClipboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService });
7066
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService, decorators: [{
7067
+ type: Injectable
7068
+ }], ctorParameters: function () { return [{ type: ContextService }]; } });
7069
+
6797
7070
  /**
6798
7071
  * @hidden
6799
7072
  */
@@ -7776,7 +8049,7 @@ PagerInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
7776
8049
  </kendo-numerictextbox>
7777
8050
  {{textFor('pagerOf')}} {{totalPages}}
7778
8051
  </span>
7779
- `, isInline: true, components: [{ type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }], directives: [{ type: PagerInputDirective, selector: "[kendoGridPagerInput]" }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i1$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
8052
+ `, isInline: true, components: [{ type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }], directives: [{ type: PagerInputDirective, selector: "[kendoGridPagerInput]" }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i1$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
7780
8053
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInputComponent, decorators: [{
7781
8054
  type: Component,
7782
8055
  args: [{
@@ -7927,7 +8200,6 @@ class PagerComponent {
7927
8200
  this.total = 0;
7928
8201
  this.skip = 1;
7929
8202
  this.pageChange = new EventEmitter();
7930
- this.pagerWrapClass = true;
7931
8203
  this.gridPagerClass = true;
7932
8204
  this.settings = normalize$1({});
7933
8205
  this.subscriptions = new Subscription();
@@ -8153,7 +8425,7 @@ class PagerComponent {
8153
8425
  }
8154
8426
  }
8155
8427
  PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerComponent, deps: [{ token: PagerContextService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: ContextService }, { token: CELL_CONTEXT, optional: true }, { token: FocusRoot }, { token: FocusGroup }], target: i0.ɵɵFactoryTarget.Component });
8156
- PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerComponent, selector: "kendo-pager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", options: "options", size: "size", template: "template" }, outputs: { pageChange: "pageChange" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut()", "keydown.escape": "onEscape()", "keydown.enter": "onEnter($event)", "keydown.arrowleft": "navigateToPreviousPage($event)", "keydown.pageup": "navigateToPreviousPage($event)", "keydown.arrowright": "navigateToNextPage($event)", "keydown.pagedown": "navigateToNextPage($event)", "keydown.home": "navigateToFirstPage($event)", "keydown.end": "navigateToLastPage($event)" }, properties: { "class.k-pager-wrap": "this.pagerWrapClass", "class.k-grid-pager": "this.gridPagerClass", "class.k-pager-sm": "this.sizeSmallClass", "class.k-pager-md": "this.sizeMediumClass", "class.k-focus": "this.isFocused", "attr.aria-label": "this.pagerAriaLabel" } }, providers: [{
8428
+ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerComponent, selector: "kendo-pager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", options: "options", size: "size", template: "template" }, outputs: { pageChange: "pageChange" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut()", "keydown.escape": "onEscape()", "keydown.enter": "onEnter($event)", "keydown.arrowleft": "navigateToPreviousPage($event)", "keydown.pageup": "navigateToPreviousPage($event)", "keydown.arrowright": "navigateToNextPage($event)", "keydown.pagedown": "navigateToNextPage($event)", "keydown.home": "navigateToFirstPage($event)", "keydown.end": "navigateToLastPage($event)" }, properties: { "class.k-grid-pager": "this.gridPagerClass", "class.k-pager-sm": "this.sizeSmallClass", "class.k-pager-md": "this.sizeMediumClass", "class.k-focus": "this.isFocused", "attr.aria-label": "this.pagerAriaLabel" } }, providers: [{
8157
8429
  provide: FOCUS_ROOT_ACTIVE,
8158
8430
  useValue: true
8159
8431
  }, {
@@ -8291,9 +8563,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8291
8563
  type: Input
8292
8564
  }], pageChange: [{
8293
8565
  type: Output
8294
- }], pagerWrapClass: [{
8295
- type: HostBinding,
8296
- args: ['class.k-pager-wrap']
8297
8566
  }], gridPagerClass: [{
8298
8567
  type: HostBinding,
8299
8568
  args: ['class.k-grid-pager']
@@ -10231,7 +10500,7 @@ NumericFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
10231
10500
  </kendo-numerictextbox-messages>
10232
10501
  </kendo-numerictextbox>
10233
10502
  </kendo-grid-filter-menu-input-wrapper>
10234
- `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i3$1.NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
10503
+ `, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { type: i3$1.NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
10235
10504
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuInputComponent, decorators: [{
10236
10505
  type: Component,
10237
10506
  args: [{
@@ -11361,7 +11630,7 @@ FilterMenuContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
11361
11630
  MenuTabbingService
11362
11631
  ], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }, { propertyName: "filterButton", first: true, predicate: ["filterButton"], descendants: true }], ngImport: i0, template: `
11363
11632
  <form (submit)="submit()" (reset)="reset()"
11364
- class="k-filter-menu k-group k-reset k-state-border-up">
11633
+ class="k-filter-menu">
11365
11634
  <div class="k-filter-menu-container">
11366
11635
  <ng-container [ngSwitch]="hasTemplate">
11367
11636
  <ng-container *ngSwitchCase="false">
@@ -11407,7 +11676,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11407
11676
  selector: 'kendo-grid-filter-menu-container',
11408
11677
  template: `
11409
11678
  <form (submit)="submit()" (reset)="reset()"
11410
- class="k-filter-menu k-group k-reset k-state-border-up">
11679
+ class="k-filter-menu">
11411
11680
  <div class="k-filter-menu-container">
11412
11681
  <ng-container [ngSwitch]="hasTemplate">
11413
11682
  <ng-container *ngSwitchCase="false">
@@ -11666,14 +11935,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11666
11935
  type: Injectable
11667
11936
  }], ctorParameters: function () { return [{ type: MenuTabbingService }]; } });
11668
11937
 
11669
- /**
11670
- * @hidden
11671
- */
11672
- const ColumnMenuErrorMessages = {
11673
- autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
11674
- autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns'
11675
- };
11676
-
11677
11938
  /**
11678
11939
  * @hidden
11679
11940
  */
@@ -11683,7 +11944,7 @@ class ColumnMenuItemBase {
11683
11944
  }
11684
11945
  ngOnInit() {
11685
11946
  if (isDevMode() && !this.service) {
11686
- throw new Error('The service input of the predefined column menu components is mandatory.');
11947
+ throw new Error(ColumnMenuErrorMessages.serviceInput);
11687
11948
  }
11688
11949
  }
11689
11950
  /**
@@ -13292,7 +13553,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13292
13553
  }]
13293
13554
  }], ctorParameters: function () { return [{ type: ContextService }]; } });
13294
13555
 
13295
- const POPUP_CLASS = 'k-grid-columnmenu-popup';
13556
+ const POPUP_CLASSES = 'k-grid-columnmenu-popup k-column-menu';
13296
13557
  let id$2 = 0;
13297
13558
  const getId = (gridId) => `${gridId}-column-menu-${id$2++}`;
13298
13559
  /**
@@ -13486,7 +13747,7 @@ class ColumnMenuComponent {
13486
13747
  this.expandedFilter = this.getExpandedState(this.settings.filter);
13487
13748
  this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
13488
13749
  this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
13489
- this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASS);
13750
+ this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASSES);
13490
13751
  // Needed as changes to 'popupRef' and 'popupId' are not reflected
13491
13752
  // automatically when the Popup is closed by clicking outside the anchor
13492
13753
  const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
@@ -13507,7 +13768,8 @@ class ColumnMenuComponent {
13507
13768
  ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
13508
13769
  }
13509
13770
  if (this.settings.view === 'tabbed') {
13510
- this.renderer.addClass(this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup'), 'k-column-menu-tabbed');
13771
+ this.renderer.addClass(popupAriaElement, 'k-column-menu-tabbed');
13772
+ this.renderer.addClass(popupAriaElement, 'k-column-menu');
13511
13773
  this.cdr.detectChanges();
13512
13774
  (_b = this.tabStrip) === null || _b === void 0 ? void 0 : _b.selectTab(0);
13513
13775
  }
@@ -13633,7 +13895,8 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
13633
13895
  </kendo-grid-columnmenu-container>
13634
13896
  </ng-template>
13635
13897
  <ng-template #tabbedInterfaceTemplate>
13636
- <kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
13898
+ <kendo-tabstrip #tabstrip
13899
+ (keydown.escape)="close(true)">
13637
13900
  <kendo-tabstrip-tab *ngIf="hasFilter">
13638
13901
  <ng-template kendoTabTitle>
13639
13902
  <kendo-icon-wrapper
@@ -13808,7 +14071,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13808
14071
  </kendo-grid-columnmenu-container>
13809
14072
  </ng-template>
13810
14073
  <ng-template #tabbedInterfaceTemplate>
13811
- <kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
14074
+ <kendo-tabstrip #tabstrip
14075
+ (keydown.escape)="close(true)">
13812
14076
  <kendo-tabstrip-tab *ngIf="hasFilter">
13813
14077
  <ng-template kendoTabTitle>
13814
14078
  <kendo-icon-wrapper
@@ -14375,7 +14639,7 @@ NumericFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
14375
14639
  </kendo-numerictextbox-messages>
14376
14640
  </kendo-numerictextbox>
14377
14641
  </kendo-grid-filter-wrapper-cell>
14378
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i3$1.NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
14642
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { type: i3$1.NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
14379
14643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterCellComponent, decorators: [{
14380
14644
  type: Component,
14381
14645
  args: [{
@@ -16057,12 +16321,14 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
16057
16321
  </ng-container>
16058
16322
 
16059
16323
  <ng-container *ngIf="isCheckboxColumn(column) && !column.headerTemplateRef && $any(column).showSelectAll">
16060
- <input
16061
- class="k-checkbox k-checkbox-md k-rounded-md"
16062
- [attr.id]="selectAllCheckboxId()"
16063
- [attr.aria-label]="selectAllCheckboxLabel"
16064
- kendoGridSelectAllCheckbox
16065
- kendoGridFocusable>
16324
+ <span class="k-checkbox-wrap">
16325
+ <input
16326
+ class="k-checkbox k-checkbox-md k-rounded-md"
16327
+ [attr.id]="selectAllCheckboxId()"
16328
+ [attr.aria-label]="selectAllCheckboxLabel"
16329
+ kendoGridSelectAllCheckbox
16330
+ kendoGridFocusable>
16331
+ </span>
16066
16332
  </ng-container>
16067
16333
  <span kendoGridColumnHandle
16068
16334
  kendoDraggable
@@ -16281,12 +16547,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16281
16547
  </ng-container>
16282
16548
 
16283
16549
  <ng-container *ngIf="isCheckboxColumn(column) && !column.headerTemplateRef && $any(column).showSelectAll">
16284
- <input
16285
- class="k-checkbox k-checkbox-md k-rounded-md"
16286
- [attr.id]="selectAllCheckboxId()"
16287
- [attr.aria-label]="selectAllCheckboxLabel"
16288
- kendoGridSelectAllCheckbox
16289
- kendoGridFocusable>
16550
+ <span class="k-checkbox-wrap">
16551
+ <input
16552
+ class="k-checkbox k-checkbox-md k-rounded-md"
16553
+ [attr.id]="selectAllCheckboxId()"
16554
+ [attr.aria-label]="selectAllCheckboxLabel"
16555
+ kendoGridSelectAllCheckbox
16556
+ kendoGridFocusable>
16557
+ </span>
16290
16558
  </ng-container>
16291
16559
  <span kendoGridColumnHandle
16292
16560
  kendoDraggable
@@ -16935,11 +17203,13 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
16935
17203
  </ng-container>
16936
17204
  <ng-container *ngIf="isBoundColumn">{{ dataItem | valueOf: column.field: column.format}}</ng-container>
16937
17205
  <ng-container *ngIf="isCheckboxColumn && !isNew">
16938
- <input
16939
- class="k-checkbox k-checkbox-md k-rounded-md"
16940
- [kendoGridSelectionCheckbox]="rowIndex"
16941
- [attr.id]="selectionCheckboxId"
16942
- [attr.aria-label]="selectionCheckboxLabel" />
17206
+ <span class="k-checkbox-wrap">
17207
+ <input
17208
+ class="k-checkbox k-checkbox-md k-rounded-md"
17209
+ [kendoGridSelectionCheckbox]="rowIndex"
17210
+ [attr.id]="selectionCheckboxId"
17211
+ [attr.aria-label]="selectionCheckboxLabel" />
17212
+ </span>
16943
17213
  </ng-container>
16944
17214
  <ng-container *ngIf="isRowReorderColumn && !isNew">
16945
17215
  <kendo-icon-wrapper
@@ -16978,13 +17248,15 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
16978
17248
  kendoGridFocusable
16979
17249
  ></kendo-datepicker>
16980
17250
 
16981
- <input
16982
- *ngSwitchCase="'boolean'"
16983
- type="checkbox"
16984
- class="k-checkbox k-checkbox-md k-rounded-md"
16985
- [formControl]="$any(formGroup.get(column.field))"
16986
- kendoGridFocusable
16987
- />
17251
+ <span class="k-checkbox-wrap">
17252
+ <input
17253
+ *ngSwitchCase="'boolean'"
17254
+ type="checkbox"
17255
+ class="k-checkbox k-checkbox-md k-rounded-md"
17256
+ [formControl]="$any(formGroup.get(column.field))"
17257
+ kendoGridFocusable
17258
+ />
17259
+ </span>
16988
17260
 
16989
17261
  <input
16990
17262
  *ngSwitchDefault
@@ -16996,7 +17268,7 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
16996
17268
  </ng-container>
16997
17269
  </ng-container>
16998
17270
  </ng-container>
16999
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i4$3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i4$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": FieldAccessorPipe } });
17271
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { type: i4$3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i4$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": FieldAccessorPipe } });
17000
17272
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, decorators: [{
17001
17273
  type: Component,
17002
17274
  args: [{
@@ -17016,11 +17288,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17016
17288
  </ng-container>
17017
17289
  <ng-container *ngIf="isBoundColumn">{{ dataItem | valueOf: column.field: column.format}}</ng-container>
17018
17290
  <ng-container *ngIf="isCheckboxColumn && !isNew">
17019
- <input
17020
- class="k-checkbox k-checkbox-md k-rounded-md"
17021
- [kendoGridSelectionCheckbox]="rowIndex"
17022
- [attr.id]="selectionCheckboxId"
17023
- [attr.aria-label]="selectionCheckboxLabel" />
17291
+ <span class="k-checkbox-wrap">
17292
+ <input
17293
+ class="k-checkbox k-checkbox-md k-rounded-md"
17294
+ [kendoGridSelectionCheckbox]="rowIndex"
17295
+ [attr.id]="selectionCheckboxId"
17296
+ [attr.aria-label]="selectionCheckboxLabel" />
17297
+ </span>
17024
17298
  </ng-container>
17025
17299
  <ng-container *ngIf="isRowReorderColumn && !isNew">
17026
17300
  <kendo-icon-wrapper
@@ -17059,13 +17333,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17059
17333
  kendoGridFocusable
17060
17334
  ></kendo-datepicker>
17061
17335
 
17062
- <input
17063
- *ngSwitchCase="'boolean'"
17064
- type="checkbox"
17065
- class="k-checkbox k-checkbox-md k-rounded-md"
17066
- [formControl]="$any(formGroup.get(column.field))"
17067
- kendoGridFocusable
17068
- />
17336
+ <span class="k-checkbox-wrap">
17337
+ <input
17338
+ *ngSwitchCase="'boolean'"
17339
+ type="checkbox"
17340
+ class="k-checkbox k-checkbox-md k-rounded-md"
17341
+ [formControl]="$any(formGroup.get(column.field))"
17342
+ kendoGridFocusable
17343
+ />
17344
+ </span>
17069
17345
 
17070
17346
  <input
17071
17347
  *ngSwitchDefault
@@ -17827,7 +18103,7 @@ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
17827
18103
  [attr.data-kendo-grid-item-index]="$any(item).index"
17828
18104
  [class.k-selected]="isSelectable() && isRowSelected(item)">
17829
18105
  <ng-container *ngIf="!skipGroupDecoration">
17830
- <td class="k-group-cell" *ngFor="let g of groups" role="presentation"></td>
18106
+ <td class="k-group-cell k-table-td" *ngFor="let g of groups" role="presentation"></td>
17831
18107
  </ng-container>
17832
18108
  <td class="k-hierarchy-cell k-table-td"
17833
18109
  *ngIf="detailTemplate?.templateRef"
@@ -17929,7 +18205,7 @@ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
17929
18205
  [logicalCellsCount]="columns.length"
17930
18206
  [logicalSlaveCellsCount]="unlockedColumnsCount(item)">
17931
18207
  <ng-container *ngIf="!skipGroupDecoration">
17932
- <td class="k-group-cell" *ngFor="let g of groups"></td>
18208
+ <td class="k-group-cell k-table-td" *ngFor="let g of groups"></td>
17933
18209
  </ng-container>
17934
18210
  <td class="k-hierarchy-cell k-table-td"
17935
18211
  *ngIf="detailTemplate?.templateRef"
@@ -18057,7 +18333,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18057
18333
  [attr.data-kendo-grid-item-index]="$any(item).index"
18058
18334
  [class.k-selected]="isSelectable() && isRowSelected(item)">
18059
18335
  <ng-container *ngIf="!skipGroupDecoration">
18060
- <td class="k-group-cell" *ngFor="let g of groups" role="presentation"></td>
18336
+ <td class="k-group-cell k-table-td" *ngFor="let g of groups" role="presentation"></td>
18061
18337
  </ng-container>
18062
18338
  <td class="k-hierarchy-cell k-table-td"
18063
18339
  *ngIf="detailTemplate?.templateRef"
@@ -18159,7 +18435,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18159
18435
  [logicalCellsCount]="columns.length"
18160
18436
  [logicalSlaveCellsCount]="unlockedColumnsCount(item)">
18161
18437
  <ng-container *ngIf="!skipGroupDecoration">
18162
- <td class="k-group-cell" *ngFor="let g of groups"></td>
18438
+ <td class="k-group-cell k-table-td" *ngFor="let g of groups"></td>
18163
18439
  </ng-container>
18164
18440
  <td class="k-hierarchy-cell k-table-td"
18165
18441
  *ngIf="detailTemplate?.templateRef"
@@ -19778,11 +20054,7 @@ const createControl = (source) => (acc, key) => {
19778
20054
  const validateColumnsField = (columns) => expandColumns(columns.toArray())
19779
20055
  .filter(isColumnComponent)
19780
20056
  .filter(({ field }) => !isValidFieldName(field))
19781
- .forEach(({ field }) => console.warn(`
19782
- Grid column field name '${field}' does not look like a valid JavaScript identifier.
19783
- Identifiers can contain only alphanumeric characters (including "$" or "_"), and may not start with a digit.
19784
- Please use only valid identifier names to ensure error-free operation.
19785
- `));
20057
+ .forEach(({ field }) => console.warn(ColumnConfigurationErrorMessages.fieldName(field)));
19786
20058
  const handleExpandCollapseGroupsService = (service, expandEmitter, collapseEmitter, map) => (service.changes.pipe(filter(({ group }) => isPresent(group)))
19787
20059
  .subscribe((x) => x.expand ? expandEmitter.emit(map(x)) : collapseEmitter.emit(map(x))));
19788
20060
  const handleExpandCollapseDetailsService = (service, expandEmitter, collapseEmitter, map) => (service.changes.pipe(filter(({ dataItem }) => isPresent(dataItem)))
@@ -20298,7 +20570,7 @@ class GridComponent {
20298
20570
  */
20299
20571
  set rowClass(fn) {
20300
20572
  if (isDevMode() && typeof fn !== 'function') {
20301
- throw new Error(`rowClass must be a function, but received ${JSON.stringify(fn)}.`);
20573
+ throw new Error(GridConfigurationErrorMessages.functionType('rowClass', fn));
20302
20574
  }
20303
20575
  this._rowClass = fn;
20304
20576
  }
@@ -20311,7 +20583,7 @@ class GridComponent {
20311
20583
  */
20312
20584
  set rowSticky(fn) {
20313
20585
  if (isDevMode() && isPresent(fn) && typeof fn !== 'function') {
20314
- throw new Error(`rowSticky must be a function, but received ${JSON.stringify(fn)}.`);
20586
+ throw new Error(GridConfigurationErrorMessages.functionType('rowSticky', fn));
20315
20587
  }
20316
20588
  if (isPresent(fn)) {
20317
20589
  this._rowSticky = fn;
@@ -20327,7 +20599,7 @@ class GridComponent {
20327
20599
  */
20328
20600
  set rowSelected(fn) {
20329
20601
  if (isDevMode() && typeof fn !== 'function') {
20330
- throw new Error(`rowSelected must be a function, but received ${JSON.stringify(fn)}.`);
20602
+ throw new Error(GridConfigurationErrorMessages.functionType('rowSelected', fn));
20331
20603
  }
20332
20604
  this._rowSelected = fn;
20333
20605
  }
@@ -20344,7 +20616,7 @@ class GridComponent {
20344
20616
  */
20345
20617
  set cellSelected(fn) {
20346
20618
  if (isDevMode() && typeof fn !== 'function') {
20347
- throw new Error(`cellSelected must be a function, but received ${JSON.stringify(fn)}.`);
20619
+ throw new Error(GridConfigurationErrorMessages.functionType('cellSelected', fn));
20348
20620
  }
20349
20621
  this._cellSelected = fn;
20350
20622
  }
@@ -20363,6 +20635,16 @@ class GridComponent {
20363
20635
  get activeRow() {
20364
20636
  return this.navigationService.activeRow;
20365
20637
  }
20638
+ /**
20639
+ * Returns the current Grid selection.
20640
+ *
20641
+ * @hidden
20642
+ */
20643
+ get selection() {
20644
+ return (this.selectable || this.selectionDirective) ?
20645
+ this.defaultSelection ? this.defaultSelection.stateToArray() : this.selectionDirective.stateToArray() :
20646
+ [];
20647
+ }
20366
20648
  /**
20367
20649
  * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
20368
20650
  *
@@ -21280,7 +21562,7 @@ class GridComponent {
21280
21562
  instance = column;
21281
21563
  }
21282
21564
  if (!instance && isDevMode()) {
21283
- throw new Error(`Invalid column ${column}`);
21565
+ throw new Error(ColumnConfigurationErrorMessages.invalidColumn(column));
21284
21566
  }
21285
21567
  return instance;
21286
21568
  }
@@ -21289,43 +21571,43 @@ class GridComponent {
21289
21571
  const locked = this.lockedLeafColumns.length || (this.columnMenu && this.columnMenu.lock);
21290
21572
  const stickyColumns = this.stickyColumns.length || (this.columnMenu && this.columnMenu.stick);
21291
21573
  if (locked && this.detailTemplate) {
21292
- throw new Error('Having both detail template and locked columns is not supported.');
21574
+ throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('detail template', 'locked columns'));
21293
21575
  }
21294
21576
  if (stickyColumns && this.detailTemplate) {
21295
- throw new Error('Having both detail template and sticky columns is not supported.');
21577
+ throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('detail template', 'sticky columns'));
21296
21578
  }
21297
21579
  if (this.lockedLeafColumns.length && !this.nonLockedLeafColumns.length) {
21298
- throw new Error('There should be at least one non-locked column');
21580
+ throw new Error(GridConfigurationErrorMessages.nonLockedColumnPresent);
21299
21581
  }
21300
21582
  if ((locked || this.virtualColumns) && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
21301
- throw new Error((locked ? 'Locked' : 'Virtual') + ' columns feature requires all columns to have set width.');
21583
+ throw new Error(ColumnConfigurationErrorMessages.requiredWidth(locked ? 'Locked' : 'Virtual'));
21302
21584
  }
21303
21585
  if (locked && !this.isScrollable) {
21304
- throw new Error('Locked columns are only supported when scrolling is enabled.');
21586
+ throw new Error(ColumnConfigurationErrorMessages.requiredScroll('Locked'));
21587
+ }
21588
+ if (stickyColumns && !this.isScrollable) {
21589
+ throw new Error(ColumnConfigurationErrorMessages.requiredScroll('Sticky'));
21305
21590
  }
21306
21591
  if (this.columnList.filter(isColumnGroupComponent).filter((x) => !x.hasChildren).length) {
21307
- throw new Error('ColumnGroupComponent should contain ColumnComponent or CommandColumnComponent.');
21592
+ throw new Error(ColumnConfigurationErrorMessages.groupColumnContent);
21308
21593
  }
21309
21594
  if (this.columnList.filter(x => x.locked && x.parent && !x.parent.isLocked).length) {
21310
- throw new Error('Locked child columns require their parent columns to be locked.');
21595
+ throw new Error(ColumnConfigurationErrorMessages.lockedParent);
21311
21596
  }
21312
21597
  if ((this.rowHeight || this.detailRowHeight) && !this.isVirtual) {
21313
- throw new Error('Row height and detail row height settings require virtual scrolling mode to be enabled.');
21598
+ throw new Error(GridConfigurationErrorMessages.rowHeightVirtual);
21314
21599
  }
21315
21600
  if (stickyColumns && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
21316
- throw new Error('Sticky columns feature requires all columns to have set width.');
21317
- }
21318
- if (stickyColumns && !this.isScrollable) {
21319
- throw new Error('Sticky columns are only supported when scrolling is enabled.');
21601
+ throw new Error(ColumnConfigurationErrorMessages.requiredWidth('Sticky'));
21320
21602
  }
21321
21603
  if (stickyColumns && this.virtualColumns) {
21322
- throw new Error('Having both sticky columns and column virtualization is not supported.');
21604
+ throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky columns', 'column virtualization'));
21323
21605
  }
21324
21606
  if (this.rowSticky && this.scrollable === 'virtual') {
21325
- throw new Error('Having both sticky rows and row virtualization (scrollable="virtual") is not supported.');
21607
+ throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky rows', 'row virtualization (scrollable="virtual")'));
21326
21608
  }
21327
21609
  if (this.rowSticky && this.groupable) {
21328
- throw new Error('Having both sticky rows and grouping is not supported.');
21610
+ throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky rows', 'grouping'));
21329
21611
  }
21330
21612
  validateColumnsField(this.columnList);
21331
21613
  }
@@ -21524,7 +21806,7 @@ class GridComponent {
21524
21806
  }
21525
21807
  assertNavigable() {
21526
21808
  if (isDevMode() && !this.navigationService.enabled) {
21527
- throw new Error('The Grid should be configured as navigable to control focus');
21809
+ throw new Error(GridConfigurationErrorMessages.focusNavigable);
21528
21810
  }
21529
21811
  }
21530
21812
  navigationMetadata() {
@@ -21596,9 +21878,7 @@ class GridComponent {
21596
21878
  toggleDetailRowLegacy(index, expand) {
21597
21879
  const hasCallback = typeof this.isDetailExpanded === 'function';
21598
21880
  if (isDevMode() && hasCallback) {
21599
- throw new Error('The expandRow and collapseRow methods should not be called when using the ' +
21600
- 'kendoGridDetailsExpandBy directive or the isDetailExpanded callback. ' +
21601
- 'These methods are provided only for backwards compatibility with legacy versions.');
21881
+ throw new Error(GridConfigurationErrorMessages.expandCollapseMethods('expandRow', 'collapseRow', 'kendoGridDetailsExpandBy', 'isDetailExpanded'));
21602
21882
  }
21603
21883
  if (!isDevMode() && hasCallback) {
21604
21884
  return;
@@ -21610,9 +21890,7 @@ class GridComponent {
21610
21890
  toggleGroupRowLegacy(index, expand) {
21611
21891
  const hasCallback = typeof this.isGroupExpanded === 'function';
21612
21892
  if (isDevMode() && hasCallback) {
21613
- throw new Error('The expandGroup and collapseGroup methods should not be called when using the ' +
21614
- 'kendoGridExpandGroupBy directive or the isGroupExpanded callback. ' +
21615
- 'These methods are provided only for backwards compatibility with legacy versions.');
21893
+ throw new Error(GridConfigurationErrorMessages.expandCollapseMethods('expandGroup', 'collapseGroup', 'kendoGridExpandGroupBy', 'isGroupExpanded'));
21616
21894
  }
21617
21895
  if (!isDevMode() && hasCallback) {
21618
21896
  return;
@@ -21687,7 +21965,8 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21687
21965
  SortService,
21688
21966
  ContextService,
21689
21967
  SizingOptionsService,
21690
- RowReorderService
21968
+ RowReorderService,
21969
+ ClipboardService
21691
21970
  ], 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: `
21692
21971
  <ng-container kendoGridLocalizedMessages
21693
21972
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
@@ -22315,7 +22594,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22315
22594
  SortService,
22316
22595
  ContextService,
22317
22596
  SizingOptionsService,
22318
- RowReorderService
22597
+ RowReorderService,
22598
+ ClipboardService
22319
22599
  ],
22320
22600
  selector: 'kendo-grid',
22321
22601
  template: `
@@ -23245,11 +23525,12 @@ class DataBindingDirective {
23245
23525
  }
23246
23526
  }
23247
23527
  DataBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, deps: [{ token: GridComponent }, { token: i0.ChangeDetectorRef }, { token: LocalDataChangesService }, { token: RowReorderService }], target: i0.ɵɵFactoryTarget.Directive });
23248
- DataBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DataBindingDirective, selector: "[kendoGridBinding]", inputs: { skip: "skip", sort: "sort", filter: "filter", pageSize: "pageSize", group: "group", data: ["kendoGridBinding", "data"] }, usesOnChanges: true, ngImport: i0 });
23528
+ DataBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DataBindingDirective, selector: "[kendoGridBinding]", inputs: { skip: "skip", sort: "sort", filter: "filter", pageSize: "pageSize", group: "group", data: ["kendoGridBinding", "data"] }, exportAs: ["kendoGridBinding"], usesOnChanges: true, ngImport: i0 });
23249
23529
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, decorators: [{
23250
23530
  type: Directive,
23251
23531
  args: [{
23252
- selector: '[kendoGridBinding]'
23532
+ selector: '[kendoGridBinding]',
23533
+ exportAs: 'kendoGridBinding'
23253
23534
  }]
23254
23535
  }], ctorParameters: function () { return [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }]; }, propDecorators: { skip: [{
23255
23536
  type: Input
@@ -23627,7 +23908,7 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
23627
23908
  [value]="currentFilter?.value">
23628
23909
  </kendo-autocomplete>
23629
23910
  </kendo-grid-filter-wrapper-cell>
23630
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
23911
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
23631
23912
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
23632
23913
  type: Component,
23633
23914
  args: [{
@@ -25784,8 +26065,7 @@ class LocalEditService {
25784
26065
  return data;
25785
26066
  }
25786
26067
  if (isDevMode()) {
25787
- throw new Error('The default edit service of the editing directives works only when binding to plain array.' +
25788
- 'Please provide an editService.');
26068
+ throw new Error(GridConfigurationErrorMessages.requiredEditService);
25789
26069
  }
25790
26070
  return [];
25791
26071
  }
@@ -26292,9 +26572,7 @@ class GroupBindingDirective extends DataBindingDirective {
26292
26572
  }
26293
26573
  ngAfterContentInit() {
26294
26574
  if (isDevMode() && this.grid.isGroupExpanded) {
26295
- throw new Error('Using the `kendoGridGroupBinding` directive in combination with the `kendoGridExpandGroupBy` directive ' +
26296
- 'or the `isGroupExpanded` callback is not supported. To use grouping with the `kendoGridGroupBinding` directive, ' +
26297
- 'set the Grid `groupable` property to `true`.');
26575
+ throw new Error(GridConfigurationErrorMessages.groupBindingDirectives);
26298
26576
  }
26299
26577
  }
26300
26578
  groupExpand({ groupIndex }) {
@@ -26428,6 +26706,178 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26428
26706
  }]
26429
26707
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ContextService }]; } });
26430
26708
 
26709
+ /**
26710
+ * The directive that enables the Grid built-in clipboard support. Allows copy, cut, and paste interactions
26711
+ * with the Grid.
26712
+ */
26713
+ class GridClipboardDirective {
26714
+ constructor(host, clipboardService, renderer, zone) {
26715
+ this.host = host;
26716
+ this.clipboardService = clipboardService;
26717
+ this.renderer = renderer;
26718
+ this.zone = zone;
26719
+ /**
26720
+ * Fires when the user performs `cut`, `copy` or `paste` action within the Grid content area.
26721
+ */
26722
+ this.clipboard = new EventEmitter();
26723
+ this._target = 'selection';
26724
+ this._clipboardSettings = {
26725
+ wholeRow: false,
26726
+ copyHeaders: false,
26727
+ copy: true,
26728
+ cut: true,
26729
+ paste: true
26730
+ };
26731
+ this.subs = new Subscription();
26732
+ this.onClipboard = (operationType, args) => {
26733
+ var _a, _b;
26734
+ if (!this.clipboardSettings[operationType] || !this.inGrid(args)) {
26735
+ return;
26736
+ }
26737
+ const gridData = Array.isArray(this.host.data) ? this.host.data : this.host.data.data;
26738
+ const gridDataItems = gridData.flatMap(recursiveFlatMap);
26739
+ const selection = this.host.selection;
26740
+ const selectionDirective = this.host.selectionDirective;
26741
+ const targetType = this.clipboardTarget;
26742
+ const isCellSelection = (((_a = this.host.selectable) === null || _a === void 0 ? void 0 : _a.cell) || selectionDirective.isCellSelectionMode);
26743
+ let clipboardData = [];
26744
+ switch (targetType) {
26745
+ case 'activeCell':
26746
+ {
26747
+ const targetCell = Object.assign({}, this.host.activeCell);
26748
+ clipboardData = targetCell && [{ dataItem: targetCell.dataItem, dataRowIndex: targetCell.dataRowIndex, colIndex: targetCell.colIndex }];
26749
+ }
26750
+ break;
26751
+ case 'selection':
26752
+ {
26753
+ const identifier = selectionDirective.selectionKey;
26754
+ clipboardData = gridDataItems.flatMap((item, index) => {
26755
+ if (identifier) {
26756
+ const key = typeof identifier === 'string' ? item[identifier] : identifier({ index: index + this.host.skip, dataItem: item });
26757
+ return isCellSelection ?
26758
+ selection.some(s => s.itemKey === key) ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [] :
26759
+ selection.indexOf(key) > -1 ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [];
26760
+ }
26761
+ return isCellSelection ?
26762
+ selection.some(s => s.itemKey === index + this.host.skip) ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [] :
26763
+ selection.indexOf(index + this.host.skip) > -1 ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [];
26764
+ });
26765
+ }
26766
+ break;
26767
+ }
26768
+ const isPaste = operationType === 'paste';
26769
+ const pastedData = args.clipboardData.getData('text').trim();
26770
+ const visibleCols = this.host.columns.toArray().filter(c => c.isVisible);
26771
+ const data = isPaste ?
26772
+ {
26773
+ dataString: pastedData,
26774
+ gridItems: this.clipboardService.getGridData(pastedData, visibleCols, this.clipboardTarget, (_b = clipboardData[0]) === null || _b === void 0 ? void 0 : _b.dataRowIndex, {
26775
+ wholeRow: this.clipboardSettings.wholeRow,
26776
+ isCellSelection
26777
+ })
26778
+ } :
26779
+ this.clipboardService.createClipboardData(clipboardData || [], visibleCols, {
26780
+ wholeRow: this.clipboardSettings.wholeRow || (this.clipboardTarget === 'selection' && !isCellSelection),
26781
+ target: this.clipboardTarget,
26782
+ copyHeaders: this.clipboardSettings.copyHeaders,
26783
+ operationType
26784
+ });
26785
+ !isPaste && navigator.clipboard.writeText(data.dataString);
26786
+ if (hasObservers(this.clipboard)) {
26787
+ this.zone.run(() => {
26788
+ var _a;
26789
+ this.clipboard.emit({
26790
+ type: operationType,
26791
+ originalEvent: args,
26792
+ clipboardData: data.dataString,
26793
+ gridData: data.gridItems,
26794
+ target: {
26795
+ dataRowIndex: this.clipboardService.targetRowIndex,
26796
+ colField: this.clipboardService.targetColField,
26797
+ dataItem: (_a = clipboardData.find(item => item.dataRowIndex === this.clipboardService.targetRowIndex)) === null || _a === void 0 ? void 0 : _a.dataItem
26798
+ }
26799
+ });
26800
+ });
26801
+ }
26802
+ this.clipboardService.targetColField = this.clipboardService.targetRowIndex = null;
26803
+ };
26804
+ this.inGrid = (args) => {
26805
+ const target = document.activeElement.matches('.k-table-td') ? document.activeElement : args.target;
26806
+ const inContentArea = closest(target, node => { var _a; return (_a = node.parentElement) === null || _a === void 0 ? void 0 : _a.classList.contains('k-grid-container'); });
26807
+ const inHost = contains$2(this.host.wrapper.nativeElement, target);
26808
+ return target && inHost && inContentArea;
26809
+ };
26810
+ }
26811
+ /**
26812
+ * Determines the target of the clipboard operation ([see example]({% slug clipboard_grid %}#toc-clipboard-target)). The possible options are:
26813
+ * - `activeCell`
26814
+ * - `selection`
26815
+ *
26816
+ * @default 'selection'
26817
+ */
26818
+ set clipboardTarget(value) {
26819
+ if (isDevMode()) {
26820
+ this.zone.onStable.pipe(take(1)).subscribe(() => {
26821
+ if (value === 'activeCell' && !(this.host.navigable.length)) {
26822
+ console.warn(ClipboardErrorMessages.clipboardTarget.activeCellNavigable);
26823
+ }
26824
+ else if (value === 'selection' && !(this.host.selectable || this.host.selectionDirective)) {
26825
+ console.warn(ClipboardErrorMessages.selectionSelectable);
26826
+ }
26827
+ });
26828
+ }
26829
+ this._target = value;
26830
+ }
26831
+ get clipboardTarget() {
26832
+ return this._target;
26833
+ }
26834
+ /**
26835
+ * The `GridClipboardDirective` settings.
26836
+ *
26837
+ * @default { wholeRow: false, copyHeaders: false copy: true, cut: true, paste: true }
26838
+ */
26839
+ set clipboardSettings(value) {
26840
+ this._clipboardSettings = Object.assign({}, this._clipboardSettings, value);
26841
+ }
26842
+ get clipboardSettings() {
26843
+ return this._clipboardSettings;
26844
+ }
26845
+ ngAfterViewInit() {
26846
+ if (!isDocumentAvailable()) {
26847
+ return;
26848
+ }
26849
+ if (this.clipboardTarget === 'selection' && !(this.host.selectable || this.host.selectionDirective)) {
26850
+ console.warn(ClipboardErrorMessages.selectionSelectable);
26851
+ }
26852
+ // needed due to the following issue in Chrome
26853
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=1156117&q=focus%20programmatically%20paste&can=2
26854
+ this.zone.runOutsideAngular(() => {
26855
+ this.subs.add(this.renderer.listen(document, 'copy', (args) => this.onClipboard('copy', args)));
26856
+ this.subs.add(this.renderer.listen(document, 'cut', (args) => this.onClipboard('cut', args)));
26857
+ this.subs.add(this.renderer.listen(document, 'paste', (args) => this.onClipboard('paste', args)));
26858
+ });
26859
+ }
26860
+ ngOnDestroy() {
26861
+ this.subs.unsubscribe();
26862
+ }
26863
+ }
26864
+ GridClipboardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridClipboardDirective, deps: [{ token: GridComponent }, { token: ClipboardService }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
26865
+ GridClipboardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridClipboardDirective, selector: "[kendoGridClipboard]", inputs: { clipboardTarget: "clipboardTarget", clipboardSettings: "clipboardSettings" }, outputs: { clipboard: "clipboard" }, providers: [ClipboardService], exportAs: ["kendoGridClipboard"], ngImport: i0 });
26866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridClipboardDirective, decorators: [{
26867
+ type: Directive,
26868
+ args: [{
26869
+ selector: '[kendoGridClipboard]',
26870
+ exportAs: 'kendoGridClipboard',
26871
+ providers: [ClipboardService]
26872
+ }]
26873
+ }], ctorParameters: function () { return [{ type: GridComponent }, { type: ClipboardService }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { clipboardTarget: [{
26874
+ type: Input
26875
+ }], clipboardSettings: [{
26876
+ type: Input
26877
+ }], clipboard: [{
26878
+ type: Output
26879
+ }] } });
26880
+
26431
26881
  const exportedModules$1 = [
26432
26882
  GridComponent,
26433
26883
  ToolbarTemplateDirective,
@@ -26452,7 +26902,8 @@ const exportedModules$1 = [
26452
26902
  ...PagerModule.exports(),
26453
26903
  ...RowFilterModule.exports(),
26454
26904
  ...FilterMenuModule.exports(),
26455
- ...ColumnMenuModule.exports()
26905
+ ...ColumnMenuModule.exports(),
26906
+ GridClipboardDirective
26456
26907
  ];
26457
26908
  const declarations$2 = [
26458
26909
  GridComponent,
@@ -26473,7 +26924,8 @@ const declarations$2 = [
26473
26924
  GridSpacerComponent,
26474
26925
  GridToolbarFocusableDirective,
26475
26926
  StatusBarComponent,
26476
- StatusBarTemplateDirective
26927
+ StatusBarTemplateDirective,
26928
+ GridClipboardDirective
26477
26929
  ];
26478
26930
  /**
26479
26931
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -26517,7 +26969,8 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
26517
26969
  GridSpacerComponent,
26518
26970
  GridToolbarFocusableDirective,
26519
26971
  StatusBarComponent,
26520
- StatusBarTemplateDirective], imports: [CommonModule,
26972
+ StatusBarTemplateDirective,
26973
+ GridClipboardDirective], imports: [CommonModule,
26521
26974
  GroupModule,
26522
26975
  SharedModule,
26523
26976
  BodyModule,
@@ -26543,7 +26996,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
26543
26996
  InCellEditingDirective,
26544
26997
  ExpandDetailsDirective,
26545
26998
  ExpandGroupDirective,
26546
- GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, ColumnComponent, SpanColumnComponent, ColumnGroupComponent, FooterTemplateDirective, DetailTemplateDirective, FocusableDirective, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderTemplateDirective, SelectAllCheckboxDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, FilterCellOperatorsComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent] });
26999
+ GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, ColumnComponent, SpanColumnComponent, ColumnGroupComponent, FooterTemplateDirective, DetailTemplateDirective, FocusableDirective, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderTemplateDirective, SelectAllCheckboxDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, FilterCellOperatorsComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridClipboardDirective] });
26547
27000
  GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, imports: [[
26548
27001
  CommonModule,
26549
27002
  GroupModule,
@@ -26842,13 +27295,13 @@ class PDFComponent extends PDFExportComponent {
26842
27295
  * @hidden
26843
27296
  */
26844
27297
  saveAs(_) {
26845
- throw new Error('Not supported. Use GridComponent.saveAsPDF');
27298
+ throw new Error(GridConfigurationErrorMessages.unsupportedMethod('saveAs', 'GridComponent.saveAsPDF'));
26846
27299
  }
26847
27300
  /**
26848
27301
  * @hidden
26849
27302
  */
26850
27303
  export() {
26851
- throw new Error('Not supported. Use GridComponent.drawPDF');
27304
+ throw new Error(GridConfigurationErrorMessages.unsupportedMethod('export', 'GridComponent.drawPDF'));
26852
27305
  }
26853
27306
  savePDF(component) {
26854
27307
  this.createPDF(component, this.draw);
@@ -27446,5 +27899,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
27446
27899
  * Generated bundle index. Do not edit.
27447
27900
  */
27448
27901
 
27449
- export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditService, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterModule, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupModule, GroupPanelComponent, GroupsService, HeaderComponent, HeaderModule, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerContextService, PagerDropDownListDirective, PagerInfoComponent, PagerInputComponent, PagerInputDirective, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowEditingDirectiveBase, RowFilterModule, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SharedFilterModule, SharedModule, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
27902
+ export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditService, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterModule, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridClipboardDirective, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupModule, GroupPanelComponent, GroupsService, HeaderComponent, HeaderModule, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerContextService, PagerDropDownListDirective, PagerInfoComponent, PagerInputComponent, PagerInputDirective, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowEditingDirectiveBase, RowFilterModule, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SharedFilterModule, SharedModule, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
27450
27903