@syncfusion/ej2-treegrid 20.1.60 → 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 (67) hide show
  1. package/CHANGELOG.md +5 -58
  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 +187 -110
  5. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  6. package/dist/es6/ej2-treegrid.es5.js +190 -113
  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/rowdragdrop.js +46 -9
  16. package/src/treegrid/actions/sort.js +11 -0
  17. package/src/treegrid/base/data.js +12 -0
  18. package/src/treegrid/base/treegrid.js +4 -3
  19. package/src/treegrid/renderer/virtual-tree-content-render.js +12 -2
  20. package/styles/bootstrap-dark.css +9 -0
  21. package/styles/bootstrap.css +9 -0
  22. package/styles/bootstrap4.css +9 -0
  23. package/styles/bootstrap5-dark.css +9 -0
  24. package/styles/bootstrap5.css +9 -0
  25. package/styles/fabric-dark.css +9 -0
  26. package/styles/fabric.css +9 -0
  27. package/styles/fluent-dark.css +9 -0
  28. package/styles/fluent.css +9 -0
  29. package/styles/highcontrast-light.css +9 -0
  30. package/styles/highcontrast.css +9 -0
  31. package/styles/material-dark.css +9 -0
  32. package/styles/material.css +9 -0
  33. package/styles/tailwind-dark.css +9 -0
  34. package/styles/tailwind.css +9 -0
  35. package/styles/treegrid/_fusionnew-definition.scss +29 -0
  36. package/styles/treegrid/_icons.scss +11 -0
  37. package/styles/treegrid/_material3-definition.scss +29 -0
  38. package/styles/treegrid/bootstrap-dark.css +9 -0
  39. package/styles/treegrid/bootstrap.css +9 -0
  40. package/styles/treegrid/bootstrap4.css +9 -0
  41. package/styles/treegrid/bootstrap5-dark.css +9 -0
  42. package/styles/treegrid/bootstrap5.css +9 -0
  43. package/styles/treegrid/fabric-dark.css +9 -0
  44. package/styles/treegrid/fabric.css +9 -0
  45. package/styles/treegrid/fluent-dark.css +9 -0
  46. package/styles/treegrid/fluent.css +9 -0
  47. package/styles/treegrid/highcontrast-light.css +9 -0
  48. package/styles/treegrid/highcontrast.css +9 -0
  49. package/styles/treegrid/icons/_bootstrap-dark.scss +11 -0
  50. package/styles/treegrid/icons/_bootstrap.scss +11 -0
  51. package/styles/treegrid/icons/_bootstrap4.scss +11 -0
  52. package/styles/treegrid/icons/_bootstrap5.scss +11 -0
  53. package/styles/treegrid/icons/_fabric-dark.scss +11 -0
  54. package/styles/treegrid/icons/_fabric.scss +11 -0
  55. package/styles/treegrid/icons/_fluent.scss +11 -0
  56. package/styles/treegrid/icons/_fusionnew.scss +26 -0
  57. package/styles/treegrid/icons/_highcontrast-light.scss +11 -0
  58. package/styles/treegrid/icons/_highcontrast.scss +11 -0
  59. package/styles/treegrid/icons/_material-dark.scss +11 -0
  60. package/styles/treegrid/icons/_material.scss +11 -0
  61. package/styles/treegrid/icons/_material3.scss +26 -0
  62. package/styles/treegrid/icons/_tailwind-dark.scss +11 -0
  63. package/styles/treegrid/icons/_tailwind.scss +11 -0
  64. package/styles/treegrid/material-dark.css +9 -0
  65. package/styles/treegrid/material.css +9 -0
  66. package/styles/treegrid/tailwind-dark.css +9 -0
  67. package/styles/treegrid/tailwind.css +9 -0
@@ -1350,105 +1350,6 @@ var Selection = /** @__PURE__ @class */ (function () {
1350
1350
  return Selection;
1351
1351
  }());
1352
1352
 
