Files
nice-app-web/.vite/deps/overlay-kit.js
focp212@naver.com 05238b04c1 첫 커밋
2025-09-05 15:36:48 +09:00

228 lines
8.9 KiB
JavaScript

import {
require_jsx_runtime
} from "./chunk-CQKXKKJC.js";
import {
require_react
} from "./chunk-R7JHQV4C.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/.pnpm/overlay-kit@1.8.4_react-dom_8ea85e22eb3956f3589f4c288e5185a7/node_modules/overlay-kit/dist/index.js
var import_react = __toESM(require_react());
var import_react2 = __toESM(require_react());
var import_jsx_runtime = __toESM(require_jsx_runtime());
var import_react3 = __toESM(require_react());
var import_jsx_runtime2 = __toESM(require_jsx_runtime());
var import_react4 = __toESM(require_react());
var G = Object.defineProperty;
var j = Object.defineProperties;
var q = Object.getOwnPropertyDescriptors;
var L = Object.getOwnPropertySymbols;
var H = Object.prototype.hasOwnProperty;
var P = Object.prototype.propertyIsEnumerable;
var T = (e, r, t) => r in e ? G(e, r, { enumerable: true, configurable: true, writable: true, value: t }) : e[r] = t;
var a = (e, r) => {
for (var t in r || (r = {})) H.call(r, t) && T(e, t, r[t]);
if (L) for (var t of L(r)) P.call(r, t) && T(e, t, r[t]);
return e;
};
var y = (e, r) => j(e, q(r));
var K = (e, r) => {
var t = {};
for (var n in e) H.call(e, n) && r.indexOf(n) < 0 && (t[n] = e[n]);
if (e != null && L) for (var n of L(e)) r.indexOf(n) < 0 && P.call(e, n) && (t[n] = e[n]);
return t;
};
var S = (e, r, t) => new Promise((n, o) => {
var l = (c) => {
try {
s(t.next(c));
} catch (v) {
o(v);
}
}, d = (c) => {
try {
s(t.throw(c));
} catch (v) {
o(v);
}
}, s = (c) => c.done ? n(c.value) : Promise.resolve(c.value).then(l, d);
s((t = t.apply(e, r)).next());
});
var M = (0, import_react2.memo)(({ isOpen: e, overlayId: r, overlayDispatch: t, controller: n }) => ((0, import_react2.useEffect)(() => {
requestAnimationFrame(() => {
t({ type: "OPEN", overlayId: r });
});
}, [t, r]), (0, import_jsx_runtime.jsx)(n, { isOpen: e, overlayId: r, close: () => t({ type: "CLOSE", overlayId: r }), unmount: () => t({ type: "REMOVE", overlayId: r }) })));
function C() {
return `overlay-kit-${Math.random().toString(36).slice(2, 11)}`;
}
function w(e) {
let [r, t] = b(`${e}/overlay-kit`), n = (v, i) => {
var E;
let u = (E = i == null ? void 0 : i.overlayId) != null ? E : C(), f = C();
return t("open")({ controller: v, overlayId: u, componentKey: f }), u;
}, o = (v, i) => S(this, null, function* () {
return new Promise((u) => {
n((f, ...D) => {
let E = (A) => {
u(A), f.close();
}, g = y(a({}, f), { close: E });
return v(g, ...D);
}, i);
});
}), l = t("close"), d = t("unmount"), s = t("closeAll"), c = t("unmountAll");
return { open: n, openAsync: o, close: l, unmount: d, closeAll: s, unmountAll: c, useOverlayEvent: r };
}
var W = Symbol("Null");
function N(e) {
let r = (0, import_react3.createContext)(W);
r.displayName = e != null ? e : "SafeContext";
function t() {
let n = (0, import_react3.useContext)(r);
if (n === W) {
let o = new Error(`[${r.displayName}]: Provider not found.`);
throw o.name = "[Error] Context", o;
}
return n;
}
return [r.Provider, t];
}
function V() {
let [e, r] = N("overlay-kit/OverlayContext");
function t() {
return r().current;
}
function n() {
return r().overlayData;
}
return { OverlayContextProvider: e, useCurrentOverlay: t, useOverlayData: n };
}
var _ = (e, r, t) => {
var l, d;
let n = e.filter((s) => r[s].isOpen === true), o = n.findIndex((s) => s === t);
return o === n.length - 1 ? (l = n[o - 1]) != null ? l : null : (d = n.at(-1)) != null ? d : null;
};
function $(e, r) {
switch (r.type) {
case "ADD": {
if (e.overlayData[r.overlay.id] != null && e.overlayData[r.overlay.id].isOpen === false) {
let n = e.overlayData[r.overlay.id];
return n == null || n.isOpen ? e : y(a({}, e), { current: r.overlay.id, overlayData: y(a({}, e.overlayData), { [r.overlay.id]: y(a({}, n), { isOpen: true }) }) });
}
let t = e.overlayOrderList.includes(r.overlay.id);
if (t && e.overlayData[r.overlay.id].isOpen === true) throw new Error(`You can't open the multiple overlays with the same overlayId(${r.overlay.id}). Please set a different id.`);
return { current: r.overlay.id, overlayOrderList: [...e.overlayOrderList.filter((n) => n !== r.overlay.id), r.overlay.id], overlayData: t ? e.overlayData : y(a({}, e.overlayData), { [r.overlay.id]: r.overlay }) };
}
case "OPEN": {
let t = e.overlayData[r.overlayId];
return t == null || t.isOpen ? e : y(a({}, e), { overlayData: y(a({}, e.overlayData), { [r.overlayId]: y(a({}, t), { isOpen: true, isMounted: true }) }) });
}
case "CLOSE": {
let t = e.overlayData[r.overlayId];
if (t == null || !t.isOpen) return e;
let n = _(e.overlayOrderList, e.overlayData, r.overlayId);
return y(a({}, e), { current: n, overlayData: y(a({}, e.overlayData), { [r.overlayId]: y(a({}, e.overlayData[r.overlayId]), { isOpen: false }) }) });
}
case "REMOVE": {
if (e.overlayData[r.overlayId] == null) return e;
let n = e.overlayOrderList.filter((d) => d !== r.overlayId);
if (e.overlayOrderList.length === n.length) return e;
let o = a({}, e.overlayData);
return delete o[r.overlayId], { current: _(e.overlayOrderList, e.overlayData, r.overlayId), overlayOrderList: n, overlayData: o };
}
case "CLOSE_ALL":
return Object.keys(e.overlayData).length === 0 ? e : y(a({}, e), { current: null, overlayData: Object.keys(e.overlayData).reduce((t, n) => y(a({}, t), { [n]: y(a({}, e.overlayData[n]), { isOpen: false }) }), {}) });
case "REMOVE_ALL":
return { current: null, overlayOrderList: [], overlayData: {} };
}
}
function R() {
let e = C(), s = w(e), { useOverlayEvent: r } = s, t = K(s, ["useOverlayEvent"]), { OverlayContextProvider: n, useCurrentOverlay: o, useOverlayData: l } = V();
function d({ children: c }) {
let [v, i] = (0, import_react.useReducer)($, { current: null, overlayOrderList: [], overlayData: {} }), u = (0, import_react.useRef)(v), f = (0, import_react.useCallback)(({ controller: p, overlayId: O, componentKey: m }) => {
i({ type: "ADD", overlay: { id: O, componentKey: m, isOpen: false, isMounted: false, controller: p } });
}, []), D = (0, import_react.useCallback)((p) => {
i({ type: "CLOSE", overlayId: p });
}, []), E = (0, import_react.useCallback)((p) => {
i({ type: "REMOVE", overlayId: p });
}, []), g = (0, import_react.useCallback)(() => {
i({ type: "CLOSE_ALL" });
}, []), A = (0, import_react.useCallback)(() => {
i({ type: "REMOVE_ALL" });
}, []);
return r({ open: f, close: D, unmount: E, closeAll: g, unmountAll: A }), u.current !== v && (v.overlayOrderList.forEach((p) => {
let O = u.current.overlayData, m = v.overlayData;
if (O[p] != null && O[p].isMounted === true) {
let k = O[p].isOpen === false, h = m[p].isOpen === true;
k && h && requestAnimationFrame(() => {
i({ type: "OPEN", overlayId: p });
});
}
}), u.current = v), (0, import_react.useEffect)(() => () => {
i({ type: "REMOVE_ALL" });
}, []), (0, import_jsx_runtime2.jsxs)(n, { value: v, children: [c, v.overlayOrderList.map((p) => {
let { id: O, componentKey: m, isOpen: k, controller: h } = v.overlayData[p];
return (0, import_jsx_runtime2.jsx)(M, { isOpen: k, controller: h, overlayId: O, overlayDispatch: i }, m);
})] });
}
return { overlay: t, OverlayProvider: d, useCurrentOverlay: o, useOverlayData: l };
}
var { overlay: He, OverlayProvider: Pe, useCurrentOverlay: Ke, useOverlayData: Se } = R();
function Me() {
return R();
}
function F(e) {
return e = e || /* @__PURE__ */ new Map(), { all: e, on(r, t) {
let n = e.get(r);
n ? n.push(t) : e.set(r, [t]);
}, off(r, t) {
let n = e.get(r);
n && (t ? n.splice(n.indexOf(t) >>> 0, 1) : e.set(r, []));
}, emit(r, t) {
let n = e.get(r);
n && n.slice().forEach((o) => {
o(t);
}), n = e.get("*"), n && n.slice().forEach((o) => {
o(r, t);
});
} };
}
var I = F();
function ne(...e) {
let r = typeof document != "undefined", t = typeof navigator != "undefined" && navigator.product === "ReactNative";
!r && !t || (0, import_react4.useLayoutEffect)(...e);
}
function oe(e, r) {
I.emit(e, r);
}
function b(e) {
function r(n) {
let o = Object.keys(n).reduce((l, d) => {
let s = `${e}:${d}`;
return y(a({}, l), { [s]: function(c) {
n[d](c);
} });
}, {});
ne(() => (Object.keys(o).forEach((l) => {
I.off(l, o[l]), I.on(l, o[l]);
}), () => Object.keys(o).forEach((l) => {
I.off(l, o[l]);
})), [o]);
}
function t(n) {
return (...o) => oe(`${e}:${String(n)}`, o[0]);
}
return [r, t];
}
export {
Pe as OverlayProvider,
b as createUseExternalEvents,
Me as experimental_createOverlayContext,
He as overlay,
Ke as useCurrentOverlay,
Se as useOverlayData
};
//# sourceMappingURL=overlay-kit.js.map