@syncfusion/ej2-treegrid 27.1.51 → 27.1.55

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 (76) hide show
  1. package/dist/ej2-treegrid.min.js +2 -2
  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 +56 -28
  5. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  6. package/dist/es6/ej2-treegrid.es5.js +56 -28
  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/package.json +9 -9
  12. package/src/treegrid/actions/detail-row.js +1 -1
  13. package/src/treegrid/actions/freeze-column.js +3 -3
  14. package/src/treegrid/base/data.js +1 -1
  15. package/src/treegrid/base/treegrid.d.ts +1 -0
  16. package/src/treegrid/base/treegrid.js +32 -19
  17. package/src/treegrid/renderer/render.js +4 -4
  18. package/src/treegrid/renderer/virtual-tree-content-render.js +15 -0
  19. package/styles/bootstrap-dark-lite.css +10 -1
  20. package/styles/bootstrap-dark.css +10 -1
  21. package/styles/bootstrap-lite.css +10 -1
  22. package/styles/bootstrap.css +10 -1
  23. package/styles/bootstrap4-lite.css +10 -1
  24. package/styles/bootstrap4.css +10 -1
  25. package/styles/bootstrap5-dark-lite.css +10 -1
  26. package/styles/bootstrap5-dark.css +10 -1
  27. package/styles/bootstrap5-lite.css +10 -1
  28. package/styles/bootstrap5.3-lite.css +10 -1
  29. package/styles/bootstrap5.3.css +10 -1
  30. package/styles/bootstrap5.css +10 -1
  31. package/styles/fabric-dark-lite.css +10 -1
  32. package/styles/fabric-dark.css +10 -1
  33. package/styles/fabric-lite.css +10 -1
  34. package/styles/fabric.css +10 -1
  35. package/styles/fluent-dark-lite.css +10 -1
  36. package/styles/fluent-dark.css +10 -1
  37. package/styles/fluent-lite.css +10 -1
  38. package/styles/fluent.css +10 -1
  39. package/styles/fluent2-lite.css +10 -1
  40. package/styles/fluent2.css +10 -1
  41. package/styles/highcontrast-light-lite.css +10 -1
  42. package/styles/highcontrast-light.css +10 -1
  43. package/styles/highcontrast-lite.css +10 -1
  44. package/styles/highcontrast.css +10 -1
  45. package/styles/material-dark-lite.css +10 -1
  46. package/styles/material-dark.css +10 -1
  47. package/styles/material-lite.css +10 -1
  48. package/styles/material.css +10 -1
  49. package/styles/material3-dark-lite.css +10 -1
  50. package/styles/material3-dark.css +10 -1
  51. package/styles/material3-lite.css +10 -1
  52. package/styles/material3.css +10 -1
  53. package/styles/tailwind-dark-lite.css +10 -1
  54. package/styles/tailwind-dark.css +10 -1
  55. package/styles/tailwind-lite.css +10 -1
  56. package/styles/tailwind.css +10 -1
  57. package/styles/treegrid/_layout.scss +11 -1
  58. package/styles/treegrid/bootstrap-dark.css +10 -1
  59. package/styles/treegrid/bootstrap.css +10 -1
  60. package/styles/treegrid/bootstrap4.css +10 -1
  61. package/styles/treegrid/bootstrap5-dark.css +10 -1
  62. package/styles/treegrid/bootstrap5.3.css +10 -1
  63. package/styles/treegrid/bootstrap5.css +10 -1
  64. package/styles/treegrid/fabric-dark.css +10 -1
  65. package/styles/treegrid/fabric.css +10 -1
  66. package/styles/treegrid/fluent-dark.css +10 -1
  67. package/styles/treegrid/fluent.css +10 -1
  68. package/styles/treegrid/fluent2.css +10 -1
  69. package/styles/treegrid/highcontrast-light.css +10 -1
  70. package/styles/treegrid/highcontrast.css +10 -1
  71. package/styles/treegrid/material-dark.css +10 -1
  72. package/styles/treegrid/material.css +10 -1
  73. package/styles/treegrid/material3-dark.css +10 -1
  74. package/styles/treegrid/material3.css +10 -1
  75. package/styles/treegrid/tailwind-dark.css +10 -1
  76. package/styles/treegrid/tailwind.css +10 -1
@@ -1535,7 +1535,7 @@ class Render {
1535
1535
  parentData[this.parent.expandStateMapping]) || this.parent.enableCollapseAll)) ||
1536
1536
  !getExpandStatus(this.parent, args.data, this.parent.grid.getCurrentViewRecords());
