@syncfusion/ej2-treegrid 21.2.10 → 22.1.34

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 (41) hide show
  1. package/.eslintrc.json +1 -0
  2. package/CHANGELOG.md +4 -82
  3. package/README.md +1 -1
  4. package/dist/ej2-treegrid.min.js +10 -1
  5. package/dist/ej2-treegrid.umd.min.js +10 -1
  6. package/dist/ej2-treegrid.umd.min.js.map +1 -1
  7. package/dist/es6/ej2-treegrid.es2015.js +52 -18
  8. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  9. package/dist/es6/ej2-treegrid.es5.js +54 -20
  10. package/dist/es6/ej2-treegrid.es5.js.map +1 -1
  11. package/dist/global/ej2-treegrid.min.js +10 -1
  12. package/dist/global/ej2-treegrid.min.js.map +1 -1
  13. package/dist/global/index.d.ts +9 -0
  14. package/package.json +70 -67
  15. package/src/treegrid/actions/edit.js +23 -9
  16. package/src/treegrid/actions/freeze-column.js +5 -1
  17. package/src/treegrid/actions/summary.js +1 -0
  18. package/src/treegrid/base/treegrid-model.d.ts +39 -34
  19. package/src/treegrid/base/treegrid.d.ts +39 -34
  20. package/src/treegrid/base/treegrid.js +14 -6
  21. package/src/treegrid/models/column.d.ts +18 -10
  22. package/src/treegrid/models/edit-settings-model.d.ts +2 -1
  23. package/src/treegrid/models/edit-settings.d.ts +2 -1
  24. package/src/treegrid/models/page-settings-model.d.ts +2 -1
  25. package/src/treegrid/models/page-settings.d.ts +2 -1
  26. package/src/treegrid/models/summary-model.d.ts +3 -1
  27. package/src/treegrid/models/summary.d.ts +3 -1
  28. package/src/treegrid/renderer/render.js +7 -1
  29. package/src/treegrid/renderer/virtual-tree-content-render.js +5 -4
  30. package/styles/material3-dark.css +545 -0
  31. package/styles/material3-dark.scss +3 -0
  32. package/styles/material3.css +601 -0
  33. package/styles/material3.scss +3 -0
  34. package/styles/treegrid/_material3-dark-definition.scss +1 -0
  35. package/styles/treegrid/_material3-definition.scss +28 -0
  36. package/styles/treegrid/icons/_material3-dark.scss +1 -0
  37. package/styles/treegrid/icons/_material3.scss +12 -1
  38. package/styles/treegrid/material3-dark.css +545 -0
  39. package/styles/treegrid/material3-dark.scss +19 -0
  40. package/styles/treegrid/material3.css +601 -0
  41. package/styles/treegrid/material3.scss +19 -0
