@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
@@ -0,0 +1,185 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Directive, EventEmitter, Input, NgZone, Output, Renderer2, isDevMode } from '@angular/core';
6
+ import { ClipboardService } from './clipboard.service';
7
+ import { GridComponent } from '../grid.component';
8
+ import { hasObservers, isDocumentAvailable } from '@progress/kendo-angular-common';
9
+ import { Subscription } from 'rxjs';
10
+ import { take } from 'rxjs/operators';
11
+ import { closest, contains } from '../rendering/common/dom-queries';
12
+ import { recursiveFlatMap } from '../utils';
13
+ import { ClipboardErrorMessages } from './error-messages';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "../grid.component";
16
+ import * as i2 from "./clipboard.service";
17
+ /**
18
+ * The directive that enables the Grid built-in clipboard support. Allows copy, cut, and paste interactions
19
+ * with the Grid.
20
+ */
21
+ export class GridClipboardDirective {
22
+ constructor(host, clipboardService, renderer, zone) {
23
+ this.host = host;
24
+ this.clipboardService = clipboardService;
25
+ this.renderer = renderer;
26
+ this.zone = zone;
27
+ /**
28
+ * Fires when the user performs `cut`, `copy` or `paste` action within the Grid content area.
29
+ */
30
+ this.clipboard = new EventEmitter();
31
+ this._target = 'selection';
32
+ this._clipboardSettings = {
33
+ wholeRow: false,
34
+ copyHeaders: false,
35
+ copy: true,
36
+ cut: true,
37
+ paste: true
38
+ };
39
+ this.subs = new Subscription();
40
+ this.onClipboard = (operationType, args) => {
41
+ if (!this.clipboardSettings[operationType] || !this.inGrid(args)) {
42
+ return;
43
+ }
44
+ const gridData = Array.isArray(this.host.data) ? this.host.data : this.host.data.data;
45
+ const gridDataItems = gridData.flatMap(recursiveFlatMap);
46
+ const selection = this.host.selection;
47
+ const selectionDirective = this.host.selectionDirective;
48
+ const targetType = this.clipboardTarget;
49
+ const isCellSelection = (this.host.selectable?.cell || selectionDirective.isCellSelectionMode);
50
+ let clipboardData = [];
51
+ switch (targetType) {
52
+ case 'activeCell':
53
+ {
54
+ const targetCell = { ...this.host.activeCell };
55
+ clipboardData = targetCell && [{ dataItem: targetCell.dataItem, dataRowIndex: targetCell.dataRowIndex, colIndex: targetCell.colIndex }];
56
+ }
57
+ break;
58
+ case 'selection':
59
+ {
60
+ const identifier = selectionDirective.selectionKey;
61
+ clipboardData = gridDataItems.flatMap((item, index) => {
62
+ if (identifier) {
63
+ const key = typeof identifier === 'string' ? item[identifier] : identifier({ index: index + this.host.skip, dataItem: item });
64
+ return isCellSelection ?
65
+ selection.some(s => s.itemKey === key) ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [] :
66
+ selection.indexOf(key) > -1 ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [];
67
+ }
68
+ return isCellSelection ?
69
+ selection.some(s => s.itemKey === index + this.host.skip) ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [] :
70
+ selection.indexOf(index + this.host.skip) > -1 ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [];
71
+ });
72
+ }
73
+ break;
74
+ }
75
+ const isPaste = operationType === 'paste';
76
+ const pastedData = args.clipboardData.getData('text').trim();
77
+ const visibleCols = this.host.columns.toArray().filter(c => c.isVisible);
78
+ const data = isPaste ?
79
+ {
80
+ dataString: pastedData,
81
+ gridItems: this.clipboardService.getGridData(pastedData, visibleCols, this.clipboardTarget, clipboardData[0]?.dataRowIndex, {
82
+ wholeRow: this.clipboardSettings.wholeRow,
83
+ isCellSelection
84
+ })
85
+ } :
86
+ this.clipboardService.createClipboardData(clipboardData || [], visibleCols, {
87
+ wholeRow: this.clipboardSettings.wholeRow || (this.clipboardTarget === 'selection' && !isCellSelection),
88
+ target: this.clipboardTarget,
89
+ copyHeaders: this.clipboardSettings.copyHeaders,
90
+ operationType
91
+ });
92
+ !isPaste && navigator.clipboard.writeText(data.dataString);
93
+ if (hasObservers(this.clipboard)) {
94
+ this.zone.run(() => {
95
+ this.clipboard.emit({
96
+ type: operationType,
97
+ originalEvent: args,
98
+ clipboardData: data.dataString,
99
+ gridData: data.gridItems,
100
+ target: {
101
+ dataRowIndex: this.clipboardService.targetRowIndex,
102
+ colField: this.clipboardService.targetColField,
103
+ dataItem: clipboardData.find(item => item.dataRowIndex === this.clipboardService.targetRowIndex)?.dataItem
104
+ }
105
+ });
106
+ });
107
+ }
108
+ this.clipboardService.targetColField = this.clipboardService.targetRowIndex = null;
109
+ };
110
+ this.inGrid = (args) => {
111
+ const target = document.activeElement.matches('.k-table-td') ? document.activeElement : args.target;
112
+ const inContentArea = closest(target, node => node.parentElement?.classList.contains('k-grid-container'));
113
+ const inHost = contains(this.host.wrapper.nativeElement, target);
114
+ return target && inHost && inContentArea;
115
+ };
116
+ }
117
+ /**
118
+ * Determines the target of the clipboard operation ([see example]({% slug clipboard_grid %}#toc-clipboard-target)). The possible options are:
119
+ * - `activeCell`
120
+ * - `selection`
121
+ *
122
+ * @default 'selection'
123
+ */
124
+ set clipboardTarget(value) {
125
+ if (isDevMode()) {
126
+ this.zone.onStable.pipe(take(1)).subscribe(() => {
127
+ if (value === 'activeCell' && !(this.host.navigable.length)) {
128
+ console.warn(ClipboardErrorMessages.clipboardTarget.activeCellNavigable);
129
+ }
130
+ else if (value === 'selection' && !(this.host.selectable || this.host.selectionDirective)) {
131
+ console.warn(ClipboardErrorMessages.selectionSelectable);
132
+ }
133
+ });
134
+ }
135
+ this._target = value;
136
+ }
137
+ get clipboardTarget() {
138
+ return this._target;
139
+ }
140
+ /**
141
+ * The `GridClipboardDirective` settings.
142
+ *
143
+ * @default { wholeRow: false, copyHeaders: false copy: true, cut: true, paste: true }
144
+ */
145
+ set clipboardSettings(value) {
146
+ this._clipboardSettings = Object.assign({}, this._clipboardSettings, value);
147
+ }
148
+ get clipboardSettings() {
149
+ return this._clipboardSettings;
150
+ }
151
+ ngAfterViewInit() {
152
+ if (!isDocumentAvailable()) {
153
+ return;
154
+ }
155
+ if (this.clipboardTarget === 'selection' && !(this.host.selectable || this.host.selectionDirective)) {
156
+ console.warn(ClipboardErrorMessages.selectionSelectable);
157
+ }
158
+ // needed due to the following issue in Chrome
159
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=1156117&q=focus%20programmatically%20paste&can=2
160
+ this.zone.runOutsideAngular(() => {
161
+ this.subs.add(this.renderer.listen(document, 'copy', (args) => this.onClipboard('copy', args)));
162
+ this.subs.add(this.renderer.listen(document, 'cut', (args) => this.onClipboard('cut', args)));
163
+ this.subs.add(this.renderer.listen(document, 'paste', (args) => this.onClipboard('paste', args)));
164
+ });
165
+ }
166
+ ngOnDestroy() {
167
+ this.subs.unsubscribe();
168
+ }
169
+ }
170
+ GridClipboardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridClipboardDirective, deps: [{ token: i1.GridComponent }, { token: i2.ClipboardService }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
171
+ 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 });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridClipboardDirective, decorators: [{
173
+ type: Directive,
174
+ args: [{
175
+ selector: '[kendoGridClipboard]',
176
+ exportAs: 'kendoGridClipboard',
177
+ providers: [ClipboardService]
178
+ }]
179
+ }], ctorParameters: function () { return [{ type: i1.GridComponent }, { type: i2.ClipboardService }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { clipboardTarget: [{
180
+ type: Input
181
+ }], clipboardSettings: [{
182
+ type: Input
183
+ }], clipboard: [{
184
+ type: Output
185
+ }] } });
@@ -0,0 +1,218 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Injectable } from '@angular/core';
6
+ import { ColumnComponent } from '../columns/column.component';
7
+ import { isPresent } from '@progress/kendo-angular-common';
8
+ import { ContextService } from './provider.service';
9
+ import { groupBy } from '@progress/kendo-data-query';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "./provider.service";
12
+ /**
13
+ * @hidden
14
+ */
15
+ export class ClipboardService {
16
+ constructor(contextService) {
17
+ this.contextService = contextService;
18
+ this.itemToString = (item, cols) => {
19
+ if (!cols.length) {
20
+ return null;
21
+ }
22
+ return cols.map(col => item[col.field]).join(`\t`);
23
+ };
24
+ }
25
+ createClipboardData(data, columns, options) {
26
+ let result = {
27
+ gridItems: [],
28
+ dataString: ''
29
+ };
30
+ const fieldCols = columns.flatMap(c => c instanceof ColumnComponent && isPresent(c.field) ? [c] : []);
31
+ const clipboardData = { items: [], dataStrings: [] };
32
+ const colFields = fieldCols.map(c => c.field);
33
+ if (options.wholeRow) {
34
+ this.targetColField = fieldCols[0]?.field;
35
+ this.targetRowIndex = data[0].dataRowIndex;
36
+ data.forEach(item => {
37
+ clipboardData.items.push({ dataItem: { ...item.dataItem }, fields: colFields });
38
+ clipboardData.dataStrings.push(this.itemToString(item.dataItem, fieldCols));
39
+ });
40
+ result = {
41
+ gridItems: options.operationType === 'cut' ? clipboardData.items.map(item => {
42
+ item.fields.forEach(field => item.dataItem[field] = null);
43
+ return item;
44
+ }) : [...clipboardData.items],
45
+ dataString: options.copyHeaders ? this.addHeaders(clipboardData.dataStrings.join(`\r\n`), fieldCols) : clipboardData.dataStrings.join(`\n`)
46
+ };
47
+ }
48
+ else {
49
+ if (options.target === 'selection') {
50
+ const { tabular, groups } = this.groupSelection();
51
+ const selectionDirective = this.contextService.grid.selectionDirective;
52
+ const colIdentifier = selectionDirective.columnKey;
53
+ if (tabular) {
54
+ const selectionKeys = groups[0].items.map(item => item.columnKey);
55
+ const selectedFieldCols = columns.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
56
+ const selectedColFields = selectedFieldCols.map(c => c.field);
57
+ this.targetColField = selectedColFields[0];
58
+ result.dataString = data.flatMap(item => {
59
+ const itemString = this.itemToString(item.dataItem, selectedFieldCols);
60
+ const existingItem = isPresent(itemString);
61
+ if (!isPresent(this.targetRowIndex) && isPresent(itemString)) {
62
+ this.targetRowIndex = item.dataRowIndex;
63
+ }
64
+ if (options.operationType === 'cut') {
65
+ selectedColFields.forEach(f => item.dataItem[f] = null);
66
+ }
67
+ result.gridItems.push({
68
+ dataItem: item.dataItem,
69
+ fields: selectedColFields
70
+ });
71
+ return existingItem ? [itemString] : [];
72
+ }).join(`\r\n`);
73
+ if (options.copyHeaders) {
74
+ result.dataString = this.addHeaders(result.dataString, selectedFieldCols);
75
+ }
76
+ }
77
+ else { // split per row (uneven rows)
78
+ const rowIdentifier = selectionDirective.selectionKey;
79
+ result.dataString = data.flatMap(item => {
80
+ // determine cols per item
81
+ const key = rowIdentifier ?
82
+ typeof rowIdentifier === 'string' ? item.dataItem[rowIdentifier] : rowIdentifier({ index: item.dataRowIndex, dataItem: item.dataItem }) :
83
+ item.dataRowIndex;
84
+ const selectionKeys = groups.find(gr => gr.value === key).items.map(item => item.columnKey);
85
+ const selectedFieldCols = columns.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
86
+ const selectedColFields = selectedFieldCols.map(c => c.field);
87
+ if (!this.targetColField) {
88
+ this.targetColField = selectedColFields[0];
89
+ }
90
+ const itemString = this.itemToString(item.dataItem, selectedFieldCols);
91
+ const existingItem = isPresent(itemString);
92
+ if (!isPresent(this.targetRowIndex) && existingItem) {
93
+ this.targetRowIndex = item.dataRowIndex;
94
+ }
95
+ if (existingItem) {
96
+ if (options.operationType === 'cut') {
97
+ selectedColFields.forEach(f => item.dataItem[f] = null);
98
+ }
99
+ result.gridItems.push({
100
+ dataItem: item.dataItem,
101
+ fields: selectedColFields
102
+ });
103
+ }
104
+ return existingItem ? options.copyHeaders ? [this.addHeaders(itemString, selectedFieldCols)] : [itemString] : [];
105
+ }).join(`\r\n`);
106
+ }
107
+ }
108
+ else {
109
+ const item = data[0];
110
+ const col = columns[item.colIndex];
111
+ const colField = col.field;
112
+ const title = col.title;
113
+ const copiedData = item.dataItem[colField];
114
+ this.targetRowIndex = item.dataRowIndex;
115
+ this.targetColField = colField;
116
+ if (options.operationType === 'cut' && colField) {
117
+ item.dataItem[colField] = null;
118
+ }
119
+ result = {
120
+ gridItems: [{
121
+ dataItem: item.dataItem,
122
+ fields: colField ? [colField] : []
123
+ }],
124
+ dataString: options.copyHeaders ? [title || colField, copiedData].join(`\r\n`) : colField ? copiedData : ``
125
+ };
126
+ }
127
+ }
128
+ return result;
129
+ }
130
+ getGridData(data, columns, targetType, targetRowIndex, options) {
131
+ const separator = data.includes(`\r\n`) ? `\r\n` : data.includes(`\n`) ? `\n` : null;
132
+ const dataRows = separator ? data.split(separator) : [data];
133
+ this.targetRowIndex = targetRowIndex;
134
+ if (targetType === 'activeCell') {
135
+ if (options.wholeRow) {
136
+ this.targetColField = columns.find(c => c instanceof ColumnComponent && c.field)?.field;
137
+ }
138
+ else {
139
+ const activeCellIndex = this.contextService.grid.activeCell.colIndex;
140
+ for (let i = 0; i < columns.length; i++) {
141
+ const col = columns[i];
142
+ if (col instanceof ColumnComponent && col.field && i >= activeCellIndex) {
143
+ this.targetColField = col.field;
144
+ break;
145
+ }
146
+ }
147
+ }
148
+ }
149
+ else {
150
+ if (options.wholeRow || !options.isCellSelection) {
151
+ this.targetColField = (columns.filter(c => c instanceof ColumnComponent && c.field))[0]['field'];
152
+ }
153
+ else {
154
+ const { groups } = this.groupSelection();
155
+ const selectionDirective = this.contextService.grid.selectionDirective;
156
+ const colIdentifier = selectionDirective.columnKey;
157
+ const visibleCols = columns.filter(c => c.isVisible);
158
+ const selectionKeys = groups[0].items.map(item => item.columnKey);
159
+ const selectedFieldCols = visibleCols.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
160
+ const selectedColFields = selectedFieldCols.map(c => c.field);
161
+ this.targetColField = selectedColFields[0];
162
+ }
163
+ }
164
+ const items = dataRows.map(rowString => {
165
+ const cells = rowString.includes(`\t`) ? rowString.split(`\t`) : [rowString];
166
+ const colFields = columns.flatMap(c => (c instanceof ColumnComponent) && c.field ? [c.field] : []);
167
+ const targetColFieldIndex = colFields.indexOf(this.targetColField);
168
+ const affectedFields = colFields.slice(targetColFieldIndex, targetColFieldIndex + cells.length);
169
+ const item = {};
170
+ colFields.slice(targetColFieldIndex, targetColFieldIndex + cells.length).forEach((colField, index) => item[colField] = cells[index]);
171
+ return {
172
+ dataItem: item,
173
+ fields: affectedFields
174
+ };
175
+ });
176
+ return items;
177
+ }
178
+ groupSelection() {
179
+ const selection = this.contextService.grid.selection;
180
+ const groups = groupBy(selection, [{ field: 'itemKey' }])
181
+ .map(gr => {
182
+ gr.items.sort((a, b) => a.columnKey - b.columnKey);
183
+ return gr;
184
+ });
185
+ for (let i = 1; i < groups.length; i++) {
186
+ if (!this.areEqual(groups[i].items, groups[i - 1].items)) {
187
+ return {
188
+ tabular: false,
189
+ groups
190
+ };
191
+ }
192
+ }
193
+ return {
194
+ tabular: true,
195
+ groups
196
+ };
197
+ }
198
+ areEqual(arr1, arr2) {
199
+ if (arr1.length !== arr2.length) {
200
+ return false;
201
+ }
202
+ for (let i = 0; i < arr1.length; i++) {
203
+ if (arr1[i].columnKey !== arr2[i].columnKey) {
204
+ return false;
205
+ }
206
+ }
207
+ return true;
208
+ }
209
+ addHeaders(initialData, cols) {
210
+ const headersRowData = cols.map(c => c.title || c.field).join(`\t`);
211
+ return `${headersRowData}\r\n${initialData}`;
212
+ }
213
+ }
214
+ ClipboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService, deps: [{ token: i1.ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
215
+ ClipboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService });
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService, decorators: [{
217
+ type: Injectable
218
+ }], ctorParameters: function () { return [{ type: i1.ContextService }]; } });
@@ -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 { Injectable, EventEmitter } from "@angular/core";
@@ -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
  export {};
