@progress/kendo-angular-grid 21.4.1 → 22.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/column-menu/column-menu-item-base.d.ts +1 -1
  2. package/columns/column-base.d.ts +1 -1
  3. package/common/toolbar-tool-base.directive.d.ts +1 -1
  4. package/editing/toolbar-editing-tool-base.directive.d.ts +1 -1
  5. package/editing-directives/editing-directive-base.d.ts +1 -1
  6. package/editing-directives/row-editing-directive-base.d.ts +1 -1
  7. package/fesm2022/progress-kendo-angular-grid.mjs +666 -666
  8. package/filtering/base-filter-cell.component.d.ts +1 -1
  9. package/filtering/boolean-filter.component.d.ts +1 -1
  10. package/filtering/date-filter.component.d.ts +1 -1
  11. package/filtering/filter-host.directive.d.ts +1 -1
  12. package/filtering/filter-input-wrapper.component.d.ts +1 -1
  13. package/filtering/numeric-filter.component.d.ts +1 -1
  14. package/filtering/operators/filter-operator.base.d.ts +1 -1
  15. package/filtering/string-filter.component.d.ts +1 -1
  16. package/localization/messages.d.ts +1 -1
  17. package/package.json +28 -36
  18. package/schematics/ngAdd/index.js +7 -7
  19. package/selection/selection-default.d.ts +1 -1
  20. package/esm2022/adaptiveness/adaptive-mode.mjs +0 -5
  21. package/esm2022/adaptiveness/adaptive-renderer.component.mjs +0 -1270
  22. package/esm2022/aggregates/aggregate-types.mjs +0 -5
  23. package/esm2022/aggregates/selection-aggregate.service.mjs +0 -200
  24. package/esm2022/aggregates/status-bar-template.directive.mjs +0 -30
  25. package/esm2022/aggregates/status-bar.component.mjs +0 -70
  26. package/esm2022/column-menu/column-chooser-content.component.mjs +0 -318
  27. package/esm2022/column-menu/column-chooser.component.mjs +0 -230
  28. package/esm2022/column-menu/column-list-kb-nav.service.mjs +0 -40
  29. package/esm2022/column-menu/column-list.component.mjs +0 -478
  30. package/esm2022/column-menu/column-locked-change-event.mjs +0 -19
  31. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +0 -89
  32. package/esm2022/column-menu/column-menu-autosize.component.mjs +0 -97
  33. package/esm2022/column-menu/column-menu-chooser.component.mjs +0 -151
  34. package/esm2022/column-menu/column-menu-container.component.mjs +0 -67
  35. package/esm2022/column-menu/column-menu-expandable-item.interface.mjs +0 -5
  36. package/esm2022/column-menu/column-menu-filter.component.mjs +0 -152
  37. package/esm2022/column-menu/column-menu-item-base.mjs +0 -44
  38. package/esm2022/column-menu/column-menu-item-content-template.directive.mjs +0 -45
  39. package/esm2022/column-menu/column-menu-item.component.mjs +0 -514
  40. package/esm2022/column-menu/column-menu-item.directive.mjs +0 -164
  41. package/esm2022/column-menu/column-menu-lock.component.mjs +0 -118
  42. package/esm2022/column-menu/column-menu-position.component.mjs +0 -196
  43. package/esm2022/column-menu/column-menu-settings.interface.mjs +0 -5
  44. package/esm2022/column-menu/column-menu-sort.component.mjs +0 -119
  45. package/esm2022/column-menu/column-menu-stick.component.mjs +0 -120
  46. package/esm2022/column-menu/column-menu-template.directive.mjs +0 -47
  47. package/esm2022/column-menu/column-menu.component.mjs +0 -839
  48. package/esm2022/column-menu/column-menu.service.mjs +0 -71
  49. package/esm2022/column-menu/column-sticky-change-event.mjs +0 -19
  50. package/esm2022/column-menu/column-visibility-change-event.mjs +0 -19
  51. package/esm2022/column-menu/utils.mjs +0 -52
  52. package/esm2022/column-resizing/column-handle.directive.mjs +0 -499
  53. package/esm2022/column-resizing/column-resize.interface.mjs +0 -5
  54. package/esm2022/column-resizing/column-resizing.service.mjs +0 -214
  55. package/esm2022/column-resizing/table.directive.mjs +0 -141
  56. package/esm2022/columns/cell-rowspan.mjs +0 -5
  57. package/esm2022/columns/checkbox-column.component.mjs +0 -106
  58. package/esm2022/columns/column-base.mjs +0 -432
  59. package/esm2022/columns/column-common.mjs +0 -73
  60. package/esm2022/columns/column-group.component.mjs +0 -135
  61. package/esm2022/columns/column-list.mjs +0 -94
  62. package/esm2022/columns/column.component.mjs +0 -198
  63. package/esm2022/columns/columns-container.mjs +0 -101
  64. package/esm2022/columns/command-column.component.mjs +0 -80
  65. package/esm2022/columns/reorder-column.component.mjs +0 -114
  66. package/esm2022/columns/sort-settings.mjs +0 -18
  67. package/esm2022/columns/span-column.component.mjs +0 -195
  68. package/esm2022/common/adaptiveness.service.mjs +0 -72
  69. package/esm2022/common/cell-click-event-args.interface.mjs +0 -5
  70. package/esm2022/common/clipboard-types.mjs +0 -5
  71. package/esm2022/common/clipboard.directive.mjs +0 -197
  72. package/esm2022/common/clipboard.service.mjs +0 -221
  73. package/esm2022/common/column-info.service.mjs +0 -92
  74. package/esm2022/common/create-form-group.mjs +0 -5
  75. package/esm2022/common/data-layout-mode.mjs +0 -5
  76. package/esm2022/common/default-track-by.mjs +0 -13
  77. package/esm2022/common/dom-events.service.mjs +0 -27
  78. package/esm2022/common/error-messages.mjs +0 -64
  79. package/esm2022/common/event-emitter.mjs +0 -39
  80. package/esm2022/common/fetch-data-callback.mjs +0 -5
  81. package/esm2022/common/field-datatype.mjs +0 -5
  82. package/esm2022/common/filter-descriptor-differ.mjs +0 -69
  83. package/esm2022/common/filter-operator.interface.mjs +0 -5
  84. package/esm2022/common/grid-col-size.mjs +0 -5
  85. package/esm2022/common/id.service.mjs +0 -59
  86. package/esm2022/common/pager-settings.mjs +0 -20
  87. package/esm2022/common/preventable-event.mjs +0 -24
  88. package/esm2022/common/provider.service.mjs +0 -42
  89. package/esm2022/common/remove-confirmation.mjs +0 -5
  90. package/esm2022/common/resizable-settings.mjs +0 -9
  91. package/esm2022/common/single-popup.service.mjs +0 -158
  92. package/esm2022/common/size-options.mjs +0 -5
  93. package/esm2022/common/sort.service.mjs +0 -14
  94. package/esm2022/common/toolbar-tool-base.directive.mjs +0 -85
  95. package/esm2022/constants.mjs +0 -16
  96. package/esm2022/data/change-event-args.interface.mjs +0 -5
  97. package/esm2022/data/change-notification.service.mjs +0 -30
  98. package/esm2022/data/data-item.interface.mjs +0 -5
  99. package/esm2022/data/data-mapping.service.mjs +0 -136
  100. package/esm2022/data/data.collection.mjs +0 -87
  101. package/esm2022/data/data.iterators.mjs +0 -221
  102. package/esm2022/data/grid-item.interface.mjs +0 -5
  103. package/esm2022/data/group-footer-item.interface.mjs +0 -5
  104. package/esm2022/data/group-item.interface.mjs +0 -5
  105. package/esm2022/databinding.directive.mjs +0 -233
  106. package/esm2022/directives.mjs +0 -504
  107. package/esm2022/dragdrop/column-reorder-config.mjs +0 -5
  108. package/esm2022/dragdrop/column-reorder-event.mjs +0 -31
  109. package/esm2022/dragdrop/column-reorder.service.mjs +0 -20
  110. package/esm2022/dragdrop/common.mjs +0 -69
  111. package/esm2022/dragdrop/context-types.mjs +0 -5
  112. package/esm2022/dragdrop/drag-and-drop.service.mjs +0 -65
  113. package/esm2022/dragdrop/drag-hint.service.mjs +0 -137
  114. package/esm2022/dragdrop/draggable-column.directive.mjs +0 -137
  115. package/esm2022/dragdrop/drop-cue.service.mjs +0 -46
  116. package/esm2022/dragdrop/drop-target.directive.mjs +0 -71
  117. package/esm2022/editing/add-command-tool.directive.mjs +0 -59
  118. package/esm2022/editing/add-command.directive.mjs +0 -93
  119. package/esm2022/editing/add-event-args.interface.mjs +0 -5
  120. package/esm2022/editing/cancel-command-tool.directive.mjs +0 -64
  121. package/esm2022/editing/cancel-command.directive.mjs +0 -127
  122. package/esm2022/editing/cancel-event-args.interface.mjs +0 -5
  123. package/esm2022/editing/cell-close-event.mjs +0 -38
  124. package/esm2022/editing/edit-command-tool.directive.mjs +0 -60
  125. package/esm2022/editing/edit-command.directive.mjs +0 -124
  126. package/esm2022/editing/edit-event-args.interface.mjs +0 -5
  127. package/esm2022/editing/edit-row-options.interface.mjs +0 -5
  128. package/esm2022/editing/edit-template.directive.mjs +0 -43
  129. package/esm2022/editing/edit.service.mjs +0 -182
  130. package/esm2022/editing/form/dialog-form.component.mjs +0 -102
  131. package/esm2022/editing/form/form-formfield.component.mjs +0 -188
  132. package/esm2022/editing/form/form.component.mjs +0 -169
  133. package/esm2022/editing/form/index.mjs +0 -8
  134. package/esm2022/editing/form/models.mjs +0 -5
  135. package/esm2022/editing/local-data-changes.service.mjs +0 -18
  136. package/esm2022/editing/remove-command-tool.directive.mjs +0 -61
  137. package/esm2022/editing/remove-command.directive.mjs +0 -123
  138. package/esm2022/editing/remove-event-args.interface.mjs +0 -5
  139. package/esm2022/editing/save-command-tool.directive.mjs +0 -65
  140. package/esm2022/editing/save-command.directive.mjs +0 -126
  141. package/esm2022/editing/save-event-args.interface.mjs +0 -5
  142. package/esm2022/editing/toolbar-editing-tool-base.directive.mjs +0 -99
  143. package/esm2022/editing-directives/create-form-group-args.interface.mjs +0 -5
  144. package/esm2022/editing-directives/edit-service.interface.mjs +0 -5
  145. package/esm2022/editing-directives/editing-directive-base.mjs +0 -167
  146. package/esm2022/editing-directives/external-editing.directive.mjs +0 -151
  147. package/esm2022/editing-directives/in-cell-editing.directive.mjs +0 -97
  148. package/esm2022/editing-directives/local-edit.service.mjs +0 -64
  149. package/esm2022/editing-directives/local-row-edit.service.mjs +0 -13
  150. package/esm2022/editing-directives/reactive-editing.directive.mjs +0 -60
  151. package/esm2022/editing-directives/row-editing-directive-base.mjs +0 -53
  152. package/esm2022/editing-directives/template-editing.directive.mjs +0 -72
  153. package/esm2022/editing-directives/utils.mjs +0 -18
  154. package/esm2022/excel/excel-command-tool.directive.mjs +0 -58
  155. package/esm2022/excel/excel-command.directive.mjs +0 -98
  156. package/esm2022/excel/excel-export-event.mjs +0 -18
  157. package/esm2022/excel/excel.component.mjs +0 -223
  158. package/esm2022/excel/excel.module.mjs +0 -45
  159. package/esm2022/excel/excel.service.mjs +0 -29
  160. package/esm2022/filtering/base-filter-cell.component.mjs +0 -174
  161. package/esm2022/filtering/boolean-filter.component.mjs +0 -83
  162. package/esm2022/filtering/cell/autocomplete-filter-cell.component.mjs +0 -114
  163. package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +0 -113
  164. package/esm2022/filtering/cell/date-filter-cell.component.mjs +0 -141
  165. package/esm2022/filtering/cell/filter-cell-component.factory.mjs +0 -19
  166. package/esm2022/filtering/cell/filter-cell-host.directive.mjs +0 -33
  167. package/esm2022/filtering/cell/filter-cell-operators.component.mjs +0 -242
  168. package/esm2022/filtering/cell/filter-cell-template.directive.mjs +0 -46
  169. package/esm2022/filtering/cell/filter-cell-wrapper.component.mjs +0 -74
  170. package/esm2022/filtering/cell/filter-cell.component.mjs +0 -91
  171. package/esm2022/filtering/cell/numeric-filter-cell.component.mjs +0 -155
  172. package/esm2022/filtering/cell/string-filter-cell.component.mjs +0 -127
  173. package/esm2022/filtering/date-filter.component.mjs +0 -172
  174. package/esm2022/filtering/filter-component.interface.mjs +0 -5
  175. package/esm2022/filtering/filter-host.directive.mjs +0 -58
  176. package/esm2022/filtering/filter-input-wrapper.component.mjs +0 -119
  177. package/esm2022/filtering/filter-input.directive.mjs +0 -123
  178. package/esm2022/filtering/filter-row.component.mjs +0 -131
  179. package/esm2022/filtering/filter.service.mjs +0 -44
  180. package/esm2022/filtering/filterable.mjs +0 -16
  181. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +0 -167
  182. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +0 -179
  183. package/esm2022/filtering/menu/date-filter-menu.component.mjs +0 -212
  184. package/esm2022/filtering/menu/filter-menu-component.factory.mjs +0 -19
  185. package/esm2022/filtering/menu/filter-menu-container.component.mjs +0 -418
  186. package/esm2022/filtering/menu/filter-menu-dropdownlist.directive.mjs +0 -44
  187. package/esm2022/filtering/menu/filter-menu-host.directive.mjs +0 -46
  188. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +0 -158
  189. package/esm2022/filtering/menu/filter-menu-template.directive.mjs +0 -48
  190. package/esm2022/filtering/menu/filter-menu.component.mjs +0 -221
  191. package/esm2022/filtering/menu/filter-radio-button.directive.mjs +0 -34
  192. package/esm2022/filtering/menu/menu-tabbing.service.mjs +0 -22
  193. package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +0 -184
  194. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +0 -230
  195. package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +0 -107
  196. package/esm2022/filtering/menu/string-filter-menu.component.mjs +0 -198
  197. package/esm2022/filtering/multicheckbox-filter.component.mjs +0 -324
  198. package/esm2022/filtering/numeric-filter.component.mjs +0 -145
  199. package/esm2022/filtering/operators/after-eq-filter-operator.component.mjs +0 -72
  200. package/esm2022/filtering/operators/after-filter-operator.component.mjs +0 -72
  201. package/esm2022/filtering/operators/before-eq-filter-operator.component.mjs +0 -72
  202. package/esm2022/filtering/operators/before-filter-operator.component.mjs +0 -72
  203. package/esm2022/filtering/operators/contains-filter-operator.component.mjs +0 -63
  204. package/esm2022/filtering/operators/ends-with-filter-operator.component.mjs +0 -63
  205. package/esm2022/filtering/operators/eq-filter-operator.component.mjs +0 -111
  206. package/esm2022/filtering/operators/filter-operator.base.mjs +0 -101
  207. package/esm2022/filtering/operators/gt-filter-operator.component.mjs +0 -63
  208. package/esm2022/filtering/operators/gte-filter-operator.component.mjs +0 -63
  209. package/esm2022/filtering/operators/is-empty-filter-operator.component.mjs +0 -63
  210. package/esm2022/filtering/operators/is-not-empty-filter-operator.component.mjs +0 -63
  211. package/esm2022/filtering/operators/is-not-null-filter-operator.component.mjs +0 -110
  212. package/esm2022/filtering/operators/isnull-filter-operator.component.mjs +0 -110
  213. package/esm2022/filtering/operators/lt-filter-operator.component.mjs +0 -63
  214. package/esm2022/filtering/operators/lte-filter-operator.component.mjs +0 -63
  215. package/esm2022/filtering/operators/neq-filter-operator.component.mjs +0 -110
  216. package/esm2022/filtering/operators/not-contains-filter-operator.component.mjs +0 -63
  217. package/esm2022/filtering/operators/starts-with-filter-operator.component.mjs +0 -63
  218. package/esm2022/filtering/string-filter.component.mjs +0 -90
  219. package/esm2022/grid.component.mjs +0 -4598
  220. package/esm2022/grid.module.mjs +0 -241
  221. package/esm2022/grouping/group-footer-template.directive.mjs +0 -44
  222. package/esm2022/grouping/group-header-column-template.directive.mjs +0 -45
  223. package/esm2022/grouping/group-header-template.directive.mjs +0 -46
  224. package/esm2022/grouping/group-header.component.mjs +0 -351
  225. package/esm2022/grouping/group-info.service.mjs +0 -43
  226. package/esm2022/grouping/group-key.interface.mjs +0 -5
  227. package/esm2022/grouping/group-panel.component.mjs +0 -487
  228. package/esm2022/grouping/group-rows-args.interface.mjs +0 -5
  229. package/esm2022/grouping/group-settings.mjs +0 -5
  230. package/esm2022/grouping/groups.service.mjs +0 -69
  231. package/esm2022/grouping/utils.mjs +0 -14
  232. package/esm2022/highlight/highlight-item.mjs +0 -5
  233. package/esm2022/highlight/highlight.directive.mjs +0 -132
  234. package/esm2022/index.mjs +0 -221
  235. package/esm2022/layout/browser-support.service.mjs +0 -94
  236. package/esm2022/layout/resizable.directive.mjs +0 -83
  237. package/esm2022/layout/resize.service.mjs +0 -29
  238. package/esm2022/layout/responsive.service.mjs +0 -34
  239. package/esm2022/layout/row-sync.mjs +0 -47
  240. package/esm2022/layout/sizing-options.service.mjs +0 -18
  241. package/esm2022/localization/custom-messages.component.mjs +0 -54
  242. package/esm2022/localization/localized-messages.directive.mjs +0 -39
  243. package/esm2022/localization/messages.mjs +0 -895
  244. package/esm2022/navigation/default-focusable-element.mjs +0 -50
  245. package/esm2022/navigation/focus-group.mjs +0 -73
  246. package/esm2022/navigation/focus-root.mjs +0 -50
  247. package/esm2022/navigation/focusable-element.interface.mjs +0 -5
  248. package/esm2022/navigation/focusable.directive.mjs +0 -150
  249. package/esm2022/navigation/grid-focusable-element.mjs +0 -28
  250. package/esm2022/navigation/item-map.mjs +0 -59
  251. package/esm2022/navigation/logical-cell.directive.mjs +0 -224
  252. package/esm2022/navigation/logical-cell.interface.mjs +0 -5
  253. package/esm2022/navigation/logical-row.directive.mjs +0 -131
  254. package/esm2022/navigation/logical-row.interface.mjs +0 -5
  255. package/esm2022/navigation/navigable-settings.mjs +0 -5
  256. package/esm2022/navigation/navigation-cell.interface.mjs +0 -5
  257. package/esm2022/navigation/navigation-change.interface.mjs +0 -5
  258. package/esm2022/navigation/navigation-cursor.mjs +0 -224
  259. package/esm2022/navigation/navigation-metadata.mjs +0 -35
  260. package/esm2022/navigation/navigation-mode.mjs +0 -5
  261. package/esm2022/navigation/navigation-model.mjs +0 -138
  262. package/esm2022/navigation/navigation-row.interface.mjs +0 -5
  263. package/esm2022/navigation/navigation.service.mjs +0 -998
  264. package/esm2022/navigation/toolbar-tool-name.mjs +0 -18
  265. package/esm2022/package-metadata.mjs +0 -16
  266. package/esm2022/pdf/export-element.mjs +0 -135
  267. package/esm2022/pdf/grid-query.mjs +0 -45
  268. package/esm2022/pdf/pdf-command-tool.directive.mjs +0 -60
  269. package/esm2022/pdf/pdf-command.directive.mjs +0 -98
  270. package/esm2022/pdf/pdf-export-event.mjs +0 -16
  271. package/esm2022/pdf/pdf-margin.component.mjs +0 -38
  272. package/esm2022/pdf/pdf-margin.interface.mjs +0 -5
  273. package/esm2022/pdf/pdf-template.directive.mjs +0 -43
  274. package/esm2022/pdf/pdf.component.mjs +0 -331
  275. package/esm2022/pdf/pdf.module.mjs +0 -47
  276. package/esm2022/pdf/pdf.service.mjs +0 -42
  277. package/esm2022/progress-kendo-angular-grid.mjs +0 -8
  278. package/esm2022/rendering/cell-loading.template.directive.mjs +0 -39
  279. package/esm2022/rendering/cell-template.directive.mjs +0 -44
  280. package/esm2022/rendering/cell.component.mjs +0 -717
  281. package/esm2022/rendering/common/cell-context.mjs +0 -13
  282. package/esm2022/rendering/common/col-group.component.mjs +0 -98
  283. package/esm2022/rendering/common/dom-queries.mjs +0 -162
  284. package/esm2022/rendering/common/field-accessor.pipe.mjs +0 -48
  285. package/esm2022/rendering/common/format.pipe.mjs +0 -37
  286. package/esm2022/rendering/common/loading.component.mjs +0 -60
  287. package/esm2022/rendering/common/row-args.mjs +0 -5
  288. package/esm2022/rendering/common/row-class.mjs +0 -5
  289. package/esm2022/rendering/common/spacer.component.mjs +0 -62
  290. package/esm2022/rendering/constants.mjs +0 -20
  291. package/esm2022/rendering/details/detail-collapse-event.mjs +0 -27
  292. package/esm2022/rendering/details/detail-expand-event.mjs +0 -27
  293. package/esm2022/rendering/details/detail-template.directive.mjs +0 -61
  294. package/esm2022/rendering/details/details.service.mjs +0 -56
  295. package/esm2022/rendering/details-expand.directive.mjs +0 -136
  296. package/esm2022/rendering/footer/footer-template.directive.mjs +0 -48
  297. package/esm2022/rendering/footer/footer.component.mjs +0 -266
  298. package/esm2022/rendering/grid-table.directive.mjs +0 -52
  299. package/esm2022/rendering/groups-expand.directive.mjs +0 -149
  300. package/esm2022/rendering/header/header-template.directive.mjs +0 -45
  301. package/esm2022/rendering/header/header.component.mjs +0 -1055
  302. package/esm2022/rendering/list.component.mjs +0 -1176
  303. package/esm2022/rendering/loading-template.directive.mjs +0 -38
  304. package/esm2022/rendering/no-records-template.directive.mjs +0 -38
  305. package/esm2022/rendering/rowspan.service.mjs +0 -24
  306. package/esm2022/rendering/table-body.component.mjs +0 -1250
  307. package/esm2022/rendering/toolbar/toolbar-focusable.directive.mjs +0 -83
  308. package/esm2022/rendering/toolbar/toolbar-navigation.service.mjs +0 -58
  309. package/esm2022/rendering/toolbar/toolbar-position.mjs +0 -5
  310. package/esm2022/rendering/toolbar/toolbar-template.directive.mjs +0 -55
  311. package/esm2022/rendering/toolbar/toolbar.component.mjs +0 -159
  312. package/esm2022/rendering/toolbar/tools/ai-assistant/ai-assistant.component.mjs +0 -272
  313. package/esm2022/rendering/toolbar/tools/ai-assistant/ai-request-response.service.mjs +0 -624
  314. package/esm2022/rendering/toolbar/tools/ai-assistant/ai-tool.directive.mjs +0 -273
  315. package/esm2022/rendering/toolbar/tools/ai-assistant/models.mjs +0 -43
  316. package/esm2022/rendering/toolbar/tools/ai-assistant/utils.mjs +0 -92
  317. package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +0 -238
  318. package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +0 -219
  319. package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +0 -151
  320. package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +0 -223
  321. package/esm2022/rendering/toolbar/tools/group-command-tool.directive.mjs +0 -208
  322. package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +0 -451
  323. package/esm2022/rendering/toolbar/tools/select-all-command-tool.directive.mjs +0 -93
  324. package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +0 -222
  325. package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +0 -245
  326. package/esm2022/row-reordering/drag-handle-template.directive.mjs +0 -44
  327. package/esm2022/row-reordering/drag-hint-template.directive.mjs +0 -42
  328. package/esm2022/row-reordering/row-reorder.service.mjs +0 -280
  329. package/esm2022/row-reordering/types.mjs +0 -5
  330. package/esm2022/row-reordering/utils.mjs +0 -88
  331. package/esm2022/scrolling/content-scroll-event.mjs +0 -5
  332. package/esm2022/scrolling/row-height.service.mjs +0 -55
  333. package/esm2022/scrolling/scroll-bottom-event.mjs +0 -5
  334. package/esm2022/scrolling/scroll-request.service.mjs +0 -24
  335. package/esm2022/scrolling/scroll-sync.service.mjs +0 -80
  336. package/esm2022/scrolling/scroller.service.mjs +0 -254
  337. package/esm2022/scrolling/scrollmode.mjs +0 -5
  338. package/esm2022/scrolling/suspend.service.mjs +0 -17
  339. package/esm2022/selection/cell-selection.service.mjs +0 -349
  340. package/esm2022/selection/marquee.directive.mjs +0 -188
  341. package/esm2022/selection/pair-set.mjs +0 -158
  342. package/esm2022/selection/selectall-checkbox.directive.mjs +0 -143
  343. package/esm2022/selection/selection-checkbox.directive.mjs +0 -132
  344. package/esm2022/selection/selection-default.mjs +0 -208
  345. package/esm2022/selection/selection.directive.mjs +0 -53
  346. package/esm2022/selection/selection.service.mjs +0 -466
  347. package/esm2022/selection/types.mjs +0 -5
  348. package/esm2022/state-management/grid-state.models.mjs +0 -26
  349. package/esm2022/state-management/redo-command-tool.mjs +0 -74
  350. package/esm2022/state-management/undo-command-tool.mjs +0 -74
  351. package/esm2022/state-management/undo-redo.directive.mjs +0 -249
  352. package/esm2022/state-management/undo-redo.service.mjs +0 -21
  353. package/esm2022/state-management/undo-redo.stack.mjs +0 -238
  354. package/esm2022/utils.mjs +0 -216
