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.
- package/README.md +43 -31
- package/lib/animation.d.ts +2 -2
- package/lib/animation.d.ts.map +1 -1
- package/lib/animation.js +16 -12
- package/lib/animation.js.map +1 -1
- package/lib/classNames.d.ts.map +1 -1
- package/lib/classNames.js +2 -2
- package/lib/classNames.js.map +1 -1
- package/lib/dataLoader.d.ts +1 -0
- package/lib/dataLoader.d.ts.map +1 -1
- package/lib/dataLoader.js +22 -20
- package/lib/dataLoader.js.map +1 -1
- package/lib/dragAndDropHandler/binarySearch.js +3 -3
- package/lib/dragAndDropHandler/binarySearch.js.map +1 -1
- package/lib/dragAndDropHandler/dragElement.d.ts.map +1 -1
- package/lib/dragAndDropHandler/dragElement.js +11 -13
- package/lib/dragAndDropHandler/dragElement.js.map +1 -1
- package/lib/dragAndDropHandler/generateHitAreas.d.ts.map +1 -1
- package/lib/dragAndDropHandler/generateHitAreas.js +25 -25
- package/lib/dragAndDropHandler/generateHitAreas.js.map +1 -1
- package/lib/dragAndDropHandler/index.d.ts.map +1 -1
- package/lib/dragAndDropHandler/index.js +125 -158
- package/lib/dragAndDropHandler/index.js.map +1 -1
- package/lib/dragAndDropHandler/iterateVisibleNodes.d.ts.map +1 -1
- package/lib/dragAndDropHandler/iterateVisibleNodes.js +23 -22
- package/lib/dragAndDropHandler/iterateVisibleNodes.js.map +1 -1
- package/lib/dragAndDropHandler/types.d.ts.map +1 -1
- package/lib/elementsRenderer.d.ts +20 -7
- package/lib/elementsRenderer.d.ts.map +1 -1
- package/lib/elementsRenderer.js +195 -136
- package/lib/elementsRenderer.js.map +1 -1
- package/lib/events.d.ts +44 -11
- package/lib/events.d.ts.map +1 -1
- package/lib/index.d.ts +36 -13
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +386 -349
- package/lib/index.js.map +1 -1
- package/lib/keyHandler.d.ts +13 -8
- package/lib/keyHandler.d.ts.map +1 -1
- package/lib/keyHandler.js +106 -51
- package/lib/keyHandler.js.map +1 -1
- package/lib/methodTypes.d.ts +3 -3
- package/lib/methodTypes.d.ts.map +1 -1
- package/lib/mouseHandler.d.ts +1 -1
- package/lib/mouseHandler.d.ts.map +1 -1
- package/lib/mouseHandler.js +36 -49
- package/lib/mouseHandler.js.map +1 -1
- package/lib/mouseUtils.d.ts.map +1 -1
- package/lib/mouseUtils.js +2 -2
- package/lib/mouseUtils.js.map +1 -1
- package/lib/node.d.ts +47 -16
- package/lib/node.d.ts.map +1 -1
- package/lib/node.js +169 -171
- package/lib/node.js.map +1 -1
- package/lib/nodeElement/borderDropHint.d.ts.map +1 -1
- package/lib/nodeElement/borderDropHint.js +4 -5
- package/lib/nodeElement/borderDropHint.js.map +1 -1
- package/lib/nodeElement/folderElement.d.ts +8 -5
- package/lib/nodeElement/folderElement.d.ts.map +1 -1
- package/lib/nodeElement/folderElement.js +75 -67
- package/lib/nodeElement/folderElement.js.map +1 -1
- package/lib/nodeElement/ghostDropHint.d.ts.map +1 -1
- package/lib/nodeElement/ghostDropHint.js +13 -13
- package/lib/nodeElement/ghostDropHint.js.map +1 -1
- package/lib/nodeElement/index.d.ts +2 -1
- package/lib/nodeElement/index.d.ts.map +1 -1
- package/lib/nodeElement/index.js +38 -30
- package/lib/nodeElement/index.js.map +1 -1
- package/lib/nodeUtils.d.ts.map +1 -1
- package/lib/nodeUtils.js +1 -1
- package/lib/nodeUtils.js.map +1 -1
- package/lib/options.d.ts +19 -3
- package/lib/options.d.ts.map +1 -1
- package/lib/positionUtils.js +3 -3
- package/lib/positionUtils.js.map +1 -1
- package/lib/requestUrl.d.ts +1 -1
- package/lib/requestUrl.d.ts.map +1 -1
- package/lib/requestUrl.js +6 -17
- package/lib/requestUrl.js.map +1 -1
- package/lib/saveStateHandler.d.ts.map +1 -1
- package/lib/saveStateHandler.js +59 -89
- package/lib/saveStateHandler.js.map +1 -1
- package/lib/scrollHandler/containerScrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/containerScrollParent.js +11 -18
- package/lib/scrollHandler/containerScrollParent.js.map +1 -1
- package/lib/scrollHandler/createScrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/createScrollParent.js +12 -13
- package/lib/scrollHandler/createScrollParent.js.map +1 -1
- package/lib/scrollHandler/documentScrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/documentScrollParent.js +18 -27
- package/lib/scrollHandler/documentScrollParent.js.map +1 -1
- package/lib/scrollHandler/scrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/scrollParent.js +30 -34
- package/lib/scrollHandler/scrollParent.js.map +1 -1
- package/lib/scrollHandler.d.ts.map +1 -1
- package/lib/scrollHandler.js +11 -14
- package/lib/scrollHandler.js.map +1 -1
- package/lib/selectNodeHandler.d.ts +4 -2
- package/lib/selectNodeHandler.d.ts.map +1 -1
- package/lib/selectNodeHandler.js +64 -83
- package/lib/selectNodeHandler.js.map +1 -1
- package/lib/setDefaultOptions.d.ts.map +1 -1
- package/lib/setDefaultOptions.js +34 -38
- package/lib/setDefaultOptions.js.map +1 -1
- package/lib/triggerCustomEvent.d.ts.map +1 -1
- package/lib/triggerCustomEvent.js +2 -2
- package/lib/triggerCustomEvent.js.map +1 -1
- package/lib/util.d.ts.map +1 -1
- package/lib/util.js +2 -2
- package/lib/util.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +43 -32
- package/src/animation.ts +14 -12
- package/src/classNames.ts +52 -52
- package/src/dataLoader.ts +79 -71
- package/src/dragAndDropHandler/binarySearch.ts +17 -17
- package/src/dragAndDropHandler/dragElement.ts +51 -50
- package/src/dragAndDropHandler/generateHitAreas.ts +156 -161
- package/src/dragAndDropHandler/index.ts +334 -348
- package/src/dragAndDropHandler/iterateVisibleNodes.ts +61 -63
- package/src/dragAndDropHandler/types.ts +5 -5
- package/src/elementsRenderer.ts +377 -294
- package/src/events.ts +241 -208
- package/src/header.txt +1 -1
- package/src/index.ts +259 -229
- package/src/keyHandler.ts +179 -115
- package/src/methodTypes.ts +7 -10
- package/src/mouseHandler.ts +316 -316
- package/src/mouseUtils.ts +14 -14
- package/src/node.ts +773 -771
- package/src/nodeElement/borderDropHint.ts +25 -25
- package/src/nodeElement/folderElement.ts +116 -102
- package/src/nodeElement/ghostDropHint.ts +64 -62
- package/src/nodeElement/index.ts +81 -73
- package/src/nodeUtils.ts +5 -5
- package/src/options.ts +25 -5
- package/src/requestUrl.ts +7 -14
- package/src/saveStateHandler.ts +191 -207
- package/src/scrollHandler/containerScrollParent.ts +40 -49
- package/src/scrollHandler/createScrollParent.ts +26 -27
- package/src/scrollHandler/documentScrollParent.ts +66 -72
- package/src/scrollHandler/scrollParent.ts +90 -86
- package/src/scrollHandler.ts +45 -45
- package/src/selectNodeHandler.ts +171 -165
- package/src/setDefaultOptions.ts +44 -32
- package/src/triggerCustomEvent.ts +7 -3
- package/src/util.ts +2 -3
- package/src/version.ts +1 -1
- package/tree_element.css +87 -69
- package/tree_element.debug.js +3866 -3831
- package/tree_element.debug.js.map +1 -1
- package/tree_element.js +2 -2
- 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
|
-
|
|
6
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
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
|
-
|
|
23
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
14
|
-
refreshHitAreas
|
|
10
|
+
_container: document.documentElement,
|
|
11
|
+
_refreshHitAreas: refreshHitAreas
|
|
15
12
|
});
|
|
16
13
|
this._treeElement = treeElement;
|
|
17
14
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
super.
|
|
15
|
+
_scrollToY(top) {
|
|
16
|
+
let treeTop = getOffsetTop(this._treeElement);
|
|
17
|
+
super._scrollToY(top + treeTop);
|
|
21
18
|
}
|
|
22
|
-
|
|
23
|
-
super.
|
|
19
|
+
_stopScrolling() {
|
|
20
|
+
super._stopScrolling();
|
|
24
21
|
this._documentScrollHeight = undefined;
|
|
25
22
|
this._documentScrollWidth = undefined;
|
|
26
23
|
}
|
|
27
24
|
_getNewHorizontalScrollDirection(pageX) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
return undefined;
|
|
31
|
+
let isNearLeftEdge = pageX - scrollLeft < 20;
|
|
32
|
+
return isNearLeftEdge ? "left" : undefined;
|
|
39
33
|
}
|
|
40
34
|
_getNewVerticalScrollDirection(pageY) {
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
let scrollTop = this._container.scrollTop;
|
|
36
|
+
let distanceTop = pageY - scrollTop;
|
|
43
37
|
if (distanceTop < 20) {
|
|
44
38
|
return "top";
|
|
45
39
|
}
|
|
46
|
-
|
|
47
|
-
|
|
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
|
|
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;
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
if (this._horizontalScrollDirection
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
if (this._verticalScrollDirection
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
36
|
+
_getScrollLeft() {
|
|
41
37
|
return this._container.scrollLeft;
|
|
42
38
|
}
|
|
43
|
-
|
|
39
|
+
_scrollToY(top) {
|
|
44
40
|
this._container.scrollTop = top;
|
|
45
41
|
}
|
|
46
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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":"AAQO,MAAe,YAAY,CAAC;AASjC,EAAA,WAAW,CAAC;IAAE,UAAA,EAAA,SAAS;AAAE,IAAA,gBAAA,EAAA;AAAmC,GAAC,EAAE;IAC7D,IAAI,CAACA,UAAS,GAAG,SAAS;IAC1B,IAAI,CAACC,gBAAe,GAAG,eAAe;AACxC,EAAA;EAEOC,yBAAwBA,CAAC,KAAa,EAAQ;AACnD,IAAA,IAAM,4BAA4B,GAChC,IAAI,CAACC,gCAA+B,CAAC,KAAK,CAAC;AAE7C,IAAA,IAAI,IAAI,CAACC,0BAAyB,KAAK,4BAA4B,EAAE;AACnE,MAAA;AACF,IAAA;IAEA,IAAI,CAACA,0BAAyB,GAAG,4BAA4B;AAE7D,IAAA,IAAI,IAAI,CAACC,wBAAuB,IAAI,IAAI,EAAE;AACxC,MAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAACA,wBAAuB,CAAC;AACnD,IAAA;AAEA,IAAA,IAAI,4BAA4B,EAAE;AAChC,MAAA,IAAI,CAACA,wBAAuB,GAAG,MAAM,CAAC,UAAU,CAC9C,IAAI,CAACC,mBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAClC,EACF,CAAC;AACH,IAAA;AACF,EAAA;EAEOC,uBAAsBA,CAAC,KAAa,EAAE;AAC3C,IAAA,IAAM,0BAA0B,GAC9B,IAAI,CAACC,8BAA6B,CAAC,KAAK,CAAC;AAE3C,IAAA,IAAI,IAAI,CAACC,wBAAuB,KAAK,0BAA0B,EAAE;AAC/D,MAAA;AACF,IAAA;IAEA,IAAI,CAACA,wBAAuB,GAAG,0BAA0B;AAEzD,IAAA,IAAI,IAAI,CAACC,sBAAqB,IAAI,IAAI,EAAE;AACtC,MAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAACA,sBAAqB,CAAC;MAC/C,IAAI,CAACA,sBAAqB,GAAG,SAAS;AACxC,IAAA;AAEA,IAAA,IAAI,0BAA0B,EAAE;AAC9B,MAAA,IAAI,CAACA,sBAAqB,GAAG,MAAM,CAAC,UAAU,CAC5C,IAAI,CAACC,iBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAChC,EACF,CAAC;AACH,IAAA;AACF,EAAA;AAEOC,EAAAA,cAAaA,GAAW;AAC7B,IAAA,OAAO,IAAI,CAACZ,UAAS,CAAC,UAAU;AAClC,EAAA;EAEOa,UAASA,CAAC,GAAW,EAAQ;AAClC,IAAA,IAAI,CAACb,UAAS,CAAC,SAAS,GAAG,GAAG;AAChC,EAAA;AAEOc,EAAAA,cAAaA,GAAG;IACrB,IAAI,CAACV,0BAAyB,GAAG,SAAS;IAC1C,IAAI,CAACK,wBAAuB,GAAG,SAAS;AAC1C,EAAA;AASUH,EAAAA,mBAAkBA,GAAG;AAC7B,IAAA,IAAI,CAAC,IAAI,CAACF,0BAAyB,EAAE;AACnC,MAAA;AACF,IAAA;IAEA,IAAM,QAAQ,GAAG,IAAI,CAACA,0BAAyB,KAAK,MAAM,GAAG,GAAG,GAAG,EAAE;AACrE,IAAA,IAAI,CAACJ,UAAS,CAAC,QAAQ,CAAC;AACtB,MAAA,QAAQ,EAAE,SAAS;AACnB,MAAA,IAAI,EAAE,QAAQ;AACd,MAAA,GAAG,EAAE;AACP,KAAC,CAAC;IAEF,IAAI,CAACC,gBAAe,EAAE;IAEtB,UAAU,CAAC,IAAI,CAACK,mBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACpD,EAAA;AAEUK,EAAAA,iBAAgBA,GAAG;AAC3B,IAAA,IAAI,CAAC,IAAI,CAACF,wBAAuB,EAAE;AACjC,MAAA;AACF,IAAA;IAEA,IAAM,QAAQ,GAAG,IAAI,CAACA,wBAAuB,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE;AAClE,IAAA,IAAI,CAACT,UAAS,CAAC,QAAQ,CAAC;AACtB,MAAA,QAAQ,EAAE,SAAS;AACnB,MAAA,IAAI,EAAE,CAAC;AACP,MAAA,GAAG,EAAE;AACP,KAAC,CAAC;IAEF,IAAI,CAACC,gBAAe,EAAE;IAEtB,UAAU,CAAC,IAAI,CAACU,iBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAClD,EAAA;AACF;;"}
|
|
@@ -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;
|
|
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"}
|
package/lib/scrollHandler.js
CHANGED
|
@@ -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
|
-
|
|
12
|
+
_checkScrolling(positionInfo) {
|
|
16
13
|
this._checkVerticalScrolling(positionInfo);
|
|
17
14
|
this._checkHorizontalScrolling(positionInfo);
|
|
18
15
|
}
|
|
19
|
-
|
|
20
|
-
return this._getScrollParent().
|
|
16
|
+
_getScrollLeft() {
|
|
17
|
+
return this._getScrollParent()._getScrollLeft();
|
|
21
18
|
}
|
|
22
|
-
|
|
23
|
-
this._getScrollParent().
|
|
19
|
+
_scrollToY(top) {
|
|
20
|
+
this._getScrollParent()._scrollToY(top);
|
|
24
21
|
}
|
|
25
|
-
|
|
26
|
-
this._getScrollParent().
|
|
22
|
+
_stopScrolling() {
|
|
23
|
+
this._getScrollParent()._stopScrolling();
|
|
27
24
|
}
|
|
28
25
|
_checkHorizontalScrolling(positionInfo) {
|
|
29
|
-
this._getScrollParent().
|
|
26
|
+
this._getScrollParent()._checkHorizontalScrolling(positionInfo.pageX);
|
|
30
27
|
}
|
|
31
28
|
_checkVerticalScrolling(positionInfo) {
|
|
32
|
-
this._getScrollParent().
|
|
29
|
+
this._getScrollParent()._checkVerticalScrolling(positionInfo.pageY);
|
|
33
30
|
}
|
|
34
31
|
_getScrollParent() {
|
|
35
32
|
this._scrollParent ??= createScrollParent(this._treeElement, this._refreshHitAreas);
|
package/lib/scrollHandler.js.map
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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():
|
|
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,
|
|
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"}
|