@syncfusion/ej2-treegrid 20.1.56 → 20.2.36

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 (71) hide show
  1. package/CHANGELOG.md +5 -48
  2. package/dist/ej2-treegrid.umd.min.js +2 -2
  3. package/dist/ej2-treegrid.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-treegrid.es2015.js +135 -48
  5. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  6. package/dist/es6/ej2-treegrid.es5.js +133 -46
  7. package/dist/es6/ej2-treegrid.es5.js.map +1 -1
  8. package/dist/global/ej2-treegrid.min.js +2 -2
  9. package/dist/global/ej2-treegrid.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/helpers/e2e/index.js +8 -6
  12. package/helpers/e2e/treegridhelper.js +82 -65
  13. package/package.json +9 -9
  14. package/src/treegrid/actions/batch-edit.js +6 -1
  15. package/src/treegrid/actions/edit.js +33 -29
  16. package/src/treegrid/actions/infinite-scroll.js +1 -1
  17. package/src/treegrid/actions/rowdragdrop.js +46 -9
  18. package/src/treegrid/actions/selection.js +1 -1
  19. package/src/treegrid/actions/sort.js +11 -0
  20. package/src/treegrid/base/data.js +12 -0
  21. package/src/treegrid/base/treegrid.js +7 -1
  22. package/src/treegrid/renderer/render.js +2 -0
  23. package/src/treegrid/renderer/virtual-tree-content-render.js +12 -2
  24. package/styles/bootstrap-dark.css +9 -0
  25. package/styles/bootstrap.css +9 -0
  26. package/styles/bootstrap4.css +9 -0
  27. package/styles/bootstrap5-dark.css +9 -0
  28. package/styles/bootstrap5.css +9 -0
  29. package/styles/fabric-dark.css +9 -0
  30. package/styles/fabric.css +9 -0
  31. package/styles/fluent-dark.css +9 -0
  32. package/styles/fluent.css +9 -0
  33. package/styles/highcontrast-light.css +9 -0
  34. package/styles/highcontrast.css +9 -0
  35. package/styles/material-dark.css +9 -0
  36. package/styles/material.css +9 -0
  37. package/styles/tailwind-dark.css +9 -0
  38. package/styles/tailwind.css +9 -0
  39. package/styles/treegrid/_fusionnew-definition.scss +29 -0
  40. package/styles/treegrid/_icons.scss +11 -0
  41. package/styles/treegrid/_material3-definition.scss +29 -0
  42. package/styles/treegrid/bootstrap-dark.css +9 -0
  43. package/styles/treegrid/bootstrap.css +9 -0
  44. package/styles/treegrid/bootstrap4.css +9 -0
  45. package/styles/treegrid/bootstrap5-dark.css +9 -0
  46. package/styles/treegrid/bootstrap5.css +9 -0
  47. package/styles/treegrid/fabric-dark.css +9 -0
  48. package/styles/treegrid/fabric.css +9 -0
  49. package/styles/treegrid/fluent-dark.css +9 -0
  50. package/styles/treegrid/fluent.css +9 -0
  51. package/styles/treegrid/highcontrast-light.css +9 -0
  52. package/styles/treegrid/highcontrast.css +9 -0
  53. package/styles/treegrid/icons/_bootstrap-dark.scss +11 -0
  54. package/styles/treegrid/icons/_bootstrap.scss +11 -0
  55. package/styles/treegrid/icons/_bootstrap4.scss +11 -0
  56. package/styles/treegrid/icons/_bootstrap5.scss +11 -0
  57. package/styles/treegrid/icons/_fabric-dark.scss +11 -0
  58. package/styles/treegrid/icons/_fabric.scss +11 -0
  59. package/styles/treegrid/icons/_fluent.scss +11 -0
  60. package/styles/treegrid/icons/_fusionnew.scss +26 -0
  61. package/styles/treegrid/icons/_highcontrast-light.scss +11 -0
  62. package/styles/treegrid/icons/_highcontrast.scss +11 -0
  63. package/styles/treegrid/icons/_material-dark.scss +11 -0
  64. package/styles/treegrid/icons/_material.scss +11 -0
  65. package/styles/treegrid/icons/_material3.scss +26 -0
  66. package/styles/treegrid/icons/_tailwind-dark.scss +11 -0
  67. package/styles/treegrid/icons/_tailwind.scss +11 -0
  68. package/styles/treegrid/material-dark.css +9 -0
  69. package/styles/treegrid/material.css +9 -0
  70. package/styles/treegrid/tailwind-dark.css +9 -0
  71. package/styles/treegrid/tailwind.css +9 -0
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 20.1.56
3
+ * version : 20.2.36
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
@@ -1,6 +1,8 @@
1
- "use strict";
2
- function __export(m) {
3
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
- }
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- __export(require("./treegridhelper"));
1
+ define(["require", "exports", "./treegridhelper"], function (require, exports, treegridhelper_1) {
2
+ "use strict";
3
+ function __export(m) {
4
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
5
+ }
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ __export(treegridhelper_1);
8
+ });
@@ -1,66 +1,83 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const e2e_1 = require("@syncfusion/ej2-base/helpers/e2e");
4
- class TreeGridHelper extends e2e_1.TestHelper {
5
- constructor(id, wrapperFn) {
6
- super();
7
- this.id = id;
8
- if (wrapperFn !== undefined) {
9
- this.wrapperFn = wrapperFn;
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ define(["require", "exports", "@syncfusion/ej2-base/helpers/e2e"], function (require, exports, e2e_1) {
15
+ "use strict";
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var TreeGridHelper = (function (_super) {
18
+ __extends(TreeGridHelper, _super);
19
+ function TreeGridHelper(id, wrapperFn) {
20
+ var _this = _super.call(this) || this;
21
+ _this.id = id;
22
+ if (wrapperFn !== undefined) {
23
+ _this.wrapperFn = wrapperFn;
24
+ }
25
+ return _this;
10
26
  }
11
- return this;
12
- }
13
- getDataGridElement() {
14
- return this.selector('#' + this.id);
15
- }
16
- getHeaderElement() {
17
- return this.selector('#' + this.id + ' .e-gridheader');
18
- }
19
- getContentElement() {
20
- return this.selector('#' + this.id + ' .e-gridcontent');
21
- }
22
- getFooterElement() {
23
- return this.selector('#' + this.id + ' .e-gridfooter');
24
- }
25
- getPagerElement() {
26
- return this.selector('#' + this.id + ' .e-gridpager');
27
- }
28
- getDialogElement() {
29
- return this.selector('#' + this.id + '_gridcontrol_dialogEdit_wrapper');
30
- }
31
- getFilterPopupElement() {
32
- return this.selector('#' + this.id + ' .e-filter-popup');
33
- }
34
- getToolbarElement() {
35
- return this.selector('#' + this.id + '_gridcontrol_toolbarItems');
36
- }
37
- getCurrentPagerElement() {
38
- return this.selector('#' + this.id + ' .e-numericitem.e-currentitem');
39
- }
40
- getPagerDropDownElement() {
41
- return this.selector('#' + this.id + ' .e-pagerdropdown');
42
- }
43
- getExpandedElements() {
44
- return this.selector('#' + this.id + ' .e-treegridexpand');
45
- }
46
- getCollapsedElements() {
47
- return this.selector('#' + this.id + ' .e-treegridcollapsed');
48
- }
49
- setModel(property, value) {
50
- return cy.get('#' + this.id).then((ele) => {
51
- return ele[0].ej2_instances[0][property] = value;
52
- });
53
- }
54
- getModel(property) {
55
- return cy.get('#' + this.id).then((ele) => {
56
- return ele[0].ej2_instances[0][property];
57
- });
58
- }
59
- invoke(fName, args = []) {
60
- return cy.get('#' + this.id).then((ele) => {
61
- var inst = ele[0].ej2_instances[0];
62
- return inst[fName].apply(inst, args);
63
- });
64
- }
65
- }
66
- exports.TreeGridHelper = TreeGridHelper;
27
+ TreeGridHelper.prototype.getDataGridElement = function () {
28
+ return this.selector('#' + this.id);
29
+ };
30
+ TreeGridHelper.prototype.getHeaderElement = function () {
31
+ return this.selector('#' + this.id + ' .e-gridheader');
32
+ };
33
+ TreeGridHelper.prototype.getContentElement = function () {
34
+ return this.selector('#' + this.id + ' .e-gridcontent');
35
+ };
36
+ TreeGridHelper.prototype.getFooterElement = function () {
37
+ return this.selector('#' + this.id + ' .e-gridfooter');
38
+ };
39
+ TreeGridHelper.prototype.getPagerElement = function () {
40
+ return this.selector('#' + this.id + ' .e-gridpager');
41
+ };
42
+ TreeGridHelper.prototype.getDialogElement = function () {
43
+ return this.selector('#' + this.id + '_gridcontrol_dialogEdit_wrapper');
44
+ };
45
+ TreeGridHelper.prototype.getFilterPopupElement = function () {
46
+ return this.selector('#' + this.id + ' .e-filter-popup');
47
+ };
48
+ TreeGridHelper.prototype.getToolbarElement = function () {
49
+ return this.selector('#' + this.id + '_gridcontrol_toolbarItems');
50
+ };
51
+ TreeGridHelper.prototype.getCurrentPagerElement = function () {
52
+ return this.selector('#' + this.id + ' .e-numericitem.e-currentitem');
53
+ };
54
+ TreeGridHelper.prototype.getPagerDropDownElement = function () {
55
+ return this.selector('#' + this.id + ' .e-pagerdropdown');
56
+ };
57
+ TreeGridHelper.prototype.getExpandedElements = function () {
58
+ return this.selector('#' + this.id + ' .e-treegridexpand');
59
+ };
60
+ TreeGridHelper.prototype.getCollapsedElements = function () {
61
+ return this.selector('#' + this.id + ' .e-treegridcollapsed');
62
+ };
63
+ TreeGridHelper.prototype.setModel = function (property, value) {
64
+ return cy.get('#' + this.id).then(function (ele) {
65
+ return ele[0].ej2_instances[0][property] = value;
66
+ });
67
+ };
68
+ TreeGridHelper.prototype.getModel = function (property) {
69
+ return cy.get('#' + this.id).then(function (ele) {
70
+ return ele[0].ej2_instances[0][property];
71
+ });
72
+ };
73
+ TreeGridHelper.prototype.invoke = function (fName, args) {
74
+ if (args === void 0) { args = []; }
75
+ return cy.get('#' + this.id).then(function (ele) {
76
+ var inst = ele[0].ej2_instances[0];
77
+ return inst[fName].apply(inst, args);
78
+ });
79
+ };
80
+ return TreeGridHelper;
81
+ }(e2e_1.TestHelper));
82
+ exports.TreeGridHelper = TreeGridHelper;
83
+ });
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-treegrid@*",
3
- "_id": "@syncfusion/ej2-treegrid@20.1.55",
3
+ "_id": "@syncfusion/ej2-treegrid@18.23.3",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-A1EOCEVmqUalNcK4SjlQKCn8lUFDKfEWKUHNw3EqzLQjDxZsUMneiA8ws+zwLgX33Bm6TevapkBRBtoW5jbQzw==",
5
+ "_integrity": "sha512-MoKO1I4KuhbqhrcUpyBSTMmzWIt3vmYZRD0X+sKPaRR5P7TwWi6FOhn+ZKN4VkOnKNbok9JnGUAFfiQHuz3GcA==",
6
6
  "_location": "/@syncfusion/ej2-treegrid",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -24,8 +24,8 @@
24
24
  "/@syncfusion/ej2-react-treegrid",
25
25
  "/@syncfusion/ej2-vue-treegrid"
26
26
  ],
