@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.
Files changed (40) hide show
  1. package/CHANGELOG.md +1 -36
  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 +45 -18
  6. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  7. package/dist/es6/ej2-treegrid.es5.js +44 -17
  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/batch-edit.js +3 -3
  14. package/src/treegrid/actions/freeze-column.js +4 -5
  15. package/src/treegrid/actions/rowdragdrop.js +3 -2
  16. package/src/treegrid/base/data.js +2 -2
  17. package/src/treegrid/base/treegrid-model.d.ts +26 -15
  18. package/src/treegrid/base/treegrid.d.ts +32 -14
  19. package/src/treegrid/base/treegrid.js +32 -5
  20. package/src/treegrid/enum.d.ts +79 -138
  21. package/src/treegrid/models/column.d.ts +5 -3
  22. package/src/treegrid/models/edit-settings-model.d.ts +13 -9
  23. package/src/treegrid/models/edit-settings.d.ts +13 -9
  24. package/src/treegrid/models/filter-settings-model.d.ts +13 -8
  25. package/src/treegrid/models/filter-settings.d.ts +13 -8
  26. package/src/treegrid/models/loading-indicator-model.d.ts +4 -2
  27. package/src/treegrid/models/loading-indicator.d.ts +4 -2
  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/renderer/render.js +1 -1
  33. package/styles/bootstrap-dark.css +2 -8
  34. package/styles/highcontrast-light.css +2 -8
  35. package/styles/treegrid/_bootstrap5-definition.scss +2 -2
  36. package/styles/treegrid/_fluent-definition.scss +2 -2
  37. package/styles/treegrid/_tailwind-definition.scss +2 -2
  38. package/styles/treegrid/bootstrap-dark.css +2 -8
  39. package/styles/treegrid/highcontrast-light.css +2 -8
  40. 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';
