UNPKG

@stlite/browser

Version:
133 lines (132 loc) 4.87 kB
import { Ha as e, Ka as t, Ua as n } from "./index-Dl4ETd_L-D2oMd1k2.js"; import { C as r, T as i, b as a, c as o, i as s, m as c, s as l } from "./DataFrame-ZHi5iyDV-BYXp5O6Z.js"; //#region ../react/build/data-grid-overlay-editor-BylJk6rz.js var u = /* @__PURE__ */ t(n(), 1), d = /* @__PURE__ */ t(e(), 1), f = /* @__PURE__ */ l("div")({ name: "DataGridOverlayEditorStyle", class: "gdg-d19meir1", propsAsIs: !1, vars: { "d19meir1-0": [(e) => e.targetY, "px"], "d19meir1-1": [(e) => e.targetX, "px"], "d19meir1-2": [(e) => e.targetWidth, "px"], "d19meir1-3": [(e) => e.targetHeight, "px"], "d19meir1-4": [(e) => e.targetY + 10, "px"], "d19meir1-5": [(e) => Math.max(0, (e.targetHeight - 28) / 2), "px"] } }); function p() { let [e, t] = u.useState(); return [e ?? void 0, t]; } function m() { let [e, t] = p(), [n, r] = u.useState(0), [i, a] = u.useState(!0); return u.useLayoutEffect(() => { if (e === void 0 || !("IntersectionObserver" in window)) return; let t = new IntersectionObserver((e) => { e.length !== 0 && a(e[0].isIntersecting); }, { threshold: 1 }); return t.observe(e), () => t.disconnect(); }, [e]), u.useEffect(() => { if (i || e === void 0) return; let t, n = () => { let { right: i } = e.getBoundingClientRect(); r((e) => Math.min(e + window.innerWidth - i - 10, 0)), t = requestAnimationFrame(n); }; return t = requestAnimationFrame(n), () => { t !== void 0 && cancelAnimationFrame(t); }; }, [e, i]), { ref: t, style: u.useMemo(() => ({ transform: `translateX(${n}px)` }), [n]) }; } var h = (e) => { let { target: t, content: n, onFinishEditing: l, forceEditMode: p, initialValue: h, imageEditorOverride: g, markdownDivCreateNode: _, highlight: v, className: y, theme: b, id: x, cell: S, bloom: C, portalElementRef: w, validateCell: T, getCellRenderer: E, provideEditor: D, isOutsideClick: ee, customEventTarget: te, activation: O } = e, [k, A] = u.useState(p ? n : void 0), j = u.useRef(k ?? n); j.current = k ?? n; let [M, N] = u.useState(() => T === void 0 ? !0 : !(s(n) && T?.(S, n, j.current) === !1)), P = u.useCallback((e, t) => { l(M ? e : void 0, t); }, [M, l]), F = u.useCallback((e) => { if (T !== void 0 && e !== void 0 && s(e)) { let t = T(S, e, j.current); t === !1 ? N(!1) : (typeof t == "object" && (e = t), N(!0)); } A(e); }, [S, T]), I = u.useRef(!1), L = u.useRef(void 0), R = u.useCallback(() => { P(k, [0, 0]), I.current = !0; }, [k, P]), z = u.useCallback((e, t) => { P(e, t ?? L.current ?? [0, 0]), I.current = !0; }, [P]), B = u.useCallback(async (e) => { let t = !1; e.key === "Escape" ? (e.stopPropagation(), e.preventDefault(), L.current = [0, 0]) : e.key === "Enter" && !e.shiftKey ? (e.stopPropagation(), e.preventDefault(), L.current = [0, 1], t = !0) : e.key === "Tab" && (e.stopPropagation(), e.preventDefault(), L.current = [e.shiftKey ? -1 : 1, 0], t = !0), window.setTimeout(() => { !I.current && L.current !== void 0 && (P(t ? k : void 0, L.current), I.current = !0); }, 0); }, [P, k]), V = k ?? n, [H, U] = u.useMemo(() => { if (a(n)) return []; let e = { ...n, location: S, activation: O }, t = D?.(e); return t === void 0 ? [E(n)?.provideEditor?.(e), !1] : [t, !1]; }, [ S, n, E, D, O ]), { ref: W, style: G } = m(), K = !0, q, J = !0, Y; if (H !== void 0) { K = H.disablePadding !== !0, J = H.disableStyling !== !0; let e = o(H); e && (Y = H.styleOverride); let n = e ? H.editor : H; q = u.createElement(n, { portalElementRef: w, isHighlighted: v, activation: O, onChange: F, value: V, initialValue: h, onFinishedEditing: z, validatedSelection: s(V) ? V.selectionRange : void 0, forceEditMode: p, target: t, imageEditorOverride: g, markdownDivCreateNode: _, isValid: M, theme: b }); } Y = { ...Y, ...G }; let X = w?.current ?? document.getElementById("portal"); if (X === null) return console.error("Cannot open Data Grid overlay editor, because portal not found. Please, either provide a portalElementRef or add `<div id=\"portal\" />` as the last child of your `<body>`."), null; let Z = J ? "gdg-style" : "gdg-unstyle"; M || (Z += " gdg-invalid"), K && (Z += " gdg-pad"); let Q = C?.[0] ?? 1, $ = C?.[1] ?? 1; return (0, d.createPortal)(u.createElement(i.Provider, { value: b }, u.createElement(r, { style: c(b), className: y, onClickOutside: R, isOutsideClick: ee, customEventTarget: te }, u.createElement(f, { ref: W, id: x, className: Z, style: Y, as: U === !0 ? "label" : void 0, targetX: t.x - Q, targetY: t.y - $, targetWidth: t.width + Q * 2, targetHeight: t.height + $ * 2 }, u.createElement("div", { className: "gdg-clip-region", onKeyDown: B }, q)))), X); }; //#endregion export { h as default }; //# sourceMappingURL=data-grid-overlay-editor-BylJk6rz-BvRHWNvi.js.map