@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,1270 @@
1
+ var __assign = this && this.__assign || function () {
2
+ __assign = Object.assign || function (t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+
6
+ for (var p in s) {
7
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
+ }
9
+ }
10
+
11
+ return t;
12
+ };
13
+
14
+ return __assign.apply(this, arguments);
15
+ };
16
+
17
+ var __rest = this && this.__rest || function (s, e) {
18
+ var t = {};
19
+
20
+ for (var p in s) {
21
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
22
+ }
23
+
24
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
25
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
26
+ }
27
+ return t;
28
+ };
29
+
30
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
31
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
32
+ if (ar || !(i in from)) {
33
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
34
+ ar[i] = from[i];
35
+ }
36
+ }
37
+ return to.concat(ar || Array.prototype.slice.call(from));
38
+ }; // @ts-ignore
39
+
40
+
41
+ import * as Vue from 'vue';
42
+ var allVue = Vue;
43
+ var gh = allVue.h;
44
+ var isV3 = allVue.version && allVue.version[0] === '3';
45
+ var ref = allVue.ref;
46
+ var markRaw = allVue.markRaw;
47
+ import { classNames, noop, getter, guid, getDefaultSlots, templateRendering, getListeners, getTemplate, isRtl } from '@progress/kendo-vue-common';
48
+ import { Header, HeaderRow, FilterRow as TreeListFilterRow, ColumnResize, CommonDragLogic, DragClue, DropClue, tableColumnsVirtualization, readColumns, mapColumns, // tableKeyboardNavigation,
49
+ // TableKeyboardNavigationContext,
50
+ TableKeyboardNavigationProvider, tableKeyboardNavigationTools as navigationTools, operators, getSelectionOptions, normalize, Pager } from '@progress/kendo-vue-data-tools';
51
+ import { TreeListNav } from './TreeListNav';
52
+ import { getNestedValue, setHeaderRowsTop, tableRowsVirtualization } from './utils/main';
53
+ import { flatData as _flatData } from './utils/data-operations';
54
+ import { TreeListCell } from './cells/TreeListCell';
55
+ import { TreeListNoRecords } from './TreeListNoRecords';
56
+ import { TreeListRow } from './rows/TreeListRow';
57
+ import { validatePackage } from '@progress/kendo-vue-common';
58
+ import { packageMetadata } from './package-metadata';
59
+ import { hasListener } from '@progress/kendo-vue-common';
60
+ import { pagerMessagesMap } from './messages/main';
61
+ /**
62
+ * @hidden
63
+ */
64
+
65
+ var TreeListVue2 = {
66
+ name: 'KendoTreeList',
67
+ props: {
68
+ dataItems: Array,
69
+ resizable: Boolean,
70
+ reorderable: Boolean,
71
+ sortable: [Object, Boolean],
72
+ sort: Array,
73
+ columns: Array,
74
+ columnVirtualization: Boolean,
75
+ filter: [Array, Object],
76
+ filterable: Boolean,
77
+ filterRow: [String, Function, Object],
78
+ toolbar: [String, Function, Object],
79
+ noRecords: [String, Function, Object],
80
+ expandField: String,
81
+ subItemsField: String,
82
+ selectedField: String,
83
+ editField: String,
84
+ scrollable: String,
85
+ rowHeight: Number,
86
+ tableProps: Object,
87
+ rowClass: Function,
88
+ pageable: [Boolean, Object],
89
+ pager: [String, Function, Object],
90
+ skip: Number,
91
+ take: Number,
92
+ wrapperStyle: Object,
93
+ dataItemKey: String,
94
+ navigatable: Boolean
95
+ },
96
+ created: function created() {
97
+ this.prevData = [];
98
+ this.prevColumns = undefined;
99
+ this.flattedData = [];
100
+ this.extendedColumn = [];
101
+ this.columnsMap = [];
102
+ this.element = null;
103
+ this._treeListId = guid();
104
+ validatePackage(packageMetadata);
105
+ this.dragLogic = new CommonDragLogic(this.columnReorder, noop, noop);
106
+ this.columnResize = new ColumnResize(this.onResize.bind(this)); // tableKeyboardNavigation.onConstructor({
107
+ // navigatable: Boolean(props.navigatable),
108
+ // contextStateRef: this.contextStateRef,
109
+ // navigationStateRef: this.navigationStateRef
110
+ // });
111
+ },
112
+ data: function data() {
113
+ return {
114
+ wrapperScrollLeft: 0,
115
+ wrapperScrollTop: 0,
116
+ updateOnScroll: false,
117
+ tbodyOffsetTop: 0,
118
+ isRtl: false
119
+ };
120
+ },
121
+ // private get document(): Document | undefined {
122
+ // if (!canUseDOM) { return; }
123
+ // // useful only for user actions
124
+ // return (this.element && this.element.ownerDocument) || document;
125
+ // }
126
+ // private contextStateRef: { current?: TableKeyboardNavigationContextType } = { current: undefined };
127
+ // private navigationStateRef: { current?: TableKeyboardNavigationStateType } = { current: undefined };
128
+
129
+ /**
130
+ * @hidden
131
+ */
132
+ mounted: function mounted() {
133
+ this.calculateSizes(this.$el);
134
+ var rtl = isRtl(this.$el);
135
+ this.isRtl = rtl; // tableKeyboardNavigation.onComponentDidMount({
136
+ // scope: this.element || undefined,
137
+ // contextStateRef: this.contextStateRef,
138
+ // navigationStateRef: this.navigationStateRef
139
+ // });
140
+ },
141
+ // /**
142
+ // * @hidden
143
+ // */
144
+ // getSnapshotBeforeUpdate() {
145
+ // tableKeyboardNavigation.onGetSnapshotBeforeUpdate({
146
+ // document: this.document,
147
+ // contextStateRef: this.contextStateRef,
148
+ // navigationStateRef: this.navigationStateRef
149
+ // });
150
+ // return null;
151
+ // }
152
+
153
+ /**
154
+ * @hidden
155
+ */
156
+ updated: function updated() {// if (prevProps.columns !== this.$props.columns) {
157
+ // this.calculateSizes(this.element);
158
+ // }
159
+ // tableKeyboardNavigation.onComponentDidUpdate({
160
+ // scope: this.element || undefined,
161
+ // contextStateRef: this.contextStateRef,
162
+ // navigationStateRef: this.navigationStateRef
163
+ // });
164
+ },
165
+
166
+ /**
167
+ * @hidden
168
+ */
169
+ destroyed: function destroyed() {
170
+ this.columnResize.columns = [];
171
+ this.dragLogic.columns = [];
172
+ this.extendedColumn = [];
173
+ this.columnsMap = [];
174
+ this.prevData = [];
175
+ this.flattedData = [];
176
+ this.updateOnScroll = false;
177
+ },
178
+ // @ts-ignore
179
+ setup: !isV3 ? undefined : function () {
180
+ var v3 = !!isV3;
181
+ return {
182
+ v3: v3
183
+ };
184
+ },
185
+ // @ts-ignore
186
+ render: function render(createElement) {
187
+ var _this2 = this;
188
+
189
+ var _this = this;
190
+
191
+ var h = gh || createElement;
192
+ var defaultSlot = getDefaultSlots(this);
193
+ var _a = this.$props,
194
+ _b = _a.columns,
195
+ columns = _b === void 0 ? [] : _b,
196
+ filterRow = _a.filterRow,
197
+ _c = _a.scrollable,
198
+ scrollable = _c === void 0 ? 'scrollable' : _c,
199
+ _d = _a.resizable,
200
+ resizable = _d === void 0 ? false : _d,
201
+ _e = _a.reorderable,
202
+ reorderable = _e === void 0 ? false : _e,
203
+ skip = _a.skip,
204
+ take = _a.take;
205
+ var filterable = this.filterable || columns.some(function (c) {
206
+ return Boolean(c.filter) || Boolean(c.filterCell);
207
+ }) || filterRow !== undefined;
208
+ var FilterRow = filterRow || TreeListFilterRow;
209
+ var idPrefix = navigationTools.getIdPrefix(undefined); // to do this.navigationStateRef
210
+
211
+ if (this.prevColumns !== columns) {
212
+ this.extendedColumn = readColumns(columns, {
213
+ prevId: 0,
214
+ idPrefix: idPrefix
215
+ });
216
+ this.columnsMap = mapColumns(this.extendedColumn);
217
+ }
218
+
219
+ this.prevColumns = this.$props.columns;
220
+ var leafColumns = this.extendedColumn.filter(function (c) {
221
+ return c.children.length === 0;
222
+ });
223
+ this.columnResize.columns = this.extendedColumn;
224
+ this.columnResize.resizable = resizable;
225
+ this.dragLogic.columns = this.extendedColumn;
226
+ this.dragLogic.reorderable = reorderable;
227
+ this.dragLogic.groupable = false;
228
+ var header = // @ts-ignore
229
+ h(Header, {
230
+ headerRow: // @ts-ignore
231
+ h(HeaderRow, {
232
+ sort: this.$props.sort,
233
+ attrs: this.v3 ? undefined : {
234
+ sort: this.$props.sort,
235
+ sortable: this.$props.sortable,
236
+ filterable: this.$props.filterable,
237
+ columns: this.extendedColumn,
238
+ columnsMap: this.columnsMap,
239
+ cellRender: this.$props.headerCellRender,
240
+ columnResize: this.columnResize,
241
+ columnMenu: this.$props.columnMenu,
242
+ columnMenuFilter: this.$props.columnMenuFilter,
243
+ columnMenuFilterChange: this.columnMenuFilterChange,
244
+ filterRow: filterable ? // @ts-ignore
245
+ h(FilterRow, {
246
+ columns: leafColumns,
247
+ attrs: this.v3 ? undefined : {
248
+ columns: leafColumns,
249
+ filter: this.$props.filter,
250
+ sort: this.$props.sort,
251
+ ariaRowIndex: this.columnsMap.length + 1,
252
+ grid: this,
253
+ filterOperators: this.$props.filterOperators || operators,
254
+ cellRender: this.$props.filterCellRender,
255
+ isRtl: this.isRtl
256
+ },
257
+ filter: this.$props.filter,
258
+ onFilterchange: this.filterChange,
259
+ on: this.v3 ? undefined : {
260
+ "filterchange": this.filterChange
261
+ },
262
+ sort: this.$props.sort,
263
+ ariaRowIndex: this.columnsMap.length + 1,
264
+ grid: this,
265
+ filterOperators: this.$props.filterOperators || operators,
266
+ cellRender: this.$props.filterCellRender,
267
+ isRtl: this.isRtl
268
+ }) : undefined
269
+ },
270
+ sortable: this.$props.sortable,
271
+ filterable: this.$props.filterable,
272
+ onSortChange: this.sortChange,
273
+ on: this.v3 ? undefined : {
274
+ "sortChange": this.sortChange,
275
+ "selectionchange": this.onHeaderSelectionChange,
276
+ "pressHandler": this.dragLogic.pressHandler,
277
+ "dragHandler": this.dragLogic.dragHandler,
278
+ "releaseHandler": this.dragLogic.releaseHandler
279
+ },
280
+ onSelectionchange: this.onHeaderSelectionChange,
281
+ columns: this.extendedColumn,
282
+ columnsMap: this.columnsMap,
283
+ cellRender: this.$props.headerCellRender,
284
+ columnResize: this.columnResize,
285
+ columnMenu: this.$props.columnMenu,
286
+ columnMenuFilter: this.$props.columnMenuFilter,
287
+ columnMenuFilterChange: this.columnMenuFilterChange,
288
+ onPressHandler: this.dragLogic.pressHandler,
289
+ onDragHandler: this.dragLogic.dragHandler,
290
+ onReleaseHandler: this.dragLogic.releaseHandler,
291
+ filterRow: filterable ? h(FilterRow, {
292
+ columns: leafColumns,
293
+ attrs: this.v3 ? undefined : {
294
+ columns: leafColumns,
295
+ filter: this.$props.filter,
296
+ sort: this.$props.sort,
297
+ ariaRowIndex: this.columnsMap.length + 1,
298
+ grid: this,
299
+ filterOperators: this.$props.filterOperators || operators,
300
+ cellRender: this.$props.filterCellRender,
301
+ isRtl: this.isRtl
302
+ },
303
+ filter: this.$props.filter,
304
+ onFilterchange: this.filterChange,
305
+ on: this.v3 ? undefined : {
306
+ "filterchange": this.filterChange
307
+ },
308
+ sort: this.$props.sort,
309
+ ariaRowIndex: this.columnsMap.length + 1,
310
+ grid: this,
311
+ filterOperators: this.$props.filterOperators || operators,
312
+ cellRender: this.$props.filterCellRender,
313
+ isRtl: this.isRtl
314
+ }) : undefined
315
+ }),
316
+ attrs: this.v3 ? undefined : {
317
+ headerRow: h(HeaderRow, {
318
+ sort: this.$props.sort,
319
+ attrs: this.v3 ? undefined : {
320
+ sort: this.$props.sort,
321
+ sortable: this.$props.sortable,
322
+ filterable: this.$props.filterable,
323
+ columns: this.extendedColumn,
324
+ columnsMap: this.columnsMap,
325
+ cellRender: this.$props.headerCellRender,
326
+ columnResize: this.columnResize,
327
+ columnMenu: this.$props.columnMenu,
328
+ columnMenuFilter: this.$props.columnMenuFilter,
329
+ columnMenuFilterChange: this.columnMenuFilterChange,
330
+ filterRow: filterable ? h(FilterRow, {
331
+ columns: leafColumns,
332
+ attrs: this.v3 ? undefined : {
333
+ columns: leafColumns,
334
+ filter: this.$props.filter,
335
+ sort: this.$props.sort,
336
+ ariaRowIndex: this.columnsMap.length + 1,
337
+ grid: this,
338
+ filterOperators: this.$props.filterOperators || operators,
339
+ cellRender: this.$props.filterCellRender,
340
+ isRtl: this.isRtl
341
+ },
342
+ filter: this.$props.filter,
343
+ onFilterchange: this.filterChange,
344
+ on: this.v3 ? undefined : {
345
+ "filterchange": this.filterChange
346
+ },
347
+ sort: this.$props.sort,
348
+ ariaRowIndex: this.columnsMap.length + 1,
349
+ grid: this,
350
+ filterOperators: this.$props.filterOperators || operators,
351
+ cellRender: this.$props.filterCellRender,
352
+ isRtl: this.isRtl
353
+ }) : undefined
354
+ },
355
+ sortable: this.$props.sortable,
356
+ filterable: this.$props.filterable,
357
+ onSortChange: this.sortChange,
358
+ on: this.v3 ? undefined : {
359
+ "sortChange": this.sortChange,
360
+ "selectionchange": this.onHeaderSelectionChange,
361
+ "pressHandler": this.dragLogic.pressHandler,
362
+ "dragHandler": this.dragLogic.dragHandler,
363
+ "releaseHandler": this.dragLogic.releaseHandler
364
+ },
365
+ onSelectionchange: this.onHeaderSelectionChange,
366
+ columns: this.extendedColumn,
367
+ columnsMap: this.columnsMap,
368
+ cellRender: this.$props.headerCellRender,
369
+ columnResize: this.columnResize,
370
+ columnMenu: this.$props.columnMenu,
371
+ columnMenuFilter: this.$props.columnMenuFilter,
372
+ columnMenuFilterChange: this.columnMenuFilterChange,
373
+ onPressHandler: this.dragLogic.pressHandler,
374
+ onDragHandler: this.dragLogic.dragHandler,
375
+ onReleaseHandler: this.dragLogic.releaseHandler,
376
+ filterRow: filterable ? h(FilterRow, {
377
+ columns: leafColumns,
378
+ attrs: this.v3 ? undefined : {
379
+ columns: leafColumns,
380
+ filter: this.$props.filter,
381
+ sort: this.$props.sort,
382
+ ariaRowIndex: this.columnsMap.length + 1,
383
+ grid: this,
384
+ filterOperators: this.$props.filterOperators || operators,
385
+ cellRender: this.$props.filterCellRender,
386
+ isRtl: this.isRtl
387
+ },
388
+ filter: this.$props.filter,
389
+ onFilterchange: this.filterChange,
390
+ on: this.v3 ? undefined : {
391
+ "filterchange": this.filterChange
392
+ },
393
+ sort: this.$props.sort,
394
+ ariaRowIndex: this.columnsMap.length + 1,
395
+ grid: this,
396
+ filterOperators: this.$props.filterOperators || operators,
397
+ cellRender: this.$props.filterCellRender,
398
+ isRtl: this.isRtl
399
+ }) : undefined
400
+ }),
401
+ columnResize: this.columnResize
402
+ },
403
+ columnResize: this.columnResize
404
+ });
405
+ var wrapperStyles = this.$props.wrapperStyle || {};
406
+
407
+ var _f = tableColumnsVirtualization({
408
+ enabled: this.$props.columnVirtualization,
409
+ columns: leafColumns,
410
+ scrollLeft: this.wrapperScrollLeft,
411
+ tableViewPortWidth: parseFloat((wrapperStyles.width || '').toString())
412
+ }),
413
+ colSpans = _f.colSpans,
414
+ hiddenColumns = _f.hiddenColumns;
415
+
416
+ var dataRow = function dataRow(item, inEdit, rowId, isRowExpanded, rowDataIndex, selectedValue) {
417
+ return leafColumns.map(function (column, columnIndex) {
418
+ var _this = this;
419
+
420
+ if (hiddenColumns[columnIndex]) {
421
+ return null;
422
+ }
423
+
424
+ var columnKey = column.id ? column.id : columnIndex;
425
+ var className = "".concat(column.className ? column.className + ' ' : '') + "".concat(column.locked ? 'k-grid-content-sticky' : '');
426
+
427
+ if (inEdit && column.editCell) {
428
+ return h(column.editCell, {
429
+ key: columnKey // {...cellProps}
430
+ ,
431
+ onChange: this.itemChange,
432
+ on: this.v3 ? undefined : {
433
+ "change": this.itemChange
434
+ }
435
+ });
436
+ }
437
+
438
+ if (column.cell) {
439
+ return h(column.cell, {
440
+ key: columnKey
441
+ });
442
+ }
443
+
444
+ return h(TreeListCell, {
445
+ key: columnKey,
446
+ id: navigationTools.generateNavigatableId("".concat(rowId, "-").concat(String(columnIndex)), idPrefix),
447
+ attrs: this.v3 ? undefined : {
448
+ id: navigationTools.generateNavigatableId("".concat(rowId, "-").concat(String(columnIndex)), idPrefix),
449
+ colSpan: colSpans[columnIndex],
450
+ dataItem: item.dataItem,
451
+ field: column.field,
452
+ format: column.format,
453
+ render: this.$props.cellRender,
454
+ selectionChange: this.$props.onSelectionChange ? function (e) {
455
+ _this.selectionChange({
456
+ event: e,
457
+ item: item,
458
+ columnIndex: columnIndex,
459
+ dataIndex: rowDataIndex
460
+ });
461
+ } : undefined,
462
+ level: item.level,
463
+ expandable: column.expandable,
464
+ expanded: isRowExpanded,
465
+ hasChildren: this.hasChildren(item.dataItem),
466
+ colIndex: columnIndex,
467
+ ariaColumnIndex: column.ariaColumnIndex,
468
+ isSelected: Array.isArray(selectedValue) && selectedValue.indexOf(columnIndex) > -1
469
+ },
470
+ colSpan: colSpans[columnIndex],
471
+ dataItem: item.dataItem,
472
+ field: column.field,
473
+ format: column.format,
474
+ "class": className || undefined,
475
+ render: this.$props.cellRender,
476
+ onChange: this.itemChange,
477
+ on: this.v3 ? undefined : {
478
+ "change": this.itemChange,
479
+ "expandchange": this.expandChange
480
+ },
481
+ selectionChange: this.$props.onSelectionChange ? function (e) {
482
+ _this.selectionChange({
483
+ event: e,
484
+ item: item,
485
+ columnIndex: columnIndex,
486
+ dataIndex: rowDataIndex
487
+ });
488
+ } : undefined,
489
+ level: item.level,
490
+ expandable: column.expandable,
491
+ expanded: isRowExpanded,
492
+ hasChildren: this.hasChildren(item.dataItem),
493
+ onExpandchange: this.expandChange,
494
+ colIndex: columnIndex,
495
+ ariaColumnIndex: column.ariaColumnIndex,
496
+ style: column.left !== undefined && {
497
+ left: column.left,
498
+ right: column.right,
499
+ borderRightWidth: column.rightBorder ? '1px' : ''
500
+ } || {},
501
+ isSelected: Array.isArray(selectedValue) && selectedValue.indexOf(columnIndex) > -1
502
+ });
503
+ }, _this);
504
+ };
505
+
506
+ var flattedData = this.flatData();
507
+ var total = flattedData.length;
508
+
509
+ if (skip !== undefined && take !== undefined) {
510
+ flattedData = flattedData.slice(skip, skip + take);
511
+ }
512
+
513
+ if (scrollable === 'virtual') {
514
+ flattedData = tableRowsVirtualization({
515
+ rows: flattedData,
516
+ tableViewPortHeight: parseFloat((wrapperStyles.height || wrapperStyles.maxHeight || '').toString()),
517
+ scrollTop: this.wrapperScrollTop
518
+ });
519
+ this.updateOnScroll = false;
520
+ }
521
+
522
+ var levels = flattedData.length ? flattedData.map(function (i) {
523
+ return i.level;
524
+ }) : [];
525
+ var rowIndexStart = this.columnsMap.length + (filterable ? 1 : 0) + 1;
526
+ var body = flattedData.length > 0 && flattedData.map(function (item, rowIndex) {
527
+ var _this = this;
528
+
529
+ var inEdit = getNestedValue(this.$props.editField, item.dataItem);
530
+ var dataItemKeyValue = this.$props.dataItemKey && getter(this.$props.dataItemKey)(item.dataItem);
531
+ var rowId = String(dataItemKeyValue ? dataItemKeyValue : item.level.join('.'));
532
+ var isRowExpanded = this.expanded(item.dataItem);
533
+ var selectedValue = this.$props.selectedField ? getNestedValue(this.$props.selectedField, item.dataItem) : undefined;
534
+ var EditRow = this.$props.editRow;
535
+ var Row = this.$props.row || TreeListRow;
536
+ var cells = dataRow(item, inEdit, rowId, isRowExpanded, rowIndex, selectedValue);
537
+ return inEdit && EditRow ? h(EditRow, [cells]) : // @ts-ignore function children
538
+ h(Row, {
539
+ key: rowId,
540
+ level: item.level,
541
+ attrs: this.v3 ? undefined : {
542
+ level: item.level,
543
+ levels: levels,
544
+ dataItem: item.dataItem,
545
+ selectedField: this.$props.selectedField,
546
+ rowHeight: scrollable === 'virtual' ? item.height : this.$props.rowHeight,
547
+ render: this.$props.rowRender,
548
+ isAltRow: rowIndex % 2 !== 0,
549
+ expanded: isRowExpanded,
550
+ rowIndex: rowIndex,
551
+ ariaRowIndex: rowIndexStart + rowIndex,
552
+ ariaSetSize: item.levelCount,
553
+ ariaPosInSet: item.level[item.level.length - 1] + 1,
554
+ isSelected: typeof selectedValue === 'boolean' && selectedValue
555
+ },
556
+ levels: levels,
557
+ dataItem: item.dataItem,
558
+ selectedField: this.$props.selectedField,
559
+ rowHeight: scrollable === 'virtual' ? item.height : this.$props.rowHeight,
560
+ render: this.$props.rowRender,
561
+ onDrop: this.onRowDrop,
562
+ on: this.v3 ? undefined : {
563
+ "drop": this.onRowDrop,
564
+ "drag": this.onRowDrag,
565
+ "click": function click(e) {
566
+ return _this.rowClick(e, item);
567
+ },
568
+ "doubleClick": function doubleClick(e) {
569
+ return _this.rowDoubleClick(e, item);
570
+ },
571
+ "contextMenu": function contextMenu(e) {
572
+ return _this.rowContextMenu(e, item);
573
+ }
574
+ },
575
+ onDrag: this.onRowDrag,
576
+ onClick: function click(e) {
577
+ return _this.rowClick(e, item);
578
+ },
579
+ onDoubleClick: function doubleClick(e) {
580
+ return _this.rowDoubleClick(e, item);
581
+ },
582
+ onContextMenu: function contextMenu(e) {
583
+ return _this.rowContextMenu(e, item);
584
+ },
585
+ isAltRow: rowIndex % 2 !== 0,
586
+ expanded: isRowExpanded,
587
+ rowIndex: rowIndex,
588
+ ariaRowIndex: rowIndexStart + rowIndex,
589
+ ariaSetSize: item.levelCount,
590
+ ariaPosInSet: item.level[item.level.length - 1] + 1,
591
+ isSelected: typeof selectedValue === 'boolean' && selectedValue,
592
+ "class": this.$props.rowClass ? this.$props.rowClass(item) : ''
593
+ }, this.v3 ? function () {
594
+ return [cells];
595
+ } : [cells]);
596
+ }, this) || h("tr", {
597
+ "class": "k-grid-norecords"
598
+ }, [h("td", {
599
+ colSpan: leafColumns.length,
600
+ attrs: this.v3 ? undefined : {
601
+ colSpan: leafColumns.length
602
+ }
603
+ }, [this.$props.noRecords || h(TreeListNoRecords)])]);
604
+
605
+ var sorted = function sorted(field) {
606
+ return _this.$props.sort && _this.$props.sort.some(function (descriptor) {
607
+ return descriptor.field === field;
608
+ });
609
+ };
610
+
611
+ var colGroups = h("colgroup", {
612
+ ref: function ref(c) {
613
+ _this.columnResize.colGroupMain = c;
614
+ },
615
+ role: 'presentation',
616
+ attrs: this.v3 ? undefined : {
617
+ role: 'presentation'
618
+ }
619
+ }, [leafColumns.map(function (column, index) {
620
+ return h("col", {
621
+ key: index.toString(),
622
+ "class": sorted(column.field) ? 'k-sorted' : undefined,
623
+ style: column.width !== undefined ? {
624
+ width: column.width
625
+ } : undefined
626
+ });
627
+ })]);
628
+ var virtualScroll = this.$props.columnVirtualization || this.$props.scrollable === 'virtual';
629
+ var tableUserSelect = this.$props.selectable && this.$props.selectable.drag ? 'none' : undefined;
630
+ var tableProps = this.$props.tableProps || {};
631
+ var pagerTemplate = templateRendering.call(this, this.$props.pager, getListeners.call(this)); // @ts-ignore
632
+
633
+ var defaultPagerRendering = this.$props.pageable && h(Pager, {
634
+ "class": 'k-grid-pager',
635
+ onPagesizechange: this.pageChangeHandler,
636
+ on: this.v3 ? undefined : {
637
+ "pagesizechange": this.pageChangeHandler,
638
+ "pagechange": this.pageChangeHandler
639
+ },
640
+ onPagechange: this.pageChangeHandler,
641
+ total: total,
642
+ attrs: this.v3 ? undefined : {
643
+ total: total,
644
+ skip: this.$props.skip || 0,
645
+ pageSize: this.$props.take || 10,
646
+ messagesMap: pagerMessagesMap,
647
+ settings: normalize(this.$props.pageable || {})
648
+ },
649
+ skip: this.$props.skip || 0,
650
+ pageSize: this.$props.take || 10,
651
+ messagesMap: pagerMessagesMap,
652
+ settings: normalize(this.$props.pageable || {})
653
+ });
654
+ var pager = getTemplate.call(this, {
655
+ h: h,
656
+ template: pagerTemplate,
657
+ defaultRendering: defaultPagerRendering,
658
+ additionalProps: __assign(__assign({}, this.$props), {
659
+ skip: this.skip || 0,
660
+ messagesMap: pagerMessagesMap
661
+ }),
662
+ additionalListeners: {
663
+ pagesizechange: this.pageChangeHandler,
664
+ pagechange: this.pageChangeHandler
665
+ }
666
+ });
667
+ return (// @ts-ignore function children
668
+ h(TableKeyboardNavigationProvider, {
669
+ ref: 'navRef',
670
+ id: this._treeListId,
671
+ attrs: this.v3 ? undefined : {
672
+ id: this._treeListId,
673
+ navigatable: this.$props.navigatable
674
+ },
675
+ navigatable: this.$props.navigatable
676
+ }, this.v3 ? function () {
677
+ return [// @ts-ignore function children
678
+ h(TreeListNav, {
679
+ style: _this2.$props.wrapperStyle,
680
+ "class": classNames('k-widget k-grid', _this2.$props.className, {
681
+ 'k-treelist-scrollable': scrollable !== 'none'
682
+ }),
683
+ ref: function ref(e) {
684
+ return _this.element = e;
685
+ },
686
+ currentData: flattedData,
687
+ attrs: _this2.v3 ? undefined : {
688
+ currentData: flattedData,
689
+ "aria-rowcount": total,
690
+ "aria-colcount": leafColumns.length,
691
+ role: 'treegrid'
692
+ },
693
+ onScroll: virtualScroll ? _this2.handleOnScroll : noop,
694
+ on: _this2.v3 ? undefined : {
695
+ "scroll": virtualScroll ? _this2.handleOnScroll : noop,
696
+ "keyDown": _this2.onKeyDown,
697
+ "focus": _this2.onFocus
698
+ },
699
+ onKeyDown: _this2.onKeyDown,
700
+ onFocus: _this2.onFocus,
701
+ "aria-rowcount": total,
702
+ "aria-colcount": leafColumns.length,
703
+ role: 'treegrid'
704
+ }, _this2.v3 ? function () {
705
+ return [_this2.$props.toolbar, // // @ts-ignore
706
+ // <TableSelection
707
+ // selectable={this.$props.selectable}
708
+ // onRelease={this.selectionRelease}
709
+ // >
710
+ h("table", {
711
+ // {...tableProps}
712
+ style: __assign(__assign({}, tableProps.style || {}), {
713
+ userSelect: tableUserSelect
714
+ }),
715
+ role: 'presentation',
716
+ attrs: _this2.v3 ? undefined : {
717
+ role: 'presentation'
718
+ }
719
+ }, [colGroups, header, h("tbody", {
720
+ // {...tableKeyboardNavigationBodyAttributes}
721
+ role: 'presentation',
722
+ attrs: _this2.v3 ? undefined : {
723
+ role: 'presentation'
724
+ }
725
+ }, [body])]) // </TableSelection>
726
+ , pager, reorderable && h(DropClue, {
727
+ ref: _this2.dragLogic.refDropElementClue
728
+ }), reorderable && h(DragClue, {
729
+ ref: _this2.dragLogic.refDragElementClue
730
+ })];
731
+ } : [_this2.$props.toolbar, h("table", {
732
+ style: __assign(__assign({}, tableProps.style || {}), {
733
+ userSelect: tableUserSelect
734
+ }),
735
+ role: 'presentation',
736
+ attrs: _this2.v3 ? undefined : {
737
+ role: 'presentation'
738
+ }
739
+ }, [colGroups, header, h("tbody", {
740
+ role: 'presentation',
741
+ attrs: _this2.v3 ? undefined : {
742
+ role: 'presentation'
743
+ }
744
+ }, [body])]), pager, reorderable && h(DropClue, {
745
+ ref: _this2.dragLogic.refDropElementClue
746
+ }), reorderable && h(DragClue, {
747
+ ref: _this2.dragLogic.refDragElementClue
748
+ })])];
749
+ } : [h(TreeListNav, {
750
+ style: _this2.$props.wrapperStyle,
751
+ "class": classNames('k-widget k-grid', _this2.$props.className, {
752
+ 'k-treelist-scrollable': scrollable !== 'none'
753
+ }),
754
+ ref: function ref(e) {
755
+ return _this.element = e;
756
+ },
757
+ currentData: flattedData,
758
+ attrs: _this2.v3 ? undefined : {
759
+ currentData: flattedData,
760
+ "aria-rowcount": total,
761
+ "aria-colcount": leafColumns.length,
762
+ role: 'treegrid'
763
+ },
764
+ onScroll: virtualScroll ? _this2.handleOnScroll : noop,
765
+ on: _this2.v3 ? undefined : {
766
+ "scroll": virtualScroll ? _this2.handleOnScroll : noop,
767
+ "keyDown": _this2.onKeyDown,
768
+ "focus": _this2.onFocus
769
+ },
770
+ onKeyDown: _this2.onKeyDown,
771
+ onFocus: _this2.onFocus,
772
+ "aria-rowcount": total,
773
+ "aria-colcount": leafColumns.length,
774
+ role: 'treegrid'
775
+ }, _this2.v3 ? function () {
776
+ return [_this2.$props.toolbar, h("table", {
777
+ style: __assign(__assign({}, tableProps.style || {}), {
778
+ userSelect: tableUserSelect
779
+ }),
780
+ role: 'presentation',
781
+ attrs: _this2.v3 ? undefined : {
782
+ role: 'presentation'
783
+ }
784
+ }, [colGroups, header, h("tbody", {
785
+ role: 'presentation',
786
+ attrs: _this2.v3 ? undefined : {
787
+ role: 'presentation'
788
+ }
789
+ }, [body])]), pager, reorderable && h(DropClue, {
790
+ ref: _this2.dragLogic.refDropElementClue
791
+ }), reorderable && h(DragClue, {
792
+ ref: _this2.dragLogic.refDragElementClue
793
+ })];
794
+ } : [_this2.$props.toolbar, h("table", {
795
+ style: __assign(__assign({}, tableProps.style || {}), {
796
+ userSelect: tableUserSelect
797
+ }),
798
+ role: 'presentation',
799
+ attrs: _this2.v3 ? undefined : {
800
+ role: 'presentation'
801
+ }
802
+ }, [colGroups, header, h("tbody", {
803
+ role: 'presentation',
804
+ attrs: _this2.v3 ? undefined : {
805
+ role: 'presentation'
806
+ }
807
+ }, [body])]), pager, reorderable && h(DropClue, {
808
+ ref: _this2.dragLogic.refDropElementClue
809
+ }), reorderable && h(DragClue, {
810
+ ref: _this2.dragLogic.refDragElementClue
811
+ })])])
812
+ );
813
+ },
814
+ methods: {
815
+ /**
816
+ * Method to allow the scroll to be set to a specific row index.
817
+ *
818
+ * @param options - Object, containing the rowIndex to which is going to be scrolled.
819
+ */
820
+ scrollIntoView: function scrollIntoView(options) {
821
+ if (!this.element) {
822
+ return;
823
+ }
824
+
825
+ var _a = options.rowIndex,
826
+ rowIndex = _a === void 0 ? 0 : _a;
827
+ var _b = this.$props,
828
+ scrollable = _b.scrollable,
829
+ _c = _b.rowHeight,
830
+ rowHeight = _c === void 0 ? 0 : _c;
831
+
832
+ if (scrollable === 'virtual' || rowHeight) {
833
+ this.element.scroll(0, (rowIndex - 1) * rowHeight);
834
+ } else {
835
+ var selectedRow = this.element.querySelector("tbody > tr:nth-child(".concat(rowIndex, ")"));
836
+
837
+ if (selectedRow) {
838
+ var offsetTop = selectedRow.offsetTop - this.tbodyOffsetTop;
839
+ this.element.scroll(0, offsetTop);
840
+ }
841
+ }
842
+ },
843
+ getColumns: function getColumns() {
844
+ var _this = this;
845
+
846
+ var shuffledColumns = this.extendedColumn.filter(function (q) {
847
+ return q.declarationIndex >= 0 && q.parentIndex === -1;
848
+ });
849
+
850
+ var sanitize = function sanitize(columns) {
851
+ columns.sort(function (a, b) {
852
+ return a.declarationIndex - b.declarationIndex;
853
+ });
854
+ return columns.map(function (column) {
855
+ var declarationIndex = column.declarationIndex,
856
+ parentIndex = column.parentIndex,
857
+ depth = column.depth,
858
+ colSpan = column.colSpan,
859
+ rowSpan = column.rowSpan,
860
+ index = column.index,
861
+ kFirst = column.kFirst,
862
+ groupable = column.groupable,
863
+ children = column.children,
864
+ $props = __rest(column, ["declarationIndex", "parentIndex", "depth", "colSpan", "rowSpan", "index", "kFirst", "groupable", "children"]);
865
+
866
+ return children.length ? __assign({
867
+ children: sanitize(children)
868
+ }, $props) : _this.$props;
869
+ });
870
+ };
871
+
872
+ return sanitize(shuffledColumns);
873
+ },
874
+ flatData: function flatData() {
875
+ var _a = this.$props,
876
+ _b = _a.dataItems,
877
+ dataItems = _b === void 0 ? [] : _b,
878
+ _c = _a.rowHeight,
879
+ rowHeight = _c === void 0 ? 0 : _c;
880
+ var offsetTop = 0;
881
+
882
+ var itemDataMap = function itemDataMap(_item) {
883
+ var result = {
884
+ height: rowHeight,
885
+ offsetTop: offsetTop
886
+ };
887
+ offsetTop += result.height;
888
+ return result;
889
+ };
890
+
891
+ var flattedData = this.updateOnScroll && this.prevData === dataItems && this.tbodyOffsetTop > 0 && this.flattedData.length ? this.flattedData : _flatData(dataItems, this.expandedSubItems, itemDataMap);
892
+ this.prevData = dataItems;
893
+ this.flattedData = flattedData;
894
+ return flattedData;
895
+ },
896
+ onKeyDown: function onKeyDown(event) {
897
+ // tableKeyboardNavigation.onKeyDown(event, {
898
+ // contextStateRef: this.contextStateRef,
899
+ // navigationStateRef: this.navigationStateRef
900
+ // });
901
+ var _a = getSelectionOptions(this.$props.selectable),
902
+ mode = _a.mode,
903
+ cell = _a.cell;
904
+
905
+ this.$emit('keydown', __assign({
906
+ dataItems: this.getLeafDataItems(),
907
+ mode: mode,
908
+ cell: cell,
909
+ componentId: this._treeListId,
910
+ selectedField: this.$props.selectedField
911
+ }, this.getArguments(event)));
912
+ },
913
+ onFocus: function onFocus(_event) {// tableKeyboardNavigation.onFocus(event, {
914
+ // contextStateRef: this.contextStateRef
915
+ // });
916
+ },
917
+ onRowDrag: function onRowDrag(_event) {// if (this.$props.onRowDrag) {
918
+ // this.$props.onRowDrag.call(undefined, { ...event, target: this });
919
+ // }
920
+ },
921
+ onRowDrop: function onRowDrop(event) {
922
+ if (this.$props.onRowDrop) {
923
+ this.$props.onRowDrop.call(undefined, __assign(__assign({}, event), {
924
+ target: this
925
+ }));
926
+ }
927
+ },
928
+ columnReorder: function columnReorder(prev, next, nativeEvent) {
929
+ var _a;
930
+
931
+ var _this = this;
932
+
933
+ var depth = this.extendedColumn[prev].depth;
934
+
935
+ var end = function end(index) {
936
+ do {
937
+ index++;
938
+ } while (index < _this.extendedColumn.length && _this.extendedColumn[index].depth > depth);
939
+
940
+ return index;
941
+ };
942
+
943
+ var spliced = this.extendedColumn.splice(prev, end(prev) - prev);
944
+
945
+ (_a = this.extendedColumn).splice.apply(_a, __spreadArray([prev < next ? end(next - spliced.length) : next, 0], spliced, false));
946
+
947
+ this.extendedColumn.filter(function (q) {
948
+ return q.declarationIndex >= 0;
949
+ }).forEach(function (c, i) {
950
+ return c.orderIndex = i;
951
+ });
952
+
953
+ if (this.$props.onColumnReorder) {
954
+ var event_1 = {
955
+ target: this,
956
+ columns: this.columns,
957
+ event: nativeEvent
958
+ };
959
+ this.$props.onColumnReorder.call(undefined, event_1);
960
+ }
961
+ },
962
+ onResize: function onResize(index, newWidth, oldWidth, nativeEvent, end) {
963
+ if (this.$props.onColumnResize) {
964
+ var sumWidth = this.extendedColumn.filter(function (c) {
965
+ return c.children.length === 0;
966
+ }).reduce(function (acc, column) {
967
+ return acc += parseFloat(String(column.width));
968
+ }, 0);
969
+ var event_2 = {
970
+ columns: this.columns,
971
+ totalWidth: sumWidth,
972
+ index: index,
973
+ event: nativeEvent,
974
+ newWidth: newWidth,
975
+ oldWidth: oldWidth,
976
+ end: end,
977
+ target: this
978
+ };
979
+
980
+ if (end) {
981
+ this.prevColumns = undefined;
982
+ }
983
+
984
+ this.$props.onColumnResize.call(undefined, event_2);
985
+ }
986
+ },
987
+ handleOnScroll: function handleOnScroll(event) {
988
+ var scrollLeft = event.currentTarget.scrollLeft;
989
+ var scrollTop = event.currentTarget.scrollTop;
990
+ var _a = this.$props,
991
+ columnVirtualization = _a.columnVirtualization,
992
+ scrollable = _a.scrollable,
993
+ _b = _a.rowHeight,
994
+ rowHeight = _b === void 0 ? 0 : _b;
995
+ var minTopChange = rowHeight;
996
+ var minLeftChange = 0;
997
+ var shouldForceUpdate = false;
998
+
999
+ if (columnVirtualization && Math.abs(this.wrapperScrollLeft - scrollLeft) > minLeftChange) {
1000
+ this.wrapperScrollLeft = scrollLeft;
1001
+ shouldForceUpdate = true;
1002
+ }
1003
+
1004
+ if (scrollable === 'virtual' && Math.abs(this.wrapperScrollTop - scrollTop) > minTopChange) {
1005
+ this.wrapperScrollTop = scrollTop;
1006
+ shouldForceUpdate = true;
1007
+ }
1008
+
1009
+ if (shouldForceUpdate) {
1010
+ this.updateOnScroll = true; // this.forceUpdate();
1011
+ }
1012
+ },
1013
+ calculateSizes: function calculateSizes(div) {
1014
+ if (!div || this.$props.scrollable === 'none') {
1015
+ return;
1016
+ }
1017
+
1018
+ var children = Array.from(div.childNodes);
1019
+ var table = children.find(function (n) {
1020
+ return n.nodeName === 'TABLE';
1021
+ });
1022
+ var toolbar = this.$props.toolbar && children.find(function (n) {
1023
+ return n.nodeType === 1 && n.classList.contains('k-grid-toolbar');
1024
+ });
1025
+ var toolbarHeight = 0;
1026
+
1027
+ if (toolbar) {
1028
+ var boxSizing = toolbar.style.boxSizing;
1029
+ toolbar.style.boxSizing = 'border-box';
1030
+ toolbarHeight = parseFloat(String(window.getComputedStyle(toolbar).height)) || toolbar.offsetHeight;
1031
+ toolbar.style.boxSizing = boxSizing;
1032
+
1033
+ if (!toolbar.getAttribute('style')) {
1034
+ toolbar.removeAttribute('style');
1035
+ }
1036
+ }
1037
+
1038
+ this.tbodyOffsetTop = table.tBodies[0].offsetTop;
1039
+ setHeaderRowsTop(table, toolbarHeight);
1040
+ },
1041
+ itemChange: function itemChange(event) {
1042
+ var itemChange = this.$props.onItemChange;
1043
+
1044
+ if (event.field === this.$props.expandField) {
1045
+ var expandChange = this.$props.onExpandChange;
1046
+
1047
+ if (expandChange) {
1048
+ var expandEvent = __assign(__assign({}, this.getArguments(event.event)), {
1049
+ dataItem: event.dataItem,
1050
+ level: event.level,
1051
+ value: event.value
1052
+ });
1053
+
1054
+ expandChange.call(undefined, expandEvent);
1055
+ }
1056
+
1057
+ return;
1058
+ }
1059
+
1060
+ if (itemChange) {
1061
+ var itemChangeEvent = __assign(__assign({}, this.getArguments(event.event)), {
1062
+ dataItem: event.dataItem,
1063
+ level: event.level,
1064
+ field: event.field,
1065
+ value: event.value
1066
+ });
1067
+
1068
+ itemChange.call(undefined, itemChangeEvent);
1069
+ }
1070
+ },
1071
+ selectionChange: function selectionChange(options) {
1072
+ if (this.$props.onSelectionChange) {
1073
+ var event_3 = options.event,
1074
+ item = options.item,
1075
+ dataIndex = options.dataIndex,
1076
+ columnIndex = options.columnIndex;
1077
+
1078
+ var _a = getSelectionOptions(this.$props.selectable),
1079
+ mode = _a.mode,
1080
+ cell = _a.cell;
1081
+
1082
+ var selectionEvent = __assign(__assign({}, this.getArguments(event_3.event)), {
1083
+ dataItem: item.dataItem,
1084
+ level: item.level,
1085
+ startColIndex: columnIndex,
1086
+ endColIndex: columnIndex,
1087
+ startRowIndex: dataIndex,
1088
+ endRowIndex: dataIndex,
1089
+ dataItems: this.getLeafDataItems(),
1090
+ altKey: false,
1091
+ ctrlKey: false,
1092
+ shiftKey: false,
1093
+ metaKey: false,
1094
+ mode: mode,
1095
+ cell: cell,
1096
+ isDrag: false,
1097
+ componentId: this._treeListId,
1098
+ selectedField: this.$props.selectedField || ''
1099
+ });
1100
+
1101
+ this.$emit('selectionchange', selectionEvent);
1102
+ }
1103
+ },
1104
+ onHeaderSelectionChange: function onHeaderSelectionChange(event) {
1105
+ if (this.$props.onHeaderSelectionChange) {
1106
+ var selectionEvent = {
1107
+ field: event.field,
1108
+ // nativeEvent: event.event && event.event.nativeEvent,
1109
+ event: event.event,
1110
+ target: this,
1111
+ dataItems: this.getLeafDataItems()
1112
+ };
1113
+ this.$emit('headerselectionchange', selectionEvent);
1114
+ }
1115
+ },
1116
+ selectionRelease: function selectionRelease(event) {
1117
+ if (this.$props.onSelectionChange) {
1118
+ var selectionEvent = __assign({
1119
+ event: undefined,
1120
+ target: this,
1121
+ selectedField: this.$props.selectedField || '',
1122
+ componentId: this._treeListId,
1123
+ dataItems: this.getLeafDataItems(),
1124
+ dataItem: null,
1125
+ level: []
1126
+ }, event);
1127
+
1128
+ this.$emit('selectionchange', selectionEvent);
1129
+ }
1130
+ },
1131
+ sortChange: function sortChange(sort, event) {
1132
+ this.raiseDataEvent('sortchange', {
1133
+ sort: sort,
1134
+ field: event.field
1135
+ }, event);
1136
+ },
1137
+ filterChange: function filterChange(filter, event) {
1138
+ var filters = filter ? filter.filters : [];
1139
+ this.raiseDataEvent('filterchange', {
1140
+ filter: filters
1141
+ }, {
1142
+ filter: filters,
1143
+ skip: 0
1144
+ }, event);
1145
+ },
1146
+ columnMenuFilterChange: function columnMenuFilterChange(event, filter, field) {
1147
+ var onColumnMenuFilterChange = this.$props.onColumnMenuFilterChange;
1148
+
1149
+ if (!onColumnMenuFilterChange) {
1150
+ return;
1151
+ }
1152
+
1153
+ var currentEvent = {
1154
+ event: event,
1155
+ filter: filter,
1156
+ field: field,
1157
+ target: this
1158
+ };
1159
+ onColumnMenuFilterChange.call(undefined, currentEvent);
1160
+ },
1161
+ expandChange: function expandChange(event, dataItem, level) {
1162
+ var expandField = this.$props.expandField;
1163
+
1164
+ if (expandField) {
1165
+ var expandEvent = __assign(__assign({}, this.getArguments(event)), {
1166
+ dataItem: dataItem,
1167
+ level: level,
1168
+ value: this.expanded(dataItem)
1169
+ });
1170
+
1171
+ this.$emit('expandchange', expandEvent);
1172
+ }
1173
+ },
1174
+ rowClick: function rowClick(e, item) {
1175
+ if (e.target.nodeName === 'TD') {
1176
+ var rowClickEvent = __assign({
1177
+ dataItem: item.dataItem,
1178
+ level: item.level
1179
+ }, this.getArguments(e));
1180
+
1181
+ this.$emit('rowclick', rowClickEvent);
1182
+ }
1183
+ },
1184
+ rowDoubleClick: function rowDoubleClick(e, item) {
1185
+ if (this.$props.onRowDoubleClick && e.target.nodeName === 'TD') {
1186
+ var rowDoubleClickEvent = __assign({
1187
+ dataItem: item.dataItem,
1188
+ level: item.level
1189
+ }, this.getArguments(e));
1190
+
1191
+ this.$emit('rowdblclick', rowDoubleClickEvent);
1192
+ }
1193
+ },
1194
+ rowContextMenu: function rowContextMenu(e, item) {
1195
+ if (this.$props.onRowContextMenu && e.target.nodeName === 'TD') {
1196
+ var rowContextMenuEvent = __assign({
1197
+ dataItem: item.dataItem,
1198
+ level: item.level
1199
+ }, this.getArguments(e));
1200
+
1201
+ this.$props.onRowContextMenu.call(undefined, rowContextMenuEvent);
1202
+ }
1203
+ },
1204
+ pageChangeHandler: function pageChangeHandler(page, event) {
1205
+ this.raiseDataEvent('pagechange', {
1206
+ page: page,
1207
+ event: event,
1208
+ skip: page.skip,
1209
+ take: page.take
1210
+ }, {
1211
+ skip: page.skip,
1212
+ take: page.take
1213
+ }, event);
1214
+ },
1215
+ onPageChange: function onPageChange(e) {
1216
+ if (this.$props.onPageChange) {
1217
+ var event_4 = __assign(__assign({}, this.getArguments(e.event)), {
1218
+ skip: e.skip,
1219
+ take: e.take
1220
+ });
1221
+
1222
+ this.$props.onPageChange.call(undefined, event_4);
1223
+ }
1224
+ },
1225
+ raiseDataEvent: function raiseDataEvent(handler, data, moreData, event) {
1226
+ if (hasListener.call(this, handler)) {
1227
+ this.$emit(handler, __assign(__assign({}, this.getArguments(event)), data));
1228
+ } else if (hasListener.call(this, 'datastatechange')) {
1229
+ this.$emit('datastatechange', __assign(__assign({}, this.getArguments(event)), {
1230
+ data: __assign(__assign({}, this.getDataState()), moreData)
1231
+ }));
1232
+ }
1233
+ },
1234
+ getDataState: function getDataState() {
1235
+ return {
1236
+ filter: this.$props.filter,
1237
+ sort: this.$props.sort
1238
+ };
1239
+ },
1240
+ getArguments: function getArguments(event) {
1241
+ return {
1242
+ nativeEvent: event && event.nativeEvent,
1243
+ event: event,
1244
+ target: this
1245
+ };
1246
+ },
1247
+ expandedSubItems: function expandedSubItems(dataItem) {
1248
+ var items = [];
1249
+
1250
+ if (this.expanded(dataItem) && this.hasChildren(dataItem)) {
1251
+ items.push.apply(items, getNestedValue(this.$props.subItemsField, dataItem));
1252
+ }
1253
+
1254
+ return items;
1255
+ },
1256
+ getLeafDataItems: function getLeafDataItems() {
1257
+ return this.flatData().map(function (item) {
1258
+ return item.dataItem;
1259
+ });
1260
+ },
1261
+ expanded: function expanded(dataItem) {
1262
+ return Boolean(getNestedValue(this.$props.expandField, dataItem));
1263
+ },
1264
+ hasChildren: function hasChildren(dataItem) {
1265
+ return Boolean(getNestedValue(this.$props.subItemsField, dataItem));
1266
+ }
1267
+ }
1268
+ };
1269
+ var TreeList = TreeListVue2;
1270
+ export { TreeList, TreeListVue2 };