@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
@@ -113,6 +113,7 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
113
113
  private treeColumnTextAlign;
114
114
  private treeColumnField;
115
115
  private stackedHeader;
116
+ private isExcel;
116
117
  /** @hidden */
117
118
  initialRender: boolean;
118
119
  /** @hidden */
@@ -360,6 +361,12 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
360
361
  * Configures the row drop settings of the TreeGrid.
361
362
  */
362
363
  rowDropSettings: RowDropSettingsModel;
364
+ /**
365
+ * Defines the currencyCode format of the Tree Grid columns
366
+ *
367
+ * @private
368
+ */
369
+ private currencyCode;
363
370
  /**
364
371
  * @hidden
365
372
  * It used to render pager template
@@ -1144,6 +1151,47 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1144
1151
  * @returns {Promise<any>} - Returns promise object of export action
1145
1152
  */
1146
1153
  pdfExport(pdfExportProperties?: PdfExportProperties | TreeGridPdfExportProperties, isMultipleExport?: boolean, pdfDoc?: Object, isBlob?: boolean): Promise<Object>;
1154
+ /**
1155
+ * Sends a post request to export tree grid to excel file in server side.
1156
+ *
1157
+ * @param {string} url - Pass URL for server side excel export action.
1158
+ * @returns {void}
1159
+ */
1160
+ serverExcelExport(url: string): void;
1161
+ /**
1162
+ * Sends a post request to export tree grid to pdf file in server side.
1163
+ *
1164
+ * @param {string} url - Pass URL for server-side pdf export action.
1165
+ * @returns {void}
1166
+ */
1167
+ serverPdfExport(url: string): void;
1168
+ /**
1169
+ * Sends a Post request to export Tree Grid to CSV file in server side.
1170
+ *
1171
+ * @param {string} url - Pass URL for server-side csv export action.
1172
+ * @returns {void}
1173
+ */
1174
+ serverCsvExport(url: string): void;
1175
+ /**
1176
+ * Exports the TreeGrid data to the specified URL using a POST request.
1177
+ * @param {string} url - Defines exporting url
1178
+ * @returns {void}
1179
+ */
1180
+ private exportTreeGrid;
1181
+ /**
1182
+ * Sets the header text and other properties for an array of columns based on specified criteria.
1183
+ * @param {Column[]} columns - Defines array of columns
1184
+ * @param {string[]} include - Defines array of sting
1185
+ * @returns {Column[]} returns array of columns
1186
+ */
1187
+ private setHeaderText;
1188
+ /**
1189
+ * Retrieves the appropriate format string from the given format options.
1190
+ *
1191
+ * @param {string | NumberFormatOptions | DateFormatOptions} format - The format options to retrieve the format string from.
1192
+ * @returns {string} The format string extracted from the provided format options.
1193
+ */
1194
+ private getFormat;
1147
1195
  /**
1148
1196
  * For internal use only - Get the module name.
1149
1197
  *
@@ -1740,7 +1788,6 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1740
1788
  expandRow(row: HTMLTableRowElement, record?: Object, key?: Object, level?: number): void;
1741
1789
  private expandRows;
1742
1790
  private expandCollapseAllChildren;
1743
- private setHeightForFrozenContent;
1744
1791
  private getCollapseExpandRecords;
1745
1792
  /**
1746
1793
  * Collapses child rows
@@ -1921,12 +1968,16 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1921
1968
  * @param {number} rowIndex - Specifies the row index.
1922
1969
  * @param {number} columnIndex - Specifies the column index.
1923
1970
  * @returns {Element} - Returns movable cell element from the indexes passed
1971
+ *
1972
+
1924
1973
  */
1925
1974
  getMovableCellFromIndex(rowIndex: number, columnIndex: number): Element;
1926
1975
  /**
1927
1976
  * Gets all the TreeGrid's movable table data rows.
1928
1977
  *
1929
1978
  * @returns {Element[]} - Returns element collection of movable rows
1979
+ *
1980
+
1930
1981
  */
1931
1982
  getMovableDataRows(): Element[];
1932
1983
  /**
@@ -1934,12 +1985,15 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1934
1985
  *
1935
1986
  * @param {number} index - Specifies the row index.
1936
1987
  * @returns {Element} - Returns movable row based on index passed
1988
+ *
1989
+
1937
1990
  */
1938
1991
  getMovableRowByIndex(index: number): Element;
1939
1992
  /**
1940
1993
  * Gets the TreeGrid's movable content rows from frozen treegrid.
1941
1994
  *
1942
1995
  * @returns {Element[]}: Returns movable row element
1996
+
1943
1997
  */