@@ -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
  /**
@@ -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 { Injectable, EventEmitter } from '@angular/core';
@@ -18,6 +18,7 @@ export class DomEventsService {
18
18
  this.focusIn = new EventEmitter();
19
19
  this.focusOut = new EventEmitter();
20
20
  this.windowBlur = new EventEmitter();
21
+ this.paste = new EventEmitter();
21
22
  }
22
23
  }
23
24
  DomEventsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DomEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -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
  /**
@@ -7,5 +7,49 @@
7
7
  */
8
8
  export const ColumnMenuErrorMessages = {
9
9
  autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
10
- autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns'
10
+ autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns',
11
+ serviceInput: 'The service input of the predefined column menu components is mandatory.'
12
+ };
13
+ /**
14
+ * @hidden
15
+ */
16
+ export const ClipboardErrorMessages = {
17
+ activeCellNavigable: 'Grid must be navigable to use "activeCell" as clipboard target type.',
18
+ selectionSelectable: 'Grid must be selectable to use "selection" as clipboard target type.'
19
+ };
20
+ /**
21
+ * @hidden
22
+ */
23
+ export const ColumnConfigurationErrorMessages = {
24
+ fieldName: (field) => `Grid column field name '${field}' does not look like a valid JavaScript identifier.
25
+ Identifiers can contain only alphanumeric characters (including "$" or "_"), and may not start with a digit.
26
+ Please use only valid identifier names to ensure error-free operation.`,
27
+ width: (value, parsedValue) => `Expected numeric value for column width, but got a string "${value}". Treating as ${parsedValue}px.`,
28
+ invalidColumn: (column) => `Invalid column ${column}.`,
29
+ requiredWidth: (columnType) => `${columnType} columns feature requires all columns to have set width.`,
30
+ requiredScroll: (columnType) => `${columnType} columns are only supported when scrolling is enabled.`,
31
+ groupColumnContent: 'ColumnGroupComponent should contain ColumnComponent or CommandColumnComponent.',
32
+ lockedParent: 'Locked child columns require their parent columns to be locked.',
33
+ columnNested: 'Columns can be nested only inside ColumnGroupComponent',
34
+ nestedInside: (nestedColumnNameType, parentColumnType) => `${nestedColumnNameType} cannot be nested inside ${parentColumnType}.`
35
+ };
36
+ /**
37
+ * @hidden
38
+ */
39
+ export const GridConfigurationErrorMessages = {
40
+ functionType: (propName, fn) => `${propName} must be a function, but received ${JSON.stringify(fn)}.`,
41
+ incompatibleFeatures: (feat1Name, feat2Name) => `'Having both ${feat1Name} and ${feat2Name} is not supported.'`,
42
+ nonLockedColumnPresent: 'There should be at least one non-locked column',
43
+ rowHeightVirtual: 'Row height and detail row height settings require virtual scrolling mode to be enabled.',
44
+ focusNavigable: 'The Grid should be configured as navigable to control focus',
45
+ expandCollapseMethods: (expandMethodName, collapseMethodName, directiveName, callbackName) => `The ${expandMethodName} and ${collapseMethodName} methods should not be called
46
+ when using the ${directiveName} directive or the ${callbackName} callback.
47
+ These methods are provided only for backwards compatibility with legacy versions.`,
48
+ requiredEditService: `The default edit service of the editing directives works only when binding to plain array.
49
+ Please provide an editService.`,
50
+ requiredModule: (exportedType, moduleName, componentSelector) => `Creating ${exportedType} requires including the ${moduleName} and adding the ${componentSelector} component.`,
51
+ groupBindingDirectives: `Using the "kendoGridGroupBinding" directive in combination with the "kendoGridExpandGroupBy" directive
52
+ or the "isGroupExpanded" callback is not supported. To use grouping with the "kendoGridGroupBinding" directive,
53
+ set the Grid "groupable" property to "true".`,
54
+ unsupportedMethod: (methodName, suggestedMethodName) => `Using ${methodName} in this context is not supported. Use ${suggestedMethodName} instead.`
11
55
  };
@@ -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 { EventEmitter } from "@angular/core";
@@ -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
  export {};
@@ -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 { isPresent } from "../utils";
@@ -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
  export {};
@@ -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 { Injectable } from "@angular/core";
@@ -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
  /**
@@ -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 { Injectable, Renderer2 } from '@angular/core';
@@ -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
  export {};
@@ -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 { PopupService } from '@progress/kendo-angular-popup';
@@ -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
  export {};
@@ -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 { Subject } from 'rxjs';
@@ -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
  /**
@@ -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
  export {};
@@ -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 { EventEmitter, NgZone, Injectable } from '@angular/core';
@@ -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
  export {};
@@ -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 { iterator } from '../utils';
@@ -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 { iterator } from '../utils';