@syncfusion/ej2-treegrid 20.1.52 → 20.1.59

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 (55) hide show
  1. package/CHANGELOG.md +16 -0
  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 +223 -141
  5. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  6. package/dist/es6/ej2-treegrid.es5.js +228 -146
  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/context-menu.js +50 -0
  13. package/src/treegrid/actions/edit.js +33 -29
  14. package/src/treegrid/actions/infinite-scroll.js +1 -1
  15. package/src/treegrid/actions/page.d.ts +1 -0
  16. package/src/treegrid/actions/page.js +11 -0
  17. package/src/treegrid/actions/rowdragdrop.js +2 -2
  18. package/src/treegrid/actions/selection.js +1 -1
  19. package/src/treegrid/base/treegrid.js +18 -2
  20. package/src/treegrid/enum.d.ts +8 -2
  21. package/src/treegrid/enum.js +2 -0
  22. package/src/treegrid/models/column.d.ts +6 -6
  23. package/src/treegrid/models/column.js +6 -6
  24. package/src/treegrid/renderer/render.d.ts +4 -4
  25. package/src/treegrid/renderer/render.js +4 -4
  26. package/styles/bootstrap-dark.css +12 -95
  27. package/styles/bootstrap.css +12 -95
  28. package/styles/bootstrap4.css +12 -94
  29. package/styles/bootstrap5-dark.css +12 -94
  30. package/styles/bootstrap5.css +12 -94
  31. package/styles/fabric-dark.css +12 -93
  32. package/styles/fabric.css +12 -93
  33. package/styles/fluent-dark.css +13 -96
  34. package/styles/fluent.css +13 -96
  35. package/styles/highcontrast-light.css +10 -104
  36. package/styles/highcontrast.css +10 -104
  37. package/styles/material-dark.css +8 -84
  38. package/styles/material.css +8 -85
  39. package/styles/tailwind-dark.css +8 -82
  40. package/styles/tailwind.css +8 -82
  41. package/styles/treegrid/bootstrap-dark.css +12 -95
  42. package/styles/treegrid/bootstrap.css +12 -95
  43. package/styles/treegrid/bootstrap4.css +12 -94
  44. package/styles/treegrid/bootstrap5-dark.css +12 -94
  45. package/styles/treegrid/bootstrap5.css +12 -94
  46. package/styles/treegrid/fabric-dark.css +12 -93
  47. package/styles/treegrid/fabric.css +12 -93
  48. package/styles/treegrid/fluent-dark.css +13 -96
  49. package/styles/treegrid/fluent.css +13 -96
  50. package/styles/treegrid/highcontrast-light.css +10 -104
  51. package/styles/treegrid/highcontrast.css +10 -104
  52. package/styles/treegrid/material-dark.css +8 -84
  53. package/styles/treegrid/material.css +8 -85
  54. package/styles/treegrid/tailwind-dark.css +8 -82
  55. package/styles/treegrid/tailwind.css +8 -82
@@ -77,12 +77,12 @@ class Column {
77
77
  merge(this, options);
78
78
  }