@@ -1618,7 +1618,12 @@ class Render {
1618
1618
  let iconRequired = !isNullOrUndefined(data.hasFilteredChildRecords)
1619
1619
  ? data.hasFilteredChildRecords : data.hasChildRecords;
1620
1620
  if (iconRequired && !isNullOrUndefined(data.childRecords)) {
1621
- iconRequired = !(data.childRecords.length === 0);
1621
+ if (this.parent['isFromGantt'] && !this.parent.loadChildOnDemand) {
1622
+ iconRequired = data.hasChildRecords;
1623
+ }
1624
+ else {
1625
+ iconRequired = !(data.childRecords.length === 0);
1626
+ }
1622
1627
  }
1623
1628
  if (iconRequired) {
1624
1629
  addClass([args.cell], 'e-treerowcell');
@@ -1737,6 +1742,7 @@ class Render {
1737
1742
  args.cell.setAttribute('data-colindex', colindex + '');
1738
1743
  }
1739
1744
  if (treeColumn.field === args.column.field && !isNullOrUndefined(treeColumn.template)) {
1745
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
1740
1746
  args.column.template = treeColumn.template;
1741
1747
  args.column[`${templateFn}`] = templateCompiler(args.column.template);
1742
1748
  args.cell.classList.add('e-templatecell');
@@ -3999,7 +4005,9 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
3999
4005
  this.grid.query = this.query;
4000
4006
  this.grid.columnQueryMode = this.columnQueryMode;
4001
4007
  this.grid.allowPaging = this.allowPaging;
4008
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4002
4009
  this.grid.pageSettings = getActualProperties(this.pageSettings);
4010
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4003
4011
  this.grid.pagerTemplate = this.pagerTemplate;
4004
4012
  this.grid.showColumnMenu = this.showColumnMenu;
4005
4013
  this.grid.allowSorting = this.allowSorting;
@@ -4026,12 +4034,14 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4026
4034
  this.grid.gridLines = this.gridLines;
4027
4035
  this.grid.allowSelection = this.allowSelection;
4028
4036
  this.grid.toolbar = getActualProperties(this.getGridToolbar());
4037
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4029
4038
  this.grid.toolbarTemplate = this.toolbarTemplate;
4030
4039
  this.grid.showColumnChooser = this.showColumnChooser;
4031
4040
  this.grid.filterSettings = getActualProperties(this.filterSettings);
4032
4041
  this.grid.selectionSettings = getActualProperties(this.selectionSettings);
4033
4042
  this.grid.sortSettings = getActualProperties(this.sortSettings);
4034
4043
  this.grid.searchSettings = getActualProperties(this.searchSettings);
4044
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4035
4045
  this.grid.aggregates = getActualProperties(this.aggregates);
4036
4046
  this.grid.textWrapSettings = getActualProperties(this.textWrapSettings);
4037
4047
  this.grid.printMode = getActualProperties(this.printMode);
@@ -4040,7 +4050,9 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4040
4050
  this.grid.contextMenuItems = getActualProperties(this.getContextMenu());
4041
4051
  this.grid.columnMenuItems = getActualProperties(this.columnMenuItems);
4042
4052
  this.grid.editSettings = this.getGridEditSettings();
4053
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4043
4054
  this.grid.rowTemplate = getActualProperties(this.rowTemplate);
4055
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4044
4056
  this.grid.detailTemplate = getActualProperties(this.detailTemplate);
4045
4057
  this.grid.frozenRows = this.frozenRows;
4046
4058
  this.grid.frozenColumns = this.frozenColumns;
@@ -4365,10 +4377,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4365
4377
  const currentData = this.getCurrentViewRecords();
4366
4378
  const rows = this.getContentTable().rows;
4367
4379
  for (let i = 0; i < rows.length; i++) {
4368
- const args = {
4369
- data: currentData[parseInt(i.toString(), 10)],
4370
- row: rows[parseInt(i.toString(), 10)]
4371
- };
4380
+ const args = { data: currentData[parseInt(i.toString(), 10)],
4381
+ row: rows[parseInt(i.toString(), 10)] };
4372
4382
  this.renderModule.RowModifier(args);
4373
4383
  }
4374
4384
  }
@@ -4820,6 +4830,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4820
4830
  this.grid.allowPaging = this.allowPaging;
4821
4831
  break;
4822
4832
  case 'pageSettings':
4833
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4823
4834
  this.grid.pageSettings = getActualProperties(this.pageSettings);
4824
4835
  requireRefresh = true;
4825
4836
  break;
@@ -4865,6 +4876,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4865
4876
  this.grid.allowRowDragAndDrop = this.allowRowDragAndDrop;
4866
4877
  break;
4867
4878
  case 'aggregates':
4879
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4868
4880
  this.grid.aggregates = getActualProperties(this.aggregates);
4869
4881
  break;
4870
4882
  case 'enableInfiniteScrolling':
@@ -4915,6 +4927,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4915
4927
  this.grid.gridLines = this.gridLines;
4916
4928
  break;
4917
4929
  case 'rowTemplate':
4930
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4918
4931
  this.grid.rowTemplate = getActualProperties(this.rowTemplate);
4919
4932
  break;
4920
4933
  case 'frozenRows':
@@ -4994,6 +5007,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4994
5007
  this.grid.showColumnChooser = this.showColumnChooser;
4995
5008
  break;
4996
5009
  case 'detailTemplate':
5010
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4997
5011
  this.grid.detailTemplate = getActualProperties(this.detailTemplate);
4998
5012
  break;
4999
5013
  case 'columnMenuItems':
@@ -5577,8 +5591,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
5577
5591
  }
5578
5592
  }
5579
5593
  else if (!isNullOrUndefined(this.columns[parseInt(i.toString(), 10)].field)) {
5580
- const fieldName = this.columns[parseInt(i.toString(), 10)].field;
5581
- const currentColumn = this.grid.getColumnByField(fieldName);
5594
+ const currentColumn = this.grid.getColumnByField(this.columns[parseInt(i.toString(), 10)]
5595
+ .field);
5582
5596
  this.columns[parseInt(i.toString(), 10)].width = currentColumn.width;
5583
5597
  }
5584
5598
  }
