@syncfusion/ej2-treegrid 30.2.4 → 31.1.20

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 (33) hide show
  1. package/dist/ej2-treegrid.min.js +2 -2
  2. package/dist/ej2-treegrid.umd.min.js +2 -2
  3. package/dist/ej2-treegrid.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-treegrid.es2015.js +276 -161
  5. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  6. package/dist/es6/ej2-treegrid.es5.js +304 -171
  7. package/dist/es6/ej2-treegrid.es5.js.map +1 -1
  8. package/dist/global/ej2-treegrid.min.js +2 -2
  9. package/dist/global/ej2-treegrid.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +5 -5
  12. package/src/treegrid/actions/context-menu.js +3 -1
  13. package/src/treegrid/actions/edit.js +1 -1
  14. package/src/treegrid/actions/excel-export.d.ts +8 -0
  15. package/src/treegrid/actions/excel-export.js +12 -0
  16. package/src/treegrid/actions/freeze-column.js +1 -1
  17. package/src/treegrid/actions/pdf-export.d.ts +8 -0
  18. package/src/treegrid/actions/pdf-export.js +12 -0
  19. package/src/treegrid/actions/rowdragdrop.js +12 -3
  20. package/src/treegrid/actions/selection.js +1 -1
  21. package/src/treegrid/actions/virtual-scroll.js +2 -2
  22. package/src/treegrid/base/data.js +1 -1
  23. package/src/treegrid/base/treegrid-model.d.ts +32 -2
  24. package/src/treegrid/base/treegrid.d.ts +29 -2
  25. package/src/treegrid/base/treegrid.js +39 -2
  26. package/src/treegrid/models/column-chooser-settings-model.d.ts +62 -0
  27. package/src/treegrid/models/column-chooser-settings.d.ts +53 -0
  28. package/src/treegrid/models/column-chooser-settings.js +52 -0
  29. package/src/treegrid/renderer/virtual-tree-content-render.js +3 -8
  30. package/src/treegrid/utils.js +22 -6
  31. package/styles/bootstrap4-lite.css +8 -0
  32. package/styles/bootstrap4.css +8 -0
  33. package/styles/treegrid/bootstrap4.css +8 -0
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 30.2.4
3
+ * version : 31.1.20
4
4
  * Copyright Syncfusion Inc. 2001 - 2024. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncfusion/ej2-treegrid",
3
- "version": "30.2.4",
3
+ "version": "31.1.20",
4
4
  "description": "Essential JS 2 TreeGrid Component",
5
5
  "author": "Syncfusion Inc.",
6
6
  "license": "SEE LICENSE IN license",
@@ -8,10 +8,10 @@
8
8
  "module": "./index.js",
9
9
  "es2015": "./dist/es6/ej2-treegrid.es5.js",
10
10
  "dependencies": {
11
- "@syncfusion/ej2-base": "~30.2.4",
12
- "@syncfusion/ej2-data": "~30.2.4",
13
- "@syncfusion/ej2-grids": "~30.2.4",
14
- "@syncfusion/ej2-popups": "~30.2.4"
11
+ "@syncfusion/ej2-base": "~31.1.20",
12
+ "@syncfusion/ej2-data": "~31.1.17",
13
+ "@syncfusion/ej2-grids": "~31.1.20",
14
+ "@syncfusion/ej2-popups": "~31.1.20"
15
15
  },
16
16
  "devDependencies": {},
17
17
  "keywords": [
@@ -99,7 +99,9 @@ var ContextMenu = /** @class */ (function () {
99
99
  }
100
100
  }
101
101
  tObj.grid.contextMenuModule.contextMenu.hideItems(tObj.grid.contextMenuModule['hiddenItems']);
102
- indent.style.display = outdent.style.display = 'none';
102
+ if (indent || outdent) {
103
+ indent.style.display = outdent.style.display = 'none';
104
+ }
103
105
  }
104
106
  }
105
107
  };
