@hanzogui/floating 8.3.0 → 8.3.2
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/dist/cjs/Floating.js +5 -0
- package/dist/cjs/Floating.js.map +1 -0
- package/dist/cjs/index.js +57 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interactions/PopupTriggerMap.js +33 -0
- package/dist/cjs/interactions/PopupTriggerMap.js.map +1 -0
- package/dist/cjs/interactions/createFloatingEvents.js +31 -0
- package/dist/cjs/interactions/createFloatingEvents.js.map +1 -0
- package/dist/cjs/interactions/safePolygon.js +435 -0
- package/dist/cjs/interactions/safePolygon.js.map +1 -0
- package/dist/cjs/interactions/types.js +3 -0
- package/dist/cjs/interactions/types.js.map +1 -0
- package/dist/cjs/interactions/useClick.js +118 -0
- package/dist/cjs/interactions/useClick.js.map +1 -0
- package/dist/cjs/interactions/useDelayGroup.js +84 -0
- package/dist/cjs/interactions/useDelayGroup.js.map +1 -0
- package/dist/cjs/interactions/useFocus.js +118 -0
- package/dist/cjs/interactions/useFocus.js.map +1 -0
- package/dist/cjs/interactions/useHover.js +357 -0
- package/dist/cjs/interactions/useHover.js.map +1 -0
- package/dist/cjs/interactions/useInnerOffset.js +92 -0
- package/dist/cjs/interactions/useInnerOffset.js.map +1 -0
- package/dist/cjs/interactions/useInteractions.js +88 -0
- package/dist/cjs/interactions/useInteractions.js.map +1 -0
- package/dist/cjs/interactions/useListNavigation.js +447 -0
- package/dist/cjs/interactions/useListNavigation.js.map +1 -0
- package/dist/cjs/interactions/useRole.js +69 -0
- package/dist/cjs/interactions/useRole.js.map +1 -0
- package/dist/cjs/interactions/useTypeahead.js +121 -0
- package/dist/cjs/interactions/useTypeahead.js.map +1 -0
- package/dist/cjs/interactions/utils.js +200 -0
- package/dist/cjs/interactions/utils.js.map +1 -0
- package/dist/cjs/middleware/inner.js +82 -0
- package/dist/cjs/middleware/inner.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/useFloating.js +29 -0
- package/dist/cjs/useFloating.js.map +1 -0
- package/dist/esm/Floating.js +2 -0
- package/dist/esm/Floating.js.map +1 -0
- package/dist/esm/index.js +23 -18
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interactions/PopupTriggerMap.js +29 -0
- package/dist/esm/interactions/PopupTriggerMap.js.map +1 -0
- package/dist/esm/interactions/createFloatingEvents.js +28 -0
- package/dist/esm/interactions/createFloatingEvents.js.map +1 -0
- package/dist/esm/interactions/safePolygon.js +432 -0
- package/dist/esm/interactions/safePolygon.js.map +1 -0
- package/dist/esm/interactions/types.js +2 -0
- package/dist/esm/interactions/types.js.map +1 -0
- package/dist/esm/interactions/useClick.js +115 -0
- package/dist/esm/interactions/useClick.js.map +1 -0
- package/dist/esm/interactions/useDelayGroup.js +78 -0
- package/dist/esm/interactions/useDelayGroup.js.map +1 -0
- package/dist/esm/interactions/useFocus.js +115 -0
- package/dist/esm/interactions/useFocus.js.map +1 -0
- package/dist/esm/interactions/useHover.js +352 -0
- package/dist/esm/interactions/useHover.js.map +1 -0
- package/dist/esm/interactions/useInnerOffset.js +88 -0
- package/dist/esm/interactions/useInnerOffset.js.map +1 -0
- package/dist/esm/interactions/useInteractions.js +85 -0
- package/dist/esm/interactions/useInteractions.js.map +1 -0
- package/dist/esm/interactions/useListNavigation.js +444 -0
- package/dist/esm/interactions/useListNavigation.js.map +1 -0
- package/dist/esm/interactions/useRole.js +65 -0
- package/dist/esm/interactions/useRole.js.map +1 -0
- package/dist/esm/interactions/useTypeahead.js +118 -0
- package/dist/esm/interactions/useTypeahead.js.map +1 -0
- package/dist/esm/interactions/utils.js +176 -0
- package/dist/esm/interactions/utils.js.map +1 -0
- package/dist/esm/middleware/inner.js +77 -0
- package/dist/esm/middleware/inner.js.map +1 -0
- package/dist/esm/useFloating.js +24 -0
- package/dist/esm/useFloating.js.map +1 -0
- package/dist/native/Floating.js +5 -0
- package/dist/native/Floating.js.map +1 -0
- package/dist/native/index.js +23 -0
- package/dist/native/index.js.map +1 -0
- package/dist/native/interactions/PopupTriggerMap.js +29 -0
- package/dist/native/interactions/PopupTriggerMap.js.map +1 -0
- package/dist/native/interactions/createFloatingEvents.js +28 -0
- package/dist/native/interactions/createFloatingEvents.js.map +1 -0
- package/dist/native/interactions/safePolygon.js +432 -0
- package/dist/native/interactions/safePolygon.js.map +1 -0
- package/dist/native/interactions/types.js +2 -0
- package/dist/native/interactions/types.js.map +1 -0
- package/dist/native/interactions/useClick.js +115 -0
- package/dist/native/interactions/useClick.js.map +1 -0
- package/dist/native/interactions/useDelayGroup.js +78 -0
- package/dist/native/interactions/useDelayGroup.js.map +1 -0
- package/dist/native/interactions/useFocus.js +115 -0
- package/dist/native/interactions/useFocus.js.map +1 -0
- package/dist/native/interactions/useHover.js +352 -0
- package/dist/native/interactions/useHover.js.map +1 -0
- package/dist/native/interactions/useInnerOffset.js +88 -0
- package/dist/native/interactions/useInnerOffset.js.map +1 -0
- package/dist/native/interactions/useInteractions.js +85 -0
- package/dist/native/interactions/useInteractions.js.map +1 -0
- package/dist/native/interactions/useListNavigation.js +444 -0
- package/dist/native/interactions/useListNavigation.js.map +1 -0
- package/dist/native/interactions/useRole.js +65 -0
- package/dist/native/interactions/useRole.js.map +1 -0
- package/dist/native/interactions/useTypeahead.js +118 -0
- package/dist/native/interactions/useTypeahead.js.map +1 -0
- package/dist/native/interactions/utils.js +176 -0
- package/dist/native/interactions/utils.js.map +1 -0
- package/dist/native/middleware/inner.js +77 -0
- package/dist/native/middleware/inner.js.map +1 -0
- package/dist/native/useFloating.js +24 -0
- package/dist/native/useFloating.js.map +1 -0
- package/package.json +16 -16
- package/src/index.ts +18 -18
- package/src/interactions/safePolygon.ts +2 -2
- package/src/interactions/types.ts +2 -2
- package/src/interactions/useClick.ts +2 -2
- package/src/interactions/useDelayGroup.ts +1 -1
- package/src/interactions/useFocus.ts +2 -2
- package/src/interactions/useHover.ts +2 -2
- package/src/interactions/useInnerOffset.ts +1 -1
- package/src/interactions/useInteractions.ts +1 -1
- package/src/interactions/useListNavigation.ts +2 -2
- package/src/interactions/useRole.ts +1 -1
- package/src/interactions/useTypeahead.ts +6 -2
- package/src/useFloating.tsx +2 -2
- package/types/index.d.ts +18 -18
- package/types/index.d.ts.map +1 -1
- package/types/interactions/PopupTriggerMap.d.ts.map +1 -1
- package/types/interactions/safePolygon.d.ts +1 -1
- package/types/interactions/safePolygon.d.ts.map +1 -1
- package/types/interactions/types.d.ts +2 -2
- package/types/interactions/types.d.ts.map +1 -1
- package/types/interactions/useClick.d.ts +1 -1
- package/types/interactions/useClick.d.ts.map +1 -1
- package/types/interactions/useDelayGroup.d.ts +1 -1
- package/types/interactions/useDelayGroup.d.ts.map +1 -1
- package/types/interactions/useFocus.d.ts +1 -1
- package/types/interactions/useFocus.d.ts.map +1 -1
- package/types/interactions/useHover.d.ts +1 -1
- package/types/interactions/useHover.d.ts.map +1 -1
- package/types/interactions/useInnerOffset.d.ts +1 -1
- package/types/interactions/useInnerOffset.d.ts.map +1 -1
- package/types/interactions/useInteractions.d.ts +1 -1
- package/types/interactions/useInteractions.d.ts.map +1 -1
- package/types/interactions/useListNavigation.d.ts +1 -1
- package/types/interactions/useListNavigation.d.ts.map +1 -1
- package/types/interactions/useRole.d.ts +1 -1
- package/types/interactions/useRole.d.ts.map +1 -1
- package/types/interactions/useTypeahead.d.ts +1 -1
- package/types/interactions/useTypeahead.d.ts.map +1 -1
- package/types/middleware/inner.d.ts.map +1 -1
- package/types/useFloating.d.ts +2 -2
- package/types/useFloating.d.ts.map +1 -1
- package/dist/cjs/Floating.cjs +0 -20
- package/dist/cjs/Floating.native.js +0 -39
- package/dist/cjs/Floating.native.js.map +0 -1
- package/dist/cjs/index.cjs +0 -73
- package/dist/cjs/index.native.js +0 -76
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/cjs/interactions/PopupTriggerMap.cjs +0 -49
- package/dist/cjs/interactions/PopupTriggerMap.native.js +0 -97
- package/dist/cjs/interactions/PopupTriggerMap.native.js.map +0 -1
- package/dist/cjs/interactions/createFloatingEvents.cjs +0 -50
- package/dist/cjs/interactions/createFloatingEvents.native.js +0 -56
- package/dist/cjs/interactions/createFloatingEvents.native.js.map +0 -1
- package/dist/cjs/interactions/safePolygon.cjs +0 -273
- package/dist/cjs/interactions/safePolygon.native.js +0 -284
- package/dist/cjs/interactions/safePolygon.native.js.map +0 -1
- package/dist/cjs/interactions/types.cjs +0 -18
- package/dist/cjs/interactions/types.native.js +0 -21
- package/dist/cjs/interactions/types.native.js.map +0 -1
- package/dist/cjs/interactions/useClick.cjs +0 -124
- package/dist/cjs/interactions/useClick.native.js +0 -132
- package/dist/cjs/interactions/useClick.native.js.map +0 -1
- package/dist/cjs/interactions/useDelayGroup.cjs +0 -115
- package/dist/cjs/interactions/useDelayGroup.native.js +0 -125
- package/dist/cjs/interactions/useDelayGroup.native.js.map +0 -1
- package/dist/cjs/interactions/useFocus.cjs +0 -130
- package/dist/cjs/interactions/useFocus.native.js +0 -139
- package/dist/cjs/interactions/useFocus.native.js.map +0 -1
- package/dist/cjs/interactions/useHover.cjs +0 -357
- package/dist/cjs/interactions/useHover.native.js +0 -373
- package/dist/cjs/interactions/useHover.native.js.map +0 -1
- package/dist/cjs/interactions/useInnerOffset.cjs +0 -128
- package/dist/cjs/interactions/useInnerOffset.native.js +0 -141
- package/dist/cjs/interactions/useInnerOffset.native.js.map +0 -1
- package/dist/cjs/interactions/useInteractions.cjs +0 -105
- package/dist/cjs/interactions/useInteractions.native.js +0 -216
- package/dist/cjs/interactions/useInteractions.native.js.map +0 -1
- package/dist/cjs/interactions/useListNavigation.cjs +0 -418
- package/dist/cjs/interactions/useListNavigation.native.js +0 -433
- package/dist/cjs/interactions/useListNavigation.native.js.map +0 -1
- package/dist/cjs/interactions/useRole.cjs +0 -122
- package/dist/cjs/interactions/useRole.native.js +0 -136
- package/dist/cjs/interactions/useRole.native.js.map +0 -1
- package/dist/cjs/interactions/useTypeahead.cjs +0 -143
- package/dist/cjs/interactions/useTypeahead.native.js +0 -159
- package/dist/cjs/interactions/useTypeahead.native.js.map +0 -1
- package/dist/cjs/interactions/utils.cjs +0 -208
- package/dist/cjs/interactions/utils.native.js +0 -227
- package/dist/cjs/interactions/utils.native.js.map +0 -1
- package/dist/cjs/middleware/inner.cjs +0 -118
- package/dist/cjs/middleware/inner.native.js +0 -130
- package/dist/cjs/middleware/inner.native.js.map +0 -1
- package/dist/cjs/useFloating.cjs +0 -64
- package/dist/cjs/useFloating.native.js +0 -69
- package/dist/cjs/useFloating.native.js.map +0 -1
- package/dist/esm/Floating.mjs +0 -2
- package/dist/esm/Floating.mjs.map +0 -1
- package/dist/esm/Floating.native.js +0 -8
- package/dist/esm/Floating.native.js.map +0 -1
- package/dist/esm/index.mjs +0 -18
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js +0 -18
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/interactions/PopupTriggerMap.mjs +0 -24
- package/dist/esm/interactions/PopupTriggerMap.mjs.map +0 -1
- package/dist/esm/interactions/PopupTriggerMap.native.js +0 -69
- package/dist/esm/interactions/PopupTriggerMap.native.js.map +0 -1
- package/dist/esm/interactions/createFloatingEvents.mjs +0 -25
- package/dist/esm/interactions/createFloatingEvents.mjs.map +0 -1
- package/dist/esm/interactions/createFloatingEvents.native.js +0 -28
- package/dist/esm/interactions/createFloatingEvents.native.js.map +0 -1
- package/dist/esm/interactions/safePolygon.mjs +0 -248
- package/dist/esm/interactions/safePolygon.mjs.map +0 -1
- package/dist/esm/interactions/safePolygon.native.js +0 -256
- package/dist/esm/interactions/safePolygon.native.js.map +0 -1
- package/dist/esm/interactions/types.mjs +0 -2
- package/dist/esm/interactions/types.mjs.map +0 -1
- package/dist/esm/interactions/types.native.js +0 -2
- package/dist/esm/interactions/types.native.js.map +0 -1
- package/dist/esm/interactions/useClick.mjs +0 -99
- package/dist/esm/interactions/useClick.mjs.map +0 -1
- package/dist/esm/interactions/useClick.native.js +0 -104
- package/dist/esm/interactions/useClick.native.js.map +0 -1
- package/dist/esm/interactions/useDelayGroup.mjs +0 -77
- package/dist/esm/interactions/useDelayGroup.mjs.map +0 -1
- package/dist/esm/interactions/useDelayGroup.native.js +0 -84
- package/dist/esm/interactions/useDelayGroup.native.js.map +0 -1
- package/dist/esm/interactions/useFocus.mjs +0 -105
- package/dist/esm/interactions/useFocus.mjs.map +0 -1
- package/dist/esm/interactions/useFocus.native.js +0 -111
- package/dist/esm/interactions/useFocus.native.js.map +0 -1
- package/dist/esm/interactions/useHover.mjs +0 -320
- package/dist/esm/interactions/useHover.mjs.map +0 -1
- package/dist/esm/interactions/useHover.native.js +0 -333
- package/dist/esm/interactions/useHover.native.js.map +0 -1
- package/dist/esm/interactions/useInnerOffset.mjs +0 -92
- package/dist/esm/interactions/useInnerOffset.mjs.map +0 -1
- package/dist/esm/interactions/useInnerOffset.native.js +0 -102
- package/dist/esm/interactions/useInnerOffset.native.js.map +0 -1
- package/dist/esm/interactions/useInteractions.mjs +0 -80
- package/dist/esm/interactions/useInteractions.mjs.map +0 -1
- package/dist/esm/interactions/useInteractions.native.js +0 -188
- package/dist/esm/interactions/useInteractions.native.js.map +0 -1
- package/dist/esm/interactions/useListNavigation.mjs +0 -393
- package/dist/esm/interactions/useListNavigation.mjs.map +0 -1
- package/dist/esm/interactions/useListNavigation.native.js +0 -405
- package/dist/esm/interactions/useListNavigation.native.js.map +0 -1
- package/dist/esm/interactions/useRole.mjs +0 -86
- package/dist/esm/interactions/useRole.mjs.map +0 -1
- package/dist/esm/interactions/useRole.native.js +0 -97
- package/dist/esm/interactions/useRole.native.js.map +0 -1
- package/dist/esm/interactions/useTypeahead.mjs +0 -118
- package/dist/esm/interactions/useTypeahead.mjs.map +0 -1
- package/dist/esm/interactions/useTypeahead.native.js +0 -131
- package/dist/esm/interactions/useTypeahead.native.js.map +0 -1
- package/dist/esm/interactions/utils.mjs +0 -162
- package/dist/esm/interactions/utils.mjs.map +0 -1
- package/dist/esm/interactions/utils.native.js +0 -178
- package/dist/esm/interactions/utils.native.js.map +0 -1
- package/dist/esm/middleware/inner.mjs +0 -82
- package/dist/esm/middleware/inner.mjs.map +0 -1
- package/dist/esm/middleware/inner.native.js +0 -91
- package/dist/esm/middleware/inner.native.js.map +0 -1
- package/dist/esm/useFloating.mjs +0 -27
- package/dist/esm/useFloating.mjs.map +0 -1
- package/dist/esm/useFloating.native.js +0 -29
- package/dist/esm/useFloating.native.js.map +0 -1
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
import { clearTimeoutIfSet, contains, getTarget } from "./utils.native.js";
|
|
2
|
-
function isPointInPolygon(point, polygon) {
|
|
3
|
-
var [x, y] = point;
|
|
4
|
-
var isInside2 = false;
|
|
5
|
-
var length = polygon.length;
|
|
6
|
-
for (var i = 0, j = length - 1; i < length; j = i++) {
|
|
7
|
-
var [xi, yi] = polygon[i] || [0, 0];
|
|
8
|
-
var [xj, yj] = polygon[j] || [0, 0];
|
|
9
|
-
var intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;
|
|
10
|
-
if (intersect) {
|
|
11
|
-
isInside2 = !isInside2;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return isInside2;
|
|
15
|
-
}
|
|
16
|
-
function isInside(point, rect) {
|
|
17
|
-
return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;
|
|
18
|
-
}
|
|
19
|
-
var debugSvg = null;
|
|
20
|
-
function debugDrawPolygon(polygon, trough, cursor, anchor) {
|
|
21
|
-
if (!debugSvg) {
|
|
22
|
-
debugSvg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
23
|
-
debugSvg.id = "__safe-polygon-debug";
|
|
24
|
-
Object.assign(debugSvg.style, {
|
|
25
|
-
position: "fixed",
|
|
26
|
-
inset: "0",
|
|
27
|
-
width: "100vw",
|
|
28
|
-
height: "100vh",
|
|
29
|
-
pointerEvents: "none",
|
|
30
|
-
zIndex: "999999"
|
|
31
|
-
});
|
|
32
|
-
document.body.appendChild(debugSvg);
|
|
33
|
-
}
|
|
34
|
-
debugSvg.innerHTML = "";
|
|
35
|
-
if (trough.length) {
|
|
36
|
-
var troughEl = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
|
|
37
|
-
troughEl.setAttribute("points", trough.map(function (p) {
|
|
38
|
-
return p.join(",");
|
|
39
|
-
}).join(" "));
|
|
40
|
-
troughEl.setAttribute("fill", "rgba(0,100,255,0.15)");
|
|
41
|
-
troughEl.setAttribute("stroke", "rgba(0,100,255,0.6)");
|
|
42
|
-
troughEl.setAttribute("stroke-width", "1");
|
|
43
|
-
debugSvg.appendChild(troughEl);
|
|
44
|
-
}
|
|
45
|
-
if (polygon.length) {
|
|
46
|
-
var polyEl = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
|
|
47
|
-
polyEl.setAttribute("points", polygon.map(function (p) {
|
|
48
|
-
return p.join(",");
|
|
49
|
-
}).join(" "));
|
|
50
|
-
polyEl.setAttribute("fill", "rgba(255,50,50,0.2)");
|
|
51
|
-
polyEl.setAttribute("stroke", "rgba(255,50,50,0.8)");
|
|
52
|
-
polyEl.setAttribute("stroke-width", "1.5");
|
|
53
|
-
debugSvg.appendChild(polyEl);
|
|
54
|
-
}
|
|
55
|
-
var anchorCircle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
|
|
56
|
-
anchorCircle.setAttribute("cx", String(anchor[0]));
|
|
57
|
-
anchorCircle.setAttribute("cy", String(anchor[1]));
|
|
58
|
-
anchorCircle.setAttribute("r", "5");
|
|
59
|
-
anchorCircle.setAttribute("fill", "lime");
|
|
60
|
-
anchorCircle.setAttribute("stroke", "darkgreen");
|
|
61
|
-
anchorCircle.setAttribute("stroke-width", "1.5");
|
|
62
|
-
debugSvg.appendChild(anchorCircle);
|
|
63
|
-
var cursorCircle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
|
|
64
|
-
cursorCircle.setAttribute("cx", String(cursor[0]));
|
|
65
|
-
cursorCircle.setAttribute("cy", String(cursor[1]));
|
|
66
|
-
cursorCircle.setAttribute("r", "4");
|
|
67
|
-
cursorCircle.setAttribute("fill", "yellow");
|
|
68
|
-
cursorCircle.setAttribute("stroke", "orange");
|
|
69
|
-
cursorCircle.setAttribute("stroke-width", "1.5");
|
|
70
|
-
debugSvg.appendChild(cursorCircle);
|
|
71
|
-
}
|
|
72
|
-
function debugClear() {
|
|
73
|
-
if (debugSvg) {
|
|
74
|
-
debugSvg.remove();
|
|
75
|
-
debugSvg = null;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
function safePolygon() {
|
|
79
|
-
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
80
|
-
var {
|
|
81
|
-
buffer = 0.5,
|
|
82
|
-
blockPointerEvents = false,
|
|
83
|
-
requireIntent = true,
|
|
84
|
-
__debug = false
|
|
85
|
-
} = options;
|
|
86
|
-
var timeoutRef = {
|
|
87
|
-
current: -1
|
|
88
|
-
};
|
|
89
|
-
var hasLanded = false;
|
|
90
|
-
var lastX = null;
|
|
91
|
-
var lastY = null;
|
|
92
|
-
var lastCursorTime = typeof performance !== "undefined" ? performance.now() : 0;
|
|
93
|
-
function getCursorSpeed(x, y) {
|
|
94
|
-
var currentTime = performance.now();
|
|
95
|
-
var elapsedTime = currentTime - lastCursorTime;
|
|
96
|
-
if (lastX === null || lastY === null || elapsedTime === 0) {
|
|
97
|
-
lastX = x;
|
|
98
|
-
lastY = y;
|
|
99
|
-
lastCursorTime = currentTime;
|
|
100
|
-
return null;
|
|
101
|
-
}
|
|
102
|
-
var deltaX = x - lastX;
|
|
103
|
-
var deltaY = y - lastY;
|
|
104
|
-
var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
|
|
105
|
-
var speed = distance / elapsedTime;
|
|
106
|
-
lastX = x;
|
|
107
|
-
lastY = y;
|
|
108
|
-
lastCursorTime = currentTime;
|
|
109
|
-
return speed;
|
|
110
|
-
}
|
|
111
|
-
var fn = function (param) {
|
|
112
|
-
var {
|
|
113
|
-
x,
|
|
114
|
-
y,
|
|
115
|
-
placement,
|
|
116
|
-
elements,
|
|
117
|
-
onClose
|
|
118
|
-
} = param;
|
|
119
|
-
hasLanded = false;
|
|
120
|
-
lastX = null;
|
|
121
|
-
lastY = null;
|
|
122
|
-
return function onMouseMove(event) {
|
|
123
|
-
function close() {
|
|
124
|
-
clearTimeoutIfSet(timeoutRef);
|
|
125
|
-
onClose();
|
|
126
|
-
}
|
|
127
|
-
clearTimeoutIfSet(timeoutRef);
|
|
128
|
-
var _elements_domReference;
|
|
129
|
-
var domReference = (_elements_domReference = elements.domReference) !== null && _elements_domReference !== void 0 ? _elements_domReference : elements.reference;
|
|
130
|
-
if (!domReference || !elements.floating || placement == null || x == null || y == null) {
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
var {
|
|
134
|
-
clientX,
|
|
135
|
-
clientY
|
|
136
|
-
} = event;
|
|
137
|
-
var clientPoint = [clientX, clientY];
|
|
138
|
-
var target = getTarget(event);
|
|
139
|
-
var isLeave = event.type === "mouseleave";
|
|
140
|
-
var isOverFloatingEl = contains(elements.floating, target);
|
|
141
|
-
var isOverReferenceEl = contains(domReference, target);
|
|
142
|
-
var refRect = domReference.getBoundingClientRect();
|
|
143
|
-
var rect = elements.floating.getBoundingClientRect();
|
|
144
|
-
var side = placement.split("-")[0];
|
|
145
|
-
var cursorLeaveFromRight = x > rect.right - rect.width / 2;
|
|
146
|
-
var cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;
|
|
147
|
-
var isOverReferenceRect = isInside(clientPoint, refRect);
|
|
148
|
-
var isFloatingWider = rect.width > refRect.width;
|
|
149
|
-
var isFloatingTaller = rect.height > refRect.height;
|
|
150
|
-
var left = (isFloatingWider ? refRect : rect).left;
|
|
151
|
-
var right = (isFloatingWider ? refRect : rect).right;
|
|
152
|
-
var top = (isFloatingTaller ? refRect : rect).top;
|
|
153
|
-
var bottom = (isFloatingTaller ? refRect : rect).bottom;
|
|
154
|
-
if (isOverFloatingEl) {
|
|
155
|
-
hasLanded = true;
|
|
156
|
-
if (!isLeave) {
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
if (isOverReferenceEl) {
|
|
161
|
-
hasLanded = false;
|
|
162
|
-
}
|
|
163
|
-
if (isOverReferenceEl && !isLeave) {
|
|
164
|
-
hasLanded = true;
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
if (!isOverReferenceEl && isOverReferenceRect && !isLeave) {
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
if (isLeave && event.relatedTarget && contains(elements.floating, event.relatedTarget)) {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
if (side === "top" && y >= refRect.bottom - 1 || side === "bottom" && y <= refRect.top + 1 || side === "left" && x >= refRect.right - 1 || side === "right" && x <= refRect.left + 1) {
|
|
174
|
-
return close();
|
|
175
|
-
}
|
|
176
|
-
var rectPoly = [];
|
|
177
|
-
switch (side) {
|
|
178
|
-
case "top":
|
|
179
|
-
rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];
|
|
180
|
-
break;
|
|
181
|
-
case "bottom":
|
|
182
|
-
rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];
|
|
183
|
-
break;
|
|
184
|
-
case "left":
|
|
185
|
-
rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];
|
|
186
|
-
break;
|
|
187
|
-
case "right":
|
|
188
|
-
rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
function getPolygon(param2) {
|
|
192
|
-
var [x2, y2] = param2;
|
|
193
|
-
switch (side) {
|
|
194
|
-
case "top":
|
|
195
|
-
{
|
|
196
|
-
var cursorPointOne = [isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 + buffer + 1];
|
|
197
|
-
var cursorPointTwo = [isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 + buffer + 1];
|
|
198
|
-
var commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];
|
|
199
|
-
return [cursorPointOne, cursorPointTwo, ...commonPoints];
|
|
200
|
-
}
|
|
201
|
-
case "bottom":
|
|
202
|
-
{
|
|
203
|
-
var cursorPointOne1 = [isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 - buffer];
|
|
204
|
-
var cursorPointTwo1 = [isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 - buffer];
|
|
205
|
-
var commonPoints1 = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];
|
|
206
|
-
return [cursorPointOne1, cursorPointTwo1, ...commonPoints1];
|
|
207
|
-
}
|
|
208
|
-
case "left":
|
|
209
|
-
{
|
|
210
|
-
var cursorPointOne2 = [x2 + buffer + 1, isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
|
|
211
|
-
var cursorPointTwo2 = [x2 + buffer + 1, isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
|
|
212
|
-
var commonPoints2 = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];
|
|
213
|
-
return [...commonPoints2, cursorPointOne2, cursorPointTwo2];
|
|
214
|
-
}
|
|
215
|
-
case "right":
|
|
216
|
-
{
|
|
217
|
-
var cursorPointOne3 = [x2 - buffer, isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
|
|
218
|
-
var cursorPointTwo3 = [x2 - buffer, isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
|
|
219
|
-
var commonPoints3 = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];
|
|
220
|
-
return [cursorPointOne3, cursorPointTwo3, ...commonPoints3];
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
var poly = getPolygon([x, y]);
|
|
225
|
-
if (__debug) {
|
|
226
|
-
debugDrawPolygon(poly, rectPoly, clientPoint, [x, y]);
|
|
227
|
-
}
|
|
228
|
-
if (isPointInPolygon([clientX, clientY], rectPoly)) {
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
|
-
if (hasLanded && !isOverReferenceRect) {
|
|
232
|
-
if (__debug) debugClear();
|
|
233
|
-
return close();
|
|
234
|
-
}
|
|
235
|
-
if (isPointInPolygon([clientX, clientY], poly)) {
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
if (!isLeave && requireIntent) {
|
|
239
|
-
var cursorSpeed = getCursorSpeed(clientX, clientY);
|
|
240
|
-
var cursorSpeedThreshold = 0.1;
|
|
241
|
-
if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {
|
|
242
|
-
if (__debug) debugClear();
|
|
243
|
-
return close();
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
if (__debug) debugClear();
|
|
247
|
-
close();
|
|
248
|
-
};
|
|
249
|
-
};
|
|
250
|
-
fn.__options = {
|
|
251
|
-
blockPointerEvents
|
|
252
|
-
};
|
|
253
|
-
return fn;
|
|
254
|
-
}
|
|
255
|
-
export { safePolygon };
|
|
256
|
-
//# sourceMappingURL=safePolygon.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["clearTimeoutIfSet","contains","getTarget","isPointInPolygon","point","polygon","x","y","isInside","length","i","j","xi","yi","xj","yj","intersect","isInside2","rect","width","height","debugSvg","debugDrawPolygon","trough","cursor","anchor","document","createElementNS","id","Object","assign","style","position","inset","pointerEvents","zIndex","body","appendChild","innerHTML","troughEl","setAttribute","map","p","join","polyEl","anchorCircle","String","cursorCircle","debugClear","remove","safePolygon","options","arguments","buffer","blockPointerEvents","requireIntent","__debug","timeoutRef","current","hasLanded","lastX","lastY","lastCursorTime","performance","now","getCursorSpeed","currentTime","elapsedTime","deltaX","deltaY","distance","Math","sqrt","speed","fn","param","placement","elements","onClose","onMouseMove","event","close","_elements_domReference","domReference","reference","floating","clientX","clientY","clientPoint","target","isLeave","type","isOverFloatingEl","isOverReferenceEl","refRect","getBoundingClientRect","side","split","cursorLeaveFromRight","right","cursorLeaveFromBottom","bottom","isOverReferenceRect","isFloatingWider","isFloatingTaller","left","top","relatedTarget","rectPoly","getPolygon","param2","x2","y2","cursorPointOne","cursorPointTwo","commonPoints","cursorPointOne1","cursorPointTwo1","commonPoints1","cursorPointOne2"],"sources":["../../../src/interactions/safePolygon.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { useMemo, useRef } from "react";
|
|
2
|
-
import { isHTMLElement, isMouseLikePointerType, isTypeableElement } from "./utils.mjs";
|
|
3
|
-
function isButtonTarget(event) {
|
|
4
|
-
return isHTMLElement(event.target) && event.target.tagName === "BUTTON";
|
|
5
|
-
}
|
|
6
|
-
function isAnchorTarget(event) {
|
|
7
|
-
return isHTMLElement(event.target) && event.target.tagName === "A";
|
|
8
|
-
}
|
|
9
|
-
function isSpaceIgnored(element) {
|
|
10
|
-
return isTypeableElement(element);
|
|
11
|
-
}
|
|
12
|
-
function useClick(context, props = {}) {
|
|
13
|
-
const {
|
|
14
|
-
open,
|
|
15
|
-
onOpenChange,
|
|
16
|
-
dataRef,
|
|
17
|
-
elements: {
|
|
18
|
-
domReference
|
|
19
|
-
}
|
|
20
|
-
} = context;
|
|
21
|
-
const {
|
|
22
|
-
enabled = true,
|
|
23
|
-
event: eventOption = "click",
|
|
24
|
-
toggle = true,
|
|
25
|
-
ignoreMouse = false,
|
|
26
|
-
keyboardHandlers = true,
|
|
27
|
-
stickIfOpen = true
|
|
28
|
-
} = props;
|
|
29
|
-
const pointerTypeRef = useRef(void 0);
|
|
30
|
-
const didKeyDownRef = useRef(false);
|
|
31
|
-
const reference = useMemo(() => ({
|
|
32
|
-
onPointerDown(event) {
|
|
33
|
-
pointerTypeRef.current = event.pointerType;
|
|
34
|
-
},
|
|
35
|
-
onMouseDown(event) {
|
|
36
|
-
const pointerType = pointerTypeRef.current;
|
|
37
|
-
if (event.button !== 0) return;
|
|
38
|
-
if (eventOption === "click") return;
|
|
39
|
-
if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;
|
|
40
|
-
if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "mousedown" : true)) {
|
|
41
|
-
onOpenChange(false, event.nativeEvent || event, "click");
|
|
42
|
-
} else {
|
|
43
|
-
event.preventDefault();
|
|
44
|
-
onOpenChange(true, event.nativeEvent || event, "click");
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
onClick(event) {
|
|
48
|
-
const pointerType = pointerTypeRef.current;
|
|
49
|
-
if (eventOption === "mousedown" && pointerTypeRef.current) {
|
|
50
|
-
pointerTypeRef.current = void 0;
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;
|
|
54
|
-
if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "click" : true)) {
|
|
55
|
-
onOpenChange(false, event.nativeEvent || event, "click");
|
|
56
|
-
} else {
|
|
57
|
-
onOpenChange(true, event.nativeEvent || event, "click");
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
onKeyDown(event) {
|
|
61
|
-
pointerTypeRef.current = void 0;
|
|
62
|
-
if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (event.key === " " && !isSpaceIgnored(domReference)) {
|
|
66
|
-
event.preventDefault();
|
|
67
|
-
didKeyDownRef.current = true;
|
|
68
|
-
}
|
|
69
|
-
if (isAnchorTarget(event)) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
if (event.key === "Enter") {
|
|
73
|
-
if (open && toggle) {
|
|
74
|
-
onOpenChange(false, event.nativeEvent || event, "click");
|
|
75
|
-
} else {
|
|
76
|
-
onOpenChange(true, event.nativeEvent || event, "click");
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
onKeyUp(event) {
|
|
81
|
-
if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
if (event.key === " " && didKeyDownRef.current) {
|
|
85
|
-
didKeyDownRef.current = false;
|
|
86
|
-
if (open && toggle) {
|
|
87
|
-
onOpenChange(false, event.nativeEvent || event, "click");
|
|
88
|
-
} else {
|
|
89
|
-
onOpenChange(true, event.nativeEvent || event, "click");
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}), [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);
|
|
94
|
-
return useMemo(() => enabled ? {
|
|
95
|
-
reference
|
|
96
|
-
} : {}, [enabled, reference]);
|
|
97
|
-
}
|
|
98
|
-
export { useClick };
|
|
99
|
-
//# sourceMappingURL=useClick.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useRef","isHTMLElement","isMouseLikePointerType","isTypeableElement","isButtonTarget","event","target","tagName","isAnchorTarget","isSpaceIgnored","element","useClick","context","props","open","onOpenChange","dataRef","elements","domReference","enabled","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","pointerTypeRef","didKeyDownRef","reference","onPointerDown","current","pointerType","onMouseDown","button","openEvent","type","nativeEvent","preventDefault","onClick","onKeyDown","defaultPrevented","key","onKeyUp"],"sources":["../../../src/interactions/useClick.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { useMemo, useRef } from "react";
|
|
2
|
-
import { isHTMLElement, isMouseLikePointerType, isTypeableElement } from "./utils.native.js";
|
|
3
|
-
function isButtonTarget(event) {
|
|
4
|
-
return isHTMLElement(event.target) && event.target.tagName === "BUTTON";
|
|
5
|
-
}
|
|
6
|
-
function isAnchorTarget(event) {
|
|
7
|
-
return isHTMLElement(event.target) && event.target.tagName === "A";
|
|
8
|
-
}
|
|
9
|
-
function isSpaceIgnored(element) {
|
|
10
|
-
return isTypeableElement(element);
|
|
11
|
-
}
|
|
12
|
-
function useClick(context) {
|
|
13
|
-
var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
14
|
-
var {
|
|
15
|
-
open,
|
|
16
|
-
onOpenChange,
|
|
17
|
-
dataRef,
|
|
18
|
-
elements: {
|
|
19
|
-
domReference
|
|
20
|
-
}
|
|
21
|
-
} = context;
|
|
22
|
-
var {
|
|
23
|
-
enabled = true,
|
|
24
|
-
event: eventOption = "click",
|
|
25
|
-
toggle = true,
|
|
26
|
-
ignoreMouse = false,
|
|
27
|
-
keyboardHandlers = true,
|
|
28
|
-
stickIfOpen = true
|
|
29
|
-
} = props;
|
|
30
|
-
var pointerTypeRef = useRef(void 0);
|
|
31
|
-
var didKeyDownRef = useRef(false);
|
|
32
|
-
var reference = useMemo(function () {
|
|
33
|
-
return {
|
|
34
|
-
onPointerDown(event) {
|
|
35
|
-
pointerTypeRef.current = event.pointerType;
|
|
36
|
-
},
|
|
37
|
-
onMouseDown(event) {
|
|
38
|
-
var pointerType = pointerTypeRef.current;
|
|
39
|
-
if (event.button !== 0) return;
|
|
40
|
-
if (eventOption === "click") return;
|
|
41
|
-
if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;
|
|
42
|
-
if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "mousedown" : true)) {
|
|
43
|
-
onOpenChange(false, event.nativeEvent || event, "click");
|
|
44
|
-
} else {
|
|
45
|
-
event.preventDefault();
|
|
46
|
-
onOpenChange(true, event.nativeEvent || event, "click");
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
onClick(event) {
|
|
50
|
-
var pointerType = pointerTypeRef.current;
|
|
51
|
-
if (eventOption === "mousedown" && pointerTypeRef.current) {
|
|
52
|
-
pointerTypeRef.current = void 0;
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;
|
|
56
|
-
if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "click" : true)) {
|
|
57
|
-
onOpenChange(false, event.nativeEvent || event, "click");
|
|
58
|
-
} else {
|
|
59
|
-
onOpenChange(true, event.nativeEvent || event, "click");
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
onKeyDown(event) {
|
|
63
|
-
pointerTypeRef.current = void 0;
|
|
64
|
-
if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
if (event.key === " " && !isSpaceIgnored(domReference)) {
|
|
68
|
-
event.preventDefault();
|
|
69
|
-
didKeyDownRef.current = true;
|
|
70
|
-
}
|
|
71
|
-
if (isAnchorTarget(event)) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if (event.key === "Enter") {
|
|
75
|
-
if (open && toggle) {
|
|
76
|
-
onOpenChange(false, event.nativeEvent || event, "click");
|
|
77
|
-
} else {
|
|
78
|
-
onOpenChange(true, event.nativeEvent || event, "click");
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
onKeyUp(event) {
|
|
83
|
-
if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
if (event.key === " " && didKeyDownRef.current) {
|
|
87
|
-
didKeyDownRef.current = false;
|
|
88
|
-
if (open && toggle) {
|
|
89
|
-
onOpenChange(false, event.nativeEvent || event, "click");
|
|
90
|
-
} else {
|
|
91
|
-
onOpenChange(true, event.nativeEvent || event, "click");
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
}, [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);
|
|
97
|
-
return useMemo(function () {
|
|
98
|
-
return enabled ? {
|
|
99
|
-
reference
|
|
100
|
-
} : {};
|
|
101
|
-
}, [enabled, reference]);
|
|
102
|
-
}
|
|
103
|
-
export { useClick };
|
|
104
|
-
//# sourceMappingURL=useClick.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useRef","isHTMLElement","isMouseLikePointerType","isTypeableElement","isButtonTarget","event","target","tagName","isAnchorTarget","isSpaceIgnored","element","useClick","context","props","arguments","length","open","onOpenChange","dataRef","elements","domReference","enabled","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","pointerTypeRef","didKeyDownRef","reference","onPointerDown","current","pointerType","onMouseDown","button","openEvent","type","nativeEvent","preventDefault","onClick","onKeyDown","defaultPrevented","key","onKeyUp"],"sources":["../../../src/interactions/useClick.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
const DelayGroupContext = React.createContext({
|
|
3
|
-
currentId: null,
|
|
4
|
-
setCurrentId: () => {},
|
|
5
|
-
delay: 0,
|
|
6
|
-
timeoutMs: 0,
|
|
7
|
-
initialDelay: 0
|
|
8
|
-
});
|
|
9
|
-
function useDelayGroupContext() {
|
|
10
|
-
return React.useContext(DelayGroupContext);
|
|
11
|
-
}
|
|
12
|
-
function FloatingDelayGroup({
|
|
13
|
-
children,
|
|
14
|
-
delay,
|
|
15
|
-
timeoutMs = 0
|
|
16
|
-
}) {
|
|
17
|
-
const [currentId, setCurrentIdRaw] = React.useState(null);
|
|
18
|
-
const timeoutRef = React.useRef(void 0);
|
|
19
|
-
const setCurrentId = React.useCallback(id => {
|
|
20
|
-
clearTimeout(timeoutRef.current);
|
|
21
|
-
if (id == null && timeoutMs > 0) {
|
|
22
|
-
timeoutRef.current = setTimeout(() => {
|
|
23
|
-
setCurrentIdRaw(null);
|
|
24
|
-
}, timeoutMs);
|
|
25
|
-
} else {
|
|
26
|
-
setCurrentIdRaw(id);
|
|
27
|
-
}
|
|
28
|
-
}, [timeoutMs]);
|
|
29
|
-
React.useEffect(() => {
|
|
30
|
-
return () => clearTimeout(timeoutRef.current);
|
|
31
|
-
}, []);
|
|
32
|
-
const value = React.useMemo(() => ({
|
|
33
|
-
currentId,
|
|
34
|
-
setCurrentId,
|
|
35
|
-
delay,
|
|
36
|
-
timeoutMs,
|
|
37
|
-
initialDelay: delay
|
|
38
|
-
}), [currentId, setCurrentId, delay, timeoutMs]);
|
|
39
|
-
return React.createElement(DelayGroupContext.Provider, {
|
|
40
|
-
value
|
|
41
|
-
}, children);
|
|
42
|
-
}
|
|
43
|
-
function useDelayGroup(context, options = {}) {
|
|
44
|
-
const {
|
|
45
|
-
id
|
|
46
|
-
} = options;
|
|
47
|
-
const groupContext = React.useContext(DelayGroupContext);
|
|
48
|
-
React.useEffect(() => {
|
|
49
|
-
if (!context.open && groupContext.currentId === id) {
|
|
50
|
-
groupContext.setCurrentId(null);
|
|
51
|
-
}
|
|
52
|
-
}, [context.open, id]);
|
|
53
|
-
React.useEffect(() => {
|
|
54
|
-
if (groupContext.currentId != null && groupContext.currentId !== id && context.open) {
|
|
55
|
-
context.onOpenChange(false);
|
|
56
|
-
}
|
|
57
|
-
}, [groupContext.currentId, id, context.open]);
|
|
58
|
-
if (groupContext.currentId != null) {
|
|
59
|
-
return {
|
|
60
|
-
delay: {
|
|
61
|
-
open: 1,
|
|
62
|
-
close: getClose(groupContext.initialDelay)
|
|
63
|
-
},
|
|
64
|
-
currentId: groupContext.currentId
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
return {
|
|
68
|
-
delay: groupContext.initialDelay,
|
|
69
|
-
currentId: groupContext.currentId
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
function getClose(delay) {
|
|
73
|
-
if (typeof delay === "number") return delay;
|
|
74
|
-
return delay?.close ?? 0;
|
|
75
|
-
}
|
|
76
|
-
export { FloatingDelayGroup, useDelayGroup, useDelayGroupContext };
|
|
77
|
-
//# sourceMappingURL=useDelayGroup.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","DelayGroupContext","createContext","currentId","setCurrentId","delay","timeoutMs","initialDelay","useDelayGroupContext","useContext","FloatingDelayGroup","children","setCurrentIdRaw","useState","timeoutRef","useRef","useCallback","id","clearTimeout","current","setTimeout","useEffect","value","useMemo","createElement","Provider","useDelayGroup","context","options","groupContext","open","onOpenChange","close","getClose"],"sources":["../../../src/interactions/useDelayGroup.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|