1353
- /**
1354
- * TreeGrid Freeze module
1355
- *
1356
- * @hidden
1357
- */
1358
- var Freeze$1 = /** @__PURE__ @class */ (function () {
1359
- /**
1360
- * Constructor for render module
1361
- *
1362
- * @param {TreeGrid} parent - Tree Grid instance
1363
- */
1364
- function Freeze$$1(parent) {
1365
- Grid.Inject(Freeze);
1366
- this.parent = parent;
1367
- this.addEventListener();
1368
- }
1369
- Freeze$$1.prototype.addEventListener = function () {
1370
- this.parent.on('rowExpandCollapse', this.rowExpandCollapse, this);
1371
- this.parent.on('dataBoundArg', this.dataBoundArg, this);
1372
- this.parent.grid.on('dblclick', this.dblClickHandler, this);
1373
- };
1374
- Freeze$$1.prototype.removeEventListener = function () {
1375
- if (this.parent.isDestroyed) {
1376
- return;
1377
- }
1378
- this.parent.off('rowExpandCollapse', this.rowExpandCollapse);
1379
- this.parent.off('dataBoundArg', this.dataBoundArg);
1380
- this.parent.grid.off('dblclick', this.dblClickHandler);
1381
- };
1382
- Freeze$$1.prototype.rowExpandCollapse = function (args) {
1383
- var movableRows = this.parent.getMovableDataRows();
1384
- var frozenrows = this.parent.getRows();
1385
- var rows;
1386
- var frozenRightRows;
1387
- var freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
1388
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
1389
- if (freeze) {
1390
- frozenRightRows = this.parent.getFrozenRightRows().filter(function (e) {
1391
- return e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1));
1392
- });
1393
- }
1394
- if (!args.detailrows.length) {
1395
- rows = movableRows.filter(function (e) {
1396
- return e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1));
1397
- });
1398
- }
1399
- else {
1400
- rows = args.detailrows;
1401
- }
1402
- for (var i = 0; i < rows.length; i++) {
1403
- var rData = this.parent.grid.getRowObjectFromUID(rows[i].getAttribute('data-Uid')).data;
1404
- rows[i].style.display = args.action;
1405
- if (freeze) {
1406
- frozenRightRows[i].style.display = args.action;
1407
- }
1408
- var queryselector = args.action === 'none' ? '.e-treecolumn-container .e-treegridcollapse'
1409
- : '.e-treecolumn-container .e-treegridexpand';
1410
- if (frozenrows[rows[i].rowIndex].querySelector(queryselector)) {
1411
- var cRow = [];
1412
- for (var i_1 = 0; i_1 < movableRows.length; i_1++) {
1413
- if (movableRows[i_1].querySelector('.e-gridrowindex' + rData.index + 'level' + (rData.level + 1))) {
1414
- cRow.push(movableRows[i_1]);
1415
- }
1416
- }
1417
- if (cRow.length) {
1418
- this.rowExpandCollapse({ detailrows: cRow, action: args.action });
1419
- }
1420
- }
1421
- }
1422
- };
1423
- Freeze$$1.prototype.dblClickHandler = function (e) {
1424
- if (parentsUntil(e.target, 'e-rowcell') &&
1425
- this.parent.grid.editSettings.allowEditOnDblClick && this.parent.editSettings.mode !== 'Cell') {
1426
- this.parent.grid.editModule.startEdit(parentsUntil(e.target, 'e-row'));
1427
- }
1428
- };
1429
- Freeze$$1.prototype.dataBoundArg = function () {
1430
- var checkboxColumn = this.parent.getColumns().filter(function (e) {
1431
- return e.showCheckbox;
1432
- });
1433
- if (checkboxColumn.length && this.parent.freezeModule && this.parent.initialRender) {
1434
- addClass([this.parent.element.getElementsByClassName('e-grid')[0]], 'e-checkselection');
1435
- }
1436
- };
1437
- Freeze$$1.prototype.destroy = function () {
1438
- this.removeEventListener();
1439
- };
1440
- /**
1441
- * For internal use only - Get the module name.
1442
- *
1443
- * @private
1444
- * @returns {string} Returns Freeze module name
1445
- */
1446
- Freeze$$1.prototype.getModuleName = function () {
1447
- return 'freeze';
1448
- };
1449
- return Freeze$$1;
1450
- }());
1451
-
1452
1353
  /**
1453
1354
  * TreeGrid Print module
1454
1355
  *
@@ -2446,6 +2347,18 @@ var DataManipulation = /** @__PURE__ @class */ (function () {
2446
2347
  srtQry.sortBy(this.parent.grid.sortSettings.columns[srt].field, compFun);
2447
2348
  }
2448
2349
  var modifiedData = new DataManager(parentData).executeLocal(srtQry);
2350
+ if (this.parent.allowRowDragAndDrop && !isNullOrUndefined(this.parent.rowDragAndDropModule['draggedRecord']) &&
2351
+ this.parent.rowDragAndDropModule['droppedRecord'].hasChildRecords && this.parent.rowDragAndDropModule['dropPosition'] !== 'middleSegment') {
2352
+ var dragdIndex = modifiedData.indexOf(this.parent.rowDragAndDropModule['draggedRecord']);
2353
+ modifiedData.splice(dragdIndex, 1);
2354
+ var dropdIndex = modifiedData.indexOf(this.parent.rowDragAndDropModule['droppedRecord']);
2355
+ if (this.parent.rowDragAndDropModule['droppedRecord'].hasChildRecords && this.parent.rowDragAndDropModule['dropPosition'] === 'topSegment') {
2356
+ modifiedData.splice(dropdIndex, 0, this.parent.rowDragAndDropModule['draggedRecord']);
2357
+ }
2358
+ else if (this.parent.rowDragAndDropModule['dropPosition'] === 'bottomSegment') {
2359
+ modifiedData.splice(dropdIndex + 1, 0, this.parent.rowDragAndDropModule['draggedRecord']);
2360
+ }
2361
+ }
2449
2362
  var sortArgs = { modifiedData: modifiedData, filteredData: results, srtQry: srtQry };
2450
2363
  this.parent.notify('createSort', sortArgs);
2451
2364
  results = sortArgs.modifiedData;
@@ -3662,7 +3575,6 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
3662
3575
  TreeGrid.prototype.requiredModules = function () {
3663
3576
  var modules = [];
3664
3577
  var splitFrozenCount = 'splitFrozenCount';
3665
- this.freezeModule = new Freeze$1(this);
3666
3578
  this.grid[splitFrozenCount](this.getGridColumns(this.columns));
3667
3579
  if (this.isDestroyed) {
3668
3580
  return modules;
@@ -3713,8 +3625,11 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
3713
3625
  member: 'ExcelExport', args: [this]
3714
3626
  });
3715
3627
  }
