tree-element 0.1.1 → 0.3.0

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 (155) hide show
  1. package/README.md +43 -31
  2. package/lib/animation.d.ts +2 -2
  3. package/lib/animation.d.ts.map +1 -1
  4. package/lib/animation.js +16 -12
  5. package/lib/animation.js.map +1 -1
  6. package/lib/classNames.d.ts.map +1 -1
  7. package/lib/classNames.js +2 -2
  8. package/lib/classNames.js.map +1 -1
  9. package/lib/dataLoader.d.ts +1 -0
  10. package/lib/dataLoader.d.ts.map +1 -1
  11. package/lib/dataLoader.js +22 -20
  12. package/lib/dataLoader.js.map +1 -1
  13. package/lib/dragAndDropHandler/binarySearch.js +3 -3
  14. package/lib/dragAndDropHandler/binarySearch.js.map +1 -1
  15. package/lib/dragAndDropHandler/dragElement.d.ts.map +1 -1
  16. package/lib/dragAndDropHandler/dragElement.js +11 -13
  17. package/lib/dragAndDropHandler/dragElement.js.map +1 -1
  18. package/lib/dragAndDropHandler/generateHitAreas.d.ts.map +1 -1
  19. package/lib/dragAndDropHandler/generateHitAreas.js +25 -25
  20. package/lib/dragAndDropHandler/generateHitAreas.js.map +1 -1
  21. package/lib/dragAndDropHandler/index.d.ts.map +1 -1
  22. package/lib/dragAndDropHandler/index.js +125 -158
  23. package/lib/dragAndDropHandler/index.js.map +1 -1
  24. package/lib/dragAndDropHandler/iterateVisibleNodes.d.ts.map +1 -1
  25. package/lib/dragAndDropHandler/iterateVisibleNodes.js +23 -22
  26. package/lib/dragAndDropHandler/iterateVisibleNodes.js.map +1 -1
  27. package/lib/dragAndDropHandler/types.d.ts.map +1 -1
  28. package/lib/elementsRenderer.d.ts +20 -7
  29. package/lib/elementsRenderer.d.ts.map +1 -1
  30. package/lib/elementsRenderer.js +195 -136
  31. package/lib/elementsRenderer.js.map +1 -1
  32. package/lib/events.d.ts +44 -11
  33. package/lib/events.d.ts.map +1 -1
  34. package/lib/index.d.ts +36 -13
  35. package/lib/index.d.ts.map +1 -1
  36. package/lib/index.js +386 -349
  37. package/lib/index.js.map +1 -1
  38. package/lib/keyHandler.d.ts +13 -8
  39. package/lib/keyHandler.d.ts.map +1 -1
  40. package/lib/keyHandler.js +106 -51
  41. package/lib/keyHandler.js.map +1 -1
  42. package/lib/methodTypes.d.ts +3 -3
  43. package/lib/methodTypes.d.ts.map +1 -1
  44. package/lib/mouseHandler.d.ts +1 -1
  45. package/lib/mouseHandler.d.ts.map +1 -1
  46. package/lib/mouseHandler.js +36 -49
  47. package/lib/mouseHandler.js.map +1 -1
  48. package/lib/mouseUtils.d.ts.map +1 -1
  49. package/lib/mouseUtils.js +2 -2
  50. package/lib/mouseUtils.js.map +1 -1
  51. package/lib/node.d.ts +47 -16
  52. package/lib/node.d.ts.map +1 -1
  53. package/lib/node.js +169 -171
  54. package/lib/node.js.map +1 -1
  55. package/lib/nodeElement/borderDropHint.d.ts.map +1 -1
  56. package/lib/nodeElement/borderDropHint.js +4 -5
  57. package/lib/nodeElement/borderDropHint.js.map +1 -1
  58. package/lib/nodeElement/folderElement.d.ts +8 -5
  59. package/lib/nodeElement/folderElement.d.ts.map +1 -1
  60. package/lib/nodeElement/folderElement.js +75 -67
  61. package/lib/nodeElement/folderElement.js.map +1 -1
  62. package/lib/nodeElement/ghostDropHint.d.ts.map +1 -1
  63. package/lib/nodeElement/ghostDropHint.js +13 -13
  64. package/lib/nodeElement/ghostDropHint.js.map +1 -1
  65. package/lib/nodeElement/index.d.ts +2 -1
  66. package/lib/nodeElement/index.d.ts.map +1 -1
  67. package/lib/nodeElement/index.js +38 -30
  68. package/lib/nodeElement/index.js.map +1 -1
  69. package/lib/nodeUtils.d.ts.map +1 -1
  70. package/lib/nodeUtils.js +1 -1
  71. package/lib/nodeUtils.js.map +1 -1
  72. package/lib/options.d.ts +19 -3
  73. package/lib/options.d.ts.map +1 -1
  74. package/lib/positionUtils.js +3 -3
  75. package/lib/positionUtils.js.map +1 -1
  76. package/lib/requestUrl.d.ts +1 -1
  77. package/lib/requestUrl.d.ts.map +1 -1
  78. package/lib/requestUrl.js +6 -17
  79. package/lib/requestUrl.js.map +1 -1
  80. package/lib/saveStateHandler.d.ts.map +1 -1
  81. package/lib/saveStateHandler.js +59 -89
  82. package/lib/saveStateHandler.js.map +1 -1
  83. package/lib/scrollHandler/containerScrollParent.d.ts.map +1 -1
  84. package/lib/scrollHandler/containerScrollParent.js +11 -18
  85. package/lib/scrollHandler/containerScrollParent.js.map +1 -1
  86. package/lib/scrollHandler/createScrollParent.d.ts.map +1 -1
  87. package/lib/scrollHandler/createScrollParent.js +12 -13
  88. package/lib/scrollHandler/createScrollParent.js.map +1 -1
  89. package/lib/scrollHandler/documentScrollParent.d.ts.map +1 -1
  90. package/lib/scrollHandler/documentScrollParent.js +18 -27
  91. package/lib/scrollHandler/documentScrollParent.js.map +1 -1
  92. package/lib/scrollHandler/scrollParent.d.ts.map +1 -1
  93. package/lib/scrollHandler/scrollParent.js +30 -34
  94. package/lib/scrollHandler/scrollParent.js.map +1 -1
  95. package/lib/scrollHandler.d.ts.map +1 -1
  96. package/lib/scrollHandler.js +11 -14
  97. package/lib/scrollHandler.js.map +1 -1
  98. package/lib/selectNodeHandler.d.ts +4 -2
  99. package/lib/selectNodeHandler.d.ts.map +1 -1
  100. package/lib/selectNodeHandler.js +64 -83
  101. package/lib/selectNodeHandler.js.map +1 -1
  102. package/lib/setDefaultOptions.d.ts.map +1 -1
  103. package/lib/setDefaultOptions.js +34 -38
  104. package/lib/setDefaultOptions.js.map +1 -1
  105. package/lib/triggerCustomEvent.d.ts.map +1 -1
  106. package/lib/triggerCustomEvent.js +2 -2
  107. package/lib/triggerCustomEvent.js.map +1 -1
  108. package/lib/util.d.ts.map +1 -1
  109. package/lib/util.js +2 -2
  110. package/lib/util.js.map +1 -1
  111. package/lib/version.d.ts +1 -1
  112. package/lib/version.js +1 -1
  113. package/lib/version.js.map +1 -1
  114. package/package.json +43 -32
  115. package/src/animation.ts +14 -12
  116. package/src/classNames.ts +52 -52
  117. package/src/dataLoader.ts +79 -71
  118. package/src/dragAndDropHandler/binarySearch.ts +17 -17
  119. package/src/dragAndDropHandler/dragElement.ts +51 -50
  120. package/src/dragAndDropHandler/generateHitAreas.ts +156 -161
  121. package/src/dragAndDropHandler/index.ts +334 -348
  122. package/src/dragAndDropHandler/iterateVisibleNodes.ts +61 -63
  123. package/src/dragAndDropHandler/types.ts +5 -5
  124. package/src/elementsRenderer.ts +377 -294
  125. package/src/events.ts +241 -208
  126. package/src/header.txt +1 -1
  127. package/src/index.ts +259 -229
  128. package/src/keyHandler.ts +179 -115
  129. package/src/methodTypes.ts +7 -10
  130. package/src/mouseHandler.ts +316 -316
  131. package/src/mouseUtils.ts +14 -14
  132. package/src/node.ts +773 -771
  133. package/src/nodeElement/borderDropHint.ts +25 -25
  134. package/src/nodeElement/folderElement.ts +116 -102
  135. package/src/nodeElement/ghostDropHint.ts +64 -62
  136. package/src/nodeElement/index.ts +81 -73
  137. package/src/nodeUtils.ts +5 -5
  138. package/src/options.ts +25 -5
  139. package/src/requestUrl.ts +7 -14
  140. package/src/saveStateHandler.ts +191 -207
  141. package/src/scrollHandler/containerScrollParent.ts +40 -49
  142. package/src/scrollHandler/createScrollParent.ts +26 -27
  143. package/src/scrollHandler/documentScrollParent.ts +66 -72
  144. package/src/scrollHandler/scrollParent.ts +90 -86
  145. package/src/scrollHandler.ts +45 -45
  146. package/src/selectNodeHandler.ts +171 -165
  147. package/src/setDefaultOptions.ts +44 -32
  148. package/src/triggerCustomEvent.ts +7 -3
  149. package/src/util.ts +2 -3
  150. package/src/version.ts +1 -1
  151. package/tree_element.css +87 -69
  152. package/tree_element.debug.js +3866 -3831
  153. package/tree_element.debug.js.map +1 -1
  154. package/tree_element.js +2 -2
  155. package/tree_element.js.map +1 -1
@@ -2,39 +2,32 @@ import { getElementPosition, getOffsetTop } from '../positionUtils.js';
2
2
  import { ScrollParent } from './scrollParent.js';
3
3
 