79
79
  /**
80
- * Update the State changes reflected for TreeGrid columndirective in react platform.
81
- *
82
- * @param {Column} column - specifies the column
83
- * @returns {void}
84
- * @hidden
85
- */
80
+ * Update the State changes reflected for TreeGrid columndirective in react platform.
81
+ *
82
+ * @param {Column} column - specifies the column
83
+ * @returns {void}
84
+ * @hidden
85
+ */
86
86
  setProperties(column) {
87
87
  //Angular two way binding
88
88
  const keys = Object.keys(column);
@@ -884,7 +884,7 @@ class Selection {
884
884
  getCheckboxcolumnIndex() {
885
885
  let mappingUid;
886
886
  let columnIndex;
887
- const stackedHeader = "stackedHeader";
887
+ const stackedHeader = 'stackedHeader';
888
888
  const columnModel = 'columnModel';
889
889
  const columns = this.parent[stackedHeader] ? this.parent[columnModel] : (this.parent.columns);
890
890
  for (let col = 0; col < columns.length; col++) {
@@ -1271,6 +1271,100 @@ class Selection {
1271
1271
  }
1272
1272
  }
1273
1273
 
1274
+ /**
1275
+ * TreeGrid Freeze module
1276
+ *
1277
+ * @hidden
1278
+ */
1279
+ class Freeze$1 {
1280
+ /**
1281
+ * Constructor for render module
1282
+ *
1283
+ * @param {TreeGrid} parent - Tree Grid instance
1284
+ */
1285
+ constructor(parent) {
1286
+ Grid.Inject(Freeze);
1287
+ this.parent = parent;
1288
+ this.addEventListener();
1289
+ }
1290
+ addEventListener() {
1291
+ this.parent.on('rowExpandCollapse', this.rowExpandCollapse, this);
1292
+ this.parent.on('dataBoundArg', this.dataBoundArg, this);
1293
+ this.parent.grid.on('dblclick', this.dblClickHandler, this);
1294
+ }
1295
+ removeEventListener() {
1296
+ if (this.parent.isDestroyed) {
1297
+ return;
1298
+ }
1299
+ this.parent.off('rowExpandCollapse', this.rowExpandCollapse);
1300
+ this.parent.off('dataBoundArg', this.dataBoundArg);
1301
+ this.parent.grid.off('dblclick', this.dblClickHandler);
1302
+ }
1303
+ rowExpandCollapse(args) {
1304
+ const movableRows = this.parent.getMovableDataRows();
1305
+ const frozenrows = this.parent.getRows();
1306
+ let rows;
1307
+ let frozenRightRows;
1308
+ const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
1309
+ this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
1310
+ if (freeze) {
1311
+ frozenRightRows = this.parent.getFrozenRightRows().filter((e) => e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1)));
1312
+ }
1313
+ if (!args.detailrows.length) {
1314
+ rows = movableRows.filter((e) => e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1)));
1315
+ }
1316
+ else {
1317
+ rows = args.detailrows;
1318
+ }
1319
+ for (let i = 0; i < rows.length; i++) {
1320
+ const rData = this.parent.grid.getRowObjectFromUID(rows[i].getAttribute('data-Uid')).data;
1321
+ rows[i].style.display = args.action;
1322
+ if (freeze) {
1323
+ frozenRightRows[i].style.display = args.action;
1324
+ }
1325
+ const queryselector = args.action === 'none' ? '.e-treecolumn-container .e-treegridcollapse'
1326
+ : '.e-treecolumn-container .e-treegridexpand';
1327
+ if (frozenrows[rows[i].rowIndex].querySelector(queryselector)) {
1328
+ const cRow = [];
1329
+ for (let i = 0; i < movableRows.length; i++) {
1330
+ if (movableRows[i].querySelector('.e-gridrowindex' + rData.index + 'level' + (rData.level + 1))) {
1331
+ cRow.push(movableRows[i]);
1332
+ }
1333
+ }
1334
+ if (cRow.length) {
1335
+ this.rowExpandCollapse({ detailrows: cRow, action: args.action });
1336
+ }
1337
+ }
1338
+ }
1339
+ }
1340
+ dblClickHandler(e) {
1341
+ if (parentsUntil(e.target, 'e-rowcell') &&
1342
+ this.parent.grid.editSettings.allowEditOnDblClick && this.parent.editSettings.mode !== 'Cell') {
1343
+ this.parent.grid.editModule.startEdit(parentsUntil(e.target, 'e-row'));
1344
+ }
1345
+ }
1346
+ dataBoundArg() {
1347
+ const checkboxColumn = this.parent.getColumns().filter((e) => {
1348
+ return e.showCheckbox;
1349
+ });
1350
+ if (checkboxColumn.length && this.parent.freezeModule && this.parent.initialRender) {
1351
+ addClass([this.parent.element.getElementsByClassName('e-grid')[0]], 'e-checkselection');
1352
+ }
1353
+ }
1354
+ destroy() {
1355
+ this.removeEventListener();
1356
+ }
1357
+ /**
1358
+ * For internal use only - Get the module name.
1359
+ *
1360
+ * @private
1361
+ * @returns {string} Returns Freeze module name
1362
+ */
1363
+ getModuleName() {
1364
+ return 'freeze';
1365
+ }
1366
+ }
1367
+
1274
1368
  /**
1275
1369
  * TreeGrid Print module
1276
1370
  *
@@ -1661,10 +1755,10 @@ class Render {
1661
1755
  }
1662
1756
  }
1663
1757
  /**
1664
- * @param {string} columnUid - Defines column uid
1665
- * @returns {void}
1666
- * @hidden
1667
- */
1758
+ * @param {string} columnUid - Defines column uid
1759
+ * @returns {void}
1760
+ * @hidden
1761
+ */
1668
1762
  refreshReactColumnTemplateByUid(columnUid) {
1669
1763
  if (this.parent.isReact) {
1670
1764
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -2335,6 +2429,8 @@ var ContextMenuItems;
2335
2429
  ContextMenuItems[ContextMenuItems["LastPage"] = 13] = "LastPage";
2336
2430
  ContextMenuItems[ContextMenuItems["NextPage"] = 14] = "NextPage";
2337
2431
  ContextMenuItems[ContextMenuItems["AddRow"] = 15] = "AddRow";
2432
+ ContextMenuItems[ContextMenuItems["RowIndent"] = 16] = "RowIndent";
2433
+ ContextMenuItems[ContextMenuItems["RowOutdent"] = 17] = "RowOutdent";
2338
2434
  })(ContextMenuItems || (ContextMenuItems = {}));
