299 lines
9.5 KiB
JavaScript
299 lines
9.5 KiB
JavaScript
/*
|
|
* Extracted from browser-delivered Turbopack chunk: fd0220e4d10052af.701bdafa2d.js
|
|
* Module id: 210550
|
|
* For reading/searching only; this factory depends on the original Turbopack runtime.
|
|
*/
|
|
|
|
const moduleFactory = (e) => {
|
|
"use strict";
|
|
var t = e.i(462214),
|
|
n = e.i(358379),
|
|
i = e.i(768924),
|
|
r = e.i(292002),
|
|
a = e.i(216257);
|
|
let o = "cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
s = "node-handle-click",
|
|
c = (0, n.memo)(function ({
|
|
style: e,
|
|
visible: c = !0,
|
|
isConnectable: l,
|
|
...u
|
|
}) {
|
|
let h = (0, a.useCanvasStore)(
|
|
(e) => e.isMarkMode || e.isFocusMode || e.isReadonly,
|
|
),
|
|
f = (0, i.useNodeId)(),
|
|
[d, p] = (0, n.useState)(!1),
|
|
g = (0, n.useRef)(null),
|
|
b = (0, n.useRef)(null),
|
|
m = (0, n.useRef)(null),
|
|
w = (0, n.useRef)(),
|
|
v = (0, n.useCallback)((e) => {
|
|
w.current && clearTimeout(w.current),
|
|
(w.current = setTimeout(() => {
|
|
g.current && (g.current.style.transition = "");
|
|
}, e));
|
|
}, []);
|
|
(0, n.useEffect)(
|
|
() => () => {
|
|
w.current && clearTimeout(w.current);
|
|
},
|
|
[],
|
|
),
|
|
(0, n.useEffect)(() => {
|
|
let e = b.current;
|
|
if (!e || h || !1 === l || !f) return;
|
|
let t = (e) => {
|
|
m.current = { time: Date.now(), x: e.clientX, y: e.clientY };
|
|
},
|
|
n = (e) => {
|
|
let t = m.current;
|
|
if (((m.current = null), !t)) return;
|
|
let n = Date.now() - t.time,
|
|
i = e.clientX - t.x,
|
|
r = e.clientY - t.y;
|
|
n < 300 &&
|
|
10 > Math.sqrt(i * i + r * r) &&
|
|
document.dispatchEvent(
|
|
new CustomEvent(s, {
|
|
detail: {
|
|
nodeId: f,
|
|
handleType: u.type ?? "source",
|
|
handleId: u.id ?? u.type ?? "source",
|
|
clientX: e.clientX,
|
|
clientY: e.clientY,
|
|
},
|
|
}),
|
|
);
|
|
};
|
|
return (
|
|
e.addEventListener("pointerdown", t),
|
|
document.addEventListener("pointerup", n),
|
|
() => {
|
|
e.removeEventListener("pointerdown", t),
|
|
document.removeEventListener("pointerup", n);
|
|
}
|
|
);
|
|
}, [f, u.type, u.id, h, l]);
|
|
let x = !h && !1 !== l && (c || d),
|
|
y = (0, n.useMemo)(() => {
|
|
switch (u.position) {
|
|
case r.Position.Right:
|
|
return { x: -25, y: 0 };
|
|
case r.Position.Left:
|
|
return { x: 25, y: 0 };
|
|
case r.Position.Top:
|
|
return { x: 0, y: 25 };
|
|
case r.Position.Bottom:
|
|
return { x: 0, y: -25 };
|
|
default:
|
|
return { x: 0, y: 0 };
|
|
}
|
|
}, [u.position]),
|
|
_ = (0, n.useRef)(y);
|
|
(_.current = y),
|
|
(0, n.useLayoutEffect)(() => {
|
|
g.current &&
|
|
!d &&
|
|
((g.current.style.transition = `transform 400ms ${o}, opacity 200ms ease`),
|
|
(g.current.style.transform = `translate(${y.x}px, ${y.y}px) scale(1)`),
|
|
v(450));
|
|
}, [y, d, x, v]);
|
|
let S = (0, n.useCallback)(() => {
|
|
h || p(!0);
|
|
}, [h]),
|
|
E = (0, n.useCallback)((e) => {
|
|
if (!g.current) return;
|
|
w.current && (clearTimeout(w.current), (w.current = void 0));
|
|
let t = e.currentTarget.getBoundingClientRect(),
|
|
n = t.left + t.width / 2,
|
|
i = t.top + t.height / 2,
|
|
r = e.clientX - n,
|
|
a = e.clientY - i,
|
|
o = Math.sqrt(r * r + a * a),
|
|
s = o > 30 ? 30 / o : 1;
|
|
(g.current.style.transition = "transform 80ms ease-out"),
|
|
(g.current.style.transform = `translate(${r * s}px, ${a * s}px) scale(1.1)`);
|
|
}, []),
|
|
M = (0, n.useCallback)(() => {
|
|
if ((p(!1), g.current)) {
|
|
let e = _.current;
|
|
(g.current.style.transition = `transform 400ms ${o}, opacity 200ms ease`),
|
|
(g.current.style.transform = `translate(${e.x}px, ${e.y}px) scale(1)`),
|
|
v(450);
|
|
}
|
|
}, [v]),
|
|
T = (0, n.useMemo)(() => {
|
|
let {
|
|
transform: t,
|
|
top: n,
|
|
left: i,
|
|
right: a,
|
|
bottom: o,
|
|
...s
|
|
} = e ?? {};
|
|
return {
|
|
...s,
|
|
width: 0,
|
|
height: 0,
|
|
minWidth: 0,
|
|
minHeight: 0,
|
|
padding: 0,
|
|
background: "transparent",
|
|
border: "none",
|
|
borderRadius: 0,
|
|
overflow: "visible",
|
|
...(u.position === r.Position.Right
|
|
? {
|
|
right: 0,
|
|
top: "50%",
|
|
left: "auto",
|
|
bottom: "auto",
|
|
transform: "translateY(-50%)",
|
|
}
|
|
: u.position === r.Position.Left
|
|
? {
|
|
left: 0,
|
|
top: "50%",
|
|
right: "auto",
|
|
bottom: "auto",
|
|
transform: "translateY(-50%)",
|
|
}
|
|
: u.position === r.Position.Top
|
|
? {
|
|
top: 0,
|
|
left: "50%",
|
|
right: "auto",
|
|
bottom: "auto",
|
|
transform: "translateX(-50%)",
|
|
}
|
|
: {
|
|
bottom: 0,
|
|
left: "50%",
|
|
right: "auto",
|
|
top: "auto",
|
|
transform: "translateX(-50%)",
|
|
}),
|
|
pointerEvents: h || !1 === l ? "none" : "auto",
|
|
zIndex: 20,
|
|
};
|
|
}, [e, u.position, h, l]),
|
|
k = (0, n.useMemo)(() => {
|
|
let e = {
|
|
position: "absolute",
|
|
width: 80,
|
|
height: 80,
|
|
borderRadius: "50%",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
pointerEvents: h || !1 === l ? "none" : "auto",
|
|
cursor: x ? "crosshair" : void 0,
|
|
};
|
|
switch (u.position) {
|
|
case r.Position.Right:
|
|
return {
|
|
...e,
|
|
top: "50%",
|
|
left: 0,
|
|
transform: "translateY(-50%)",
|
|
};
|
|
case r.Position.Left:
|
|
return {
|
|
...e,
|
|
top: "50%",
|
|
right: 0,
|
|
transform: "translateY(-50%)",
|
|
};
|
|
case r.Position.Top:
|
|
return {
|
|
...e,
|
|
left: "50%",
|
|
bottom: 0,
|
|
transform: "translateX(-50%)",
|
|
};
|
|
case r.Position.Bottom:
|
|
return {
|
|
...e,
|
|
left: "50%",
|
|
top: 0,
|
|
transform: "translateX(-50%)",
|
|
};
|
|
default:
|
|
return { ...e, transform: "translate(-50%, -50%)" };
|
|
}
|
|
}, [u.position, h, l, x]);
|
|
return (0, t.jsx)(i.Handle, {
|
|
...u,
|
|
isConnectable: l,
|
|
className: "nodrag nopan",
|
|
style: T,
|
|
children: (0, t.jsx)("div", {
|
|
ref: b,
|
|
onMouseEnter: S,
|
|
onMouseLeave: M,
|
|
onMouseMove: E,
|
|
style: k,
|
|
children: (0, t.jsx)("div", {
|
|
ref: g,
|
|
style: { width: 20, height: 20, opacity: +!!x, flexShrink: 0 },
|
|
children: (0, t.jsxs)("svg", {
|
|
width: 20,
|
|
height: 20,
|
|
viewBox: "0 0 20 20",
|
|
fill: "none",
|
|
children: [
|
|
(0, t.jsx)("circle", {
|
|
cx: 10,
|
|
cy: 10,
|
|
r: 9.35,
|
|
fill: "var(--canvas-handle-bg)",
|
|
}),
|
|
(0, t.jsx)("circle", {
|
|
cx: 10,
|
|
cy: 10,
|
|
r: 9.35,
|
|
stroke: "var(--canvas-handle-icon)",
|
|
strokeWidth: 1.2,
|
|
}),
|
|
(0, t.jsx)("path", {
|
|
d: "M10 6.5v7M6.5 10h7",
|
|
stroke: "var(--canvas-handle-icon)",
|
|
strokeWidth: 1.5,
|
|
strokeLinecap: "round",
|
|
}),
|
|
],
|
|
}),
|
|
}),
|
|
}),
|
|
});
|
|
});
|
|
function l(e) {
|
|
return (0, t.jsx)(c, {
|
|
type: "target",
|
|
position: r.Position.Left,
|
|
id: "target",
|
|
...e,
|
|
});
|
|
}
|
|
function u(e) {
|
|
return (0, t.jsx)(c, {
|
|
type: "source",
|
|
position: r.Position.Right,
|
|
id: "source",
|
|
...e,
|
|
});
|
|
}
|
|
e.s([
|
|
"HANDLE_CLICK_EVENT",
|
|
0,
|
|
s,
|
|
"SourceHandle",
|
|
() => u,
|
|
"TargetHandle",
|
|
() => l,
|
|
]);
|
|
};
|
|
|
|
export default moduleFactory;
|