4
4
  class ContainerScrollParent extends ScrollParent {
5
- _scrollParentBottom;
6
- _scrollParentTop;
7
- stopScrolling() {
8
- super.stopScrolling();
5
+ _stopScrolling() {
6
+ super._stopScrolling();
9
7
  this._horizontalScrollDirection = undefined;
10
8
  this._verticalScrollDirection = undefined;
11
9
  }
12
10
  _getNewHorizontalScrollDirection(pageX) {
13
- const scrollParentOffset = getElementPosition(this._container);
14
- const containerWidth = this._container.getBoundingClientRect().width;
15
- const rightEdge = scrollParentOffset.left + containerWidth;
16
- const leftEdge = scrollParentOffset.left;
17
- const isNearRightEdge = pageX > rightEdge - 20;
18
- const isNearLeftEdge = pageX < leftEdge + 20;
11
+ let scrollParentOffset = getElementPosition(this._container);
12
+ let containerWidth = this._container.getBoundingClientRect().width;
13
+ let rightEdge = scrollParentOffset.left + containerWidth;
14
+ let leftEdge = scrollParentOffset.left;
15
+ let isNearRightEdge = pageX > rightEdge - 20;
19
16
  if (isNearRightEdge) {
20
17
  return "right";
21
- } else if (isNearLeftEdge) {
22
- return "left";
23
18
  }
24
- return undefined;
19
+ let isNearLeftEdge = pageX < leftEdge + 20;
20
+ return isNearLeftEdge ? "left" : undefined;
25
21
  }
26
22
  _getNewVerticalScrollDirection(pageY) {
27
23
  if (pageY < this._getScrollParentTop()) {
28
24
  return "top";
29
25
  }
30
- if (pageY > this._getScrollParentBottom()) {
31
- return "bottom";
32
- }
33
- return undefined;
26
+ return pageY > this._getScrollParentBottom() ? "bottom" : undefined;
34
27
  }
35
28
  _getScrollParentBottom() {
36
29
  if (this._scrollParentBottom == null) {
37
- const containerHeight = this._container.getBoundingClientRect().height;
30
+ let containerHeight = this._container.getBoundingClientRect().height;
38
31
  this._scrollParentBottom = this._getScrollParentTop() + containerHeight;
39
32
  }
40
33
  return this._scrollParentBottom;
@@ -1 +1 @@
1
- {"version":3,"file":"containerScrollParent.js","sources":["../../src/scrollHandler/containerScrollParent.ts"],"sourcesContent":["import type {\n HorizontalScrollDirection,\n VerticalScrollDirection,\n} from \"./scrollParent\";\n\nimport { getElementPosition, getOffsetTop } from \"../positionUtils\";\nimport { ScrollParent } from \"./scrollParent\";\n\n\nexport default class ContainerScrollParent extends ScrollParent {\n private scrollParentBottom?: number;\n private scrollParentTop?: number;\n\n public stopScrolling() {\n super.stopScrolling();\n\n this.horizontalScrollDirection = undefined;\n this.verticalScrollDirection = undefined;\n }\n\n protected getNewHorizontalScrollDirection(\n pageX: number,\n ): HorizontalScrollDirection | undefined {\n const scrollParentOffset = getElementPosition(this.container);\n const containerWidth = this.container.getBoundingClientRect().width;\n\n const rightEdge = scrollParentOffset.left + containerWidth;\n const leftEdge = scrollParentOffset.left;\n const isNearRightEdge = pageX > rightEdge - 20;\n const isNearLeftEdge = pageX < leftEdge + 20;\n\n if (isNearRightEdge) {\n return \"right\";\n } else if (isNearLeftEdge) {\n return \"left\";\n }\n\n return undefined;\n }\n\n protected getNewVerticalScrollDirection(\n pageY: number,\n ): undefined | VerticalScrollDirection {\n if (pageY < this.getScrollParentTop()) {\n return \"top\";\n }\n\n if (pageY > this.getScrollParentBottom()) {\n return \"bottom\";\n }\n\n return undefined;\n }\n\n private getScrollParentBottom() {\n if (this.scrollParentBottom == null) {\n const containerHeight =\n this.container.getBoundingClientRect().height;\n this.scrollParentBottom =\n this.getScrollParentTop() + containerHeight;\n }\n\n return this.scrollParentBottom;\n }\n\n private getScrollParentTop() {\n this.scrollParentTop ??= getOffsetTop(this.container);\n\n return this.scrollParentTop;\n }\n}\n"],"names":["scrollParentBottom","scrollParentTop","horizontalScrollDirection","verticalScrollDirection","getNewHorizontalScrollDirection","container","getNewVerticalScrollDirection","getScrollParentTop","getScrollParentBottom"],"mappings":";;;AASe,MAAM,qBAAqB,SAAS,YAAY,CAAC;EACpDA,mBAAkB;EAClBC,gBAAe;AAEhB,EAAA,aAAa,GAAG;IACnB,KAAK,CAAC,aAAa,EAAE;IAErB,IAAI,CAACC,0BAAyB,GAAG,SAAS;IAC1C,IAAI,CAACC,wBAAuB,GAAG,SAAS;AAC5C,EAAA;EAEUC,gCAA+BA,CACrC,KAAa,EACwB;AACrC,IAAA,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAACC,UAAS,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAI,CAACA,UAAS,CAAC,qBAAqB,EAAE,CAAC,KAAK;AAEnE,IAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,GAAG,cAAc;AAC1D,IAAA,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI;AACxC,IAAA,MAAM,eAAe,GAAG,KAAK,GAAG,SAAS,GAAG,EAAE;AAC9C,IAAA,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,EAAE;AAE5C,IAAA,IAAI,eAAe,EAAE;AACjB,MAAA,OAAO,OAAO;IAClB,CAAC,MAAM,IAAI,cAAc,EAAE;AACvB,MAAA,OAAO,MAAM;AACjB,IAAA;AAEA,IAAA,OAAO,SAAS;AACpB,EAAA;EAEUC,8BAA6BA,CACnC,KAAa,EACsB;AACnC,IAAA,IAAI,KAAK,GAAG,IAAI,CAACC,mBAAkB,EAAE,EAAE;AACnC,MAAA,OAAO,KAAK;AAChB,IAAA;AAEA,IAAA,IAAI,KAAK,GAAG,IAAI,CAACC,sBAAqB,EAAE,EAAE;AACtC,MAAA,OAAO,QAAQ;AACnB,IAAA;AAEA,IAAA,OAAO,SAAS;AACpB,EAAA;AAEQA,EAAAA,sBAAqBA,GAAG;AAC5B,IAAA,IAAI,IAAI,CAACR,mBAAkB,IAAI,IAAI,EAAE;MACjC,MAAM,eAAe,GACjB,IAAI,CAACK,UAAS,CAAC,qBAAqB,EAAE,CAAC,MAAM;MACjD,IAAI,CAACL,mBAAkB,GACnB,IAAI,CAACO,mBAAkB,EAAE,GAAG,eAAe;AACnD,IAAA;IAEA,OAAO,IAAI,CAACP,mBAAkB;AAClC,EAAA;AAEQO,EAAAA,mBAAkBA,GAAG;IACzB,IAAI,CAACN,gBAAe,KAAK,YAAY,CAAC,IAAI,CAACI,UAAS,CAAC;IAErD,OAAO,IAAI,CAACJ,gBAAe;AAC/B,EAAA;AACJ;;"}
1
+ {"version":3,"file":"containerScrollParent.js","sources":["../../src/scrollHandler/containerScrollParent.ts"],"sourcesContent":["import type {\n HorizontalScrollDirection,\n VerticalScrollDirection,\n} from \"./scrollParent\";\n\nimport { getElementPosition, getOffsetTop } from \"../positionUtils\";\nimport { ScrollParent } from \"./scrollParent\";\n\nexport default class ContainerScrollParent extends ScrollParent {\n private scrollParentBottom?: number;\n private scrollParentTop?: number;\n\n public stopScrolling() {\n super.stopScrolling();\n\n this.horizontalScrollDirection = undefined;\n this.verticalScrollDirection = undefined;\n }\n\n protected getNewHorizontalScrollDirection(\n pageX: number,\n ): HorizontalScrollDirection | undefined {\n const scrollParentOffset = getElementPosition(this.container);\n const containerWidth = this.container.getBoundingClientRect().width;\n\n const rightEdge = scrollParentOffset.left + containerWidth;\n const leftEdge = scrollParentOffset.left;\n const isNearRightEdge = pageX > rightEdge - 20;\n\n if (isNearRightEdge) {\n return \"right\";\n }\n\n const isNearLeftEdge = pageX < leftEdge + 20;\n return isNearLeftEdge ? \"left\" : undefined;\n }\n\n protected getNewVerticalScrollDirection(\n pageY: number,\n ): undefined | VerticalScrollDirection {\n if (pageY < this.getScrollParentTop()) {\n return \"top\";\n }\n\n return pageY > this.getScrollParentBottom() ? \"bottom\" : undefined;\n }\n\n private getScrollParentBottom() {\n if (this.scrollParentBottom == null) {\n const containerHeight = this.container.getBoundingClientRect().height;\n this.scrollParentBottom = this.getScrollParentTop() + containerHeight;\n }\n\n return this.scrollParentBottom;\n }\n\n private getScrollParentTop() {\n this.scrollParentTop ??= getOffsetTop(this.container);\n\n return this.scrollParentTop;\n }\n}\n"],"names":["stopScrolling","horizontalScrollDirection","verticalScrollDirection","getNewHorizontalScrollDirection","container","getNewVerticalScrollDirection","getScrollParentTop","getScrollParentBottom","scrollParentBottom","scrollParentTop"],"mappings":";;;AAQe,MAAM,qBAAqB,SAAS,YAAY,CAAC;AAIvDA,EAAAA,cAAaA,GAAG;IACrB,KAAK,CAACA,cAAa,EAAE;IAErB,IAAI,CAACC,0BAAyB,GAAG,SAAS;IAC1C,IAAI,CAACC,wBAAuB,GAAG,SAAS;AAC1C,EAAA;EAEUC,gCAA+BA,CACvC,KAAa,EAC0B;AACvC,IAAA,IAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAACC,UAAS,CAAC;IAC7D,IAAM,cAAc,GAAG,IAAI,CAACA,UAAS,CAAC,qBAAqB,EAAE,CAAC,KAAK;AAEnE,IAAA,IAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,GAAG,cAAc;AAC1D,IAAA,IAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI;AACxC,IAAA,IAAM,eAAe,GAAG,KAAK,GAAG,SAAS,GAAG,EAAE;AAE9C,IAAA,IAAI,eAAe,EAAE;AACnB,MAAA,OAAO,OAAO;AAChB,IAAA;AAEA,IAAA,IAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,EAAE;AAC5C,IAAA,OAAO,cAAc,GAAG,MAAM,GAAG,SAAS;AAC5C,EAAA;EAEUC,8BAA6BA,CACrC,KAAa,EACwB;AACrC,IAAA,IAAI,KAAK,GAAG,IAAI,CAACC,mBAAkB,EAAE,EAAE;AACrC,MAAA,OAAO,KAAK;AACd,IAAA;IAEA,OAAO,KAAK,GAAG,IAAI,CAACC,sBAAqB,EAAE,GAAG,QAAQ,GAAG,SAAS;AACpE,EAAA;AAEQA,EAAAA,sBAAqBA,GAAG;AAC9B,IAAA,IAAI,IAAI,CAACC,mBAAkB,IAAI,IAAI,EAAE;MACnC,IAAM,eAAe,GAAG,IAAI,CAACJ,UAAS,CAAC,qBAAqB,EAAE,CAAC,MAAM;MACrE,IAAI,CAACI,mBAAkB,GAAG,IAAI,CAACF,mBAAkB,EAAE,GAAG,eAAe;AACvE,IAAA;IAEA,OAAO,IAAI,CAACE,mBAAkB;AAChC,EAAA;AAEQF,EAAAA,mBAAkBA,GAAG;IAC3B,IAAI,CAACG,gBAAe,KAAK,YAAY,CAAC,IAAI,CAACL,UAAS,CAAC;IAErD,OAAO,IAAI,CAACK,gBAAe;AAC7B,EAAA;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createScrollParent.d.ts","sourceRoot":"","sources":["../../src/scrollHandler/createScrollParent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkCnD,QAAA,MAAM,kBAAkB,GACpB,aAAa,WAAW,EACxB,iBAAiB,MAAM,IAAI,KAC5B,YAWF,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"createScrollParent.d.ts","sourceRoot":"","sources":["../../src/scrollHandler/createScrollParent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkCnD,QAAA,MAAM,kBAAkB,GACtB,aAAa,WAAW,EACxB,iBAAiB,MAAM,IAAI,KAC1B,YAUF,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import ContainerScrollParent from './containerScrollParent.js';
2
2
  import DocumentScrollParent from './documentScrollParent.js';
3
3
 
4
- const isOverflow = overflowValue => overflowValue === "auto" || overflowValue === "scroll";
5
- const hasOverFlow = element => {
6
- const style = getComputedStyle(element);
4
+ let isOverflow = overflowValue => overflowValue === "auto" || overflowValue === "scroll";
5
+ let hasOverFlow = element => {
6
+ let style = getComputedStyle(element);
7
7
  return isOverflow(style.overflowX) || isOverflow(style.overflowY);
8
8
  };
9
- const getParentWithOverflow = treeElement => {
9
+ let getParentWithOverflow = treeElement => {
10
10
  if (hasOverFlow(treeElement)) {
11
11
  return treeElement;
12
12
  }
@@ -19,19 +19,18 @@ const getParentWithOverflow = treeElement => {
19
19
  }
20
20
  return null;
21
21
  };
22
- const createScrollParent = (treeElement, refreshHitAreas) => {
23
- const container = getParentWithOverflow(treeElement);
22
+ let createScrollParent = (treeElement, refreshHitAreas) => {
23
+ let container = getParentWithOverflow(treeElement);
24
24
  if (container && container.tagName !== "HTML") {
25
25
  return new ContainerScrollParent({
26
- container,
27
- refreshHitAreas
28
- });
29
- } else {
30
- return new DocumentScrollParent({
31
- refreshHitAreas,
32
- treeElement
26
+ _container: container,
27
+ _refreshHitAreas: refreshHitAreas
33
28
  });
34
29
  }
30
+ return new DocumentScrollParent({
31
+ _refreshHitAreas: refreshHitAreas,
32
+ _treeElement: treeElement
33
+ });
35
34
  };
36
35
 
37
36
  export { createScrollParent as default };
@@ -1 +1 @@
1
- {"version":3,"file":"createScrollParent.js","sources":["../../src/scrollHandler/createScrollParent.ts"],"sourcesContent":["import type { ScrollParent } from \"./scrollParent\";\n\nimport ContainerScrollParent from \"./containerScrollParent\";\nimport DocumentScrollParent from \"./documentScrollParent\";\n\nconst isOverflow = (overflowValue: string) =>\n overflowValue === \"auto\" || overflowValue === \"scroll\";\n\nconst hasOverFlow = (element: HTMLElement): boolean => {\n const style = getComputedStyle(element);\n\n return isOverflow(style.overflowX) || isOverflow(style.overflowY);\n};\n\nconst getParentWithOverflow = (\n treeElement: HTMLElement,\n): HTMLElement | null => {\n if (hasOverFlow(treeElement)) {\n return treeElement;\n }\n\n let parent = treeElement.parentElement;\n\n while (parent) {\n if (hasOverFlow(parent)) {\n return parent;\n }\n\n parent = parent.parentElement;\n }\n\n return null;\n};\n\nconst createScrollParent = (\n treeElement: HTMLElement,\n refreshHitAreas: () => void,\n): ScrollParent => {\n const container = getParentWithOverflow(treeElement);\n\n if (container && container.tagName !== \"HTML\") {\n return new ContainerScrollParent({\n container,\n refreshHitAreas,\n });\n } else {\n return new DocumentScrollParent({ refreshHitAreas, treeElement });\n }\n};\n\nexport default createScrollParent;\n"],"names":[],"mappings":";;;AAKA,MAAM,UAAU,GAAI,aAAqB,IACrC,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,QAAQ;AAE1D,MAAM,WAAW,GAAI,OAAoB,IAAc;AACnD,EAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC;AAEvC,EAAA,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;AACrE,CAAC;AAED,MAAM,qBAAqB,GACvB,WAAwB,IACH;AACrB,EAAA,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE;AAC1B,IAAA,OAAO,WAAW;AACtB,EAAA;AAEA,EAAA,IAAI,MAAM,GAAG,WAAW,CAAC,aAAa;AAEtC,EAAA,OAAO,MAAM,EAAE;AACX,IAAA,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;AACrB,MAAA,OAAO,MAAM;AACjB,IAAA;IAEA,MAAM,GAAG,MAAM,CAAC,aAAa;AACjC,EAAA;AAEA,EAAA,OAAO,IAAI;AACf,CAAC;AAED,MAAM,kBAAkB,GAAG,CACvB,WAAwB,EACxB,eAA2B,KACZ;AACf,EAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC;AAEpD,EAAA,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM,EAAE;IAC3C,OAAO,IAAI,qBAAqB,CAAC;MAC7B,SAAS;AACT,MAAA;AACJ,KAAC,CAAC;AACN,EAAA,CAAC,MAAM;IACH,OAAO,IAAI,oBAAoB,CAAC;MAAE,eAAe;AAAE,MAAA;AAAY,KAAC,CAAC;AACrE,EAAA;AACJ;;"}
1
+ {"version":3,"file":"createScrollParent.js","sources":["../../src/scrollHandler/createScrollParent.ts"],"sourcesContent":["import type { ScrollParent } from \"./scrollParent\";\n\nimport ContainerScrollParent from \"./containerScrollParent\";\nimport DocumentScrollParent from \"./documentScrollParent\";\n\nconst isOverflow = (overflowValue: string) =>\n overflowValue === \"auto\" || overflowValue === \"scroll\";\n\nconst hasOverFlow = (element: HTMLElement): boolean => {\n const style = getComputedStyle(element);\n\n return isOverflow(style.overflowX) || isOverflow(style.overflowY);\n};\n\nconst getParentWithOverflow = (\n treeElement: HTMLElement,\n): HTMLElement | null => {\n if (hasOverFlow(treeElement)) {\n return treeElement;\n }\n\n let parent = treeElement.parentElement;\n\n while (parent) {\n if (hasOverFlow(parent)) {\n return parent;\n }\n\n parent = parent.parentElement;\n }\n\n return null;\n};\n\nconst createScrollParent = (\n treeElement: HTMLElement,\n refreshHitAreas: () => void,\n): ScrollParent => {\n const container = getParentWithOverflow(treeElement);\n\n if (container && container.tagName !== \"HTML\") {\n return new ContainerScrollParent({\n container,\n refreshHitAreas,\n });\n }\n return new DocumentScrollParent({ refreshHitAreas, treeElement });\n};\n\nexport default createScrollParent;\n"],"names":[],"mappings":";;;AAKA,IAAM,UAAU,GAAI,aAAqB,IACvC,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,QAAQ;AAExD,IAAM,WAAW,GAAI,OAAoB,IAAc;AACrD,EAAA,IAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC;AAEvC,EAAA,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;AACnE,CAAC;AAED,IAAM,qBAAqB,GACzB,WAAwB,IACD;AACvB,EAAA,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE;AAC5B,IAAA,OAAO,WAAW;AACpB,EAAA;AAEA,EAAA,IAAI,MAAM,GAAG,WAAW,CAAC,aAAa;AAEtC,EAAA,OAAO,MAAM,EAAE;AACb,IAAA,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;AACvB,MAAA,OAAO,MAAM;AACf,IAAA;IAEA,MAAM,GAAG,MAAM,CAAC,aAAa;AAC/B,EAAA;AAEA,EAAA,OAAO,IAAI;AACb,CAAC;AAED,IAAM,kBAAkB,GAAG,CACzB,WAAwB,EACxB,eAA2B,KACV;AACjB,EAAA,IAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC;AAEpD,EAAA,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM,EAAE;IAC7C,OAAO,IAAI,qBAAqB,CAAC;MAC/B,UAAA,EAAA,SAAS;AACT,MAAA,gBAAA,EAAA;AACF,KAAC,CAAC;AACJ,EAAA;EACA,OAAO,IAAI,oBAAoB,CAAC;IAAE,gBAAA,EAAA,eAAe;AAAE,IAAA,YAAA,EAAA;AAAY,GAAC,CAAC;AACnE;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"documentScrollParent.d.ts","sourceRoot":"","sources":["../../src/scrollHandler/documentScrollParent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,yBAAyB,EACzB,uBAAuB,EAC1B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,UAAU,MAAM;IACZ,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,YAAY;IAC1D,OAAO,CAAC,oBAAoB,CAAC,CAAS;IACtC,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,WAAW,CAAc;gBAErB,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,MAAM;IAM7C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM5B,aAAa;IAOpB,SAAS,CAAC,+BAA+B,CACrC,KAAK,EAAE,MAAM,GACd,yBAAyB,GAAG,SAAS;IAkBxC,SAAS,CAAC,6BAA6B,CACnC,KAAK,EAAE,MAAM,GACd,SAAS,GAAG,uBAAuB;IAiBtC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,sBAAsB;CAMjC"}
1
+ {"version":3,"file":"documentScrollParent.d.ts","sourceRoot":"","sources":["../../src/scrollHandler/documentScrollParent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,UAAU,MAAM;IACd,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,YAAY;IAC5D,OAAO,CAAC,oBAAoB,CAAC,CAAS;IACtC,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,WAAW,CAAc;gBAErB,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,MAAM;IAM7C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM5B,aAAa;IAOpB,SAAS,CAAC,+BAA+B,CACvC,KAAK,EAAE,MAAM,GACZ,yBAAyB,GAAG,SAAS;IAcxC,SAAS,CAAC,6BAA6B,CACrC,KAAK,EAAE,MAAM,GACZ,SAAS,GAAG,uBAAuB;IAetC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,sBAAsB;CAM/B"}
@@ -2,52 +2,43 @@ import { getOffsetTop } from '../positionUtils.js';
2
2
  import { ScrollParent } from './scrollParent.js';
3
3
 
4
4
  class DocumentScrollParent extends ScrollParent {
5
- _documentScrollHeight;
6
- _documentScrollWidth;
7
- _treeElement;
8
5
  constructor({
9
- refreshHitAreas,
10
- treeElement
6
+ _refreshHitAreas: refreshHitAreas,
7
+ _treeElement: treeElement
11
8
  }) {
12
9
  super({
13
- container: document.documentElement,
14
- refreshHitAreas
10
+ _container: document.documentElement,
11
+ _refreshHitAreas: refreshHitAreas
15
12
  });
16
13
  this._treeElement = treeElement;
17
14
  }
18
- scrollToY(top) {
19
- const treeTop = getOffsetTop(this._treeElement);
20
- super.scrollToY(top + treeTop);
15
+ _scrollToY(top) {
16
+ let treeTop = getOffsetTop(this._treeElement);
17
+ super._scrollToY(top + treeTop);
21
18
  }
22
- stopScrolling() {
23
- super.stopScrolling();
19
+ _stopScrolling() {
20
+ super._stopScrolling();
24
21
  this._documentScrollHeight = undefined;
25
22
  this._documentScrollWidth = undefined;
26
23
  }
27
24
  _getNewHorizontalScrollDirection(pageX) {
28
- const scrollLeft = this._container.scrollLeft;
29
- const windowWidth = window.innerWidth;
30
- const isNearRightEdge = pageX > windowWidth - 20;
31
- const isNearLeftEdge = pageX - scrollLeft < 20;
25
+ let scrollLeft = this._container.scrollLeft;
26
+ let windowWidth = window.innerWidth;
27
+ let isNearRightEdge = pageX > windowWidth - 20;
32
28
  if (isNearRightEdge && this._canScrollRight()) {
33
29
  return "right";
34
30
  }
35
- if (isNearLeftEdge) {
36
- return "left";
37
- }
38
- return undefined;
31
+ let isNearLeftEdge = pageX - scrollLeft < 20;
32
+ return isNearLeftEdge ? "left" : undefined;
39
33
  }
40
34
  _getNewVerticalScrollDirection(pageY) {
41
- const scrollTop = this._container.scrollTop;
42
- const distanceTop = pageY - scrollTop;
35
+ let scrollTop = this._container.scrollTop;
36
+ let distanceTop = pageY - scrollTop;
43
37
  if (distanceTop < 20) {
44
38
  return "top";
45
39
  }
46
- const windowHeight = window.innerHeight;
47
- if (windowHeight - (pageY - scrollTop) < 20 && this._canScrollDown()) {
48
- return "bottom";
49
- }
50
- return undefined;
40
+ let windowHeight = window.innerHeight;
41
+ return windowHeight - (pageY - scrollTop) < 20 && this._canScrollDown() ? "bottom" : undefined;
51
42
  }
52
43
  _canScrollDown() {
53
44
  return this._container.scrollTop + this._container.clientHeight < this._getDocumentScrollHeight();
@@ -1 +1 @@
1
- {"version":3,"file":"documentScrollParent.js","sources":["../../src/scrollHandler/documentScrollParent.ts"],"sourcesContent":["import type {\n HorizontalScrollDirection,\n VerticalScrollDirection,\n} from \"./scrollParent\";\n\nimport { getOffsetTop } from \"../positionUtils\";\nimport { ScrollParent } from \"./scrollParent\";\n\ninterface Params {\n refreshHitAreas: () => void;\n treeElement: HTMLElement;\n}\n\nexport default class DocumentScrollParent extends ScrollParent {\n private documentScrollHeight?: number;\n private documentScrollWidth?: number;\n private treeElement: HTMLElement;\n\n constructor({ refreshHitAreas, treeElement }: Params) {\n super({ container: document.documentElement, refreshHitAreas });\n\n this.treeElement = treeElement;\n }\n\n public scrollToY(top: number): void {\n const treeTop = getOffsetTop(this.treeElement);\n\n super.scrollToY(top + treeTop);\n }\n\n public stopScrolling() {\n super.stopScrolling();\n\n this.documentScrollHeight = undefined;\n this.documentScrollWidth = undefined;\n }\n\n protected getNewHorizontalScrollDirection(\n pageX: number,\n ): HorizontalScrollDirection | undefined {\n const scrollLeft = this.container.scrollLeft;\n const windowWidth = window.innerWidth;\n\n const isNearRightEdge = pageX > windowWidth - 20;\n const isNearLeftEdge = pageX - scrollLeft < 20;\n\n if (isNearRightEdge && this.canScrollRight()) {\n return \"right\";\n }\n\n if (isNearLeftEdge) {\n return \"left\";\n }\n\n return undefined;\n }\n\n protected getNewVerticalScrollDirection(\n pageY: number,\n ): undefined | VerticalScrollDirection {\n const scrollTop = this.container.scrollTop;\n const distanceTop = pageY - scrollTop;\n\n if (distanceTop < 20) {\n return \"top\";\n }\n\n const windowHeight = window.innerHeight;\n\n if (windowHeight - (pageY - scrollTop) < 20 && this.canScrollDown()) {\n return \"bottom\";\n }\n\n return undefined;\n }\n\n private canScrollDown() {\n return (\n this.container.scrollTop + this.container.clientHeight <\n this.getDocumentScrollHeight()\n );\n }\n\n private canScrollRight() {\n return (\n this.container.scrollLeft + this.container.clientWidth <\n this.getDocumentScrollWidth()\n );\n }\n\n private getDocumentScrollHeight() {\n // Store the original scroll height because the scroll height can increase when the drag element is moved beyond the scroll height.\n this.documentScrollHeight ??= this.container.scrollHeight;\n\n return this.documentScrollHeight;\n }\n\n private getDocumentScrollWidth() {\n // Store the original scroll width because the scroll width can increase when the drag element is moved beyond the scroll width.\n this.documentScrollWidth ??= this.container.scrollWidth;\n\n return this.documentScrollWidth;\n }\n}\n"],"names":["documentScrollHeight","documentScrollWidth","treeElement","getNewHorizontalScrollDirection","container","canScrollRight","getNewVerticalScrollDirection","canScrollDown","getDocumentScrollHeight","getDocumentScrollWidth"],"mappings":";;;AAae,MAAM,oBAAoB,SAAS,YAAY,CAAC;EACnDA,qBAAoB;EACpBC,oBAAmB;EACnBC,YAAW;AAEnB,EAAA,WAAW,CAAC;IAAE,eAAe;AAAE,IAAA;AAAoB,GAAC,EAAE;AAClD,IAAA,KAAK,CAAC;MAAE,SAAS,EAAE,QAAQ,CAAC,eAAe;AAAE,MAAA;AAAgB,KAAC,CAAC;IAE/D,IAAI,CAACA,YAAW,GAAG,WAAW;AAClC,EAAA;EAEO,SAAS,CAAC,GAAW,EAAQ;AAChC,IAAA,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAACA,YAAW,CAAC;AAE9C,IAAA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC;AAClC,EAAA;AAEO,EAAA,aAAa,GAAG;IACnB,KAAK,CAAC,aAAa,EAAE;IAErB,IAAI,CAACF,qBAAoB,GAAG,SAAS;IACrC,IAAI,CAACC,oBAAmB,GAAG,SAAS;AACxC,EAAA;EAEUE,gCAA+BA,CACrC,KAAa,EACwB;AACrC,IAAA,MAAM,UAAU,GAAG,IAAI,CAACC,UAAS,CAAC,UAAU;AAC5C,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU;AAErC,IAAA,MAAM,eAAe,GAAG,KAAK,GAAG,WAAW,GAAG,EAAE;AAChD,IAAA,MAAM,cAAc,GAAG,KAAK,GAAG,UAAU,GAAG,EAAE;AAE9C,IAAA,IAAI,eAAe,IAAI,IAAI,CAACC,eAAc,EAAE,EAAE;AAC1C,MAAA,OAAO,OAAO;AAClB,IAAA;AAEA,IAAA,IAAI,cAAc,EAAE;AAChB,MAAA,OAAO,MAAM;AACjB,IAAA;AAEA,IAAA,OAAO,SAAS;AACpB,EAAA;EAEUC,8BAA6BA,CACnC,KAAa,EACsB;AACnC,IAAA,MAAM,SAAS,GAAG,IAAI,CAACF,UAAS,CAAC,SAAS;AAC1C,IAAA,MAAM,WAAW,GAAG,KAAK,GAAG,SAAS;IAErC,IAAI,WAAW,GAAG,EAAE,EAAE;AAClB,MAAA,OAAO,KAAK;AAChB,IAAA;AAEA,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW;AAEvC,IAAA,IAAI,YAAY,IAAI,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,IAAI,CAACG,cAAa,EAAE,EAAE;AACjE,MAAA,OAAO,QAAQ;AACnB,IAAA;AAEA,IAAA,OAAO,SAAS;AACpB,EAAA;AAEQA,EAAAA,cAAaA,GAAG;AACpB,IAAA,OACI,IAAI,CAACH,UAAS,CAAC,SAAS,GAAG,IAAI,CAACA,UAAS,CAAC,YAAY,GACtD,IAAI,CAACI,wBAAuB,EAAE;AAEtC,EAAA;AAEQH,EAAAA,eAAcA,GAAG;AACrB,IAAA,OACI,IAAI,CAACD,UAAS,CAAC,UAAU,GAAG,IAAI,CAACA,UAAS,CAAC,WAAW,GACtD,IAAI,CAACK,uBAAsB,EAAE;AAErC,EAAA;AAEQD,EAAAA,wBAAuBA,GAAG;AAC9B;AACA,IAAA,IAAI,CAACR,qBAAoB,KAAK,IAAI,CAACI,UAAS,CAAC,YAAY;IAEzD,OAAO,IAAI,CAACJ,qBAAoB;AACpC,EAAA;AAEQS,EAAAA,uBAAsBA,GAAG;AAC7B;AACA,IAAA,IAAI,CAACR,oBAAmB,KAAK,IAAI,CAACG,UAAS,CAAC,WAAW;IAEvD,OAAO,IAAI,CAACH,oBAAmB;AACnC,EAAA;AACJ;;"}
1
+ {"version":3,"file":"documentScrollParent.js","sources":["../../src/scrollHandler/documentScrollParent.ts"],"sourcesContent":["import type {\n HorizontalScrollDirection,\n VerticalScrollDirection,\n} from \"./scrollParent\";\n\nimport { getOffsetTop } from \"../positionUtils\";\nimport { ScrollParent } from \"./scrollParent\";\n\ninterface Params {\n refreshHitAreas: () => void;\n treeElement: HTMLElement;\n}\n\nexport default class DocumentScrollParent extends ScrollParent {\n private documentScrollHeight?: number;\n private documentScrollWidth?: number;\n private treeElement: HTMLElement;\n\n constructor({ refreshHitAreas, treeElement }: Params) {\n super({ container: document.documentElement, refreshHitAreas });\n\n this.treeElement = treeElement;\n }\n\n public scrollToY(top: number): void {\n const treeTop = getOffsetTop(this.treeElement);\n\n super.scrollToY(top + treeTop);\n }\n\n public stopScrolling() {\n super.stopScrolling();\n\n this.documentScrollHeight = undefined;\n this.documentScrollWidth = undefined;\n }\n\n protected getNewHorizontalScrollDirection(\n pageX: number,\n ): HorizontalScrollDirection | undefined {\n const scrollLeft = this.container.scrollLeft;\n const windowWidth = window.innerWidth;\n\n const isNearRightEdge = pageX > windowWidth - 20;\n\n if (isNearRightEdge && this.canScrollRight()) {\n return \"right\";\n }\n\n const isNearLeftEdge = pageX - scrollLeft < 20;\n return isNearLeftEdge ? \"left\" : undefined;\n }\n\n protected getNewVerticalScrollDirection(\n pageY: number,\n ): undefined | VerticalScrollDirection {\n const scrollTop = this.container.scrollTop;\n const distanceTop = pageY - scrollTop;\n\n if (distanceTop < 20) {\n return \"top\";\n }\n\n const windowHeight = window.innerHeight;\n\n return windowHeight - (pageY - scrollTop) < 20 && this.canScrollDown()\n ? \"bottom\"\n : undefined;\n }\n\n private canScrollDown() {\n return (\n this.container.scrollTop + this.container.clientHeight <\n this.getDocumentScrollHeight()\n );\n }\n\n private canScrollRight() {\n return (\n this.container.scrollLeft + this.container.clientWidth <\n this.getDocumentScrollWidth()\n );\n }\n\n private getDocumentScrollHeight() {\n // Store the original scroll height because the scroll height can increase when the drag element is moved beyond the scroll height.\n this.documentScrollHeight ??= this.container.scrollHeight;\n\n return this.documentScrollHeight;\n }\n\n private getDocumentScrollWidth() {\n // Store the original scroll width because the scroll width can increase when the drag element is moved beyond the scroll width.\n this.documentScrollWidth ??= this.container.scrollWidth;\n\n return this.documentScrollWidth;\n }\n}\n"],"names":["treeElement","scrollToY","stopScrolling","documentScrollHeight","documentScrollWidth","getNewHorizontalScrollDirection","container","canScrollRight","getNewVerticalScrollDirection","canScrollDown","getDocumentScrollHeight","getDocumentScrollWidth"],"mappings":";;;AAae,MAAM,oBAAoB,SAAS,YAAY,CAAC;AAK7D,EAAA,WAAW,CAAC;IAAE,gBAAA,EAAA,eAAe;AAAE,IAAA,YAAA,EAAA;AAAoB,GAAC,EAAE;AACpD,IAAA,KAAK,CAAC;MAAE,UAAA,EAAW,QAAQ,CAAC,eAAe;AAAE,MAAA,gBAAA,EAAA;AAAgB,KAAC,CAAC;IAE/D,IAAI,CAACA,YAAW,GAAG,WAAW;AAChC,EAAA;EAEOC,UAASA,CAAC,GAAW,EAAQ;AAClC,IAAA,IAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAACD,YAAW,CAAC;AAE9C,IAAA,KAAK,CAACC,UAAS,CAAC,GAAG,GAAG,OAAO,CAAC;AAChC,EAAA;AAEOC,EAAAA,cAAaA,GAAG;IACrB,KAAK,CAACA,cAAa,EAAE;IAErB,IAAI,CAACC,qBAAoB,GAAG,SAAS;IACrC,IAAI,CAACC,oBAAmB,GAAG,SAAS;AACtC,EAAA;EAEUC,gCAA+BA,CACvC,KAAa,EAC0B;AACvC,IAAA,IAAM,UAAU,GAAG,IAAI,CAACC,UAAS,CAAC,UAAU;AAC5C,IAAA,IAAM,WAAW,GAAG,MAAM,CAAC,UAAU;AAErC,IAAA,IAAM,eAAe,GAAG,KAAK,GAAG,WAAW,GAAG,EAAE;AAEhD,IAAA,IAAI,eAAe,IAAI,IAAI,CAACC,eAAc,EAAE,EAAE;AAC5C,MAAA,OAAO,OAAO;AAChB,IAAA;AAEA,IAAA,IAAM,cAAc,GAAG,KAAK,GAAG,UAAU,GAAG,EAAE;AAC9C,IAAA,OAAO,cAAc,GAAG,MAAM,GAAG,SAAS;AAC5C,EAAA;EAEUC,8BAA6BA,CACrC,KAAa,EACwB;AACrC,IAAA,IAAM,SAAS,GAAG,IAAI,CAACF,UAAS,CAAC,SAAS;AAC1C,IAAA,IAAM,WAAW,GAAG,KAAK,GAAG,SAAS;IAErC,IAAI,WAAW,GAAG,EAAE,EAAE;AACpB,MAAA,OAAO,KAAK;AACd,IAAA;AAEA,IAAA,IAAM,YAAY,GAAG,MAAM,CAAC,WAAW;AAEvC,IAAA,OAAO,YAAY,IAAI,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,IAAI,CAACG,cAAa,EAAE,GAClE,QAAQ,GACR,SAAS;AACf,EAAA;AAEQA,EAAAA,cAAaA,GAAG;AACtB,IAAA,OACE,IAAI,CAACH,UAAS,CAAC,SAAS,GAAG,IAAI,CAACA,UAAS,CAAC,YAAY,GACtD,IAAI,CAACI,wBAAuB,EAAE;AAElC,EAAA;AAEQH,EAAAA,eAAcA,GAAG;AACvB,IAAA,OACE,IAAI,CAACD,UAAS,CAAC,UAAU,GAAG,IAAI,CAACA,UAAS,CAAC,WAAW,GACtD,IAAI,CAACK,uBAAsB,EAAE;AAEjC,EAAA;AAEQD,EAAAA,wBAAuBA,GAAG;AAChC;AACA,IAAA,IAAI,CAACP,qBAAoB,KAAK,IAAI,CAACG,UAAS,CAAC,YAAY;IAEzD,OAAO,IAAI,CAACH,qBAAoB;AAClC,EAAA;AAEQQ,EAAAA,uBAAsBA,GAAG;AAC/B;AACA,IAAA,IAAI,CAACP,oBAAmB,KAAK,IAAI,CAACE,UAAS,CAAC,WAAW;IAEvD,OAAO,IAAI,CAACF,oBAAmB;AACjC,EAAA;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"scrollParent.d.ts","sourceRoot":"","sources":["../../src/scrollHandler/scrollParent.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEvD,UAAU,iBAAiB;IACvB,SAAS,EAAE,WAAW,CAAC;IACvB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,8BAAsB,YAAY;IAC9B,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC;IACjC,SAAS,CAAC,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IAChE,SAAS,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAE3C,SAAS,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;IACtC,SAAS,CAAC,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAC5D,SAAS,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;gBAE7B,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,iBAAiB;IAKtD,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAoB7C,sBAAsB,CAAC,KAAK,EAAE,MAAM;IAqBpC,aAAa,IAAI,MAAM;IAIvB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI5B,aAAa;IAKpB,SAAS,CAAC,QAAQ,CAAC,+BAA+B,CAC9C,KAAK,EAAE,MAAM,GACd,yBAAyB,GAAG,SAAS;IACxC,SAAS,CAAC,QAAQ,CAAC,6BAA6B,CAC5C,KAAK,EAAE,MAAM,GACd,SAAS,GAAG,uBAAuB;IAEtC,SAAS,CAAC,kBAAkB;IAiB5B,SAAS,CAAC,gBAAgB;CAgB7B"}
1
+ {"version":3,"file":"scrollParent.d.ts","sourceRoot":"","sources":["../../src/scrollHandler/scrollParent.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEvD,UAAU,iBAAiB;IACzB,SAAS,EAAE,WAAW,CAAC;IACvB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,8BAAsB,YAAY;IAChC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC;IACjC,SAAS,CAAC,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IAChE,SAAS,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAE3C,SAAS,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;IACtC,SAAS,CAAC,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAC5D,SAAS,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;gBAE7B,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,iBAAiB;IAKtD,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAsB7C,sBAAsB,CAAC,KAAK,EAAE,MAAM;IAuBpC,aAAa,IAAI,MAAM;IAIvB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI5B,aAAa;IAKpB,SAAS,CAAC,QAAQ,CAAC,+BAA+B,CAChD,KAAK,EAAE,MAAM,GACZ,yBAAyB,GAAG,SAAS;IACxC,SAAS,CAAC,QAAQ,CAAC,6BAA6B,CAC9C,KAAK,EAAE,MAAM,GACZ,SAAS,GAAG,uBAAuB;IAEtC,SAAS,CAAC,kBAAkB;IAiB5B,SAAS,CAAC,gBAAgB;CAgB3B"}
@@ -1,49 +1,45 @@
1
1
  class ScrollParent {
2
- _container;
3
- _horizontalScrollDirection;
4
- _horizontalScrollTimeout;
5
- _refreshHitAreas;
6
- _verticalScrollDirection;
7
- _verticalScrollTimeout;
8
2
  constructor({
9
- container,
10
- refreshHitAreas
3
+ _container: container,
4
+ _refreshHitAreas: refreshHitAreas
11
5
  }) {
12
6
  this._container = container;
13
7
  this._refreshHitAreas = refreshHitAreas;
14
8
  }
15
- checkHorizontalScrolling(pageX) {
16
- const newHorizontalScrollDirection = this._getNewHorizontalScrollDirection(pageX);
17
- if (this._horizontalScrollDirection !== newHorizontalScrollDirection) {
18
- this._horizontalScrollDirection = newHorizontalScrollDirection;
19
- if (this._horizontalScrollTimeout != null) {
20
- window.clearTimeout(this._horizontalScrollTimeout);
21
- }
22
- if (newHorizontalScrollDirection) {
23
- this._horizontalScrollTimeout = window.setTimeout(this._scrollHorizontally.bind(this), 40);
24
- }
9
+ _checkHorizontalScrolling(pageX) {
10
+ let newHorizontalScrollDirection = this._getNewHorizontalScrollDirection(pageX);
11
+ if (this._horizontalScrollDirection === newHorizontalScrollDirection) {
12
+ return;
13
+ }
14
+ this._horizontalScrollDirection = newHorizontalScrollDirection;
15
+ if (this._horizontalScrollTimeout != null) {
16
+ window.clearTimeout(this._horizontalScrollTimeout);
17
+ }
18
+ if (newHorizontalScrollDirection) {
19
+ this._horizontalScrollTimeout = window.setTimeout(this._scrollHorizontally.bind(this), 40);
25
20
  }
26
21
  }
27
- checkVerticalScrolling(pageY) {
28
- const newVerticalScrollDirection = this._getNewVerticalScrollDirection(pageY);
29
- if (this._verticalScrollDirection !== newVerticalScrollDirection) {
30
- this._verticalScrollDirection = newVerticalScrollDirection;
31
- if (this._verticalScrollTimeout != null) {
32
- window.clearTimeout(this._verticalScrollTimeout);
33
- this._verticalScrollTimeout = undefined;
34
- }
35
- if (newVerticalScrollDirection) {
36
- this._verticalScrollTimeout = window.setTimeout(this._scrollVertically.bind(this), 40);
37
- }
22
+ _checkVerticalScrolling(pageY) {
23
+ let newVerticalScrollDirection = this._getNewVerticalScrollDirection(pageY);
24
+ if (this._verticalScrollDirection === newVerticalScrollDirection) {
25
+ return;
26
+ }
27
+ this._verticalScrollDirection = newVerticalScrollDirection;
28
+ if (this._verticalScrollTimeout != null) {
29
+ window.clearTimeout(this._verticalScrollTimeout);
30
+ this._verticalScrollTimeout = undefined;
31
+ }
32
+ if (newVerticalScrollDirection) {
33
+ this._verticalScrollTimeout = window.setTimeout(this._scrollVertically.bind(this), 40);
38
34
  }
39
35
  }
40
- getScrollLeft() {
36
+ _getScrollLeft() {
41
37
  return this._container.scrollLeft;
42
38
  }
43
- scrollToY(top) {
39
+ _scrollToY(top) {
44
40
  this._container.scrollTop = top;
45
41
  }
46
- stopScrolling() {
42
+ _stopScrolling() {
47
43
  this._horizontalScrollDirection = undefined;
48
44
  this._verticalScrollDirection = undefined;
49
45
  }
@@ -51,7 +47,7 @@ class ScrollParent {
51
47
  if (!this._horizontalScrollDirection) {
52
48
  return;
53
49
  }
54
- const distance = this._horizontalScrollDirection === "left" ? -20 : 20;
50
+ let distance = this._horizontalScrollDirection === "left" ? -20 : 20;
55
51
  this._container.scrollBy({
56
52
  behavior: "instant",
57
53
  left: distance,
@@ -64,7 +60,7 @@ class ScrollParent {
64
60
  if (!this._verticalScrollDirection) {
65
61
  return;
66
62
  }
67
- const distance = this._verticalScrollDirection === "top" ? -20 : 20;
63
+ let distance = this._verticalScrollDirection === "top" ? -20 : 20;
68
64
  this._container.scrollBy({
69
65
  behavior: "instant",
70
66
  left: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"scrollParent.js","sources":["../../src/scrollHandler/scrollParent.ts"],"sourcesContent":["export type HorizontalScrollDirection = \"left\" | \"right\";\nexport type VerticalScrollDirection = \"bottom\" | \"top\";\n\ninterface ConstructorParams {\n container: HTMLElement;\n refreshHitAreas: () => void;\n}\n\nexport abstract class ScrollParent {\n protected container: HTMLElement;\n protected horizontalScrollDirection?: HorizontalScrollDirection;\n protected horizontalScrollTimeout?: number;\n\n protected refreshHitAreas: () => void;\n protected verticalScrollDirection?: VerticalScrollDirection;\n protected verticalScrollTimeout?: number;\n\n constructor({ container, refreshHitAreas }: ConstructorParams) {\n this.container = container;\n this.refreshHitAreas = refreshHitAreas;\n }\n\n public checkHorizontalScrolling(pageX: number): void {\n const newHorizontalScrollDirection =\n this.getNewHorizontalScrollDirection(pageX);\n\n if (this.horizontalScrollDirection !== newHorizontalScrollDirection) {\n this.horizontalScrollDirection = newHorizontalScrollDirection;\n\n if (this.horizontalScrollTimeout != null) {\n window.clearTimeout(this.horizontalScrollTimeout);\n }\n\n if (newHorizontalScrollDirection) {\n this.horizontalScrollTimeout = window.setTimeout(\n this.scrollHorizontally.bind(this),\n 40,\n );\n }\n }\n }\n\n public checkVerticalScrolling(pageY: number) {\n const newVerticalScrollDirection =\n this.getNewVerticalScrollDirection(pageY);\n\n if (this.verticalScrollDirection !== newVerticalScrollDirection) {\n this.verticalScrollDirection = newVerticalScrollDirection;\n\n if (this.verticalScrollTimeout != null) {\n window.clearTimeout(this.verticalScrollTimeout);\n this.verticalScrollTimeout = undefined;\n }\n\n if (newVerticalScrollDirection) {\n this.verticalScrollTimeout = window.setTimeout(\n this.scrollVertically.bind(this),\n 40,\n );\n }\n }\n }\n\n public getScrollLeft(): number {\n return this.container.scrollLeft;\n }\n\n public scrollToY(top: number): void {\n this.container.scrollTop = top;\n }\n\n public stopScrolling() {\n this.horizontalScrollDirection = undefined;\n this.verticalScrollDirection = undefined;\n }\n\n protected abstract getNewHorizontalScrollDirection(\n pageX: number,\n ): HorizontalScrollDirection | undefined;\n protected abstract getNewVerticalScrollDirection(\n pageY: number,\n ): undefined | VerticalScrollDirection;\n\n protected scrollHorizontally() {\n if (!this.horizontalScrollDirection) {\n return;\n }\n\n const distance = this.horizontalScrollDirection === \"left\" ? -20 : 20;\n this.container.scrollBy({\n behavior: \"instant\",\n left: distance,\n top: 0,\n });\n\n this.refreshHitAreas();\n\n setTimeout(this.scrollHorizontally.bind(this), 40);\n }\n\n protected scrollVertically() {\n if (!this.verticalScrollDirection) {\n return;\n }\n\n const distance = this.verticalScrollDirection === \"top\" ? -20 : 20;\n this.container.scrollBy({\n behavior: \"instant\",\n left: 0,\n top: distance,\n });\n\n this.refreshHitAreas();\n\n setTimeout(this.scrollVertically.bind(this), 40);\n }\n}\n"],"names":["container","horizontalScrollDirection","horizontalScrollTimeout","refreshHitAreas","verticalScrollDirection","verticalScrollTimeout","getNewHorizontalScrollDirection","scrollHorizontally","getNewVerticalScrollDirection","scrollVertically"],"mappings":"AAQO,MAAe,YAAY,CAAC;EACrBA,UAAS;EACTC,0BAAyB;EACzBC,wBAAuB;EAEvBC,gBAAe;EACfC,wBAAuB;EACvBC,sBAAqB;AAE/B,EAAA,WAAW,CAAC;IAAE,SAAS;AAAE,IAAA;AAAmC,GAAC,EAAE;IAC3D,IAAI,CAACL,UAAS,GAAG,SAAS;IAC1B,IAAI,CAACG,gBAAe,GAAG,eAAe;AAC1C,EAAA;EAEO,wBAAwB,CAAC,KAAa,EAAQ;AACjD,IAAA,MAAM,4BAA4B,GAC9B,IAAI,CAACG,gCAA+B,CAAC,KAAK,CAAC;AAE/C,IAAA,IAAI,IAAI,CAACL,0BAAyB,KAAK,4BAA4B,EAAE;MACjE,IAAI,CAACA,0BAAyB,GAAG,4BAA4B;AAE7D,MAAA,IAAI,IAAI,CAACC,wBAAuB,IAAI,IAAI,EAAE;AACtC,QAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAACA,wBAAuB,CAAC;AACrD,MAAA;AAEA,MAAA,IAAI,4BAA4B,EAAE;AAC9B,QAAA,IAAI,CAACA,wBAAuB,GAAG,MAAM,CAAC,UAAU,CAC5C,IAAI,CAACK,mBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAClC,EACJ,CAAC;AACL,MAAA;AACJ,IAAA;AACJ,EAAA;EAEO,sBAAsB,CAAC,KAAa,EAAE;AACzC,IAAA,MAAM,0BAA0B,GAC5B,IAAI,CAACC,8BAA6B,CAAC,KAAK,CAAC;AAE7C,IAAA,IAAI,IAAI,CAACJ,wBAAuB,KAAK,0BAA0B,EAAE;MAC7D,IAAI,CAACA,wBAAuB,GAAG,0BAA0B;AAEzD,MAAA,IAAI,IAAI,CAACC,sBAAqB,IAAI,IAAI,EAAE;AACpC,QAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAACA,sBAAqB,CAAC;QAC/C,IAAI,CAACA,sBAAqB,GAAG,SAAS;AAC1C,MAAA;AAEA,MAAA,IAAI,0BAA0B,EAAE;AAC5B,QAAA,IAAI,CAACA,sBAAqB,GAAG,MAAM,CAAC,UAAU,CAC1C,IAAI,CAACI,iBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAChC,EACJ,CAAC;AACL,MAAA;AACJ,IAAA;AACJ,EAAA;AAEO,EAAA,aAAa,GAAW;AAC3B,IAAA,OAAO,IAAI,CAACT,UAAS,CAAC,UAAU;AACpC,EAAA;EAEO,SAAS,CAAC,GAAW,EAAQ;AAChC,IAAA,IAAI,CAACA,UAAS,CAAC,SAAS,GAAG,GAAG;AAClC,EAAA;AAEO,EAAA,aAAa,GAAG;IACnB,IAAI,CAACC,0BAAyB,GAAG,SAAS;IAC1C,IAAI,CAACG,wBAAuB,GAAG,SAAS;AAC5C,EAAA;AASUG,EAAAA,mBAAkBA,GAAG;AAC3B,IAAA,IAAI,CAAC,IAAI,CAACN,0BAAyB,EAAE;AACjC,MAAA;AACJ,IAAA;IAEA,MAAM,QAAQ,GAAG,IAAI,CAACA,0BAAyB,KAAK,MAAM,GAAG,GAAG,GAAG,EAAE;AACrE,IAAA,IAAI,CAACD,UAAS,CAAC,QAAQ,CAAC;AACpB,MAAA,QAAQ,EAAE,SAAS;AACnB,MAAA,IAAI,EAAE,QAAQ;AACd,MAAA,GAAG,EAAE;AACT,KAAC,CAAC;IAEF,IAAI,CAACG,gBAAe,EAAE;IAEtB,UAAU,CAAC,IAAI,CAACI,mBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACtD,EAAA;AAEUE,EAAAA,iBAAgBA,GAAG;AACzB,IAAA,IAAI,CAAC,IAAI,CAACL,wBAAuB,EAAE;AAC/B,MAAA;AACJ,IAAA;IAEA,MAAM,QAAQ,GAAG,IAAI,CAACA,wBAAuB,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE;AAClE,IAAA,IAAI,CAACJ,UAAS,CAAC,QAAQ,CAAC;AACpB,MAAA,QAAQ,EAAE,SAAS;AACnB,MAAA,IAAI,EAAE,CAAC;AACP,MAAA,GAAG,EAAE;AACT,KAAC,CAAC;IAEF,IAAI,CAACG,gBAAe,EAAE;IAEtB,UAAU,CAAC,IAAI,CAACM,iBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACpD,EAAA;AACJ;;"}
1
+ {"version":3,"file":"scrollParent.js","sources":["../../src/scrollHandler/scrollParent.ts"],"sourcesContent":["export type HorizontalScrollDirection = \"left\" | \"right\";\nexport type VerticalScrollDirection = \"bottom\" | \"top\";\n\ninterface ConstructorParams {\n container: HTMLElement;\n refreshHitAreas: () => void;\n}\n\nexport abstract class ScrollParent {\n protected container: HTMLElement;\n protected horizontalScrollDirection?: HorizontalScrollDirection;\n protected horizontalScrollTimeout?: number;\n\n protected refreshHitAreas: () => void;\n protected verticalScrollDirection?: VerticalScrollDirection;\n protected verticalScrollTimeout?: number;\n\n constructor({ container, refreshHitAreas }: ConstructorParams) {\n this.container = container;\n this.refreshHitAreas = refreshHitAreas;\n }\n\n public checkHorizontalScrolling(pageX: number): void {\n const newHorizontalScrollDirection =\n this.getNewHorizontalScrollDirection(pageX);\n\n if (this.horizontalScrollDirection === newHorizontalScrollDirection) {\n return;\n }\n\n this.horizontalScrollDirection = newHorizontalScrollDirection;\n\n if (this.horizontalScrollTimeout != null) {\n window.clearTimeout(this.horizontalScrollTimeout);\n }\n\n if (newHorizontalScrollDirection) {\n this.horizontalScrollTimeout = window.setTimeout(\n this.scrollHorizontally.bind(this),\n 40,\n );\n }\n }\n\n public checkVerticalScrolling(pageY: number) {\n const newVerticalScrollDirection =\n this.getNewVerticalScrollDirection(pageY);\n\n if (this.verticalScrollDirection === newVerticalScrollDirection) {\n return;\n }\n\n this.verticalScrollDirection = newVerticalScrollDirection;\n\n if (this.verticalScrollTimeout != null) {\n window.clearTimeout(this.verticalScrollTimeout);\n this.verticalScrollTimeout = undefined;\n }\n\n if (newVerticalScrollDirection) {\n this.verticalScrollTimeout = window.setTimeout(\n this.scrollVertically.bind(this),\n 40,\n );\n }\n }\n\n public getScrollLeft(): number {\n return this.container.scrollLeft;\n }\n\n public scrollToY(top: number): void {\n this.container.scrollTop = top;\n }\n\n public stopScrolling() {\n this.horizontalScrollDirection = undefined;\n this.verticalScrollDirection = undefined;\n }\n\n protected abstract getNewHorizontalScrollDirection(\n pageX: number,\n ): HorizontalScrollDirection | undefined;\n protected abstract getNewVerticalScrollDirection(\n pageY: number,\n ): undefined | VerticalScrollDirection;\n\n protected scrollHorizontally() {\n if (!this.horizontalScrollDirection) {\n return;\n }\n\n const distance = this.horizontalScrollDirection === \"left\" ? -20 : 20;\n this.container.scrollBy({\n behavior: \"instant\",\n left: distance,\n top: 0,\n });\n\n this.refreshHitAreas();\n\n setTimeout(this.scrollHorizontally.bind(this), 40);\n }\n\n protected scrollVertically() {\n if (!this.verticalScrollDirection) {\n return;\n }\n\n const distance = this.verticalScrollDirection === \"top\" ? -20 : 20;\n this.container.scrollBy({\n behavior: \"instant\",\n left: 0,\n top: distance,\n });\n\n this.refreshHitAreas();\n\n setTimeout(this.scrollVertically.bind(this), 40);\n }\n}\n"],"names":["container","refreshHitAreas","checkHorizontalScrolling","getNewHorizontalScrollDirection","horizontalScrollDirection","horizontalScrollTimeout","scrollHorizontally","checkVerticalScrolling","getNewVerticalScrollDirection","verticalScrollDirection","verticalScrollTimeout","scrollVertically","getScrollLeft","scrollToY","stopScrolling"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scrollHandler.d.ts","sourceRoot":"","sources":["../src/scrollHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAKjD,UAAU,mBAAmB;IACzB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,WAAW,CAAc;gBAErB,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,mBAAmB;IAM1D,cAAc,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAKhD,aAAa,IAAI,MAAM;IAIvB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI5B,aAAa;IAIpB,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,eAAe;CAQ1B"}
1
+ {"version":3,"file":"scrollHandler.d.ts","sourceRoot":"","sources":["../src/scrollHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAKjD,UAAU,mBAAmB;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,WAAW,CAAc;gBAErB,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,mBAAmB;IAM1D,cAAc,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAKhD,aAAa,IAAI,MAAM;IAIvB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI5B,aAAa;IAIpB,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,eAAe;CAQxB"}
@@ -1,35 +1,32 @@
1
1
  import createScrollParent from './scrollHandler/createScrollParent.js';
2
2
 
3
3
  class ScrollHandler {
4
- _refreshHitAreas;
5
- _scrollParent;
6
- _treeElement;
7
4
  constructor({
8
- refreshHitAreas,
9
- treeElement
5
+ _refreshHitAreas: refreshHitAreas,
6
+ _treeElement: treeElement
10
7
  }) {
11
8
  this._refreshHitAreas = refreshHitAreas;
12
9
  this._scrollParent = undefined;
13
10
  this._treeElement = treeElement;
14
11
  }
15
- checkScrolling(positionInfo) {
12
+ _checkScrolling(positionInfo) {
16
13
  this._checkVerticalScrolling(positionInfo);
17
14
  this._checkHorizontalScrolling(positionInfo);
18
15
  }
19
- getScrollLeft() {
20
- return this._getScrollParent().getScrollLeft();
16
+ _getScrollLeft() {
17
+ return this._getScrollParent()._getScrollLeft();
21
18
  }
22
- scrollToY(top) {
23
- this._getScrollParent().scrollToY(top);
19
+ _scrollToY(top) {
20
+ this._getScrollParent()._scrollToY(top);
24
21
  }
25
- stopScrolling() {
26
- this._getScrollParent().stopScrolling();
22
+ _stopScrolling() {
23
+ this._getScrollParent()._stopScrolling();
27
24
  }
28
25
  _checkHorizontalScrolling(positionInfo) {
29
- this._getScrollParent().checkHorizontalScrolling(positionInfo.pageX);
26
+ this._getScrollParent()._checkHorizontalScrolling(positionInfo.pageX);
30
27
  }
31
28
  _checkVerticalScrolling(positionInfo) {
32
- this._getScrollParent().checkVerticalScrolling(positionInfo.pageY);
29
+ this._getScrollParent()._checkVerticalScrolling(positionInfo.pageY);
33
30
  }
34
31
  _getScrollParent() {
35
32
  this._scrollParent ??= createScrollParent(this._treeElement, this._refreshHitAreas);
@@ -1 +1 @@
1
- {"version":3,"file":"scrollHandler.js","sources":["../src/scrollHandler.ts"],"sourcesContent":["import type { PositionInfo } from \"./mouseUtils\";\nimport type { ScrollParent } from \"./scrollHandler/scrollParent\";\n\nimport createScrollParent from \"./scrollHandler/createScrollParent\";\n\ninterface ScrollHandlerParams {\n refreshHitAreas: () => void;\n treeElement: HTMLElement;\n}\n\nexport default class ScrollHandler {\n private refreshHitAreas: () => void;\n private scrollParent?: ScrollParent;\n private treeElement: HTMLElement;\n\n constructor({ refreshHitAreas, treeElement }: ScrollHandlerParams) {\n this.refreshHitAreas = refreshHitAreas;\n this.scrollParent = undefined;\n this.treeElement = treeElement;\n }\n\n public checkScrolling(positionInfo: PositionInfo): void {\n this.checkVerticalScrolling(positionInfo);\n this.checkHorizontalScrolling(positionInfo);\n }\n\n public getScrollLeft(): number {\n return this.getScrollParent().getScrollLeft();\n }\n\n public scrollToY(top: number): void {\n this.getScrollParent().scrollToY(top);\n }\n\n public stopScrolling() {\n this.getScrollParent().stopScrolling();\n }\n\n private checkHorizontalScrolling(positionInfo: PositionInfo): void {\n this.getScrollParent().checkHorizontalScrolling(positionInfo.pageX);\n }\n\n private checkVerticalScrolling(positionInfo: PositionInfo): void {\n this.getScrollParent().checkVerticalScrolling(positionInfo.pageY);\n }\n\n private getScrollParent(): ScrollParent {\n this.scrollParent ??= createScrollParent(\n this.treeElement,\n this.refreshHitAreas,\n );\n\n return this.scrollParent;\n }\n}\n"],"names":["refreshHitAreas","scrollParent","treeElement","checkVerticalScrolling","checkHorizontalScrolling","getScrollParent"],"mappings":";;AAUe,MAAM,aAAa,CAAC;EACvBA,gBAAe;EACfC,aAAY;EACZC,YAAW;AAEnB,EAAA,WAAW,CAAC;IAAE,eAAe;AAAE,IAAA;AAAiC,GAAC,EAAE;IAC/D,IAAI,CAACF,gBAAe,GAAG,eAAe;IACtC,IAAI,CAACC,aAAY,GAAG,SAAS;IAC7B,IAAI,CAACC,YAAW,GAAG,WAAW;AAClC,EAAA;EAEO,cAAc,CAAC,YAA0B,EAAQ;AACpD,IAAA,IAAI,CAACC,uBAAsB,CAAC,YAAY,CAAC;AACzC,IAAA,IAAI,CAACC,yBAAwB,CAAC,YAAY,CAAC;AAC/C,EAAA;AAEO,EAAA,aAAa,GAAW;IAC3B,OAAO,IAAI,CAACC,gBAAe,EAAE,CAAC,aAAa,EAAE;AACjD,EAAA;EAEO,SAAS,CAAC,GAAW,EAAQ;IAChC,IAAI,CAACA,gBAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;AACzC,EAAA;AAEO,EAAA,aAAa,GAAG;AACnB,IAAA,IAAI,CAACA,gBAAe,EAAE,CAAC,aAAa,EAAE;AAC1C,EAAA;EAEQD,yBAAwBA,CAAC,YAA0B,EAAQ;IAC/D,IAAI,CAACC,gBAAe,EAAE,CAAC,wBAAwB,CAAC,YAAY,CAAC,KAAK,CAAC;AACvE,EAAA;EAEQF,uBAAsBA,CAAC,YAA0B,EAAQ;IAC7D,IAAI,CAACE,gBAAe,EAAE,CAAC,sBAAsB,CAAC,YAAY,CAAC,KAAK,CAAC;AACrE,EAAA;AAEQA,EAAAA,gBAAeA,GAAiB;AACpC,IAAA,IAAI,CAACJ,aAAY,KAAK,kBAAkB,CACpC,IAAI,CAACC,YAAW,EAChB,IAAI,CAACF,gBACT,CAAC;IAED,OAAO,IAAI,CAACC,aAAY;AAC5B,EAAA;AACJ;;"}
1
+ {"version":3,"file":"scrollHandler.js","sources":["../src/scrollHandler.ts"],"sourcesContent":["import type { PositionInfo } from \"./mouseUtils\";\nimport type { ScrollParent } from \"./scrollHandler/scrollParent\";\n\nimport createScrollParent from \"./scrollHandler/createScrollParent\";\n\ninterface ScrollHandlerParams {\n refreshHitAreas: () => void;\n treeElement: HTMLElement;\n}\n\nexport default class ScrollHandler {\n private refreshHitAreas: () => void;\n private scrollParent?: ScrollParent;\n private treeElement: HTMLElement;\n\n constructor({ refreshHitAreas, treeElement }: ScrollHandlerParams) {\n this.refreshHitAreas = refreshHitAreas;\n this.scrollParent = undefined;\n this.treeElement = treeElement;\n }\n\n public checkScrolling(positionInfo: PositionInfo): void {\n this.checkVerticalScrolling(positionInfo);\n this.checkHorizontalScrolling(positionInfo);\n }\n\n public getScrollLeft(): number {\n return this.getScrollParent().getScrollLeft();\n }\n\n public scrollToY(top: number): void {\n this.getScrollParent().scrollToY(top);\n }\n\n public stopScrolling() {\n this.getScrollParent().stopScrolling();\n }\n\n private checkHorizontalScrolling(positionInfo: PositionInfo): void {\n this.getScrollParent().checkHorizontalScrolling(positionInfo.pageX);\n }\n\n private checkVerticalScrolling(positionInfo: PositionInfo): void {\n this.getScrollParent().checkVerticalScrolling(positionInfo.pageY);\n }\n\n private getScrollParent(): ScrollParent {\n this.scrollParent ??= createScrollParent(\n this.treeElement,\n this.refreshHitAreas,\n );\n\n return this.scrollParent;\n }\n}\n"],"names":["refreshHitAreas","scrollParent","treeElement","checkScrolling","checkVerticalScrolling","checkHorizontalScrolling","getScrollLeft","getScrollParent","scrollToY","stopScrolling"],"mappings":";;AAUe,MAAM,aAAa,CAAC;AAKjC,EAAA,WAAW,CAAC;IAAE,gBAAA,EAAA,eAAe;AAAE,IAAA,YAAA,EAAA;AAAiC,GAAC,EAAE;IACjE,IAAI,CAACA,gBAAe,GAAG,eAAe;IACtC,IAAI,CAACC,aAAY,GAAG,SAAS;IAC7B,IAAI,CAACC,YAAW,GAAG,WAAW;AAChC,EAAA;EAEOC,eAAcA,CAAC,YAA0B,EAAQ;AACtD,IAAA,IAAI,CAACC,uBAAsB,CAAC,YAAY,CAAC;AACzC,IAAA,IAAI,CAACC,yBAAwB,CAAC,YAAY,CAAC;AAC7C,EAAA;AAEOC,EAAAA,cAAaA,GAAW;IAC7B,OAAO,IAAI,CAACC,gBAAe,EAAE,CAACD,cAAa,EAAE;AAC/C,EAAA;EAEOE,UAASA,CAAC,GAAW,EAAQ;IAClC,IAAI,CAACD,gBAAe,EAAE,CAACC,UAAS,CAAC,GAAG,CAAC;AACvC,EAAA;AAEOC,EAAAA,cAAaA,GAAG;AACrB,IAAA,IAAI,CAACF,gBAAe,EAAE,CAACE,cAAa,EAAE;AACxC,EAAA;EAEQJ,yBAAwBA,CAAC,YAA0B,EAAQ;IACjE,IAAI,CAACE,gBAAe,EAAE,CAACF,yBAAwB,CAAC,YAAY,CAAC,KAAK,CAAC;AACrE,EAAA;EAEQD,uBAAsBA,CAAC,YAA0B,EAAQ;IAC/D,IAAI,CAACG,gBAAe,EAAE,CAACH,uBAAsB,CAAC,YAAY,CAAC,KAAK,CAAC;AACnE,EAAA;AAEQG,EAAAA,gBAAeA,GAAiB;AACtC,IAAA,IAAI,CAACN,aAAY,KAAK,kBAAkB,CACtC,IAAI,CAACC,YAAW,EAChB,IAAI,CAACF,gBACP,CAAC;IAED,OAAO,IAAI,CAACC,aAAY;AAC1B,EAAA;AACF;;"}
@@ -13,6 +13,7 @@ interface SelectNodeHandlerParameters {
13
13
  openParents: OpenParents;
14
14
  saveState: () => void;
15
15
  triggerEvent: TriggerEvent;
16
+ updateTabStop: () => void;
16
17
  }
17
18
  export default class SelectNodeHandler {
18
19
  private getNodeById;
@@ -24,10 +25,11 @@ export default class SelectNodeHandler {
24
25
  private selectedNodes;
25
26
  private selectedSingleNode;
26
27
  private triggerEvent;
27
- constructor({ getNodeById, getNodeElementForNode, getOnCanSelectNode, getSelectable, openParents, saveState, triggerEvent }: SelectNodeHandlerParameters);
28
+ private updateTabStop;
29
+ constructor({ getNodeById, getNodeElementForNode, getOnCanSelectNode, getSelectable, openParents, saveState, triggerEvent, updateTabStop, }: SelectNodeHandlerParameters);
28
30
  addToSelection(node: Node): void;
29
31
  clear(): void;
30
- getSelectedNode(): false | Node;
32
+ getSelectedNode(): Node | null;
31
33
  getSelectedNodes(): Node[];
32
34
  getSelectedNodesUnder(parent: Node): Node[];
33
35
  isNodeSelected(node: Node): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"selectNodeHandler.d.ts","sourceRoot":"","sources":["../src/selectNodeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,2BAA2B;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,kBAAkB,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC;IACtD,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,kBAAkB,CAAc;IACxC,OAAO,CAAC,YAAY,CAAe;gBAEvB,EAAE,WAAW,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,2BAA2B;IAYjJ,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQhC,KAAK,IAAI,IAAI;IAKb,eAAe,IAAI,KAAK,GAAG,IAAI;IAU/B,gBAAgB,IAAI,IAAI,EAAE;IAiB1B,qBAAqB,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE;IAqB3C,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAUnC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,UAAQ,GAAG,IAAI;IAgC9D,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,iBAAiB;CA8CvE"}
1
+ {"version":3,"file":"selectNodeHandler.d.ts","sourceRoot":"","sources":["../src/selectNodeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,2BAA2B;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,kBAAkB,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC;IACtD,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,kBAAkB,CAAc;IACxC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAa;gBAEtB,EACV,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,GACd,EAAE,2BAA2B;IAavB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQhC,KAAK,IAAI,IAAI;IAKb,eAAe,IAAI,IAAI,GAAG,IAAI;IAM9B,gBAAgB,IAAI,IAAI,EAAE;IAiB1B,qBAAqB,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE;IAmB3C,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAOnC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,UAAQ,GAAG,IAAI;IA6B9D,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,iBAAiB;CA+CrE"}