@@ -10128,6 +10142,7 @@ class Aggregate$1 {
10128
10142
  summaryKey = types[parseInt(i.toString(), 10)];
10129
10143
  const key = summaryColumn.field + ' - ' + types[parseInt(i.toString(), 10)].toLowerCase();
10130
10144
  const val = types[parseInt(i.toString(), 10)] !== 'Custom' ? getObject('aggregates', sumData) :
10145
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
10131
10146
  calculateAggregate(types[parseInt(i.toString(), 10)], sumData, summaryColumn, this.parent);
10132
10147
  const disp = summaryColumn.columnName;
10133
10148
  const value = types[parseInt(i.toString(), 10)] !== 'Custom' ? val[`${key}`] : val;
@@ -11177,6 +11192,14 @@ class Edit$1 {
11177
11192
  if (e.target.classList.contains('e-frame') && this.parent.getCurrentViewRecords().length === 0) {
11178
11193
  this.doubleClickTarget = null;
11179
11194
  }
11195
+ if (e.target.classList.contains('e-treegridcollapse') || e.target.classList.contains('e-treegridexpand')) {
11196
+ const tr = parentsUntil(e.target, 'e-row');
11197
+ const rowIndex = tr && parseInt(tr.getAttribute('data-rowindex'), 10);
11198
+ if (!isNullOrUndefined(rowIndex) && rowIndex >= 0 && this.parent.allowPaging) {
11199
+ /* eslint-disable-next-line */
11200
+ this.parent.grid.getDataRows()[rowIndex].dataset.uid = this.parent.grid.contentModule.getRows()[rowIndex].uid;
11201
+ }
11202
+ }
11180
11203
  }
11181
11204
  getRowPosition(addArgs) {
11182
11205
  addArgs.newRowPosition = this.parent.editSettings.newRowPosition;
@@ -11532,15 +11555,21 @@ class Edit$1 {
11532
11555
  else if (isRemoteData(this.parent) ||
11533
11556
  (this.parent.dataSource instanceof DataManager && this.parent.dataSource.adaptor instanceof RemoteSaveAdaptor)) {
11534
11557
  const query = this.parent.grid.query;
11535
- let crud = null;
11536
- crud = this.parent.grid.dataSource.update(primaryKeys[0], args.rowData, query.fromTable, query, args.previousValue);
11537
- crud.then((e) => {
11538
- if (!isNullOrUndefined(e)) {
11539
- args.rowData[args.columnName] = e[args.columnName];
11540
- }
11558
+ if (this.parent['isGantt'] && !this.parent.loadChildOnDemand) {
11541
11559
  this.updateCell(args, rowIndex);
11542
11560
  this.afterCellSave(args, row, rowIndex);
11543
- });
11561
+ }
11562
+ else {
11563
+ let crud = null;
11564
+ crud = this.parent.grid.dataSource.update(primaryKeys[0], args.rowData, query.fromTable, query, args.previousValue);
11565
+ crud.then((e) => {
11566
+ if (!isNullOrUndefined(e)) {
11567
+ args.rowData[args.columnName] = e[args.columnName];
11568
+ }
11569
+ this.updateCell(args, rowIndex);
11570
+ this.afterCellSave(args, row, rowIndex);
11571
+ });
11572
+ }
11544
11573
  }
11545
11574
  }
11546
11575
  else {
@@ -12740,9 +12769,8 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
12740
12769
  }
12741
12770
  this.startIndex = !isLastBlock ? lastIndex - this.parent.pageSettings.pageSize : nextSetResIndex;
12742
12771
  this.endIndex = lastIndex;
12743
- if ((nextSetResIndex + this.parent.pageSettings.pageSize) > this.totalRecords &&
12744
- (this.endIndex - this.startIndex) < (this.parent.pageSettings.pageSize / 2) &&
12745
- (this.endIndex - nextSetResIndex) < (this.parent.pageSettings.pageSize / 2)) {
12772
+ if ((nextSetResIndex + this.parent.pageSettings.pageSize) > this.totalRecords && (this.endIndex - this.startIndex) <
12773
+ (this.parent.pageSettings.pageSize / 2) && (this.endIndex - nextSetResIndex) < (this.parent.pageSettings.pageSize / 2)) {
12746
12774
  this.startIndex = lastIndex - (this.parent.pageSettings.pageSize / 2);
12747
12775
  }
12748
12776
  if (currentViewData.length && this.startIndex > currentViewData[0][`${indexValue}`] &&
@@ -12757,7 +12785,7 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
12757
12785
  this.translateY = scrollArgs.offset.top - rowHeight * 2;
12758
12786
  }
12759
12787
  else {
12760
- if (this.totalRecords == this.endIndex) {
12788
+ if (this.totalRecords === this.endIndex) {
12761
12789
  this.translateY = (this.totalRecords * rowHeight) - ((this.endIndex - this.startIndex) * rowHeight);
12762
12790
  }
12763
12791
  else {
@@ -12945,6 +12973,8 @@ class TreeInterSectionObserver extends InterSectionObserver {
12945
12973
  if (this[`${options}`].axes.indexOf(current.axis) === -1) {
12946
12974
  return;
12947
12975
  }
12976
+ const containerRect = 'containerRect';
12977
+ this[`${containerRect}`] = this[`${options}`].container.getBoundingClientRect();
12948
12978
  const check = this.check(direction);
12949
12979
  if (current.entered && (current.axis === 'X' || instance.enableVirtualMaskRow)) {
12950
12980
  if (this[`${movableEle}`] && (direction === 'right' || direction === 'left')) {
@@ -13357,6 +13387,10 @@ class Freeze$1 {
13357
13387
  getValue('addRenderer', renderer)
13358
13388
  .apply(renderer, [RenderType.Content, new VirtualTreeFreezeRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13359
13389
  }
13390
+ else {
13391
+ getValue('addRenderer', renderer)
13392
+ .apply(renderer, [RenderType.Content, new FreezeContentRender(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13393
+ }
13360
13394
  }
13361
13395
  if (this.parent.getFrozenLeftColumnsCount() || this.parent.getFrozenRightColumnsCount()) {
13362
13396
  getValue('addRenderer', renderer)