@@ -1735,7 +1735,7 @@ var Render = /** @__PURE__ @class */ (function () {
1735
1735
  addClass([expandIcon], (expand) ? 'e-treegridexpand' : 'e-treegridcollapse');
1736
1736
  totalIconsWidth += 18;
1737
1737
  container.appendChild(expandIcon);
1738
- emptyExpandIcon.style.width = '7px';
1738
+ emptyExpandIcon.style.width = '4px';
1739
1739
  totalIconsWidth += 7;
1740
1740
  container.appendChild(emptyExpandIcon.cloneNode());
1741
1741
  }
@@ -2264,13 +2264,13 @@ var DataManipulation = /** @__PURE__ @class */ (function () {
2264
2264
  if (this.parent.enableVirtualization && rowDetails.action === 'remoteExpand') {
2265
2265
  qry.take(this.parent.pageSettings.pageSize);
2266
2266
  var expandDetail = [];
2267
- expandDetail.push('ExpandingAction', rowDetails.record[this.parent.idMapping]);
2267
+ expandDetail.push('ExpandingAction', parseInt(rowDetails.record[this.parent.idMapping], 10).toString());
2268
2268
  qry.expand(expandDetail);
2269
2269
  }
2270
2270
  else if (this.parent.enableVirtualization && rowDetails.action === 'collapse') {
2271
2271
  qry.take(this.parent.grid.pageSettings.pageSize);
2272
2272
  var expandDetail = [];
2273
- expandDetail.push('CollapsingAction', rowDetails.record[this.parent.idMapping]);
2273
+ expandDetail.push('CollapsingAction', parseInt(rowDetails.record[this.parent.idMapping], 10).toString());
2274
2274
  qry.expand(expandDetail);
2275
2275
  }
2276
2276
  qry.where(this.parent.parentIdMapping, 'equal', rowDetails.record[this.parent.idMapping]);
@@ -4068,6 +4068,8 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
4068
4068
  }
4069
4069
  if (this.isVue) {
4070
4070
  this.grid.isVue = true;
4071
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4072
+ this.grid.vueInstance = this.vueInstance;
4071
4073
  }
4072
4074
  createSpinner({ target: this.element }, this.createElement);
4073
4075
  this.log(['mapping_fields_missing']);
@@ -4232,6 +4234,8 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
4232
4234
  this.grid["" + templateInstance] = this["" + templateInstance];
4233
4235
  var isJsComponent = 'isJsComponent';
4234
4236
  this.grid["" + isJsComponent] = true;
4237
+ var enableHtmlSanitizer = 'enableHtmlSanitizer';
4238
+ this.grid["" + enableHtmlSanitizer] = this.enableHtmlSanitizer;
4235
4239
  };
4236
4240
  TreeGrid.prototype.triggerEvents = function (args) {
4237
4241
  this.trigger(getObject('name', args), args);
@@ -5734,15 +5738,21 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
5734
5738
  if (this.grid.columns.length !== this.columnModel.length) {
5735
5739
  this.stackedHeader = true;
5736
5740
  }
5737
- if (this.stackedHeader && this.enablePersistence && this.allowResizing) {
5741
+ if (this.stackedHeader && this.allowResizing) {
5738
5742
  for (var i = 0; i < this.columns.length; i++) {
5739
5743
  if (!isNullOrUndefined(this.columns[parseInt(i.toString(), 10)].columns)) {
5740
5744
  for (var j = 0; j < this.columns[parseInt(i.toString(), 10)].columns.length; j++) {
5741
- var stackedColumn = this.columns[parseInt(i.toString(), 10)].columns[parseInt(j.toString(), 10)];
5745
+ var stackedColumn = this.columns[parseInt(i.toString(), 10)]
5746
+ .columns[parseInt(j.toString(), 10)];
5742
5747
  var currentColumn = this.grid.getColumnByField(stackedColumn.field);
5743
5748
  stackedColumn.width = currentColumn.width;
5744
5749
  }
5745
5750
  }
5751
+ else if (!isNullOrUndefined(this.columns[parseInt(i.toString(), 10)].field)) {
5752
+ var fieldName = this.columns[parseInt(i.toString(), 10)].field;
5753
+ var currentColumn = this.grid.getColumnByField(fieldName);
5754
+ this.columns[parseInt(i.toString(), 10)].width = currentColumn.width;
5755
+ }
5746
5756
  }
5747
5757
  }
5748
5758
  if (!this.stackedHeader) {
@@ -6673,8 +6683,8 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
6673
6683
  }
6674
6684
  }
6675
6685
  for (var i = 0; i < detailrows.length; i++) {
6676
- if (!isNullOrUndefined(detailrows[parseInt(i.toString(), 10)]) && !this.allowPaging && !(this.enableVirtualization
6677
- || this.enableInfiniteScrolling || isRemoteData(this) || isCountRequired(this))) {
6686
+ if (!isNullOrUndefined(detailrows[parseInt(i.toString(), 10)]) && !this.allowPaging && !(this.enableVirtualization ||
6687
+ this.enableInfiniteScrolling || isRemoteData(this) || isCountRequired(this))) {
6678
6688
  gridRowsObject[detailrows[parseInt(i.toString(), 10)].rowIndex].visible = displayAction !== 'none' ? true : false;
6679
6689
  detailrows[parseInt(i.toString(), 10)].style.display = displayAction;
6680
6690
  }
@@ -6775,6 +6785,20 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
6775
6785
  }
6776
6786
  }
6777
6787
  };
6788
+ /**
6789
+ * Method to sanitize html element
6790
+ *
6791
+ * @param {any} value - Specifies the html value to sanitize
6792
+ * @returns {any} Returns the sanitized html value
6793
+ * @hidden
6794
+ */
6795
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6796
+ TreeGrid.prototype.sanitize = function (value) {
6797
+ if (this.enableHtmlSanitizer && typeof (value) === 'string') {
6798
+ return SanitizeHtmlHelper.sanitize(value);
6799
+ }
6800
+ return value;
6801
+ };
6778
6802
  /**
6779
6803
  * Updates the rows and cells
6780
6804
  *
@@ -7346,6 +7370,9 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
7346
7370
  __decorate([
7347
7371
  Property(false)
7348
7372
  ], TreeGrid.prototype, "enableColumnVirtualization", void 0);
7373
+ __decorate([
7374
+ Property(false)
7375
+ ], TreeGrid.prototype, "enableHtmlSanitizer", void 0);
7349
7376
  __decorate([
7350
7377
  Property(false)
7351
7378
  ], TreeGrid.prototype, "enableInfiniteScrolling", void 0);
@@ -8266,6 +8293,7 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
8266
8293
  RowDD$$1.prototype.addErrorElem = function () {
8267
8294
  var dragelem = document.getElementsByClassName('e-cloneproperties')[0];
8268
8295
  var errorelem = dragelem.querySelectorAll('.e-errorelem').length;
8296
+ var sanitize = 'sanitize';
8269
8297
  if (!errorelem && !this.parent.rowDropSettings.targetID) {
8270
8298
  var ele = document.createElement('div');
8271
8299
  classList(ele, ['e-errorcontainer'], []);
@@ -8273,14 +8301,14 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
8273
8301
  var errorVal = dragelem.querySelector('.errorValue');
8274
8302
  var content$$1 = dragelem.querySelector('.e-rowcell').innerHTML;
8275
8303
  if (errorVal) {
8276
- content$$1 = errorVal.innerHTML;
8304
+ content$$1 = this.parent["" + sanitize](errorVal.innerHTML);
8277
8305
  errorVal.parentNode.removeChild(errorVal);
8278
8306
  }
8279
8307
  dragelem.querySelector('.e-rowcell').innerHTML = '';
8280
8308
  var spanContent = document.createElement('span');
8281
8309
  spanContent.className = 'errorValue';
8282
8310
  spanContent.style.paddingLeft = '16px';
8283
- spanContent.innerHTML = content$$1;
8311
+ spanContent.innerHTML = this.parent["" + sanitize](content$$1);
8284
8312
  dragelem.querySelector('.e-rowcell').appendChild(ele);
8285
8313
  dragelem.querySelector('.e-rowcell').appendChild(spanContent);
8286
8314
  var dropItemSpan = document.querySelector('.e-dropitemscount');
@@ -10798,7 +10826,7 @@ var BatchEdit = /** @__PURE__ @class */ (function () {
10798
10826
  this.batchAddedRecords = this.batchRecords = this.batchAddRowRecord = this.batchDeletedRecords = this.currentViewRecords = [];
10799
10827
  };
10800
10828
  BatchEdit.prototype.cellSaved = function (args) {
10801
- var actualCellIndex = args.cell.cellIndex;
10829
+ var actualCellIndex = args.column.index;
10802
10830
  var frozenCols = this.parent.frozenColumns || this.parent.getFrozenColumns();
10803
10831
  if (frozenCols && args.columnObject.index > frozenCols) {
10804
10832
  actualCellIndex = actualCellIndex + frozenCols;
@@ -10809,13 +10837,13 @@ var BatchEdit = /** @__PURE__ @class */ (function () {
10809
10837
  var colCount = this.parent.getFrozenLeftColumnsCount() + actualCellIndex;
10810
10838
  if (colCount === this.parent.treeColumnIndex) {
10811
10839
  this.parent.renderModule.cellRender({ data: args.rowData, cell: args.cell,
10812
- column: this.parent.grid.getColumnByIndex(args.cell.cellIndex)
10840
+ column: this.parent.grid.getColumnByIndex(args.column.index)
10813
10841
  });
10814
10842
  }
10815
10843
  }
10816
10844
  else if (actualCellIndex === this.parent.treeColumnIndex) {
10817
10845
  this.parent.renderModule.cellRender({ data: args.rowData, cell: args.cell,
10818
- column: this.parent.grid.getColumnByIndex(args.cell.cellIndex)
10846
+ column: this.parent.grid.getColumnByIndex(args.column.index)
10819
10847
  });
10820
10848
  }
10821
10849
  if (this.isAdd && this.parent.editSettings.mode === 'Batch' && this.parent.editSettings.newRowPosition !== 'Bottom') {
@@ -13632,10 +13660,6 @@ var Freeze$1 = /** @__PURE__ @class */ (function () {
13632
13660
  getValue('addRenderer', renderer)
13633
13661
  .apply(renderer, [RenderType.Content, new VirtualTreeFreezeRenderer(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13634
13662
  }
13635
- else {
13636
- getValue('addRenderer', renderer)
13637
- .apply(renderer, [RenderType.Content, new FreezeContentRender(getValue('grid', this.parent), getValue('serviceLocator', this.parent.grid))]);
13638
- }
13639
13663
  }
13640
13664
  if (this.parent.getFrozenLeftColumnsCount() || this.parent.getFrozenRightColumnsCount()) {
13641
13665
  getValue('addRenderer', renderer)
@@ -13677,6 +13701,9 @@ var Freeze$1 = /** @__PURE__ @class */ (function () {
13677
13701
  row.style.height = row.parentElement.firstElementChild.clientHeight + 'px';
13678
13702
  }
13679
13703
  row.style.display = args.action;
13704
+ if (freeze && frozenRightRows.length) {
13705
+ frozenRightRows[parseInt(i.toString(), 10)].style.display = args.action;
13706
+ }
13680
13707
  var queryselector = args.action === 'none' ? '.e-treecolumn-container .e-treegridcollapse'
13681
13708
  : '.e-treecolumn-container .e-treegridexpand';
13682
13709
  if (frozenrows[row.rowIndex].querySelector(queryselector)) {