3628
+ var freezePresent = this.injectedModules.filter(function (e) {
3629
+ return e.prototype.getModuleName() === 'freeze';
3630
+ });
3716
3631
  if (this.frozenColumns || this.frozenRows || this.getFrozenColumns() ||
3717
- this.grid.getFrozenLeftColumnsCount() || this.grid.getFrozenRightColumnsCount() || this.freezeModule) {
3632
+ this.grid.getFrozenLeftColumnsCount() || this.grid.getFrozenRightColumnsCount() || freezePresent.length) {
3718
3633
  modules.push({
3719
3634
  member: 'freeze', args: [this]
3720
3635
  });
@@ -7376,7 +7291,8 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
7376
7291
  this.parent[dropPosition] = this.dropPosition;
7377
7292
  var data = [];
7378
7293
  for (var i = 0; i < fromIndexes.length; i++) {
7379
- data[i] = this.parent.getCurrentViewRecords()[fromIndexes[i]];
7294
+ var index = this.parent.getRowByIndex(fromIndexes[i]).rowIndex;
7295
+ data[i] = this.parent.getCurrentViewRecords()[index];
7380
7296
  }
7381
7297
  var isByMethod = true;
7382
7298
  var args = {
@@ -7480,6 +7396,9 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
7480
7396
  else {
7481
7397
  dropIndex = this.selectedRow.rowIndex - 1;
7482
7398
  }
7399
+ if (this.parent.enableVirtualization && this.parent.allowRowDragAndDrop && this.selectedRecord) {
7400
+ dropIndex = parseInt(this.selectedRow.getAttribute('aria-rowindex'), 10) - 1;
7401
+ }
7483
7402
  tObj[action] = 'indenting';
7484
7403
  tObj[droppedIndex] = dropIndex;
7485
7404
  this.eventTrigger('indenting', dropIndex);
@@ -7496,6 +7415,9 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
7496
7415
  dropIndex = i;
7497
7416
  }
7498
7417
  }
