@progress/kendo-vue-treelist 3.5.1 → 3.5.2-dev.202209020458

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 (242) hide show
  1. package/dist/cdn/js/kendo-vue-treelist.js +1 -1
  2. package/dist/es/ScrollMode.d.ts +1 -0
  3. package/dist/es/ScrollMode.js +1 -0
  4. package/dist/es/TreeList.d.ts +56 -0
  5. package/dist/es/TreeList.js +1270 -0
  6. package/dist/es/TreeListNav.d.ts +46 -0
  7. package/dist/es/TreeListNav.js +123 -0
  8. package/dist/es/TreeListNoRecords.d.ts +15 -0
  9. package/dist/es/TreeListNoRecords.js +46 -0
  10. package/dist/es/TreeListToolbar.d.ts +15 -0
  11. package/dist/es/TreeListToolbar.js +34 -0
  12. package/dist/es/additionalTypes.ts +21 -0
  13. package/dist/es/cells/EditCells/TreeListBooleanEditor.d.ts +42 -0
  14. package/dist/es/cells/EditCells/TreeListBooleanEditor.js +166 -0
  15. package/dist/es/cells/EditCells/TreeListDateEditor.d.ts +42 -0
  16. package/dist/es/cells/EditCells/TreeListDateEditor.js +155 -0
  17. package/dist/es/cells/EditCells/TreeListNumericEditor.d.ts +42 -0
  18. package/dist/es/cells/EditCells/TreeListNumericEditor.js +155 -0
  19. package/dist/es/cells/EditCells/TreeListTextEditor.d.ts +42 -0
  20. package/dist/es/cells/EditCells/TreeListTextEditor.js +159 -0
  21. package/dist/es/cells/FilterCells/TreeListBooleanFilter.d.ts +19 -0
  22. package/dist/es/cells/FilterCells/TreeListBooleanFilter.js +102 -0
  23. package/dist/es/cells/FilterCells/TreeListDateFilter.d.ts +19 -0
  24. package/dist/es/cells/FilterCells/TreeListDateFilter.js +102 -0
  25. package/dist/es/cells/FilterCells/TreeListNumericFilter.d.ts +19 -0
  26. package/dist/es/cells/FilterCells/TreeListNumericFilter.js +102 -0
  27. package/dist/es/cells/FilterCells/TreeListTextFilter.d.ts +19 -0
  28. package/dist/es/cells/FilterCells/TreeListTextFilter.js +102 -0
  29. package/dist/es/cells/FilterCells/utils.d.ts +38 -0
  30. package/dist/es/cells/FilterCells/utils.js +66 -0
  31. package/dist/es/cells/TreeListCell.d.ts +41 -0
  32. package/dist/es/cells/TreeListCell.js +220 -0
  33. package/dist/es/cells/TreeListSelectionCell.d.ts +41 -0
  34. package/dist/es/cells/TreeListSelectionCell.js +166 -0
  35. package/dist/es/constants/main.d.ts +6 -0
  36. package/dist/es/constants/main.js +7 -0
  37. package/dist/es/header/TreeListHeaderCell.d.ts +1 -0
  38. package/dist/es/header/TreeListHeaderCell.js +4 -0
  39. package/dist/es/header/TreeListHeaderSelectionCell.d.ts +1 -0
  40. package/dist/es/header/TreeListHeaderSelectionCell.js +12 -0
  41. package/dist/es/interfaces/DataItemWrapper.d.ts +10 -0
  42. package/dist/es/interfaces/DataItemWrapper.js +1 -0
  43. package/dist/es/interfaces/TreeListCellProps.d.ts +31 -0
  44. package/dist/es/interfaces/TreeListCellProps.js +1 -0
  45. package/dist/es/interfaces/TreeListColumnProps.d.ts +33 -0
  46. package/dist/es/interfaces/TreeListColumnProps.js +1 -0
  47. package/dist/es/interfaces/TreeListFilterCellProps.d.ts +6 -0
  48. package/dist/es/interfaces/TreeListFilterCellProps.js +1 -0
  49. package/dist/es/interfaces/TreeListFilterOperator.d.ts +6 -0
  50. package/dist/es/interfaces/TreeListFilterOperator.js +1 -0
  51. package/dist/es/interfaces/TreeListHeaderCellProps.d.ts +6 -0
  52. package/dist/es/interfaces/TreeListHeaderCellProps.js +1 -0
  53. package/dist/es/interfaces/TreeListNoRecordsProps.d.ts +5 -0
  54. package/dist/es/interfaces/TreeListNoRecordsProps.js +1 -0
  55. package/dist/es/interfaces/TreeListProps.d.ts +249 -0
  56. package/dist/es/interfaces/TreeListProps.js +1 -0
  57. package/dist/es/interfaces/TreeListRowProps.d.ts +88 -0
  58. package/dist/es/interfaces/TreeListRowProps.js +1 -0
  59. package/dist/es/interfaces/TreeListSelectableSettings.d.ts +18 -0
  60. package/dist/es/interfaces/TreeListSelectableSettings.js +1 -0
  61. package/dist/es/interfaces/TreeListSortSettings.d.ts +9 -0
  62. package/dist/es/interfaces/TreeListSortSettings.js +1 -0
  63. package/dist/es/interfaces/TreeListToolbarProps.d.ts +5 -0
  64. package/dist/es/interfaces/TreeListToolbarProps.js +1 -0
  65. package/dist/es/interfaces/events.d.ts +265 -0
  66. package/dist/es/interfaces/events.js +1 -0
  67. package/dist/es/main.d.ts +30 -1
  68. package/dist/es/main.js +26 -3
  69. package/dist/es/messages/main.d.ts +234 -0
  70. package/dist/es/messages/main.js +235 -0
  71. package/dist/es/package-metadata.js +1 -1
  72. package/dist/es/rows/DragClue.d.ts +39 -0
  73. package/dist/es/rows/DragClue.js +60 -0
  74. package/dist/es/rows/TreeListDraggableRow.d.ts +1 -0
  75. package/dist/es/rows/TreeListDraggableRow.js +123 -0
  76. package/dist/es/rows/TreeListRow.d.ts +36 -0
  77. package/dist/es/rows/TreeListRow.js +126 -0
  78. package/dist/es/utils/data-operations.d.ts +115 -0
  79. package/dist/es/utils/data-operations.js +250 -0
  80. package/dist/es/utils/main.d.ts +17 -0
  81. package/dist/es/utils/main.js +68 -0
  82. package/dist/esm/ScrollMode.d.ts +1 -0
  83. package/dist/esm/ScrollMode.js +1 -0
  84. package/dist/esm/TreeList.d.ts +56 -0
  85. package/dist/esm/TreeList.js +1270 -0
  86. package/dist/esm/TreeListNav.d.ts +46 -0
  87. package/dist/esm/TreeListNav.js +123 -0
  88. package/dist/esm/TreeListNoRecords.d.ts +15 -0
  89. package/dist/esm/TreeListNoRecords.js +46 -0
  90. package/dist/esm/TreeListToolbar.d.ts +15 -0
  91. package/dist/esm/TreeListToolbar.js +34 -0
  92. package/dist/esm/additionalTypes.ts +21 -0
  93. package/dist/esm/cells/EditCells/TreeListBooleanEditor.d.ts +42 -0
  94. package/dist/esm/cells/EditCells/TreeListBooleanEditor.js +166 -0
  95. package/dist/esm/cells/EditCells/TreeListDateEditor.d.ts +42 -0
  96. package/dist/esm/cells/EditCells/TreeListDateEditor.js +155 -0
  97. package/dist/esm/cells/EditCells/TreeListNumericEditor.d.ts +42 -0
  98. package/dist/esm/cells/EditCells/TreeListNumericEditor.js +155 -0
  99. package/dist/esm/cells/EditCells/TreeListTextEditor.d.ts +42 -0
  100. package/dist/esm/cells/EditCells/TreeListTextEditor.js +159 -0
  101. package/dist/esm/cells/FilterCells/TreeListBooleanFilter.d.ts +19 -0
  102. package/dist/esm/cells/FilterCells/TreeListBooleanFilter.js +102 -0
  103. package/dist/esm/cells/FilterCells/TreeListDateFilter.d.ts +19 -0
  104. package/dist/esm/cells/FilterCells/TreeListDateFilter.js +102 -0
  105. package/dist/esm/cells/FilterCells/TreeListNumericFilter.d.ts +19 -0
  106. package/dist/esm/cells/FilterCells/TreeListNumericFilter.js +102 -0
  107. package/dist/esm/cells/FilterCells/TreeListTextFilter.d.ts +19 -0
  108. package/dist/esm/cells/FilterCells/TreeListTextFilter.js +102 -0
  109. package/dist/esm/cells/FilterCells/utils.d.ts +38 -0
  110. package/dist/esm/cells/FilterCells/utils.js +66 -0
  111. package/dist/esm/cells/TreeListCell.d.ts +41 -0
  112. package/dist/esm/cells/TreeListCell.js +220 -0
  113. package/dist/esm/cells/TreeListSelectionCell.d.ts +41 -0
  114. package/dist/esm/cells/TreeListSelectionCell.js +166 -0
  115. package/dist/esm/constants/main.d.ts +6 -0
  116. package/dist/esm/constants/main.js +7 -0
  117. package/dist/esm/header/TreeListHeaderCell.d.ts +1 -0
  118. package/dist/esm/header/TreeListHeaderCell.js +4 -0
  119. package/dist/esm/header/TreeListHeaderSelectionCell.d.ts +1 -0
  120. package/dist/esm/header/TreeListHeaderSelectionCell.js +12 -0
  121. package/dist/esm/interfaces/DataItemWrapper.d.ts +10 -0
  122. package/dist/esm/interfaces/DataItemWrapper.js +1 -0
  123. package/dist/esm/interfaces/TreeListCellProps.d.ts +31 -0
  124. package/dist/esm/interfaces/TreeListCellProps.js +1 -0
  125. package/dist/esm/interfaces/TreeListColumnProps.d.ts +33 -0
  126. package/dist/esm/interfaces/TreeListColumnProps.js +1 -0
  127. package/dist/esm/interfaces/TreeListFilterCellProps.d.ts +6 -0
  128. package/dist/esm/interfaces/TreeListFilterCellProps.js +1 -0
  129. package/dist/esm/interfaces/TreeListFilterOperator.d.ts +6 -0
  130. package/dist/esm/interfaces/TreeListFilterOperator.js +1 -0
  131. package/dist/esm/interfaces/TreeListHeaderCellProps.d.ts +6 -0
  132. package/dist/esm/interfaces/TreeListHeaderCellProps.js +1 -0
  133. package/dist/esm/interfaces/TreeListNoRecordsProps.d.ts +5 -0
  134. package/dist/esm/interfaces/TreeListNoRecordsProps.js +1 -0
  135. package/dist/esm/interfaces/TreeListProps.d.ts +249 -0
  136. package/dist/esm/interfaces/TreeListProps.js +1 -0
  137. package/dist/esm/interfaces/TreeListRowProps.d.ts +88 -0
  138. package/dist/esm/interfaces/TreeListRowProps.js +1 -0
  139. package/dist/esm/interfaces/TreeListSelectableSettings.d.ts +18 -0
  140. package/dist/esm/interfaces/TreeListSelectableSettings.js +1 -0
  141. package/dist/esm/interfaces/TreeListSortSettings.d.ts +9 -0
  142. package/dist/esm/interfaces/TreeListSortSettings.js +1 -0
  143. package/dist/esm/interfaces/TreeListToolbarProps.d.ts +5 -0
  144. package/dist/esm/interfaces/TreeListToolbarProps.js +1 -0
  145. package/dist/esm/interfaces/events.d.ts +265 -0
  146. package/dist/esm/interfaces/events.js +1 -0
  147. package/dist/esm/main.d.ts +30 -1
  148. package/dist/esm/main.js +26 -3
  149. package/dist/esm/messages/main.d.ts +234 -0
  150. package/dist/esm/messages/main.js +235 -0
  151. package/dist/esm/package-metadata.js +1 -1
  152. package/dist/esm/rows/DragClue.d.ts +39 -0
  153. package/dist/esm/rows/DragClue.js +60 -0
  154. package/dist/esm/rows/TreeListDraggableRow.d.ts +1 -0
  155. package/dist/esm/rows/TreeListDraggableRow.js +123 -0
  156. package/dist/esm/rows/TreeListRow.d.ts +36 -0
  157. package/dist/esm/rows/TreeListRow.js +126 -0
  158. package/dist/esm/utils/data-operations.d.ts +115 -0
  159. package/dist/esm/utils/data-operations.js +250 -0
  160. package/dist/esm/utils/main.d.ts +17 -0
  161. package/dist/esm/utils/main.js +68 -0
  162. package/dist/npm/ScrollMode.d.ts +1 -0
  163. package/dist/npm/ScrollMode.js +2 -0
  164. package/dist/npm/TreeList.d.ts +56 -0
  165. package/dist/npm/TreeList.js +1289 -0
  166. package/dist/npm/TreeListNav.d.ts +46 -0
  167. package/dist/npm/TreeListNav.js +133 -0
  168. package/dist/npm/TreeListNoRecords.d.ts +15 -0
  169. package/dist/npm/TreeListNoRecords.js +58 -0
  170. package/dist/npm/TreeListToolbar.d.ts +15 -0
  171. package/dist/npm/TreeListToolbar.js +44 -0
  172. package/dist/npm/additionalTypes.ts +21 -0
  173. package/dist/npm/cells/EditCells/TreeListBooleanEditor.d.ts +42 -0
  174. package/dist/npm/cells/EditCells/TreeListBooleanEditor.js +177 -0
  175. package/dist/npm/cells/EditCells/TreeListDateEditor.d.ts +42 -0
  176. package/dist/npm/cells/EditCells/TreeListDateEditor.js +167 -0
  177. package/dist/npm/cells/EditCells/TreeListNumericEditor.d.ts +42 -0
  178. package/dist/npm/cells/EditCells/TreeListNumericEditor.js +167 -0
  179. package/dist/npm/cells/EditCells/TreeListTextEditor.d.ts +42 -0
  180. package/dist/npm/cells/EditCells/TreeListTextEditor.js +170 -0
  181. package/dist/npm/cells/FilterCells/TreeListBooleanFilter.d.ts +19 -0
  182. package/dist/npm/cells/FilterCells/TreeListBooleanFilter.js +114 -0
  183. package/dist/npm/cells/FilterCells/TreeListDateFilter.d.ts +19 -0
  184. package/dist/npm/cells/FilterCells/TreeListDateFilter.js +114 -0
  185. package/dist/npm/cells/FilterCells/TreeListNumericFilter.d.ts +19 -0
  186. package/dist/npm/cells/FilterCells/TreeListNumericFilter.js +114 -0
  187. package/dist/npm/cells/FilterCells/TreeListTextFilter.d.ts +19 -0
  188. package/dist/npm/cells/FilterCells/TreeListTextFilter.js +114 -0
  189. package/dist/npm/cells/FilterCells/utils.d.ts +38 -0
  190. package/dist/npm/cells/FilterCells/utils.js +70 -0
  191. package/dist/npm/cells/TreeListCell.d.ts +41 -0
  192. package/dist/npm/cells/TreeListCell.js +232 -0
  193. package/dist/npm/cells/TreeListSelectionCell.d.ts +41 -0
  194. package/dist/npm/cells/TreeListSelectionCell.js +178 -0
  195. package/dist/npm/constants/main.d.ts +6 -0
  196. package/dist/npm/constants/main.js +10 -0
  197. package/dist/npm/header/TreeListHeaderCell.d.ts +1 -0
  198. package/dist/npm/header/TreeListHeaderCell.js +5 -0
  199. package/dist/npm/header/TreeListHeaderSelectionCell.d.ts +1 -0
  200. package/dist/npm/header/TreeListHeaderSelectionCell.js +13 -0
  201. package/dist/npm/interfaces/DataItemWrapper.d.ts +10 -0
  202. package/dist/npm/interfaces/DataItemWrapper.js +2 -0
  203. package/dist/npm/interfaces/TreeListCellProps.d.ts +31 -0
  204. package/dist/npm/interfaces/TreeListCellProps.js +2 -0
  205. package/dist/npm/interfaces/TreeListColumnProps.d.ts +33 -0
  206. package/dist/npm/interfaces/TreeListColumnProps.js +2 -0
  207. package/dist/npm/interfaces/TreeListFilterCellProps.d.ts +6 -0
  208. package/dist/npm/interfaces/TreeListFilterCellProps.js +2 -0
  209. package/dist/npm/interfaces/TreeListFilterOperator.d.ts +6 -0
  210. package/dist/npm/interfaces/TreeListFilterOperator.js +2 -0
  211. package/dist/npm/interfaces/TreeListHeaderCellProps.d.ts +6 -0
  212. package/dist/npm/interfaces/TreeListHeaderCellProps.js +2 -0
  213. package/dist/npm/interfaces/TreeListNoRecordsProps.d.ts +5 -0
  214. package/dist/npm/interfaces/TreeListNoRecordsProps.js +2 -0
  215. package/dist/npm/interfaces/TreeListProps.d.ts +249 -0
  216. package/dist/npm/interfaces/TreeListProps.js +2 -0
  217. package/dist/npm/interfaces/TreeListRowProps.d.ts +88 -0
  218. package/dist/npm/interfaces/TreeListRowProps.js +2 -0
  219. package/dist/npm/interfaces/TreeListSelectableSettings.d.ts +18 -0
  220. package/dist/npm/interfaces/TreeListSelectableSettings.js +2 -0
  221. package/dist/npm/interfaces/TreeListSortSettings.d.ts +9 -0
  222. package/dist/npm/interfaces/TreeListSortSettings.js +2 -0
  223. package/dist/npm/interfaces/TreeListToolbarProps.d.ts +5 -0
  224. package/dist/npm/interfaces/TreeListToolbarProps.js +5 -0
  225. package/dist/npm/interfaces/events.d.ts +265 -0
  226. package/dist/npm/interfaces/events.js +2 -0
  227. package/dist/npm/main.d.ts +30 -1
  228. package/dist/npm/main.js +55 -2
  229. package/dist/npm/messages/main.d.ts +234 -0
  230. package/dist/npm/messages/main.js +239 -0
  231. package/dist/npm/package-metadata.js +1 -1
  232. package/dist/npm/rows/DragClue.d.ts +39 -0
  233. package/dist/npm/rows/DragClue.js +68 -0
  234. package/dist/npm/rows/TreeListDraggableRow.d.ts +1 -0
  235. package/dist/npm/rows/TreeListDraggableRow.js +124 -0
  236. package/dist/npm/rows/TreeListRow.d.ts +36 -0
  237. package/dist/npm/rows/TreeListRow.js +136 -0
  238. package/dist/npm/utils/data-operations.d.ts +115 -0
  239. package/dist/npm/utils/data-operations.js +265 -0
  240. package/dist/npm/utils/main.d.ts +17 -0
  241. package/dist/npm/utils/main.js +74 -0
  242. package/package.json +11 -10
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.moveTreeItem = exports.getItemPath = exports.modifySubItems = exports.removeItems = exports.extendDataItem = exports.createDataTree = exports.treeToFlat = exports.flatData = exports.mapTreeItem = exports.mapTree = exports.filterBy = exports.orderBy = void 0;
24
+ var main_1 = require("./main");
25
+ var kendo_vue_data_tools_1 = require("@progress/kendo-vue-data-tools");
26
+ var kendo_vue_common_1 = require("@progress/kendo-vue-common");
27
+ /**
28
+ * Orders the specified tree according to the provided sort descriptors.
29
+ *
30
+ * @param {T[]} data - The data that will be sorted.
31
+ * @param {SortDescriptor[]} descriptors - The descriptors by which the data will be sorted.
32
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
33
+ * @returns {T[]} - The sorted data.
34
+ */
35
+ function orderBy(data, descriptors, subItemsField) {
36
+ return (0, kendo_vue_data_tools_1.orderBy)(data, descriptors, subItemsField);
37
+ }
38
+ exports.orderBy = orderBy;
39
+ /**
40
+ * Filters the provided data tree according to the specified `Array<FilterDescriptor|CompositeFilterDescriptor>`.
41
+ *
42
+ * @param {T[]} data - The data that will be filtered.
43
+ * @param {FilterDescriptor[]|CompositeFilterDescriptor[]} descriptors - The filter criteria that will be applied.
44
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
45
+ * @returns {T[]} - The filtered data.
46
+ */
47
+ function filterBy(data, descriptors, subItemsField) {
48
+ return (0, kendo_vue_data_tools_1.filterBy)(data, descriptors, subItemsField);
49
+ }
50
+ exports.filterBy = filterBy;
51
+ /**
52
+ * Creates a new array with the results of calling the provided callback function
53
+ * on every element in the provided data tree.
54
+ *
55
+ * @param {any[]} tree - The data tree.
56
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
57
+ * @param {(value: any) => any} callback - The callback function.
58
+ * @returns {any[]} - The new data tree.
59
+ */
60
+ var mapTree = function (tree, subItemsField, callback) {
61
+ return (0, kendo_vue_common_1.mapTree)(tree, subItemsField, callback);
62
+ };
63
+ exports.mapTree = mapTree;
64
+ /**
65
+ * Creates a new array with the results of calling the provided callback function
66
+ * on the element which match the `level` in the provided data tree.
67
+ *
68
+ * @param {any[]} tree - The data tree.
69
+ * @param {number[]} level - An array of indexes of each parent and current item in the data tree.
70
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
71
+ * @param {(value: any) => any} callback - The callback function.
72
+ * @returns {any[]} - The new data tree.
73
+ */
74
+ var mapTreeItem = function (tree, level, subItemsField, callback) {
75
+ return (0, kendo_vue_common_1.mapTreeItem)(tree, level, subItemsField, callback);
76
+ };
77
+ exports.mapTreeItem = mapTreeItem;
78
+ /**
79
+ * @hidden
80
+ */
81
+ function flatData(data, getChildren, itemMap) {
82
+ var stack = [];
83
+ var flatted = [];
84
+ // we start from end as push() improves performance by up to 50%
85
+ for (var i = data.length - 1; i >= 0; i--) {
86
+ var root = data[i];
87
+ stack.push({
88
+ root: root,
89
+ data: getChildren(root),
90
+ level: [i],
91
+ levelCount: data.length
92
+ });
93
+ }
94
+ while (stack.length > 0) {
95
+ var stackItem = stack.pop();
96
+ flatted.push(__assign(__assign({ dataItem: stackItem.root, level: __spreadArray([], stackItem.level, true) }, itemMap(stackItem.root)), { levelCount: stackItem.levelCount }));
97
+ if (stackItem.data.length) {
98
+ for (var i = stackItem.data.length - 1; i >= 0; i--) {
99
+ var root = stackItem.data[i];
100
+ stack.push({
101
+ root: root,
102
+ data: getChildren(root),
103
+ level: __spreadArray(__spreadArray([], stackItem.level, true), [i], false),
104
+ levelCount: stackItem.data.length
105
+ });
106
+ }
107
+ }
108
+ }
109
+ return flatted;
110
+ }
111
+ exports.flatData = flatData;
112
+ /**
113
+ * Creates a flat data array from the passed tree dataset.
114
+ *
115
+ * @param {object[]} dataset - The source dataset of data items.
116
+ * @param {string} expandField - The field which points to the expanded value of each data item.
117
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
118
+ * @returns {object[]} - A collection of the generated data items that are in a flat structure.
119
+ */
120
+ var treeToFlat = function (data, expandField, subItemsField) {
121
+ var expanded = function (dataItem) { return Boolean((0, main_1.getNestedValue)(expandField, dataItem)); };
122
+ var hasChildren = function (dataItem) { return Boolean((0, main_1.getNestedValue)(subItemsField, dataItem)); };
123
+ var getChildren = function (dataItem) {
124
+ var items = [];
125
+ if (expanded(dataItem) && hasChildren(dataItem)) {
126
+ items.push.apply(items, (0, main_1.getNestedValue)(subItemsField, dataItem));
127
+ }
128
+ return items;
129
+ };
130
+ var flatItems = function (dataItem, flatted, level) {
131
+ flatted.push(__assign(__assign({}, dataItem), { level: level }));
132
+ getChildren(dataItem).forEach(function (root) { return flatItems(root, flatted, level + 1); });
133
+ };
134
+ var flattedData = [];
135
+ data.forEach(function (root) { return flatItems(root, flattedData, 0); });
136
+ return flattedData;
137
+ };
138
+ exports.treeToFlat = treeToFlat;
139
+ /**
140
+ * Creates a tree from the passed dataset.
141
+ *
142
+ * @param {object[]} dataset - The source dataset of data items.
143
+ * @param {(item: object) => any} getId - A function which will return the id of the data item.
144
+ * @param {(item: object) => any} getParentId - A function which will return the data item id of its parent data item.
145
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
146
+ * @returns {object[]} - A collection of the generated data items that are structured in a tree.
147
+ */
148
+ var createDataTree = function (dataset, getId, getParentId, subItemsField) {
149
+ var hashTable = {}, dataTree = [], parentItem;
150
+ dataset.forEach(function (dataItem) { return hashTable[getId(dataItem)] = __assign({}, dataItem); });
151
+ dataset.forEach(function (dataItem) {
152
+ parentItem = hashTable[getParentId(dataItem)];
153
+ if (parentItem) {
154
+ parentItem[subItemsField] = parentItem[subItemsField] || [];
155
+ parentItem[subItemsField].push(hashTable[getId(dataItem)]);
156
+ }
157
+ else {
158
+ dataTree.push(hashTable[getId(dataItem)]);
159
+ }
160
+ });
161
+ return dataTree;
162
+ };
163
+ exports.createDataTree = createDataTree;
164
+ /**
165
+ * Similar to the `Object.assign` function. Additionally, creates a new array for the subitems.
166
+ *
167
+ * @param {object} item - The source data item.
168
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
169
+ * @param {object} propsToExtend - The props with which the source data item will be extended.
170
+ * @returns {object} - The target data item.
171
+ */
172
+ var extendDataItem = function (item, subItemsField, propsToExtend) {
173
+ return (0, kendo_vue_common_1.extendDataItem)(item, subItemsField, propsToExtend);
174
+ };
175
+ exports.extendDataItem = extendDataItem;
176
+ /**
177
+ * Removes the items from the passed `data` which match the passed `condition`.
178
+ *
179
+ * @param {any[]} data - The data tree.
180
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
181
+ * @param {(item: object) => Boolean} condition - A function that will be executed for each data item
182
+ * in the tree data and the items for which returns true will be removed.
183
+ * @returns {any[]} - The new data tree.
184
+ */
185
+ var removeItems = function (data, subItemsField, condition) {
186
+ var _a;
187
+ var newData = (0, exports.mapTree)([(_a = {}, _a[subItemsField] = __spreadArray([], data, true), _a)], subItemsField, function (item) { return removeChild(item, condition, subItemsField); });
188
+ return __spreadArray([], newData[0][subItemsField], true);
189
+ };
190
+ exports.removeItems = removeItems;
191
+ /**
192
+ * @hidden
193
+ */
194
+ var removeChild = function (item, condition, subItemsField) {
195
+ var _a;
196
+ var subItems = item[subItemsField] || [];
197
+ var childIndex = subItems.findIndex(condition);
198
+ if (childIndex !== -1) {
199
+ var newChildren = __spreadArray([], subItems, true);
200
+ newChildren.splice(childIndex, 1);
201
+ return __assign(__assign({}, item), (_a = {}, _a[subItemsField] = newChildren, _a));
202
+ }
203
+ return item;
204
+ };
205
+ /**
206
+ * Changes the `subItems` collection of each data item which matches the passed `condition`.
207
+ *
208
+ * @param {any[]} data - The data tree.
209
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
210
+ * @param {(item: object) => Boolean} condition - A function that will be executed for each data item and
211
+ * will return `true` for items that have to change the subitems collection.
212
+ * @param {(subItems: object[]) => object[]} change - A function which
213
+ * has as a parameter the subitems collection of the matched items and which will return the new subitems collection.
214
+ * @returns {any[]} - The new data tree.
215
+ */
216
+ var modifySubItems = function (data, subItemsField, condition, change) {
217
+ return (0, exports.mapTree)(data, subItemsField, function (item) {
218
+ var _a;
219
+ return condition(item) ? __assign(__assign({}, item), (_a = {}, _a[subItemsField] = change(item[subItemsField] || []), _a)) :
220
+ item;
221
+ });
222
+ };
223
+ exports.modifySubItems = modifySubItems;
224
+ /**
225
+ * Returns the data item path in the tree based on the level parameter.
226
+ *
227
+ * @param {any[]} tree - The data tree.
228
+ * @param {number[]} level - The level of the target tree item.
229
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
230
+ * @returns {any[]} - The path of the data item.
231
+ */
232
+ var getItemPath = function (tree, level, subItemsField) {
233
+ return (0, kendo_vue_common_1.getItemPath)(tree, level, subItemsField);
234
+ };
235
+ exports.getItemPath = getItemPath;
236
+ /**
237
+ * Moves the targeted item in the tree to another position.
238
+ *
239
+ * @param {any[]} data - The data tree.
240
+ * @param {number[]} target - The level of the target tree item which will be moved.
241
+ * @param {number[] | null} destination - The level of the destination tree item where the target item will be moved in.
242
+ * If it is null, the target item will be added at the root level.
243
+ * @param {string} subItemsField - The field which points to the subitems collection of each data item.
244
+ * @returns {any[]} - The new data tree.
245
+ */
246
+ var moveTreeItem = function (data, target, destination, subItemsField) {
247
+ var tree = __spreadArray([], data, true);
248
+ var targetItemPath = (0, exports.getItemPath)(tree, target, subItemsField);
249
+ var targetItem = targetItemPath.pop();
250
+ var targetParent = targetItemPath.pop();
251
+ var targetItemIndex = target[target.length - 1];
252
+ if (destination) {
253
+ var destinationItemPath = (0, exports.getItemPath)(tree, destination, subItemsField);
254
+ var destinationItem = destinationItemPath.pop();
255
+ (targetParent ? targetParent[subItemsField] : tree).splice(targetItemIndex, 1);
256
+ destinationItem[subItemsField] = destinationItem[subItemsField] || [];
257
+ destinationItem[subItemsField].push(targetItem);
258
+ }
259
+ else {
260
+ (targetParent ? targetParent[subItemsField] : tree).splice(targetItemIndex, 1);
261
+ tree.push(targetItem);
262
+ }
263
+ return tree;
264
+ };
265
+ exports.moveTreeItem = moveTreeItem;
@@ -0,0 +1,17 @@
1
+ import { DataItemWrapper } from '../interfaces/DataItemWrapper';
2
+ /**
3
+ * @hidden
4
+ */
5
+ export declare function getNestedValue(fieldName: string | undefined, dataItem: any): any;
6
+ /**
7
+ * @hidden
8
+ */
9
+ export declare function setHeaderRowsTop(table: HTMLTableElement, toolbarHeight: number, rowHeight?: (row: HTMLTableRowElement) => string | undefined): void;
10
+ /**
11
+ * @hidden
12
+ */
13
+ export declare function tableRowsVirtualization(args: {
14
+ rows: DataItemWrapper[];
15
+ tableViewPortHeight: number;
16
+ scrollTop: number;
17
+ }): DataItemWrapper[];
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableRowsVirtualization = exports.setHeaderRowsTop = exports.getNestedValue = void 0;
4
+ /**
5
+ * @hidden
6
+ */
7
+ function getNestedValue(fieldName, dataItem) {
8
+ var path = (fieldName || '').split('.');
9
+ var data = dataItem;
10
+ path.forEach(function (p) {
11
+ data = data ? data[p] : undefined;
12
+ });
13
+ return data;
14
+ }
15
+ exports.getNestedValue = getNestedValue;
16
+ function inPX(value) {
17
+ return value !== undefined && (typeof value === 'number' || /px$/i.test(String(value)));
18
+ }
19
+ /**
20
+ * @hidden
21
+ */
22
+ function setHeaderRowsTop(table, toolbarHeight, rowHeight) {
23
+ var rows = Array.from(table.tHead && table.tHead.rows || []);
24
+ var heights = [toolbarHeight];
25
+ var height;
26
+ var calculateRowHeight = rowHeight ||
27
+ (function (row) { return window.getComputedStyle(row).height || undefined; });
28
+ rows.forEach(function (row) {
29
+ var computedHeight = calculateRowHeight(row);
30
+ heights.push(inPX(computedHeight) ? parseFloat(String(computedHeight)) : row.offsetHeight);
31
+ });
32
+ for (var i = 0; i < rows.length; i++) {
33
+ height = heights.slice(0, i + 1).reduce(function (acc, curr) { return acc + curr; });
34
+ Array.from(rows[i].cells).forEach(function (c) { return c.style.top = height + 'px'; });
35
+ }
36
+ }
37
+ exports.setHeaderRowsTop = setHeaderRowsTop;
38
+ var MAX_LEVEL = 1000000;
39
+ /**
40
+ * @hidden
41
+ */
42
+ function tableRowsVirtualization(args) {
43
+ var rows = args.rows, tableViewPortHeight = args.tableViewPortHeight, scrollTop = args.scrollTop;
44
+ if (rows.length === 0) {
45
+ return [];
46
+ }
47
+ var itemHeight = rows[0].height;
48
+ var scrollItemIndex = Math.min(Math.round(scrollTop / itemHeight), rows.length);
49
+ var itemsOnOneScreen = Math.round(tableViewPortHeight / itemHeight);
50
+ var start = Math.max(0, scrollItemIndex - itemsOnOneScreen);
51
+ var end = Math.min(rows.length, scrollItemIndex + (2 * itemsOnOneScreen));
52
+ var items = rows.slice(start, end);
53
+ var lastItem = items[items.length - 1];
54
+ if (start > 0) {
55
+ items.unshift({
56
+ dataItem: {},
57
+ level: [MAX_LEVEL],
58
+ offsetTop: 0,
59
+ height: items[0].offsetTop,
60
+ levelCount: 0
61
+ });
62
+ }
63
+ if (end < rows.length - 1) {
64
+ items.push({
65
+ dataItem: {},
66
+ level: [MAX_LEVEL, MAX_LEVEL],
67
+ offsetTop: lastItem.offsetTop + lastItem.height,
68
+ height: (rows.length - end) * itemHeight,
69
+ levelCount: 0
70
+ });
71
+ }
72
+ return items;
73
+ }
74
+ exports.tableRowsVirtualization = tableRowsVirtualization;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-vue-treelist",
3
- "version": "3.5.1",
3
+ "version": "3.5.2-dev.202209020458",
4
4
  "description": "Kendo UI for Vue TreeList package",
