@syncfusion/ej2-treegrid 22.2.9 → 23.1.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 (63) hide show
  1. package/CHANGELOG.md +14 -51
  2. package/dist/ej2-treegrid.min.js +2 -2
  3. package/dist/ej2-treegrid.umd.min.js +2 -2
  4. package/dist/ej2-treegrid.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-treegrid.es2015.js +219 -327
  6. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  7. package/dist/es6/ej2-treegrid.es5.js +218 -350
  8. package/dist/es6/ej2-treegrid.es5.js.map +1 -1
  9. package/dist/global/ej2-treegrid.min.js +2 -2
  10. package/dist/global/ej2-treegrid.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +10 -10
  13. package/src/treegrid/actions/batch-edit.js +2 -28
  14. package/src/treegrid/actions/crud-actions.js +1 -1
  15. package/src/treegrid/actions/edit.js +6 -52
  16. package/src/treegrid/actions/excel-export.d.ts +2 -2
  17. package/src/treegrid/actions/freeze-column.d.ts +0 -1
  18. package/src/treegrid/actions/freeze-column.js +4 -36
  19. package/src/treegrid/actions/infinite-scroll.js +8 -8
  20. package/src/treegrid/actions/pdf-export.d.ts +2 -2
  21. package/src/treegrid/actions/selection.js +1 -1
  22. package/src/treegrid/actions/virtual-scroll.js +6 -8
  23. package/src/treegrid/base/data.js +20 -4
  24. package/src/treegrid/base/treegrid-model.d.ts +8 -1
  25. package/src/treegrid/base/treegrid.d.ts +69 -1
  26. package/src/treegrid/base/treegrid.js +160 -34
  27. package/src/treegrid/models/column.d.ts +1 -0
  28. package/src/treegrid/renderer/virtual-row-model-generator.js +4 -4
  29. package/src/treegrid/renderer/virtual-tree-content-render.d.ts +0 -1
  30. package/src/treegrid/renderer/virtual-tree-content-render.js +9 -21
  31. package/styles/material-dark.css +0 -1
  32. package/styles/material.css +0 -1
  33. package/styles/material3-dark.css +0 -1
  34. package/styles/material3-dark.scss +1 -1
  35. package/styles/material3.css +0 -1
  36. package/styles/material3.scss +1 -1
  37. package/styles/tailwind-dark.css +0 -1
  38. package/styles/tailwind.css +0 -1
  39. package/styles/treegrid/bootstrap-dark.scss +1 -1
  40. package/styles/treegrid/bootstrap.scss +1 -1
  41. package/styles/treegrid/bootstrap4.scss +1 -1
  42. package/styles/treegrid/bootstrap5-dark.scss +1 -1
  43. package/styles/treegrid/bootstrap5.scss +1 -1
  44. package/styles/treegrid/fabric-dark.scss +1 -1
  45. package/styles/treegrid/fabric.scss +1 -1
  46. package/styles/treegrid/fluent-dark.scss +1 -1
  47. package/styles/treegrid/fluent.scss +1 -1
  48. package/styles/treegrid/highcontrast-light.scss +1 -1
  49. package/styles/treegrid/highcontrast.scss +1 -1
  50. package/styles/treegrid/material-dark.css +0 -1
  51. package/styles/treegrid/material-dark.scss +1 -1
  52. package/styles/treegrid/material.css +0 -1
  53. package/styles/treegrid/material.scss +1 -1
  54. package/styles/treegrid/material3-dark.css +0 -1
  55. package/styles/treegrid/material3-dark.scss +1 -1
  56. package/styles/treegrid/material3.css +0 -1
  57. package/styles/treegrid/material3.scss +1 -1
  58. package/styles/treegrid/tailwind-dark.css +0 -1
  59. package/styles/treegrid/tailwind-dark.scss +1 -1
  60. package/styles/treegrid/tailwind.css +0 -1
  61. package/styles/treegrid/tailwind.scss +1 -1
  62. package/src/treegrid/renderer/virtual-tree-freeze-render.d.ts +0 -59
  63. package/src/treegrid/renderer/virtual-tree-freeze-render.js +0 -163
@@ -1,5 +1,5 @@
1
1
  import { Browser, ChildProperty, Collection, Complex, Component, Event, EventHandler, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, SanitizeHtmlHelper, addClass, classList, closest, compile, createElement, debounce, extend, getEnumValue, getValue, isNullOrUndefined, merge, remove, removeClass, select, setStyleAttribute, setValue } from '@syncfusion/ej2-base';
2
- import { Aggregate, Cell, CellRenderer, CellType, Clipboard, ColumnChooser, ColumnFreezeContentRenderer, ColumnFreezeHeaderRenderer, ColumnMenu, ColumnVirtualFreezeRenderer, CommandColumn, ContextMenu, DetailRow, Edit, ExcelExport, Filter, Freeze, FreezeContentRender, FreezeRender, FreezeRowModelGenerator, Grid, InfiniteScroll, InterSectionObserver, Logger, Page, PdfExport, Print, RenderType, Reorder, Resize, RowDD, RowDropSettings, RowRenderer, Scroll, Sort, Toolbar, VirtualContentRenderer, VirtualFreezeHdrRenderer, VirtualFreezeRenderer, VirtualHeaderRenderer, VirtualRowModelGenerator, VirtualScroll, appendChildren, calculateAggregate, detailLists, extend as extend$1, getActualProperties, getObject, getTransformValues, getUid, iterateArrayOrObject, parentsUntil, resetRowIndex, setDebounce, templateCompiler } from '@syncfusion/ej2-grids';
2
+ import { Aggregate, Cell, CellRenderer, CellType, Clipboard, ColumnChooser, ColumnMenu, CommandColumn, ContextMenu, DetailRow, Edit, ExcelExport, Filter, Freeze, Grid, InfiniteScroll, InterSectionObserver, Logger, Page, PdfExport, Print, RenderType, Reorder, Resize, RowDD, RowDropSettings, RowRenderer, Scroll, Sort, Toolbar, VirtualContentRenderer, VirtualHeaderRenderer, VirtualRowModelGenerator, VirtualScroll, appendChildren, calculateAggregate, detailLists, extend as extend$1, getActualProperties, getNumberFormat, getObject, getTransformValues, getUid, iterateArrayOrObject, parentsUntil, resetRowIndex, templateCompiler } from '@syncfusion/ej2-grids';
3
3
  import { createCheckBox } from '@syncfusion/ej2-buttons';
4
4
  import { CacheAdaptor, DataManager, DataUtil, Deferred, JsonAdaptor, ODataAdaptor, Predicate, Query, RemoteSaveAdaptor, UrlAdaptor, WebApiAdaptor, WebMethodAdaptor } from '@syncfusion/ej2-data';
