@syncfusion/ej2-treegrid 22.2.7 → 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 -43
  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 +224 -330
  6. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  7. package/dist/es6/ej2-treegrid.es5.js +223 -353
  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 +165 -37
  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) {
@@ -5125,9 +5253,11 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
5125
5253
  }
5126
5254
  }
5127
5255
  ignoreInColumn(ignoreOnColumn, column) {
5128
- for (let i = 0; i < ignoreOnColumn.length; i++) {
5129
- delete column[ignoreOnColumn[parseInt(i.toString(), 10)]];
5130
- column.filter = {};
5256
+ if (isNullOrUndefined(column.template)) {
5257
+ for (let i = 0; i < ignoreOnColumn.length; i++) {
5258
+ delete column[ignoreOnColumn[parseInt(i.toString(), 10)]];
5259
+ column.filter = {};
5260
+ }
5131
5261
  }
5132
5262
  }
5133
5263
  mouseClickHandler(e) {
@@ -5933,7 +6063,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
5933
6063
  const children = 'Children';
5934
6064
  if (!(isRemoteData(this) && !isOffline(this)) && (!isCountRequired(this) || !isNullOrUndefined(record[`${children}`]))) {
5935
6065
  let expandArgs = { data: record, row: row };
5936
- this.setHeightForFrozenContent();
5937
6066
  if (!isNullOrUndefined(this.expandStateMapping)) {
5938
6067
  this.updateExpandStateMapping(expandArgs.data, true);
5939
6068
  }
@@ -5960,12 +6089,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
5960
6089
  this.expandCollapse(action, null, records[parseInt(i.toString(), 10)]);
5961
6090
  }
5962
6091
  }
5963
- setHeightForFrozenContent() {
5964
- const freeze = (this.grid.getFrozenLeftColumnsCount() > 0 || this.grid.getFrozenRightColumnsCount() > 0) ? true : false;
5965
- if (this.grid.getFrozenColumns() > 0 || freeze) {
5966
- this.grid.contentModule.refreshScrollOffset();
5967
- }
5968
- }
5969
6092
  getCollapseExpandRecords(row, record) {
5970
6093
  if (this.allowPaging && this.pageSettings.pageSizeMode === 'All' && this.isExpandAll && isNullOrUndefined(record) &&
5971
6094
  !isRemoteData(this)) {
@@ -6041,7 +6164,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6041
6164
  this.expandCollapse('collapse', row, record);
6042
6165
  let collapseArgs = { data: record, row: row };
6043
6166
  if (!isRemoteData(this)) {
6044
- this.setHeightForFrozenContent();
6045
6167
  if (!isNullOrUndefined(this.expandStateMapping)) {
6046
6168
  this.updateExpandStateMapping(collapseArgs.data, false);
6047
6169
  }
@@ -6486,7 +6608,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6486
6608
  this.isExpandRefresh = true;
6487
6609
  const scrollHeightBeforeRefresh = this.getContentTable().parentElement.scrollTop;
6488
6610
  this.grid.refresh();
6489
- this.setHeightForFrozenContent();
6490
6611
  if (this.enableInfiniteScrolling) {
6491
6612
  this.getContentTable().parentElement.scrollTop = scrollHeightBeforeRefresh;
6492
6613
  }
@@ -6507,7 +6628,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6507
6628
  this.notify(remoteExpand, { record: record, rows: rows, parentRow: row });
6508
6629
  const args = { row: row, data: record };
6509
6630
  if (rows.length > 0) {
6510
- this.setHeightForFrozenContent();
6511
6631
  this.trigger(expanded, args);
6512
6632
  }
6513
6633
  }
@@ -6516,7 +6636,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6516
6636
  }
6517
6637
  else {
6518
6638
  this.collapseRemoteChild({ record: record, rows: rows });
6519
- this.setHeightForFrozenContent();
6520
6639
  this.trigger(collapsed, args);
6521
6640
  }
6522
6641
  }
@@ -6549,10 +6668,10 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6549
6668
  }
6550
6669
  const freeze = (this.grid.getFrozenLeftColumnsCount() > 0 || this.grid.getFrozenRightColumnsCount() > 0) ? true : false;
6551
6670
  if (this.frozenRows || this.frozenColumns || this.getFrozenColumns() || freeze) {
6552
- 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)));
6553
6672
  }
6554
6673
  if (freeze) {
6555
- 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)));
6556
6675
  }
6557
6676
  const gridRowsObject = this.grid.getRowsObject();
6558
6677
  const currentViewData = this.grid.currentViewData;
@@ -6648,8 +6767,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6648
6767
  let rightrows = [];
6649
6768
  const freeze = (this.getFrozenLeftColumnsCount() > 0 || this.getFrozenRightColumnsCount() > 0) ? true : false;
6650
6769
  if (freeze) {
6651
- movablerows = this.getMovableRows().filter((r) => r.querySelector('.e-gridrowindex' + rowDetails.record.index + 'level' + (rowDetails.record.level + 1)));
6652
- 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)));
6653
6772
  }