1537
1537
  if (collapsed && !isNullOrUndefined(args.row)) {
1538
- args.row.style.display = 'none';
1538
+ this.parent['toggleRowVisibility'](args.row, 'e-childrow-hidden');
1539
1539
  const rowsObj = this.parent.grid.getRowsObject();
1540
1540
  if (!this.parent.grid.isFrozenGrid() && !isNullOrUndefined(args.row.getAttribute('data-uid'))) {
1541
1541
  rowsObj.filter((e) => e.uid === args.row.getAttribute('data-uid'))[0].visible = false;
@@ -1548,8 +1548,8 @@ class Render {
1548
1548
  return getValue(proxy.idMapping, rec) === getValue(proxy.parentIdMapping, data);
1549
1549
  });
1550
1550
  if (parentrec.length > 0 && !parentrec[0].isSummaryRow && !isNullOrUndefined(args.row)) {
1551
- const display = parentrec[0].expanded ? 'table-row' : 'none';
1552
- args.row.setAttribute('style', 'display: ' + display + ';');
1551
+ const display = parentrec[0].expanded ? 'e-childrow-visible' : 'e-childrow-hidden';
1552
+ this.parent['toggleRowVisibility'](args.row, display);
1553
1553
  }
1554
1554
  }
1555
1555
  //addClass([args.row], 'e-gridrowindex' + index + 'level' + (<ITreeData>args.data).level);
@@ -1566,7 +1566,7 @@ class Render {
1566
1566
  }
1567
1567
  if (this.parent.enableCollapseAll && this.parent.initialRender) {
1568
1568
  if (!isNullOrUndefined(data.parentItem)) {
1569
- args.row.style.display = 'none';
1569
+ this.parent['toggleRowVisibility'](args.row, 'e-childrow-hidden');
1570
1570
  }
1571
1571
  }
1572
1572
  }
@@ -2181,7 +2181,7 @@ class DataManipulation {
2181
2181
  rowDetails.record.expanded = true;
2182
2182
  }
2183
2183
  for (let i = 0; i < rowDetails.rows.length; i++) {
2184
- rowDetails.rows[parseInt(i.toString(), 10)].style.display = 'table-row';
2184
+ this.parent['toggleRowVisibility'](rowDetails.rows[parseInt(i.toString(), 10)], 'e-childrow-visible');
2185
2185
  if (!this.parent.loadChildOnDemand) {
2186
2186
  const targetEle = rowDetails.rows[parseInt(i.toString(), 10)].getElementsByClassName('e-treegridcollapse')[0];
2187
2187
  childRecord = this.parent.rowTemplate ?
@@ -3865,7 +3865,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
3865
3865
  findnextRowElement(summaryRowElement) {
3866
3866
  let rowElement = summaryRowElement.nextElementSibling;
3867
3867
  if (rowElement !== null && (rowElement.className.indexOf('e-summaryrow') !== -1 ||
3868
- rowElement.style.display === 'none')) {
3868
+ rowElement.classList.contains('e-childrow-hidden'))) {
3869
3869
  rowElement = this.findnextRowElement(rowElement);
3870
3870
  }
3871
3871
  return rowElement;
@@ -3874,7 +3874,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
3874
3874
  findPreviousRowElement(summaryRowElement) {
3875
3875
  let rowElement = summaryRowElement.previousElementSibling;
3876
3876
  if (rowElement !== null && (rowElement.className.indexOf('e-summaryrow') !== -1 ||
3877
- rowElement.style.display === 'none')) {
3877
+ rowElement.classList.contains('e-childrow-hidden'))) {
3878
3878
  rowElement = this.findPreviousRowElement(rowElement);
3879
3879
  }
3880
3880
  return rowElement;
@@ -5477,12 +5477,12 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
5477
5477
  */
5478
5478
  getPersistData() {
5479
5479
  const keyEntity = ['pageSettings', 'sortSettings',
5480
- 'filterSettings', 'columns', 'searchSettings', 'selectedRowIndex', 'treeColumnIndex'];
5480
+ 'filterSettings', 'columns', 'searchSettings', 'selectedRowIndex', 'treeColumnIndex', 'scrollPosition'];
5481
5481
  const ignoreOnPersist = {
5482
5482
  pageSettings: ['template', 'pageSizes', 'pageSizeMode', 'enableQueryString', 'totalRecordsCount', 'pageCount'],
5483
5483
  filterSettings: ['type', 'mode', 'showFilterBarStatus', 'immediateModeDelay', 'ignoreAccent', 'hierarchyMode'],
5484
5484
  searchSettings: ['fields', 'operator', 'ignoreCase'],
5485
- sortSettings: [], columns: [], selectedRowIndex: []
5485
+ sortSettings: [], columns: [], selectedRowIndex: [], scrollPosition: []
5486
5486
  };
5487
5487
  const ignoreOnColumn = ['filter', 'edit', 'filterBarTemplate', 'headerTemplate', 'template',
5488
5488
  'commandTemplate', 'commands', 'dataSource'];
@@ -6327,6 +6327,9 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6327
6327
  });