5
5
  import { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';
@@ -1230,7 +1230,7 @@ class Selection {
1230
1230
  if (recordIndex > -1) {
1231
1231
  let movableTr;
1232
1232
  if (this.parent.frozenRows || this.parent.getFrozenColumns()) {
1233
- movableTr = this.parent.getMovableDataRows()[parseInt(recordIndex.toString(), 10)];
1233
+ movableTr = this.parent.getDataRows()[parseInt(recordIndex.toString(), 10)];
1234
1234
  }
1235
1235
  checkbox = tr.querySelectorAll('.e-frame')[0] ? tr.querySelectorAll('.e-frame')[0]
1236
1236
  : movableTr.querySelectorAll('.e-frame')[0];
@@ -1925,9 +1925,13 @@ class DataManipulation {
1925
1925
  qry.isCountRequired = true;
1926
1926
  dm.executeQuery(qry).then((e) => {
1927
1927
  this.parentItems = DataUtil.distinct(e.result, this.parent.parentIdMapping, false);
1928
- const req = getObject('dataSource.requests', this.parent).filter((e) => {
1929
- return e.httpRequest.statusText !== 'OK';
1930
- }).length;
1928
+ let req;
1929
+ if (e.result) {
1930
+ req = 0;
1931
+ }
1932
+ else {
1933
+ req = 1;
1934
+ }
1931
1935
  if (req === 0) {
1932
1936
  setValue('grid.contentModule.isLoaded', true, this.parent);
1933
1937
  if (!isNullOrUndefined(this.zerothLevelData)) {
@@ -2180,7 +2184,19 @@ class DataManipulation {
2180
2184
  const remoteCollapsedData = 'remoteCollapsedData';
2181
2185
  const level = 'level';
2182
2186
  let datas = this.parent.grid.currentViewData.slice();
2183
- let inx = datas.indexOf(rowDetails.record);
2187
+ let inx;
2188
+ const idMapping = this.parent.idMapping;
2189
+ if (this.parent['isGantt'] && !this.parent.loadChildOnDemand && this.parent.hasChildMapping) {
2190
+ for (let i = 0; i < this.parent.grid.currentViewData.length; i++) {
2191
+ if (rowDetails.record[idMapping] === this.parent.grid.currentViewData[i][idMapping]) {
2192
+ inx = i;
2193
+ break;
2194
+ }
2195
+ }
2196
+ }
2197
+ else {
2198
+ inx = datas.indexOf(rowDetails.record);
2199
+ }
2184
2200
  if (this.parent.enableVirtualization && (rowDetails.action === 'collapse' || rowDetails.action === 'remoteExpand')) {
2185
2201
  datas = [];
2186
2202
  for (let i = 0; i < inx; i++) {
@@ -3293,7 +3309,7 @@ function updateParentRow(key, record, action, control, isSelfReference, child) {
3293
3309
  }
3294
3310
  let movableRow;
3295
3311
  if (control.frozenRows || control.getFrozenColumns()) {
3296
- movableRow = control.getMovableRowByIndex(index);
3312
+ movableRow = control.getRowByIndex(index);
3297
3313
  }
3298
3314
  if (!control.enableVirtualization && !isNullOrUndefined(row) || !isNullOrUndefined(movableRow)) {
3299
3315
  let index = control.treeColumnIndex;
@@ -3436,6 +3452,112 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
3436
3452
  pdfExport(pdfExportProperties, isMultipleExport, pdfDoc, isBlob) {
3437
3453
  return this.pdfExportModule.Map(pdfExportProperties, isMultipleExport, pdfDoc, isBlob);
3438
3454
  }
3455
+ /**
3456
+ * Sends a post request to export tree grid to excel file in server side.
3457
+ *
3458
+ * @param {string} url - Pass URL for server side excel export action.
3459
+ * @returns {void}
3460
+ */
3461
+ serverExcelExport(url) {
3462
+ this.isExcel = true;
3463
+ this.exportTreeGrid(url);
3464
+ }
3465
+ /**
3466
+ * Sends a post request to export tree grid to pdf file in server side.
3467
+ *
3468
+ * @param {string} url - Pass URL for server-side pdf export action.
3469
+ * @returns {void}
3470
+ */
3471
+ serverPdfExport(url) {
3472
+ this.isExcel = false;
3473
+ this.exportTreeGrid(url);
3474
+ }
3475
+ /**
3476
+ * Sends a Post request to export Tree Grid to CSV file in server side.
3477
+ *
3478
+ * @param {string} url - Pass URL for server-side csv export action.
3479
+ * @returns {void}
3480
+ */
3481
+ serverCsvExport(url) {
3482
+ this.isExcel = true;
3483
+ this.exportTreeGrid(url);
3484
+ }
3485
+ /**
3486
+ * Exports the TreeGrid data to the specified URL using a POST request.
3487
+ * @param {string} url - Defines exporting url
3488
+ * @returns {void}
3489
+ */
3490
+ exportTreeGrid(url) {
3491
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
3492
+ const treegrid = this;
3493
+ const query = treegrid.grid.getDataModule().generateQuery(true);
3494
+ const state = new UrlAdaptor().processQuery(new DataManager({ url: '' }), query);
3495
+ const queries = JSON.parse(state.data);
3496
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3497
+ const treeGridModel = JSON.parse(this.addOnPersist(['allowPaging', 'pageSettings', 'sortSettings', 'allowPdfExport', 'allowExcelExport', 'aggregates',
3498
+ 'filterSettings', 'columns', 'locale', 'searchSettings', 'idMapping', 'parentIdMapping', 'childMapping', 'treeColumnIndex']));
3499
+ const include = ['field', 'headerText', 'type', 'format', 'visible',
3500
+ 'template', 'index', 'width', 'textAlign', 'headerTextAlign', 'columns'];
3501
+ treeGridModel.filterSettings.columns = queries.where;
3502
+ treeGridModel.searchSettings.fields = queries.search && queries.search[0]['fields'] || [];
3503
+ treeGridModel.sortSettings.columns = queries.sorted;
3504
+ treeGridModel.columns = this.setHeaderText(treeGridModel.columns, include);
3505
+ const form = this.createElement('form', { id: 'ExportForm', styles: 'display:none;' });
3506
+ const treeGridInput = this.createElement('input', { id: 'treeGridInput', attrs: { name: 'treeGridModel' } });
3507
+ treeGridInput.value = JSON.stringify(treeGridModel);
3508
+ form.method = 'POST';
3509
+ form.action = url;
3510
+ form.appendChild(treeGridInput);
3511
+ document.body.appendChild(form);
3512
+ form.submit();
3513
+ form.remove();
3514
+ }
3515
+ /**
3516
+ * Sets the header text and other properties for an array of columns based on specified criteria.
3517
+ * @param {Column[]} columns - Defines array of columns
3518
+ * @param {string[]} include - Defines array of sting
3519
+ * @returns {Column[]} returns array of columns
3520
+ */
3521
+ setHeaderText(columns, include) {
3522
+ for (let i = 0; i < columns.length; i++) {
3523
+ let column = this.getColumnByUid(columns[parseInt(i.toString(), 10)].uid);
3524
+ if (this.stackedHeader && isNullOrUndefined(column)) {
3525
+ column = !isNullOrUndefined(columns[parseInt(i.toString(), 10)].field) ?
3526
+ this.getColumnByField(columns[parseInt(i.toString(), 10)].field) : columns[parseInt(i.toString(), 10)];
3527
+ }
3528
+ columns[parseInt(i.toString(), 10)].headerText = column.headerText;
3529
+ if (!isNullOrUndefined(column.template)) {
3530
+ columns[parseInt(i.toString(), 10)].template = 'true';
3531
+ }
3532
+ if (columns[parseInt(i.toString(), 10)].format) {
3533
+ columns[parseInt(i.toString(), 10)].format = getNumberFormat(this.getFormat(column.format), column.type, false, this.currencyCode);
3534
+ if (!this.isExcel && (column.type === 'datetime' || column.type === 'date')) {
3535
+ columns[parseInt(i.toString(), 10)].format = columns[parseInt(i.toString(), 10)].format.toString().replace('AM/PM', 'tt');
3536
+ }
3537
+ columns[parseInt(i.toString(), 10)].type = column.type;
3538
+ }
3539
+ if (columns[parseInt(i.toString(), 10)].columns) {
3540
+ this.setHeaderText(columns[parseInt(i.toString(), 10)].columns, include);
3541
+ }
3542
+ const keys = Object.keys(columns[parseInt(i.toString(), 10)]);
3543
+ for (let j = 0; j < keys.length; j++) {
3544
+ if (include.indexOf(keys[parseInt(j.toString(), 10)]) < 0) {
3545
+ delete columns[parseInt(i.toString(), 10)][keys[parseInt(j.toString(), 10)]];
3546
+ }
3547
+ }
3548
+ }
3549
+ return columns;
3550
+ }
3551
+ /**
3552
+ * Retrieves the appropriate format string from the given format options.
3553
+ *
3554
+ * @param {string | NumberFormatOptions | DateFormatOptions} format - The format options to retrieve the format string from.
3555
+ * @returns {string} The format string extracted from the provided format options.
3556
+ */
3557
+ getFormat(format) {
3558
+ return typeof (format) === 'object' ? !isNullOrUndefined(format.format) ?
3559
+ format.format : format.skeleton : format;
3560
+ }
3439
3561
  /**
3440
3562
  * For internal use only - Get the module name.
3441
3563
  *
@@ -3711,7 +3833,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
3711
3833
  requiredModules() {
3712
3834
  const modules = [];
3713
3835
  const splitFrozenCount = 'splitFrozenCount';
3714
- this.grid[`${splitFrozenCount}`](this.getGridColumns(this.columns));
3836
+ this.grid[`${splitFrozenCount}`](this.getColumns());
3715
3837
  if (this.isDestroyed) {
3716
3838
  return modules;
3717
3839
  }
@@ -4068,9 +4190,11 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4068
4190
  IsExpandCollapseClicked(args) {
4069
4191
  if (!isNullOrUndefined(args.target) && (args.target.classList.contains('e-treegridexpand')
4070
4192
  || args.target.classList.contains('e-treegridcollapse') || args.target.classList.contains('e-summarycell'))
4071
- && (!isNullOrUndefined(args.data) && args.data['hasChildRecords']) && !this.selectionSettings.checkboxOnly) {
4072
- args.cancel = true;
4073
- return;
4193
+ && !this.selectionSettings.checkboxOnly) {
4194
+ if ((!isNullOrUndefined(args.data) && args.data['hasChildRecords']) || (args.rowIndex !== -1 && isNullOrUndefined(args.data))) {
4195
+ args.cancel = true;
4196
+ return;
4197
+ }
4074
4198
  }
4075
4199
  }
4076
4200
  bindGridEvents() {
@@ -4186,9 +4310,13 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4186
4310
  this.updateAltRow(this.getRows());
4187
4311
  this.notify('dataBoundArg', args);
4188
4312
  if (isRemoteData(this) && !isOffline(this) && !this.hasChildMapping) {
4189
- const req = getObject('dataSource.requests', this).filter((e) => {
4190
- return e.httpRequest.statusText !== 'OK';
4191
- }).length;
4313
+ let req;
4314
+ if (this.dataResults.result) {
4315
+ req = 0;
4316
+ }
4317
+ else {
4318
+ req = 1;
4319
+ }
4192
4320
  setValue('grid.contentModule.isLoaded', !(req > 0), this);
4193
4321
  }
4194
4322
  if (this.isPixelHeight() && this.initialRender) {
@@ -5935,7 +6063,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
5935
6063
  const children = 'Children';
5936
6064
  if (!(isRemoteData(this) && !isOffline(this)) && (!isCountRequired(this) || !isNullOrUndefined(record[`${children}`]))) {
5937
6065
  let expandArgs = { data: record, row: row };
5938
- this.setHeightForFrozenContent();
5939
6066
  if (!isNullOrUndefined(this.expandStateMapping)) {
5940
6067
  this.updateExpandStateMapping(expandArgs.data, true);
5941
6068
  }
@@ -5962,12 +6089,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
5962
6089
  this.expandCollapse(action, null, records[parseInt(i.toString(), 10)]);
5963
6090
  }
5964
6091
  }
5965
- setHeightForFrozenContent() {
5966
- const freeze = (this.grid.getFrozenLeftColumnsCount() > 0 || this.grid.getFrozenRightColumnsCount() > 0) ? true : false;
5967
- if (this.grid.getFrozenColumns() > 0 || freeze) {
5968
- this.grid.contentModule.refreshScrollOffset();
5969
- }
5970
- }
5971
6092
  getCollapseExpandRecords(row, record) {
5972
6093
  if (this.allowPaging && this.pageSettings.pageSizeMode === 'All' && this.isExpandAll && isNullOrUndefined(record) &&
5973
6094
  !isRemoteData(this)) {
@@ -6043,7 +6164,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6043
6164
  this.expandCollapse('collapse', row, record);
6044
6165
  let collapseArgs = { data: record, row: row };
6045
6166
  if (!isRemoteData(this)) {
6046
- this.setHeightForFrozenContent();
6047
6167
  if (!isNullOrUndefined(this.expandStateMapping)) {
6048
6168
  this.updateExpandStateMapping(collapseArgs.data, false);
6049
6169
  }
@@ -6488,7 +6608,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6488
6608
  this.isExpandRefresh = true;
6489
6609
  const scrollHeightBeforeRefresh = this.getContentTable().parentElement.scrollTop;
6490
6610
  this.grid.refresh();
6491
- this.setHeightForFrozenContent();
6492
6611
  if (this.enableInfiniteScrolling) {
6493
6612
  this.getContentTable().parentElement.scrollTop = scrollHeightBeforeRefresh;
6494
6613
  }
@@ -6509,7 +6628,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6509
6628
  this.notify(remoteExpand, { record: record, rows: rows, parentRow: row });
6510
6629
  const args = { row: row, data: record };
6511
6630
  if (rows.length > 0) {
6512
- this.setHeightForFrozenContent();
6513
6631
  this.trigger(expanded, args);
6514
6632
  }
6515
6633
  }
@@ -6518,7 +6636,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6518
6636
  }
6519
6637
  else {
6520
6638
  this.collapseRemoteChild({ record: record, rows: rows });
6521
- this.setHeightForFrozenContent();
6522
6639
  this.trigger(collapsed, args);
6523
6640
  }
6524
6641
  }
@@ -6551,10 +6668,10 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6551
6668
  }
6552
6669
  const freeze = (this.grid.getFrozenLeftColumnsCount() > 0 || this.grid.getFrozenRightColumnsCount() > 0) ? true : false;
6553
6670
  if (this.frozenRows || this.frozenColumns || this.getFrozenColumns() || freeze) {
6554
- movableRows = this.getMovableRows().filter((r) => r.querySelector('.e-gridrowindex' + record.index + 'level' + (record.level + 1)));
6671
+ movableRows = this.getRows().filter((r) => r.querySelector('.e-gridrowindex' + record.index + 'level' + (record.level + 1)));
6555
6672
  }
6556
6673
  if (freeze) {
6557
- freezeRightRows = this.getFrozenRightRows().filter((r) => r.querySelector('.e-gridrowindex' + record.index + 'level' + (record.level + 1)));
6674
+ freezeRightRows = this.getRows().filter((r) => r.querySelector('.e-gridrowindex' + record.index + 'level' + (record.level + 1)));
6558
6675
  }
6559
6676
  const gridRowsObject = this.grid.getRowsObject();
6560
6677
  const currentViewData = this.grid.currentViewData;
@@ -6650,8 +6767,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6650
6767
  let rightrows = [];
6651
6768
  const freeze = (this.getFrozenLeftColumnsCount() > 0 || this.getFrozenRightColumnsCount() > 0) ? true : false;
6652
6769
  if (freeze) {
6653
- movablerows = this.getMovableRows().filter((r) => r.querySelector('.e-gridrowindex' + rowDetails.record.index + 'level' + (rowDetails.record.level + 1)));
6654
- rightrows = this.getFrozenRightRows().filter((r) => r.querySelector('.e-gridrowindex' + rowDetails.record.index + 'level' + (rowDetails.record.level + 1)));
6770
+ movablerows = this.getRows().filter((r) => r.querySelector('.e-gridrowindex' + rowDetails.record.index + 'level' + (rowDetails.record.level + 1)));
6771
+ rightrows = this.getRows().filter((r) => r.querySelector('.e-gridrowindex' + rowDetails.record.index + 'level' + (rowDetails.record.level + 1)));
6655
6772
  }
6656
6773
  for (let i = 0; i < rows.length; i++) {
6657
6774
  rows[parseInt(i.toString(), 10)].style.display = 'none';
@@ -6859,59 +6976,72 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6859
6976
  * @param {number} rowIndex - Specifies the row index.
6860
6977
  * @param {number} columnIndex - Specifies the column index.
6861
6978
  * @returns {Element} - Returns movable cell element from the indexes passed
6979
+ *
6980
+ * @deprecated This method is deprecated. Use getCellFromIndex method instead.
6862
6981
  */
6863
6982
  getMovableCellFromIndex(rowIndex, columnIndex) {
6864
- return this.grid.getMovableCellFromIndex(rowIndex, columnIndex);
6983
+ return this.grid.getCellFromIndex(rowIndex, columnIndex);
6865
6984
  }
6866
6985
  /**
6867
6986
  * Gets all the TreeGrid's movable table data rows.
6868
6987
  *
6869
6988
  * @returns {Element[]} - Returns element collection of movable rows
6989
+ *
6990
+ * @deprecated This method is deprecated. Use getDataRows method instead.
6870
6991
  */
6871
6992
  getMovableDataRows() {
6872
- return this.grid.getMovableDataRows();
6993
+ return this.grid.getDataRows();
6873
6994
  }
6874
6995
  /**
6875
6996
  * Gets a movable tables row by index.
6876
6997
  *
6877
6998
  * @param {number} index - Specifies the row index.
6878
6999
  * @returns {Element} - Returns movable row based on index passed
7000
+ *
7001
+ * @deprecated This method is deprecated. Use getRowByIndex method instead.
6879
7002
  */
6880
7003
  getMovableRowByIndex(index) {
6881
- return this.grid.getMovableRowByIndex(index);
7004
+ return this.grid.getRowByIndex(index);
6882
7005
  }
6883
7006
  /**
6884
7007
  * Gets the TreeGrid's movable content rows from frozen treegrid.
6885
7008
  *
6886
7009
  * @returns {Element[]}: Returns movable row element
7010
+ * @deprecated This method is deprecated. Use getRows method instead.
6887
7011
  */
6888
7012
  getMovableRows() {
6889
- return this.grid.getMovableRows();
7013
+ return this.grid.getRows();
6890
7014
  }
6891
7015
  /**
6892
7016
  * Gets a frozen right tables row element by index.
6893
7017
  *
6894
7018
  * @param {number} index - Specifies the row index.
6895
7019
  * @returns {Element} returns the element
7020
+ *
7021
+ * @deprecated This method is deprecated. Use getRowByIndex method instead.
6896
7022
  */
6897
7023
  getFrozenRightRowByIndex(index) {
6898
- return this.grid.getFrozenRightRowByIndex(index);
7024
+ return this.grid.getRowByIndex(index);
6899
7025
  }
6900
7026
  /**
6901
7027
  * Gets the Tree Grid's frozen right content rows from frozen Tree Grid.
6902
7028
  *
6903
7029
  * @returns {Element[]} returns the element
7030
+ *
7031
+ * @deprecated This method is deprecated. Use getRows method instead.
6904
7032
  */
6905
7033
  getFrozenRightRows() {
6906
- return this.grid.getFrozenRightRows();
7034
+ return this.grid.getRows();
6907
7035
  }
6908
7036
  /**
6909
7037
  * Gets all the Tree Grid's frozen right table data rows.
6910
7038
  *
6911
7039
  * @returns {Element[]} Returns the Element
7040
+ *
7041
+ * @deprecated This method is deprecated. Use getDataRows method instead.
6912
7042
  */
6913
7043
  getFrozenRightDataRows() {
6914
- return this.grid.getFrozenRightDataRows();
7044
+ return this.grid.getDataRows();
6915
7045
  }
6916
7046
  /**
6917
7047
  * Gets a frozen right table cell by row and column index.
@@ -6919,36 +7049,44 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6919
7049
  * @param {number} rowIndex - Specifies the row index.
6920
7050
  * @param {number} columnIndex - Specifies the column index.
6921
7051
  * @returns {Element} Returns the Element
7052
+ *
7053
+ * @deprecated This method is deprecated. Use getCellFromIndex method instead.
6922
7054
  */
6923
7055
  getFrozenRightCellFromIndex(rowIndex, columnIndex) {
6924
- return this.grid.getFrozenRightCellFromIndex(rowIndex, columnIndex);
7056
+ return this.grid.getCellFromIndex(rowIndex, columnIndex);
6925
7057
  }
6926
7058
  /**
6927
7059
  * Gets a frozen left column header by column index.
6928
7060
  *
6929
7061
  * @param {number} index - Specifies the column index.
6930
7062
  * @returns {Element} Returns the Element
7063
+ *
7064
+ * @deprecated This method is deprecated. Use getColumnHeaderByIndex method instead.
6931
7065
  */
6932
7066
  getFrozenLeftColumnHeaderByIndex(index) {
6933
- return this.grid.getFrozenLeftColumnHeaderByIndex(index);
7067
+ return this.grid.getColumnHeaderByIndex(index);
6934
7068
  }
6935
7069
  /**
6936
7070
  * Gets a frozen right column header by column index.
6937
7071
  *
6938
7072
  * @param {number} index - Specifies the column index.
6939
7073
  * @returns {Element} Returns the Element
7074
+ *
7075
+ * @deprecated This method is deprecated. Use getColumnHeaderByIndex method instead.
6940
7076
  */
6941
7077
  getFrozenRightColumnHeaderByIndex(index) {
6942
- return this.grid.getFrozenRightColumnHeaderByIndex(index);
7078
+ return this.grid.getColumnHeaderByIndex(index);
6943
7079
  }
6944
7080
  /**
6945
7081
  * Gets a movable column header by column index.
6946
7082
  *
6947
7083
  * @param {number} index - Specifies the column index.
6948
7084
  * @returns {Element} Returns the Element
7085
+ *
7086
+ * @deprecated This method is deprecated. Use getColumnHeaderByIndex method instead.
6949
7087
  */
6950
7088
  getMovableColumnHeaderByIndex(index) {
6951
- return this.grid.getMovableColumnHeaderByIndex(index);
7089
+ return this.grid.getColumnHeaderByIndex(index);
6952
7090
  }
6953
7091
  /**
6954
7092
  * @hidden
@@ -7182,6 +7320,9 @@ __decorate([
7182
7320
  __decorate([
7183
7321
  Complex({}, RowDropSettings)
7184
7322
  ], TreeGrid.prototype, "rowDropSettings", void 0);
7323
+ __decorate([
7324
+ Property('USD')
7325
+ ], TreeGrid.prototype, "currencyCode", void 0);
7185
7326
  __decorate([
7186
7327
  Property()
7187
7328
  ], TreeGrid.prototype, "pagerTemplate", void 0);
@@ -9077,8 +9218,8 @@ class TreeVirtualRowModelGenerator extends VirtualRowModelGenerator {
9077
9218
  const currentPage = this[`${model}`].currentPage;
9078
9219
  if (clear) {
9079
9220
  this.cache = {};
9080
- this.movableCache = {};
9081
- this.frozenRightCache = {};
9221
+ /*this.movableCache = {};
9222
+ this.frozenRightCache = {};*/
9082
9223
  this.data = {};
9083
9224
  this.groups = {};
9084
9225
  }
@@ -9093,8 +9234,8 @@ class TreeVirtualRowModelGenerator extends VirtualRowModelGenerator {
9093
9234
  this.cache = {};
9094
9235
  this.data = {};
9095
9236
  this.groups = {};
9096
- this.movableCache = {};
9097
- this.frozenRightCache = {};
9237
+ /*this.movableCache = {};
9238
+ this.frozenRightCache = {};*/
9098
9239
  }
9099
9240
  }
9100
9241
  return clear;
@@ -10669,22 +10810,8 @@ class BatchEdit {
10669
10810
  this.batchAddedRecords = this.batchRecords = this.batchAddRowRecord = this.batchDeletedRecords = this.currentViewRecords = [];
10670
10811
  }
10671
10812
  cellSaved(args) {
10672
- let actualCellIndex = args.column.index;
10673
- const frozenCols = this.parent.frozenColumns || this.parent.getFrozenColumns();
10674
- if (frozenCols && args.columnObject.index > frozenCols) {
10675
- actualCellIndex = actualCellIndex + frozenCols;
10676
- }
10677
- const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
10678
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
10679
- if (freeze) {
10680
- const colCount = this.parent.getFrozenLeftColumnsCount() + actualCellIndex;
10681
- if (colCount === this.parent.treeColumnIndex) {
10682
- this.parent.renderModule.cellRender({ data: args.rowData, cell: args.cell,
10683
- column: this.parent.grid.getColumnByIndex(args.column.index)
10684
- });
10685
- }
10686
- }
10687
- else if (actualCellIndex === this.parent.treeColumnIndex) {
10813
+ const actualCellIndex = args.column.index;
10814
+ if (actualCellIndex === this.parent.treeColumnIndex) {
10688
10815
  this.parent.renderModule.cellRender({ data: args.rowData, cell: args.cell,
10689
10816
  column: this.parent.grid.getColumnByIndex(args.column.index)
10690
10817
  });
@@ -10888,7 +11015,7 @@ class BatchEdit {
10888
11015
  for (let i = firstChildIndex; i <= totalCount; i++) {
10889
11016
  row.push(this.parent.grid.getDataRows()[parseInt(i.toString(), 10)]);
10890
11017
  if (this.parent.frozenRows || this.parent.frozenColumns || this.parent.getFrozenColumns()) {
10891
- row.push(this.parent.grid.getMovableRows()[parseInt(i.toString(), 10)]);
11018
+ row.push(this.parent.grid.getHeaderContent()[parseInt(i.toString(), 10)]);
10892
11019
  }
10893
11020
  }
10894
11021
  }
@@ -10920,18 +11047,6 @@ class BatchEdit {
10920
11047
  for (let i = 0; i < rows.length; i++) {
10921
11048
  rows[parseInt(i.toString(), 10)].setAttribute('data-rowindex', i.toString());
10922
11049
  }
10923
- const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
10924
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
10925
- if (this.parent.frozenRows || this.parent.getFrozenColumns() || this.parent.frozenColumns || freeze) {
10926
- const mRows = this.parent.grid.getMovableDataRows();
10927
- const freezeRightRows = this.parent.grid.getFrozenRightDataRows();
10928
- for (let i = 0; i < mRows.length; i++) {
10929
- mRows[parseInt(i.toString(), 10)].setAttribute('data-rowindex', i.toString());
10930
- if (freeze) {
10931
- freezeRightRows[parseInt(i.toString(), 10)].setAttribute('data-rowindex', i.toString());
10932
- }
10933
- }
10934
- }
10935
11050
  }
10936
11051
  updateChildCount(records) {
10937
11052
  const primaryKey = this.parent.grid.getPrimaryKeyFieldNames()[0];
@@ -11389,8 +11504,8 @@ class Edit$1 {
11389
11504
  currentData.splice(newRowObjectIndex, 0, newRecord);
11390
11505
  this.updateInfiniteCurrentViewData(newRecord, this.addRowIndex);
11391
11506
  }
11392
- const movableRows = this.parent.grid.getMovableRows();
11393
- const movableRowsObject = this.parent.grid.getMovableRowsObject();
11507
+ const movableRows = this.parent.grid.getRows();
11508
+ const movableRowsObject = this.parent.grid.getRowsObject();
11394
11509
  const isCache = this.parent.infiniteScrollSettings.enableCache;
11395
11510
  if (!isCache) {
11396
11511
  resetRowIndex(this.parent.grid, this.parent.grid.getRowsObject(), this.parent.grid.getRows(), 0);
@@ -11594,16 +11709,13 @@ class Edit$1 {
11594
11709
  if (this.parent.getRows().indexOf(row) !== -1) {
11595
11710
  rowIndex = this.parent.getRows().indexOf(row);
11596
11711
  }
11597
- else if (this.parent.getFrozenRightRows().indexOf(row) !== -1) {
11598
- rowIndex = this.parent.getFrozenRightRows().indexOf(row);
11599
- }
11600
11712
  else {
11601
- rowIndex = this.parent.getMovableRows().indexOf(row);
11713
+ rowIndex = this.parent.getRows().indexOf(row);
11602
11714
  }
11603
11715
  }
11604
11716
  else {
11605
11717
  rowIndex = (this.parent.getRows().indexOf(row) === -1 && (this.parent.getFrozenColumns() > 0)) ?
11606
- this.parent.grid.getMovableRows().indexOf(row) : this.parent.getRows().indexOf(row);
11718
+ this.parent.grid.getRows().indexOf(row) : this.parent.getRows().indexOf(row);
11607
11719
  }
11608
11720
  }
11609
11721
  const arg = {};
@@ -11659,7 +11771,6 @@ class Edit$1 {
11659
11771
  }
11660
11772
  }
11661
11773
  afterCellSave(args, row, rowIndex) {
11662
- let mRow;
11663
11774
  if (this.parent.grid.aggregateModule) {
11664
11775
  this.parent.grid.aggregateModule.refresh(args.rowData);
11665
11776
  }
@@ -11670,31 +11781,6 @@ class Edit$1 {
11670
11781
  this.isOnBatch = false;
11671
11782
  }
11672
11783
  this.enableToolbarItems('save');
11673
- const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
11674
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
11675
- if (freeze) {
11676
- if (args.cell.closest('.e-frozen-left-header') || args.cell.closest('.e-frozen-left-content')) {
11677
- mRow = this.parent.grid.getRows()[parseInt(rowIndex.toString(), 10)];
11678
- }
11679
- else if (args.cell.closest('.e-movableheader') || args.cell.closest('.e-movablecontent')) {
11680
- mRow = this.parent.grid.getMovableRows()[parseInt(rowIndex.toString(), 10)];
11681
- }
11682
- else {
11683
- mRow = this.parent.grid.getFrozenRightRows()[parseInt(rowIndex.toString(), 10)];
11684
- }
11685
- removeClass([mRow], ['e-editedrow', 'e-batchrow']);
11686
- removeClass(mRow.querySelectorAll('.e-rowcell'), ['e-editedbatchcell', 'e-updatedtd']);
11687
- }
11688
- else if (this.parent.getFrozenColumns() > 0) {
11689
- if (args.cell.closest('.e-frozenheader') || args.cell.closest('.e-frozencontent')) {
11690
- mRow = this.parent.grid.getRows()[parseInt(rowIndex.toString(), 10)];
11691
- }
11692
- else {
11693
- mRow = this.parent.grid.getMovableRows()[parseInt(rowIndex.toString(), 10)];
11694
- }
11695
- removeClass([mRow], ['e-editedrow', 'e-batchrow']);
11696
- removeClass(mRow.querySelectorAll('.e-rowcell'), ['e-editedbatchcell', 'e-updatedtd']);
11697
- }
11698
11784
  removeClass([row], ['e-editedrow', 'e-batchrow']);
11699
11785
  removeClass(row.querySelectorAll('.e-rowcell'), ['e-editedbatchcell', 'e-updatedtd']);
11700
11786
  if (this.parent['isCellSaveFocus'] !== false) {
@@ -11880,23 +11966,6 @@ class Edit$1 {
11880
11966
  this.parent.grid.contentModule[`${r}`].splice(0, 1);
11881
11967
  this.parent.grid.contentModule[`${r}`].splice(rowObjectIndex, 0, newRowObject);
11882
11968
  }
11883
- const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
11884
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
11885
- if (this.parent.frozenRows || this.parent.getFrozenColumns() || this.parent.frozenColumns || freeze) {
11886
- const movableRows = this.parent.getMovableDataRows();
11887
- const frows = 'freezeRows';
11888
- const newFreezeRowObject = this.parent.grid.getRowsObject()[0];
11889
- movableRows[index + 1][`${position}`](movableRows[0]);
11890
- if (freeze) {
11891
- const rightFrozenRows = this.parent.getFrozenRightDataRows();
11892
- rightFrozenRows[index + 1][`${position}`](rightFrozenRows[0]);
11893
- }
11894
- if (this.parent.editSettings.mode === 'Batch') {
11895
- this.parent.grid.contentModule[`${frows}`].splice(0, 1);
11896
- this.parent.grid.contentModule[`${frows}`].splice(rowObjectIndex, 0, newFreezeRowObject);
11897
- }
11898
- setValue('batchIndex', index + 1, this.batchEditModule);
11899
- }
11900
11969
  if (this.parent.editSettings.mode === 'Row' || this.parent.editSettings.mode === 'Cell') {
11901
11970
  const errors = this.parent.grid.getContentTable().querySelectorAll('.e-griderror');
11902
11971
  for (let i = 0; i < errors.length; i++) {
@@ -12265,8 +12334,8 @@ class Edit$1 {
12265
12334
  || (this.parent.editSettings.mode === 'Batch' && e.args.requestType.toString() === 'batchsave'))) {
12266
12335
  this.updateIndex(this.parent.grid.dataSource, this.parent.getRows(), this.parent.getCurrentViewRecords());
12267
12336
  if (this.parent.frozenRows || this.parent.getFrozenColumns() || this.parent.frozenColumns) {
12268
- if (this.parent.grid.dataSource.length === this.parent.getMovableDataRows().length) {
12269
- this.updateIndex(this.parent.grid.dataSource, this.parent.getMovableDataRows(), this.parent.getCurrentViewRecords());
12337
+ if (this.parent.grid.dataSource.length === this.parent.getDataRows().length) {
12338
+ this.updateIndex(this.parent.grid.dataSource, this.parent.getDataRows(), this.parent.getCurrentViewRecords());
12270
12339
  }
12271
12340
  }
12272
12341
  }
@@ -12453,18 +12522,19 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
12453
12522
  return new TreeVirtualRowModelGenerator(this.parent);
12454
12523
  }
12455
12524
  getRowByIndex(index) {
12456
- return this.parent.getDataRows().filter((e) => parseInt(e.getAttribute('data-rowindex'), 10) === index)[0];
12457
- }
12458
- getMovableVirtualRowByIndex(index) {
12459
- return this.getRowCollection(index, true);
12525
+ if (this.parent.enableVirtualization && this.parent.isFrozenGrid()) {
12526
+ return this.getRowCollection(index, true);
12527
+ }
12528
+ else {
12529
+ return this.parent.getDataRows().filter((e) => parseInt(e.getAttribute('data-rowindex'), 10) === index)[0];
12530
+ }
12460
12531
  }
12461
12532
  getFrozenRightVirtualRowByIndex(index) {
12462
12533
  return this.getRowCollection(index, false, false, true);
12463
12534
  }
12464
12535
  getRowCollection(index, isMovable, isRowObject, isFrozenRight) {
12465
12536
  const startIdx = parseInt(this.parent.getRows()[0].getAttribute(dataRowIndex), 10);
12466
- let rowCollection = isMovable ? this.parent.getMovableDataRows() : this.parent.getDataRows();
12467
- rowCollection = isFrozenRight ? this.parent.getFrozenRightDataRows() : rowCollection;
12537
+ const rowCollection = this.parent.getDataRows();
12468
12538
  const collection = isRowObject ? this.parent.getCurrentViewRecords() : rowCollection;
12469
12539
  let selectedRow = collection[index - startIdx];
12470
12540
  if (this.parent.frozenRows && this.parent.pageSettings.currentPage > 1) {
@@ -12517,8 +12587,8 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
12517
12587
  this.endIndex = this.parent.pageSettings.pageSize - 1;
12518
12588
  }
12519
12589
  if ((this.endIndex - this.startIndex !== this.parent.pageSettings.pageSize) &&
12520
- (this.totalRecords > this.parent.pageSettings.pageSize) &&
12521
- (this.endIndex === this.totalRecords)) {
12590
+ (this.totalRecords > this.parent.pageSettings.pageSize)
12591
+ && (this.endIndex === this.totalRecords)) {
12522
12592
  args.startIndex = this.endIndex - this.parent.pageSettings.pageSize;
12523
12593
  args.endIndex = this.endIndex;
12524
12594
  }
@@ -12914,29 +12984,16 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
12914
12984
  }
12915
12985
  }
12916
12986
  appendContent(target, newChild, e) {
12917
- const isFrozen = this.parent.isFrozenGrid();
12918
12987
  if ((this.parent.dataSource instanceof DataManager && this.parent.dataSource.dataSource.url !== undefined
12919
12988
  && !this.parent.dataSource.dataSource.offline && this.parent.dataSource.dataSource.url !== '') || isCountRequired(this.parent) || this.parent.isFrozenGrid()) {
12920
12989
  if (getValue('isExpandCollapse', e)) {
12921
12990
  this.isRemoteExpand = true;
12922
12991
  }
12923
- if (isFrozen && ((isNullOrUndefined(this.requestType) && getValue('requestTypes', this).indexOf('isFrozen') === -1) ||
12924
- (this.parent.enableVirtualMaskRow && this.requestType === 'virtualscroll'))) {
12925
- getValue('requestTypes', this).push('isFrozen');
12926
- this.requestType = 'isFrozen';
12927
- }
12928
12992
  super.appendContent(target, newChild, e);
12929
12993
  if (getValue('requestTypes', this).indexOf('isFrozen') !== -1) {
12930
12994
  getValue('requestTypes', this).splice(getValue('requestTypes', this).indexOf('isFrozen'), 1);
12931
12995
  this.requestType = this.requestType === 'isFrozen' ? undefined : this.requestType;
12932
12996
  }
12933
- if (isFrozen && (!this.isExpandCollapse || this.translateY === 0)) {
12934
- this.translateY = this.translateY < 0 ? 0 : this.translateY;
12935
- getValue('virtualEle', this).adjustTable(0, this.translateY);
12936
- }
12937
- else {
12938
- this.isExpandCollapse = false;
12939
- }
12940
12997
  }
12941
12998
  else {
12942
12999
  const info = e.virtualInfo.sentinelInfo && e.virtualInfo.sentinelInfo.axis === 'Y' &&
@@ -13187,6 +13244,7 @@ class VirtualScroll$1 {
13187
13244
  this.parent.grid.notify(indexModifier, counts);
13188
13245
  let startIndex = counts.startIndex;
13189
13246
  let endIndex = counts.endIndex;
13247
+ pageingDetails.count = visualData.length;
13190
13248
  if (startIndex === -1 && endIndex === -1) {
13191
13249
  let query = new Query();
13192
13250
  const size = this.parent.grid.pageSettings.pageSize;
@@ -13205,7 +13263,7 @@ class VirtualScroll$1 {
13205
13263
  this.parent.grid.getContent().firstElementChild.scrollTop = 0;
13206
13264
  this.parent.grid.notify(virtualActionArgs, { setTop: true });
13207
13265
  }
13208
- if ((requestType === 'save' && (pageingDetails.actionArgs.index >= (counts.count - this.parent.grid.pageSettings.pageSize)) || (requestType === 'refresh' && this.parent['isGantt'] && this.parent['isAddedFromGantt']) && (counts.count === this.prevendIndex + 1))) {
13266
+ if ((requestType === 'save' && pageingDetails.actionArgs.index >= (counts.count - this.parent.grid.pageSettings.pageSize)) || (requestType === 'refresh' && this.parent['isGantt'] && this.parent['isAddedFromGantt'])) {
13209
13267
  startIndex = counts.startIndex + (counts.count - counts.endIndex);
13210
13268
  endIndex = counts.count;
13211
13269
  this.parent['isAddedFromGantt'] = false;
@@ -13275,15 +13333,12 @@ class TreeVirtual extends VirtualScroll {
13275
13333
  const parentGrid = getValue('parent', this);
13276
13334
  getValue('parent', this).log(['limitation', 'virtual_height'], 'virtualization');
13277
13335
  const renderer = getValue('locator', this).getService('rendererFactory');
13278
- if (!parentGrid.isFrozenGrid()) {
13279
- if (parentGrid.enableColumnVirtualization) {
13280
- getValue('addRenderer', renderer)
13281
- .apply(renderer, [RenderType.Header, new VirtualHeaderRenderer(getValue('parent', this), getValue('locator', this))]);
13282
- }
13336
+ if (parentGrid.enableColumnVirtualization) {
13283
13337
  getValue('addRenderer', renderer)
13284
- .apply(renderer, [RenderType.Content, new VirtualTreeContentRenderer(getValue('parent', this), getValue('locator', this))]);
13338
+ .apply(renderer, [RenderType.Header, new VirtualHeaderRenderer(getValue('parent', this), getValue('locator', this))]);
13285
13339
  }
13286
- //renderer.addRenderer(RenderType.Content, new VirtualTreeContentRenderer(getValue('parent', this), getValue('locator', this)));
13340
+ getValue('addRenderer', renderer)
13341
+ .apply(renderer, [RenderType.Content, new VirtualTreeContentRenderer(getValue('parent', this), getValue('locator', this))]);
13287
13342
  this.ensurePageSize();
13288
13343
  }
13289
13344
  ensurePageSize() {
@@ -13301,138 +13356,6 @@ class TreeVirtual extends VirtualScroll {
13301
13356
  }
13302
13357
  }
13303
13358
 
13304
- /**
13305
- * VirtualTreeFreezeRenderer is used to render the virtual table within the frozen and movable content table
13306
- *
13307
- * @hidden
13308
- */
13309
- class VirtualTreeFreezeRenderer extends VirtualFreezeRenderer {
13310
- constructor(parent, locator) {
13311
- super(parent, locator);
13312
- this.addEventListener();
13313
- }
13314
- /**
13315
- * @returns {void}
13316
- * @hidden
13317
- */
13318
- renderTable() {
13319
- this.freezeRowGenerator = new FreezeRowModelGenerator(this.parent);
13320
- this.virtualRenderer = new VirtualTreeContentRenderer(this.parent, this.serviceLoc);
13321
- this.virtualRenderer.header = this.serviceLoc.getService('rendererFactory')
13322
- .getRenderer(RenderType.Header).virtualHdrRenderer;
13323
- FreezeContentRender.prototype.renderTable.call(this);
13324
- this.virtualRenderer.setPanel(this.parent.getContent());
13325
- this.scrollbar = this.parent.getContent().querySelector('.e-movablescrollbar');
13326
- const movableCont = this.getMovableContent();
13327
- const minHeight = this.parent.height;
13328
- this.virtualRenderer.virtualEle.content = this.virtualRenderer.content = this.getPanel().querySelector('.' + content);
13329
- this.virtualRenderer.virtualEle.content.style.overflowX = 'hidden';
13330
- this.virtualRenderer.virtualEle.renderFrozenWrapper(minHeight);
13331
- this.virtualRenderer.virtualEle.renderFrozenPlaceHolder();
13332
- if (this.parent.enableColumnVirtualization) {
13333
- this.virtualRenderer.virtualEle.movableContent = this.virtualRenderer.movableContent
13334
- = this.getPanel().querySelector('.' + movableContent);
13335
- this.virtualRenderer.virtualEle.renderMovableWrapper(minHeight);
13336
- this.virtualRenderer.virtualEle.renderMovablePlaceHolder();
13337
- const tbl = movableCont.querySelector('table');
13338
- this.virtualRenderer.virtualEle.movableTable = tbl;
13339
- this.virtualRenderer.virtualEle.movableWrapper.appendChild(tbl);
13340
- movableCont.appendChild(this.virtualRenderer.virtualEle.movableWrapper);
13341
- movableCont.appendChild(this.virtualRenderer.virtualEle.movablePlaceholder);
13342
- }
13343
- this.virtualRenderer.virtualEle.wrapper.appendChild(this.getFrozenContent());
13344
- this.virtualRenderer.virtualEle.wrapper.appendChild(movableCont);
13345
- this.virtualRenderer.virtualEle.table = this.getTable();
13346
- setDebounce(this.parent, this.virtualRenderer, this.scrollbar, this.getMovableContent());
13347
- }
13348
- /**
13349
- * @param {HTMLElement} target - specifies the target
13350
- * @param {DocumentFragment} newChild - specifies the newChild
13351
- * @param {NotifyArgs} e - specifies the notifyargs
13352
- * @returns {void}
13353
- * @hidden
13354
- */
13355
- appendContent(target, newChild, e) {
13356
- getValue('observer', this.virtualRenderer).options.debounceEvent = false;
13357
- this.virtualRenderer['observers'] = new TreeInterSectionObserver(getValue('observer', this.virtualRenderer).element, getValue('observer', this.virtualRenderer).options, getValue('observer', this.virtualRenderer).movableEle);
13358
- this.virtualRenderer['contents'] = this.getPanel().firstChild;
13359
- super.appendContent(target, newChild, e);
13360
- }
13361
- /**
13362
- * @param {Object[]} data - specifies the data
13363
- * @param {NotifyArgs} e - specifies the notifyargs
13364
- * @returns {Row<Column>[]} returns the row
13365
- * @hidden
13366
- */
13367
- generateRows(data, e) {
13368
- return super.generateRows(data, e);
13369
- }
13370
- }
13371
- /**
13372
- * ColumnVirtualTreeFreezeRenderer is used to render the virtual table within the frozen and movable content table
13373
- *
13374
- * @hidden
13375
- */
13376
- class ColumnVirtualTreeFreezeRenderer extends ColumnVirtualFreezeRenderer {
13377
- constructor(parent, locator) {
13378
- super(parent, locator);
13379
- this.serviceLoc = locator;
13380
- this.eventListener('on');
13381
- }
13382
- /**
13383
- * @returns {void}
13384
- * @hidden
13385
- */
13386
- renderTable() {
13387
- this.virtualRenderer = new VirtualTreeContentRenderer(this.parent, this.serviceLoc);
13388
- this.virtualRenderer.header = this.serviceLoc.getService('rendererFactory')
13389
- .getRenderer(RenderType.Header).virtualHdrRenderer;
13390
- this.freezeRowGenerator = new FreezeRowModelGenerator(this.parent);
13391
- ColumnFreezeContentRenderer.prototype.renderTable.call(this);
13392
- this.virtualRenderer.setPanel(this.parent.getContent());
13393
- this.scrollbar = this.parent.getContent().querySelector('.e-movablescrollbar');
13394
- const frozenRightCont = this.getFrozenRightContent();
13395
- let frzCont = this.getFrozenContent();
13396
- const movableCont = this.getMovableContent();
13397
- if (this.parent.getFrozenMode() === 'Right') {
13398
- frzCont = frozenRightCont;
13399
- }
13400
- this.virtualRenderer.virtualEle.content = this.virtualRenderer.content = this.getPanel().querySelector('.' + content);
13401
- this.virtualRenderer.virtualEle.content.style.overflowX = 'hidden';
13402
- const minHeight = this.parent.height;
13403
- this.virtualRenderer.virtualEle.renderFrozenWrapper(minHeight);
13404
- this.virtualRenderer.virtualEle.renderFrozenPlaceHolder();
13405
- super['renderVirtualFrozenLeft'](frzCont, movableCont);
13406
- super['renderVirtualFrozenRight'](frzCont, movableCont);
13407
- super['renderVirtualFrozenLeftRight'](frzCont, movableCont, frozenRightCont);
13408
- this.virtualRenderer.virtualEle.table = this.getTable();
13409
- setDebounce(this.parent, this.virtualRenderer, this.scrollbar, this.getMovableContent());
13410
- }
13411
- appendContent(target, newChild, e) {
13412
- getValue('observer', this.virtualRenderer).options.debounceEvent = false;
13413
- this.virtualRenderer['observers'] = new TreeInterSectionObserver(getValue('observer', this.virtualRenderer).element, getValue('observer', this.virtualRenderer).options, getValue('observer', this.virtualRenderer).movableEle);
13414
- this.virtualRenderer['contents'] = this.getPanel().firstChild;
13415
- super.appendContent(target, newChild, e);
13416
- }
13417
- }
13418
- /**
13419
- * VirtualTreeFreezeHdrRenderer is used to render the virtual table within the frozen and movable header table
13420
- *
13421
- * @hidden
13422
- */
13423
- class VirtualTreeFreezeHdrRenderer extends VirtualFreezeHdrRenderer {
13424
- /**
13425
- * @returns {void}
13426
- * @hidden
13427
- */
13428
- renderTable() {
13429
- super.renderTable();
13430
- }
13431
- rfshMovable() {
13432
- super.rfshMovable();
13433
- }
13434
- }
13435
-
13436
13359
  /**
13437
13360
  * TreeGrid Freeze module
13438
13361
  *
@@ -13453,7 +13376,6 @@ class Freeze$1 {
13453
13376
  this.parent.on('rowExpandCollapse', this.rowExpandCollapse, this);
13454
13377
  this.parent.on('dataBoundArg', this.dataBoundArg, this);
13455
13378
  this.parent.grid.on('dblclick', this.dblClickHandler, this);
13456
- this.parent.grid.on('initial-load', this.instantiateRenderer, this);
13457
13379
  }
13458
13380
  removeEventListener() {
13459
13381
  if (this.parent.isDestroyed) {
@@ -13462,46 +13384,16 @@ class Freeze$1 {
13462
13384
  this.parent.off('rowExpandCollapse', this.rowExpandCollapse);
13463
13385
  this.parent.off('dataBoundArg', this.dataBoundArg);
13464
13386
  this.parent.grid.off('dblclick', this.dblClickHandler);
13465
- this.parent.grid.off('initial-load', this.instantiateRenderer);
13466
- }
13467
- instantiateRenderer() {
13468
- const renderer = getValue('serviceLocator', this.parent.grid).getService('rendererFactory');
13469
- if (this.parent.getFrozenColumns()) {
13470
- if (this.parent.enableColumnVirtualization) {
13471
- getValue('addRenderer', renderer)
13472
- .apply(renderer, [RenderType.Header, new VirtualTreeFreezeHdrRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13473
- }
13474
- else {
13475
- getValue('addRenderer', renderer)
13476
- .apply(renderer, [RenderType.Header, new FreezeRender(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13477
- }
13478
- if (this.parent.enableVirtualization) {
13479
- getValue('addRenderer', renderer)
13480
- .apply(renderer, [RenderType.Content, new VirtualTreeFreezeRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13481
- }
13482
- }
13483
- if (this.parent.getFrozenLeftColumnsCount() || this.parent.getFrozenRightColumnsCount()) {
13484
- getValue('addRenderer', renderer)
13485
- .apply(renderer, [RenderType.Header, new ColumnFreezeHeaderRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13486
- if (this.parent.enableVirtualization) {
13487
- getValue('addRenderer', renderer)
13488
- .apply(renderer, [RenderType.Content, new ColumnVirtualTreeFreezeRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13489
- }
13490
- else {
13491
- getValue('addRenderer', renderer)
13492
- .apply(renderer, [RenderType.Content, new ColumnFreezeContentRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13493
- }
13494
- }
13495
13387
  }
13496
13388
  rowExpandCollapse(args) {
13497
- const movableRows = this.parent.getMovableDataRows();
13389
+ const movableRows = this.parent.getDataRows();
13498
13390
  const frozenrows = this.parent.getRows();
13499
13391
  let rows;
13500
13392
  let frozenRightRows;
13501
13393
  const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
13502
13394
  this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
13503
13395
  if (freeze) {
13504
- frozenRightRows = this.parent.getFrozenRightRows().filter((e) => e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1)));
13396
+ frozenRightRows = this.parent.getRows().filter((e) => e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1)));
13505
13397
  }
13506
13398
  if (!args.detailrows.length) {
13507
13399
  rows = movableRows.filter((e) => e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1)));
@@ -13706,7 +13598,7 @@ class InfiniteScroll$1 {
13706
13598
  const updateIndex = 'updateIndex';
13707
13599
  this.parent.editModule[`${updateIndex}`](this.parent.grid.dataSource, this.parent.getRows(), this.parent.getCurrentViewRecords());
13708
13600
  if (this.parent.getFrozenColumns()) {
13709
- this.parent.editModule[`${updateIndex}`](this.parent.grid.dataSource, this.parent.getMovableDataRows(), this.parent.getCurrentViewRecords());
13601
+ this.parent.editModule[`${updateIndex}`](this.parent.grid.dataSource, this.parent.getDataRows(), this.parent.getCurrentViewRecords());
13710
13602
  }
13711
13603
  }
13712
13604
  }
@@ -13826,8 +13718,8 @@ class InfiniteScroll$1 {
13826
13718
  const keyField = this.parent.grid.getPrimaryKeyFieldNames()[0];
13827
13719
  this.removeRows(rowElms, rows, data, keyField, true);
13828
13720
  if (this.parent.getFrozenColumns() > 0) {
13829
- const mRows = this.parent.grid.getMovableRowsObject();
13830
- const mRowElms = this.parent.grid.getMovableRows();
13721
+ const mRows = this.parent.grid.getRowsObject();
13722
+ const mRowElms = this.parent.grid.getRows();
13831
13723
  this.removeRows(mRowElms, mRows, data, keyField);
13832
13724
  }
13833
13725
  }
@@ -13869,23 +13761,23 @@ class InfiniteScroll$1 {
13869
13761
  const rowRenderer = new RowRenderer(serviceLocator, null, this.parent.grid);
13870
13762
  let tbody;
13871
13763
  const currentData = this.parent.getCurrentViewRecords();
13872
- const currentRows = eventArgs.isMovable ? this.parent.grid.getMovableRows()
13764
+ const currentRows = eventArgs.isMovable ? this.parent.grid.getRows()
13873
13765
  : this.parent.grid.getDataRows();
13874
13766
  if (eventArgs.isFrozenRight) {
13875
13767
  tbody = this.parent.element.querySelector('.e-frozen-right-content').querySelector('tbody');
13876
13768
  }
13877
13769
  else {
13878
13770
  tbody = !this.parent.grid.isFrozenGrid() ? this.parent.getContent().querySelector('tbody') : eventArgs.isMovable
13879
- ? this.parent.grid.getMovableVirtualContent().querySelector('tbody')
13880
- : this.parent.grid.getFrozenVirtualContent().querySelector('tbody');
13771
+ ? this.parent.grid.getContent().querySelector('tbody')
13772
+ : this.parent.grid.getContent().querySelector('tbody');
13881
13773
  }
13882
13774
  if (this.parent.frozenRows) {
13883
13775
  tbody = eventArgs.isFrozenRows && this.parent.grid.infiniteScrollModule.requestType !== 'add'
13884
13776
  || !eventArgs.isFrozenRows && this.parent.grid.infiniteScrollModule.requestType === 'add'
13885
13777
  ? !this.parent.grid.isFrozenGrid() ? this.parent.getHeaderContent().querySelector('tbody')
13886
- : eventArgs.isMovable ? this.parent.grid.getMovableVirtualHeader().querySelector('tbody')
13778
+ : eventArgs.isMovable ? this.parent.grid.getHeaderContent().querySelector('tbody')
13887
13779
  : eventArgs.isFrozenRight ? this.parent.element.querySelector('.e-frozen-right-header').querySelector('tbody')
13888
- : this.parent.grid.getFrozenVirtualHeader().querySelector('tbody') : tbody;
13780
+ : this.parent.grid.getHeaderContent().querySelector('tbody') : tbody;
13889
13781
  }
13890
13782
  let position;
13891
13783
  const addRowIndex = 'addRowIndex';