@progress/kendo-angular-treelist 21.4.1-develop.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 (272) hide show
  1. package/binding-directives/base-binding.directive.d.ts +1 -1
  2. package/column-menu/column-menu-item-base.d.ts +1 -1
  3. package/columns/column-base.d.ts +1 -1
  4. package/editing-directives/editing-directive-base.d.ts +1 -1
  5. package/editing-directives/row-editing-directive-base.d.ts +1 -1
  6. package/fesm2022/progress-kendo-angular-treelist.mjs +519 -519
  7. package/filtering/base-filter-cell.component.d.ts +1 -1
  8. package/filtering/boolean-filter.component.d.ts +1 -1
  9. package/filtering/date-filter.component.d.ts +1 -1
  10. package/filtering/filter-host.directive.d.ts +1 -1
  11. package/filtering/filter-input-wrapper.component.d.ts +1 -1
  12. package/filtering/numeric-filter.component.d.ts +1 -1
  13. package/filtering/operators/filter-operator.base.d.ts +1 -1
  14. package/filtering/string-filter.component.d.ts +1 -1
  15. package/localization/messages.d.ts +1 -1
  16. package/package.json +23 -31
  17. package/schematics/ngAdd/index.js +3 -3
  18. package/esm2022/binding-directives/base-binding.directive.mjs +0 -180
  19. package/esm2022/binding-directives/data-bound-tree-component.mjs +0 -18
  20. package/esm2022/binding-directives/flat-binding.directive.mjs +0 -130
  21. package/esm2022/binding-directives/hierarchy-binding.directive.mjs +0 -109
  22. package/esm2022/column-menu/column-chooser-item-checked.directive.mjs +0 -45
  23. package/esm2022/column-menu/column-chooser.component.mjs +0 -221
  24. package/esm2022/column-menu/column-list-kb-nav.service.mjs +0 -40
  25. package/esm2022/column-menu/column-list.component.mjs +0 -380
  26. package/esm2022/column-menu/column-locked-change-event.mjs +0 -21
  27. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +0 -78
  28. package/esm2022/column-menu/column-menu-autosize.component.mjs +0 -86
  29. package/esm2022/column-menu/column-menu-chooser.component.mjs +0 -164
  30. package/esm2022/column-menu/column-menu-container.component.mjs +0 -58
  31. package/esm2022/column-menu/column-menu-expandable-item.interface.mjs +0 -5
  32. package/esm2022/column-menu/column-menu-filter.component.mjs +0 -141
  33. package/esm2022/column-menu/column-menu-item-base.mjs +0 -41
  34. package/esm2022/column-menu/column-menu-item-content-template.directive.mjs +0 -43
  35. package/esm2022/column-menu/column-menu-item.component.mjs +0 -329
  36. package/esm2022/column-menu/column-menu-item.directive.mjs +0 -147
  37. package/esm2022/column-menu/column-menu-lock.component.mjs +0 -112
  38. package/esm2022/column-menu/column-menu-settings.interface.mjs +0 -5
  39. package/esm2022/column-menu/column-menu-sort.component.mjs +0 -115
  40. package/esm2022/column-menu/column-menu-template.directive.mjs +0 -47
  41. package/esm2022/column-menu/column-menu.component.mjs +0 -470
  42. package/esm2022/column-menu/column-menu.service.mjs +0 -70
  43. package/esm2022/column-menu/column-visibility-change-event.mjs +0 -19
  44. package/esm2022/column-menu/utils.mjs +0 -44
  45. package/esm2022/column-resizing/column-handle.directive.mjs +0 -226
  46. package/esm2022/column-resizing/column-resize.interface.mjs +0 -5
  47. package/esm2022/column-resizing/column-resizing.service.mjs +0 -143
  48. package/esm2022/column-resizing/table.directive.mjs +0 -130
  49. package/esm2022/columns/checkbox-column.component.mjs +0 -88
  50. package/esm2022/columns/column-base.mjs +0 -319
  51. package/esm2022/columns/column-common.mjs +0 -73
  52. package/esm2022/columns/column-group.component.mjs +0 -115
  53. package/esm2022/columns/column-list.mjs +0 -94
  54. package/esm2022/columns/column.component.mjs +0 -165
  55. package/esm2022/columns/columns-container.mjs +0 -90
  56. package/esm2022/columns/command-column.component.mjs +0 -77
  57. package/esm2022/columns/rowreorder-column.component.mjs +0 -57
  58. package/esm2022/columns/sort-settings.mjs +0 -17
  59. package/esm2022/columns/span-column.component.mjs +0 -201
  60. package/esm2022/common/cell-click-event-args.interface.mjs +0 -5
  61. package/esm2022/common/column-info.service.mjs +0 -54
  62. package/esm2022/common/create-form-group.mjs +0 -5
  63. package/esm2022/common/default-track-by.mjs +0 -13
  64. package/esm2022/common/dom-events.service.mjs +0 -24
  65. package/esm2022/common/error-messages.mjs +0 -15
  66. package/esm2022/common/filter-descriptor-differ.mjs +0 -69
  67. package/esm2022/common/filter-operator.interface.mjs +0 -5
  68. package/esm2022/common/id.service.mjs +0 -34
  69. package/esm2022/common/option-changes.service.mjs +0 -24
  70. package/esm2022/common/pager-settings.mjs +0 -19
  71. package/esm2022/common/preventable-event.mjs +0 -28
  72. package/esm2022/common/provider.service.mjs +0 -34
  73. package/esm2022/common/remove-confirmation.mjs +0 -5
  74. package/esm2022/common/single-popup.service.mjs +0 -132
  75. package/esm2022/common/sort.service.mjs +0 -14
  76. package/esm2022/data/change-event-args.interface.mjs +0 -5
  77. package/esm2022/data/change-notification.service.mjs +0 -30
  78. package/esm2022/data/data-item.interface.mjs +0 -5
  79. package/esm2022/data/data.collection.mjs +0 -503
  80. package/esm2022/data/treelist-item.interface.mjs +0 -5
  81. package/esm2022/directives.mjs +0 -291
  82. package/esm2022/dragdrop/column-reorder-config.mjs +0 -5
  83. package/esm2022/dragdrop/column-reorder-event.mjs +0 -31
  84. package/esm2022/dragdrop/column-reorder.service.mjs +0 -20
  85. package/esm2022/dragdrop/common.mjs +0 -69
  86. package/esm2022/dragdrop/context-types.mjs +0 -5
  87. package/esm2022/dragdrop/drag-and-drop.service.mjs +0 -65
  88. package/esm2022/dragdrop/drag-hint.service.mjs +0 -137
  89. package/esm2022/dragdrop/draggable-column.directive.mjs +0 -141
  90. package/esm2022/dragdrop/drop-cue.service.mjs +0 -46
  91. package/esm2022/dragdrop/drop-target.directive.mjs +0 -71
  92. package/esm2022/editing/add-command-tool.directive.mjs +0 -60
  93. package/esm2022/editing/add-command.directive.mjs +0 -96
  94. package/esm2022/editing/add-event-args.interface.mjs +0 -5
  95. package/esm2022/editing/base-command.directive.mjs +0 -95
  96. package/esm2022/editing/cancel-command.directive.mjs +0 -97
  97. package/esm2022/editing/cancel-event-args.interface.mjs +0 -5
  98. package/esm2022/editing/cell-close-event.mjs +0 -34
  99. package/esm2022/editing/edit-command.directive.mjs +0 -96
  100. package/esm2022/editing/edit-event-args.interface.mjs +0 -5
  101. package/esm2022/editing/edit-template.directive.mjs +0 -45
  102. package/esm2022/editing/edit.service.mjs +0 -174
  103. package/esm2022/editing/remove-command.directive.mjs +0 -96
  104. package/esm2022/editing/remove-event-args.interface.mjs +0 -5
  105. package/esm2022/editing/save-command.directive.mjs +0 -96
  106. package/esm2022/editing/save-event-args.interface.mjs +0 -5
  107. package/esm2022/editing-directives/create-form-group-args.interface.mjs +0 -5
  108. package/esm2022/editing-directives/edit-service.interface.mjs +0 -5
  109. package/esm2022/editing-directives/editing-directive-base.mjs +0 -137
  110. package/esm2022/editing-directives/flat-edit.service.mjs +0 -52
  111. package/esm2022/editing-directives/hierarchy-edit.service.mjs +0 -48
  112. package/esm2022/editing-directives/in-cell-editing.directive.mjs +0 -89
  113. package/esm2022/editing-directives/local-edit.service.mjs +0 -28
  114. package/esm2022/editing-directives/reactive-editing.directive.mjs +0 -61
  115. package/esm2022/editing-directives/row-editing-directive-base.mjs +0 -39
  116. package/esm2022/editing-directives/template-editing.directive.mjs +0 -68
  117. package/esm2022/editing-directives/utils.mjs +0 -41
  118. package/esm2022/excel/excel-command-tool.directive.mjs +0 -64
  119. package/esm2022/excel/excel-command.directive.mjs +0 -97
  120. package/esm2022/excel/excel-export-data.interface.mjs +0 -5
  121. package/esm2022/excel/excel-export-event.mjs +0 -15
  122. package/esm2022/excel/excel.component.mjs +0 -277
  123. package/esm2022/excel/excel.module.mjs +0 -45
  124. package/esm2022/excel/excel.service.mjs +0 -34
  125. package/esm2022/expand-state/expand-event.mjs +0 -30
  126. package/esm2022/expand-state/expand-state.service.mjs +0 -38
  127. package/esm2022/expand-state/expandable-tree-component.mjs +0 -18
  128. package/esm2022/expand-state/expandable.directive.mjs +0 -119
  129. package/esm2022/filtering/base-filter-cell.component.mjs +0 -172
  130. package/esm2022/filtering/boolean-filter.component.mjs +0 -91
  131. package/esm2022/filtering/cell/autocomplete-filter-cell.component.mjs +0 -113
  132. package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +0 -107
  133. package/esm2022/filtering/cell/date-filter-cell.component.mjs +0 -132
  134. package/esm2022/filtering/cell/filter-cell-component.factory.mjs +0 -19
  135. package/esm2022/filtering/cell/filter-cell-host.directive.mjs +0 -33
  136. package/esm2022/filtering/cell/filter-cell-operators.component.mjs +0 -235
  137. package/esm2022/filtering/cell/filter-cell-template.directive.mjs +0 -46
  138. package/esm2022/filtering/cell/filter-cell-wrapper.component.mjs +0 -74
  139. package/esm2022/filtering/cell/filter-cell.component.mjs +0 -91
  140. package/esm2022/filtering/cell/numeric-filter-cell.component.mjs +0 -143
  141. package/esm2022/filtering/cell/string-filter-cell.component.mjs +0 -115
  142. package/esm2022/filtering/date-filter.component.mjs +0 -176
  143. package/esm2022/filtering/filter-component.interface.mjs +0 -5
  144. package/esm2022/filtering/filter-host.directive.mjs +0 -56
  145. package/esm2022/filtering/filter-input-wrapper.component.mjs +0 -119
  146. package/esm2022/filtering/filter-input.directive.mjs +0 -114
  147. package/esm2022/filtering/filter-row.component.mjs +0 -79
  148. package/esm2022/filtering/filter.service.mjs +0 -42
  149. package/esm2022/filtering/filterable.mjs +0 -16
  150. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +0 -168
  151. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +0 -174
  152. package/esm2022/filtering/menu/date-filter-menu.component.mjs +0 -207
  153. package/esm2022/filtering/menu/filter-menu-component.factory.mjs +0 -19
  154. package/esm2022/filtering/menu/filter-menu-container.component.mjs +0 -299
  155. package/esm2022/filtering/menu/filter-menu-dropdownlist.directive.mjs +0 -44
  156. package/esm2022/filtering/menu/filter-menu-host.directive.mjs +0 -46
  157. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +0 -136
  158. package/esm2022/filtering/menu/filter-menu-template.directive.mjs +0 -43
  159. package/esm2022/filtering/menu/filter-menu.component.mjs +0 -202
  160. package/esm2022/filtering/menu/filter-radio-button.directive.mjs +0 -34
  161. package/esm2022/filtering/menu/menu-tabbing.service.mjs +0 -22
  162. package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +0 -152
  163. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +0 -224
  164. package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +0 -105
  165. package/esm2022/filtering/menu/string-filter-menu.component.mjs +0 -183
  166. package/esm2022/filtering/numeric-filter.component.mjs +0 -144
  167. package/esm2022/filtering/operators/after-eq-filter-operator.component.mjs +0 -72
  168. package/esm2022/filtering/operators/after-filter-operator.component.mjs +0 -72
  169. package/esm2022/filtering/operators/before-eq-filter-operator.component.mjs +0 -72
  170. package/esm2022/filtering/operators/before-filter-operator.component.mjs +0 -72
  171. package/esm2022/filtering/operators/contains-filter-operator.component.mjs +0 -64
  172. package/esm2022/filtering/operators/ends-with-filter-operator.component.mjs +0 -64
  173. package/esm2022/filtering/operators/eq-filter-operator.component.mjs +0 -112
  174. package/esm2022/filtering/operators/filter-operator.base.mjs +0 -98
  175. package/esm2022/filtering/operators/gt-filter-operator.component.mjs +0 -63
  176. package/esm2022/filtering/operators/gte-filter-operator.component.mjs +0 -63
  177. package/esm2022/filtering/operators/is-empty-filter-operator.component.mjs +0 -64
  178. package/esm2022/filtering/operators/is-not-empty-filter-operator.component.mjs +0 -64
  179. package/esm2022/filtering/operators/is-not-null-filter-operator.component.mjs +0 -112
  180. package/esm2022/filtering/operators/isnull-filter-operator.component.mjs +0 -112
  181. package/esm2022/filtering/operators/lt-filter-operator.component.mjs +0 -63
  182. package/esm2022/filtering/operators/lte-filter-operator.component.mjs +0 -63
  183. package/esm2022/filtering/operators/neq-filter-operator.component.mjs +0 -112
  184. package/esm2022/filtering/operators/not-contains-filter-operator.component.mjs +0 -64
  185. package/esm2022/filtering/operators/starts-with-filter-operator.component.mjs +0 -64
  186. package/esm2022/filtering/string-filter.component.mjs +0 -89
  187. package/esm2022/index.mjs +0 -146
  188. package/esm2022/layout/browser-support.service.mjs +0 -85
  189. package/esm2022/layout/resizable.directive.mjs +0 -83
  190. package/esm2022/layout/resize.service.mjs +0 -29
  191. package/esm2022/layout/responsive.service.mjs +0 -34
  192. package/esm2022/layout/row-sync.mjs +0 -47
  193. package/esm2022/localization/custom-messages.component.mjs +0 -53
  194. package/esm2022/localization/localized-messages.directive.mjs +0 -39
  195. package/esm2022/localization/messages.mjs +0 -510
  196. package/esm2022/navigation/default-focusable-element.mjs +0 -47
  197. package/esm2022/navigation/focus-group.mjs +0 -105
  198. package/esm2022/navigation/focus-root.mjs +0 -50
  199. package/esm2022/navigation/focusable-element.interface.mjs +0 -5
  200. package/esm2022/navigation/focusable.directive.mjs +0 -174
  201. package/esm2022/navigation/item-map.mjs +0 -59
  202. package/esm2022/navigation/logical-cell.directive.mjs +0 -187
  203. package/esm2022/navigation/logical-cell.interface.mjs +0 -5
  204. package/esm2022/navigation/logical-row.directive.mjs +0 -135
  205. package/esm2022/navigation/logical-row.interface.mjs +0 -5
  206. package/esm2022/navigation/model-cell.mjs +0 -37
  207. package/esm2022/navigation/navigation-cell.interface.mjs +0 -5
  208. package/esm2022/navigation/navigation-change.interface.mjs +0 -5
  209. package/esm2022/navigation/navigation-cursor.mjs +0 -176
  210. package/esm2022/navigation/navigation-metadata.mjs +0 -31
  211. package/esm2022/navigation/navigation-mode.mjs +0 -5
  212. package/esm2022/navigation/navigation-model.mjs +0 -126
  213. package/esm2022/navigation/navigation-row.interface.mjs +0 -5
  214. package/esm2022/navigation/navigation.service.mjs +0 -695
  215. package/esm2022/navigation/treelist-focusable-element.mjs +0 -28
  216. package/esm2022/package-metadata.mjs +0 -16
  217. package/esm2022/pdf/export-element.mjs +0 -129
  218. package/esm2022/pdf/pdf-command-tool.directive.mjs +0 -68
  219. package/esm2022/pdf/pdf-command.directive.mjs +0 -101
  220. package/esm2022/pdf/pdf-export-event.mjs +0 -18
  221. package/esm2022/pdf/pdf-margin.component.mjs +0 -33
  222. package/esm2022/pdf/pdf-margin.interface.mjs +0 -5
  223. package/esm2022/pdf/pdf-template.directive.mjs +0 -45
  224. package/esm2022/pdf/pdf.component.mjs +0 -269
  225. package/esm2022/pdf/pdf.module.mjs +0 -48
  226. package/esm2022/pdf/pdf.service.mjs +0 -40
  227. package/esm2022/pdf/treelist-query.mjs +0 -45
  228. package/esm2022/progress-kendo-angular-treelist.mjs +0 -8
  229. package/esm2022/rendering/cell-template.directive.mjs +0 -49
  230. package/esm2022/rendering/cell.component.mjs +0 -383
  231. package/esm2022/rendering/common/col-group.component.mjs +0 -39
  232. package/esm2022/rendering/common/dom-queries.mjs +0 -158
  233. package/esm2022/rendering/common/field-accessor.pipe.mjs +0 -48
  234. package/esm2022/rendering/common/level-items.pipe.mjs +0 -30
  235. package/esm2022/rendering/common/loading.component.mjs +0 -42
  236. package/esm2022/rendering/common/row-class.mjs +0 -5
  237. package/esm2022/rendering/common/spacer.component.mjs +0 -61
  238. package/esm2022/rendering/constants.mjs +0 -28
  239. package/esm2022/rendering/footer-template.directive.mjs +0 -45
  240. package/esm2022/rendering/header/header-template.directive.mjs +0 -45
  241. package/esm2022/rendering/header/header.component.mjs +0 -978
  242. package/esm2022/rendering/header/select-all-checkbox.directive.mjs +0 -90
  243. package/esm2022/rendering/list.component.mjs +0 -850
  244. package/esm2022/rendering/no-records-template.directive.mjs +0 -40
  245. package/esm2022/rendering/table-body.component.mjs +0 -665
  246. package/esm2022/rendering/toolbar/toolbar-focusable.directive.mjs +0 -77
  247. package/esm2022/rendering/toolbar/toolbar-navigation.service.mjs +0 -54
  248. package/esm2022/rendering/toolbar/toolbar-template.directive.mjs +0 -58
  249. package/esm2022/rendering/toolbar/toolbar.component.mjs +0 -110
  250. package/esm2022/row-reordering/flat-reorder.service.mjs +0 -48
  251. package/esm2022/row-reordering/hierarchical-reorder.service.mjs +0 -55
  252. package/esm2022/row-reordering/row-reorder.service.mjs +0 -273
  253. package/esm2022/row-reordering/types.mjs +0 -5
  254. package/esm2022/row-reordering/utils.mjs +0 -128
  255. package/esm2022/scrolling/content-scroll-event.mjs +0 -5
  256. package/esm2022/scrolling/row-height.service.mjs +0 -30
  257. package/esm2022/scrolling/scroll-bottom-event.mjs +0 -5
  258. package/esm2022/scrolling/scroll-request.service.mjs +0 -21
  259. package/esm2022/scrolling/scroll-sync.service.mjs +0 -80
  260. package/esm2022/scrolling/scroller.service.mjs +0 -112
  261. package/esm2022/scrolling/scrollmode.mjs +0 -5
  262. package/esm2022/scrolling/suspend.service.mjs +0 -17
  263. package/esm2022/selection/is-selected.mjs +0 -5
  264. package/esm2022/selection/marquee.directive.mjs +0 -196
  265. package/esm2022/selection/selectable-settings.mjs +0 -5
  266. package/esm2022/selection/selectable.directive.mjs +0 -223
  267. package/esm2022/selection/selection-change-event.mjs +0 -28
  268. package/esm2022/selection/selection-state.mjs +0 -104
  269. package/esm2022/selection/selection.service.mjs +0 -264
  270. package/esm2022/treelist.component.mjs +0 -3111
  271. package/esm2022/treelist.module.mjs +0 -183
  272. package/esm2022/utils.mjs +0 -113