6328
6328
  }
6329
6329
  record = this.getCollapseExpandRecords(row, record);
6330
+ if (isNullOrUndefined(row) && isNullOrUndefined(record)) {
6331
+ return;
6332
+ }
6330
6333
  if (!isNullOrUndefined(row) && row.cells[0].classList.contains('e-lastrowcell')) {
6331
6334
  this.lastRowBorder(row, false);
6332
6335
  }
@@ -6408,7 +6411,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6408
6411
  return e.hasChildRecords;
6409
6412
  });
6410
6413
  }
6411
- else if (isNullOrUndefined(record)) {
6414
+ else if (isNullOrUndefined(record) && !isNullOrUndefined(row)) {
6412
6415
  if (this.detailTemplate) {
6413
6416
  record = this.grid.getCurrentViewRecords()[row.getAttribute('data-rowindex')];
6414
6417
  }
@@ -6448,6 +6451,9 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6448
6451
  });
6449
6452
  }
6450
6453
  record = this.getCollapseExpandRecords(row, record);
6454
+ if (isNullOrUndefined(row) && isNullOrUndefined(record)) {
6455
+ return;
6456
+ }
6451
6457
  if (this.isCollapseAll && !isRemoteData(this)) {
6452
6458
  const args = { data: parentRec, row: row, cancel: false };
6453
6459
  if (!this.isCollapsingEventTriggered) {
@@ -6469,7 +6475,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6469
6475
  else if (!this.isCollapseAll || (this.isCollapseAll && isRemoteData(this))) {
6470
6476
  const args = { data: record, row: row, cancel: false };
6471
6477
  this.trigger(collapsing, args, (collapsingArgs) => {
6472
- if (!collapsingArgs.cancel && !isNullOrUndefined(record)) {
6478
+ if (!collapsingArgs.cancel) {
6473
6479
  this.collapseRows(row, record, parentRec);
6474
6480
  }
6475
6481
  });
@@ -6769,7 +6775,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6769
6775
  else {
6770
6776
  let displayAction;
6771
6777
  if (action === 'expand') {
6772
- displayAction = 'table-row';
6778
+ displayAction = 'e-childrow-visible';
6773
6779
  if (!isChild) {
6774
6780
  record.expanded = true;
6775
6781
  this.uniqueIDCollection[record.uniqueID].expanded = record.expanded;
@@ -6790,7 +6796,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6790
6796
  removeClass([targetEle], 'e-treegridcollapse');
6791
6797
  }
6792
6798
  else {
6793
- displayAction = 'none';
6799
+ displayAction = 'e-childrow-hidden';
6794
6800
  if (!isChild || isCountRequired(this)) {
6795
6801
  record.expanded = false;
6796
6802
  this.uniqueIDCollection[record.uniqueID].expanded = record.expanded;
@@ -6986,7 +6992,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6986
6992
  const rows = this.getContentTable().rows;
6987
6993
  gridRows = [].slice.call(rows);
6988
6994
  }
6989
- const displayAction = (action === 'expand') ? 'table-row' : 'none';
6995
+ const displayAction = (action === 'expand') ? 'e-childrow-visible' : 'e-childrow-hidden';
6990
6996
  const primaryKeyField = this.getPrimaryKeyFieldNames()[0];
6991
6997
  if (this.enableImmutableMode && !this.allowPaging) {
6992
6998
  rows = [];
@@ -7018,11 +7024,11 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
7018
7024
  const detailrows = gridRows.filter((r) => r.classList.contains('e-griddetailrowindex' + record.index + 'level' + (record.level + 1)));
7019
7025
  for (let i = 0; i < rows.length; i++) {
7020
7026
  if (!isNullOrUndefined(rows[parseInt(i.toString(), 10)])) {
7021
- rows[parseInt(i.toString(), 10)].style.display = displayAction;
7027
+ this.toggleRowVisibility(rows[parseInt(i.toString(), 10)], displayAction);
7022
7028
  }
7023
7029
  if (!isNullOrUndefined(rows[parseInt(i.toString(), 10)]) && !this.allowPaging && !(this.enableVirtualization
7024
7030
  || this.enableInfiniteScrolling || isRemoteData(this) || isCountRequired(this))) {
7025
- gridRowsObject[rows[parseInt(i.toString(), 10)].rowIndex].visible = displayAction !== 'none' ? true : false;
7031
+ gridRowsObject[rows[parseInt(i.toString(), 10)].rowIndex].visible = displayAction !== 'e-childrow-hidden' ? true : false;
7026
7032
  const parentRecord = currentViewData.filter((e) => {
7027
7033
  return e.uniqueID === currentRecord[0].parentUniqueID;
7028
7034
  });
@@ -7031,10 +7037,10 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
7031
7037
  }
7032
7038
  }
7033
7039
  if (!isNullOrUndefined(movableRows)) {
7034
- movableRows[parseInt(i.toString(), 10)].style.display = displayAction;
7040
+ this.toggleRowVisibility(movableRows[parseInt(i.toString(), 10)], displayAction);
7035
7041
  }
7036
7042
  if (!isNullOrUndefined(freezeRightRows)) {
7037
- freezeRightRows[parseInt(i.toString(), 10)].style.display = displayAction;
7043
+ this.toggleRowVisibility(freezeRightRows[parseInt(i.toString(), 10)], displayAction);
7038
7044
  }
7039
7045
  this.notify('childRowExpand', { row: rows[parseInt(i.toString(), 10)] });
7040
7046
  if ((!isNullOrUndefined(childRecords[parseInt(i.toString(), 10)].childRecords) && childRecords[parseInt(i.toString(), 10)].childRecords.length > 0) && (action !== 'expand' ||
@@ -7048,8 +7054,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
7048
7054
  for (let i = 0; i < detailrows.length; i++) {
7049
7055
  if (!isNullOrUndefined(detailrows[parseInt(i.toString(), 10)]) && !this.allowPaging && !(this.enableVirtualization ||
7050
7056
  this.enableInfiniteScrolling || isRemoteData(this) || isCountRequired(this))) {
7051
- gridRowsObject[detailrows[parseInt(i.toString(), 10)].rowIndex].visible = displayAction !== 'none' ? true : false;
7052
- detailrows[parseInt(i.toString(), 10)].style.display = displayAction;
7057
+ gridRowsObject[detailrows[parseInt(i.toString(), 10)].rowIndex].visible = displayAction !== 'e-childrow-hidden' ? true : false;
7058
+ this.toggleRowVisibility(detailrows[parseInt(i.toString(), 10)], displayAction);
7053
7059
  }
7054
7060
  }
7055
7061
  if (!this.allowPaging && !(this.enableVirtualization || this.enableInfiniteScrolling || isRemoteData(this)
@@ -7057,12 +7063,18 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
7057
7063
  this.grid.notify('refresh-Expand-and-Collapse', { rows: this.grid.getRowsObject() });
7058
7064
  }
7059
7065
  }
7066
+ toggleRowVisibility(row, displayAction) {
7067
+ if (row) {
7068
+ row.classList.remove('e-childrow-hidden', 'e-childrow-visible');
7069
+ row.classList.add(displayAction);
7070
+ }
7071
+ }
7060
7072
  updateAltRow(rows) {
7061
7073
  if (this.enableAltRow && !this.rowTemplate) {
7062
7074
  let visibleRowCount = 0;
7063
7075
  for (let i = 0; rows && i < rows.length; i++) {
7064
7076
  const gridRow = rows[parseInt(i.toString(), 10)];
7065
- if (gridRow.style.display !== 'none') {
7077
+ if (!gridRow.classList.contains('e-childrow-hidden')) {
7066
7078
  if (gridRow.classList.contains('e-altrow')) {
7067
7079
  removeClass([gridRow], 'e-altrow');
7068
7080
  }
@@ -7104,15 +7116,15 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
7104
7116
  rightrows = this.getRows().filter((r) => r.querySelector('.e-gridrowindex' + rowDetails.record.index + 'level' + (rowDetails.record.level + 1)));
7105
7117
  }
7106
7118
  for (let i = 0; i < rows.length; i++) {
7107
- rows[parseInt(i.toString(), 10)].style.display = 'none';
7119
+ this.toggleRowVisibility(rows[parseInt(i.toString(), 10)], 'e-childrow-hidden');
7108
7120
  row = rows[parseInt(i.toString(), 10)];
7109
7121
  const collapsingTd = rows[parseInt(i.toString(), 10)].querySelector('.e-detailrowexpand');
7110
7122
  if (!isNullOrUndefined(collapsingTd)) {
7111
7123
  this.grid.detailRowModule.collapse(collapsingTd);
7112
7124
  }
7113
7125
  if (freeze) {
7114
- movablerows[parseInt(i.toString(), 10)].style.display = 'none';
7115
- rightrows[parseInt(i.toString(), 10)].style.display = 'none';
7126
+ this.toggleRowVisibility(movablerows[parseInt(i.toString(), 10)], 'e-childrow-hidden');
7127
+ this.toggleRowVisibility(rightrows[parseInt(i.toString(), 10)], 'e-childrow-hidden');
7116
7128
  if (!rows[parseInt(i.toString(), 10)].querySelector('.e-treecolumn-container .e-treegridexpand')) {
7117
7129
  if (movablerows[parseInt(i.toString(), 10)].querySelector('.e-treecolumn-container .e-treegridexpand')) {
7118
7130
  row = movablerows[parseInt(i.toString(), 10)];
@@ -7263,6 +7275,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
7263
7275
  * @returns {void}
7264
7276
  */
7265
7277
  clearSelection() {
7278
+ this.grid.selectionModule['actualTarget'] = null;
7266
7279
  this.grid.clearSelection();
7267
7280
  }
7268
7281
  /**
@@ -12834,7 +12847,7 @@ class DetailRow {
12834
12847
  return;
12835
12848
  }
12836
12849
  for (let i = 0; i < args.detailrows.length; i++) {
12837
- args.detailrows[parseInt(i.toString(), 10)].style.display = args.action;
12850
+ this.parent['toggleRowVisibility'](args.detailrows[parseInt(i.toString(), 10)], args.action);
12838
12851
  }
12839
12852
  }
12840
12853
  detaildataBound(args) {
@@ -12978,6 +12991,18 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
12978
12991
  this.parent[`${action}`]('refresh-virtual-block', this.refreshContentRows, this);
12979
12992
  this.fn = () => {
12980
12993
  this.observers.observes((scrollArgs) => this.scrollListeners(scrollArgs), this.onEnteredAction(), this.parent);
12994
+ const gObj = this.parent;
12995
+ if (gObj.root.enablePersistence && gObj.root.scrollPosition) {
12996
+ this.content.scrollTop = gObj.root.scrollPosition.top;
12997
+ if (gObj.root.enableColumnVirtualization) {
12998
+ this.content.scrollLeft = gObj.root.scrollPosition.left;
12999
+ }
13000
+ const scrollValues = {
13001
+ direction: 'down', sentinel: this.observer.sentinelInfo.down,
13002
+ offset: gObj.root.scrollPosition, focusElement: gObj.element
13003
+ };
13004
+ this.scrollListeners(scrollValues);
13005
+ }
12981
13006
  this.parent.off('content-ready', this.fn);
12982
13007
  };
12983
13008
  this.parent.addEventListener('dataBound', this.dataBoundEvent.bind(this));
@@ -13235,6 +13260,9 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
13235
13260
  }
13236
13261
  scrollListeners(scrollArgs) {
13237
13262
  this['scrollAfterEdit']();
13263
+ if (this.parent.root.enablePersistence) {
13264
+ this.parent.root.scrollPosition = scrollArgs.offset;
13265
+ }
13238
13266
  const info = scrollArgs.sentinel;
13239
13267
  const rowHeight = this.parent.getRowHeight();
13240
13268
  const outBuffer = this.parent.pageSettings.pageSize - Math.ceil(this.parent.pageSettings.pageSize / 2);
@@ -13819,11 +13847,11 @@ class Freeze {
13819
13847
  if (!isNullOrUndefined(movableRows) && row.parentElement.firstElementChild.clientHeight > 0) {
13820
13848
  row.style.height = row.parentElement.firstElementChild.clientHeight + 'px';
13821
13849
  }
13822
- row.style.display = args.action;
13850
+ this.parent['toggleRowVisibility'](row, args.action);
13823
13851
  if (freeze && frozenRightRows.length) {
13824
- frozenRightRows[parseInt(i.toString(), 10)].style.display = args.action;
13852
+ this.parent['toggleRowVisibility'](frozenRightRows[parseInt(i.toString(), 10)], args.action);
13825
13853
  }
13826
- const queryselector = args.action === 'none' ? '.e-treecolumn-container .e-treegridcollapse'
13854
+ const queryselector = args.action === 'e-childrow-hidden' ? '.e-treecolumn-container .e-treegridcollapse'
13827
13855
  : '.e-treecolumn-container .e-treegridexpand';
13828
13856
  if (frozenrows[row.rowIndex].querySelector(queryselector)) {
13829
13857
  const cRow = [];