27
- "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-treegrid/-/ej2-treegrid-20.1.55.tgz",
28
- "_shasum": "ded97a9e20965294cf8792b759e1cdbeba0e8e68",
27
+ "_resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-treegrid/-/ej2-treegrid-18.23.3.tgz",
28
+ "_shasum": "ffe68795f8136158a761877a163b5f8b0987f200",
29
29
  "_spec": "@syncfusion/ej2-treegrid@*",
30
30
  "_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
31
31
  "author": {
@@ -36,10 +36,10 @@
36
36
  },
37
37
  "bundleDependencies": false,
38
38
  "dependencies": {
39
- "@syncfusion/ej2-base": "~20.1.56",
40
- "@syncfusion/ej2-data": "~20.1.55",
41
- "@syncfusion/ej2-grids": "~20.1.56",
42
- "@syncfusion/ej2-popups": "~20.1.55"
39
+ "@syncfusion/ej2-base": "~20.2.36",
40
+ "@syncfusion/ej2-data": "~20.2.36",
41
+ "@syncfusion/ej2-grids": "~20.2.36",
42
+ "@syncfusion/ej2-popups": "~20.2.36"
43
43
  },
44
44
  "deprecated": false,
45
45
  "description": "Essential JS 2 TreeGrid Component",
@@ -60,6 +60,6 @@
60
60
  "url": "git+https://github.com/syncfusion/ej2-treegrid.git"
