UNPKG

@forbespro/lead-agent

Version:
289 lines (288 loc) 7.26 kB
import k, { createContext as tt, useEffect as et, useLayoutEffect as nt } from "react"; import { FOCUS_EVENT as ot, RECONNECT_EVENT as st, MUTATE_EVENT as it } from "./index39.js"; import { dequal as ct } from "./index56.js"; const v = /* @__PURE__ */ new WeakMap(), C = () => { }, u = ( /*#__NOINLINE__*/ C() ), F = Object, m = (t) => t === u, R = (t) => typeof t == "function", T = (t, e) => ({ ...t, ...e }), rt = (t) => R(t.then), g = {}, D = {}, U = "undefined", S = typeof window != U, j = typeof document != U, at = S && "Deno" in window, ut = () => S && typeof window.requestAnimationFrame != U, ft = (t, e) => { const o = v.get(t); return [ // Getter () => !m(e) && t.get(e) || g, // Setter (c) => { if (!m(e)) { const i = t.get(e); e in D || (D[e] = i), o[5](e, T(i, c), i || g); } }, // Subscriber o[6], // Get server cache snapshot () => !m(e) && e in D ? D[e] : !m(e) && t.get(e) || g ]; }; let x = !0; const lt = () => x, [M, V] = S && window.addEventListener ? [ window.addEventListener.bind(window), window.removeEventListener.bind(window) ] : [ C, C ], dt = () => { const t = j && document.visibilityState; return m(t) || t !== "hidden"; }, mt = (t) => (j && document.addEventListener("visibilitychange", t), M("focus", t), () => { j && document.removeEventListener("visibilitychange", t), V("focus", t); }), Et = (t) => { const e = () => { x = !0, t(); }, o = () => { x = !1; }; return M("online", e), M("offline", o), () => { V("online", e), V("offline", o); }; }, pt = { isOnline: lt, isVisible: dt }, bt = { initFocus: mt, initReconnect: Et }, gt = !k.useId, W = !S || at, Lt = (t) => ut() ? window.requestAnimationFrame(t) : setTimeout(t, 1), Nt = W ? et : nt, L = typeof navigator != "undefined" && navigator.connection, z = !W && L && ([ "slow-2g", "2g" ].includes(L.effectiveType) || L.saveData), A = /* @__PURE__ */ new WeakMap(), N = (t, e) => F.prototype.toString.call(t) === `[object ${e}]`; let ht = 0; const P = (t) => { const e = typeof t, o = N(t, "Date"), c = N(t, "RegExp"), i = N(t, "Object"); let n, s; if (F(t) === t && !o && !c) { if (n = A.get(t), n) return n; if (n = ++ht + "~", A.set(t, n), Array.isArray(t)) { for (n = "@", s = 0; s < t.length; s++) n += P(t[s]) + ","; A.set(t, n); } if (i) { n = "#"; const E = F.keys(t).sort(); for (; !m(s = E.pop()); ) m(t[s]) || (n += s + ":" + P(t[s]) + ","); A.set(t, n); } } else n = o ? t.toJSON() : e == "symbol" ? t.toString() : e == "string" ? JSON.stringify(t) : "" + t; return n; }, Ot = (t) => { if (R(t)) try { t = t(); } catch (o) { t = ""; } const e = t; return t = typeof t == "string" ? t : (Array.isArray(t) ? t.length : t) ? P(t) : "", [ t, e ]; }; let wt = 0; const G = () => ++wt; async function Ct(...t) { const [e, o, c, i] = t, n = T({ populateCache: !0, throwOnError: !0 }, typeof i == "boolean" ? { revalidate: i } : i || {}); let s = n.populateCache; const E = n.rollbackOnError; let O = n.optimisticData; const _ = (a) => typeof E == "function" ? E(a) : E !== !1, d = n.throwOnError; if (R(o)) { const a = o, r = [], w = e.keys(); for (const p of w) // Skip the special useSWRInfinite and useSWRSubscription keys. !/^\$(inf|sub)\$/.test(p) && a(e.get(p)._k) && r.push(p); return Promise.all(r.map(f)); } return f(o); async function f(a) { const [r] = Ot(a); if (!r) return; const [w, p] = ft(e, r), [Q, I, X, Z] = v.get(e), q = () => { const h = Q[r]; return (R(n.revalidate) ? n.revalidate(w().data, a) : n.revalidate !== !1) && (delete X[r], delete Z[r], h && h[0]) ? h[0](it).then(() => w().data) : w().data; }; if (t.length < 3) return q(); let l = c, b; const H = G(); I[r] = [ H, 0 ]; const B = !m(O), J = w(), K = J.data, $ = J._c, y = m($) ? K : $; if (B && (O = R(O) ? O(y, K) : O, p({ data: O, _c: y })), R(l)) try { l = l(y); } catch (h) { b = h; } if (l && rt(l)) if (l = await l.catch((h) => { b = h; }), H !== I[r][0]) { if (b) throw b; return l; } else b && B && _(b) && (s = !0, p({ data: y, _c: u })); if (s && !b) if (R(s)) { const h = s(l, y); p({ data: h, error: u, _c: u }); } else p({ data: l, error: u, _c: u }); if (I[r][1] = G(), Promise.resolve(q()).then(() => { p({ _c: u }); }), b) { if (d) throw b; return; } return l; } } const Y = (t, e) => { for (const o in t) t[o][0] && t[o][0](e); }, vt = (t, e) => { if (!v.has(t)) { const o = T(bt, e), c = /* @__PURE__ */ Object.create(null), i = Ct.bind(u, t); let n = C; const s = /* @__PURE__ */ Object.create(null), E = (d, f) => { const a = s[d] || []; return s[d] = a, a.push(f), () => a.splice(a.indexOf(f), 1); }, O = (d, f, a) => { t.set(d, f); const r = s[d]; if (r) for (const w of r) w(f, a); }, _ = () => { if (!v.has(t) && (v.set(t, [ c, /* @__PURE__ */ Object.create(null), /* @__PURE__ */ Object.create(null), /* @__PURE__ */ Object.create(null), i, O, E ]), !W)) { const d = o.initFocus(setTimeout.bind(u, Y.bind(u, c, ot))), f = o.initReconnect(setTimeout.bind(u, Y.bind(u, c, st))); n = () => { d && d(), f && f(), v.delete(t); }; } }; return _(), [ t, i, _, n ]; } return [ t, v.get(t)[4] ]; }, Rt = (t, e, o, c, i) => { const n = o.errorRetryCount, s = i.retryCount, E = ~~((Math.random() + 0.5) * (1 << (s < 8 ? s : 8))) * o.errorRetryInterval; !m(n) && s > n || setTimeout(c, E, i); }, Tt = ct, [yt, _t] = vt(/* @__PURE__ */ new Map()), Ft = T( { // events onLoadingSlow: C, onSuccess: C, onError: C, onErrorRetry: Rt, onDiscarded: C, // switches revalidateOnFocus: !0, revalidateOnReconnect: !0, revalidateIfStale: !0, shouldRetryOnError: !0, // timeouts errorRetryInterval: z ? 1e4 : 5e3, focusThrottleInterval: 5 * 1e3, dedupingInterval: 2 * 1e3, loadingTimeout: z ? 5e3 : 3e3, // providers compare: Tt, isPaused: () => !1, cache: yt, mutate: _t, fallback: {} }, // use web preset by default pt ), jt = (t, e) => { const o = T(t, e); if (e) { const { use: c, fallback: i } = t, { use: n, fallback: s } = e; c && n && (o.use = c.concat(n)), i && s && (o.fallback = T(i, s)); } return o; }, xt = tt({}); export { C as A, rt as B, gt as I, F as O, xt as S, u as U, R as a, v as b, yt as c, Ft as d, m as e, jt as f, vt as h, S as i, _t as j, Tt as k, P as l, T as m, Ct as n, G as o, pt as p, bt as q, W as r, Ot as s, Lt as t, Nt as u, z as v, j as w, at as x, ut as y, ft as z };