@@ -1,5 +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
- export {};
@@ -1,128 +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 { cancelIcon, insertMiddleIcon, plusIcon } from '@progress/kendo-svg-icons';
6
- /**
7
- * @hidden
8
- */
9
- export const isNextSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.nextElementSibling;
10
- /**
11
- * @hidden
12
- */
13
- export const isPreviousSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.previousElementSibling;
14
- /**
15
- * @hidden
16
- */
17
- export function getOffset(element) {
18
- const { clientTop, clientLeft } = getDocument(element);
19
- const { pageYOffset, pageXOffset } = getWindow(element);
20
- const { top, left } = element.getBoundingClientRect();
21
- return {
22
- top: top + pageYOffset - clientTop,
23
- left: left + pageXOffset - clientLeft
24
- };
25
- }
26
- /**
27
- * @hidden
28
- */
29
- export const hintIcons = {
30
- forbidden: 'cancel',
31
- before: 'insert-middle',
32
- after: 'insert-middle',
33
- over: 'plus'
34
- };
35
- /**
36
- * @hidden
37
- */
38
- export const hintSVGIcons = {
39
- forbidden: cancelIcon,
40
- before: insertMiddleIcon,
41
- after: insertMiddleIcon,
42
- over: plusIcon
43
- };
44
- /**
45
- * @hidden
46
- */
47
- export const dropPosition = {
48
- forbidden: 'forbidden',
49
- before: 'before',
50
- after: 'after',
51
- over: 'over'
52
- };
53
- /**
54
- * @hidden
55
- */
56
- export const hintStyles = {
57
- zIndex: '20000',
58
- display: 'flex',
59
- position: 'fixed'
60
- };
61
- /**
62
- * @hidden
63
- */
64
- export const hintClasses = ['k-drag-clue', 'k-reorder-clue'];
65
- /**
66
- * @hidden
67
- */
68
- export const dropIndicatorStyles = {
69
- zIndex: '19000',
70
- position: 'absolute'
71
- };
72
- /**
73
- * @hidden
74
- */
75
- export const dropIndicatorClasses = ['k-drop-hint', 'k-drop-hint-h'];
76
- /**
77
- * @hidden
78
- */
79
- export const defaultSelectors = {
80
- handle: '.k-table-td.k-drag-cell',
81
- dragTarget: '.k-table-row[data-treelist-view-index]',
82
- dropTarget: '.k-table-row[data-treelist-view-index]'
83
- };
84
- /**
85
- * @hidden
86
- */
87
- export const rowIndexAttr = 'data-treelist-view-index';
88
- /**
89
- * @hidden
90
- */
91
- export const findParent = (collection, searchItem, field) => {
92
- let parent = null;
93
- for (const item of collection) {
94
- if (searchItem === item) {
95
- return null;
96
- }
97
- const checked = [];
98
- const queue = [];
99
- queue.push(item);
100
- while (queue.length !== 0) {
101
- const current = queue.shift();
102
- if (!current) {
103
- continue;
104
- }
105
- checked.push(current);
106
- if (current === searchItem) {
107
- return item;
108
- }
109
- if (current.hasOwnProperty(field)) {
110
- current[field].forEach(node => {
111
- if (checked.indexOf(node) === -1) {
112
- checked.push(node);
113
- queue.push(node);
114
- if (node === searchItem) {
115
- parent = current;
116
- return;
117
- }
118
- }
119
- });
120
- }
121
- if (parent) {
122
- return parent;
123
- }
124
- }
125
- }
126
- };
127
- const getDocument = element => element?.ownerDocument.documentElement;
128
- const getWindow = element => element?.ownerDocument.defaultView;
@@ -1,5 +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
- export {};
@@ -1,30 +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
- /**
6
- * @hidden
7
- */
8
- export class RowHeightService {
9
- total;
10
- rowHeight;
11
- constructor(total = 0, rowHeight) {
12
- this.total = total;
13
- this.rowHeight = rowHeight;
14
- this.rowHeight = rowHeight || 0;
15
- }
16
- index(position) {
17
- if (position < 0) {
18
- return undefined;
19
- }
20
- return Math.min(Math.floor(position / this.rowHeight), this.total - 1);
21
- }
22
- offset(rowIndex) {
23
- if (0 <= rowIndex && rowIndex < this.total) {
24
- return rowIndex * this.rowHeight;
25
- }
26
- }
27
- totalHeight() {
28
- return this.total * this.rowHeight;
29
- }
30
- }
@@ -1,5 +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
- export {};
@@ -1,21 +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 { Injectable } from '@angular/core';
6
- import { Subject } from 'rxjs';
7
- import * as i0 from "@angular/core";
8
- /**
9
- * @hidden
10
- */
11
- export class ScrollRequestService {
12
- requests = new Subject();
13
- scrollTo(request) {
14
- this.requests.next(request);
15
- }
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScrollRequestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScrollRequestService });
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScrollRequestService, decorators: [{
20
- type: Injectable
21
- }] });
@@ -1,80 +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 { Injectable, NgZone } from '@angular/core';
6
- import { Subscription, Subject, fromEvent } from 'rxjs';
7
- import { distinctUntilChanged, filter, map, tap } from 'rxjs/operators';
8
- import * as i0 from "@angular/core";
9
- /**
10
- * @hidden
11
- */
12
- export class ScrollSyncService {
13
- ngZone;
14
- changes = new Subject();
15
- elements = [];
16
- source;
17
- subscriptions = new Subscription();
18
- headerSubscription = new Subscription();
19
- bodySubscription = new Subscription();
20
- constructor(ngZone) {
21
- this.ngZone = ngZone;
22
- this.subscriptions.add(this.changes.subscribe(args => this.scrollLeft(args)));
23
- }
24
- registerEmitter(el, sourceType) {
25
- this.unregister(sourceType);
26
- this.elements.push({ element: el, sourceType });
27
- if (sourceType === "body" || sourceType === "header") {
28
- this.ngZone.runOutsideAngular(() => {
29
- const obs = fromEvent(el, "scroll").pipe(map(({ target: { scrollLeft } }) => ({
30
- scrollLeft,
31
- sourceType
32
- })));
33
- const subscription = obs.pipe(distinctUntilChanged((x, y) => (x.scrollLeft === y.scrollLeft)), filter(x => !this.source || this.source === x.sourceType), tap(x => this.source = x.sourceType))
34
- .subscribe((x) => this.changes.next(x));
35
- subscription.add(obs.pipe(filter(x => this.source && this.source !== x.sourceType))
36
- .subscribe(() => this.source = undefined));
37
- if (sourceType === "body") {
38
- this.bodySubscription.add(subscription);
39
- }
40
- else {
41
- this.headerSubscription.add(subscription);
42
- }
43
- });
44
- }
45
- }
46
- /**
47
- * destroy
48
- */
49
- destroy() {
50
- this.subscriptions.unsubscribe();
51
- this.headerSubscription.unsubscribe();
52
- this.bodySubscription.unsubscribe();
53
- }
54
- scrollLeft({ scrollLeft, sourceType }) {
55
- this.ngZone.runOutsideAngular(() => {
56
- this.elements
57
- .filter(x => sourceType !== x.sourceType)
58
- .forEach(({ element }) => element.scrollLeft = scrollLeft);
59
- });
60
- }
61
- unregister(sourceType) {
62
- const index = this.elements.findIndex(x => x.sourceType === sourceType);
63
- if (index > -1) {
64
- if (sourceType === "header") {
65
- this.headerSubscription.unsubscribe();
66
- this.headerSubscription = new Subscription();
67
- }
68
- else if (sourceType === "body") {
69
- this.bodySubscription.unsubscribe();
70
- this.bodySubscription = new Subscription();
71
- }
72
- this.elements.splice(index, 1);
73
- }
74
- }
75
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScrollSyncService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
76
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScrollSyncService });
77
- }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScrollSyncService, decorators: [{
79
- type: Injectable
80
- }], ctorParameters: () => [{ type: i0.NgZone }] });
@@ -1,112 +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 { Observable, BehaviorSubject } from 'rxjs';
6
- /**
7
- * @hidden
8
- */
9
- export class ScrollAction {
10
- offset;
11
- constructor(offset) {
12
- this.offset = offset;
13
- }
14
- }
15
- /**
16
- * @hidden
17
- */
18
- export class PageAction {
19
- skip;
20
- take;
21
- constructor(skip, take) {
22
- this.skip = skip;
23
- this.take = take;
24
- }
25
- }
26
- /**
27
- * @hidden
28
- */
29
- export class ScrollBottomAction {
30
- }
31
- const SCROLL_BOTTOM_THRESHOLD = 1;
32
- /**
33
- * @hidden
34
- */
35
- export class ScrollerService {
36
- scrollObservable;
37
- firstLoaded = 0;
38
- lastLoaded;
39
- lastScrollTop = 0;
40
- take;
41
- total;
42
- rowHeightService;
43
- scrollSubscription;
44
- subscription;
45
- constructor(scrollObservable) {
46
- this.scrollObservable = scrollObservable;
47
- }
48
- create(rowHeightService, skip, take, total, scrollTop = 0) {
49
- this.rowHeightService = rowHeightService;
50
- this.firstLoaded = skip;
51
- this.lastLoaded = skip + take;
52
- this.take = take;
53
- this.total = total;
54
- this.lastScrollTop = scrollTop;
55
- const subject = new BehaviorSubject(new ScrollAction(this.rowHeightService.offset(skip)));
56
- this.subscription = Observable.create(observer => {
57
- this.unsubscribe();
58
- this.scrollSubscription = this.scrollObservable.subscribe(x => this.onScroll(x, observer));
59
- }).subscribe(x => subject.next(x));
60
- return subject;
61
- }
62
- destroy() {
63
- this.unsubscribe();
64
- if (this.subscription) {
65
- this.subscription.unsubscribe();
66
- }
67
- }
68
- onScroll({ scrollTop, offsetHeight, scrollHeight, clientHeight }, observer) {
69
- if (this.lastScrollTop === scrollTop) {
70
- return;
71
- }
72
- const up = this.lastScrollTop >= scrollTop;
73
- this.lastScrollTop = scrollTop;
74
- let firstItemIndex = this.rowHeightService.index(scrollTop);
75
- let firstItemOffset = this.rowHeightService.offset(firstItemIndex);
76
- const lastItemIndex = this.rowHeightService.index(scrollTop + offsetHeight);
77
- if (!up) {
78
- if (lastItemIndex >= this.lastLoaded && this.lastLoaded < this.total) {
79
- const overflow = (firstItemIndex + this.take) - this.total;
80
- if (overflow > 0) {
81
- firstItemIndex = firstItemIndex - overflow;
82
- firstItemOffset = this.rowHeightService.offset(firstItemIndex);
83
- }
84
- this.firstLoaded = firstItemIndex;
85
- observer.next(new ScrollAction(firstItemOffset));
86
- let nextTake = this.firstLoaded + this.take;
87
- this.lastLoaded = Math.min(nextTake, this.total);
88
- nextTake = nextTake > this.total ? this.total - this.firstLoaded : this.take;
89
- observer.next(new PageAction(this.firstLoaded, this.take));
90
- }
91
- else {
92
- const atBottom = scrollHeight - clientHeight - scrollTop < SCROLL_BOTTOM_THRESHOLD;
93
- if (atBottom) {
94
- observer.next(new ScrollBottomAction());
95
- }
96
- }
97
- }
98
- if (up && firstItemIndex < this.firstLoaded) {
99
- const nonVisibleBuffer = Math.floor(this.take * 0.3);
100
- this.firstLoaded = Math.max(firstItemIndex - nonVisibleBuffer, 0);
101
- observer.next(new ScrollAction(this.rowHeightService.offset(this.firstLoaded)));
102
- this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);
103
- observer.next(new PageAction(this.firstLoaded, this.take));
104
- }
105
- }
106
- unsubscribe() {
107
- if (this.scrollSubscription) {
108
- this.scrollSubscription.unsubscribe();
109
- this.scrollSubscription = undefined;
110
- }
111
- }
112
- }
@@ -1,5 +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
- export {};
@@ -1,17 +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 { Injectable } from '@angular/core';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * @hidden
9
- */
10
- export class SuspendService {
11
- scroll = false;
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuspendService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuspendService });
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuspendService, decorators: [{
16
- type: Injectable
17
- }] });
@@ -1,5 +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
- export {};
@@ -1,196 +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, HostBinding, ChangeDetectorRef } from '@angular/core';
6
- import { DraggableDirective, isDocumentAvailable } from '@progress/kendo-angular-common';
7
- import { SelectionService } from './selection.service';
8
- import { createState } from './selection-state';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@progress/kendo-angular-common";
11
- import * as i2 from "./selection.service";
12
- const MINIMAL_DRAG_DISTANCE = 5;
13
- const createElement = () => {
14
- if (!isDocumentAvailable()) {
15
- return;
16
- }
17
- const marquee = document.createElement("div");
18
- marquee.className = "k-marquee";
19
- const marqueeColor = document.createElement("div");
20
- marqueeColor.className = "k-marquee-color";
21
- marquee.appendChild(marqueeColor);
22
- return marquee;
23
- };
24
- const elementUnderCursor = ({ clientX, clientY }) => document && document.elementFromPoint(clientX, clientY);
25
- /**
26
- * @hidden
27
- */
28
- export class MarqueeDirective {
29
- draggable;
30
- selection;
31
- changeDetector;
32
- get userSelection() {
33
- return this.selection.enableMarquee ? 'none' : null;
34
- }
35
- // possibly add snap
36
- pressArgs;
37
- marqueeElement;
38
- pressTarget;
39
- currentTarget;
40
- selectionSelected;
41
- state;
42
- subscriptions;
43
- selectionStarted = false;
44
- constructor(draggable, selection, changeDetector) {
45
- this.draggable = draggable;
46
- this.selection = selection;
47
- this.changeDetector = changeDetector;
48
- this.cellSelected = this.cellSelected.bind(this);
49
- this.rowSelected = this.rowSelected.bind(this);
50
- }
51
- ngOnInit() {
52
- // handle esc
53
- // trigger cancel
54
- this.subscriptions = this.draggable.kendoPress.subscribe(this.start.bind(this));
55
- this.subscriptions.add(this.draggable.kendoDrag.subscribe(this.moveMarquee.bind(this)));
56
- this.subscriptions.add(this.draggable.kendoRelease.subscribe(this.endSelection.bind(this)));
57
- }
58
- ngOnDestroy() {
59
- this.subscriptions.unsubscribe();
60
- this.clean();
61
- }
62
- cellSelected(dataItem, column) {
63
- return this.state.has(dataItem, column);
64
- }
65
- rowSelected(dataItem) {
66
- return this.state.has(dataItem);
67
- }
68
- start(args) {
69
- const pressTarget = this.targetArgs(args, true);
70
- if (!pressTarget) {
71
- return;
72
- }
73
- this.pressTarget = pressTarget;
74
- this.pressArgs = args;
75
- }
76
- moveMarquee(args) {
77
- const press = this.pressArgs;
78
- if (!this.selectionStarted && press) {
79
- const distance = Math.sqrt((args.pageX - press.pageX) ** 2 + (args.pageY - press.pageY) ** 2);
80
- if (distance > MINIMAL_DRAG_DISTANCE) {
81
- this.selectionStarted = true;
82
- }
83
- else {
84
- return;
85
- }
86
- }
87
- if (this.pressTarget && !this.state) {
88
- this.initMarquee();
89
- }
90
- if (this.marqueeElement) {
91
- const element = this.marqueeElement;
92
- const left = Math.min(args.pageX, press.pageX);
93
- const top = Math.min(args.pageY, press.pageY);
94
- const width = Math.abs(args.pageX - press.pageX);
95
- const height = Math.abs(args.pageY - press.pageY);
96
- element.style.left = `${left}px`;
97
- element.style.top = `${top}px`;
98
- element.style.width = `${width}px`;
99
- element.style.height = `${height}px`;
100
- }
101
- else if (this.state) {
102
- const currentTarget = this.targetArgs(args);
103
- if (currentTarget && (!this.currentTarget || this.currentTarget.item.data !== currentTarget.item.data ||
104
- (this.selection.settings.mode === 'cell' && this.currentTarget.column !== currentTarget.column))) {
105
- this.currentTarget = currentTarget;
106
- this.state.fromArray(this.selection.rangeItems(this.pressTarget, currentTarget).map(item => ({ itemKey: item.dataItem, columnKey: item.column })));
107
- this.selection.updateSelectedState();
108
- this.changeDetector.detectChanges();
109
- }
110
- }
111
- }
112
- endSelection(args) {
113
- if (!this.state) {
114
- return;
115
- }
116
- if ((this.pressArgs.pageX !== args.pageX || this.pressArgs.pageY !== args.pageY)) {
117
- const pressTarget = this.pressTarget;
118
- const releaseTarget = this.targetArgs(args);
119
- this.clean();
120
- // if one is missing select first / last viewItem depending on the position
121
- // select column based on coordinates
122
- if (pressTarget && releaseTarget) {
123
- this.selection.dragging = true;
124
- this.selection.selectRange(pressTarget, releaseTarget);
125
- }
126
- else {
127
- this.changeDetector.detectChanges();
128
- }
129
- }
130
- else {
131
- this.clean();
132
- this.changeDetector.detectChanges();
133
- }
134
- }
135
- clean() {
136
- if (this.marqueeElement) {
137
- document.body.removeChild(this.marqueeElement);
138
- this.marqueeElement = null;
139
- }
140
- if (this.selectionSelected) {
141
- if (this.selection.settings.mode === 'cell') {
142
- this.selection.isCellSelected = this.selectionSelected;
143
- }
144
- else {
145
- this.selection.isRowSelected = this.selectionSelected;
146
- }
147
- this.selectionSelected = null;
148
- }
149
- if (this.state) {
150
- this.state.clear();
151
- this.state = null;
152
- }
153
- this.pressTarget = null;
154
- this.pressArgs = null;
155
- this.selectionStarted = false;
156
- this.selection.dragging = false;
157
- }
158
- targetArgs(args, skipFocusable) {
159
- let target = args.originalEvent.target;
160
- if (this.marqueeElement) {
161
- this.marqueeElement.style.display = 'none';
162
- target = elementUnderCursor(args);
163
- this.marqueeElement.style.display = 'block';
164
- }
165
- return this.selection.targetArgs(target, skipFocusable);
166
- }
167
- initMarquee() {
168
- this.state = createState(this.selection.settings);
169
- if (this.selection.settings.mode === 'cell') {
170
- this.selectionSelected = this.selection.isCellSelected;
171
- this.selection.isCellSelected = this.cellSelected;
172
- }
173
- else {
174
- this.selectionSelected = this.selection.isRowSelected;
175
- this.selection.isRowSelected = this.rowSelected;
176
- }
177
- this.changeDetector.detectChanges();
178
- const drag = this.selection.settings.drag;
179
- if (!(drag && drag.snap)) {
180
- this.marqueeElement = createElement();
181
- document.body.appendChild(this.marqueeElement);
182
- }
183
- }
184
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MarqueeDirective, deps: [{ token: i1.DraggableDirective }, { token: i2.SelectionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
185
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: MarqueeDirective, isStandalone: true, selector: "[kendoTreeListSelectionMarquee]", host: { properties: { "style.user-select": "this.userSelection" } }, ngImport: i0 });
186
- }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MarqueeDirective, decorators: [{
188
- type: Directive,
189
- args: [{
190
- selector: '[kendoTreeListSelectionMarquee]',
191
- standalone: true
192
- }]
193
- }], ctorParameters: () => [{ type: i1.DraggableDirective }, { type: i2.SelectionService }, { type: i0.ChangeDetectorRef }], propDecorators: { userSelection: [{
194
- type: HostBinding,
195
- args: ['style.user-select']
196
- }] } });
@@ -1,5 +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
- export {};