7418
+ if (this.parent.enableVirtualization && this.parent.allowRowDragAndDrop && this.selectedRecord) {
7419
+ dropIndex = parseInt(this.parent.getRows()[dropIndex].getAttribute('aria-rowindex'), 10);
7420
+ }
7499
7421
  tObj[action] = 'outdenting';
7500
7422
  tObj[droppedIndex] = dropIndex;
7501
7423
  this.eventTrigger('outdenting', dropIndex);
@@ -7513,10 +7435,20 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
7513
7435
  this.parent.trigger(actionBegin, actionArgs, function (actionArgs) {
7514
7436
  if (!actionArgs.cancel) {
7515
7437
  if (actionArgs.action === 'indenting') {
7516
- _this.reorderRows([_this.selectedRow.rowIndex], dropIndex, 'child');
7438
+ if (_this.parent.enableVirtualization && _this.parent.allowRowDragAndDrop) {
7439
+ _this.reorderRows([parseInt(_this.selectedRow.getAttribute('aria-rowindex'), 10)], dropIndex, 'child');
7440
+ }
7441
+ else {
7442
+ _this.reorderRows([_this.selectedRow.rowIndex], dropIndex, 'child');
7443
+ }
7517
7444
  }
7518
7445
  else if (actionArgs.action === 'outdenting') {
7519
- _this.reorderRows([_this.selectedRow.rowIndex], dropIndex, 'below');
7446
+ if (_this.parent.enableVirtualization && _this.parent.allowRowDragAndDrop) {
7447
+ _this.reorderRows([parseInt(_this.selectedRow.getAttribute('aria-rowindex'), 10)], dropIndex, 'below');
7448
+ }
7449
+ else {
7450
+ _this.reorderRows([_this.selectedRow.rowIndex], dropIndex, 'below');
7451
+ }
7520
7452
  }
7521
7453
  }
7522
7454
  });
