@progress/kendo-angular-grid 21.4.1 → 22.0.0-develop.1

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,514 +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 { Component, Input, Output, EventEmitter, ContentChild, NgZone, ElementRef } from '@angular/core';
6
- import { trigger, transition, style, animate, state } from '@angular/animations';
7
- import { ColumnMenuItemContentTemplateDirective } from './column-menu-item-content-template.directive';
8
- import { chevronDownIcon, chevronRightIcon, chevronUpIcon, filterIcon, sortAscSmallIcon, sortDescSmallIcon } from '@progress/kendo-svg-icons';
9
- import { guid } from '@progress/kendo-angular-common';
10
- import { ColumnMenuService } from './column-menu.service';
11
- import { NgTemplateOutlet } from '@angular/common';
12
- import { IconWrapperComponent } from '@progress/kendo-angular-icons';
13
- import { take } from 'rxjs/operators';
14
- import { ContextService } from '../common/provider.service';
15
- import { filtersByField } from '../filtering/base-filter-cell.component';
16
- import { AdaptiveGridService } from '../common/adaptiveness.service';
17
- import { ColumnComponent } from '../columns/column.component';
18
- import { normalize } from '../columns/sort-settings';
19
- import { isPresent } from '../utils';
20
- import * as i0 from "@angular/core";
21
- import * as i1 from "../common/provider.service";
22
- import * as i2 from "../common/adaptiveness.service";
23
- /**
24
- * Represents an item that you can place inside a
25
- * [`ColumnMenuTemplate`]({% slug api_grid_columnmenutemplatedirective %}) directive.
26
- *
27
- * @example
28
- * ```html
29
- * <kendo-grid [columnMenu]="true" ...>
30
- * <ng-template kendoGridColumnMenuTemplate let-service="service" let-column="column">
31
- * <kendo-grid-columnmenu-item text="Fit column"></kendo-grid-columnmenu-item>
32
- * </ng-template>
33
- * </kendo-grid>
34
- * ```
35
- * @example
36
- * ```html
37
- * <kendo-grid-column field="ProductName">
38
- * <ng-template kendoGridColumnMenuTemplate let-service="service">
39
- * kendo-grid-columnmenu-item text="Fit column"></kendo-grid-columnmenu-item>
40
- * </ng-template>
41
- * </kendo-grid-column>
42
- * ```
43
- */
44
- export class ColumnMenuItemComponent {
45
- ngZone;
46
- ctx;
47
- adaptiveGridService;
48
- element;
49
- /**
50
- * @hidden
51
- */
52
- sortAscSmallIcon = sortAscSmallIcon;
53
- /**
54
- * @hidden
55
- */
56
- sortDescSmallIcon = sortDescSmallIcon;
57
- /**
58
- * Fires when the item is clicked.
59
- */
60
- itemClick = new EventEmitter();
61
- /**
62
- * Fires when the content expands.
63
- */
64
- expand = new EventEmitter();
65
- /**
66
- * Fires when the content collapses.
67
- */
68
- collapse = new EventEmitter();
69
- /**
70
- * Specifies the name of the font icon to render within the item.
71
- */
72
- icon;
73
- /**
74
- * Specifies the SVG icon to render within the item.
75
- */
76
- svgIcon;
77
- /**
78
- * @hidden
79
- */
80
- indicatorIcon;
81
- /**
82
- * Specifies the item text.
83
- */
84
- text;
85
- /**
86
- * Specifies if the item is selected.
87
- */
88
- selected;
89
- /**
90
- * Specifies if the item is disabled.
91
- */
92
- disabled;
93
- /**
94
- * Specifies if the item is expanded.
95
- */
96
- expanded;
97
- /**
98
- * @hidden
99
- */
100
- focused;
101
- /**
102
- * Represents the [ColumnMenuService]({% slug api_grid_columnmenuservice %}) class.
103
- * Required to include the item in the column menu keyboard navigation sequence.
104
- */
105
- service;
106
- /**
107
- * @hidden
108
- */
109
- column;
110
- contentTemplate;
111
- contentState = 'collapsed';
112
- contentId;
113
- chevronUpIcon = chevronUpIcon;
114
- chevronDownIcon = chevronDownIcon;
115
- chevronRightIcon = chevronRightIcon;
116
- filterIcon = filterIcon;
117
- /**
118
- * @hidden
119
- */
120
- get hasFilters() {
121
- return filtersByField(this.ctx.grid.filter, this.column.field).length > 0;
122
- }
123
- get expandedIcon() {
124
- if (this.ctx.grid.isActionSheetExpanded) {
125
- return 'arrow-chevron-right';
126
- }
127
- return this.expanded ? 'arrow-chevron-up' : 'arrow-chevron-down';
128
- }
129
- get expandedSvgIcon() {
130
- if (this.ctx.grid.isActionSheetExpanded) {
131
- return this.chevronRightIcon;
132
- }
133
- return this.expanded ? this.chevronUpIcon : this.chevronDownIcon;
134
- }
135
- constructor(ngZone, ctx, adaptiveGridService, element) {
136
- this.ngZone = ngZone;
137
- this.ctx = ctx;
138
- this.adaptiveGridService = adaptiveGridService;
139
- this.element = element;
140
- }
141
- ngAfterViewInit() {
142
- this.ngZone.onStable.pipe(take(1)).subscribe(() => {
143
- this.contentTemplate && (this.contentId = `k-${guid()}`);
144
- });
145
- }
146
- ngOnChanges(changes) {
147
- if (changes.expanded) {
148
- this.updateContentState();
149
- }
150
- }
151
- /**
152
- * @hidden
153
- */
154
- sortDescriptor(field) {
155
- return this.ctx.grid.sort.find(item => item.field === field) || { field };
156
- }
157
- /**
158
- * @hidden
159
- */
160
- showSortNumbering(column) {
161
- const { showIndexes } = normalize(this.ctx.grid.sortable);
162
- return showIndexes
163
- && this.ctx.grid.sort
164
- && this.ctx.grid.sort.filter(({ dir }) => isPresent(dir)).length > 1
165
- && this.sortOrder(column.field) > 0;
166
- }
167
- /**
168
- * @hidden
169
- */
170
- sortOrder(field) {
171
- return this.ctx.grid.sort
172
- .filter(({ dir }) => isPresent(dir))
173
- .findIndex(x => x.field === field)
174
- + 1;
175
- }
176
- /**
177
- * @hidden
178
- */
179
- onClick(e) {
180
- this.itemClick.emit(e);
181
- if (this.contentTemplate) {
182
- if (!this.ctx.grid.isActionSheetExpanded) {
183
- this.expanded = !this.expanded;
184
- this.updateContentState();
185
- }
186
- if (this.expanded) {
187
- this.expand.emit();
188
- }
189
- else {
190
- this.collapse.emit();
191
- }
192
- }
193
- }
194
- updateContentState() {
195
- this.contentState = this.expanded ? 'expanded' : 'collapsed';
196
- }
197
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuItemComponent, deps: [{ token: i0.NgZone }, { token: i1.ContextService }, { token: i2.AdaptiveGridService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
198
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", indicatorIcon: "indicatorIcon", text: "text", selected: "selected", disabled: "disabled", expanded: "expanded", focused: "focused", service: "service", column: "column" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ColumnMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
199
- @if (contentTemplate) {
200
- <div class="k-expander">
201
- <ng-container [ngTemplateOutlet]="content"></ng-container>
202
- </div>
203
- } @else {
204
- <div
205
- class="k-columnmenu-item"
206
- (click)="onClick($event)"
207
- (keydown.enter)="onClick($event)"
208
- [class.k-selected]="selected"
209
- [class.k-disabled]="disabled"
210
- [class.k-focus]="focused"
211
- role="button"
212
- [attr.aria-expanded]="expanded"
213
- [attr.aria-controls]="expanded ? contentId : undefined">
214
- @if (icon || svgIcon) {
215
- <kendo-icon-wrapper
216
- [name]="icon"
217
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
218
- }
219
- {{ text }}
220
- @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)) {
221
- <span
222
- class="k-columnmenu-indicators">
223
- <kendo-icon-wrapper
224
- [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
225
- [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
226
- </kendo-icon-wrapper>
227
- @if (showSortNumbering(column)) {
228
- <span class="k-sort-index">{{sortOrder(column.field)}}</span>
229
- }
230
- </span>
231
- }
232
- @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon) {
233
- <kendo-icon-wrapper
234
- class="k-columnmenu-indicators"
235
- name="filter"
236
- [svgIcon]="filterIcon">
237
- </kendo-icon-wrapper>
238
- }
239
- @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
240
- <span class="k-spacer"></span>
241
- }
242
- @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
243
- <span class="k-expander-indicator">
244
- <kendo-icon-wrapper
245
- [name]="expandedIcon"
246
- [svgIcon]="expandedSvgIcon">
247
- </kendo-icon-wrapper>
248
- </span>
249
- }
250
- </div>
251
- @if (contentTemplate) {
252
- <div [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
253
- <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
254
- </ng-container>
255
- </div>
256
- }
257
- }
258
-
259
- <ng-template #content>
260
- <div
261
- class="k-columnmenu-item"
262
- (click)="onClick($event)"
263
- (keydown.enter)="onClick($event)"
264
- [class.k-selected]="selected"
265
- [class.k-disabled]="disabled"
266
- [class.k-focus]="focused"
267
- role="button"
268
- [attr.aria-expanded]="expanded"
269
- [attr.aria-controls]="expanded ? contentId : undefined">
270
- @if (icon || svgIcon) {
271
- <kendo-icon-wrapper
272
- [name]="icon"
273
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
274
- }
275
- {{ text }}
276
- @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)) {
277
- <span
278
- class="k-columnmenu-indicators">
279
- <kendo-icon-wrapper
280
- [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
281
- [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
282
- </kendo-icon-wrapper>
283
- @if (showSortNumbering(column)) {
284
- <span class="k-sort-index">{{sortOrder(column.field)}}</span>
285
- }
286
- </span>
287
- }
288
- @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon) {
289
- <kendo-icon-wrapper
290
- class="k-columnmenu-indicators"
291
- name="filter"
292
- [svgIcon]="filterIcon">
293
- </kendo-icon-wrapper>
294
- }
295
- @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
296
- <span class="k-spacer"></span>
297
- }
298
- @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
299
- <span class="k-expander-indicator">
300
- <kendo-icon-wrapper
301
- [name]="expandedIcon"
302
- [svgIcon]="expandedSvgIcon">
303
- </kendo-icon-wrapper>
304
- </span>
305
- }
306
- </div>
307
- @if (contentTemplate) {
308
- <div [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
309
- <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
310
- </ng-container>
311
- </div>
312
- }
313
- </ng-template>
314
- `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
315
- trigger('state', [
316
- state('collapsed', style({ display: 'none' })),
317
- state('expanded', style({ display: 'block' })),
318
- transition('collapsed => expanded', [
319
- style({
320
- height: '0px',
321
- display: 'block'
322
- }),
323
- animate('100ms ease-in', style({
324
- height: '*'
325
- }))
326
- ]),
327
- transition('expanded => collapsed', [
328
- style({
329
- height: '*'
330
- }),
331
- animate('100ms ease-in', style({
332
- height: '0px'
333
- }))
334
- ])
335
- ])
336
- ] });
337
- }
338
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuItemComponent, decorators: [{
339
- type: Component,
340
- args: [{
341
- animations: [
342
- trigger('state', [
343
- state('collapsed', style({ display: 'none' })),
344
- state('expanded', style({ display: 'block' })),
345
- transition('collapsed => expanded', [
346
- style({
347
- height: '0px',
348
- display: 'block'
349
- }),
350
- animate('100ms ease-in', style({
351
- height: '*'
352
- }))
353
- ]),
354
- transition('expanded => collapsed', [
355
- style({
356
- height: '*'
357
- }),
358
- animate('100ms ease-in', style({
359
- height: '0px'
360
- }))
361
- ])
362
- ])
363
- ],
364
- selector: 'kendo-grid-columnmenu-item',
365
- template: `
366
- @if (contentTemplate) {
367
- <div class="k-expander">
368
- <ng-container [ngTemplateOutlet]="content"></ng-container>
369
- </div>
370
- } @else {
371
- <div
372
- class="k-columnmenu-item"
373
- (click)="onClick($event)"
374
- (keydown.enter)="onClick($event)"
375
- [class.k-selected]="selected"
376
- [class.k-disabled]="disabled"
377
- [class.k-focus]="focused"
378
- role="button"
379
- [attr.aria-expanded]="expanded"
380
- [attr.aria-controls]="expanded ? contentId : undefined">
381
- @if (icon || svgIcon) {
382
- <kendo-icon-wrapper
383
- [name]="icon"
384
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
385
- }
386
- {{ text }}
387
- @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)) {
388
- <span
389
- class="k-columnmenu-indicators">
390
- <kendo-icon-wrapper
391
- [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
392
- [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
393
- </kendo-icon-wrapper>
394
- @if (showSortNumbering(column)) {
395
- <span class="k-sort-index">{{sortOrder(column.field)}}</span>
396
- }
397
- </span>
398
- }
399
- @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon) {
400
- <kendo-icon-wrapper
401
- class="k-columnmenu-indicators"
402
- name="filter"
403
- [svgIcon]="filterIcon">
404
- </kendo-icon-wrapper>
405
- }
406
- @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
407
- <span class="k-spacer"></span>
408
- }
409
- @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
410
- <span class="k-expander-indicator">
411
- <kendo-icon-wrapper
412
- [name]="expandedIcon"
413
- [svgIcon]="expandedSvgIcon">
414
- </kendo-icon-wrapper>
415
- </span>
416
- }
417
- </div>
418
- @if (contentTemplate) {
419
- <div [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
420
- <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
421
- </ng-container>
422
- </div>
423
- }
424
- }
425
-
426
- <ng-template #content>
427
- <div
428
- class="k-columnmenu-item"
429
- (click)="onClick($event)"
430
- (keydown.enter)="onClick($event)"
431
- [class.k-selected]="selected"
432
- [class.k-disabled]="disabled"
433
- [class.k-focus]="focused"
434
- role="button"
435
- [attr.aria-expanded]="expanded"
436
- [attr.aria-controls]="expanded ? contentId : undefined">
437
- @if (icon || svgIcon) {
438
- <kendo-icon-wrapper
439
- [name]="icon"
440
- [svgIcon]="svgIcon"></kendo-icon-wrapper>
441
- }
442
- {{ text }}
443
- @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir)) {
444
- <span
445
- class="k-columnmenu-indicators">
446
- <kendo-icon-wrapper
447
- [name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
448
- [svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
449
- </kendo-icon-wrapper>
450
- @if (showSortNumbering(column)) {
451
- <span class="k-sort-index">{{sortOrder(column.field)}}</span>
452
- }
453
- </span>
454
- }
455
- @if ((ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'filterToolbarTool' && hasFilters) || indicatorIcon) {
456
- <kendo-icon-wrapper
457
- class="k-columnmenu-indicators"
458
- name="filter"
459
- [svgIcon]="filterIcon">
460
- </kendo-icon-wrapper>
461
- }
462
- @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
463
- <span class="k-spacer"></span>
464
- }
465
- @if (contentTemplate && adaptiveGridService.viewType !== 'sortToolbarTool') {
466
- <span class="k-expander-indicator">
467
- <kendo-icon-wrapper
468
- [name]="expandedIcon"
469
- [svgIcon]="expandedSvgIcon">
470
- </kendo-icon-wrapper>
471
- </span>
472
- }
473
- </div>
474
- @if (contentTemplate) {
475
- <div [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
476
- <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
477
- </ng-container>
478
- </div>
479
- }
480
- </ng-template>
481
- `,
482
- standalone: true,
483
- imports: [IconWrapperComponent, NgTemplateOutlet]
484
- }]
485
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.ContextService }, { type: i2.AdaptiveGridService }, { type: i0.ElementRef }], propDecorators: { itemClick: [{
486
- type: Output
487
- }], expand: [{
488
- type: Output
489
- }], collapse: [{
490
- type: Output
491
- }], icon: [{
492
- type: Input
493
- }], svgIcon: [{
494
- type: Input
495
- }], indicatorIcon: [{
496
- type: Input
497
- }], text: [{
498
- type: Input
499
- }], selected: [{
500
- type: Input
501
- }], disabled: [{
502
- type: Input
503
- }], expanded: [{
504
- type: Input
505
- }], focused: [{
506
- type: Input
507
- }], service: [{
508
- type: Input
509
- }], column: [{
510
- type: Input
511
- }], contentTemplate: [{
512
- type: ContentChild,
513
- args: [ColumnMenuItemContentTemplateDirective]
514
- }] } });
@@ -1,164 +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 { ChangeDetectorRef, Directive, ElementRef, Input, NgZone, Renderer2 } from '@angular/core';
6
- import { Subscription } from 'rxjs';
7
- import { Keys } from '@progress/kendo-angular-common';
8
- import { ColumnMenuPositionComponent } from './column-menu-position.component';
9
- import { ColumnMenuChooserComponent } from './column-menu-chooser.component';
10
- import { ColumnMenuFilterComponent } from './column-menu-filter.component';
11
- import { ContextService } from '../common/provider.service';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "../common/provider.service";
14
- /**
15
- * Represents a directive that manages keyboard navigation for a column menu item ([see example](slug:columnmenu_grid#customizing-the-content)).
16
- *
17
- * @example
18
- * ```html
19
- * <ng-template kendoGridColumnMenuTemplate let-service="service" let-column="column">
20
- * <kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" [service]="service"></kendo-grid-columnmenu-sort>
21
- * </ng-template>
22
- * ```
23
- * @remarks
24
- * Applied to:
25
- * {@link ColumnMenuChooserComponent},
26
- * {@link ColumnMenuFilterComponent},
27
- * {@link ColumnMenuSortComponent},
28
- * {@link ColumnMenuLockComponent},
29
- * {@link ColumnMenuStickyComponent},
30
- * {@link ColumnMenuComponent},
31
- * {@link ColumnMenuItemComponent},
32
- * {@link ColumnMenuPositionComponent},
33
- * {@link ColumnMenuAutoSizeAllColumnsComponent},
34
- * {@link ColumnMenuAutoSizeColumnComponent}.
35
- */
36
- export class ColumnMenuItemDirective {
37
- hostElement;
38
- renderer;
39
- ngZone;
40
- cdr;
41
- ctx;
42
- /**
43
- * Reference to the Grid column menu item. Required when you want to include the item in the built-in keyboard navigation.
44
- */
45
- menuItemComponent;
46
- /**
47
- * Holds the first focusable element.
48
- */
49
- firstFocusableElement;
50
- /**
51
- * Holds the last focusable element.
52
- */
53
- lastFocusableElement;
54
- /**
55
- * @hidden
56
- */
57
- set isFirst(value) {
58
- if (value) {
59
- const focusableElement = this.columnMenuItems[0];
60
- this.menuItemComponent.service.menuTabbingService.firstFocusable = focusableElement;
61
- this.ngZone.runOutsideAngular(() => {
62
- const firstItemKeydownSub = this.renderer.listen(focusableElement, 'keydown', this.onTab);
63
- this.subs.add(firstItemKeydownSub);
64
- });
65
- }
66
- this._isFirst = value;
67
- }
68
- /**
69
- * @hidden
70
- */
71
- get isFirst() {
72
- return this._isFirst;
73
- }
74
- /**
75
- * @hidden
76
- */
77
- set isLast(value) {
78
- if (!this.columnMenuItems) {
79
- return;
80
- }
81
- if (value) {
82
- const lastFocusableElement = this.getLastColumnMenuItem();
83
- this.menuItemComponent.service.menuTabbingService.lastFocusable = lastFocusableElement;
84
- this.ngZone.runOutsideAngular(() => {
85
- const lastItemKeydownSub = this.renderer.listen(lastFocusableElement, 'keydown', this.onTab);
86
- this.subs.add(lastItemKeydownSub);
87
- });
88
- if (this.isExpandableItem()) {
89
- this.menuItemComponent.isLast = true;
90
- if (this.ctx.grid.isActionSheetExpanded) {
91
- this.cdr.detectChanges();
92
- }
93
- }
94
- }
95
- this._isLast = value;
96
- }
97
- /**
98
- * @hidden
99
- */
100
- get isLast() {
101
- return this._isLast;
102
- }
103
- _isFirst = false;
104
- _isLast = false;
105
- columnMenuItems;
106
- subs = new Subscription();
107
- constructor(hostElement, renderer, ngZone, cdr, ctx) {
108
- this.hostElement = hostElement;
109
- this.renderer = renderer;
110
- this.ngZone = ngZone;
111
- this.cdr = cdr;
112
- this.ctx = ctx;
113
- }
114
- ngAfterViewInit() {
115
- this.columnMenuItems = this.hostElement.nativeElement.querySelectorAll('.k-columnmenu-item');
116
- [].slice.apply(this.columnMenuItems).forEach(el => this.renderer.setAttribute(el, 'tabindex', '0'));
117
- if (this.menuItemComponent instanceof ColumnMenuFilterComponent) {
118
- this.menuItemComponent.service.menuTabbingService.isColumnMenu = true;
119
- }
120
- this.menuItemComponent.service?.columnMenuContainer?.templateMenuItems.push(this);
121
- }
122
- ngOnDestroy() {
123
- if (this.subs) {
124
- this.subs.unsubscribe();
125
- }
126
- }
127
- onTab = (e) => {
128
- if (e.code !== Keys.Tab) {
129
- return;
130
- }
131
- if (this.isFirst && e.shiftKey && e.target === this.columnMenuItems[0]) {
132
- e.preventDefault();
133
- this.menuItemComponent.service.menuTabbingService.lastFocusable.focus();
134
- }
135
- if (this.isLast && !e.shiftKey) {
136
- const lastColumnMenuItem = this.getLastColumnMenuItem();
137
- const isExpanded = this.menuItemComponent.expanded;
138
- if (lastColumnMenuItem === e.target && !isExpanded) {
139
- e.preventDefault();
140
- this.menuItemComponent.service.menuTabbingService.firstFocusable.focus();
141
- }
142
- }
143
- };
144
- getLastColumnMenuItem() {
145
- return (this.columnMenuItems.length === 1 ? this.columnMenuItems[0] : this.columnMenuItems[1]);
146
- }
147
- isExpandableItem() {
148
- return this.menuItemComponent instanceof ColumnMenuFilterComponent ||
149
- this.menuItemComponent instanceof ColumnMenuChooserComponent ||
150
- this.menuItemComponent instanceof ColumnMenuPositionComponent;
151
- }
152
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuItemDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.ContextService }], target: i0.ɵɵFactoryTarget.Directive });
153
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ColumnMenuItemDirective, isStandalone: true, selector: "[kendoGridColumnMenuItem]", inputs: { menuItemComponent: ["kendoGridColumnMenuItem", "menuItemComponent"] }, ngImport: i0 });
154
- }
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuItemDirective, decorators: [{
156
- type: Directive,
157
- args: [{
158
- selector: '[kendoGridColumnMenuItem]',
159
- standalone: true
160
- }]
161
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.ContextService }], propDecorators: { menuItemComponent: [{
162
- type: Input,
163
- args: ['kendoGridColumnMenuItem']
164
- }] } });