@progress/kendo-vue-treelist 3.6.4 → 3.7.0-dev.202210250731

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