@syncfusion/ej2-treegrid 20.4.49 → 21.1.35
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/CHANGELOG.md +1 -36
- 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 +45 -18
- package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
- package/dist/es6/ej2-treegrid.es5.js +44 -17
- 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 +10 -10
- package/src/treegrid/actions/batch-edit.js +3 -3
- package/src/treegrid/actions/freeze-column.js +4 -5
- package/src/treegrid/actions/rowdragdrop.js +3 -2
- package/src/treegrid/base/data.js +2 -2
- package/src/treegrid/base/treegrid-model.d.ts +26 -15
- package/src/treegrid/base/treegrid.d.ts +32 -14
- package/src/treegrid/base/treegrid.js +32 -5
- package/src/treegrid/enum.d.ts +79 -138
- package/src/treegrid/models/column.d.ts +5 -3
- package/src/treegrid/models/edit-settings-model.d.ts +13 -9
- package/src/treegrid/models/edit-settings.d.ts +13 -9
- package/src/treegrid/models/filter-settings-model.d.ts +13 -8
- package/src/treegrid/models/filter-settings.d.ts +13 -8
- package/src/treegrid/models/loading-indicator-model.d.ts +4 -2
- package/src/treegrid/models/loading-indicator.d.ts +4 -2
- package/src/treegrid/models/search-settings-model.d.ts +9 -3
- package/src/treegrid/models/search-settings.d.ts +9 -3
- package/src/treegrid/models/selection-settings-model.d.ts +17 -8
- package/src/treegrid/models/selection-settings.d.ts +17 -8
- package/src/treegrid/renderer/render.js +1 -1
- package/styles/bootstrap-dark.css +2 -8
- package/styles/highcontrast-light.css +2 -8
- package/styles/treegrid/_bootstrap5-definition.scss +2 -2
- package/styles/treegrid/_fluent-definition.scss +2 -2
- package/styles/treegrid/_tailwind-definition.scss +2 -2
- package/styles/treegrid/bootstrap-dark.css +2 -8
- package/styles/treegrid/highcontrast-light.css +2 -8
- package/styles/treegrid/_material3-definition.scss +0 -28
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Browser, ChildProperty, Collection, Complex, Component, Event, EventHandler, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, addClass, classList, closest, compile, createElement, debounce, extend, getEnumValue, getValue, isNullOrUndefined, merge, remove, removeClass, select, setStyleAttribute, setValue } from '@syncfusion/ej2-base';
|
|
1
|
+
import { Browser, ChildProperty, Collection, Complex, Component, Event, EventHandler, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, SanitizeHtmlHelper, addClass, classList, closest, compile, createElement, debounce, extend, getEnumValue, getValue, isNullOrUndefined, merge, remove, removeClass, select, setStyleAttribute, setValue } from '@syncfusion/ej2-base';
|
|
2
2
|
import { Aggregate, Cell, CellRenderer, CellType, Clipboard, ColumnChooser, ColumnFreezeContentRenderer, ColumnFreezeHeaderRenderer, ColumnMenu, ColumnVirtualFreezeRenderer, CommandColumn, ContextMenu, DetailRow, Edit, ExcelExport, Filter, Freeze, FreezeContentRender, FreezeRender, FreezeRowModelGenerator, Grid, InfiniteScroll, InterSectionObserver, Logger, Page, PdfExport, Print, RenderType, Reorder, Resize, RowDD, RowDropSettings, RowRenderer, Scroll, Sort, Toolbar, VirtualContentRenderer, VirtualFreezeHdrRenderer, VirtualFreezeRenderer, VirtualHeaderRenderer, VirtualRowModelGenerator, VirtualScroll, appendChildren, calculateAggregate, detailLists, extend as extend$1, getActualProperties, getObject, getUid, iterateArrayOrObject, parentsUntil, resetRowIndex, setDebounce, templateCompiler } from '@syncfusion/ej2-grids';
|
|
3
3
|
import { createCheckBox } from '@syncfusion/ej2-buttons';
|
|
4
4
|
import { CacheAdaptor, DataManager, DataUtil, Deferred, JsonAdaptor, ODataAdaptor, Predicate, Query, RemoteSaveAdaptor, UrlAdaptor, WebApiAdaptor, WebMethodAdaptor } from '@syncfusion/ej2-data';
|
|
@@ -1601,7 +1601,7 @@ class Render {
|
|
|
1601
1601
|
addClass([expandIcon], (expand) ? 'e-treegridexpand' : 'e-treegridcollapse');
|
|
1602
1602
|
totalIconsWidth += 18;
|
|
1603
1603
|
container.appendChild(expandIcon);
|
|
1604
|
-
emptyExpandIcon.style.width = '
|
|
1604
|
+
emptyExpandIcon.style.width = '4px';
|
|
1605
1605
|
totalIconsWidth += 7;
|
|
1606
1606
|
container.appendChild(emptyExpandIcon.cloneNode());
|
|
1607
1607
|
}
|
|
@@ -2120,13 +2120,13 @@ class DataManipulation {
|
|
|
2120
2120
|
if (this.parent.enableVirtualization && rowDetails.action === 'remoteExpand') {
|
|
2121
2121
|
qry.take(this.parent.pageSettings.pageSize);
|
|
2122
2122
|
const expandDetail = [];
|
|
2123
|
-
expandDetail.push('ExpandingAction', rowDetails.record[this.parent.idMapping]);
|
|
2123
|
+
expandDetail.push('ExpandingAction', parseInt(rowDetails.record[this.parent.idMapping], 10).toString());
|
|
2124
2124
|
qry.expand(expandDetail);
|
|
2125
2125
|
}
|
|
2126
2126
|
else if (this.parent.enableVirtualization && rowDetails.action === 'collapse') {
|
|
2127
2127
|
qry.take(this.parent.grid.pageSettings.pageSize);
|
|
2128
2128
|
const expandDetail = [];
|
|
2129
|
-
expandDetail.push('CollapsingAction', rowDetails.record[this.parent.idMapping]);
|
|
2129
|
+
expandDetail.push('CollapsingAction', parseInt(rowDetails.record[this.parent.idMapping], 10).toString());
|
|
2130
2130
|
qry.expand(expandDetail);
|
|
2131
2131
|
}
|
|
2132
2132
|
qry.where(this.parent.parentIdMapping, 'equal', rowDetails.record[this.parent.idMapping]);
|
|
@@ -3800,6 +3800,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
3800
3800
|
}
|
|
3801
3801
|
if (this.isVue) {
|
|
3802
3802
|
this.grid.isVue = true;
|
|
3803
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3804
|
+
this.grid.vueInstance = this.vueInstance;
|
|
3803
3805
|
}
|
|
3804
3806
|
createSpinner({ target: this.element }, this.createElement);
|
|
3805
3807
|
this.log(['mapping_fields_missing']);
|
|
@@ -3963,6 +3965,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
3963
3965
|
this.grid[`${templateInstance}`] = this[`${templateInstance}`];
|
|
3964
3966
|
const isJsComponent = 'isJsComponent';
|
|
3965
3967
|
this.grid[`${isJsComponent}`] = true;
|
|
3968
|
+
const enableHtmlSanitizer = 'enableHtmlSanitizer';
|
|
3969
|
+
this.grid[`${enableHtmlSanitizer}`] = this.enableHtmlSanitizer;
|
|
3966
3970
|
}
|
|
3967
3971
|
triggerEvents(args) {
|
|
3968
3972
|
this.trigger(getObject('name', args), args);
|
|
@@ -5453,15 +5457,21 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
5453
5457
|
if (this.grid.columns.length !== this.columnModel.length) {
|
|
5454
5458
|
this.stackedHeader = true;
|
|
5455
5459
|
}
|
|
5456
|
-
if (this.stackedHeader && this.
|
|
5460
|
+
if (this.stackedHeader && this.allowResizing) {
|
|
5457
5461
|
for (let i = 0; i < this.columns.length; i++) {
|
|
5458
5462
|
if (!isNullOrUndefined(this.columns[parseInt(i.toString(), 10)].columns)) {
|
|
5459
5463
|
for (let j = 0; j < this.columns[parseInt(i.toString(), 10)].columns.length; j++) {
|
|
5460
|
-
const stackedColumn = this.columns[parseInt(i.toString(), 10)]
|
|
5464
|
+
const stackedColumn = this.columns[parseInt(i.toString(), 10)]
|
|
5465
|
+
.columns[parseInt(j.toString(), 10)];
|
|
5461
5466
|
const currentColumn = this.grid.getColumnByField(stackedColumn.field);
|
|
5462
5467
|
stackedColumn.width = currentColumn.width;
|
|
5463
5468
|
}
|
|
5464
5469
|
}
|
|
5470
|
+
else if (!isNullOrUndefined(this.columns[parseInt(i.toString(), 10)].field)) {
|
|
5471
|
+
const fieldName = this.columns[parseInt(i.toString(), 10)].field;
|
|
5472
|
+
const currentColumn = this.grid.getColumnByField(fieldName);
|
|
5473
|
+
this.columns[parseInt(i.toString(), 10)].width = currentColumn.width;
|
|
5474
|
+
}
|
|
5465
5475
|
}
|
|
5466
5476
|
}
|
|
5467
5477
|
if (!this.stackedHeader) {
|
|
@@ -6369,8 +6379,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
6369
6379
|
}
|
|
6370
6380
|
}
|
|
6371
6381
|
for (let i = 0; i < detailrows.length; i++) {
|
|
6372
|
-
if (!isNullOrUndefined(detailrows[parseInt(i.toString(), 10)]) && !this.allowPaging && !(this.enableVirtualization
|
|
6373
|
-
|
|
6382
|
+
if (!isNullOrUndefined(detailrows[parseInt(i.toString(), 10)]) && !this.allowPaging && !(this.enableVirtualization ||
|
|
6383
|
+
this.enableInfiniteScrolling || isRemoteData(this) || isCountRequired(this))) {
|
|
6374
6384
|
gridRowsObject[detailrows[parseInt(i.toString(), 10)].rowIndex].visible = displayAction !== 'none' ? true : false;
|
|
6375
6385
|
detailrows[parseInt(i.toString(), 10)].style.display = displayAction;
|
|
6376
6386
|
}
|
|
@@ -6467,6 +6477,20 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
6467
6477
|
}
|
|
6468
6478
|
}
|
|
6469
6479
|
}
|
|
6480
|
+
/**
|
|
6481
|
+
* Method to sanitize html element
|
|
6482
|
+
*
|
|
6483
|
+
* @param {any} value - Specifies the html value to sanitize
|
|
6484
|
+
* @returns {any} Returns the sanitized html value
|
|
6485
|
+
* @hidden
|
|
6486
|
+
*/
|
|
6487
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6488
|
+
sanitize(value) {
|
|
6489
|
+
if (this.enableHtmlSanitizer && typeof (value) === 'string') {
|
|
6490
|
+
return SanitizeHtmlHelper.sanitize(value);
|
|
6491
|
+
}
|
|
6492
|
+
return value;
|
|
6493
|
+
}
|
|
6470
6494
|
/**
|
|
6471
6495
|
* Updates the rows and cells
|
|
6472
6496
|
*
|
|
@@ -7038,6 +7062,9 @@ __decorate([
|
|
|
7038
7062
|
__decorate([
|
|
7039
7063
|
Property(false)
|
|
7040
7064
|
], TreeGrid.prototype, "enableColumnVirtualization", void 0);
|
|
7065
|
+
__decorate([
|
|
7066
|
+
Property(false)
|
|
7067
|
+
], TreeGrid.prototype, "enableHtmlSanitizer", void 0);
|
|
7041
7068
|
__decorate([
|
|
7042
7069
|
Property(false)
|
|
7043
7070
|
], TreeGrid.prototype, "enableInfiniteScrolling", void 0);
|
|
@@ -7953,6 +7980,7 @@ class RowDD$1 {
|
|
|
7953
7980
|
addErrorElem() {
|
|
7954
7981
|
const dragelem = document.getElementsByClassName('e-cloneproperties')[0];
|
|
7955
7982
|
const errorelem = dragelem.querySelectorAll('.e-errorelem').length;
|
|
7983
|
+
const sanitize = 'sanitize';
|
|
7956
7984
|
if (!errorelem && !this.parent.rowDropSettings.targetID) {
|
|
7957
7985
|
const ele = document.createElement('div');
|
|
7958
7986
|
classList(ele, ['e-errorcontainer'], []);
|
|
@@ -7960,14 +7988,14 @@ class RowDD$1 {
|
|
|
7960
7988
|
const errorVal = dragelem.querySelector('.errorValue');
|
|
7961
7989
|
let content$$1 = dragelem.querySelector('.e-rowcell').innerHTML;
|
|
7962
7990
|
if (errorVal) {
|
|
7963
|
-
content$$1 = errorVal.innerHTML;
|
|
7991
|
+
content$$1 = this.parent[`${sanitize}`](errorVal.innerHTML);
|
|
7964
7992
|
errorVal.parentNode.removeChild(errorVal);
|
|
7965
7993
|
}
|
|
7966
7994
|
dragelem.querySelector('.e-rowcell').innerHTML = '';
|
|
7967
7995
|
const spanContent = document.createElement('span');
|
|
7968
7996
|
spanContent.className = 'errorValue';
|
|
7969
7997
|
spanContent.style.paddingLeft = '16px';
|
|
7970
|
-
spanContent.innerHTML = content$$1;
|
|
7998
|
+
spanContent.innerHTML = this.parent[`${sanitize}`](content$$1);
|
|
7971
7999
|
dragelem.querySelector('.e-rowcell').appendChild(ele);
|
|
7972
8000
|
dragelem.querySelector('.e-rowcell').appendChild(spanContent);
|
|
7973
8001
|
const dropItemSpan = document.querySelector('.e-dropitemscount');
|
|
@@ -10424,7 +10452,7 @@ class BatchEdit {
|
|
|
10424
10452
|
this.batchAddedRecords = this.batchRecords = this.batchAddRowRecord = this.batchDeletedRecords = this.currentViewRecords = [];
|
|
10425
10453
|
}
|
|
10426
10454
|
cellSaved(args) {
|
|
10427
|
-
let actualCellIndex = args.
|
|
10455
|
+
let actualCellIndex = args.column.index;
|
|
10428
10456
|
const frozenCols = this.parent.frozenColumns || this.parent.getFrozenColumns();
|
|
10429
10457
|
if (frozenCols && args.columnObject.index > frozenCols) {
|
|
10430
10458
|
actualCellIndex = actualCellIndex + frozenCols;
|
|
@@ -10435,13 +10463,13 @@ class BatchEdit {
|
|
|
10435
10463
|
const colCount = this.parent.getFrozenLeftColumnsCount() + actualCellIndex;
|
|
10436
10464
|
if (colCount === this.parent.treeColumnIndex) {
|
|
10437
10465
|
this.parent.renderModule.cellRender({ data: args.rowData, cell: args.cell,
|
|
10438
|
-
column: this.parent.grid.getColumnByIndex(args.
|
|
10466
|
+
column: this.parent.grid.getColumnByIndex(args.column.index)
|
|
10439
10467
|
});
|
|
10440
10468
|
}
|
|
10441
10469
|
}
|
|
10442
10470
|
else if (actualCellIndex === this.parent.treeColumnIndex) {
|
|
10443
10471
|
this.parent.renderModule.cellRender({ data: args.rowData, cell: args.cell,
|
|
10444
|
-
column: this.parent.grid.getColumnByIndex(args.
|
|
10472
|
+
column: this.parent.grid.getColumnByIndex(args.column.index)
|
|
10445
10473
|
});
|
|
10446
10474
|
}
|
|
10447
10475
|
if (this.isAdd && this.parent.editSettings.mode === 'Batch' && this.parent.editSettings.newRowPosition !== 'Bottom') {
|
|
@@ -13183,10 +13211,6 @@ class Freeze$1 {
|
|
|
13183
13211
|
getValue('addRenderer', renderer)
|
|
13184
13212
|
.apply(renderer, [RenderType.Content, new VirtualTreeFreezeRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
|
|
13185
13213
|
}
|
|
13186
|
-
else {
|
|
13187
|
-
getValue('addRenderer', renderer)
|
|
13188
|
-
.apply(renderer, [RenderType.Content, new FreezeContentRender(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
|
|
13189
|
-
}
|
|
13190
13214
|
}
|
|
13191
13215
|
if (this.parent.getFrozenLeftColumnsCount() || this.parent.getFrozenRightColumnsCount()) {
|
|
13192
13216
|
getValue('addRenderer', renderer)
|
|
@@ -13218,12 +13242,15 @@ class Freeze$1 {
|
|
|
13218
13242
|
rows = args.detailrows;
|
|
13219
13243
|
}
|
|
13220
13244
|
for (let i = 0; i < rows.length; i++) {
|
|
13221
|
-
|
|
13245
|
+
const row = rows[parseInt(i.toString(), 10)];
|
|
13222
13246
|
const rData = this.parent.grid.getRowObjectFromUID(row.getAttribute('data-Uid')).data;
|
|
13223
13247
|
if (!isNullOrUndefined(movableRows) && row.parentElement.firstElementChild.clientHeight > 0) {
|
|
13224
13248
|
row.style.height = row.parentElement.firstElementChild.clientHeight + 'px';
|
|
13225
13249
|
}
|
|
13226
13250
|
row.style.display = args.action;
|
|
13251
|
+
if (freeze && frozenRightRows.length) {
|
|
13252
|
+
frozenRightRows[parseInt(i.toString(), 10)].style.display = args.action;
|
|
13253
|
+
}
|
|
13227
13254
|
const queryselector = args.action === 'none' ? '.e-treecolumn-container .e-treegridcollapse'
|
|
13228
13255
|
: '.e-treecolumn-container .e-treegridexpand';
|
|
13229
13256
|
if (frozenrows[row.rowIndex].querySelector(queryselector)) {
|