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