@@ -817,7 +817,7 @@ var Edit = /** @class */ (function () {
817
817
  this.addRowRecord = this.parent.flatData[args.index];
818
818
  this.addRowIndex = args.index;
819
819
  }
820
- if (this.parent.editSettings.newRowPosition === 'Child' && this.isIndexUndefined &&
820
+ if (this.parent.editSettings.newRowPosition === 'Child' && (this.isIndexUndefined || this.isAddedRowByMethod) &&
821
821
  !isNullOrUndefined(this.parent.getSelectedRecords()[0])) {
822
822
  this.addRowRecord = this.parent.getSelectedRecords()[0];
823
823
  this.isIndexUndefined = false;
@@ -53,6 +53,14 @@ export declare class ExcelExport {
53
53
  * @returns {void}
54
54
  */
55
55
  private excelQueryCellInfo;
56
+ /**
57
+ * TreeGrid Excel Export Aggregate cell modifier
58
+ *
59
+ * @param {AggregateQueryCellInfoEventArgs} args - current cell details
60
+ * @hidden
61
+ * @returns {void}
62
+ */
63
+ private excelAggregateCellInfo;
56
64
  private exportRowDataBound;
57
65
  private finalPageSetup;
58
66
  private isLocal;
@@ -39,6 +39,7 @@ var ExcelExport = /** @class */ (function () {
39
39
  this.parent.on('updateResults', this.updateExcelResultModel, this);
40
40
  this.parent.on('excelCellInfo', this.excelQueryCellInfo, this);
41
41
  this.parent.grid.on('export-RowDataBound', this.exportRowDataBound, this);
42
+ this.parent.on('excelAggregateCellInfo', this.excelAggregateCellInfo, this);
42
43
  this.parent.grid.on('finalPageSetup', this.finalPageSetup, this);
43
44
  };
44
45
  /**
@@ -61,6 +62,7 @@ var ExcelExport = /** @class */ (function () {
61
62
  this.parent.off('updateResults', this.updateExcelResultModel);
62
63
  this.parent.off('excelCellInfo', this.excelQueryCellInfo);
63
64
  this.parent.grid.off('export-RowDataBound', this.exportRowDataBound);
65
+ this.parent.off('excelAggregateCellInfo', this.excelAggregateCellInfo);
64
66
  this.parent.grid.off('finalPageSetup', this.finalPageSetup);
65
67
  };
66
68
  ExcelExport.prototype.updateExcelResultModel = function (returnResult) {
@@ -188,6 +190,16 @@ var ExcelExport = /** @class */ (function () {
188
190
  this.parent.notify('updateResults', args);
189
191
  this.parent.trigger('excelQueryCellInfo', args);
190
192
  };
193
+ /**
194
+ * TreeGrid Excel Export Aggregate cell modifier
195
+ *
196
+ * @param {AggregateQueryCellInfoEventArgs} args - current cell details
197
+ * @hidden
198
+ * @returns {void}
199
+ */
200
+ ExcelExport.prototype.excelAggregateCellInfo = function (args) {
201
+ this.parent.trigger('excelAggregateQueryCellInfo', args);
202
+ };
191
203
  ExcelExport.prototype.exportRowDataBound = function (excelRow) {
192
204
  if (excelRow.type === 'excel') {
193
205
  var excelrowobj = excelRow.rowObj.data;
@@ -52,7 +52,7 @@ var Freeze = /** @class */ (function () {
52
52
  }
53
53
  for (var i = 0; i < rows.length; i++) {
54
54
  var row = rows[parseInt(i.toString(), 10)];
55
- var rData = this.parent.grid.getRowObjectFromUID(row.getAttribute('data-Uid')).data;
55
+ var rData = this.parent.grid.getRowObjectFromUID(row.getAttribute('data-uid')).data;
56
56
  if (!isNullOrUndefined(movableRows) && row.parentElement.firstElementChild.clientHeight > 0) {
57
57
  row.style.height = row.parentElement.firstElementChild.clientHeight + 'px';
58
58
  }
@@ -52,4 +52,12 @@ export declare class PdfExport {
52
52
  * @returns {void}
53
53
  */
54
54
  private pdfQueryCellInfo;
55
+ /**
56
+ * TreeGrid PDF Export Aggregate cell modifier
57
+ *
58
+ * @param {AggregateQueryCellInfoEventArgs} args - current cell details
59
+ * @hidden
60
+ * @returns {void}
61
+ */
62
+ private pdfAggregateCellInfo;
55
63
  }
@@ -36,6 +36,7 @@ var PdfExport = /** @class */ (function () {
36
36
  PdfExport.prototype.addEventListener = function () {
37
37
  this.parent.on('pdfCellInfo', this.pdfQueryCellInfo, this);
38
38
  this.parent.on('updateResults', this.updatePdfResultModel, this);
39
+ this.parent.on('pdfAggregateCellInfo', this.pdfAggregateCellInfo, this);
39
40
  };
40
41
  /**
41
42
  * @hidden
@@ -47,6 +48,7 @@ var PdfExport = /** @class */ (function () {
47
48
  }
48
49
  this.parent.off('pdfCellInfo', this.pdfQueryCellInfo);
49
50
  this.parent.off('updateResults', this.updatePdfResultModel);
51
+ this.parent.off('pdfAggregateCellInfo', this.pdfAggregateCellInfo);
50
52
  };
51
53
  /**
52
54
  * To destroy the PDF Export
@@ -162,6 +164,16 @@ var PdfExport = /** @class */ (function () {
162
164
  this.parent.notify('updateResults', args);
163
165
  this.parent.trigger('pdfQueryCellInfo', args);
164
166
  };
167
+ /**
168
+ * TreeGrid PDF Export Aggregate cell modifier
169
+ *
170
+ * @param {AggregateQueryCellInfoEventArgs} args - current cell details
171
+ * @hidden
172
+ * @returns {void}
173
+ */
174
+ PdfExport.prototype.pdfAggregateCellInfo = function (args) {
175
+ this.parent.trigger('pdfAggregateQueryCellInfo', args);
176
+ };
165
177
  return PdfExport;
166
178
  }());
167
179
  export { PdfExport };
@@ -468,9 +468,18 @@ var RowDD = /** @class */ (function () {
468
468
  && !isNullOrUndefined(droppedRecord.taskData)) {
469
469
  var keys = Object.keys(temporaryDataSource);
470
470
  for (var i = 0; i < keys.length; i++) {
471
- if (temporaryDataSource[parseInt(i.toString(), 10)][this.parent.childMapping] ===
472
- droppedRecord.taskData[this.parent.childMapping]) {
473
- indexOfDroppedRecord = i;
471
+ if (temporaryDataSource[parseInt(i.toString(), 10)][this.parent.childMapping]) {
472
+ if (temporaryDataSource[parseInt(i.toString(), 10)][this.parent.childMapping] ===
473
+ droppedRecord.taskData[this.parent.childMapping]) {
474
+ indexOfDroppedRecord = i;
475
+ }
476
+ }
477
+ else {
478
+ var primaryKeyField = this.parent.getPrimaryKeyFieldNames()[0];
479
+ if (temporaryDataSource[parseInt(i.toString(), 10)]["" + primaryKeyField] ===
480
+ droppedRecord.taskData["" + primaryKeyField]) {
481
+ indexOfDroppedRecord = i;
482
+ }
474
483
  }
475
484
  }
476
485
  if (!this.parent.idMapping) {
@@ -106,7 +106,7 @@ var Selection = /** @class */ (function () {
106
106
  var headerCelllength = this.parent.getHeaderContent().querySelectorAll('.e-headercelldiv').length;
107
107
  for (var j = 0; j < headerCelllength; j++) {
108
108
  var headercell = this.parent.getHeaderContent().querySelectorAll('.e-headercelldiv')[parseInt(j.toString(), 10)];
109
- if (headercell.getAttribute('e-mappinguid') === mappingUid) {
109
+ if (headercell.getAttribute('data-mappinguid') === mappingUid) {
110
110
  columnIndex = j;
111
111
  }
112
112
  }
@@ -162,8 +162,8 @@ var VirtualScroll = /** @class */ (function () {
162
162
  if (this.setEndIndexToGantt) {
163
163
  this.ganttEndIndex = counts.endIndex;
164
164
  }
165
- if ((counts.endIndex + this.parent.pageSettings.pageSize >= counts.count && (this.parent.root && counts.count - this.ganttEndIndex === this.visualData.length - this.parent.root['previousFlatData'].length))
166
- || !(this.parent['isGantt'] && this.parent['isAddedFromGantt'])) {
165
+ if (((counts.endIndex + this.parent.pageSettings.pageSize >= counts.count) &&
166
+ (this.parent.root && counts.count !== this.ganttEndIndex) && this.parent['isAddedFromGantt']) || !(this.parent['isGantt'] && this.parent['isAddedFromGantt'])) {
167
167
  startIndex = counts.startIndex + (counts.count - counts.endIndex);
168
168
  endIndex = counts.count;
169
169
  this.setEndIndexToGantt = false;
@@ -329,7 +329,7 @@ var DataManipulation = /** @class */ (function () {
329
329
  var targetEle = rowDetails.rows[parseInt(i.toString(), 10)].getElementsByClassName('e-treegridcollapse')[0];
330
330
  childRecord = this.parent.rowTemplate ?
331
331
  this.parent.grid.getCurrentViewRecords()[rowDetails.rows[parseInt(i.toString(), 10)].rowIndex] :
332
- this.parent.grid.getRowObjectFromUID(rowDetails.rows[parseInt(i.toString(), 10)].getAttribute('data-Uid')).data;
332
+ this.parent.grid.getRowObjectFromUID(rowDetails.rows[parseInt(i.toString(), 10)].getAttribute('data-uid')).data;
333
333
  if (!isNullOrUndefined(targetEle) && childRecord.expanded) {
334
334
  addClass([targetEle], 'e-treegridexpand');
335
335
  removeClass([targetEle], 'e-treegridcollapse');
@@ -1,4 +1,4 @@
1
- import { Component, addClass, createElement, EventHandler, isNullOrUndefined, ModuleDeclaration, extend, merge, SanitizeHtmlHelper} from '@syncfusion/ej2-base';import { removeClass, EmitType, Complex, Collection, KeyboardEventArgs, getValue, NumberFormatOptions, DateFormatOptions } from '@syncfusion/ej2-base';import {Event, Property, NotifyPropertyChanges, INotifyPropertyChanged, setValue, KeyboardEvents, L10n } from '@syncfusion/ej2-base';import { Column, ColumnModel } from '../models/column';import { BeforeBatchSaveArgs, BeforeBatchAddArgs, BatchDeleteArgs, BeforeBatchDeleteArgs, Row, getNumberFormat } from '@syncfusion/ej2-grids';import { GridModel, ColumnQueryModeType, HeaderCellInfoEventArgs, EditSettingsModel as GridEditModel, Freeze as FreezeColumn } from '@syncfusion/ej2-grids';import { RowDragEventArgs, RowDropEventArgs, RowDropSettingsModel, RowDropSettings, getUid, parentsUntil } from '@syncfusion/ej2-grids';import { LoadingIndicator } from '../models/loading-indicator';import { LoadingIndicatorModel } from '../models/loading-indicator-model';import { TextAlign } from'@syncfusion/ej2-grids';import { DetailDataBoundEventArgs, ClipMode, ColumnChooser} from '@syncfusion/ej2-grids';import { SearchEventArgs, AddEventArgs, EditEventArgs, DeleteEventArgs} from '@syncfusion/ej2-grids';import { SaveEventArgs, CellSaveArgs, BatchAddArgs, BatchCancelArgs, BeginEditArgs, CellEditArgs} from '@syncfusion/ej2-grids';import { FilterSettings } from '../models/filter-settings';import { TextWrapSettings } from '../models/textwrap-settings';import { TextWrapSettingsModel } from '../models/textwrap-settings-model';import {Filter} from '../actions/filter';import { Logger as TreeLogger } from '../actions/logger';import { BeforeCopyEventArgs, BeforePasteEventArgs } from '@syncfusion/ej2-grids';import { TreeClipboard } from '../actions/clipboard';import {Aggregate} from '../actions/summary';import { Reorder } from '../actions/reorder';import { Resize } from '../actions/resize';import { Selection as TreeGridSelection } from '../actions/selection';import { ColumnMenu } from '../actions/column-menu';import { DetailRow } from '../actions/detail-row';import { Freeze } from '../actions/freeze-column';import { Print } from '../actions/print';import * as events from '../base/constant';import { FilterSettingsModel } from '../models/filter-settings-model';import { SearchSettings} from '../models/search-settings';import { SearchSettingsModel } from '../models/search-settings-model';import {RowInfo, RowDataBoundEventArgs, PageEventArgs, FilterEventArgs, FailureEventArgs, SortEventArgs } from '@syncfusion/ej2-grids';import { RowSelectingEventArgs, RowSelectEventArgs, RowDeselectingEventArgs, RowDeselectEventArgs, IIndex, ISelectedCell } from '@syncfusion/ej2-grids';import {ColumnModel as GridColumnModel, Column as GridColumn, CellSelectEventArgs, CellDeselectEventArgs } from '@syncfusion/ej2-grids';import { SelectionSettings } from '../models/selection-settings';import { SelectionSettingsModel } from '../models/selection-settings-model';import {getActualProperties, SortDirection, getObject, ColumnDragEventArgs } from '@syncfusion/ej2-grids';import { PrintMode, Data, IGrid, ContextMenuItemModel } from '@syncfusion/ej2-grids';import { ColumnMenuItem, ColumnMenuItemModel, CheckBoxChangeEventArgs } from '@syncfusion/ej2-grids';import { ExcelExportCompleteArgs, ExcelHeaderQueryCellInfoEventArgs, ExcelQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { PdfExportCompleteArgs, PdfHeaderQueryCellInfoEventArgs, PdfQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { ExcelExportProperties, PdfExportProperties, CellSelectingEventArgs, PrintEventArgs } from '@syncfusion/ej2-grids';import { ColumnMenuOpenEventArgs } from '@syncfusion/ej2-grids';import {BeforeDataBoundArgs} from '@syncfusion/ej2-grids';import { DataManager, ReturnOption, RemoteSaveAdaptor, Query, JsonAdaptor, Deferred, UrlAdaptor } from '@syncfusion/ej2-data';import { createSpinner, hideSpinner, showSpinner, Dialog } from '@syncfusion/ej2-popups';import { isRemoteData, isOffline, extendArray, isCountRequired, findChildrenRecords } from '../utils';import { Grid, QueryCellInfoEventArgs, Logger } from '@syncfusion/ej2-grids';import { Render } from '../renderer/render';import { VirtualTreeContentRenderer } from '../renderer/virtual-tree-content-render';import { DataManipulation } from './data';import { RowDD } from '../actions/rowdragdrop';import { Sort } from '../actions/sort';import { ITreeData, RowExpandedEventArgs, RowCollapsedEventArgs, RowCollapsingEventArgs, TreeGridExcelExportProperties, ActionEventArgs } from './interface';import { DataStateChangeEventArgs, RowExpandingEventArgs, TreeGridPdfExportProperties } from './interface';import { iterateArrayOrObject, GridLine } from '@syncfusion/ej2-grids';import { DataSourceChangedEventArgs, RecordDoubleClickEventArgs, ResizeArgs } from '@syncfusion/ej2-grids';import { ToolbarItems, ToolbarItem, ContextMenuItem, ContextMenuItems, RowPosition, CopyHierarchyType } from '../enum';import { ItemModel, ClickEventArgs, BeforeOpenCloseMenuEventArgs, MenuEventArgs } from '@syncfusion/ej2-navigations';import { PageSettings } from '../models/page-settings';import { PageSettingsModel } from '../models/page-settings-model';import { AggregateRow } from '../models/summary';import { AggregateRowModel } from '../models/summary-model';import { ExcelExport } from '../actions/excel-export';import { PdfExport } from '../actions/pdf-export';import { Toolbar } from '../actions/toolbar';import { Page } from '../actions/page';import { ContextMenu } from '../actions/context-menu';import { EditSettings } from '../models/edit-settings';import { EditSettingsModel } from '../models/edit-settings-model';import { Edit} from '../actions/edit';import { SortSettings } from '../models/sort-settings';import { SortSettingsModel } from '../models/sort-settings-model';import { isHidden, getExpandStatus } from '../utils';import { editAction } from '../actions/crud-actions';import { InfiniteScrollSettings } from '../models/infinite-scroll-settings';import { InfiniteScrollSettingsModel } from '../models/infinite-scroll-settings-model';import { TreeActionEventArgs } from '..';import * as literals from '../base/constant';
1
+ import { Component, addClass, createElement, EventHandler, isNullOrUndefined, ModuleDeclaration, extend, merge, SanitizeHtmlHelper} from '@syncfusion/ej2-base';import { removeClass, EmitType, Complex, Collection, KeyboardEventArgs, getValue, NumberFormatOptions, DateFormatOptions } from '@syncfusion/ej2-base';import {Event, Property, NotifyPropertyChanges, INotifyPropertyChanged, setValue, KeyboardEvents, L10n } from '@syncfusion/ej2-base';import { Column, ColumnModel } from '../models/column';import { BeforeBatchSaveArgs, BeforeBatchAddArgs, BatchDeleteArgs, BeforeBatchDeleteArgs, Row, getNumberFormat } from '@syncfusion/ej2-grids';import { GridModel, ColumnQueryModeType, HeaderCellInfoEventArgs, EditSettingsModel as GridEditModel, Freeze as FreezeColumn } from '@syncfusion/ej2-grids';import { RowDragEventArgs, RowDropEventArgs, RowDropSettingsModel, RowDropSettings, getUid, parentsUntil } from '@syncfusion/ej2-grids';import { LoadingIndicator } from '../models/loading-indicator';import { LoadingIndicatorModel } from '../models/loading-indicator-model';import { TextAlign } from'@syncfusion/ej2-grids';import { DetailDataBoundEventArgs, ClipMode, ColumnChooser} from '@syncfusion/ej2-grids';import { SearchEventArgs, AddEventArgs, EditEventArgs, DeleteEventArgs} from '@syncfusion/ej2-grids';import { SaveEventArgs, CellSaveArgs, BatchAddArgs, BatchCancelArgs, BeginEditArgs, CellEditArgs} from '@syncfusion/ej2-grids';import { FilterSettings } from '../models/filter-settings';import { TextWrapSettings } from '../models/textwrap-settings';import { TextWrapSettingsModel } from '../models/textwrap-settings-model';import {Filter} from '../actions/filter';import { Logger as TreeLogger } from '../actions/logger';import { BeforeCopyEventArgs, BeforePasteEventArgs } from '@syncfusion/ej2-grids';import { TreeClipboard } from '../actions/clipboard';import {Aggregate} from '../actions/summary';import { Reorder } from '../actions/reorder';import { Resize } from '../actions/resize';import { Selection as TreeGridSelection } from '../actions/selection';import { ColumnMenu } from '../actions/column-menu';import { DetailRow } from '../actions/detail-row';import { Freeze } from '../actions/freeze-column';import { Print } from '../actions/print';import * as events from '../base/constant';import { FilterSettingsModel } from '../models/filter-settings-model';import { SearchSettings} from '../models/search-settings';import { SearchSettingsModel } from '../models/search-settings-model';import {RowInfo, RowDataBoundEventArgs, PageEventArgs, FilterEventArgs, FailureEventArgs, SortEventArgs } from '@syncfusion/ej2-grids';import { RowSelectingEventArgs, RowSelectEventArgs, RowDeselectingEventArgs, RowDeselectEventArgs, IIndex, ISelectedCell } from '@syncfusion/ej2-grids';import {ColumnModel as GridColumnModel, Column as GridColumn, CellSelectEventArgs, CellDeselectEventArgs } from '@syncfusion/ej2-grids';import { SelectionSettings } from '../models/selection-settings';import { SelectionSettingsModel } from '../models/selection-settings-model';import {getActualProperties, SortDirection, getObject, ColumnDragEventArgs } from '@syncfusion/ej2-grids';import { PrintMode, Data, IGrid, ContextMenuItemModel } from '@syncfusion/ej2-grids';import { ColumnMenuItem, ColumnMenuItemModel, CheckBoxChangeEventArgs } from '@syncfusion/ej2-grids';import { ExcelExportCompleteArgs, ExcelHeaderQueryCellInfoEventArgs, ExcelQueryCellInfoEventArgs, AggregateQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { PdfExportCompleteArgs, PdfHeaderQueryCellInfoEventArgs, PdfQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { ExcelExportProperties, PdfExportProperties, CellSelectingEventArgs, PrintEventArgs } from '@syncfusion/ej2-grids';import { ColumnMenuOpenEventArgs } from '@syncfusion/ej2-grids';import {BeforeDataBoundArgs} from '@syncfusion/ej2-grids';import { DataManager, ReturnOption, RemoteSaveAdaptor, Query, JsonAdaptor, Deferred, UrlAdaptor } from '@syncfusion/ej2-data';import { createSpinner, hideSpinner, showSpinner, Dialog } from '@syncfusion/ej2-popups';import { isRemoteData, isOffline, extendArray, isCountRequired, findChildrenRecords } from '../utils';import { Grid, QueryCellInfoEventArgs, Logger } from '@syncfusion/ej2-grids';import { Render } from '../renderer/render';import { VirtualTreeContentRenderer } from '../renderer/virtual-tree-content-render';import { DataManipulation } from './data';import { RowDD } from '../actions/rowdragdrop';import { Sort } from '../actions/sort';import { ITreeData, RowExpandedEventArgs, RowCollapsedEventArgs, RowCollapsingEventArgs, TreeGridExcelExportProperties, ActionEventArgs } from './interface';import { DataStateChangeEventArgs, RowExpandingEventArgs, TreeGridPdfExportProperties } from './interface';import { iterateArrayOrObject, GridLine } from '@syncfusion/ej2-grids';import { DataSourceChangedEventArgs, RecordDoubleClickEventArgs, ResizeArgs } from '@syncfusion/ej2-grids';import { ToolbarItems, ToolbarItem, ContextMenuItem, ContextMenuItems, RowPosition, CopyHierarchyType } from '../enum';import { ItemModel, ClickEventArgs, BeforeOpenCloseMenuEventArgs, MenuEventArgs } from '@syncfusion/ej2-navigations';import { PageSettings } from '../models/page-settings';import { PageSettingsModel } from '../models/page-settings-model';import { AggregateRow } from '../models/summary';import { AggregateRowModel } from '../models/summary-model';import { ExcelExport } from '../actions/excel-export';import { PdfExport } from '../actions/pdf-export';import { Toolbar } from '../actions/toolbar';import { Page } from '../actions/page';import { ContextMenu } from '../actions/context-menu';import { EditSettings } from '../models/edit-settings';import { EditSettingsModel } from '../models/edit-settings-model';import { Edit} from '../actions/edit';import { SortSettings } from '../models/sort-settings';import { SortSettingsModel } from '../models/sort-settings-model';import { isHidden, getExpandStatus } from '../utils';import { editAction } from '../actions/crud-actions';import { InfiniteScrollSettings } from '../models/infinite-scroll-settings';import { InfiniteScrollSettingsModel } from '../models/infinite-scroll-settings-model';import { TreeActionEventArgs } from '..';import * as literals from '../base/constant';import { ColumnChooserSettings } from '../models/column-chooser-settings';import { ColumnChooserSettingsModel } from '../models/column-chooser-settings-model';
2
2
  import {ComponentModel} from '@syncfusion/ej2-base';
3
3
 
4
4
  /**
@@ -220,7 +220,6 @@ export interface TreeGridModel extends ComponentModel{
220
220
  currencyCode?: string;
221
221
 
222
222
  /**
223
- * @hidden
224
223
  * It used to render pager template
225
224
  * @default null
226
225
  * @aspType string
@@ -243,6 +242,13 @@ export interface TreeGridModel extends ComponentModel{
243
242
  */
244
243
  showColumnChooser?: boolean;
245
244
 
245
+ /**
246
+ * Configures the column chooser in the Grid.
247
+ *
248
+ * @default { columnChooserOperator: 'startsWith' }
249
+ */
250
+ columnChooserSettings?: ColumnChooserSettingsModel;
251
+
246
252
  /**
247
253
  * If `allowSorting` is set to true, it allows sorting of treegrid records when column header is clicked.
248
254
  *
@@ -488,6 +494,16 @@ export interface TreeGridModel extends ComponentModel{
488
494
  */
489
495
  enableStickyHeader?: boolean;
490
496
 
497
+ /**
498
+ * The empty record template that renders customized element or text or image instead of displaying the empty record message in the TreeGrid.
499
+ *
500
+ * > It accepts either the [template string](../../common/template-engine/) or the HTML element ID.
501
+ *
502
+ * @default null
503
+ * @aspType string
504
+ */
505
+ emptyRecordTemplate?: string | Function;
506
+
491
507
  /**
492
508
  * Defines the scrollable height of the TreeGrid content.
493
509
  *
@@ -1032,6 +1048,20 @@ export interface TreeGridModel extends ComponentModel{
1032
1048
  */
1033
1049
  excelQueryCellInfo?: EmitType<ExcelQueryCellInfoEventArgs>;
1034
1050
 
1051
+ /**
1052
+ * Triggers before exporting aggregate cell to PDF document. You can also customize the PDF cells.
1053
+ *
1054
+ * @event pdfAggregateQueryCellInfo
1055
+ */
1056
+ pdfAggregateQueryCellInfo?: EmitType<AggregateQueryCellInfoEventArgs>;
1057
+
1058
+ /**
1059
+ * Triggers before exporting aggregate cell to Excel document.
1060
+ *
1061
+ * @event excelAggregateQueryCellInfo
1062
+ */
1063
+ excelAggregateQueryCellInfo?: EmitType<AggregateQueryCellInfoEventArgs>;
1064
+
1035
1065
  /**
1036
1066
  * Triggers before each header cell is exported to an Excel file, allowing customization of cells.
1037
1067
  *
@@ -31,7 +31,7 @@ import { SelectionSettingsModel } from '../models/selection-settings-model';
31
31
  import { SortDirection, ColumnDragEventArgs } from '@syncfusion/ej2-grids';
32
32
  import { PrintMode, Data, ContextMenuItemModel } from '@syncfusion/ej2-grids';
33
33
  import { ColumnMenuItem, ColumnMenuItemModel, CheckBoxChangeEventArgs } from '@syncfusion/ej2-grids';
34
- import { ExcelExportCompleteArgs, ExcelHeaderQueryCellInfoEventArgs, ExcelQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';
34
+ import { ExcelExportCompleteArgs, ExcelHeaderQueryCellInfoEventArgs, ExcelQueryCellInfoEventArgs, AggregateQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';
35
35
  import { PdfExportCompleteArgs, PdfHeaderQueryCellInfoEventArgs, PdfQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';
36
36
  import { ExcelExportProperties, PdfExportProperties, CellSelectingEventArgs, PrintEventArgs } from '@syncfusion/ej2-grids';
37
37
  import { ColumnMenuOpenEventArgs } from '@syncfusion/ej2-grids';
@@ -59,6 +59,7 @@ import { EditSettingsModel } from '../models/edit-settings-model';
59
59
  import { Edit } from '../actions/edit';
60
60
  import { SortSettingsModel } from '../models/sort-settings-model';
61
61
  import { InfiniteScrollSettingsModel } from '../models/infinite-scroll-settings-model';
62
+ import { ColumnChooserSettingsModel } from '../models/column-chooser-settings-model';
62
63
  /**
63
64
  * Represents the TreeGrid component.
64
65
  * ```html
@@ -380,7 +381,6 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
380
381
  */
381
382
  private currencyCode;
382
383
  /**
383
- * @hidden
384
384
  * It used to render pager template
385
385
  * @default null
386
386
  * @aspType string
@@ -400,6 +400,12 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
400
400
  * @default false
401
401
  */
402
402
  showColumnChooser: boolean;
403
+ /**
404
+ * Configures the column chooser in the Grid.
405
+ *
406
+ * @default { columnChooserOperator: 'startsWith' }
407
+ */
408
+ columnChooserSettings: ColumnChooserSettingsModel;
403
409
  /**
404
410
  * If `allowSorting` is set to true, it allows sorting of treegrid records when column header is clicked.
405
411
  *
@@ -621,6 +627,15 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
621
627
  * @default false
622
628
  */
623
629
  enableStickyHeader: boolean;
630
+ /**
631
+ * The empty record template that renders customized element or text or image instead of displaying the empty record message in the TreeGrid.
632
+ *
633
+ * > It accepts either the [template string](../../common/template-engine/) or the HTML element ID.
634
+ *
635
+ * @default null
636
+ * @aspType string
637
+ */
638
+ emptyRecordTemplate: string | Function;
624
639
  /**
625
640
  * Defines the scrollable height of the TreeGrid content.
626
641
  *
@@ -1091,6 +1106,18 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1091
1106
  * @event excelQueryCellInfo
1092
1107
  */
1093
1108
  excelQueryCellInfo: EmitType<ExcelQueryCellInfoEventArgs>;
1109
+ /**
1110
+ * Triggers before exporting aggregate cell to PDF document. You can also customize the PDF cells.
1111
+ *
1112
+ * @event pdfAggregateQueryCellInfo
1113
+ */
1114
+ pdfAggregateQueryCellInfo: EmitType<AggregateQueryCellInfoEventArgs>;
1115
+ /**
1116
+ * Triggers before exporting aggregate cell to Excel document.
1117
+ *
1118
+ * @event excelAggregateQueryCellInfo
1119
+ */
1120
+ excelAggregateQueryCellInfo: EmitType<AggregateQueryCellInfoEventArgs>;
1094
1121
  /**
1095
1122
  * Triggers before each header cell is exported to an Excel file, allowing customization of cells.
1096
1123
  *
@@ -51,6 +51,7 @@ import { isHidden, getExpandStatus } from '../utils';
51
51
  import { editAction } from '../actions/crud-actions';
52
52
  import { InfiniteScrollSettings } from '../models/infinite-scroll-settings';
53
53
  import * as literals from '../base/constant';
54
+ import { ColumnChooserSettings } from '../models/column-chooser-settings';
54
55
  /**
55
56
  * Represents the TreeGrid component.
56
57
  * ```html
@@ -915,7 +916,7 @@ var TreeGrid = /** @class */ (function (_super) {
915
916
  }
916
917
  }
917
918
  var alignColumn;
918
- if (this.treeColumnIndex !== null && this.treeColumnIndex !== -1) {
919
+ if (this.treeColumnIndex !== null && this.treeColumnIndex !== -1 && this.treeColumnIndex < this.columns.length) {
919
920
  alignColumn = this.columnModel.filter(function (col) { return col.textAlign === 'Right' && col.field === _this.columnModel[_this.treeColumnIndex].field; });
920
921
  if (alignColumn.length !== 0) {
921
922
  failureCases.push('TextAlign right for the tree column is not applicable.');
@@ -1028,6 +1029,7 @@ var TreeGrid = /** @class */ (function (_super) {
1028
1029
  /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
1029
1030
  this.grid.toolbarTemplate = this.toolbarTemplate;
1030
1031
  this.grid.showColumnChooser = this.showColumnChooser;
1032
+ this.grid.columnChooserSettings = this.columnChooserSettings;
1031
1033
  this.grid.filterSettings = getActualProperties(this.filterSettings);
1032
1034
  this.grid.selectionSettings = getActualProperties(this.selectionSettings);
1033
1035
  this.grid.sortSettings = getActualProperties(this.sortSettings);
@@ -1055,6 +1057,7 @@ var TreeGrid = /** @class */ (function (_super) {
1055
1057
  var enableHtmlSanitizer = 'enableHtmlSanitizer';
1056
1058
  this.grid["" + enableHtmlSanitizer] = this.enableHtmlSanitizer;
1057
1059
  this.grid.enableStickyHeader = this.enableStickyHeader;
1060
+ this.grid.emptyRecordTemplate = this.emptyRecordTemplate;
1058
1061
  var isTreeGrid = 'isTreeGrid';
1059
1062
  this.grid["" + isTreeGrid] = true;
1060
1063
  };
@@ -1121,6 +1124,14 @@ var TreeGrid = /** @class */ (function (_super) {
1121
1124
  _this.notify('excelCellInfo', args);
1122
1125
  args = _this.dataResults;
1123
1126
  };
1127
+ this.grid.excelAggregateQueryCellInfo = function (args) {
1128
+ _this.notify('excelAggregateCellInfo', args);
1129
+ args = _this.dataResults;
1130
+ };
1131
+ this.grid.pdfAggregateQueryCellInfo = function (args) {
1132
+ _this.notify('pdfAggregateCellInfo', args);
1133
+ args = _this.dataResults;
1134
+ };
1124
1135
  this.grid.pdfQueryCellInfo = function (args) {
1125
1136
  _this.notify('pdfCellInfo', args);
1126
1137
  args = _this.dataResults;
@@ -2016,6 +2027,9 @@ var TreeGrid = /** @class */ (function (_super) {
2016
2027
  case 'enableAutoFill':
2017
2028
  this.grid.enableAutoFill = this.enableAutoFill;
2018
2029
  break;
2030
+ case 'columnChooserSettings':
2031
+ this.grid.columnChooserSettings = getActualProperties(this.columnChooserSettings);
2032
+ break;
2019
2033
  case 'enableAdaptiveUI':
2020
2034
  this.grid.enableAdaptiveUI = this.enableAdaptiveUI;
2021
2035
  break;
@@ -2063,6 +2077,9 @@ var TreeGrid = /** @class */ (function (_super) {
2063
2077
  case 'enableStickyHeader':
2064
2078
  this.grid.enableStickyHeader = this.enableStickyHeader;
2065
2079
  break;
2080
+ case 'emptyRecordTemplate':
2081
+ this.grid.emptyRecordTemplate = this.emptyRecordTemplate;
2082
+ break;
2066
2083
  case 'editSettings':
2067
2084
  if (this.grid.isEdit && this.grid.editSettings.mode === 'Normal' && newProp["" + prop].mode &&
2068
2085
  (newProp["" + prop].mode === 'Cell' || newProp["" + prop].mode === 'Row')) {
@@ -3786,9 +3803,17 @@ var TreeGrid = /** @class */ (function (_super) {
3786
3803
  }
3787
3804
  var deff = new Deferred();
3788
3805
  var childDataBind = 'childDataBind';
3806
+ var state;
3807
+ if (this.query) {
3808
+ state = this.grid.getDataModule().getStateEventArgument(this.query);
3809
+ state.action = expandingArgs;
3810
+ }
3811
+ else {
3812
+ state = expandingArgs;
3813
+ }
3789
3814
  expandingArgs["" + childDataBind] = deff.resolve;
3790
3815
  var record = expandingArgs.data;
3791
- this.trigger(events.dataStateChange, expandingArgs);
3816
+ this.trigger(events.dataStateChange, state);
3792
3817
  deff.promise.then(function () {
3793
3818
  if (expandingArgs.childData.length) {
3794
3819
  if (isCountRequired(_this)) {
@@ -4637,6 +4662,9 @@ var TreeGrid = /** @class */ (function (_super) {
4637
4662
  __decorate([
4638
4663
  Property(false)
4639
4664
  ], TreeGrid.prototype, "showColumnChooser", void 0);
4665
+ __decorate([
4666
+ Complex({}, ColumnChooserSettings)
4667
+ ], TreeGrid.prototype, "columnChooserSettings", void 0);
4640
4668
  __decorate([
4641
4669
  Property(false)
4642
4670
  ], TreeGrid.prototype, "allowSorting", void 0);
@@ -4709,6 +4737,9 @@ var TreeGrid = /** @class */ (function (_super) {
4709
4737
  __decorate([
4710
4738
  Property(false)
4711
4739
  ], TreeGrid.prototype, "enableStickyHeader", void 0);
4740
+ __decorate([
4741
+ Property()
4742
+ ], TreeGrid.prototype, "emptyRecordTemplate", void 0);
4712
4743
  __decorate([
4713
4744
  Property('auto')
4714
4745
  ], TreeGrid.prototype, "height", void 0);
@@ -4931,6 +4962,12 @@ var TreeGrid = /** @class */ (function (_super) {
4931
4962
  __decorate([
4932
4963
  Event()
4933
4964
  ], TreeGrid.prototype, "excelQueryCellInfo", void 0);
4965
+ __decorate([
4966
+ Event()
4967
+ ], TreeGrid.prototype, "pdfAggregateQueryCellInfo", void 0);
4968
+ __decorate([
4969
+ Event()
4970
+ ], TreeGrid.prototype, "excelAggregateQueryCellInfo", void 0);
4934
4971
  __decorate([
4935
4972
  Event()
4936
4973
  ], TreeGrid.prototype, "excelHeaderQueryCellInfo", void 0);
@@ -0,0 +1,62 @@
1
+ import { Property, ChildProperty } from '@syncfusion/ej2-base';
2
+
3
+ /**
4
+ * Interface for a class ColumnChooserSettings
5
+ */
6
+ export interface ColumnChooserSettingsModel {
7
+
8
+ /**
9
+ * Defines the search operator for column chooser.
10
+ *
11
+ * @default 'startsWith'
12
+ * @blazorType Syncfusion.Blazor.Operator
13
+ * @blazorDefaultValue Syncfusion.Blazor.Operator.StartsWith
14
+ */
15
+ operator?: string;
16
+
17
+ /**
18
+ * If ignoreAccent set to true, then ignores the diacritic characters or accents while searching in column chooser dialog.
19
+ *
20
+ * @default false
21
+ */
22
+ ignoreAccent?: boolean;
23
+
24
+ /**
25
+ * Defines the custom header elements for the column chooser header template.
26
+ *
27
+ * @default null
28
+ * @aspType string
29
+ */
30
+ headerTemplate?: string | Function;
31
+
32
+ /**
33
+ * Defines the custom content elements for the column chooser content template.
34
+ *
35
+ * @default null
36
+ * @aspType string
37
+ */
38
+ template?: string | Function;
39
+
40
+ /**
41
+ * Defines the custom footer elements for the column chooser footer template.
42
+ *
43
+ * @default null
44
+ * @aspType string
45
+ */
46
+ footerTemplate?: string | Function;
47
+
48
+ /**
49
+ * Enables or disables the search option in the column chooser.
50
+ *
51
+ * @default true
52
+ */
53
+ enableSearching?: boolean;
54
+
55
+ /**
56
+ * Renders a custom component to replace or extend the default column chooser UI.
57
+ * @param target - The target HTML element where the custom component will be appended in the column chooser dialog.
58
+ * @aspType string
59
+ */
60
+ renderCustomColumnChooser?: string | Function;
61
+
62
+ }
@@ -0,0 +1,53 @@
1
+ import { ChildProperty } from '@syncfusion/ej2-base';
2
+ /**
3
+ * Configures the column chooser behavior of the Grid.
4
+ */
5
+ export declare class ColumnChooserSettings extends ChildProperty<ColumnChooserSettings> {
6
+ /**
7
+ * Defines the search operator for column chooser.
8
+ *
9
+ * @default 'startsWith'
10
+ * @blazorType Syncfusion.Blazor.Operator
11
+ * @blazorDefaultValue Syncfusion.Blazor.Operator.StartsWith
12
+ */
13
+ operator: string;
14
+ /**
15
+ * If ignoreAccent set to true, then ignores the diacritic characters or accents while searching in column chooser dialog.
16
+ *
17
+ * @default false
18
+ */
19
+ ignoreAccent: boolean;
20
+ /**
21
+ * Defines the custom header elements for the column chooser header template.
22
+ *
23
+ * @default null
24
+ * @aspType string
25
+ */
26
+ headerTemplate: string | Function;
27
+ /**
28
+ * Defines the custom content elements for the column chooser content template.
29
+ *
30
+ * @default null
31
+ * @aspType string
32
+ */
33
+ template: string | Function;
34
+ /**
35
+ * Defines the custom footer elements for the column chooser footer template.
36
+ *
37
+ * @default null
38
+ * @aspType string
39
+ */
40
+ footerTemplate: string | Function;
41
+ /**
42
+ * Enables or disables the search option in the column chooser.
43
+ *
44
+ * @default true
45
+ */
46
+ enableSearching: boolean;
47
+ /**
48
+ * Renders a custom component to replace or extend the default column chooser UI.
49
+ * @param target - The target HTML element where the custom component will be appended in the column chooser dialog.
50
+ * @aspType string
51
+ */
52
+ renderCustomColumnChooser: string | Function;
53
+ }