@@ -1,273 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 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, NgZone, ChangeDetectorRef, Input, Output, EventEmitter } from '@angular/core';
6
- import { RefreshService, ToolBarButtonComponent } from '@progress/kendo-angular-toolbar';
7
- import { isPresent } from '@progress/kendo-angular-common';
8
- import { Subscription } from 'rxjs';
9
- import { sparklesIcon, tableWizardIcon } from '@progress/kendo-svg-icons';
10
- import { ContextService } from '../../../../common/provider.service';
11
- import { filter, take } from 'rxjs/operators';
12
- import { ToolbarToolBase } from '../../../../common/toolbar-tool-base.directive';
13
- import { ToolbarToolName } from '../../../../navigation/toolbar-tool-name';
14
- import { WindowService } from '@progress/kendo-angular-dialog';
15
- import { AiAssistantComponent } from './ai-assistant.component';
16
- import { DEFAULT_AI_REQUEST_OPTIONS } from './models';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@progress/kendo-angular-dialog";
19
- import * as i2 from "@progress/kendo-angular-toolbar";
20
- import * as i3 from "../../../../common/provider.service";
21
- /**
22
- * Represents an AI Assistant tool of the Grid.
23
- * Use this directive on any `kendo-toolbar-button` inside a ToolbarComponent in the Grid.
24
- *
25
- * @example
26
- * ```html-no-run
27
- * <kendo-grid>
28
- * <kendo-toolbar>
29
- * <kendo-toolbar-button kendoGridAIAssistantTool></kendo-toolbar-button>
30
- * </kendo-toolbar>
31
- * </kendo-grid>
32
- * ```
33
- * @remarks
34
- * Applied to: {@link ToolBarButtonComponent}.
35
- */
36
- export class AIAssistantToolbarDirective extends ToolbarToolBase {
37
- windowService;
38
- host;
39
- ctx;
40
- zone;
41
- refresh;
42
- /**
43
- * The URL to which the AI Assistant tool sends the AI request.
44
- * - When you set this property, the AI Assistant tool sends and handles an HTTP request to the provided `requestUrl`. You can handle the `promptRequest` event to modify the request options before the tool sends it.
45
- * - When you do not set this property, the AI Assistant tool does not send an HTTP request. You should handle the `promptRequest` event to send and handle a custom HTTP request.
46
- */
47
- requestUrl;
48
- /**
49
- * Configures the request options that the AI Assistant tool sends with the AI request.
50
- *
51
- * @default { headers: new HttpHeaders({ 'Content-Type': 'application/json' }), role: 'user', method: 'POST', responseType: 'json', withCredentials: false }
52
- */
53
- requestOptions;
54
- /**
55
- * Configures the initial settings for the AI Assistant Window when opened.
56
- */
57
- aiWindowSettings;
58
- /**
59
- * Configures the initial settings for the AI Prompt component that the AI Assistant Window component uses when opened.
60
- */
61
- aiPromptSettings;
62
- /**
63
- * Determines whether to close the AI Assistant Window automatically after a successful request.
64
- * @default true
65
- */
66
- autoClose = true;
67
- /**
68
- * Determines whether to keep the AI Prompt's outputs after closing the AI Assistant Window.
69
- * @default false
70
- */
71
- keepOutputHistory = false;
72
- /**
73
- * Emits an event before the AI Assistant tool sends the AI request.
74
- * - When you provide a `requestUrl`, you can handle the event to modify the request options.
75
- * - When you do not provide a `requestUrl`, you can handle the event to perform an entirely custom request.
76
- */
77
- promptRequest = new EventEmitter();
78
- /**
79
- * Emits an event when the user clicks the cancel button.
80
- */
81
- cancelRequest = new EventEmitter();
82
- /**
83
- * Emits an event when the AI Assistant tool completes the AI request successfully.
84
- * The event contains the response from the AI service and is preventable to allow stopping the default response handling.
85
- */
86
- responseSuccess = new EventEmitter();
87
- /**
88
- * Emits an event when the AI Assistant tool completes the AI request with an error.
89
- * The event contains the error response from the AI service and is preventable to allow stopping the default error handling.
90
- */
91
- responseError = new EventEmitter();
92
- /**
93
- * Emits an event when the AI Assistant tool closes.
94
- */
95
- close = new EventEmitter();
96
- /**
97
- * Emits an event when the AI Assistant tool opens.
98
- */
99
- open = new EventEmitter();
100
- tableWizardIcon = tableWizardIcon;
101
- emitOpenClose = false;
102
- promptOutputs = [];
103
- windowRef;
104
- subs = new Subscription();
105
- defaultAiPromptSettings = {
106
- speechToTextButton: true,
107
- generateButtonSVGIcon: this.tableWizardIcon,
108
- generateButtonIcon: 'table-wizard'
109
- };
110
- constructor(windowService, host, ctx, zone, refresh, cdr) {
111
- super(host, ToolbarToolName.aiAssistant, ctx, zone, cdr);
112
- this.windowService = windowService;
113
- this.host = host;
114
- this.ctx = ctx;
115
- this.zone = zone;
116
- this.refresh = refresh;
117
- this.host.rounded = 'full';
118
- this.host.themeColor = 'primary';
119
- this.host.showText = 'never';
120
- }
121
- ngOnInit() {
122
- this.subs.add(this.host.click.subscribe(() => this.onClick()));
123
- const hasToolbarIcon = isPresent(this.host.toolbarOptions.icon) && this.host.toolbarOptions.icon !== '';
124
- const hasOverflowIcon = isPresent(this.host.overflowOptions.icon) && this.host.overflowOptions.icon !== '';
125
- const hasIcon = hasToolbarIcon && hasOverflowIcon;
126
- const hasSvgIcon = isPresent(this.host.toolbarOptions.svgIcon) && isPresent(this.host.overflowOptions.svgIcon);
127
- if (!hasIcon) {
128
- this.host.icon = 'sparkles';
129
- }
130
- if (!hasSvgIcon) {
131
- this.host.svgIcon = sparklesIcon;
132
- }
133
- this.requestOptions = { ...DEFAULT_AI_REQUEST_OPTIONS, ...this.requestOptions };
134
- }
135
- ngAfterViewInit() {
136
- super.ngAfterViewInit();
137
- this.zone.onStable.pipe(take(1)).subscribe(() => {
138
- this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
139
- this.buttonElement?.setAttribute('aria-expanded', 'false');
140
- const needsTitle = this.host.showText !== 'always' && this.host.showText !== 'toolbar';
141
- if (needsTitle && !this.host.title) {
142
- this.buttonElement?.setAttribute('title', this.ctx.localization.get('aiAssistantToolbarToolText'));
143
- }
144
- });
145
- this.subs.add(this.refresh.onRefresh.pipe(filter((tool) => tool === this.host)).subscribe((tool) => {
146
- if (tool.overflows && this.windowRef) {
147
- this.windowRef.close();
148
- }
149
- }));
150
- }
151
- ngOnDestroy() {
152
- super.ngOnDestroy();
153
- this.subs.unsubscribe();
154
- this.promptOutputs = [];
155
- }
156
- /**
157
- * @hidden
158
- */
159
- onClick() {
160
- this.emitOpenClose = true;
161
- this.toggleWindow();
162
- }
163
- /**
164
- * Toggles the AI Assistant window.
165
- */
166
- toggleWindow() {
167
- if (!this.windowRef) {
168
- this.openWindow();
169
- }
170
- else {
171
- this.closeWindow();
172
- }
173
- }
174
- openWindow() {
175
- if (!this.keepOutputHistory) {
176
- this.promptOutputs = [];
177
- }
178
- const defaultWindowWidth = 437;
179
- const rtl = this.ctx.localization.rtl;
180
- const defaultWindowSettings = {
181
- left: rtl ? this.buttonElement.offsetLeft - (this.aiWindowSettings.width || defaultWindowWidth) : this.buttonElement.offsetLeft + this.buttonElement.offsetWidth,
182
- top: this.buttonElement.offsetTop + this.buttonElement.offsetHeight,
183
- width: defaultWindowWidth,
184
- title: this.ctx.localization.get('aiAssistantWindowTitle'),
185
- cssClass: 'k-grid-assistant-window',
186
- content: AiAssistantComponent,
187
- autoFocusedElement: '.k-input-inner',
188
- appendTo: this.ctx.grid.windowContainer
189
- };
190
- this.aiWindowSettings = {
191
- ...defaultWindowSettings,
192
- ...this.aiWindowSettings
193
- };
194
- this.windowRef = this.windowService.open(this.aiWindowSettings);
195
- this.windowRef.window.instance.messages = {
196
- closeTitle: this.ctx.localization.get('aiAssistantWindowCloseTitle'),
197
- maximizeTitle: this.ctx.localization.get('aiAssistantWindowMaximizeTitle'),
198
- minimizeTitle: this.ctx.localization.get('aiAssistantWindowMinimizeTitle'),
199
- restoreTitle: this.ctx.localization.get('aiAssistantWindowRestoreTitle')
200
- };
201
- const aiPrompt = this.windowRef.content.instance;
202
- aiPrompt.requestUrl = this.requestUrl;
203
- aiPrompt.requestOptions = this.requestOptions;
204
- aiPrompt.aiToolDirective = this;
205
- aiPrompt.disabledGenerateButton = this.aiPromptSettings?.disabledGenerateButton;
206
- aiPrompt.streaming = this.aiPromptSettings?.streaming || false;
207
- aiPrompt.activeView = this.aiPromptSettings?.activeView || 0;
208
- aiPrompt.aiPromptSettings = { ...this.defaultAiPromptSettings, ...this.aiPromptSettings };
209
- if (!aiPrompt.aiPromptSettings.promptOutputs) {
210
- aiPrompt.aiPromptSettings.promptOutputs = this.promptOutputs;
211
- }
212
- if (this.emitOpenClose) {
213
- this.zone.onStable.pipe(take(1)).subscribe(() => {
214
- const event = {
215
- aiWindow: this.windowRef.window.instance,
216
- aiPrompt: this.windowRef.content.instance.aiPrompt
217
- };
218
- this.open.emit(event);
219
- this.emitOpenClose = false;
220
- });
221
- }
222
- this.subs.add(this.windowRef.window.instance.close.subscribe(() => {
223
- this.emitOpenClose = true;
224
- this.closeWindow(true);
225
- }));
226
- this.host.selected = true;
227
- }
228
- closeWindow(focusAnchor = false) {
229
- this.windowRef.close();
230
- if (this.emitOpenClose) {
231
- this.close.emit();
232
- this.emitOpenClose = false;
233
- }
234
- this.windowRef = null;
235
- this.buttonElement?.setAttribute('aria-expanded', 'false');
236
- this.buttonElement?.removeAttribute('aria-controls');
237
- this.host.selected = false;
238
- focusAnchor && this.buttonElement?.focus();
239
- }
240
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AIAssistantToolbarDirective, deps: [{ token: i1.WindowService }, { token: i2.ToolBarButtonComponent }, { token: i3.ContextService }, { token: i0.NgZone }, { token: i2.RefreshService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
241
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: AIAssistantToolbarDirective, isStandalone: true, selector: "[kendoGridAIAssistantTool]", inputs: { requestUrl: "requestUrl", requestOptions: "requestOptions", aiWindowSettings: "aiWindowSettings", aiPromptSettings: "aiPromptSettings", autoClose: "autoClose", keepOutputHistory: "keepOutputHistory" }, outputs: { promptRequest: "promptRequest", cancelRequest: "cancelRequest", responseSuccess: "responseSuccess", responseError: "responseError", close: "close", open: "open" }, usesInheritance: true, ngImport: i0 });
242
- }
243
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AIAssistantToolbarDirective, decorators: [{
244
- type: Directive,
245
- args: [{
246
- selector: '[kendoGridAIAssistantTool]',
247
- standalone: true
248
- }]
249
- }], ctorParameters: () => [{ type: i1.WindowService }, { type: i2.ToolBarButtonComponent }, { type: i3.ContextService }, { type: i0.NgZone }, { type: i2.RefreshService }, { type: i0.ChangeDetectorRef }], propDecorators: { requestUrl: [{
250
- type: Input
251
- }], requestOptions: [{
252
- type: Input
253
- }], aiWindowSettings: [{
254
- type: Input
255
- }], aiPromptSettings: [{
256
- type: Input
257
- }], autoClose: [{
258
- type: Input
259
- }], keepOutputHistory: [{
260
- type: Input
261
- }], promptRequest: [{
262
- type: Output
263
- }], cancelRequest: [{
264
- type: Output
265
- }], responseSuccess: [{
266
- type: Output
267
- }], responseError: [{
268
- type: Output
269
- }], close: [{
270
- type: Output
271
- }], open: [{
272
- type: Output
273
- }] } });
@@ -1,43 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { HttpHeaders } from "@angular/common/http";
6
- import { PreventableEvent } from "@progress/kendo-angular-common";
7
- /**
8
- * @hidden
9
- */
10
- export const DEFAULT_AI_REQUEST_OPTIONS = {
11
- headers: new HttpHeaders({
12
- 'Content-Type': 'application/json'
13
- }),
14
- role: 'user',
15
- method: 'POST',
16
- responseType: 'json'
17
- };
18
- /**
19
- * Represents the event data when the AI Assistant request completes successfully.
20
- */
21
- export class GridAIAssistantResponseSuccessEvent extends PreventableEvent {
22
- /**
23
- * The HTTP response from the AI service.
24
- */
25
- response;
26
- constructor(response) {
27
- super();
28
- this.response = response;
29
- }
30
- }
31
- /**
32
- * Represents the event data when the AI Assistant request completes with an error.
33
- */
34
- export class GridAIAssistantResponseErrorEvent extends PreventableEvent {
35
- /**
36
- * The HTTP error response from the AI service.
37
- */
38
- error;
39
- constructor(error) {
40
- super();
41
- this.error = error;
42
- }
43
- }
@@ -1,92 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { filterBy } from "@progress/kendo-data-query";
6
- import { parseDate } from "@progress/kendo-angular-intl";
7
- /**
8
- * @hidden
9
- * Converts date strings in a filter to Date objects.
10
- */
11
- export const convertDateStringsInFilter = (filter) => {
12
- if (!filter) {
13
- return filter;
14
- }
15
- if (filter.filters && Array.isArray(filter.filters)) {
16
- return {
17
- ...filter,
18
- filters: filter.filters.map(f => convertDateStringsInFilter(f))
19
- };
20
- }
21
- if (filter.field && filter.value !== undefined) {
22
- if (typeof filter.value === 'string' && isDateOperator(filter.operator)) {
23
- const date = parseDate(filter.value);
24
- return {
25
- ...filter,
26
- value: date || filter.value
27
- };
28
- }
29
- }
30
- return filter;
31
- };
32
- /**
33
- * @hidden
34
- */
35
- export const isDateOperator = (operator) => {
36
- const dateOperators = [
37
- 'eq', 'neq', 'lt', 'lte', 'gt', 'gte'
38
- ];
39
- return dateOperators.includes(operator);
40
- };
41
- /**
42
- * @hidden
43
- * Processes cell highlights for a specific filter and item.
44
- */
45
- const processCellHighlights = (filter, rowIndex, columns, highlightItems) => {
46
- Object.keys(filter.cells).forEach((columnField) => {
47
- const actualColumnIndex = Array.from(columns).findIndex((col) => col.field === columnField);
48
- if (actualColumnIndex !== -1) {
49
- highlightItems.push({
50
- itemKey: rowIndex,
51
- columnKey: actualColumnIndex,
52
- });
53
- }
54
- });
55
- };
56
- /**
57
- * @hidden
58
- * Processes filtered results and adds highlight items.
59
- */
60
- const processFilteredResults = (filteredResults, data, filter, columns, highlightItems) => {
61
- filteredResults?.forEach((item) => {
62
- const rowIndex = data.findIndex((dataItem) => dataItem === item);
63
- if (filter.cells && Object.keys(filter.cells).length > 0) {
64
- processCellHighlights(filter, rowIndex, columns, highlightItems);
65
- }
66
- else {
67
- highlightItems.push({
68
- itemKey: rowIndex,
69
- });
70
- }
71
- });
72
- };
73
- /**
74
- * @hidden
75
- * Highlights items in a grid based on the provided filters and columns.
76
- * @param data - The data to be highlighted.
77
- * @param filters - The composite highlight descriptors containing the filters and logic.
78
- * @param columns - The columns of the grid.
79
- * @returns An array of HighlightItem objects representing the highlighted items.
80
- */
81
- export const highlightBy = (data, filters, columns) => {
82
- const highlightItems = [];
83
- filters.forEach((filter) => {
84
- const processedFilters = filter.filters.map((filter) => convertDateStringsInFilter(filter));
85
- const filteredResults = filterBy(data, {
86
- logic: filter.logic || "and",
87
- filters: processedFilters,
88
- });
89
- processFilteredResults(filteredResults, data, filter, columns, highlightItems);
90
- });
91
- return highlightItems;
92
- };
@@ -1,238 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 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, NgZone, Input, Renderer2, ChangeDetectorRef } from '@angular/core';
6
- import { PopupService } from '@progress/kendo-angular-popup';
7
- import { RefreshService, ToolBarButtonComponent } from '@progress/kendo-angular-toolbar';
8
- import { closest, isPresent } from '@progress/kendo-angular-common';
9
- import { Subscription } from 'rxjs';
10
- import { columnsIcon } from '@progress/kendo-svg-icons';
11
- import { ContextService } from '../../../common/provider.service';
12
- import { filter, take } from 'rxjs/operators';
13
- import { AdaptiveGridService } from '../../../common/adaptiveness.service';
14
- import { ColumnInfoService } from '../../../common/column-info.service';
15
- import { ToolbarToolBase } from '../../../common/toolbar-tool-base.directive';
16
- import { ToolbarToolName } from '../../../navigation/toolbar-tool-name';
17
- import { ColumnChooserContentComponent } from '../../../column-menu/column-chooser-content.component';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "@progress/kendo-angular-popup";
20
- import * as i2 from "@progress/kendo-angular-toolbar";
21
- import * as i3 from "../../../common/provider.service";
22
- import * as i4 from "../../../common/adaptiveness.service";
23
- import * as i5 from "../../../common/column-info.service";
24
- let incrementingId = 0;
25
- /**
26
- * Represents a column chooser toolbar tool of the Grid.
27
- * Use this directive on any `kendo-toolbar-button` inside a ToolbarComponent in the Grid.
28
- *
29
- * @example
30
- * ```html-no-run
31
- * <kendo-grid>
32
- * <kendo-toolbar>
33
- * <kendo-toolbar-button kendoGridColumnChooserTool></kendo-toolbar-button>
34
- * </kendo-toolbar>
35
- * </kendo-grid>
36
- * ```
37
- * @remarks
38
- * Applied to: {@link ToolBarButtonComponent}.
39
- */
40
- export class ColumnChooserToolbarDirective extends ToolbarToolBase {
41
- renderer;
42
- popupSerivce;
43
- host;
44
- ctx;
45
- zone;
46
- refresh;
47
- adaptiveGridService;
48
- columnInfoService;
49
- /**
50
- * When `true`, changes to column visibility apply immediately.
51
- *
52
- * @default false
53
- */
54
- autoSync = false;
55
- /**
56
- * When `true`, enables the hiding of all columns.
57
- *
58
- * @default true
59
- */
60
- allowHideAll = true;
61
- /**
62
- * When `true`, enables the columns' filtering.
63
- *
64
- * @default true
65
- */
66
- filterable = true;
67
- /**
68
- * When `true`, displays a select all checkbox.
69
- *
70
- * @default true
71
- */
72
- showSelectAll = true;
73
- /**
74
- * @hidden
75
- */
76
- get columns() {
77
- return this.columnInfoService.leafNamedColumns;
78
- }
79
- popupRef;
80
- subs = new Subscription();
81
- actionSheetCloseSub;
82
- nextId = incrementingId++;
83
- constructor(renderer, popupSerivce, host, ctx, zone, refresh, adaptiveGridService, columnInfoService, cdr) {
84
- super(host, ToolbarToolName.columns, ctx, zone, cdr);
85
- this.renderer = renderer;
86
- this.popupSerivce = popupSerivce;
87
- this.host = host;
88
- this.ctx = ctx;
89
- this.zone = zone;
90
- this.refresh = refresh;
91
- this.adaptiveGridService = adaptiveGridService;
92
- this.columnInfoService = columnInfoService;
93
- }
94
- ngOnInit() {
95
- this.subs.add(this.host.click.subscribe(e => this.onClick(e)));
96
- const hasToolbarIcon = isPresent(this.host.toolbarOptions.icon) && this.host.toolbarOptions.icon !== '';
97
- const hasOverflowIcon = isPresent(this.host.overflowOptions.icon) && this.host.overflowOptions.icon !== '';
98
- const hasIcon = hasToolbarIcon && hasOverflowIcon;
99
- const hasSvgIcon = isPresent(this.host.toolbarOptions.svgIcon) && isPresent(this.host.overflowOptions.svgIcon);
100
- if (!hasIcon) {
101
- this.host.icon = 'columns';
102
- }
103
- if (!hasSvgIcon) {
104
- this.host.svgIcon = columnsIcon;
105
- }
106
- }
107
- ngAfterViewInit() {
108
- super.ngAfterViewInit();
109
- this.zone.onStable.pipe(take(1)).subscribe(() => {
110
- this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
111
- this.buttonElement?.setAttribute('aria-expanded', 'false');
112
- this.buttonElement?.setAttribute('title', this.ctx.localization.get('columns'));
113
- });
114
- this.subs.add(this.refresh.onRefresh.pipe(filter((tool) => tool === this.host)).subscribe((tool) => {
115
- if (tool.overflows && this.popupRef) {
116
- this.popupRef.close();
117
- }
118
- }));
119
- }
120
- ngOnDestroy() {
121
- super.ngOnDestroy();
122
- this.subs.unsubscribe();
123
- if (this.actionSheetCloseSub) {
124
- this.actionSheetCloseSub.unsubscribe();
125
- this.actionSheetCloseSub = null;
126
- }
127
- }
128
- /**
129
- * @hidden
130
- */
131
- onClick(e) {
132
- e.preventDefault();
133
- if (this.ctx.grid.adaptiveMode === 'auto' && this.adaptiveGridService.windowSize !== 'large') {
134
- if (!this.ctx.grid.isActionSheetExpanded) {
135
- this.adaptiveGridService.viewType = 'columnChooserToolbarTool';
136
- this.adaptiveGridService.columns = this.columns;
137
- this.ctx.grid.adaptiveRenderer.actionSheet.toggle(true);
138
- this.host.selected = true;
139
- this.actionSheetCloseSub = this.ctx.grid.adaptiveRenderer.actionSheet.collapse.subscribe(() => this.host.selected = false);
140
- }
141
- }
142
- else {
143
- this.togglePopup();
144
- }
145
- }
146
- togglePopup() {
147
- if (!this.popupRef) {
148
- const direction = this.ctx.localization.rtl ? 'right' : 'left';
149
- this.popupRef = this.popupSerivce.open({
150
- anchor: this.buttonElement,
151
- content: ColumnChooserContentComponent,
152
- positionMode: 'absolute',
153
- anchorAlign: { vertical: 'bottom', horizontal: direction },
154
- popupAlign: { vertical: 'top', horizontal: direction }
155
- });
156
- this.adaptiveGridService.popupRef = this.popupRef;
157
- const popupElement = this.popupRef.popupElement;
158
- const popupId = `k-column-chooser-tool-${this.nextId}-popup`;
159
- const popupAriaElement = popupElement.querySelector('.k-popup');
160
- this.zone.runOutsideAngular(() => {
161
- this.renderer.listen(popupAriaElement, 'keydown', (e) => {
162
- if (e.key === 'Escape') {
163
- this.closePopup(true);
164
- }
165
- });
166
- });
167
- this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
168
- this.renderer.setAttribute(popupAriaElement, 'id', popupId);
169
- this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
170
- this.buttonElement?.setAttribute('aria-expanded', 'true');
171
- this.buttonElement?.setAttribute('aria-controls', popupId);
172
- this.host.selected = true;
173
- const columnChooserContent = this.popupRef.content.instance;
174
- columnChooserContent.columnInfoService = this.columnInfoService;
175
- columnChooserContent.ctx = this.ctx;
176
- columnChooserContent.showSelectAll = this.showSelectAll;
177
- columnChooserContent.filterable = this.filterable;
178
- columnChooserContent.isLast = true;
179
- columnChooserContent.autoSync = this.autoSync;
180
- columnChooserContent.allowHideAll = this.allowHideAll;
181
- columnChooserContent.applyText = this.ctx.localization.get('columnsApply');
182
- columnChooserContent.resetText = this.ctx.localization.get('columnsReset');
183
- columnChooserContent.columns = this.columns;
184
- columnChooserContent.filteredColumns = this.columnInfoService?.leafNamedColumns.filter(column => {
185
- if (column.includeInChooser !== false) {
186
- column.initiallyChecked = column.currentlyChecked = !column.hidden;
187
- return true;
188
- }
189
- return false;
190
- });
191
- this.subs.add(this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
192
- this.closePopup(true);
193
- }));
194
- this.subs.add(columnChooserContent.columnList.apply.subscribe((changed) => {
195
- if (changed.length) {
196
- this.cdr.markForCheck();
197
- this.columnInfoService.changeVisibility(changed);
198
- }
199
- this.closePopup();
200
- }));
201
- this.zone.runOutsideAngular(() => this.renderer.listen('document', 'click', ({ target }) => {
202
- if (this.popupRef && !closest(target, node => node === this.popupRef.popupElement || node === this.buttonElement)) {
203
- this.zone.run(() => {
204
- this.closePopup();
205
- });
206
- }
207
- }));
208
- }
209
- else {
210
- this.closePopup();
211
- }
212
- }
213
- closePopup(focusAnchor = false) {
214
- this.popupRef.close();
215
- this.popupRef = null;
216
- this.buttonElement?.setAttribute('aria-expanded', 'false');
217
- this.buttonElement?.removeAttribute('aria-controls');
218
- this.host.selected = false;
219
- focusAnchor && this.buttonElement?.focus({ preventScroll: true });
220
- }
221
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnChooserToolbarDirective, deps: [{ token: i0.Renderer2 }, { token: i1.PopupService }, { token: i2.ToolBarButtonComponent }, { token: i3.ContextService }, { token: i0.NgZone }, { token: i2.RefreshService }, { token: i4.AdaptiveGridService }, { token: i5.ColumnInfoService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
222
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ColumnChooserToolbarDirective, isStandalone: true, selector: "[kendoGridColumnChooserTool]", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll", filterable: "filterable", showSelectAll: "showSelectAll" }, usesInheritance: true, ngImport: i0 });
223
- }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnChooserToolbarDirective, decorators: [{
225
- type: Directive,
226
- args: [{
227
- selector: '[kendoGridColumnChooserTool]',
228
- standalone: true
229
- }]
230
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i1.PopupService }, { type: i2.ToolBarButtonComponent }, { type: i3.ContextService }, { type: i0.NgZone }, { type: i2.RefreshService }, { type: i4.AdaptiveGridService }, { type: i5.ColumnInfoService }, { type: i0.ChangeDetectorRef }], propDecorators: { autoSync: [{
231
- type: Input
232
- }], allowHideAll: [{
233
- type: Input
234
- }], filterable: [{
235
- type: Input
236
- }], showSelectAll: [{
237
- type: Input
238
- }] } });