@syncfusion/ej2-base 20.2.38 → 20.2.39

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.
@@ -7928,23 +7928,30 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7928
7928
  draEleTop -= this.parentScrollY;
7929
7929
  draEleLeft -= this.parentScrollX;
7930
7930
  }
7931
- if (this.helperElement.classList.contains('e-treeview')) {
7932
- var body = document.body;
7933
- var html = document.documentElement;
7934
- var tempHeight = Math.max(body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);
7935
- var tempWidth = Math.max(body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);
7936
- if (draEleTop > tempHeight) {
7937
- draEleTop = tempHeight;
7938
- }
7939
- if (draEleLeft > tempWidth) {
7940
- draEleLeft = tempWidth;
7941
- }
7942
- }
7943
7931
  var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });
7944
7932
  setStyleAttribute(helperElement, this.getDragPosition(dragValue));
7945
- if (!this.elementInViewport(helperElement) && this.enableAutoScroll) {
7933
+ if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) {
7946
7934
  this.helperElement.scrollIntoView();
7947
7935
  }
7936
+ var elements = document.querySelectorAll(':hover');
7937
+ if (this.enableAutoScroll && this.helperElement.classList.contains('e-treeview')) {
7938
+ if (elements.length === 0) {
7939
+ elements = this.getPathElements(evt);
7940
+ }
7941
+ /* tslint:disable no-any */
7942
+ var scrollParent = this.getScrollParent(elements, false);
7943
+ if (this.elementInViewport(this.helperElement)) {
7944
+ this.getScrollPosition(scrollParent, draEleTop);
7945
+ }
7946
+ else if (!this.elementInViewport(this.helperElement)) {
7947
+ elements = [].slice.call(document.querySelectorAll(':hover'));
7948
+ if (elements.length === 0) {
7949
+ elements = this.getPathElements(evt);
7950
+ }
7951
+ scrollParent = this.getScrollParent(elements, true);
7952
+ this.getScrollPosition(scrollParent, draEleTop);
7953
+ }
7954
+ }
7948
7955
  this.dragProcessStarted = true;
7949
7956
  this.prevLeft = left;
7950
7957
  this.prevTop = top;
@@ -7953,6 +7960,48 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7953
7960
  this.pageX = pagex;
7954
7961
  this.pageY = pagey;
7955
7962
  };
7963
+ /* tslint:disable no-any */
7964
+ Draggable.prototype.getScrollParent = function (node, reverse) {
7965
+ /* tslint:disable no-any */
7966
+ var nodeEl = reverse ? node.reverse() : node;
7967
+ var hasScroll;
7968
+ for (var i = nodeEl.length - 1; i >= 0; i--) {
7969
+ hasScroll = window.getComputedStyle(nodeEl[i])['overflow-y'];
7970
+ if ((hasScroll === 'auto' || hasScroll === 'scroll')
7971
+ && nodeEl[i].scrollHeight > nodeEl[i].clientHeight) {
7972
+ return nodeEl[i];
7973
+ }
7974
+ }
7975
+ hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y'];
7976
+ if (hasScroll === 'visible') {
7977
+ document.scrollingElement.style.overflow = 'auto';
7978
+ return document.scrollingElement;
7979
+ }
7980
+ };
7981
+ Draggable.prototype.getScrollPosition = function (nodeEle, draEleTop) {
7982
+ if (nodeEle && nodeEle === document.scrollingElement) {
7983
+ if ((nodeEle.clientHeight - nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight) < draEleTop
7984
+ && nodeEle.getBoundingClientRect().height > draEleTop) {
7985
+ nodeEle.scrollTop += this.helperElement.clientHeight;
7986
+ }
7987
+ else if (nodeEle.scrollHeight - nodeEle.clientHeight > draEleTop) {
7988
+ nodeEle.scrollTop -= this.helperElement.clientHeight;
7989
+ }
7990
+ }
7991
+ else if (nodeEle && nodeEle !== document.scrollingElement) {
7992
+ if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight) < draEleTop) {
7993
+ nodeEle.scrollTop += this.helperElement.clientHeight;
7994
+ }
7995
+ else if (nodeEle.getBoundingClientRect().top > (draEleTop - this.helperElement.clientHeight)) {
7996
+ nodeEle.scrollTop -= this.helperElement.clientHeight;
7997
+ }
7998
+ }
7999
+ };
8000
+ Draggable.prototype.getPathElements = function (evt) {
8001
+ var elementTop = evt.clientX > 0 ? evt.clientX : 0;
8002
+ var elementLeft = evt.clientY > 0 ? evt.clientY : 0;
8003
+ return document.elementsFromPoint(elementTop, elementLeft);
8004
+ };
7956
8005
  Draggable.prototype.triggerOutFunction = function (evt, eleObj) {
7957
8006
  this.hoverObject.instance.intOut(evt, eleObj.target);
7958
8007
  this.hoverObject.instance.dragData[this.scope] = null;