61
61
  },
62
62
  "typings": "index.d.ts",
63
- "version": "20.1.56",
63
+ "version": "20.2.36",
64
64
  "sideEffects": false
65
65
  }
@@ -611,7 +611,12 @@ var BatchEdit = /** @class */ (function () {
611
611
  BatchEdit.prototype.nextCellIndex = function (args) {
612
612
  var index = 'index';
613
613
  var rowIndex = 'rowIndex';
614
- args[index] = this.parent.getSelectedRows()[0][rowIndex];
614
+ if (this.parent.getSelectedRows().length) {
615
+ args[index] = this.parent.getSelectedRows()[0][rowIndex];
616
+ }
617
+ else {
618
+ args[index] = this.batchIndex;
619
+ }
615
620
  };
616
621
  return BatchEdit;
617
622
  }());
@@ -540,11 +540,13 @@ var Edit = /** @class */ (function () {
540
540
  Edit.prototype.updateIndex = function (data, rows, records) {
541
541
  for (var j = 0; j < this.parent.getDataRows().length; j++) {
542
542
  var data1 = records[j];
543
- var index = getValue('uniqueIDCollection.' + data1.uniqueID + '.index', this.parent);
544
- data1.index = index;
545
- if (!isNullOrUndefined(data1.parentItem)) {
546
- var parentIndex = getValue('uniqueIDCollection.' + data1.parentItem.uniqueID + '.index', this.parent);
547
- data1.parentItem.index = parentIndex;
543
+ if (!isNullOrUndefined(data1)) {
544
+ var index = getValue('uniqueIDCollection.' + data1.uniqueID + '.index', this.parent);
545
+ data1.index = index;
546
+ if (!isNullOrUndefined(data1.parentItem)) {
547
+ var parentIndex = getValue('uniqueIDCollection.' + data1.parentItem.uniqueID + '.index', this.parent);
548
+ data1.parentItem.index = parentIndex;
549
+ }
548
550
  }
549
551
  }
550
552
  var count = -1;
@@ -563,32 +565,34 @@ var Edit = /** @class */ (function () {
563
565
  count++;
564
566
  }
565
567
  var data2 = records[count];
566
- var index = data2.index;
567
- var level = data2.level;
568
- var row = rows[k];
569
- if (!isNullOrUndefined(data2.parentItem)) {
570
- index = getValue('uniqueIDCollection.' + data2.parentItem.uniqueID + '.index', this.parent);
571
- }
572
- var treecell = row.cells[treeColIndex];
573
- if (!isNullOrUndefined(treecell)) {
574
- for (var l = 0; l < treecell.classList.length; l++) {
575
- var value = treecell.classList[l];
576
- var remove = /e-gridrowindex/i;
577
- var removed = /e-griddetailrowindex/i;
578
- var result = value.match(remove);
579
- var results = value.match(removed);
580
- if (result != null) {
581
- removeClass([treecell], value);
568
+ if (!isNullOrUndefined(data2)) {
569
+ var index = data2.index;
570
+ var level = data2.level;
571
+ var row = rows[k];
572
+ if (!isNullOrUndefined(data2.parentItem)) {
573
+ index = getValue('uniqueIDCollection.' + data2.parentItem.uniqueID + '.index', this.parent);
574
+ }
575
+ var treecell = row.cells[treeColIndex];
576
+ if (!isNullOrUndefined(treecell)) {
577
+ for (var l = 0; l < treecell.classList.length; l++) {
578
+ var value = treecell.classList[l];
579
+ var remove = /e-gridrowindex/i;
580
+ var removed = /e-griddetailrowindex/i;
581
+ var result = value.match(remove);
582
+ var results = value.match(removed);
583
+ if (result != null) {
584
+ removeClass([treecell], value);
585
+ }
586
+ if (results != null) {
587
+ removeClass([treecell], value);
588
+ }
582
589
  }
583
- if (results != null) {
584
- removeClass([treecell], value);
590
+ if (!rows[k].classList.contains('e-detailrow')) {
591
+ addClass([treecell], 'e-gridrowindex' + index + 'level' + level);
592
+ }
593
+ else {
594
+ addClass([treecell], 'e-griddetailrowindex' + index + 'level' + level);
585
595
  }
586
- }
587
- if (!rows[k].classList.contains('e-detailrow')) {
588
- addClass([treecell], 'e-gridrowindex' + index + 'level' + level);
589
- }
590
- else {
591
- addClass([treecell], 'e-griddetailrowindex' + index + 'level' + level);
592
596
  }
593
597
  }
594
598
  }
@@ -294,7 +294,7 @@ var InfiniteScroll = /** @class */ (function () {
294
294
  if (getValue('selectedIndex', this.parent.editModule) !== -1 && this.parent.editSettings.newRowPosition !== 'Top') {
295
295
  if (this.parent.editSettings.newRowPosition === 'Below' || this.parent.editSettings.newRowPosition === 'Child') {
296
296
  position = 'after';
297
- newRowIndex += findChildrenRecords(currentData[newRowIndex + 1]).length;
297
+ newRowIndex += findChildrenRecords(currentData[newRowIndex]).length;
298
298
  if (this.parent.editSettings.newRowPosition === 'Child') {
299
299
  newRowIndex -= 1; //// for child position already child record is added in childRecords so subtracting 1
300
300
  }
@@ -84,7 +84,8 @@ var RowDD = /** @class */ (function () {
84
84
  this.parent[dropPosition] = this.dropPosition;
85
85
  var data = [];
86
86
  for (var i = 0; i < fromIndexes.length; i++) {
87
- data[i] = this.parent.getCurrentViewRecords()[fromIndexes[i]];
87
+ var index = this.parent.getRowByIndex(fromIndexes[i]).rowIndex;
88
+ data[i] = this.parent.getCurrentViewRecords()[index];
88
89
  }
89
90
  var isByMethod = true;
90
91
  var args = {
@@ -188,6 +189,9 @@ var RowDD = /** @class */ (function () {
188
189
  else {
189
190
  dropIndex = this.selectedRow.rowIndex - 1;
190
191
  }
192
+ if (this.parent.enableVirtualization && this.parent.allowRowDragAndDrop && this.selectedRecord) {
193
+ dropIndex = parseInt(this.selectedRow.getAttribute('aria-rowindex'), 10) - 1;
194
+ }
191
195
  tObj[action] = 'indenting';
192
196
  tObj[droppedIndex] = dropIndex;
193
197
  this.eventTrigger('indenting', dropIndex);
@@ -204,6 +208,9 @@ var RowDD = /** @class */ (function () {
204
208
  dropIndex = i;
205
209
  }
206
210
  }
211
+ if (this.parent.enableVirtualization && this.parent.allowRowDragAndDrop && this.selectedRecord) {
212
+ dropIndex = parseInt(this.parent.getRows()[dropIndex].getAttribute('aria-rowindex'), 10);
213
+ }
207
214
  tObj[action] = 'outdenting';
208
215
  tObj[droppedIndex] = dropIndex;
209
216
  this.eventTrigger('outdenting', dropIndex);
@@ -221,10 +228,20 @@ var RowDD = /** @class */ (function () {
221
228
  this.parent.trigger(events.actionBegin, actionArgs, function (actionArgs) {
222
229
  if (!actionArgs.cancel) {
223
230
  if (actionArgs.action === 'indenting') {
224
- _this.reorderRows([_this.selectedRow.rowIndex], dropIndex, 'child');
231
+ if (_this.parent.enableVirtualization && _this.parent.allowRowDragAndDrop) {
232
+ _this.reorderRows([parseInt(_this.selectedRow.getAttribute('aria-rowindex'), 10)], dropIndex, 'child');
233
+ }
234
+ else {
235
+ _this.reorderRows([_this.selectedRow.rowIndex], dropIndex, 'child');
236
+ }
225
237
  }
226
238
  else if (actionArgs.action === 'outdenting') {
227
- _this.reorderRows([_this.selectedRow.rowIndex], dropIndex, 'below');
239
+ if (_this.parent.enableVirtualization && _this.parent.allowRowDragAndDrop) {
240
+ _this.reorderRows([parseInt(_this.selectedRow.getAttribute('aria-rowindex'), 10)], dropIndex, 'below');
241
+ }
242
+ else {
243
+ _this.reorderRows([_this.selectedRow.rowIndex], dropIndex, 'below');
244
+ }
228
245
  }
229
246
  }
230
247
  });
@@ -419,9 +436,17 @@ var RowDD = /** @class */ (function () {
419
436
  RowDD.prototype.removeLastrowBorder = function (element) {
420
437
  var isEmptyRow = element && (element.classList.contains('e-emptyrow') || element.classList.contains('e-columnheader')
421
438
  || element.classList.contains('e-detailrow'));
422
- var islastRowIndex = element && !isEmptyRow &&
423
- this.parent.getRowByIndex(this.parent.getCurrentViewRecords().length - 1).getAttribute('data-uid') !==
424
- element.getAttribute('data-uid');
439
+ var islastRowIndex;
440
+ if (this.parent.enableVirtualization) {
441
+ islastRowIndex = element && !isEmptyRow &&
442
+ this.parent.getRows()[this.parent.getCurrentViewRecords().length - 1].getAttribute('data-uid') !==
443
+ element.getAttribute('data-uid');
444
+ }
445
+ else {
446
+ islastRowIndex = element && !isEmptyRow &&
447
+ this.parent.getRowByIndex(this.parent.getCurrentViewRecords().length - 1).getAttribute('data-uid') !==
448
+ element.getAttribute('data-uid');
449
+ }
425
450
  var canremove = islastRowIndex || this.dropPosition === 'topSegment';
426
451
  if (this.parent.element.getElementsByClassName('e-lastrow-border').length > 0 && element && (islastRowIndex || canremove)) {
427
452
  this.parent.element.getElementsByClassName('e-lastrow-border')[0].remove();
@@ -455,7 +480,12 @@ var RowDD = /** @class */ (function () {
455
480
  rowPositionHeight = rowEle.offsetTop - scrollTop;
456
481
  }
457
482
  // let scrollTop = (tObj.grid.scrollModule as any).content.scrollTop;
458
- rowTop = rowPositionHeight + contentHeight + roundOff;
483
+ if (this.parent.enableVirtualization) {
484
+ rowTop = rowEle.getBoundingClientRect().top;
485
+ }
486
+ else {
487
+ rowTop = rowPositionHeight + contentHeight + roundOff;
488
+ }
459
489
  var rowBottom = rowTop + row[0].offsetHeight;
460
490
  var difference = rowBottom - rowTop;
461
491
  var divide = difference / 3;
@@ -535,7 +565,7 @@ var RowDD = /** @class */ (function () {
535
565
  RowDD.prototype.addLastRowborder = function (trElement) {
536
566
  var isEmptyRow = trElement && (trElement.classList.contains('e-emptyrow') ||
537
567
  trElement.classList.contains('e-columnheader') || trElement.classList.contains('e-detailrow'));
538
- if (trElement && !isEmptyRow && this.parent.getRowByIndex(this.parent.getCurrentViewRecords().length - 1).getAttribute('data-uid') ===
568
+ if (trElement && !isEmptyRow && this.parent.getRows()[this.parent.getCurrentViewRecords().length - 1].getAttribute('data-uid') ===
539
569
  trElement.getAttribute('data-uid')) {
540
570
  var bottomborder = this.parent.createElement('div', { className: 'e-lastrow-border' });
541
571
  var gridcontentEle = this.parent.getContent();
@@ -877,7 +907,13 @@ var RowDD = /** @class */ (function () {
877
907
  }
878
908
  else {
879
909
  args.dropIndex = args.dropIndex === args.fromIndex ? this.getTargetIdx(args.target.parentElement) : args.dropIndex;
880
- this.droppedRecord = tObj.getCurrentViewRecords()[args.dropIndex];
910
+ if (this.parent.enableVirtualization) {
911
+ var index = this.parent.getRowByIndex(args.dropIndex).rowIndex;
912
+ this.droppedRecord = tObj.getCurrentViewRecords()[index];
913
+ }
914
+ else {
915
+ this.droppedRecord = tObj.getCurrentViewRecords()[args.dropIndex];
916
+ }
881
917
  }
882
918
  var dragRecords = [];
883
919
  droppedRecord = this.droppedRecord;
@@ -954,6 +990,7 @@ var RowDD = /** @class */ (function () {
954
990
  childRecords.splice(droppedRecordIndex, 0, draggedRecord_2);
955
991
  draggedRecord_2.parentItem = droppedRecord.parentItem;
956
992
  draggedRecord_2.parentUniqueID = droppedRecord.parentUniqueID;
993
+ draggedRecord_2.level = droppedRecord.level;
957
994
  if (this_1.parent.parentIdMapping) {
958
995
  draggedRecord_2[this_1.parent.parentIdMapping] = droppedRecord[this_1.parent.parentIdMapping];
959
996
  draggedRecord_2.parentItem = droppedRecord.parentItem;
@@ -85,7 +85,7 @@ var Selection = /** @class */ (function () {
85
85
  Selection.prototype.getCheckboxcolumnIndex = function () {
86
86
  var mappingUid;
87
87
  var columnIndex;
88
- var stackedHeader = "stackedHeader";
88
+ var stackedHeader = 'stackedHeader';
89
89
  var columnModel = 'columnModel';
90
90
  var columns = this.parent[stackedHeader] ? this.parent[columnModel] : (this.parent.columns);
91
91
  for (var col = 0; col < columns.length; col++) {
@@ -66,6 +66,17 @@ var Sort = /** @class */ (function () {
66
66
  }
67
67
  if (data[d].hasChildRecords) {
68
68
  var childSort = (new DataManager(data[d].childRecords).executeLocal(srtQry));
69
+ if (this.parent.allowRowDragAndDrop && data[d].childRecords.indexOf(this.parent.rowDragAndDropModule['draggedRecord']) !== -1 && this.parent.rowDragAndDropModule['dropPosition'] !== 'middleSegment') {
70
+ var dragdIndex = childSort.indexOf(this.parent.rowDragAndDropModule['draggedRecord']);
71
+ childSort.splice(dragdIndex, 1);
72
+ var dropdIndex = childSort.indexOf(this.parent.rowDragAndDropModule['droppedRecord']);
73
+ if (this.parent.rowDragAndDropModule['dropPosition'] === 'topSegment') {
74
+ childSort.splice(dropdIndex, 0, this.parent.rowDragAndDropModule['draggedRecord']);
75
+ }
76
+ else if (this.parent.rowDragAndDropModule['dropPosition'] === 'bottomSegment') {
77
+ childSort.splice(dropdIndex + 1, 0, this.parent.rowDragAndDropModule['draggedRecord']);
78
+ }
79
+ }
69
80
  this.iterateSort(childSort, srtQry);
70
81
  }
71
82
  }
@@ -530,6 +530,18 @@ var DataManipulation = /** @class */ (function () {
530
530
  srtQry.sortBy(this.parent.grid.sortSettings.columns[srt].field, compFun);
531
531
  }
532
532
  var modifiedData = new DataManager(parentData).executeLocal(srtQry);
533
+ if (this.parent.allowRowDragAndDrop && !isNullOrUndefined(this.parent.rowDragAndDropModule['draggedRecord']) &&
534
+ this.parent.rowDragAndDropModule['droppedRecord'].hasChildRecords && this.parent.rowDragAndDropModule['dropPosition'] !== 'middleSegment') {
535
+ var dragdIndex = modifiedData.indexOf(this.parent.rowDragAndDropModule['draggedRecord']);
536
+ modifiedData.splice(dragdIndex, 1);
537
+ var dropdIndex = modifiedData.indexOf(this.parent.rowDragAndDropModule['droppedRecord']);
538
+ if (this.parent.rowDragAndDropModule['droppedRecord'].hasChildRecords && this.parent.rowDragAndDropModule['dropPosition'] === 'topSegment') {
539
+ modifiedData.splice(dropdIndex, 0, this.parent.rowDragAndDropModule['draggedRecord']);
540
+ }
541
+ else if (this.parent.rowDragAndDropModule['dropPosition'] === 'bottomSegment') {
542
+ modifiedData.splice(dropdIndex + 1, 0, this.parent.rowDragAndDropModule['draggedRecord']);
543
+ }
544
+ }
533
545
  var sortArgs = { modifiedData: modifiedData, filteredData: results, srtQry: srtQry };
534
546
  this.parent.notify('createSort', sortArgs);
535
547
  results = sortArgs.modifiedData;
@@ -448,8 +448,11 @@ var TreeGrid = /** @class */ (function (_super) {
448
448
  member: 'ExcelExport', args: [this]
449
449
  });
450
450
  }
451
+ var freezePresent = this.injectedModules.filter(function (e) {
452
+ return e.prototype.getModuleName() === 'freeze';
453
+ });
451
454
  if (this.frozenColumns || this.frozenRows || this.getFrozenColumns() ||
452
- this.grid.getFrozenLeftColumnsCount() || this.grid.getFrozenRightColumnsCount()) {
455
+ this.grid.getFrozenLeftColumnsCount() || this.grid.getFrozenRightColumnsCount() || freezePresent.length) {
453
456
  modules.push({
454
457
  member: 'freeze', args: [this]
455
458
  });
@@ -1402,6 +1405,9 @@ var TreeGrid = /** @class */ (function (_super) {
1402
1405
  gridColumn[prop] = this.getGridColumns(column[i][prop], false, index);
1403
1406
  treeGridColumn[prop] = column[i][prop];
1404
1407
  }
1408
+ else if (this.initialRender && !isNullOrUndefined(treeColumn) && this.enablePersistence && prop === 'edit') {
1409
+ gridColumn[prop] = treeGridColumn[prop] = treeColumn[prop];
1410
+ }
1405
1411
  else if (!(treeColumn) || prop !== 'sortComparer') {
1406
1412
  gridColumn[prop] = treeGridColumn[prop] = column[i][prop];
1407
1413
  }
@@ -296,6 +296,8 @@ var Render = /** @class */ (function () {
296
296
  var cellRenderer = new CellRenderer(_this.parent.grid, _this.parent.grid.serviceLocator);
297
297
  var td = _this.parent.getCellFromIndex(rowsObj[j].index, cellIndex - indent);
298
298
  cellRenderer.refreshTD(td, cell, rowsObj[j].data, { index: rowsObj[j][rowIdx] });
299
+ var treecell = _this.parent.getRows()[j].cells[cellIndex];
300
+ _this.cellRender({ data: rowsObj[j].data, cell: treecell, column: cell.column });
299
301
  }
300
302
  }
301
303
  });
@@ -356,7 +356,12 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
356
356
  firsttdinx = +attr; // this.parent.getContent().querySelector('.e-content tr').getAttribute('aria-rowindex');
357
357
  }
358
358
  if (firsttdinx === 0) {
359
- this.translateY = scrollArgs.offset.top;
359
+ if (this.parent.allowRowDragAndDrop) {
360
+ this.translateY = scrollArgs.offset.top - this.parent.getRowHeight() * 2;
361
+ }
362
+ else {
363
+ this.translateY = scrollArgs.offset.top;
364
+ }
360
365
  }
361
366
  else {
362
367
  var height = this.parent.getRowHeight();
@@ -382,7 +387,12 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
382
387
  this.translateY = this.getTranslateY(scrollArgs.offset.top, content.getBoundingClientRect().height);
383
388
  }
384
389
  else {
385
- this.translateY = scrollArgs.offset.top;
390
+ if (this.parent.allowRowDragAndDrop) {
391
+ this.translateY = scrollArgs.offset.top - this.parent.getRowHeight() * 2;
392
+ }
393
+ else {
394
+ this.translateY = scrollArgs.offset.top;
395
+ }
386
396
  }
387
397
  }
388
398
  if (((downScroll && (scrollArgs.offset.top < (this.parent.getRowHeight() * this.totalRecords)))
@@ -119,6 +119,15 @@
119
119
  transform: rotate(360deg);
120
120
  }
121
121
  }
122
+ .e-treegrid .e-indent::before,
123
+ .e-grid-menu .e-indent::before {
124
+ content: "\e33f";
125
+ }
126
+ .e-treegrid .e-outdent::before,
127
+ .e-grid-menu .e-outdent::before {
128
+ content: "\e35d";
129
+ }
130
+
122
131
  .e-treegrid .e-treegridexpand::before,
123
132
  .e-treegrid .e-treegridcollapse::before {
124
133
  content: "\e22f";
@@ -120,6 +120,15 @@
120
120
  }
121
121
  }
122
122
  /*! component's theme wise override definitions and variables */
123
+ .e-treegrid .e-indent::before,
124
+ .e-grid-menu .e-indent::before {
125
+ content: "\e33f";
126
+ }
127
+ .e-treegrid .e-outdent::before,
128
+ .e-grid-menu .e-outdent::before {
129
+ content: "\e35d";
130
+ }
131
+
123
132
  .e-treegrid .e-treegridexpand::before,
124
133
  .e-treegrid .e-treegridcollapse::before {
125
134
  content: "\e22f";
@@ -161,6 +161,15 @@
161
161
  transform: rotate(360deg);
162
162
  }
163
163
  }
164
+ .e-treegrid .e-indent::before,
165
+ .e-grid-menu .e-indent::before {
166
+ content: "\e702";
167
+ }
168
+ .e-treegrid .e-outdent::before,
169
+ .e-grid-menu .e-outdent::before {
170
+ content: "\e722";
171
+ }
172
+
164
173
  .e-treegrid .e-treegridexpand::before,
165
174
  .e-treegrid .e-treegridcollapse::before {
166
175
  content: "\e70b";
@@ -161,6 +161,15 @@
161
161
  }
162
162
  }
163
163
  /*! Toolbar's bootstrap5 theme wise override definitions and variables */
164
+ .e-treegrid .e-indent::before,
165
+ .e-grid-menu .e-indent::before {
166
+ content: "\e810";
167
+ }
168
+ .e-treegrid .e-outdent::before,
169
+ .e-grid-menu .e-outdent::before {
170
+ content: "\e72a";
171
+ }
172
+
164
173
  .e-treegrid .e-treegridexpand::before,
165
174
  .e-treegrid .e-treegridcollapse::before {
166
175
  content: "\e75c";