6654
6773
  for (let i = 0; i < rows.length; i++) {
6655
6774
  rows[parseInt(i.toString(), 10)].style.display = 'none';
@@ -6857,59 +6976,72 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6857
6976
  * @param {number} rowIndex - Specifies the row index.
6858
6977
  * @param {number} columnIndex - Specifies the column index.
6859
6978
  * @returns {Element} - Returns movable cell element from the indexes passed
6979
+ *
6980
+ * @deprecated This method is deprecated. Use getCellFromIndex method instead.
6860
6981
  */
6861
6982
  getMovableCellFromIndex(rowIndex, columnIndex) {
6862
- return this.grid.getMovableCellFromIndex(rowIndex, columnIndex);
6983
+ return this.grid.getCellFromIndex(rowIndex, columnIndex);
6863
6984
  }
6864
6985
  /**
6865
6986
  * Gets all the TreeGrid's movable table data rows.
6866
6987
  *
6867
6988
  * @returns {Element[]} - Returns element collection of movable rows
6989
+ *
6990
+ * @deprecated This method is deprecated. Use getDataRows method instead.
6868
6991
  */
6869
6992
  getMovableDataRows() {
6870
- return this.grid.getMovableDataRows();
6993
+ return this.grid.getDataRows();
6871
6994
  }
6872
6995
  /**
6873
6996
  * Gets a movable tables row by index.
6874
6997
  *
6875
6998
  * @param {number} index - Specifies the row index.
6876
6999
  * @returns {Element} - Returns movable row based on index passed
7000
+ *
7001
+ * @deprecated This method is deprecated. Use getRowByIndex method instead.
6877
7002
  */
6878
7003
  getMovableRowByIndex(index) {
6879
- return this.grid.getMovableRowByIndex(index);
7004
+ return this.grid.getRowByIndex(index);
6880
7005
  }
6881
7006
  /**
6882
7007
  * Gets the TreeGrid's movable content rows from frozen treegrid.
6883
7008
  *
6884
7009
  * @returns {Element[]}: Returns movable row element
7010
+ * @deprecated This method is deprecated. Use getRows method instead.
6885
7011
  */
6886
7012
  getMovableRows() {
6887
- return this.grid.getMovableRows();
7013
+ return this.grid.getRows();
6888
7014
  }
6889
7015
  /**
6890
7016
  * Gets a frozen right tables row element by index.
6891
7017
  *
6892
7018
  * @param {number} index - Specifies the row index.
6893
7019
  * @returns {Element} returns the element
7020
+ *
7021
+ * @deprecated This method is deprecated. Use getRowByIndex method instead.
6894
7022
  */
6895
7023
  getFrozenRightRowByIndex(index) {
6896
- return this.grid.getFrozenRightRowByIndex(index);
7024
+ return this.grid.getRowByIndex(index);
6897
7025
  }
6898
7026
  /**
6899
7027
  * Gets the Tree Grid's frozen right content rows from frozen Tree Grid.
6900
7028
  *
6901
7029
  * @returns {Element[]} returns the element
7030
+ *
7031
+ * @deprecated This method is deprecated. Use getRows method instead.
6902
7032
  */
6903
7033
  getFrozenRightRows() {
6904
- return this.grid.getFrozenRightRows();
7034
+ return this.grid.getRows();
6905
7035
  }
6906
7036
  /**
6907
7037
  * Gets all the Tree Grid's frozen right table data rows.
6908
7038
  *
6909
7039
  * @returns {Element[]} Returns the Element
7040
+ *
7041
+ * @deprecated This method is deprecated. Use getDataRows method instead.
6910
7042
  */
6911
7043
  getFrozenRightDataRows() {
6912
- return this.grid.getFrozenRightDataRows();
7044
+ return this.grid.getDataRows();
6913
7045
  }
6914
7046
  /**
6915
7047
  * Gets a frozen right table cell by row and column index.
@@ -6917,36 +7049,44 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
6917
7049
  * @param {number} rowIndex - Specifies the row index.
6918
7050
  * @param {number} columnIndex - Specifies the column index.
6919
7051
  * @returns {Element} Returns the Element
7052
+ *
7053
+ * @deprecated This method is deprecated. Use getCellFromIndex method instead.
6920
7054
  */
6921
7055
  getFrozenRightCellFromIndex(rowIndex, columnIndex) {
6922
- return this.grid.getFrozenRightCellFromIndex(rowIndex, columnIndex);
7056
+ return this.grid.getCellFromIndex(rowIndex, columnIndex);
6923
7057
  }
6924
7058
  /**
6925
7059
  * Gets a frozen left column header by column index.
6926
7060
  *
6927
7061
  * @param {number} index - Specifies the column index.
6928
7062
  * @returns {Element} Returns the Element
7063
+ *
7064
+ * @deprecated This method is deprecated. Use getColumnHeaderByIndex method instead.
6929
7065
  */
6930
7066
  getFrozenLeftColumnHeaderByIndex(index) {
6931
- return this.grid.getFrozenLeftColumnHeaderByIndex(index);
7067
+ return this.grid.getColumnHeaderByIndex(index);
6932
7068
  }
6933
7069
  /**
6934
7070
  * Gets a frozen right column header by column index.
6935
7071
  *
6936
7072
  * @param {number} index - Specifies the column index.
6937
7073
  * @returns {Element} Returns the Element
7074
+ *
7075
+ * @deprecated This method is deprecated. Use getColumnHeaderByIndex method instead.
6938
7076
  */
6939
7077
  getFrozenRightColumnHeaderByIndex(index) {
6940
- return this.grid.getFrozenRightColumnHeaderByIndex(index);
7078
+ return this.grid.getColumnHeaderByIndex(index);
6941
7079
  }
6942
7080
  /**
6943
7081
  * Gets a movable column header by column index.
6944
7082
  *
6945
7083
  * @param {number} index - Specifies the column index.
6946
7084
  * @returns {Element} Returns the Element
7085
+ *
7086
+ * @deprecated This method is deprecated. Use getColumnHeaderByIndex method instead.
6947
7087
  */
6948
7088
  getMovableColumnHeaderByIndex(index) {
6949
- return this.grid.getMovableColumnHeaderByIndex(index);
7089
+ return this.grid.getColumnHeaderByIndex(index);
6950
7090
  }
6951
7091
  /**
6952
7092
  * @hidden
@@ -7180,6 +7320,9 @@ __decorate([
7180
7320
  __decorate([
7181
7321
  Complex({}, RowDropSettings)
7182
7322
  ], TreeGrid.prototype, "rowDropSettings", void 0);
7323
+ __decorate([
7324
+ Property('USD')
7325
+ ], TreeGrid.prototype, "currencyCode", void 0);
7183
7326
  __decorate([
7184
7327
  Property()
7185
7328
  ], TreeGrid.prototype, "pagerTemplate", void 0);
@@ -9075,8 +9218,8 @@ class TreeVirtualRowModelGenerator extends VirtualRowModelGenerator {
9075
9218
  const currentPage = this[`${model}`].currentPage;
9076
9219
  if (clear) {
9077
9220
  this.cache = {};
9078
- this.movableCache = {};
9079
- this.frozenRightCache = {};
9221
+ /*this.movableCache = {};
9222
+ this.frozenRightCache = {};*/
9080
9223
  this.data = {};
9081
9224
  this.groups = {};
9082
9225
  }
