@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.
Files changed (42) hide show
  1. package/CHANGELOG.md +2 -45
  2. package/dist/ej2-treegrid.min.js +2 -2
  3. package/dist/ej2-treegrid.umd.min.js +2 -2
  4. package/dist/ej2-treegrid.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-treegrid.es2015.js +43 -15
  6. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  7. package/dist/es6/ej2-treegrid.es5.js +42 -14
  8. package/dist/es6/ej2-treegrid.es5.js.map +1 -1
  9. package/dist/global/ej2-treegrid.min.js +2 -2
  10. package/dist/global/ej2-treegrid.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +10 -10
  13. package/src/treegrid/actions/freeze-column.js +3 -0
  14. package/src/treegrid/actions/rowdragdrop.js +8 -6
  15. package/src/treegrid/base/treegrid-model.d.ts +27 -16
  16. package/src/treegrid/base/treegrid.d.ts +33 -15
  17. package/src/treegrid/base/treegrid.js +29 -6
  18. package/src/treegrid/enum.d.ts +79 -138
  19. package/src/treegrid/models/column.d.ts +10 -8
  20. package/src/treegrid/models/edit-settings-model.d.ts +13 -9
  21. package/src/treegrid/models/edit-settings.d.ts +13 -9
  22. package/src/treegrid/models/filter-settings-model.d.ts +13 -8
  23. package/src/treegrid/models/filter-settings.d.ts +13 -8
  24. package/src/treegrid/models/loading-indicator-model.d.ts +4 -2
  25. package/src/treegrid/models/loading-indicator.d.ts +4 -2
  26. package/src/treegrid/models/page-settings-model.d.ts +1 -1
  27. package/src/treegrid/models/page-settings.d.ts +1 -1
  28. package/src/treegrid/models/search-settings-model.d.ts +9 -3
  29. package/src/treegrid/models/search-settings.d.ts +9 -3
  30. package/src/treegrid/models/selection-settings-model.d.ts +17 -8
  31. package/src/treegrid/models/selection-settings.d.ts +17 -8
  32. package/src/treegrid/models/summary-model.d.ts +2 -2
  33. package/src/treegrid/models/summary.d.ts +2 -2
  34. package/src/treegrid/renderer/render.js +2 -2
  35. package/styles/bootstrap-dark.css +2 -8
  36. package/styles/highcontrast-light.css +2 -8
  37. package/styles/treegrid/_bootstrap5-definition.scss +2 -2
  38. package/styles/treegrid/_fluent-definition.scss +2 -2
  39. package/styles/treegrid/_tailwind-definition.scss +2 -2
  40. package/styles/treegrid/bootstrap-dark.css +2 -8
  41. package/styles/treegrid/highcontrast-light.css +2 -8
  42. 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 = '7px';
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}`], undefined, undefined, this.parent['root']);
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)].columns[parseInt(j.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 currentColumn = this.grid.getColumnByField(this.columns[parseInt(i.toString(), 10)].field);
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
- || this.enableInfiniteScrolling || isRemoteData(this) || isCountRequired(this))) {
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
- draggedRecord.parentItem = droppedRecord.parentItem;
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.parentItem = droppedRecord.parentItem;
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
- let row = rows[parseInt(i.toString(), 10)];
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)) {