5
5
  "repository": {
6
6
  "type": "git",
@@ -47,21 +47,22 @@
47
47
  "vue": "^2.6.12 || ^3.0.2"
48
48
  },
49
49
  "dependencies": {
50
- "@progress/kendo-vue-common": "3.5.1"
50
+ "@progress/kendo-vue-common": "3.5.2-dev.202209020458"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@progress/kendo-data-query": "^1.0.0",
54
54
  "@progress/kendo-date-math": "^1.4.1",
55
55
  "@progress/kendo-drawing": "^1.8.0",
56
56
  "@progress/kendo-licensing": "^1.0.1",
57
- "@progress/kendo-vue-data-tools": "3.5.1",
58
- "@progress/kendo-vue-dateinputs": "3.5.1",
59
- "@progress/kendo-vue-dialogs": "3.5.1",
60
- "@progress/kendo-vue-dropdowns": "3.5.1",
61
- "@progress/kendo-vue-excel-export": "3.5.1",
62
- "@progress/kendo-vue-inputs": "3.5.1",
63
- "@progress/kendo-vue-intl": "3.5.1",
64
- "@progress/kendo-vue-pdf": "3.5.1"
57
+ "@progress/kendo-vue-buttons": "3.5.2-dev.202209020458",
58
+ "@progress/kendo-vue-data-tools": "3.5.2-dev.202209020458",
59
+ "@progress/kendo-vue-dateinputs": "3.5.2-dev.202209020458",
60
+ "@progress/kendo-vue-dialogs": "3.5.2-dev.202209020458",
61
+ "@progress/kendo-vue-dropdowns": "3.5.2-dev.202209020458",
62
+ "@progress/kendo-vue-excel-export": "3.5.2-dev.202209020458",
63
+ "@progress/kendo-vue-inputs": "3.5.2-dev.202209020458",
64
+ "@progress/kendo-vue-intl": "3.5.2-dev.202209020458",
65
+ "@progress/kendo-vue-pdf": "3.5.2-dev.202209020458"
65
66
  },
66
67
  "@progress": {
67
68
  "friendlyName": "TreeList",