2339
2435
 
2340
2436
  var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -3315,6 +3411,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
3315
3411
  requiredModules() {
3316
3412
  const modules = [];
3317
3413
  const splitFrozenCount = 'splitFrozenCount';
3414
+ this.freezeModule = new Freeze$1(this);
3318
3415
  this.grid[splitFrozenCount](this.getGridColumns(this.columns));
3319
3416
  if (this.isDestroyed) {
3320
3417
  return modules;
@@ -3366,7 +3463,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
3366
3463
  });
3367
3464
  }
3368
3465
  if (this.frozenColumns || this.frozenRows || this.getFrozenColumns() ||
3369
- this.grid.getFrozenLeftColumnsCount() || this.grid.getFrozenRightColumnsCount()) {
3466
+ this.grid.getFrozenLeftColumnsCount() || this.grid.getFrozenRightColumnsCount() || this.freezeModule) {
3370
3467
  modules.push({
3371
3468
  member: 'freeze', args: [this]
3372
3469
  });
@@ -3396,7 +3493,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
3396
3493
  }
3397
3494
  extendRequiredModules(modules) {
3398
3495
  const IsRowDDInjected = this.injectedModules.filter((e) => {
3399
- return e.name === 'RowDD';
3496
+ return e.prototype.getModuleName() === 'rowDragAndDrop';
3400
3497
  });
3401
3498
  if (this.allowRowDragAndDrop || IsRowDDInjected.length) {
3402
3499
  if ((!isNullOrUndefined(this.toolbar) && (this.toolbar['includes']('Indent') ||
@@ -4199,6 +4296,16 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4199
4296
  target: '.e-content', id: this.element.id + '_gridcontrol_cmenu_AddRow',
4200
4297
  items: [{ text: this.l10n.getConstant('Above'), id: 'Above' }, { text: this.l10n.getConstant('Below'), id: 'Below' }, { text: this.l10n.getConstant('Child'), id: 'Child' }] });
4201
4298
  break;
4299
+ case 'Indent':
4300
+ case ContextMenuItems.RowIndent:
4301
+ items.push({ text: this.l10n.getConstant('RowIndent'),
4302
+ target: '.e-content', iconCss: 'e-indent e-icons', id: this.element.id + '_gridcontrol_cmenu_Indent' });
4303
+ break;
4304
+ case 'Outdent':
4305
+ case ContextMenuItems.RowOutdent:
4306
+ items.push({ text: this.l10n.getConstant('RowOutdent'),
4307
+ target: '.e-content', iconCss: 'e-outdent e-icons', id: this.element.id + '_gridcontrol_cmenu_Outdent' });
4308
+ break;
4202
4309
  default:
4203
4310
  items.push(this.contextMenuItems[i]);
4204
4311
  }
@@ -4217,6 +4324,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4217
4324
  */
4218
4325
  getGridToolbar() {
4219
4326
  if (this.toolbar) {
4327
+ this.l10n = new L10n('treegrid', this.defaultLocale, this.locale);
4220
4328
  const items = [];
4221
4329
  let tooltipText;
4222
4330
  for (let i = 0; i < this.toolbar.length; i++) {
@@ -4458,6 +4566,9 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4458
4566
  break;
4459
4567
  case 'locale':
4460
4568
  this.grid.locale = this.locale;
4569
+ this.TreeGridLocale();
4570
+ this.grid.toolbar = this.getGridToolbar();
4571
+ this.grid.contextMenuItems = this.getContextMenu();
4461
4572
  break;
4462
4573
  case 'selectedRowIndex':
4463
4574
  this.grid.selectedRowIndex = this.selectedRowIndex;
@@ -7730,8 +7841,8 @@ class RowDD$1 {
7730
7841
  if (this.dropPosition === 'bottomSegment') {
7731
7842
  const primaryKeyField = this.parent.getPrimaryKeyFieldNames()[0];
7732
7843
  const rowIndex = selectedItemIndex === -1 ?
7733
- (this.parent.grid.getRowIndexByPrimaryKey(data[0][primaryKeyField])) - 1
7734
- : this.parent.getSelectedRowIndexes()[0] - 1;
7844
+ (this.parent.grid.getRowIndexByPrimaryKey(data[0][primaryKeyField]))
7845
+ : this.parent.getSelectedRowIndexes()[0];
7735
7846
  const selectedRecord = this.parent.getCurrentViewRecords()[rowIndex];
7736
7847
  this.droppedRecord = getParentData(this.parent, selectedRecord.parentItem.uniqueID);
7737
7848
  }
@@ -9040,6 +9151,16 @@ class Page$1 {
9040
9151
  }
9041
9152
  return newResults;
9042
9153
  }
9154
+ updatePageSize(pageingDetails) {
9155
+ const updateSize = pageingDetails.result.length;
9156
+ const gridPagerModule = this.parent.grid.pagerModule;
9157
+ if (this.parent.pageSettings.pageSizes === true) {
9158
+ if (gridPagerModule.pagerObj.pagerdropdownModule['dropDownListObject'].value === gridPagerModule.pagerObj.getLocalizedLabel('All')) {
9159
+ gridPagerModule['pagerObj'].totalRecordsCount = updateSize;
9160
+ this.parent.grid.pageSettings.pageSize = updateSize;
9161
+ }
9162
+ }
9163
+ }
9043
9164
  pageAction(pageingDetails) {
9044
9165
  const dm = new DataManager(pageingDetails.result);
9045
9166
  if (this.parent.pageSettings.pageSizeMode === 'Root') {
@@ -9075,6 +9196,7 @@ class Page$1 {
9075
9196
  pageingDetails.count = visualData.length;
9076
9197
  let query = new Query();
9077
9198
  const size = this.parent.grid.pageSettings.pageSize;
9199
+ this.updatePageSize(pageingDetails);
9078
9200
  let current = this.parent.grid.pageSettings.currentPage;
9079
9201
  if (visualData.length < (current * size)) {
9080
9202
  current = (Math.floor(visualData.length / size)) + ((visualData.length % size) ? 1 : 0);
@@ -9653,6 +9775,8 @@ class ContextMenu$1 {
9653
9775
  contextMenuOpen(args) {
9654
9776
  const addRow = select('#' + this.parent.element.id + '_gridcontrol_cmenu_AddRow', args.element);
9655
9777
  const editRecord = select('#' + this.parent.element.id + '_gridcontrol_cmenu_Edit', args.element);
9778
+ const indent = select('#' + this.parent.element.id + '_gridcontrol_cmenu_Indent', args.element);
9779
+ const outdent = select('#' + this.parent.element.id + '_gridcontrol_cmenu_Outdent', args.element);
9656
9780
  if (addRow) {
9657
9781
  if (this.parent.grid.editSettings.allowAdding === false) {
9658
9782
  addRow.style.display = 'none';
@@ -9665,6 +9789,47 @@ class ContextMenu$1 {
9665
9789
  && !(isNullOrUndefined(editRecord)) && !(editRecord.classList.contains('e-menu-hide'))) {
9666
9790
  editRecord.style.display = 'none';
9667
9791
  }
9792
+ if (indent || outdent) {
9793
+ const tObj = this.parent;
9794
+ const selectedrow = tObj.getSelectedRows()[0];
9795
+ const targetElement = args.event.target.closest('td');
9796
+ if (isNullOrUndefined(targetElement) || (!isNullOrUndefined(targetElement) && !targetElement.classList.contains('e-rowcell'))) {
9797
+ indent.style.display = outdent.style.display = 'none';
9798
+ }
9799
+ else {
9800
+ if (selectedrow.rowIndex === 0 || tObj.getSelectedRowIndexes().length > 1) {
9801
+ indent.style.display = outdent.style.display = 'none';
9802
+ }
9803
+ else if (args['name'] !== 'rowDeselected' || (!isNullOrUndefined(selectedrow) && tObj.grid.isCheckBoxSelection)) {
9804
+ const selectedItem = tObj.getCurrentViewRecords()[selectedrow.rowIndex];
9805
+ if (!isNullOrUndefined(selectedItem)) {
9806
+ if ((selectedItem.level > tObj.getCurrentViewRecords()[selectedrow.rowIndex - 1].level)) {
9807
+ indent.style.display = 'none';
9808
+ }
9809
+ else {
9810
+ indent.style.display = 'block';
9811
+ }
9812
+ if (selectedItem.level === tObj.getCurrentViewRecords()[selectedrow.rowIndex - 1].level) {
9813
+ indent.style.display = 'block';
9814
+ }
9815
+ if (selectedItem.level === 0) {
9816
+ outdent.style.display = 'none';
9817
+ }
9818
+ if (selectedItem.level !== 0) {
9819
+ outdent.style.display = 'block';
9820
+ }
9821
+ }
9822
+ }
9823
+ if (args['name'] === 'rowDeselected' && isNullOrUndefined(selectedrow) && !tObj.grid.isCheckBoxSelection) {
9824
+ if (this.parent.toolbar['includes']('Indent')) {
9825
+ indent.style.display = 'none';
9826
+ }
9827
+ if (this.parent.toolbar['includes']('Outdent')) {
9828
+ outdent.style.display = 'none';
9829
+ }
9830
+ }
9831
+ }
9832
+ }
9668
9833
  }
9669
9834
  contextMenuClick(args) {
9670
9835
  if (args.item.id === 'Above' || args.item.id === 'Below' || args.item.id === 'Child') {
@@ -9672,6 +9837,13 @@ class ContextMenu$1 {
9672
9837
  this.parent.setProperties({ editSettings: { newRowPosition: args.item.id } }, true);
9673
9838
  this.parent.addRecord();
9674
9839
  }
9840
+ if (args.item.id === this.parent.element.id + '_gridcontrol_cmenu_Indent' || args.item.id === this.parent.element.id + '_gridcontrol_cmenu_Outdent') {
9841
+ if (!isNullOrUndefined(this.parent.rowDragAndDropModule)) {
9842
+ const indentOutdentAction = 'indentOutdentAction';
9843
+ const action = args.item.id === this.parent.element.id + '_gridcontrol_cmenu_Indent' ? 'indent' : 'outdent';
9844
+ this.parent.rowDragAndDropModule[indentOutdentAction](null, action);
9845
+ }
9846
+ }
9675
9847
  }
9676
9848
  /**
9677
9849
  * For internal use only - Get the module name.
@@ -10842,11 +11014,13 @@ class Edit$1 {
10842
11014
  updateIndex(data, rows, records) {
10843
11015
  for (let j = 0; j < this.parent.getDataRows().length; j++) {
10844
11016
  const data1 = records[j];
10845
- const index = getValue('uniqueIDCollection.' + data1.uniqueID + '.index', this.parent);
10846
- data1.index = index;
10847
- if (!isNullOrUndefined(data1.parentItem)) {
10848
- const parentIndex = getValue('uniqueIDCollection.' + data1.parentItem.uniqueID + '.index', this.parent);
10849
- data1.parentItem.index = parentIndex;
11017
+ if (!isNullOrUndefined(data1)) {
11018
+ const index = getValue('uniqueIDCollection.' + data1.uniqueID + '.index', this.parent);
11019
+ data1.index = index;
11020
+ if (!isNullOrUndefined(data1.parentItem)) {
11021
+ const parentIndex = getValue('uniqueIDCollection.' + data1.parentItem.uniqueID + '.index', this.parent);
11022
+ data1.parentItem.index = parentIndex;
11023
+ }
10850
11024
  }
10851
11025
  }
10852
11026
  let count = -1;
@@ -10865,32 +11039,34 @@ class Edit$1 {
10865
11039
  count++;
10866
11040
  }
10867
11041
  const data2 = records[count];
10868
- let index = data2.index;
10869
- const level = data2.level;
10870
- const row = rows[k];
10871
- if (!isNullOrUndefined(data2.parentItem)) {
10872
- index = getValue('uniqueIDCollection.' + data2.parentItem.uniqueID + '.index', this.parent);
10873
- }
10874
- const treecell = row.cells[treeColIndex];
10875
- if (!isNullOrUndefined(treecell)) {
10876
- for (let l = 0; l < treecell.classList.length; l++) {
10877
- const value = treecell.classList[l];
10878
- const remove$$1 = /e-gridrowindex/i;
10879
- const removed = /e-griddetailrowindex/i;
10880
- const result = value.match(remove$$1);
10881
- const results = value.match(removed);
10882
- if (result != null) {
10883
- removeClass([treecell], value);
10884
- }
10885
- if (results != null) {
10886
- removeClass([treecell], value);
10887
- }
10888
- }
10889
- if (!rows[k].classList.contains('e-detailrow')) {
10890
- addClass([treecell], 'e-gridrowindex' + index + 'level' + level);
10891
- }
10892
- else {
10893
- addClass([treecell], 'e-griddetailrowindex' + index + 'level' + level);
11042
+ if (!isNullOrUndefined(data2)) {
11043
+ let index = data2.index;
11044
+ const level = data2.level;
11045
+ const row = rows[k];
11046
+ if (!isNullOrUndefined(data2.parentItem)) {
11047
+ index = getValue('uniqueIDCollection.' + data2.parentItem.uniqueID + '.index', this.parent);
11048
+ }
11049
+ const treecell = row.cells[treeColIndex];
11050
+ if (!isNullOrUndefined(treecell)) {
11051
+ for (let l = 0; l < treecell.classList.length; l++) {
11052
+ const value = treecell.classList[l];
11053
+ const remove$$1 = /e-gridrowindex/i;
11054
+ const removed = /e-griddetailrowindex/i;
11055
+ const result = value.match(remove$$1);
11056
+ const results = value.match(removed);
11057
+ if (result != null) {
11058
+ removeClass([treecell], value);
11059
+ }
11060
+ if (results != null) {
11061
+ removeClass([treecell], value);
11062
+ }
11063
+ }
11064
+ if (!rows[k].classList.contains('e-detailrow')) {
11065
+ addClass([treecell], 'e-gridrowindex' + index + 'level' + level);
11066
+ }
11067
+ else {
11068
+ addClass([treecell], 'e-griddetailrowindex' + index + 'level' + level);
11069
+ }
10894
11070
  }
10895
11071
  }
10896
11072
  }
@@ -12183,100 +12359,6 @@ class TreeVirtual extends VirtualScroll {
12183
12359
  }
12184
12360
  }
12185
12361
 
12186
- /**
12187
- * TreeGrid Freeze module
12188
- *
12189
- * @hidden
12190
- */
12191
- class Freeze$1 {
12192
- /**
12193
- * Constructor for render module
12194
- *
12195
- * @param {TreeGrid} parent - Tree Grid instance
12196
- */
12197
- constructor(parent) {
12198
- Grid.Inject(Freeze);
12199
- this.parent = parent;
12200
- this.addEventListener();
12201
- }
12202
- addEventListener() {
12203
- this.parent.on('rowExpandCollapse', this.rowExpandCollapse, this);
12204
- this.parent.on('dataBoundArg', this.dataBoundArg, this);
12205
- this.parent.grid.on('dblclick', this.dblClickHandler, this);
12206
- }
12207
- removeEventListener() {
12208
- if (this.parent.isDestroyed) {
12209
- return;
12210
- }
12211
- this.parent.off('rowExpandCollapse', this.rowExpandCollapse);
12212
- this.parent.off('dataBoundArg', this.dataBoundArg);
12213
- this.parent.grid.off('dblclick', this.dblClickHandler);
12214
- }
12215
- rowExpandCollapse(args) {
12216
- const movableRows = this.parent.getMovableDataRows();
12217
- const frozenrows = this.parent.getRows();
12218
- let rows;
12219
- let frozenRightRows;
12220
- const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
12221
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
12222
- if (freeze) {
12223
- frozenRightRows = this.parent.getFrozenRightRows().filter((e) => e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1)));
12224
- }
12225
- if (!args.detailrows.length) {
12226
- rows = movableRows.filter((e) => e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1)));
12227
- }
12228
- else {
12229
- rows = args.detailrows;
12230
- }
12231
- for (let i = 0; i < rows.length; i++) {
12232
- const rData = this.parent.grid.getRowObjectFromUID(rows[i].getAttribute('data-Uid')).data;
12233
- rows[i].style.display = args.action;
12234
- if (freeze) {
12235
- frozenRightRows[i].style.display = args.action;
12236
- }
12237
- const queryselector = args.action === 'none' ? '.e-treecolumn-container .e-treegridcollapse'
12238
- : '.e-treecolumn-container .e-treegridexpand';
12239
- if (frozenrows[rows[i].rowIndex].querySelector(queryselector)) {
12240
- const cRow = [];
12241
- for (let i = 0; i < movableRows.length; i++) {
12242
- if (movableRows[i].querySelector('.e-gridrowindex' + rData.index + 'level' + (rData.level + 1))) {
12243
- cRow.push(movableRows[i]);
12244
- }
12245
- }
12246
- if (cRow.length) {
12247
- this.rowExpandCollapse({ detailrows: cRow, action: args.action });
12248
- }
12249
- }
12250
- }
12251
- }
12252
- dblClickHandler(e) {
12253
- if (parentsUntil(e.target, 'e-rowcell') &&
12254
- this.parent.grid.editSettings.allowEditOnDblClick && this.parent.editSettings.mode !== 'Cell') {
12255
- this.parent.grid.editModule.startEdit(parentsUntil(e.target, 'e-row'));
12256
- }
12257
- }
12258
- dataBoundArg() {
12259
- const checkboxColumn = this.parent.getColumns().filter((e) => {
12260
- return e.showCheckbox;
12261
- });
12262
- if (checkboxColumn.length && this.parent.freezeModule && this.parent.initialRender) {
12263
- addClass([this.parent.element.getElementsByClassName('e-grid')[0]], 'e-checkselection');
12264
- }
12265
- }
12266
- destroy() {
12267
- this.removeEventListener();
12268
- }
12269
- /**
12270
- * For internal use only - Get the module name.
12271
- *
12272
- * @private
12273
- * @returns {string} Returns Freeze module name
12274
- */
12275
- getModuleName() {
12276
- return 'freeze';
12277
- }
12278
- }
12279
-
12280
12362
  /**
12281
12363
  * TreeGrid ColumnChooser module
12282
12364
  *
@@ -12607,7 +12689,7 @@ class InfiniteScroll$1 {
12607
12689
  if (getValue('selectedIndex', this.parent.editModule) !== -1 && this.parent.editSettings.newRowPosition !== 'Top') {
12608
12690
  if (this.parent.editSettings.newRowPosition === 'Below' || this.parent.editSettings.newRowPosition === 'Child') {
12609
12691
  position = 'after';
12610
- newRowIndex += findChildrenRecords(currentData[newRowIndex + 1]).length;
12692
+ newRowIndex += findChildrenRecords(currentData[newRowIndex]).length;
12611
12693
  if (this.parent.editSettings.newRowPosition === 'Child') {
12612
12694
  newRowIndex -= 1; //// for child position already child record is added in childRecords so subtracting 1
12613
12695
  }