1944
1998
  getMovableRows(): Element[];
1945
1999
  /**
@@ -1947,18 +2001,24 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1947
2001
  *
1948
2002
  * @param {number} index - Specifies the row index.
1949
2003
  * @returns {Element} returns the element
2004
+ *
2005
+
1950
2006
  */
1951
2007
  getFrozenRightRowByIndex(index: number): Element;
1952
2008
  /**
1953
2009
  * Gets the Tree Grid's frozen right content rows from frozen Tree Grid.
1954
2010
  *
1955
2011
  * @returns {Element[]} returns the element
2012
+ *
2013
+
1956
2014
  */
1957
2015
  getFrozenRightRows(): Element[];
1958
2016
  /**
1959
2017
  * Gets all the Tree Grid's frozen right table data rows.
1960
2018
  *
1961
2019
  * @returns {Element[]} Returns the Element
2020
+ *
2021
+
1962
2022
  */
1963
2023
  getFrozenRightDataRows(): Element[];
1964
2024
  /**
@@ -1967,6 +2027,8 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1967
2027
  * @param {number} rowIndex - Specifies the row index.
1968
2028
  * @param {number} columnIndex - Specifies the column index.
1969
2029
  * @returns {Element} Returns the Element
2030
+ *
2031
+
1970
2032
  */
1971
2033
  getFrozenRightCellFromIndex(rowIndex: number, columnIndex: number): Element;
1972
2034
  /**
@@ -1974,6 +2036,8 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1974
2036
  *
1975
2037
  * @param {number} index - Specifies the column index.
1976
2038
  * @returns {Element} Returns the Element
2039
+ *
2040
+
1977
2041
  */
1978
2042
  getFrozenLeftColumnHeaderByIndex(index: number): Element;
1979
2043
  /**
@@ -1981,6 +2045,8 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1981
2045
  *
1982
2046
  * @param {number} index - Specifies the column index.
1983
2047
  * @returns {Element} Returns the Element
2048
+ *
2049
+
1984
2050
  */
1985
2051
  getFrozenRightColumnHeaderByIndex(index: number): Element;
1986
2052
  /**
@@ -1988,6 +2054,8 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1988
2054
  *
1989
2055
  * @param {number} index - Specifies the column index.
1990
2056
  * @returns {Element} Returns the Element
2057
+ *
2058
+
1991
2059
  */
1992
2060
  getMovableColumnHeaderByIndex(index: number): Element;
