@syncfusion/ej2-treegrid 20.4.54 → 21.1.37
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 +2 -45
- 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 +43 -15
- package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
- package/dist/es6/ej2-treegrid.es5.js +42 -14
- 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/freeze-column.js +3 -0
- package/src/treegrid/actions/rowdragdrop.js +8 -6
- package/src/treegrid/base/treegrid-model.d.ts +27 -16
- package/src/treegrid/base/treegrid.d.ts +33 -15
- package/src/treegrid/base/treegrid.js +29 -6
- package/src/treegrid/enum.d.ts +79 -138
- package/src/treegrid/models/column.d.ts +10 -8
- 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/page-settings-model.d.ts +1 -1
- package/src/treegrid/models/page-settings.d.ts +1 -1
- 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/models/summary-model.d.ts +2 -2
- package/src/treegrid/models/summary.d.ts +2 -2
- package/src/treegrid/renderer/render.js +2 -2
- 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
|
}
|
|
@@ -1728,7 +1728,7 @@ class Render {
|
|
|
1728
1728
|
}
|
|
1729
1729
|
else {
|
|
1730
1730
|
const str = 'isStringTemplate';
|
|
1731
|
-
const result = args.column[`${templateFn}`](extend$1({ 'index': '' }, args.data), this.parent, 'template', tempID, this.parent[`${str}`]
|
|
1731
|
+
const result = args.column[`${templateFn}`](extend$1({ 'index': '' }, args.data), this.parent, 'template', tempID, this.parent[`${str}`]);
|
|
1732
1732
|
appendChildren(cellElement, result);
|
|
1733
1733
|
}
|
|
1734
1734
|
delete args.column.template;
|
|
@@ -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);
|
|
@@ -3970,7 +3974,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
3970
3974
|
IsExpandCollapseClicked(args) {
|
|
3971
3975
|
if (!isNullOrUndefined(args.target) && (args.target.classList.contains('e-treegridexpand')
|
|
3972
3976
|
|| args.target.classList.contains('e-treegridcollapse') || args.target.classList.contains('e-summarycell'))
|
|
3973
|
-
&& (!isNullOrUndefined(args.data) && args.data['hasChildRecords'])) {
|
|
3977
|
+
&& (!isNullOrUndefined(args.data) && args.data['hasChildRecords']) && !this.selectionSettings.checkboxOnly) {
|
|
3974
3978
|
args.cancel = true;
|
|
3975
3979
|
return;
|
|
3976
3980
|
}
|
|
@@ -5457,13 +5461,15 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
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
|
}
|
|
5465
5470
|
else if (!isNullOrUndefined(this.columns[parseInt(i.toString(), 10)].field)) {
|
|
5466
|
-
const
|
|
5471
|
+
const fieldName = this.columns[parseInt(i.toString(), 10)].field;
|
|
5472
|
+
const currentColumn = this.grid.getColumnByField(fieldName);
|
|
5467
5473
|
this.columns[parseInt(i.toString(), 10)].width = currentColumn.width;
|
|
5468
5474
|
}
|
|
5469
5475
|
}
|
|
@@ -6373,8 +6379,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
6373
6379
|
}
|
|
6374
6380
|
}
|
|
6375
6381
|
for (let i = 0; i < detailrows.length; i++) {
|
|
6376
|
-
if (!isNullOrUndefined(detailrows[parseInt(i.toString(), 10)]) && !this.allowPaging && !(this.enableVirtualization
|
|
6377
|
-
|
|
6382
|
+
if (!isNullOrUndefined(detailrows[parseInt(i.toString(), 10)]) && !this.allowPaging && !(this.enableVirtualization ||
|
|
6383
|
+
this.enableInfiniteScrolling || isRemoteData(this) || isCountRequired(this))) {
|
|
6378
6384
|
gridRowsObject[detailrows[parseInt(i.toString(), 10)].rowIndex].visible = displayAction !== 'none' ? true : false;
|
|
6379
6385
|
detailrows[parseInt(i.toString(), 10)].style.display = displayAction;
|
|
6380
6386
|
}
|
|
@@ -6471,6 +6477,20 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
6471
6477
|
}
|
|
6472
6478
|
}
|
|
6473
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
|
+
}
|
|
6474
6494
|
/**
|
|
6475
6495
|
* Updates the rows and cells
|
|
6476
6496
|
*
|
|
@@ -7042,6 +7062,9 @@ __decorate([
|
|
|
7042
7062
|
__decorate([
|
|
7043
7063
|
Property(false)
|
|
7044
7064
|
], TreeGrid.prototype, "enableColumnVirtualization", void 0);
|
|
7065
|
+
__decorate([
|
|
7066
|
+
Property(false)
|
|
7067
|
+
], TreeGrid.prototype, "enableHtmlSanitizer", void 0);
|
|
7045
7068
|
__decorate([
|
|
7046
7069
|
Property(false)
|
|
7047
7070
|
], TreeGrid.prototype, "enableInfiniteScrolling", void 0);
|
|
@@ -7957,6 +7980,7 @@ class RowDD$1 {
|
|
|
7957
7980
|
addErrorElem() {
|
|
7958
7981
|
const dragelem = document.getElementsByClassName('e-cloneproperties')[0];
|
|
7959
7982
|
const errorelem = dragelem.querySelectorAll('.e-errorelem').length;
|
|
7983
|
+
const sanitize = 'sanitize';
|
|
7960
7984
|
if (!errorelem && !this.parent.rowDropSettings.targetID) {
|
|
7961
7985
|
const ele = document.createElement('div');
|
|
7962
7986
|
classList(ele, ['e-errorcontainer'], []);
|
|
@@ -7964,14 +7988,14 @@ class RowDD$1 {
|
|
|
7964
7988
|
const errorVal = dragelem.querySelector('.errorValue');
|
|
7965
7989
|
let content$$1 = dragelem.querySelector('.e-rowcell').innerHTML;
|
|
7966
7990
|
if (errorVal) {
|
|
7967
|
-
content$$1 = errorVal.innerHTML;
|
|
7991
|
+
content$$1 = this.parent[`${sanitize}`](errorVal.innerHTML);
|
|
7968
7992
|
errorVal.parentNode.removeChild(errorVal);
|
|
7969
7993
|
}
|
|
7970
7994
|
dragelem.querySelector('.e-rowcell').innerHTML = '';
|
|
7971
7995
|
const spanContent = document.createElement('span');
|
|
7972
7996
|
spanContent.className = 'errorValue';
|
|
7973
7997
|
spanContent.style.paddingLeft = '16px';
|
|
7974
|
-
spanContent.innerHTML = content$$1;
|
|
7998
|
+
spanContent.innerHTML = this.parent[`${sanitize}`](content$$1);
|
|
7975
7999
|
dragelem.querySelector('.e-rowcell').appendChild(ele);
|
|
7976
8000
|
dragelem.querySelector('.e-rowcell').appendChild(spanContent);
|
|
7977
8001
|
const dropItemSpan = document.querySelector('.e-dropitemscount');
|
|
@@ -8362,13 +8386,14 @@ class RowDD$1 {
|
|
|
8362
8386
|
const childRecords = rec[0].childRecords;
|
|
8363
8387
|
const droppedRecordIndex = childRecords.indexOf(droppedRecord) + 1;
|
|
8364
8388
|
childRecords.splice(droppedRecordIndex, 0, draggedRecord);
|
|
8365
|
-
|
|
8389
|
+
if (this.parent.enableImmutableMode || this.parent['isIndentEnabled'] && !this.parent.parentIdMapping) {
|
|
8390
|
+
draggedRecord.parentItem = droppedRecord.parentItem;
|
|
8391
|
+
draggedRecord.level = droppedRecord.level;
|
|
8392
|
+
}
|
|
8366
8393
|
draggedRecord.parentUniqueID = droppedRecord.parentUniqueID;
|
|
8367
|
-
draggedRecord.level = droppedRecord.level;
|
|
8368
8394
|
if (this.parent.parentIdMapping) {
|
|
8369
8395
|
draggedRecord[this.parent.parentIdMapping] = droppedRecord[this.parent.parentIdMapping];
|
|
8370
|
-
draggedRecord.
|
|
8371
|
-
draggedRecord.level = droppedRecord.level;
|
|
8396
|
+
draggedRecord.parentUniqueID = droppedRecord.parentUniqueID;
|
|
8372
8397
|
}
|
|
8373
8398
|
}
|
|
8374
8399
|
if (draggedRecord.hasChildRecords) {
|
|
@@ -13218,12 +13243,15 @@ class Freeze$1 {
|
|
|
13218
13243
|
rows = args.detailrows;
|
|
13219
13244
|
}
|
|
13220
13245
|
for (let i = 0; i < rows.length; i++) {
|
|
13221
|
-
|
|
13246
|
+
const row = rows[parseInt(i.toString(), 10)];
|
|
13222
13247
|
const rData = this.parent.grid.getRowObjectFromUID(row.getAttribute('data-Uid')).data;
|
|
13223
13248
|
if (!isNullOrUndefined(movableRows) && row.parentElement.firstElementChild.clientHeight > 0) {
|
|
13224
13249
|
row.style.height = row.parentElement.firstElementChild.clientHeight + 'px';
|
|
13225
13250
|
}
|
|
13226
13251
|
row.style.display = args.action;
|
|
13252
|
+
if (freeze && frozenRightRows.length) {
|
|
13253
|
+
frozenRightRows[parseInt(i.toString(), 10)].style.display = args.action;
|
|
13254
|
+
}
|
|
13227
13255
|
const queryselector = args.action === 'none' ? '.e-treecolumn-container .e-treegridcollapse'
|
|
13228
13256
|
: '.e-treecolumn-container .e-treegridexpand';
|
|
13229
13257
|
if (frozenrows[row.rowIndex].querySelector(queryselector)) {
|