@syncfusion/ej2-treegrid 32.2.7 → 33.1.44

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.
@@ -188,7 +188,11 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
188
188
  && this.parent.dataSource.dataSource.offline && this.parent.dataSource.dataSource.url !== '') || !isCountRequired(this.parent)) {
189
189
  this.parent["" + action]('data-ready', this.onDataReady, this);
190
190
  this.parent["" + action]('refresh-virtual-block', this.refreshContentRows, this);
191
+ this.parent.on(events.destroy, this.destroy, this);
191
192
  this.fn = function () {
193
+ if (_this.parent.root.enableSeamlessScrolling) {
194
+ window.addEventListener('resize', _this.updateScrollbar.bind(_this));
195
+ }
192
196
  _this.observers.observes(function (scrollArgs) { return _this.scrollListeners(scrollArgs); }, _this.onEnteredAction(), _this.parent);
193
197
  var gObj = _this.parent;
194
198
  if (gObj.root.enablePersistence && gObj.root.scrollPosition) {
@@ -238,6 +242,10 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
238
242
  var virtualCellFocus = 'virtualCellFocus';
239
243
  _super.prototype["" + virtualCellFocus].call(this, e);
240
244
  };
245
+ VirtualTreeContentRenderer.prototype.updateScrollbar = function () {
246
+ var updateScrollbarOnResize = 'updateScrollbarOnResize';
247
+ _super.prototype["" + updateScrollbarOnResize].call(this);
248
+ };
241
249
  /**
242
250
  * Handles the data ready event for the virtual tree grid content renderer.
243
251
  *
@@ -278,9 +286,6 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
278
286
  _super.prototype.renderTable.call(this);
279
287
  if (!(this.parent.dataSource instanceof DataManager && this.parent.dataSource.dataSource.url !== undefined
280
288
  && this.parent.dataSource.dataSource.offline && this.parent.dataSource.dataSource.url !== '') || !isCountRequired(this.parent)) {
281
- if (this.observers) {
282
- this.observers.disconnect();
283
- }
284
289
  getValue('observer', this).options.debounceEvent = false;
285
290
  this.observers = new TreeInterSectionObserver(getValue('observer', this).element, getValue('observer', this).options);
286
291
  this.contents = this.getPanel().firstChild;
@@ -361,7 +366,7 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
361
366
  }
362
367
  var treeGridParent = this.parent.clipboardModule['treeGridParent'];
363
368
  if (isNullOrUndefined(treeGridParent.editModule) ||
364
- isNullOrUndefined(treeGridParent.editModule['addRowIndex']) || args.selectedIndex !== 0) {
369
+ isNullOrUndefined(treeGridParent.editModule['addRowIndex']) || args.selectedIndex !== -1) {
365
370
  if (!isNullOrUndefined(treeGridParent.grid.sortModule) && treeGridParent.grid.sortModule['sortedColumns'].length > 0) {
366
371
  var sortedData = treeGridParent.dataModule['sortedData'];
367
372
  if (!isNullOrUndefined(sortedData) && sortedData.length > 0) {
@@ -661,16 +666,28 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
661
666
  var maxLeft = _this.vgenerator.cOffsets[idx - 1];
662
667
  x = x > maxLeft ? maxLeft : x; //TODO: This fix horizontal scrollbar jumping issue in column virtualization.
663
668
  }
664
- var y = _this.getTranslateY(e.top, height, xAxis && top_1 === e.top ? _this.prevInfo : undefined, true);
669
+ var isRowScrollAction = _this.prevInfo && _this.prevInfo.page === 1 &&
670
+ (direction !== _this.prevInfo.direction || direction !== _this.prevInfo.direction);
671
+ var translateY = _this.getTranslateY(e.top, height, xAxis && top_1 === e.top ? _this.prevInfo : undefined, isRowScrollAction ? false : true);
665
672
  if (!_this.parent.isFrozenGrid() || _this.parent.enableVirtualMaskRow) {
666
673
  if (_this.parent.enableVirtualMaskRow) {
667
674
  var upScroll = (e.top - _this.translateY) < 0;
668
- y = (Math.round(_this.translateY) > y && !upScroll) ? Math.round(_this.translateY) : y;
669
- _this.virtualEle.adjustTable(x, y);
675
+ translateY = (Math.round(_this.translateY) > translateY && !upScroll) ? Math.round(_this.translateY) : translateY;
676
+ _this.virtualEle.adjustTable(x, translateY);
670
677
  }
671
678
  else {
672
679
  _this.virtualEle.adjustTable(x, _this.translateY);
673
680
  }
681
+ var wrapperBottom = _this.virtualEle.wrapper.getBoundingClientRect().bottom;
682
+ var contentBottom = _this.virtualEle.content.getBoundingClientRect().bottom;
683
+ if (direction === 'up' && _this.prevInfo.page === Math.ceil(_this.getTotalBlocks() / 2) &&
684
+ Math.round(wrapperBottom) < Math.round(contentBottom)) {
685
+ var bottomGap = Math.round(contentBottom) - Math.round(wrapperBottom);
686
+ var adjustedTranslateY = Math.min(translateY + bottomGap, _this.offsets[_this['maxBlock']]);
687
+ if (adjustedTranslateY !== translateY) {
688
+ _this.virtualEle.adjustTable(x, adjustedTranslateY);
689
+ }
690
+ }
674
691
  if (_this.parent.enableColumnVirtualization) {
675
692
  _this.header.virtualEle.adjustTable(x, 0);
676
693
  if (_this.parent.isFrozenGrid()) {
@@ -787,6 +804,9 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
787
804
  (this.parent.pageSettings.pageSize / 2) && (this.endIndex - nextSetResIndex) < (this.parent.pageSettings.pageSize / 2)) {
788
805
  this.startIndex = lastIndex - (this.parent.pageSettings.pageSize / 2);
789
806
  }
807
+ if (this.totalRecords < this.parent.pageSettings.pageSize) {
808
+ this.startIndex = 0;
809
+ }
790
810
  if (scrollArgs.offset.top > (rowHeight * this.totalRecords)) {
791
811
  this.translateY = this.getTranslateY(scrollArgs.offset.top, content.getBoundingClientRect().height);
792
812
  }
@@ -996,10 +1016,17 @@ var VirtualTreeContentRenderer = /** @class */ (function (_super) {
996
1016
  this.parent.off('refresh-virtual-editform-cells', this.refreshCell);
997
1017
  this.parent.off('virtaul-cell-focus', this.cellFocus);
998
1018
  this.parent.off('virtual-scroll-edit', this.restoreEditState);
999
- if (this.observers) {
1000
- this.observers.disconnect();
1019
+ this.parent.off(events.destroy, this.destroy);
1020
+ if (this.parent.root.enableSeamlessScrolling) {
1021
+ window.removeEventListener('resize', this.updateScrollbar);
1001
1022
  }
1002
1023
  };
1024
+ VirtualTreeContentRenderer.prototype.destroy = function () {
1025
+ if (this.parent.isDestroyed) {
1026
+ return;
1027
+ }
1028
+ this.removeEventListener();
1029
+ };
1003
1030
  return VirtualTreeContentRenderer;
1004
1031
  }(VirtualContentRenderer));
1005
1032
  export { VirtualTreeContentRenderer };
@@ -1013,6 +1040,9 @@ var TreeInterSectionObserver = /** @class */ (function (_super) {
1013
1040
  _this.timer = 0;
1014
1041
  return _this;
1015
1042
  }
1043
+ TreeInterSectionObserver.prototype.onWheelEvent = function () {
1044
+ this.isWheeling = true;
1045
+ };
1016
1046
  /**
1017
1047
  * Sets up observers to monitor scroll events on a given container
1018
1048
  * and its movable companion within a virtual grid setup.
@@ -1025,28 +1055,28 @@ var TreeInterSectionObserver = /** @class */ (function (_super) {
1025
1055
  TreeInterSectionObserver.prototype.observes = function (callback, onEnterCallback, instance) {
1026
1056
  var containerRect = 'containerRect';
1027
1057
  _super.prototype["" + containerRect] = getValue('options', this).container.getBoundingClientRect();
1028
- this.containerEl = getValue('options', this).container;
1029
- this.containerScrollHandler = this.virtualScrollHandlers(callback, onEnterCallback, instance);
1030
- EventHandler.add(this.containerEl, 'scroll', this.containerScrollHandler, this);
1031
- if (getValue('options', this).movableContainer) {
1032
- var movableContainerRect = 'movableContainerRect';
1033
- _super.prototype["" + movableContainerRect] = getValue('options', this).movableContainer.getBoundingClientRect();
1034
- this.movableContainerEl = getValue('options', this).movableContainer;
1035
- this.movableScrollHandler = this.virtualScrollHandlers(callback, onEnterCallback, instance);
1036
- EventHandler.add(this.movableContainerEl, 'scroll', this.movableScrollHandler, this);
1058
+ var options = getValue('options', this);
1059
+ EventHandler.add(options.container, 'wheel', this.onWheelEvent, this);
1060
+ if (!isNullOrUndefined(options.horizontalScrollbar)) {
1061
+ EventHandler.add(options.horizontalScrollbar, 'wheel', this.onWheelEvent, this);
1062
+ EventHandler.add(options.horizontalScrollbar, 'scroll', this.onVirtualContentScrolling(), this);
1037
1063
  }
1038
- };
1039
- TreeInterSectionObserver.prototype.disconnect = function () {
1040
- if (this.containerEl && this.containerScrollHandler) {
1041
- EventHandler.remove(this.containerEl, 'scroll', this.containerScrollHandler);
1042
- this.containerScrollHandler = null;
1043
- }
1044
- if (this.movableContainerEl && this.movableScrollHandler) {
1045
- EventHandler.remove(this.movableContainerEl, 'scroll', this.movableScrollHandler);
1046
- this.movableScrollHandler = null;
1064
+ if (!isNullOrUndefined(options.verticalScrollbar)) {
1065
+ EventHandler.add(options.verticalScrollbar, 'wheel', this.onWheelEvent, this);
1066
+ EventHandler.add(options.verticalScrollbar, 'scroll', this.onVirtualContentScrolling(), this);
1047
1067
  }
1048
- this.containerEl = null;
1049
- this.movableContainerEl = null;
1068
+ EventHandler.add(options.container, 'scroll', this.virtualScrollHandlers(callback, onEnterCallback, instance), this);
1069
+ };
1070
+ TreeInterSectionObserver.prototype.onVirtualContentScrolling = function () {
1071
+ var _this = this;
1072
+ return function (e) {
1073
+ if (e.target.classList.contains('e-virtual-vertical-scrollbar')) {
1074
+ getValue('options', _this).container.scrollTop = e.target.scrollTop;
1075
+ }
1076
+ if (e.target.classList.contains('e-virtual-horizontal-scrollbar')) {
1077
+ getValue('options', _this).container.scrollLeft = e.target.scrollLeft;
1078
+ }
1079
+ };
1050
1080
  };
1051
1081
  /**
1052
1082
  * Clears the last known position.
@@ -1092,6 +1122,12 @@ var TreeInterSectionObserver = /** @class */ (function (_super) {
1092
1122
  direction = _this["" + options].prevLeft === left ? direction : _this["" + options].prevLeft < left ? 'right' : 'left';
1093
1123
  _this["" + options].prevTop = top;
1094
1124
  _this["" + options].prevLeft = left;
1125
+ if (!isNullOrUndefined(_this["" + options].verticalScrollbar)) {
1126
+ _this["" + options].verticalScrollbar.scrollTop = _this["" + options].container.scrollTop;
1127
+ }
1128
+ if (!isNullOrUndefined(_this["" + options].horizontalScrollbar)) {
1129
+ _this["" + options].horizontalScrollbar.scrollLeft = _this["" + options].container.scrollLeft;
1130
+ }
1095
1131
  var current = _this.sentinelInfo["" + direction];
1096
1132
  var delta = 0;
1097
1133
  _this.newPos = top;
@@ -1148,6 +1148,7 @@
1148
1148
  }
1149
1149
  .e-bigger .e-treegrid .e-grid .e-hierarchycheckbox {
1150
1150
  padding-left: 2px;
1151
+ line-height: 0px;
1151
1152
  }
1152
1153
  .e-bigger .e-treegrid .e-grid .e-hierarchycheckbox .e-frame {
1153
1154
  height: 20px;
@@ -311,11 +311,11 @@
311
311
  /* stylelint-disable */
312
312
  .e-treegrid .e-indent::before,
313
313
  .e-grid-menu .e-indent::before {
314
- content: "\e33f";
314
+ content: "\e810";
315
315
  }
316
316
  .e-treegrid .e-outdent::before,
317
317
  .e-grid-menu .e-outdent::before {
318
- content: "\e35d";
318
+ content: "\e72a";
319
319
  }
320
320
 
321
321
  .e-treegrid .e-toolbar-item .e-expand::before {
@@ -311,11 +311,11 @@
311
311
  /* stylelint-disable */
312
312
  .e-treegrid .e-indent::before,
313
313
  .e-grid-menu .e-indent::before {
314
- content: "\e33f";
314
+ content: "\e810";
315
315
  }
316
316
  .e-treegrid .e-outdent::before,
317
317
  .e-grid-menu .e-outdent::before {
318
- content: "\e35d";
318
+ content: "\e72a";
319
319
  }
320
320
 
321
321
  .e-treegrid .e-toolbar-item .e-expand::before {
@@ -313,11 +313,11 @@
313
313
  /* stylelint-disable */
314
314
  .e-treegrid .e-indent::before,
315
315
  .e-grid-menu .e-indent::before {
316
- content: "\e33f";
316
+ content: "\e810";
317
317
  }
318
318
  .e-treegrid .e-outdent::before,
319
319
  .e-grid-menu .e-outdent::before {
320
- content: "\e35d";
320
+ content: "\e72a";
321
321
  }
322
322
 
323
323
  .e-treegrid .e-toolbar-item .e-expand::before {
@@ -313,11 +313,11 @@
313
313
  /* stylelint-disable */
314
314
  .e-treegrid .e-indent::before,
315
315
  .e-grid-menu .e-indent::before {
316
- content: "\e33f";
316
+ content: "\e810";
317
317
  }
318
318
  .e-treegrid .e-outdent::before,
319
319
  .e-grid-menu .e-outdent::before {
320
- content: "\e35d";
320
+ content: "\e72a";
321
321
  }
322
322
 
323
323
  .e-treegrid .e-toolbar-item .e-expand::before {
@@ -21,6 +21,9 @@
21
21
 
22
22
  .e-hierarchycheckbox {
23
23
  padding-left: 2px;
24
+ @if $skin-name =='fluent2' or $skin-name =='fluent2-dark' {
25
+ line-height: 0px;
26
+ }
24
27
  }
25
28
 
26
29
  .e-hierarchycheckbox .e-frame {
@@ -1148,6 +1148,7 @@
1148
1148
  }
1149
1149
  .e-bigger .e-treegrid .e-grid .e-hierarchycheckbox {
1150
1150
  padding-left: 2px;
1151
+ line-height: 0px;
1151
1152
  }
1152
1153
  .e-bigger .e-treegrid .e-grid .e-hierarchycheckbox .e-frame {
1153
1154
  height: 20px;
@@ -3,11 +3,11 @@
3
3
  #{&}.e-treegrid,
4
4
  .e-grid-menu {
5
5
  .e-indent::before {
6
- content: '\e33f';
6
+ content: '\e810';
7
7
  }
8
8
 
9
9
  .e-outdent::before {
10
- content: '\e35d';
10
+ content: '\e72a';
11
11
  }
12
12
  }
13
13
 
@@ -311,11 +311,11 @@
311
311
  /* stylelint-disable */
312
312
  .e-treegrid .e-indent::before,
313
313
  .e-grid-menu .e-indent::before {
314
- content: "\e33f";
314
+ content: "\e810";
315
315
  }
316
316
  .e-treegrid .e-outdent::before,
317
317
  .e-grid-menu .e-outdent::before {
318
- content: "\e35d";
318
+ content: "\e72a";
319
319
  }
320
320
 
321
321
  .e-treegrid .e-toolbar-item .e-expand::before {
@@ -313,11 +313,11 @@
313
313
  /* stylelint-disable */
314
314
  .e-treegrid .e-indent::before,
315
315
  .e-grid-menu .e-indent::before {
316
- content: "\e33f";
316
+ content: "\e810";
317
317
  }
318
318
  .e-treegrid .e-outdent::before,
319
319
  .e-grid-menu .e-outdent::before {
320
- content: "\e35d";
320
+ content: "\e72a";
321
321
  }
322
322
 
323
323
  .e-treegrid .e-toolbar-item .e-expand::before {