@@ -9091,8 +9234,8 @@ class TreeVirtualRowModelGenerator extends VirtualRowModelGenerator {
9091
9234
  this.cache = {};
9092
9235
  this.data = {};
9093
9236
  this.groups = {};
9094
- this.movableCache = {};
9095
- this.frozenRightCache = {};
9237
+ /*this.movableCache = {};
9238
+ this.frozenRightCache = {};*/
9096
9239
  }
9097
9240
  }
9098
9241
  return clear;
@@ -10667,22 +10810,8 @@ class BatchEdit {
10667
10810
  this.batchAddedRecords = this.batchRecords = this.batchAddRowRecord = this.batchDeletedRecords = this.currentViewRecords = [];
10668
10811
  }
10669
10812
  cellSaved(args) {
10670
- let actualCellIndex = args.column.index;
10671
- const frozenCols = this.parent.frozenColumns || this.parent.getFrozenColumns();
10672
- if (frozenCols && args.columnObject.index > frozenCols) {
10673
- actualCellIndex = actualCellIndex + frozenCols;
10674
- }
10675
- const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
10676
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
10677
- if (freeze) {
10678
- const colCount = this.parent.getFrozenLeftColumnsCount() + actualCellIndex;
10679
- if (colCount === this.parent.treeColumnIndex) {
10680
- this.parent.renderModule.cellRender({ data: args.rowData, cell: args.cell,
10681
- column: this.parent.grid.getColumnByIndex(args.column.index)
10682
- });
10683
- }
10684
- }
10685
- else if (actualCellIndex === this.parent.treeColumnIndex) {
10813
+ const actualCellIndex = args.column.index;
10814
+ if (actualCellIndex === this.parent.treeColumnIndex) {
10686
10815
  this.parent.renderModule.cellRender({ data: args.rowData, cell: args.cell,
10687
10816
  column: this.parent.grid.getColumnByIndex(args.column.index)
10688
10817
  });
@@ -10886,7 +11015,7 @@ class BatchEdit {
10886
11015
  for (let i = firstChildIndex; i <= totalCount; i++) {
10887
11016
  row.push(this.parent.grid.getDataRows()[parseInt(i.toString(), 10)]);
10888
11017
  if (this.parent.frozenRows || this.parent.frozenColumns || this.parent.getFrozenColumns()) {
10889
- row.push(this.parent.grid.getMovableRows()[parseInt(i.toString(), 10)]);
11018
+ row.push(this.parent.grid.getHeaderContent()[parseInt(i.toString(), 10)]);
10890
11019
  }
10891
11020
  }
10892
11021
  }
@@ -10918,18 +11047,6 @@ class BatchEdit {
10918
11047
  for (let i = 0; i < rows.length; i++) {
10919
11048
  rows[parseInt(i.toString(), 10)].setAttribute('data-rowindex', i.toString());
10920
11049
  }
10921
- const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
10922
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
10923
- if (this.parent.frozenRows || this.parent.getFrozenColumns() || this.parent.frozenColumns || freeze) {
10924
- const mRows = this.parent.grid.getMovableDataRows();
10925
- const freezeRightRows = this.parent.grid.getFrozenRightDataRows();
10926
- for (let i = 0; i < mRows.length; i++) {
10927
- mRows[parseInt(i.toString(), 10)].setAttribute('data-rowindex', i.toString());
10928
- if (freeze) {
10929
- freezeRightRows[parseInt(i.toString(), 10)].setAttribute('data-rowindex', i.toString());
10930
- }
10931
- }
10932
- }
10933
11050
  }
10934
11051
  updateChildCount(records) {
10935
11052
  const primaryKey = this.parent.grid.getPrimaryKeyFieldNames()[0];
@@ -11387,8 +11504,8 @@ class Edit$1 {
11387
11504
  currentData.splice(newRowObjectIndex, 0, newRecord);
11388
11505
  this.updateInfiniteCurrentViewData(newRecord, this.addRowIndex);
11389
11506
  }
11390
- const movableRows = this.parent.grid.getMovableRows();
11391
- const movableRowsObject = this.parent.grid.getMovableRowsObject();
11507
+ const movableRows = this.parent.grid.getRows();
11508
+ const movableRowsObject = this.parent.grid.getRowsObject();
11392
11509
  const isCache = this.parent.infiniteScrollSettings.enableCache;
11393
11510
  if (!isCache) {
11394
11511
  resetRowIndex(this.parent.grid, this.parent.grid.getRowsObject(), this.parent.grid.getRows(), 0);
@@ -11592,16 +11709,13 @@ class Edit$1 {
11592
11709
  if (this.parent.getRows().indexOf(row) !== -1) {
11593
11710
  rowIndex = this.parent.getRows().indexOf(row);
11594
11711
  }
11595
- else if (this.parent.getFrozenRightRows().indexOf(row) !== -1) {
11596
- rowIndex = this.parent.getFrozenRightRows().indexOf(row);
11597
- }
11598
11712
  else {
11599
- rowIndex = this.parent.getMovableRows().indexOf(row);
11713
+ rowIndex = this.parent.getRows().indexOf(row);
11600
11714
  }
11601
11715
  }
11602
11716
  else {
11603
11717
  rowIndex = (this.parent.getRows().indexOf(row) === -1 && (this.parent.getFrozenColumns() > 0)) ?
11604
- this.parent.grid.getMovableRows().indexOf(row) : this.parent.getRows().indexOf(row);
11718
+ this.parent.grid.getRows().indexOf(row) : this.parent.getRows().indexOf(row);
11605
11719
  }
11606
11720
  }
11607
11721
  const arg = {};
@@ -11657,7 +11771,6 @@ class Edit$1 {
11657
11771
  }
11658
11772
  }
11659
11773
  afterCellSave(args, row, rowIndex) {
11660
- let mRow;
11661
11774
  if (this.parent.grid.aggregateModule) {
11662
11775
  this.parent.grid.aggregateModule.refresh(args.rowData);
11663
11776
  }
@@ -11668,31 +11781,6 @@ class Edit$1 {
11668
11781
  this.isOnBatch = false;
11669
11782
  }
11670
11783
  this.enableToolbarItems('save');
11671
- const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
11672
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
11673
- if (freeze) {
11674
- if (args.cell.closest('.e-frozen-left-header') || args.cell.closest('.e-frozen-left-content')) {
11675
- mRow = this.parent.grid.getRows()[parseInt(rowIndex.toString(), 10)];
11676
- }
11677
- else if (args.cell.closest('.e-movableheader') || args.cell.closest('.e-movablecontent')) {
11678
- mRow = this.parent.grid.getMovableRows()[parseInt(rowIndex.toString(), 10)];
11679
- }
11680
- else {
11681
- mRow = this.parent.grid.getFrozenRightRows()[parseInt(rowIndex.toString(), 10)];
11682
- }
11683
- removeClass([mRow], ['e-editedrow', 'e-batchrow']);
11684
- removeClass(mRow.querySelectorAll('.e-rowcell'), ['e-editedbatchcell', 'e-updatedtd']);
11685
- }
11686
- else if (this.parent.getFrozenColumns() > 0) {
11687
- if (args.cell.closest('.e-frozenheader') || args.cell.closest('.e-frozencontent')) {
11688
- mRow = this.parent.grid.getRows()[parseInt(rowIndex.toString(), 10)];
11689
- }
11690
- else {
11691
- mRow = this.parent.grid.getMovableRows()[parseInt(rowIndex.toString(), 10)];
11692
- }
11693
- removeClass([mRow], ['e-editedrow', 'e-batchrow']);
11694
- removeClass(mRow.querySelectorAll('.e-rowcell'), ['e-editedbatchcell', 'e-updatedtd']);
11695
- }
11696
11784
  removeClass([row], ['e-editedrow', 'e-batchrow']);
11697
11785
  removeClass(row.querySelectorAll('.e-rowcell'), ['e-editedbatchcell', 'e-updatedtd']);
11698
11786
  if (this.parent['isCellSaveFocus'] !== false) {
@@ -11878,23 +11966,6 @@ class Edit$1 {
11878
11966
  this.parent.grid.contentModule[`${r}`].splice(0, 1);
11879
11967
  this.parent.grid.contentModule[`${r}`].splice(rowObjectIndex, 0, newRowObject);
11880
11968
  }
11881
- const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
11882
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
11883
- if (this.parent.frozenRows || this.parent.getFrozenColumns() || this.parent.frozenColumns || freeze) {
11884
- const movableRows = this.parent.getMovableDataRows();
11885
- const frows = 'freezeRows';
11886
- const newFreezeRowObject = this.parent.grid.getRowsObject()[0];
11887
- movableRows[index + 1][`${position}`](movableRows[0]);
11888
- if (freeze) {
11889
- const rightFrozenRows = this.parent.getFrozenRightDataRows();
11890
- rightFrozenRows[index + 1][`${position}`](rightFrozenRows[0]);
11891
- }
11892
- if (this.parent.editSettings.mode === 'Batch') {
11893
- this.parent.grid.contentModule[`${frows}`].splice(0, 1);
11894
- this.parent.grid.contentModule[`${frows}`].splice(rowObjectIndex, 0, newFreezeRowObject);
11895
- }
11896
- setValue('batchIndex', index + 1, this.batchEditModule);
11897
- }
11898
11969
  if (this.parent.editSettings.mode === 'Row' || this.parent.editSettings.mode === 'Cell') {
11899
11970
  const errors = this.parent.grid.getContentTable().querySelectorAll('.e-griderror');
11900
11971
  for (let i = 0; i < errors.length; i++) {
@@ -12263,8 +12334,8 @@ class Edit$1 {
12263
12334
  || (this.parent.editSettings.mode === 'Batch' && e.args.requestType.toString() === 'batchsave'))) {
12264
12335
  this.updateIndex(this.parent.grid.dataSource, this.parent.getRows(), this.parent.getCurrentViewRecords());
12265
12336
  if (this.parent.frozenRows || this.parent.getFrozenColumns() || this.parent.frozenColumns) {
12266
- if (this.parent.grid.dataSource.length === this.parent.getMovableDataRows().length) {
12267
- 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());
12268
12339
  }
12269
12340
  }
12270
12341
  }
@@ -12451,18 +12522,19 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
12451
12522
  return new TreeVirtualRowModelGenerator(this.parent);
12452
12523
  }
12453
12524
  getRowByIndex(index) {
12454
- return this.parent.getDataRows().filter((e) => parseInt(e.getAttribute('data-rowindex'), 10) === index)[0];
12455
- }
12456
- getMovableVirtualRowByIndex(index) {
12457
- 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
+ }
12458
12531
  }
12459
12532
  getFrozenRightVirtualRowByIndex(index) {
12460
12533
  return this.getRowCollection(index, false, false, true);
12461
12534
  }
12462
12535
  getRowCollection(index, isMovable, isRowObject, isFrozenRight) {
12463
12536
  const startIdx = parseInt(this.parent.getRows()[0].getAttribute(dataRowIndex), 10);
12464
- let rowCollection = isMovable ? this.parent.getMovableDataRows() : this.parent.getDataRows();
12465
- rowCollection = isFrozenRight ? this.parent.getFrozenRightDataRows() : rowCollection;
12537
+ const rowCollection = this.parent.getDataRows();
12466
12538
  const collection = isRowObject ? this.parent.getCurrentViewRecords() : rowCollection;
12467
12539
  let selectedRow = collection[index - startIdx];
12468
12540
  if (this.parent.frozenRows && this.parent.pageSettings.currentPage > 1) {
@@ -12515,8 +12587,8 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
12515
12587
  this.endIndex = this.parent.pageSettings.pageSize - 1;
12516
12588
  }
12517
12589
  if ((this.endIndex - this.startIndex !== this.parent.pageSettings.pageSize) &&
12518
- (this.totalRecords > this.parent.pageSettings.pageSize) &&
12519
- (this.endIndex === this.totalRecords)) {
12590
+ (this.totalRecords > this.parent.pageSettings.pageSize)
12591
+ && (this.endIndex === this.totalRecords)) {
12520
12592
  args.startIndex = this.endIndex - this.parent.pageSettings.pageSize;
12521
12593
  args.endIndex = this.endIndex;
12522
12594
  }
@@ -12912,29 +12984,16 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
12912
12984
  }
12913
12985
  }
12914
12986
  appendContent(target, newChild, e) {
12915
- const isFrozen = this.parent.isFrozenGrid();
12916
12987
  if ((this.parent.dataSource instanceof DataManager && this.parent.dataSource.dataSource.url !== undefined
12917
12988
  && !this.parent.dataSource.dataSource.offline && this.parent.dataSource.dataSource.url !== '') || isCountRequired(this.parent) || this.parent.isFrozenGrid()) {
12918
12989
  if (getValue('isExpandCollapse', e)) {
12919
12990
  this.isRemoteExpand = true;
12920
12991
  }
12921
- if (isFrozen && ((isNullOrUndefined(this.requestType) && getValue('requestTypes', this).indexOf('isFrozen') === -1) ||
12922
- (this.parent.enableVirtualMaskRow && this.requestType === 'virtualscroll'))) {
12923
- getValue('requestTypes', this).push('isFrozen');
12924
- this.requestType = 'isFrozen';
12925
- }
12926
12992
  super.appendContent(target, newChild, e);
12927
12993
  if (getValue('requestTypes', this).indexOf('isFrozen') !== -1) {
12928
12994
  getValue('requestTypes', this).splice(getValue('requestTypes', this).indexOf('isFrozen'), 1);
12929
12995
  this.requestType = this.requestType === 'isFrozen' ? undefined : this.requestType;
12930
12996
  }
12931
- if (isFrozen && (!this.isExpandCollapse || this.translateY === 0)) {
12932
- this.translateY = this.translateY < 0 ? 0 : this.translateY;
12933
- getValue('virtualEle', this).adjustTable(0, this.translateY);
12934
- }
12935
- else {
12936
- this.isExpandCollapse = false;
12937
- }
12938
12997
  }
12939
12998
  else {
12940
12999
  const info = e.virtualInfo.sentinelInfo && e.virtualInfo.sentinelInfo.axis === 'Y' &&
@@ -13185,6 +13244,7 @@ class VirtualScroll$1 {
13185
13244
  this.parent.grid.notify(indexModifier, counts);
13186
13245
  let startIndex = counts.startIndex;
13187
13246
  let endIndex = counts.endIndex;
13247
+ pageingDetails.count = visualData.length;
13188
13248
  if (startIndex === -1 && endIndex === -1) {
13189
13249
  let query = new Query();
13190
13250
  const size = this.parent.grid.pageSettings.pageSize;
@@ -13203,7 +13263,7 @@ class VirtualScroll$1 {
13203
13263
  this.parent.grid.getContent().firstElementChild.scrollTop = 0;
13204
13264
  this.parent.grid.notify(virtualActionArgs, { setTop: true });
13205
13265
  }
13206
- 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'])) {
13207
13267
  startIndex = counts.startIndex + (counts.count - counts.endIndex);
13208
13268
  endIndex = counts.count;
13209
13269
  this.parent['isAddedFromGantt'] = false;
@@ -13273,15 +13333,12 @@ class TreeVirtual extends VirtualScroll {
13273
13333
  const parentGrid = getValue('parent', this);
13274
13334
  getValue('parent', this).log(['limitation', 'virtual_height'], 'virtualization');
13275
13335
  const renderer = getValue('locator', this).getService('rendererFactory');
13276
- if (!parentGrid.isFrozenGrid()) {
13277
- if (parentGrid.enableColumnVirtualization) {
13278
- getValue('addRenderer', renderer)
13279
- .apply(renderer, [RenderType.Header, new VirtualHeaderRenderer(getValue('parent', this), getValue('locator', this))]);
13280
- }
13336
+ if (parentGrid.enableColumnVirtualization) {
13281
13337
  getValue('addRenderer', renderer)
13282
- .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))]);
13283
13339
  }
13284
- //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))]);
13285
13342
  this.ensurePageSize();
13286
13343
  }
13287
13344
  ensurePageSize() {
@@ -13299,138 +13356,6 @@ class TreeVirtual extends VirtualScroll {
13299
13356
  }
13300
13357
  }
13301
13358
 
13302
- /**
13303
- * VirtualTreeFreezeRenderer is used to render the virtual table within the frozen and movable content table
13304
- *
13305
- * @hidden
13306
- */
13307
- class VirtualTreeFreezeRenderer extends VirtualFreezeRenderer {
13308
- constructor(parent, locator) {
13309
- super(parent, locator);
13310
- this.addEventListener();
13311
- }
13312
- /**
13313
- * @returns {void}
13314
- * @hidden
13315
- */
13316
- renderTable() {
13317
- this.freezeRowGenerator = new FreezeRowModelGenerator(this.parent);
13318
- this.virtualRenderer = new VirtualTreeContentRenderer(this.parent, this.serviceLoc);
13319
- this.virtualRenderer.header = this.serviceLoc.getService('rendererFactory')
13320
- .getRenderer(RenderType.Header).virtualHdrRenderer;
13321
- FreezeContentRender.prototype.renderTable.call(this);
13322
- this.virtualRenderer.setPanel(this.parent.getContent());
13323
- this.scrollbar = this.parent.getContent().querySelector('.e-movablescrollbar');
13324
- const movableCont = this.getMovableContent();
13325
- const minHeight = this.parent.height;
13326
- this.virtualRenderer.virtualEle.content = this.virtualRenderer.content = this.getPanel().querySelector('.' + content);
13327
- this.virtualRenderer.virtualEle.content.style.overflowX = 'hidden';
13328
- this.virtualRenderer.virtualEle.renderFrozenWrapper(minHeight);
13329
- this.virtualRenderer.virtualEle.renderFrozenPlaceHolder();
13330
- if (this.parent.enableColumnVirtualization) {
13331
- this.virtualRenderer.virtualEle.movableContent = this.virtualRenderer.movableContent
13332
- = this.getPanel().querySelector('.' + movableContent);
13333
- this.virtualRenderer.virtualEle.renderMovableWrapper(minHeight);
13334
- this.virtualRenderer.virtualEle.renderMovablePlaceHolder();
13335
- const tbl = movableCont.querySelector('table');
13336
- this.virtualRenderer.virtualEle.movableTable = tbl;
13337
- this.virtualRenderer.virtualEle.movableWrapper.appendChild(tbl);
13338
- movableCont.appendChild(this.virtualRenderer.virtualEle.movableWrapper);
13339
- movableCont.appendChild(this.virtualRenderer.virtualEle.movablePlaceholder);
13340
- }
13341
- this.virtualRenderer.virtualEle.wrapper.appendChild(this.getFrozenContent());
13342
- this.virtualRenderer.virtualEle.wrapper.appendChild(movableCont);
13343
- this.virtualRenderer.virtualEle.table = this.getTable();
13344
- setDebounce(this.parent, this.virtualRenderer, this.scrollbar, this.getMovableContent());
13345
- }
13346
- /**
13347
- * @param {HTMLElement} target - specifies the target
13348
- * @param {DocumentFragment} newChild - specifies the newChild
13349
- * @param {NotifyArgs} e - specifies the notifyargs
13350
- * @returns {void}
13351
- * @hidden
13352
- */
13353
- appendContent(target, newChild, e) {
13354
- getValue('observer', this.virtualRenderer).options.debounceEvent = false;
13355
- this.virtualRenderer['observers'] = new TreeInterSectionObserver(getValue('observer', this.virtualRenderer).element, getValue('observer', this.virtualRenderer).options, getValue('observer', this.virtualRenderer).movableEle);
13356
- this.virtualRenderer['contents'] = this.getPanel().firstChild;
13357
- super.appendContent(target, newChild, e);
13358
- }
13359
- /**
13360
- * @param {Object[]} data - specifies the data
13361
- * @param {NotifyArgs} e - specifies the notifyargs
13362
- * @returns {Row<Column>[]} returns the row
13363
- * @hidden
13364
- */
13365
- generateRows(data, e) {
13366
- return super.generateRows(data, e);
13367
- }
13368
- }
13369
- /**
13370
- * ColumnVirtualTreeFreezeRenderer is used to render the virtual table within the frozen and movable content table
13371
- *
13372
- * @hidden
13373
- */
13374
- class ColumnVirtualTreeFreezeRenderer extends ColumnVirtualFreezeRenderer {
13375
- constructor(parent, locator) {
13376
- super(parent, locator);
13377
- this.serviceLoc = locator;
13378
- this.eventListener('on');
13379
- }
13380
- /**
13381
- * @returns {void}
13382
- * @hidden
13383
- */
13384
- renderTable() {
13385
- this.virtualRenderer = new VirtualTreeContentRenderer(this.parent, this.serviceLoc);
13386
- this.virtualRenderer.header = this.serviceLoc.getService('rendererFactory')
13387
- .getRenderer(RenderType.Header).virtualHdrRenderer;
13388
- this.freezeRowGenerator = new FreezeRowModelGenerator(this.parent);
13389
- ColumnFreezeContentRenderer.prototype.renderTable.call(this);
13390
- this.virtualRenderer.setPanel(this.parent.getContent());
13391
- this.scrollbar = this.parent.getContent().querySelector('.e-movablescrollbar');
13392
- const frozenRightCont = this.getFrozenRightContent();
13393
- let frzCont = this.getFrozenContent();
13394
- const movableCont = this.getMovableContent();
13395
- if (this.parent.getFrozenMode() === 'Right') {
13396
- frzCont = frozenRightCont;
13397
- }
13398
- this.virtualRenderer.virtualEle.content = this.virtualRenderer.content = this.getPanel().querySelector('.' + content);
13399
- this.virtualRenderer.virtualEle.content.style.overflowX = 'hidden';
13400
- const minHeight = this.parent.height;
13401
- this.virtualRenderer.virtualEle.renderFrozenWrapper(minHeight);
13402
- this.virtualRenderer.virtualEle.renderFrozenPlaceHolder();
13403
- super['renderVirtualFrozenLeft'](frzCont, movableCont);
13404
- super['renderVirtualFrozenRight'](frzCont, movableCont);
13405
- super['renderVirtualFrozenLeftRight'](frzCont, movableCont, frozenRightCont);
13406
- this.virtualRenderer.virtualEle.table = this.getTable();
13407
- setDebounce(this.parent, this.virtualRenderer, this.scrollbar, this.getMovableContent());
13408
- }
13409
- appendContent(target, newChild, e) {
13410
- getValue('observer', this.virtualRenderer).options.debounceEvent = false;
13411
- this.virtualRenderer['observers'] = new TreeInterSectionObserver(getValue('observer', this.virtualRenderer).element, getValue('observer', this.virtualRenderer).options, getValue('observer', this.virtualRenderer).movableEle);
13412
- this.virtualRenderer['contents'] = this.getPanel().firstChild;
13413
- super.appendContent(target, newChild, e);
13414
- }
13415
- }
13416
- /**
13417
- * VirtualTreeFreezeHdrRenderer is used to render the virtual table within the frozen and movable header table
13418
- *
13419
- * @hidden
13420
- */
13421
- class VirtualTreeFreezeHdrRenderer extends VirtualFreezeHdrRenderer {
13422
- /**
13423
- * @returns {void}
13424
- * @hidden
13425
- */
13426
- renderTable() {
13427
- super.renderTable();
13428
- }
13429
- rfshMovable() {
13430
- super.rfshMovable();
13431
- }
13432
- }
13433
-
13434
13359
  /**
13435
13360
  * TreeGrid Freeze module
13436
13361
  *
@@ -13451,7 +13376,6 @@ class Freeze$1 {
13451
13376
  this.parent.on('rowExpandCollapse', this.rowExpandCollapse, this);
13452
13377
  this.parent.on('dataBoundArg', this.dataBoundArg, this);
13453
13378
  this.parent.grid.on('dblclick', this.dblClickHandler, this);
13454
- this.parent.grid.on('initial-load', this.instantiateRenderer, this);
13455
13379
  }
13456
13380
  removeEventListener() {
13457
13381
  if (this.parent.isDestroyed) {
@@ -13460,46 +13384,16 @@ class Freeze$1 {
13460
13384
  this.parent.off('rowExpandCollapse', this.rowExpandCollapse);
13461
13385
  this.parent.off('dataBoundArg', this.dataBoundArg);
13462
13386
  this.parent.grid.off('dblclick', this.dblClickHandler);
13463
- this.parent.grid.off('initial-load', this.instantiateRenderer);
13464
- }
13465
- instantiateRenderer() {
13466
- const renderer = getValue('serviceLocator', this.parent.grid).getService('rendererFactory');
13467
- if (this.parent.getFrozenColumns()) {
13468
- if (this.parent.enableColumnVirtualization) {
13469
- getValue('addRenderer', renderer)
13470
- .apply(renderer, [RenderType.Header, new VirtualTreeFreezeHdrRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13471
- }
13472
- else {
13473
- getValue('addRenderer', renderer)
13474
- .apply(renderer, [RenderType.Header, new FreezeRender(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13475
- }
13476
- if (this.parent.enableVirtualization) {
13477
- getValue('addRenderer', renderer)
13478
- .apply(renderer, [RenderType.Content, new VirtualTreeFreezeRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13479
- }
13480
- }
13481
- if (this.parent.getFrozenLeftColumnsCount() || this.parent.getFrozenRightColumnsCount()) {
13482
- getValue('addRenderer', renderer)
13483
- .apply(renderer, [RenderType.Header, new ColumnFreezeHeaderRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13484
- if (this.parent.enableVirtualization) {
13485
- getValue('addRenderer', renderer)
13486
- .apply(renderer, [RenderType.Content, new ColumnVirtualTreeFreezeRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13487
- }
13488
- else {
13489
- getValue('addRenderer', renderer)
13490
- .apply(renderer, [RenderType.Content, new ColumnFreezeContentRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13491
- }
13492
- }
13493
13387
  }
13494
13388
  rowExpandCollapse(args) {
13495
- const movableRows = this.parent.getMovableDataRows();
13389
+ const movableRows = this.parent.getDataRows();
13496
13390
  const frozenrows = this.parent.getRows();
13497
13391
  let rows;
13498
13392
  let frozenRightRows;
13499
13393
  const freeze = (this.parent.getFrozenLeftColumnsCount() > 0 ||
13500
13394
  this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
13501
13395
  if (freeze) {
13502
- 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)));
13503
13397
  }
13504
13398
  if (!args.detailrows.length) {
13505
13399
  rows = movableRows.filter((e) => e.querySelector('.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1)));
@@ -13704,7 +13598,7 @@ class InfiniteScroll$1 {
13704
13598
  const updateIndex = 'updateIndex';
13705
13599
  this.parent.editModule[`${updateIndex}`](this.parent.grid.dataSource, this.parent.getRows(), this.parent.getCurrentViewRecords());
13706
13600
  if (this.parent.getFrozenColumns()) {
13707
- 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());
13708
13602
  }
13709
13603
  }
13710
13604
  }
@@ -13824,8 +13718,8 @@ class InfiniteScroll$1 {
13824
13718
  const keyField = this.parent.grid.getPrimaryKeyFieldNames()[0];
13825
13719
  this.removeRows(rowElms, rows, data, keyField, true);
13826
13720
  if (this.parent.getFrozenColumns() > 0) {
13827
- const mRows = this.parent.grid.getMovableRowsObject();
13828
- const mRowElms = this.parent.grid.getMovableRows();
13721
+ const mRows = this.parent.grid.getRowsObject();
13722
+ const mRowElms = this.parent.grid.getRows();
13829
13723
  this.removeRows(mRowElms, mRows, data, keyField);
13830
13724
  }
13831
13725
  }
@@ -13867,23 +13761,23 @@ class InfiniteScroll$1 {
13867
13761
  const rowRenderer = new RowRenderer(serviceLocator, null, this.parent.grid);
13868
13762
  let tbody;
13869
13763
  const currentData = this.parent.getCurrentViewRecords();
13870
- const currentRows = eventArgs.isMovable ? this.parent.grid.getMovableRows()
13764
+ const currentRows = eventArgs.isMovable ? this.parent.grid.getRows()
13871
13765
  : this.parent.grid.getDataRows();
13872
13766
  if (eventArgs.isFrozenRight) {
13873
13767
  tbody = this.parent.element.querySelector('.e-frozen-right-content').querySelector('tbody');
13874
13768
  }
13875
13769
  else {
13876
13770
  tbody = !this.parent.grid.isFrozenGrid() ? this.parent.getContent().querySelector('tbody') : eventArgs.isMovable
13877
- ? this.parent.grid.getMovableVirtualContent().querySelector('tbody')
13878
- : this.parent.grid.getFrozenVirtualContent().querySelector('tbody');
13771
+ ? this.parent.grid.getContent().querySelector('tbody')
13772
+ : this.parent.grid.getContent().querySelector('tbody');
13879
13773
  }
13880
13774
  if (this.parent.frozenRows) {
13881
13775
  tbody = eventArgs.isFrozenRows && this.parent.grid.infiniteScrollModule.requestType !== 'add'
13882
13776
  || !eventArgs.isFrozenRows && this.parent.grid.infiniteScrollModule.requestType === 'add'
13883
13777
  ? !this.parent.grid.isFrozenGrid() ? this.parent.getHeaderContent().querySelector('tbody')
13884
- : eventArgs.isMovable ? this.parent.grid.getMovableVirtualHeader().querySelector('tbody')
13778
+ : eventArgs.isMovable ? this.parent.grid.getHeaderContent().querySelector('tbody')
13885
13779
  : eventArgs.isFrozenRight ? this.parent.element.querySelector('.e-frozen-right-header').querySelector('tbody')
13886
- : this.parent.grid.getFrozenVirtualHeader().querySelector('tbody') : tbody;
13780
+ : this.parent.grid.getHeaderContent().querySelector('tbody') : tbody;
13887
13781
  }
13888
13782
  let position;
13889
13783
  const addRowIndex = 'addRowIndex';