@syncfusion/ej2-treegrid 31.2.5 → 31.2.12

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 31.2.5
3
+ * version : 31.2.12
4
4
  * Copyright Syncfusion Inc. 2001 - 2025. 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": "31.2.5",
3
+ "version": "31.2.12",
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": "~31.2.5",
12
- "@syncfusion/ej2-data": "~31.2.5",
13
- "@syncfusion/ej2-grids": "~31.2.5",
14
- "@syncfusion/ej2-popups": "~31.2.5"
11
+ "@syncfusion/ej2-base": "~31.2.12",
12
+ "@syncfusion/ej2-data": "~31.2.12",
13
+ "@syncfusion/ej2-grids": "~31.2.12",
14
+ "@syncfusion/ej2-popups": "~31.2.12"
15
15
  },
16
16
  "devDependencies": {},
17
17
  "keywords": [
@@ -256,10 +256,12 @@ var VirtualScroll = /** @class */ (function () {
256
256
  */
257
257
  VirtualScroll.prototype.updateSelection = function (args) {
258
258
  if (args.isHeaderCheckboxClicked &&
259
- this.parent.grid.currentViewData.length !== this.parent.grid.selectionModule.selectedRowIndexes.length) {
259
+ this.parent.grid.currentViewData.length !== this.parent.grid.selectionModule.selectedRowIndexes.length &&
260
+ args.target.classList.contains('e-uncheck')) {
260
261
  var updateRowSelection = 'updateRowSelection';
261
262
  for (var i = 0; i < this.parent.getRows().length; i++) {
262
- if (this.parent.getRows()[parseInt(i.toString(), 10)].getElementsByClassName('e-frame e-icons e-uncheck').length) {
263
+ if (this.parent.getRows()[parseInt(i.toString(), 10)].getElementsByClassName('e-frame e-icons e-uncheck').length &&
264
+ !this.parent.getRows()[parseInt(i.toString(), 10)].querySelector('.e-checkbox-disabled')) {
263
265
  this.parent.grid.selectionModule["" + updateRowSelection](this.parent.getRows()[parseInt(i.toString(), 10)],
264
266
  // eslint-disable-next-line max-len
265
267
  this.parent.getCurrentViewRecords()[parseInt(i.toString(), 10)].index);
@@ -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, 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';
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, RowSelectable } 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, Middlewares } 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
  /**
@@ -599,6 +599,25 @@ export interface TreeGridModel extends ComponentModel{
599
599
  */
600
600
  selectedRowIndex?: number;
601
601
 
602
+ /**
603
+ * Determines whether a row can be selected.
604
+ * When not set, all rows are considered selectable.
605
+ * @default null
606
+ * @example
607
+ * const grid = new TreeGrid({
608
+ * dataSource: data,
609
+ * columns: [
610
+ * { field: 'TaskID', type: 'number' },
611
+ * { field: 'Status', type: 'string' }
612
+ * ],
613
+ * isRowSelectable: function(data, columns) {
614
+ * // prevent selection for locked rows
615
+ * return data['Status'] !== 'Locked';
616
+ * }
617
+ * });
618
+ */
619
+ isRowSelectable?: RowSelectable | string;
620
+
602
621
  /**
603
622
  * Configures the selection behavior.
604
623
  *
@@ -2,7 +2,7 @@ import { Component, ModuleDeclaration } from '@syncfusion/ej2-base';
2
2
  import { EmitType } from '@syncfusion/ej2-base';
3
3
  import { INotifyPropertyChanged, KeyboardEvents } from '@syncfusion/ej2-base';
4
4
  import { Column, ColumnModel } from '../models/column';
5
- import { BeforeBatchSaveArgs, BeforeBatchAddArgs, BatchDeleteArgs, BeforeBatchDeleteArgs } from '@syncfusion/ej2-grids';
5
+ import { BeforeBatchSaveArgs, BeforeBatchAddArgs, BatchDeleteArgs, BeforeBatchDeleteArgs, RowSelectable } from '@syncfusion/ej2-grids';
6
6
  import { ColumnQueryModeType, HeaderCellInfoEventArgs } from '@syncfusion/ej2-grids';
7
7
  import { RowDragEventArgs, RowDropSettingsModel } from '@syncfusion/ej2-grids';
8
8
  import { LoadingIndicatorModel } from '../models/loading-indicator-model';
@@ -719,6 +719,24 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
719
719
  * @default -1
720
720
  */
721
721
  selectedRowIndex: number;
722
+ /**
723
+ * Determines whether a row can be selected.
724
+ * When not set, all rows are considered selectable.
725
+ * @default null
726
+ * @example
727
+ * const grid = new TreeGrid({
728
+ * dataSource: data,
729
+ * columns: [
730
+ * { field: 'TaskID', type: 'number' },
731
+ * { field: 'Status', type: 'string' }
732
+ * ],
733
+ * isRowSelectable: function(data, columns) {
734
+ * // prevent selection for locked rows
735
+ * return data['Status'] !== 'Locked';
736
+ * }
737
+ * });
738
+ */
739
+ isRowSelectable: RowSelectable | string;
722
740
  /**
723
741
  * Configures the selection behavior.
724
742
  *
@@ -1771,6 +1789,7 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1771
1789
  private frozenRightBorderColumns;
1772
1790
  private isFrozenGrid;
1773
1791
  private updateTreeGridModel;
1792
+ private hasPreAndPostMiddleware;
1774
1793
  /**
1775
1794
  * Retrieves the content table element of the TreeGrid.
1776
1795
  *
@@ -2081,6 +2100,7 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
2081
2100
  * @returns {void}
2082
2101
  */
2083
2102
  private removeListener;
2103
+ private partialFilterUpdate;
2084
2104
  /**
2085
2105
  * Filters the TreeGrid rows based on a specified column and filter criteria.
2086
2106
  *
@@ -1058,6 +1058,7 @@ var TreeGrid = /** @class */ (function (_super) {
1058
1058
  this.grid["" + enableHtmlSanitizer] = this.enableHtmlSanitizer;
1059
1059
  this.grid.enableStickyHeader = this.enableStickyHeader;
1060
1060
  this.grid.emptyRecordTemplate = this.emptyRecordTemplate;
1061
+ this.grid.isRowSelectable = this.isRowSelectable;
1061
1062
  var isTreeGrid = 'isTreeGrid';
1062
1063
  this.grid["" + isTreeGrid] = true;
1063
1064
  };
@@ -1444,7 +1445,7 @@ var TreeGrid = /** @class */ (function (_super) {
1444
1445
  }
1445
1446
  else {
1446
1447
  this.grid.dataSource = !(this.dataSource instanceof DataManager) ?
1447
- this.flatData : new DataManager(this.dataSource.dataSource, this.dataSource.defaultQuery, this.dataSource.adaptor);
1448
+ this.flatData : new DataManager(this.dataSource.dataSource, this.dataSource.defaultQuery, this.dataSource.adaptor, this.hasPreAndPostMiddleware(this.dataSource) ? this.dataSource : undefined);
1448
1449
  }
1449
1450
  if (this.dataSource instanceof DataManager && (this.dataSource.dataSource.offline || this.dataSource.ready)) {
1450
1451
  this.grid.dataSource["" + dataSource].json = extendArray(this.dataSource["" + dataSource].json);
@@ -2080,6 +2081,9 @@ var TreeGrid = /** @class */ (function (_super) {
2080
2081
  case 'emptyRecordTemplate':
2081
2082
  this.grid.emptyRecordTemplate = this.emptyRecordTemplate;
2082
2083
  break;
2084
+ case 'isRowSelectable':
2085
+ this.grid.isRowSelectable = this.isRowSelectable;
2086
+ break;
2083
2087
  case 'editSettings':
2084
2088
  if (this.grid.isEdit && this.grid.editSettings.mode === 'Normal' && newProp["" + prop].mode &&
2085
2089
  (newProp["" + prop].mode === 'Cell' || newProp["" + prop].mode === 'Row')) {
@@ -2850,6 +2854,9 @@ var TreeGrid = /** @class */ (function (_super) {
2850
2854
  this.setProperties({ searchSettings: getObject('properties', this.grid.searchSettings) }, true);
2851
2855
  this.setProperties({ sortSettings: getObject('properties', this.grid.sortSettings) }, true);
2852
2856
  };
2857
+ TreeGrid.prototype.hasPreAndPostMiddleware = function (obj) {
2858
+ return (obj && typeof obj.applyPreRequestMiddlewares === 'function' && typeof obj.applyPostRequestMiddlewares === 'function');
2859
+ };
2853
2860
  /**
2854
2861
  * Retrieves the content table element of the TreeGrid.
2855
2862
  *
@@ -3007,7 +3014,7 @@ var TreeGrid = /** @class */ (function (_super) {
3007
3014
  }
3008
3015
  else {
3009
3016
  this.grid.setProperties({
3010
- dataSource: new DataManager(this.dataSource.dataSource, this.dataSource.defaultQuery, this.dataSource.adaptor)
3017
+ dataSource: new DataManager(this.dataSource.dataSource, this.dataSource.defaultQuery, this.dataSource.adaptor, this.hasPreAndPostMiddleware(this.dataSource) ? this.dataSource : undefined)
3011
3018
  }, true);
3012
3019
  }
3013
3020
  }
@@ -4139,6 +4146,7 @@ var TreeGrid = /** @class */ (function (_super) {
4139
4146
  TreeGrid.prototype.addListener = function () {
4140
4147
  this.on('updateResults', this.updateResultModel, this);
4141
4148
  this.grid.on('initial-end', this.afterGridRender, this);
4149
+ this.grid.on('partial-filter-update', this.partialFilterUpdate, this);
4142
4150
  };
4143
4151
  TreeGrid.prototype.updateResultModel = function (returnResult) {
4144
4152
  this.dataResults = returnResult;
@@ -4154,6 +4162,11 @@ var TreeGrid = /** @class */ (function (_super) {
4154
4162
  this.off('updateResults', this.updateResultModel);
4155
4163
  this.grid.off('initial-end', this.afterGridRender);
4156
4164
  this.grid.off('last-rowcell-border-updated', this.lastRowCellBorderUpdated);
4165
+ this.grid.off('partial-filter-update', this.partialFilterUpdate);
4166
+ };
4167
+ TreeGrid.prototype.partialFilterUpdate = function (args) {
4168
+ var gridFiltered = args.gridFiltered;
4169
+ this.notify('updateFilterRecs', { data: gridFiltered });
4157
4170
  };
4158
4171
  /**
4159
4172
  * Filters the TreeGrid rows based on a specified column and filter criteria.
@@ -4776,6 +4789,9 @@ var TreeGrid = /** @class */ (function (_super) {
4776
4789
  __decorate([
4777
4790
  Property(-1)
4778
4791
  ], TreeGrid.prototype, "selectedRowIndex", void 0);
4792
+ __decorate([
4793
+ Property(null)
4794
+ ], TreeGrid.prototype, "isRowSelectable", void 0);
4779
4795
  __decorate([
4780
4796
  Complex({}, SelectionSettings)
4781
4797
  ], TreeGrid.prototype, "selectionSettings", void 0);
@@ -159,6 +159,13 @@ export declare class VirtualTreeContentRenderer extends VirtualContentRenderer {
159
159
  * @returns {Cell<Column>[]} An array of cells for the corresponding columns.
160
160
  */
161
161
  generateCells(): Cell<Column>[];
162
+ /**
163
+ * returns the index of a row in virtualization case
164
+ *
165
+ * @param {number} index - The index of the row.
166
+ * @returns {number} virtual index of that row.
167
+ */
168
+ getVirtualRowIndex(index: number): number;
162
169
  /**
163
170
  * Generates a cell object with provided column and row configurations.
164
171
  *
@@ -389,6 +389,21 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
389
389
  }
390
390
  return cells;
391
391
  };
392
+ /**
393
+ * returns the index of a row in virtualization case
394
+ *
395
+ * @param {number} index - The index of the row.
396
+ * @returns {number} virtual index of that row.
397
+ */
398
+ VirtualTreeContentRenderer.prototype.getVirtualRowIndex = function (index) {
399
+ if (isNullOrUndefined(this.prevInfo)) {
400
+ return index;
401
+ }
402
+ else {
403
+ var startIdx = (this.parent.getRowsObject()[0]).index;
404
+ return startIdx + index;
405
+ }
406
+ };
392
407
  /**
393
408
  * Generates a cell object with provided column and row configurations.
394
409
  *