1993
2061
  /**
@@ -21,6 +21,7 @@ import { Component, addClass, createElement, EventHandler, isNullOrUndefined, ex
21
21
  import { removeClass, Complex, Collection, getValue } from '@syncfusion/ej2-base';
22
22
  import { Event, Property, NotifyPropertyChanges, setValue, KeyboardEvents, L10n } from '@syncfusion/ej2-base';
23
23
  import { Column } from '../models/column';
24
+ import { getNumberFormat } from '@syncfusion/ej2-grids';
24
25
  import { RowDropSettings, getUid } from '@syncfusion/ej2-grids';
25
26
  import { LoadingIndicator } from '../models/loading-indicator';
26
27
  import { FilterSettings } from '../models/filter-settings';
@@ -33,7 +34,7 @@ import * as events from '../base/constant';
33
34
  import { SearchSettings } from '../models/search-settings';
34
35
  import { SelectionSettings } from '../models/selection-settings';
35
36
  import { getActualProperties, getObject } from '@syncfusion/ej2-grids';
36
- import { DataManager, RemoteSaveAdaptor, Query, JsonAdaptor, Deferred } from '@syncfusion/ej2-data';
37
+ import { DataManager, RemoteSaveAdaptor, Query, JsonAdaptor, Deferred, UrlAdaptor } from '@syncfusion/ej2-data';
37
38
  import { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';
38
39
  import { isRemoteData, isOffline, extendArray, isCountRequired, findChildrenRecords } from '../utils';
39
40
  import { Grid, Logger } from '@syncfusion/ej2-grids';
@@ -145,6 +146,112 @@ var TreeGrid = /** @class */ (function (_super) {
145
146
  TreeGrid.prototype.pdfExport = function (pdfExportProperties, isMultipleExport, pdfDoc, isBlob) {
146
147
  return this.pdfExportModule.Map(pdfExportProperties, isMultipleExport, pdfDoc, isBlob);
147
148
  };
149
+ /**
150
+ * Sends a post request to export tree grid to excel file in server side.
151
+ *
152
+ * @param {string} url - Pass URL for server side excel export action.
153
+ * @returns {void}
154
+ */
155
+ TreeGrid.prototype.serverExcelExport = function (url) {
156
+ this.isExcel = true;
157
+ this.exportTreeGrid(url);
158
+ };
159
+ /**
160
+ * Sends a post request to export tree grid to pdf file in server side.
161
+ *
162
+ * @param {string} url - Pass URL for server-side pdf export action.
163
+ * @returns {void}
164
+ */
165
+ TreeGrid.prototype.serverPdfExport = function (url) {
166
+ this.isExcel = false;
167
+ this.exportTreeGrid(url);
168
+ };
169
+ /**
170
+ * Sends a Post request to export Tree Grid to CSV file in server side.
171
+ *
172
+ * @param {string} url - Pass URL for server-side csv export action.
173
+ * @returns {void}
174
+ */
175
+ TreeGrid.prototype.serverCsvExport = function (url) {
176
+ this.isExcel = true;
177
+ this.exportTreeGrid(url);
178
+ };
179
+ /**
180
+ * Exports the TreeGrid data to the specified URL using a POST request.
181
+ * @param {string} url - Defines exporting url
182
+ * @returns {void}
183
+ */
184
+ TreeGrid.prototype.exportTreeGrid = function (url) {
185
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
186
+ var treegrid = this;
187
+ var query = treegrid.grid.getDataModule().generateQuery(true);
188
+ var state = new UrlAdaptor().processQuery(new DataManager({ url: '' }), query);
189
+ var queries = JSON.parse(state.data);
190
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
191
+ var treeGridModel = JSON.parse(this.addOnPersist(['allowPaging', 'pageSettings', 'sortSettings', 'allowPdfExport', 'allowExcelExport', 'aggregates',
192
+ 'filterSettings', 'columns', 'locale', 'searchSettings', 'idMapping', 'parentIdMapping', 'childMapping', 'treeColumnIndex']));
193
+ var include = ['field', 'headerText', 'type', 'format', 'visible',
194
+ 'template', 'index', 'width', 'textAlign', 'headerTextAlign', 'columns'];
195
+ treeGridModel.filterSettings.columns = queries.where;
196
+ treeGridModel.searchSettings.fields = queries.search && queries.search[0]['fields'] || [];
197
+ treeGridModel.sortSettings.columns = queries.sorted;
198
+ treeGridModel.columns = this.setHeaderText(treeGridModel.columns, include);
199
+ var form = this.createElement('form', { id: 'ExportForm', styles: 'display:none;' });
200
+ var treeGridInput = this.createElement('input', { id: 'treeGridInput', attrs: { name: 'treeGridModel' } });
201
+ treeGridInput.value = JSON.stringify(treeGridModel);
202
+ form.method = 'POST';
203
+ form.action = url;
204
+ form.appendChild(treeGridInput);
205
+ document.body.appendChild(form);
206
+ form.submit();
207
+ form.remove();
208
+ };
209
+ /**
210
+ * Sets the header text and other properties for an array of columns based on specified criteria.
211
+ * @param {Column[]} columns - Defines array of columns
212
+ * @param {string[]} include - Defines array of sting
213
+ * @returns {Column[]} returns array of columns
214
+ */
215
+ TreeGrid.prototype.setHeaderText = function (columns, include) {
216
+ for (var i = 0; i < columns.length; i++) {
217
+ var column = this.getColumnByUid(columns[parseInt(i.toString(), 10)].uid);
218
+ if (this.stackedHeader && isNullOrUndefined(column)) {
219
+ column = !isNullOrUndefined(columns[parseInt(i.toString(), 10)].field) ?
220
+ this.getColumnByField(columns[parseInt(i.toString(), 10)].field) : columns[parseInt(i.toString(), 10)];
221
+ }
222
+ columns[parseInt(i.toString(), 10)].headerText = column.headerText;
223
+ if (!isNullOrUndefined(column.template)) {
224
+ columns[parseInt(i.toString(), 10)].template = 'true';
225
+ }
226
+ if (columns[parseInt(i.toString(), 10)].format) {
227
+ columns[parseInt(i.toString(), 10)].format = getNumberFormat(this.getFormat(column.format), column.type, false, this.currencyCode);
228
+ if (!this.isExcel && (column.type === 'datetime' || column.type === 'date')) {
229
+ columns[parseInt(i.toString(), 10)].format = columns[parseInt(i.toString(), 10)].format.toString().replace('AM/PM', 'tt');
230
+ }
231
+ columns[parseInt(i.toString(), 10)].type = column.type;
232
+ }
233
+ if (columns[parseInt(i.toString(), 10)].columns) {
234
+ this.setHeaderText(columns[parseInt(i.toString(), 10)].columns, include);
235
+ }
236
+ var keys = Object.keys(columns[parseInt(i.toString(), 10)]);
237
+ for (var j = 0; j < keys.length; j++) {
238
+ if (include.indexOf(keys[parseInt(j.toString(), 10)]) < 0) {
239
+ delete columns[parseInt(i.toString(), 10)][keys[parseInt(j.toString(), 10)]];
240
+ }
241
+ }
242
+ }
243
+ return columns;
244
+ };
245
+ /**
246
+ * Retrieves the appropriate format string from the given format options.
247
+ *
248
+ * @param {string | NumberFormatOptions | DateFormatOptions} format - The format options to retrieve the format string from.
249
+ * @returns {string} The format string extracted from the provided format options.
250
+ */
251
+ TreeGrid.prototype.getFormat = function (format) {
252
+ return typeof (format) === 'object' ? !isNullOrUndefined(format.format) ?
253
+ format.format : format.skeleton : format;
254
+ };
148
255
  /**
149
256
  * For internal use only - Get the module name.
150
257
  *
@@ -420,7 +527,7 @@ var TreeGrid = /** @class */ (function (_super) {
420
527
  TreeGrid.prototype.requiredModules = function () {
421
528
  var modules = [];
422
529
  var splitFrozenCount = 'splitFrozenCount';
423
- this.grid["" + splitFrozenCount](this.getGridColumns(this.columns));
530
+ this.grid["" + splitFrozenCount](this.getColumns());
424
531
  if (this.isDestroyed) {
425
532
  return modules;
426
533
  }
@@ -780,9 +887,11 @@ var TreeGrid = /** @class */ (function (_super) {
780
887
  TreeGrid.prototype.IsExpandCollapseClicked = function (args) {
781
888
  if (!isNullOrUndefined(args.target) && (args.target.classList.contains('e-treegridexpand')
782
889
  || args.target.classList.contains('e-treegridcollapse') || args.target.classList.contains('e-summarycell'))
783
- && (!isNullOrUndefined(args.data) && args.data['hasChildRecords']) && !this.selectionSettings.checkboxOnly) {
784
- args.cancel = true;
785
- return;
890
+ && !this.selectionSettings.checkboxOnly) {
891
+ if ((!isNullOrUndefined(args.data) && args.data['hasChildRecords']) || (args.rowIndex !== -1 && isNullOrUndefined(args.data))) {
892
+ args.cancel = true;
893
+ return;
894
+ }
786
895
  }
787
896
  };
788
897
  TreeGrid.prototype.bindGridEvents = function () {
@@ -900,9 +1009,13 @@ var TreeGrid = /** @class */ (function (_super) {
900
1009
  _this.updateAltRow(_this.getRows());
901
1010
  _this.notify('dataBoundArg', args);
902
1011
  if (isRemoteData(_this) && !isOffline(_this) && !_this.hasChildMapping) {
903
- var req = getObject('dataSource.requests', _this).filter(function (e) {
904
- return e.httpRequest.statusText !== 'OK';
905
- }).length;
1012
+ var req = void 0;
1013
+ if (_this.dataResults.result) {
1014
+ req = 0;
1015
+ }
1016
+ else {
1017
+ req = 1;
1018
+ }
906
1019
  setValue('grid.contentModule.isLoaded', !(req > 0), _this);
907
1020
  }
908
1021
  if (_this.isPixelHeight() && _this.initialRender) {
@@ -1849,9 +1962,11 @@ var TreeGrid = /** @class */ (function (_super) {
1849
1962
  }
1850
1963
  };
1851
1964
  TreeGrid.prototype.ignoreInColumn = function (ignoreOnColumn, column) {
1852
- for (var i = 0; i < ignoreOnColumn.length; i++) {
1853
- delete column[ignoreOnColumn[parseInt(i.toString(), 10)]];
1854
- column.filter = {};
1965
+ if (isNullOrUndefined(column.template)) {
1966
+ for (var i = 0; i < ignoreOnColumn.length; i++) {
1967
+ delete column[ignoreOnColumn[parseInt(i.toString(), 10)]];
1968
+ column.filter = {};
1969
+ }
1855
1970
  }
1856
1971
  };
1857
1972
  TreeGrid.prototype.mouseClickHandler = function (e) {
@@ -2661,7 +2776,6 @@ var TreeGrid = /** @class */ (function (_super) {
2661
2776
  var children = 'Children';
2662
2777
  if (!(isRemoteData(this) && !isOffline(this)) && (!isCountRequired(this) || !isNullOrUndefined(record["" + children]))) {
2663
2778
  var expandArgs = { data: record, row: row };
2664
- this.setHeightForFrozenContent();
2665
2779
  if (!isNullOrUndefined(this.expandStateMapping)) {
2666
2780
  this.updateExpandStateMapping(expandArgs.data, true);
2667
2781
  }
@@ -2688,12 +2802,6 @@ var TreeGrid = /** @class */ (function (_super) {
2688
2802
  this.expandCollapse(action, null, records[parseInt(i.toString(), 10)]);
2689
2803
  }
2690
2804
  };
2691
- TreeGrid.prototype.setHeightForFrozenContent = function () {
2692
- var freeze = (this.grid.getFrozenLeftColumnsCount() > 0 || this.grid.getFrozenRightColumnsCount() > 0) ? true : false;
2693
- if (this.grid.getFrozenColumns() > 0 || freeze) {
2694
- this.grid.contentModule.refreshScrollOffset();
2695
- }
2696
- };
2697
2805
  TreeGrid.prototype.getCollapseExpandRecords = function (row, record) {
2698
2806
  if (this.allowPaging && this.pageSettings.pageSizeMode === 'All' && this.isExpandAll && isNullOrUndefined(record) &&
2699
2807
  !isRemoteData(this)) {
@@ -2770,7 +2878,6 @@ var TreeGrid = /** @class */ (function (_super) {
2770
2878
  this.expandCollapse('collapse', row, record);
2771
2879
  var collapseArgs = { data: record, row: row };
2772
2880
  if (!isRemoteData(this)) {
2773
- this.setHeightForFrozenContent();
2774
2881
  if (!isNullOrUndefined(this.expandStateMapping)) {
2775
2882
  this.updateExpandStateMapping(collapseArgs.data, false);
2776
2883
  }
@@ -3225,7 +3332,6 @@ var TreeGrid = /** @class */ (function (_super) {
3225
3332
  _this.isExpandRefresh = true;
3226
3333
  var scrollHeightBeforeRefresh = _this.getContentTable().parentElement.scrollTop;
3227
3334
  _this.grid.refresh();
3228
- _this.setHeightForFrozenContent();
3229
3335
  if (_this.enableInfiniteScrolling) {
3230
3336
  _this.getContentTable().parentElement.scrollTop = scrollHeightBeforeRefresh;
3231
3337
  }
@@ -3248,7 +3354,6 @@ var TreeGrid = /** @class */ (function (_super) {
3248
3354
  this.notify(events.remoteExpand, { record: record, rows: rows, parentRow: row });
3249
3355
  var args_1 = { row: row, data: record };
3250
3356
  if (rows.length > 0) {
3251
- this.setHeightForFrozenContent();
3252
3357
  this.trigger(events.expanded, args_1);
3253
3358
  }
3254
3359
  }
@@ -3257,7 +3362,6 @@ var TreeGrid = /** @class */ (function (_super) {
3257
3362
  }
3258
3363
  else {
3259
3364
  this.collapseRemoteChild({ record: record, rows: rows });
3260
- this.setHeightForFrozenContent();
3261
3365
  this.trigger(events.collapsed, args);
3262
3366
  }
3263
3367
  };
@@ -3292,12 +3396,12 @@ var TreeGrid = /** @class */ (function (_super) {
3292
3396
  }
3293
3397
  var freeze = (this.grid.getFrozenLeftColumnsCount() > 0 || this.grid.getFrozenRightColumnsCount() > 0) ? true : false;
3294
3398
  if (this.frozenRows || this.frozenColumns || this.getFrozenColumns() || freeze) {
3295
- movableRows = this.getMovableRows().filter(function (r) {
3399
+ movableRows = this.getRows().filter(function (r) {
3296
3400
  return r.querySelector('.e-gridrowindex' + record.index + 'level' + (record.level + 1));
3297
3401
  });
3298
3402
  }
3299
3403
  if (freeze) {
3300
- freezeRightRows = this.getFrozenRightRows().filter(function (r) {
3404
+ freezeRightRows = this.getRows().filter(function (r) {
3301
3405
  return r.querySelector('.e-gridrowindex' + record.index + 'level' + (record.level + 1));
3302
3406
  });
3303
3407
  }
@@ -3397,10 +3501,10 @@ var TreeGrid = /** @class */ (function (_super) {
3397
3501
  var rightrows = [];
3398
3502
  var freeze = (this.getFrozenLeftColumnsCount() > 0 || this.getFrozenRightColumnsCount() > 0) ? true : false;
3399
3503
  if (freeze) {
3400
- movablerows = this.getMovableRows().filter(function (r) {
3504
+ movablerows = this.getRows().filter(function (r) {
3401
3505
  return r.querySelector('.e-gridrowindex' + rowDetails.record.index + 'level' + (rowDetails.record.level + 1));
3402
3506
  });
3403
- rightrows = this.getFrozenRightRows().filter(function (r) {
3507
+ rightrows = this.getRows().filter(function (r) {
3404
3508
  return r.querySelector('.e-gridrowindex' + rowDetails.record.index + 'level' + (rowDetails.record.level + 1));
3405
3509
  });
3406
3510
  }
@@ -3610,59 +3714,72 @@ var TreeGrid = /** @class */ (function (_super) {
3610
3714
  * @param {number} rowIndex - Specifies the row index.
3611
3715
  * @param {number} columnIndex - Specifies the column index.
3612
3716
  * @returns {Element} - Returns movable cell element from the indexes passed
3717
+ *
3718
+
3613
3719
  */
3614
3720
  TreeGrid.prototype.getMovableCellFromIndex = function (rowIndex, columnIndex) {
3615
- return this.grid.getMovableCellFromIndex(rowIndex, columnIndex);
3721
+ return this.grid.getCellFromIndex(rowIndex, columnIndex);
3616
3722
  };
3617
3723
  /**
3618
3724
  * Gets all the TreeGrid's movable table data rows.
3619
3725
  *
3620
3726
  * @returns {Element[]} - Returns element collection of movable rows
3727
+ *
3728
+
3621
3729
  */
3622
3730
  TreeGrid.prototype.getMovableDataRows = function () {
3623
- return this.grid.getMovableDataRows();
3731
+ return this.grid.getDataRows();
3624
3732
  };
3625
3733
  /**
3626
3734
  * Gets a movable tables row by index.
3627
3735
  *
3628
3736
  * @param {number} index - Specifies the row index.
3629
3737
  * @returns {Element} - Returns movable row based on index passed
3738
+ *
3739
+
3630
3740
  */
3631
3741
  TreeGrid.prototype.getMovableRowByIndex = function (index) {
3632
- return this.grid.getMovableRowByIndex(index);
3742
+ return this.grid.getRowByIndex(index);
3633
3743
  };
3634
3744
  /**
3635
3745
  * Gets the TreeGrid's movable content rows from frozen treegrid.
3636
3746
  *
3637
3747
  * @returns {Element[]}: Returns movable row element
3748
+
3638
3749
  */
3639
3750
  TreeGrid.prototype.getMovableRows = function () {
3640
- return this.grid.getMovableRows();
3751
+ return this.grid.getRows();
3641
3752
  };
3642
3753
  /**
3643
3754
  * Gets a frozen right tables row element by index.
3644
3755
  *
3645
3756
  * @param {number} index - Specifies the row index.
3646
3757
  * @returns {Element} returns the element
3758
+ *
3759
+
3647
3760
  */
3648
3761
  TreeGrid.prototype.getFrozenRightRowByIndex = function (index) {
3649
- return this.grid.getFrozenRightRowByIndex(index);
3762
+ return this.grid.getRowByIndex(index);
3650
3763
  };
3651
3764
  /**
3652
3765
  * Gets the Tree Grid's frozen right content rows from frozen Tree Grid.
3653
3766
  *
3654
3767
  * @returns {Element[]} returns the element
3768
+ *
3769
+
3655
3770
  */
3656
3771
  TreeGrid.prototype.getFrozenRightRows = function () {
3657
- return this.grid.getFrozenRightRows();
3772
+ return this.grid.getRows();
3658
3773
  };
3659
3774
  /**
3660
3775
  * Gets all the Tree Grid's frozen right table data rows.
3661
3776
  *
3662
3777
  * @returns {Element[]} Returns the Element
3778
+ *
3779
+
3663
3780
  */
3664
3781
  TreeGrid.prototype.getFrozenRightDataRows = function () {
3665
- return this.grid.getFrozenRightDataRows();
3782
+ return this.grid.getDataRows();
3666
3783
  };
3667
3784
  /**
3668
3785
  * Gets a frozen right table cell by row and column index.
@@ -3670,36 +3787,44 @@ var TreeGrid = /** @class */ (function (_super) {
3670
3787
  * @param {number} rowIndex - Specifies the row index.
3671
3788
  * @param {number} columnIndex - Specifies the column index.
3672
3789
  * @returns {Element} Returns the Element
3790
+ *
3791
+
3673
3792
  */
3674
3793
  TreeGrid.prototype.getFrozenRightCellFromIndex = function (rowIndex, columnIndex) {
3675
- return this.grid.getFrozenRightCellFromIndex(rowIndex, columnIndex);
3794
+ return this.grid.getCellFromIndex(rowIndex, columnIndex);
3676
3795
  };
3677
3796
  /**
3678
3797
  * Gets a frozen left column header by column index.
3679
3798
  *
3680
3799
  * @param {number} index - Specifies the column index.
3681
3800
  * @returns {Element} Returns the Element
3801
+ *
3802
+
3682
3803
  */
3683
3804
  TreeGrid.prototype.getFrozenLeftColumnHeaderByIndex = function (index) {
3684
- return this.grid.getFrozenLeftColumnHeaderByIndex(index);
3805
+ return this.grid.getColumnHeaderByIndex(index);
3685
3806
  };
3686
3807
  /**
3687
3808
  * Gets a frozen right column header by column index.
3688
3809
  *
3689
3810
  * @param {number} index - Specifies the column index.
3690
3811
  * @returns {Element} Returns the Element
3812
+ *
3813
+
3691
3814
  */
3692
3815
  TreeGrid.prototype.getFrozenRightColumnHeaderByIndex = function (index) {
3693
- return this.grid.getFrozenRightColumnHeaderByIndex(index);
3816
+ return this.grid.getColumnHeaderByIndex(index);
3694
3817
  };
3695
3818
  /**
3696
3819
  * Gets a movable column header by column index.
3697
3820
  *
3698
3821
  * @param {number} index - Specifies the column index.
3699
3822
  * @returns {Element} Returns the Element
3823
+ *
3824
+
3700
3825
  */
3701
3826
  TreeGrid.prototype.getMovableColumnHeaderByIndex = function (index) {
3702
- return this.grid.getMovableColumnHeaderByIndex(index);
3827
+ return this.grid.getColumnHeaderByIndex(index);
3703
3828
  };
3704
3829
  /**
3705
3830
  * @hidden
@@ -3933,6 +4058,9 @@ var TreeGrid = /** @class */ (function (_super) {
3933
4058
  __decorate([
3934
4059
  Complex({}, RowDropSettings)
3935
4060
  ], TreeGrid.prototype, "rowDropSettings", void 0);
4061
+ __decorate([
4062
+ Property('USD')
4063
+ ], TreeGrid.prototype, "currencyCode", void 0);
3936
4064
  __decorate([
3937
4065
  Property()
3938
4066
  ], TreeGrid.prototype, "pagerTemplate", void 0);
@@ -326,6 +326,7 @@ export declare class Column {
326
326
  * The available built-in freeze directions are
327
327
  * * Left - Freeze the column at left side.
328
328
  * * Right - Freeze the column at right side.
329
+ * * Fixed - Freeze the column at Center.
329
330
  *
330
331
  * @default null
331
332
  */
@@ -83,8 +83,8 @@ var TreeVirtualRowModelGenerator = /** @class */ (function (_super) {
83
83
  var currentPage = this["" + model].currentPage;
84
84
  if (clear) {
85
85
  this.cache = {};
86
- this.movableCache = {};
87
- this.frozenRightCache = {};
86
+ /*this.movableCache = {};
87
+ this.frozenRightCache = {};*/
88
88
  this.data = {};
89
89
  this.groups = {};
90
90
  }
@@ -99,8 +99,8 @@ var TreeVirtualRowModelGenerator = /** @class */ (function (_super) {
99
99
  this.cache = {};
100
100
  this.data = {};
101
101
  this.groups = {};
102
- this.movableCache = {};
103
- this.frozenRightCache = {};
102
+ /*this.movableCache = {};
103
+ this.frozenRightCache = {};*/
104
104
  }
105
105
  }
106
106
  return clear;
@@ -25,7 +25,6 @@ export declare class VirtualTreeContentRenderer extends VirtualContentRenderer {
25
25
  /** @hidden */
26
26
  isDataSourceChanged: boolean;
27
27
  getRowByIndex(index: number): Element;
28
- getMovableVirtualRowByIndex(index: number): Element;
29
28
  getFrozenRightVirtualRowByIndex(index: number): Element;
30
29
  getRowCollection(index: number, isMovable: boolean, isRowObject?: boolean, isFrozenRight?: boolean): Element | Object;
31
30
  addEventListener(): void;
@@ -42,18 +42,19 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
42
42
  return new TreeVirtualRowModelGenerator(this.parent);
43
43
  };
44
44
  VirtualTreeContentRenderer.prototype.getRowByIndex = function (index) {
45
- return this.parent.getDataRows().filter(function (e) { return parseInt(e.getAttribute('data-rowindex'), 10) === index; })[0];
46
- };
47
- VirtualTreeContentRenderer.prototype.getMovableVirtualRowByIndex = function (index) {
48
- return this.getRowCollection(index, true);
45
+ if (this.parent.enableVirtualization && this.parent.isFrozenGrid()) {
46
+ return this.getRowCollection(index, true);
47
+ }
48
+ else {
49
+ return this.parent.getDataRows().filter(function (e) { return parseInt(e.getAttribute('data-rowindex'), 10) === index; })[0];
50
+ }
49
51
  };
50
52
  VirtualTreeContentRenderer.prototype.getFrozenRightVirtualRowByIndex = function (index) {
51
53
  return this.getRowCollection(index, false, false, true);
52
54
  };
53
55
  VirtualTreeContentRenderer.prototype.getRowCollection = function (index, isMovable, isRowObject, isFrozenRight) {
54
56
  var startIdx = parseInt(this.parent.getRows()[0].getAttribute(literals.dataRowIndex), 10);
55
- var rowCollection = isMovable ? this.parent.getMovableDataRows() : this.parent.getDataRows();
56
- rowCollection = isFrozenRight ? this.parent.getFrozenRightDataRows() : rowCollection;
57
+ var rowCollection = this.parent.getDataRows();
57
58
  var collection = isRowObject ? this.parent.getCurrentViewRecords() : rowCollection;
58
59
  var selectedRow = collection[index - startIdx];
59
60
  if (this.parent.frozenRows && this.parent.pageSettings.currentPage > 1) {
@@ -106,8 +107,8 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
106
107
  this.endIndex = this.parent.pageSettings.pageSize - 1;
107
108
  }
108
109
  if ((this.endIndex - this.startIndex !== this.parent.pageSettings.pageSize) &&
109
- (this.totalRecords > this.parent.pageSettings.pageSize) &&
110
- (this.endIndex === this.totalRecords)) {
110
+ (this.totalRecords > this.parent.pageSettings.pageSize)
111
+ && (this.endIndex === this.totalRecords)) {
111
112
  args.startIndex = this.endIndex - this.parent.pageSettings.pageSize;
112
113
  args.endIndex = this.endIndex;
113
114
  }
@@ -505,29 +506,16 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
505
506
  }
506
507
  };
507
508
  VirtualTreeContentRenderer.prototype.appendContent = function (target, newChild, e) {
508
- var isFrozen = this.parent.isFrozenGrid();
509
509
  if ((this.parent.dataSource instanceof DataManager && this.parent.dataSource.dataSource.url !== undefined
510
510
  && !this.parent.dataSource.dataSource.offline && this.parent.dataSource.dataSource.url !== '') || isCountRequired(this.parent) || this.parent.isFrozenGrid()) {
511
511
  if (getValue('isExpandCollapse', e)) {
512
512
  this.isRemoteExpand = true;
513
513
  }
514
- if (isFrozen && ((isNullOrUndefined(this.requestType) && getValue('requestTypes', this).indexOf('isFrozen') === -1) ||
515
- (this.parent.enableVirtualMaskRow && this.requestType === 'virtualscroll'))) {
516
- getValue('requestTypes', this).push('isFrozen');
517
- this.requestType = 'isFrozen';
518
- }
519
514
  _super.prototype.appendContent.call(this, target, newChild, e);
520
515
  if (getValue('requestTypes', this).indexOf('isFrozen') !== -1) {
521
516
  getValue('requestTypes', this).splice(getValue('requestTypes', this).indexOf('isFrozen'), 1);
522
517
  this.requestType = this.requestType === 'isFrozen' ? undefined : this.requestType;
523
518
  }
524
- if (isFrozen && (!this.isExpandCollapse || this.translateY === 0)) {
525
- this.translateY = this.translateY < 0 ? 0 : this.translateY;
526
- getValue('virtualEle', this).adjustTable(0, this.translateY);
527
- }
528
- else {
529
- this.isExpandCollapse = false;
530
- }
531
519
  }
532
520
  else {
533
521
  var info = e.virtualInfo.sentinelInfo && e.virtualInfo.sentinelInfo.axis === 'Y' &&