@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';
@@ -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
  }
@@ -1862,7 +1862,7 @@ var Render = /** @__PURE__ @class */ (function () {
1862
1862
  }
1863
1863
  else {
1864
1864
  var str = 'isStringTemplate';
1865
- var result = args.column["" + templateFn](extend$1({ 'index': '' }, args.data), this.parent, 'template', tempID, this.parent["" + str], undefined, undefined, this.parent['root']);
1865
+ var result = args.column["" + templateFn](extend$1({ 'index': '' }, args.data), this.parent, 'template', tempID, this.parent["" + str]);
1866
1866
  appendChildren(cellElement, result);
1867
1867
  }
1868
1868
  delete args.column.template;
@@ -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);
@@ -4239,7 +4243,7 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
4239
4243
  TreeGrid.prototype.IsExpandCollapseClicked = function (args) {
4240
4244
  if (!isNullOrUndefined(args.target) && (args.target.classList.contains('e-treegridexpand')
4241
4245
  || args.target.classList.contains('e-treegridcollapse') || args.target.classList.contains('e-summarycell'))
4242
- && (!isNullOrUndefined(args.data) && args.data['hasChildRecords'])) {
4246
+ && (!isNullOrUndefined(args.data) && args.data['hasChildRecords']) && !this.selectionSettings.checkboxOnly) {
4243
4247
  args.cancel = true;
4244
4248
  return;
4245
4249
  }
@@ -5738,13 +5742,15 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
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
  }
5746
5751
  else if (!isNullOrUndefined(this.columns[parseInt(i.toString(), 10)].field)) {
5747
- var currentColumn = this.grid.getColumnByField(this.columns[parseInt(i.toString(), 10)].field);
5752
+ var fieldName = this.columns[parseInt(i.toString(), 10)].field;
5753
+ var currentColumn = this.grid.getColumnByField(fieldName);
5748
5754
  this.columns[parseInt(i.toString(), 10)].width = currentColumn.width;
5749
5755
  }
5750
5756
  }
@@ -6677,8 +6683,8 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
6677
6683
  }
6678
6684
  }
6679
6685
  for (var i = 0; i < detailrows.length; i++) {
6680
- if (!isNullOrUndefined(detailrows[parseInt(i.toString(), 10)]) && !this.allowPaging && !(this.enableVirtualization
6681
- || 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))) {
6682
6688
  gridRowsObject[detailrows[parseInt(i.toString(), 10)].rowIndex].visible = displayAction !== 'none' ? true : false;
6683
6689
  detailrows[parseInt(i.toString(), 10)].style.display = displayAction;
6684
6690
  }
@@ -6779,6 +6785,20 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
6779
6785
  }
6780
6786
  }
6781
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
+ };
6782
6802
  /**
6783
6803
  * Updates the rows and cells
6784
6804
  *
@@ -7350,6 +7370,9 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
7350
7370
  __decorate([
7351
7371
  Property(false)
7352
7372
  ], TreeGrid.prototype, "enableColumnVirtualization", void 0);
7373
+ __decorate([
7374
+ Property(false)
7375
+ ], TreeGrid.prototype, "enableHtmlSanitizer", void 0);
7353
7376
  __decorate([
7354
7377
  Property(false)
7355
7378
  ], TreeGrid.prototype, "enableInfiniteScrolling", void 0);
@@ -8270,6 +8293,7 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
8270
8293
  RowDD$$1.prototype.addErrorElem = function () {
8271
8294
  var dragelem = document.getElementsByClassName('e-cloneproperties')[0];
8272
8295
  var errorelem = dragelem.querySelectorAll('.e-errorelem').length;
8296
+ var sanitize = 'sanitize';
8273
8297
  if (!errorelem && !this.parent.rowDropSettings.targetID) {
8274
8298
  var ele = document.createElement('div');
8275
8299
  classList(ele, ['e-errorcontainer'], []);
@@ -8277,14 +8301,14 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
8277
8301
  var errorVal = dragelem.querySelector('.errorValue');
8278
8302
  var content$$1 = dragelem.querySelector('.e-rowcell').innerHTML;
8279
8303
  if (errorVal) {
8280
- content$$1 = errorVal.innerHTML;
8304
+ content$$1 = this.parent["" + sanitize](errorVal.innerHTML);
8281
8305
  errorVal.parentNode.removeChild(errorVal);
8282
8306
  }
8283
8307
  dragelem.querySelector('.e-rowcell').innerHTML = '';
8284
8308
  var spanContent = document.createElement('span');
8285
8309
  spanContent.className = 'errorValue';
8286
8310
  spanContent.style.paddingLeft = '16px';
8287
- spanContent.innerHTML = content$$1;
8311
+ spanContent.innerHTML = this.parent["" + sanitize](content$$1);
8288
8312
  dragelem.querySelector('.e-rowcell').appendChild(ele);
8289
8313
  dragelem.querySelector('.e-rowcell').appendChild(spanContent);
8290
8314
  var dropItemSpan = document.querySelector('.e-dropitemscount');
@@ -8675,13 +8699,14 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
8675
8699
  var childRecords = rec[0].childRecords;
8676
8700
  var droppedRecordIndex = childRecords.indexOf(droppedRecord) + 1;
8677
8701
  childRecords.splice(droppedRecordIndex, 0, draggedRecord_2);
8678
- draggedRecord_2.parentItem = droppedRecord.parentItem;
8702
+ if (this_1.parent.enableImmutableMode || this_1.parent['isIndentEnabled'] && !this_1.parent.parentIdMapping) {
8703
+ draggedRecord_2.parentItem = droppedRecord.parentItem;
8704
+ draggedRecord_2.level = droppedRecord.level;
8705
+ }
8679
8706
  draggedRecord_2.parentUniqueID = droppedRecord.parentUniqueID;
8680
- draggedRecord_2.level = droppedRecord.level;
8681
8707
  if (this_1.parent.parentIdMapping) {
8682
8708
  draggedRecord_2[this_1.parent.parentIdMapping] = droppedRecord[this_1.parent.parentIdMapping];
8683
- draggedRecord_2.parentItem = droppedRecord.parentItem;
8684
- draggedRecord_2.level = droppedRecord.level;
8709
+ draggedRecord_2.parentUniqueID = droppedRecord.parentUniqueID;
8685
8710
  }
8686
8711
  }
8687
8712
  if (draggedRecord_2.hasChildRecords) {
@@ -13677,6 +13702,9 @@ var Freeze$1 = /** @__PURE__ @class */ (function () {
13677
13702
  row.style.height = row.parentElement.firstElementChild.clientHeight + 'px';
13678
13703
  }
13679
13704
  row.style.display = args.action;
13705
+ if (freeze && frozenRightRows.length) {
13706
+ frozenRightRows[parseInt(i.toString(), 10)].style.display = args.action;
13707
+ }
13680
13708
  var queryselector = args.action === 'none' ? '.e-treecolumn-container .e-treegridcollapse'
13681
13709
  : '.e-treecolumn-container .e-treegridexpand';
13682
13710
  if (frozenrows[row.rowIndex].querySelector(queryselector)) {