@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.
- package/dist/ej2-treegrid.min.js +2 -2
- package/dist/ej2-treegrid.umd.min.js +2 -2
- package/dist/ej2-treegrid.umd.min.js.map +1 -1
- package/dist/es6/ej2-treegrid.es2015.js +37 -4
- package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
- package/dist/es6/ej2-treegrid.es5.js +37 -4
- package/dist/es6/ej2-treegrid.es5.js.map +1 -1
- package/dist/global/ej2-treegrid.min.js +2 -2
- package/dist/global/ej2-treegrid.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +5 -5
- package/src/treegrid/actions/virtual-scroll.js +4 -2
- package/src/treegrid/base/treegrid-model.d.ts +20 -1
- package/src/treegrid/base/treegrid.d.ts +21 -1
- package/src/treegrid/base/treegrid.js +18 -2
- package/src/treegrid/renderer/virtual-tree-content-render.d.ts +7 -0
- package/src/treegrid/renderer/virtual-tree-content-render.js +15 -0
package/dist/global/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version : 31.2.
|
|
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.
|
|
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.
|
|
12
|
-
"@syncfusion/ej2-data": "~31.2.
|
|
13
|
-
"@syncfusion/ej2-grids": "~31.2.
|
|
14
|
-
"@syncfusion/ej2-popups": "~31.2.
|
|
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
|
*
|