@@ -7711,9 +7643,17 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
7711
7643
  RowDD$$1.prototype.removeLastrowBorder = function (element) {
7712
7644
  var isEmptyRow = element && (element.classList.contains('e-emptyrow') || element.classList.contains('e-columnheader')
7713
7645
  || element.classList.contains('e-detailrow'));
7714
- var islastRowIndex = element && !isEmptyRow &&
7715
- this.parent.getRowByIndex(this.parent.getCurrentViewRecords().length - 1).getAttribute('data-uid') !==
7716
- element.getAttribute('data-uid');
7646
+ var islastRowIndex;
7647
+ if (this.parent.enableVirtualization) {
7648
+ islastRowIndex = element && !isEmptyRow &&
7649
+ this.parent.getRows()[this.parent.getCurrentViewRecords().length - 1].getAttribute('data-uid') !==
7650
+ element.getAttribute('data-uid');
7651
+ }
7652
+ else {
7653
+ islastRowIndex = element && !isEmptyRow &&
7654
+ this.parent.getRowByIndex(this.parent.getCurrentViewRecords().length - 1).getAttribute('data-uid') !==
7655
+ element.getAttribute('data-uid');
7656
+ }
7717
7657
  var canremove = islastRowIndex || this.dropPosition === 'topSegment';
7718
7658
  if (this.parent.element.getElementsByClassName('e-lastrow-border').length > 0 && element && (islastRowIndex || canremove)) {
7719
7659
  this.parent.element.getElementsByClassName('e-lastrow-border')[0].remove();
@@ -7747,7 +7687,12 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
7747
7687
  rowPositionHeight = rowEle.offsetTop - scrollTop;
7748
7688
  }
7749
7689
  // let scrollTop = (tObj.grid.scrollModule as any).content.scrollTop;
7750
- rowTop = rowPositionHeight + contentHeight + roundOff;
7690
+ if (this.parent.enableVirtualization) {
7691
+ rowTop = rowEle.getBoundingClientRect().top;
7692
+ }
7693
+ else {
7694
+ rowTop = rowPositionHeight + contentHeight + roundOff;
7695
+ }
7751
7696
  var rowBottom = rowTop + row[0].offsetHeight;
7752
7697
  var difference = rowBottom - rowTop;
7753
7698
  var divide = difference / 3;
@@ -7827,7 +7772,7 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
7827
7772
  RowDD$$1.prototype.addLastRowborder = function (trElement) {
7828
7773
  var isEmptyRow = trElement && (trElement.classList.contains('e-emptyrow') ||
7829
7774
  trElement.classList.contains('e-columnheader') || trElement.classList.contains('e-detailrow'));
7830
- if (trElement && !isEmptyRow && this.parent.getRowByIndex(this.parent.getCurrentViewRecords().length - 1).getAttribute('data-uid') ===
7775
+ if (trElement && !isEmptyRow && this.parent.getRows()[this.parent.getCurrentViewRecords().length - 1].getAttribute('data-uid') ===
7831
7776
  trElement.getAttribute('data-uid')) {
7832
7777
  var bottomborder = this.parent.createElement('div', { className: 'e-lastrow-border' });
7833
7778
  var gridcontentEle = this.parent.getContent();
@@ -8169,7 +8114,13 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
8169
8114
  }
8170
8115
  else {
8171
8116
  args.dropIndex = args.dropIndex === args.fromIndex ? this.getTargetIdx(args.target.parentElement) : args.dropIndex;
8172
- this.droppedRecord = tObj.getCurrentViewRecords()[args.dropIndex];
8117
+ if (this.parent.enableVirtualization) {
8118
+ var index = this.parent.getRowByIndex(args.dropIndex).rowIndex;
8119
+ this.droppedRecord = tObj.getCurrentViewRecords()[index];
8120
+ }
8121
+ else {
8122
+ this.droppedRecord = tObj.getCurrentViewRecords()[args.dropIndex];
8123
+ }
8173
8124
  }
8174
8125
  var dragRecords = [];
8175
8126
  droppedRecord = this.droppedRecord;
@@ -8246,6 +8197,7 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
8246
8197
  childRecords.splice(droppedRecordIndex, 0, draggedRecord_2);
8247
8198
  draggedRecord_2.parentItem = droppedRecord.parentItem;
8248
8199
  draggedRecord_2.parentUniqueID = droppedRecord.parentUniqueID;
8200
+ draggedRecord_2.level = droppedRecord.level;
8249
8201
  if (this_1.parent.parentIdMapping) {
8250
8202
  draggedRecord_2[this_1.parent.parentIdMapping] = droppedRecord[this_1.parent.parentIdMapping];
8251
8203
  draggedRecord_2.parentItem = droppedRecord.parentItem;
@@ -10019,6 +9971,17 @@ var Sort$1 = /** @__PURE__ @class */ (function () {
10019
9971
  }
10020
9972
  if (data[d].hasChildRecords) {
10021
9973
  var childSort = (new DataManager(data[d].childRecords).executeLocal(srtQry));
9974
+ if (this.parent.allowRowDragAndDrop && data[d].childRecords.indexOf(this.parent.rowDragAndDropModule['draggedRecord']) !== -1 && this.parent.rowDragAndDropModule['dropPosition'] !== 'middleSegment') {
9975
+ var dragdIndex = childSort.indexOf(this.parent.rowDragAndDropModule['draggedRecord']);
9976
+ childSort.splice(dragdIndex, 1);
9977
+ var dropdIndex = childSort.indexOf(this.parent.rowDragAndDropModule['droppedRecord']);
9978
+ if (this.parent.rowDragAndDropModule['dropPosition'] === 'topSegment') {
9979
+ childSort.splice(dropdIndex, 0, this.parent.rowDragAndDropModule['draggedRecord']);
9980
+ }
9981
+ else if (this.parent.rowDragAndDropModule['dropPosition'] === 'bottomSegment') {
9982
+ childSort.splice(dropdIndex + 1, 0, this.parent.rowDragAndDropModule['draggedRecord']);
9983
+ }
9984
+ }
10022
9985
  this.iterateSort(childSort, srtQry);
10023
9986
  }
10024
9987
  }
@@ -10838,7 +10801,12 @@ var BatchEdit = /** @__PURE__ @class */ (function () {
10838
10801
  BatchEdit.prototype.nextCellIndex = function (args) {
10839
10802
  var index = 'index';
10840
10803
  var rowIndex = 'rowIndex';
10841
- args[index] = this.parent.getSelectedRows()[0][rowIndex];
10804
+ if (this.parent.getSelectedRows().length) {
10805
+ args[index] = this.parent.getSelectedRows()[0][rowIndex];
10806
+ }
10807
+ else {
10808
+ args[index] = this.batchIndex;
10809
+ }
10842
10810
  };
10843
10811
  return BatchEdit;
10844
10812
  }());
@@ -12358,7 +12326,12 @@ var VirtualTreeContentRenderer = /** @__PURE__ @class */ (function (_super) {
12358
12326
  firsttdinx = +attr; // this.parent.getContent().querySelector('.e-content tr').getAttribute('aria-rowindex');
12359
12327
  }
12360
12328
  if (firsttdinx === 0) {
12361
- this.translateY = scrollArgs.offset.top;
12329
+ if (this.parent.allowRowDragAndDrop) {
12330
+ this.translateY = scrollArgs.offset.top - this.parent.getRowHeight() * 2;
12331
+ }
12332
+ else {
12333
+ this.translateY = scrollArgs.offset.top;
12334
+ }
12362
12335
  }
12363
12336
  else {
12364
12337
  var height = this.parent.getRowHeight();
@@ -12384,7 +12357,12 @@ var VirtualTreeContentRenderer = /** @__PURE__ @class */ (function (_super) {
12384
12357
  this.translateY = this.getTranslateY(scrollArgs.offset.top, content.getBoundingClientRect().height);
12385
12358
  }
12386
12359
  else {
12387
- this.translateY = scrollArgs.offset.top;
12360
+ if (this.parent.allowRowDragAndDrop) {
12361
+ this.translateY = scrollArgs.offset.top - this.parent.getRowHeight() * 2;
12362
+ }
12363
+ else {
12364
+ this.translateY = scrollArgs.offset.top;
12365
+ }
12388
12366
  }
12389
12367
  }
12390
12368
  if (((downScroll && (scrollArgs.offset.top < (this.parent.getRowHeight() * this.totalRecords)))
@@ -12769,6 +12747,105 @@ var TreeVirtual = /** @__PURE__ @class */ (function (_super) {
12769
12747
  return TreeVirtual;
12770
12748
  }(VirtualScroll));
12771
12749
 
12750
+ /**
12751
+ * TreeGrid Freeze module
12752
+ *
12753
+ * @hidden
12754
+ */
12755
+ var Freeze$1 = /** @__PURE__ @class */ (function () {
12756
+ /**
12757
+ * Constructor for render module
12758
+ *
12759
+ * @param {TreeGrid} parent - Tree Grid instance
12760
+ */
12761
+ function Freeze$$1(parent) {
12762
+ Grid.Inject(Freeze);
12763
+ this.parent = parent;
12764
+ this.addEventListener();
12765
+ }
12766
+ Freeze$$1.prototype.addEventListener = function () {
12767
+ this.parent.on('rowExpandCollapse', this.rowExpandCollapse, this);
12768
+ this.parent.on('dataBoundArg', this.dataBoundArg, this);
12769
+ this.parent.grid.on('dblclick', this.dblClickHandler, this);
12770
+ };
12771
+ Freeze$$1.prototype.removeEventListener = function () {
12772
+ if (this.parent.isDestroyed) {
12773
+ return;
12774
+ }
12775
+ this.parent.off('rowExpandCollapse', this.rowExpandCollapse);
12776
+ this.parent.off('dataBoundArg', this.dataBoundArg);
12777
+ this.parent.grid.off('dblclick', this.dblClickHandler);
12778
+ };
12779
+ Freeze$$1.prototype.rowExpandCollapse = function (args) {
12780
+ var movableRows = this.parent.getMovableDataRows();
12781
+ var frozenrows = this.parent.getRows();
12782
+ var rows;
12783
+ var frozenRightRows;
12784
+ var freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
12785
+ this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
12786
+ if (freeze) {
12787
+ frozenRightRows = this.parent.getFrozenRightRows().filter(function (e) {
12788
+ return e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1));
12789
+ });
12790
+ }
12791
+ if (!args.detailrows.length) {
12792
+ rows = movableRows.filter(function (e) {
12793
+ return e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1));
12794
+ });
12795
+ }
12796
+ else {
12797
+ rows = args.detailrows;
12798
+ }
12799
+ for (var i = 0; i < rows.length; i++) {
12800
+ var rData = this.parent.grid.getRowObjectFromUID(rows[i].getAttribute('data-Uid')).data;
12801
+ rows[i].style.display = args.action;
12802
+ if (freeze) {
12803
+ frozenRightRows[i].style.display = args.action;
12804
+ }
12805
+ var queryselector = args.action === 'none' ? '.e-treecolumn-container .e-treegridcollapse'
12806
+ : '.e-treecolumn-container .e-treegridexpand';
12807
+ if (frozenrows[rows[i].rowIndex].querySelector(queryselector)) {
12808
+ var cRow = [];
12809
+ for (var i_1 = 0; i_1 < movableRows.length; i_1++) {
12810
+ if (movableRows[i_1].querySelector('.e-gridrowindex' + rData.index + 'level' + (rData.level + 1))) {
12811
+ cRow.push(movableRows[i_1]);
12812
+ }
12813
+ }
12814
+ if (cRow.length) {
12815
+ this.rowExpandCollapse({ detailrows: cRow, action: args.action });
12816
+ }
12817
+ }
12818
+ }
12819
+ };
12820
+ Freeze$$1.prototype.dblClickHandler = function (e) {
12821
+ if (parentsUntil(e.target, 'e-rowcell') &&
12822
+ this.parent.grid.editSettings.allowEditOnDblClick && this.parent.editSettings.mode !== 'Cell') {
12823
+ this.parent.grid.editModule.startEdit(parentsUntil(e.target, 'e-row'));
12824
+ }
12825
+ };
12826
+ Freeze$$1.prototype.dataBoundArg = function () {
12827
+ var checkboxColumn = this.parent.getColumns().filter(function (e) {
12828
+ return e.showCheckbox;
12829
+ });
12830
+ if (checkboxColumn.length && this.parent.freezeModule && this.parent.initialRender) {
12831
+ addClass([this.parent.element.getElementsByClassName('e-grid')[0]], 'e-checkselection');
12832
+ }
12833
+ };
12834
+ Freeze$$1.prototype.destroy = function () {
12835
+ this.removeEventListener();
12836
+ };
12837
+ /**
12838
+ * For internal use only - Get the module name.
12839
+ *
12840
+ * @private
12841
+ * @returns {string} Returns Freeze module name
12842
+ */
12843
+ Freeze$$1.prototype.getModuleName = function () {
12844
+ return 'freeze';
12845
+ };
12846
+ return Freeze$$1;
12847
+ }());
12848
+
12772
12849
  /**
12773
12850
  * TreeGrid ColumnChooser module
12774
12851
  *