UNPKG

finform-react-builder

Version:

A powerful, flexible React form builder with dynamic field rendering, custom validation, multi-step forms, Material-UI integration, image component support, toggle/radio buttons, switches, autocomplete, and advanced button positioning

1,539 lines (1,538 loc) 383 kB
var Oa = (e) => { throw TypeError(e); }; var pi = (e, t, r) => t.has(e) || Oa("Cannot " + r); var v = (e, t, r) => (pi(e, t, "read from private field"), r ? r.call(e) : t.get(e)), re = (e, t, r) => t.has(e) ? Oa("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, r), K = (e, t, r, n) => (pi(e, t, "write to private field"), n ? n.call(e, r) : t.set(e, r), r), ue = (e, t, r) => (pi(e, t, "access private method"), r); var bn = (e, t, r, n) => ({ set _(i) { K(e, t, i, r); }, get _() { return v(e, t, n); } }); import { jsx as D, jsxs as Te, Fragment as Sl } from "react/jsx-runtime"; import * as Ce from "react"; import he, { useMemo as Qe, useState as Zt, useRef as Xt, useCallback as Pe, useEffect as ur, useReducer as El, forwardRef as kl, useImperativeHandle as Ol, Fragment as _l, createElement as Tl } from "react"; import { Box as we, TextField as wn, Autocomplete as Cl, CircularProgress as Tr, FormControlLabel as Sn, Switch as Al, FormHelperText as Hr, FormControl as fi, Typography as Me, RadioGroup as _a, Radio as Ta, Checkbox as Fl, InputLabel as $l, Select as Dl, MenuItem as En, Stepper as Rl, Step as Pl, StepLabel as jl, Button as Lt, ButtonGroup as Il, createTheme as Ml, ThemeProvider as zl, Paper as no, Tooltip as Vl, IconButton as Nl, Chip as Ca, Alert as Ll } from "@mui/material"; import ql from "@emotion/styled"; import "@emotion/react"; var pn = (e) => e.type === "checkbox", er = (e) => e instanceof Date, Be = (e) => e == null; const io = (e) => typeof e == "object"; var $e = (e) => !Be(e) && !Array.isArray(e) && io(e) && !er(e), ao = (e) => $e(e) && e.target ? pn(e.target) ? e.target.checked : e.target.value : e, Bl = (e) => e.substring(0, e.search(/\.\d+(\.|$)/)) || e, so = (e, t) => e.has(Bl(t)), Ul = (e) => { const t = e.constructor && e.constructor.prototype; return $e(t) && t.hasOwnProperty("isPrototypeOf"); }, na = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u"; function Ie(e) { let t; const r = Array.isArray(e), n = typeof FileList < "u" ? e instanceof FileList : !1; if (e instanceof Date) t = new Date(e); else if (e instanceof Set) t = new Set(e); else if (!(na && (e instanceof Blob || n)) && (r || $e(e))) if (t = r ? [] : {}, !r && !Ul(e)) t = e; else for (const i in e) e.hasOwnProperty(i) && (t[i] = Ie(e[i])); else return e; return t; } var ei = (e) => /^\w*$/.test(e), Fe = (e) => e === void 0, ia = (e) => Array.isArray(e) ? e.filter(Boolean) : [], aa = (e) => ia(e.replace(/["|']|\]/g, "").split(/\.|\[/)), N = (e, t, r) => { if (!t || !$e(e)) return r; const n = (ei(t) ? [t] : aa(t)).reduce((i, a) => Be(i) ? i : i[a], e); return Fe(n) || n === e ? Fe(e[t]) ? r : e[t] : n; }, Ye = (e) => typeof e == "boolean", me = (e, t, r) => { let n = -1; const i = ei(t) ? [t] : aa(t), a = i.length, s = a - 1; for (; ++n < a; ) { const o = i[n]; let l = r; if (n !== s) { const p = e[o]; l = $e(p) || Array.isArray(p) ? p : isNaN(+i[n + 1]) ? {} : []; } if (o === "__proto__" || o === "constructor" || o === "prototype") return; e[o] = l, e = e[o]; } }; const zn = { BLUR: "blur", FOCUS_OUT: "focusout", CHANGE: "change" }, lt = { onBlur: "onBlur", onChange: "onChange", onSubmit: "onSubmit", onTouched: "onTouched", all: "all" }, bt = { max: "max", min: "min", maxLength: "maxLength", minLength: "minLength", pattern: "pattern", required: "required", validate: "validate" }, oo = he.createContext(null); oo.displayName = "HookFormContext"; const sa = () => he.useContext(oo); var lo = (e, t, r, n = !0) => { const i = { defaultValues: t._defaultValues }; for (const a in e) Object.defineProperty(i, a, { get: () => { const s = a; return t._proxyFormState[s] !== lt.all && (t._proxyFormState[s] = !n || lt.all), r && (r[s] = !0), e[s]; } }); return i; }; const oa = typeof window < "u" ? Ce.useLayoutEffect : Ce.useEffect; function Wl(e) { const t = sa(), { control: r = t.control, disabled: n, name: i, exact: a } = e || {}, [s, o] = he.useState(r._formState), l = he.useRef({ isDirty: !1, isLoading: !1, dirtyFields: !1, touchedFields: !1, validatingFields: !1, isValidating: !1, isValid: !1, errors: !1 }); return oa(() => r._subscribe({ name: i, formState: l.current, exact: a, callback: (p) => { !n && o({ ...r._formState, ...p }); } }), [i, n, a]), he.useEffect(() => { l.current.isValid && r._setValid(!0); }, [r]), he.useMemo(() => lo(s, r, l.current, !1), [s, r]); } var xt = (e) => typeof e == "string", co = (e, t, r, n, i) => xt(e) ? (n && t.watch.add(e), N(r, e, i)) : Array.isArray(e) ? e.map((a) => (n && t.watch.add(a), N(r, a))) : (n && (t.watchAll = !0), r); function Hl(e) { const t = sa(), { control: r = t.control, name: n, defaultValue: i, disabled: a, exact: s } = e || {}, o = he.useRef(i), [l, p] = he.useState(r._getWatch(n, o.current)); return oa(() => r._subscribe({ name: n, formState: { values: !0 }, exact: s, callback: (d) => !a && p(co(n, r._names, d.values || r._formValues, !1, o.current)) }), [n, r, a, s]), he.useEffect(() => r._removeUnmounted()), l; } function Kl(e) { const t = sa(), { name: r, disabled: n, control: i = t.control, shouldUnregister: a } = e, s = so(i._names.array, r), o = Hl({ control: i, name: r, defaultValue: N(i._formValues, r, N(i._defaultValues, r, e.defaultValue)), exact: !0 }), l = Wl({ control: i, name: r, exact: !0 }), p = he.useRef(e), d = he.useRef(i.register(r, { ...e.rules, value: o, ...Ye(e.disabled) ? { disabled: e.disabled } : {} })), f = he.useMemo(() => Object.defineProperties({}, { invalid: { enumerable: !0, get: () => !!N(l.errors, r) }, isDirty: { enumerable: !0, get: () => !!N(l.dirtyFields, r) }, isTouched: { enumerable: !0, get: () => !!N(l.touchedFields, r) }, isValidating: { enumerable: !0, get: () => !!N(l.validatingFields, r) }, error: { enumerable: !0, get: () => N(l.errors, r) } }), [l, r]), m = he.useCallback((w) => d.current.onChange({ target: { value: ao(w), name: r }, type: zn.CHANGE }), [r]), x = he.useCallback(() => d.current.onBlur({ target: { value: N(i._formValues, r), name: r }, type: zn.BLUR }), [r, i._formValues]), h = he.useCallback((w) => { const y = N(i._fields, r); y && w && (y._f.ref = { focus: () => w.focus && w.focus(), select: () => w.select && w.select(), setCustomValidity: (O) => w.setCustomValidity(O), reportValidity: () => w.reportValidity() }); }, [i._fields, r]), c = he.useMemo(() => ({ name: r, value: o, ...Ye(n) || l.disabled ? { disabled: l.disabled || n } : {}, onChange: m, onBlur: x, ref: h }), [r, n, l.disabled, m, x, h, o]); return he.useEffect(() => { const w = i._options.shouldUnregister || a; i.register(r, { ...p.current.rules, ...Ye(p.current.disabled) ? { disabled: p.current.disabled } : {} }); const y = (O, $) => { const A = N(i._fields, O); A && A._f && (A._f.mount = $); }; if (y(r, !0), w) { const O = Ie(N(i._options.defaultValues, r)); me(i._defaultValues, r, O), Fe(N(i._formValues, r)) && me(i._formValues, r, O); } return !s && i.register(r), () => { (s ? w && !i._state.action : w) ? i.unregister(r) : y(r, !1); }; }, [r, i, s, a]), he.useEffect(() => { i._setDisabledField({ disabled: n, name: r }); }, [n, r, i]), he.useMemo(() => ({ field: c, formState: l, fieldState: f }), [c, l, f]); } const pt = (e) => e.render(Kl(e)); var uo = (e, t, r, n, i) => t ? { ...r[e], types: { ...r[e] && r[e].types ? r[e].types : {}, [n]: i || !0 } } : {}, en = (e) => Array.isArray(e) ? e : [e], Aa = () => { let e = []; return { get observers() { return e; }, next: (i) => { for (const a of e) a.next && a.next(i); }, subscribe: (i) => (e.push(i), { unsubscribe: () => { e = e.filter((a) => a !== i); } }), unsubscribe: () => { e = []; } }; }, $i = (e) => Be(e) || !io(e); function Dt(e, t) { if ($i(e) || $i(t)) return e === t; if (er(e) && er(t)) return e.getTime() === t.getTime(); const r = Object.keys(e), n = Object.keys(t); if (r.length !== n.length) return !1; for (const i of r) { const a = e[i]; if (!n.includes(i)) return !1; if (i !== "ref") { const s = t[i]; if (er(a) && er(s) || $e(a) && $e(s) || Array.isArray(a) && Array.isArray(s) ? !Dt(a, s) : a !== s) return !1; } } return !0; } var He = (e) => $e(e) && !Object.keys(e).length, la = (e) => e.type === "file", ct = (e) => typeof e == "function", Vn = (e) => { if (!na) return !1; const t = e ? e.ownerDocument : 0; return e instanceof (t && t.defaultView ? t.defaultView.HTMLElement : HTMLElement); }, po = (e) => e.type === "select-multiple", ca = (e) => e.type === "radio", Ql = (e) => ca(e) || pn(e), mi = (e) => Vn(e) && e.isConnected; function Gl(e, t) { const r = t.slice(0, -1).length; let n = 0; for (; n < r; ) e = Fe(e) ? n++ : e[t[n++]]; return e; } function Yl(e) { for (const t in e) if (e.hasOwnProperty(t) && !Fe(e[t])) return !1; return !0; } function Re(e, t) { const r = Array.isArray(t) ? t : ei(t) ? [t] : aa(t), n = r.length === 1 ? e : Gl(e, r), i = r.length - 1, a = r[i]; return n && delete n[a], i !== 0 && ($e(n) && He(n) || Array.isArray(n) && Yl(n)) && Re(e, r.slice(0, -1)), e; } var fo = (e) => { for (const t in e) if (ct(e[t])) return !0; return !1; }; function Nn(e, t = {}) { const r = Array.isArray(e); if ($e(e) || r) for (const n in e) Array.isArray(e[n]) || $e(e[n]) && !fo(e[n]) ? (t[n] = Array.isArray(e[n]) ? [] : {}, Nn(e[n], t[n])) : Be(e[n]) || (t[n] = !0); return t; } function mo(e, t, r) { const n = Array.isArray(e); if ($e(e) || n) for (const i in e) Array.isArray(e[i]) || $e(e[i]) && !fo(e[i]) ? Fe(t) || $i(r[i]) ? r[i] = Array.isArray(e[i]) ? Nn(e[i], []) : { ...Nn(e[i]) } : mo(e[i], Be(t) ? {} : t[i], r[i]) : r[i] = !Dt(e[i], t[i]); return r; } var Kr = (e, t) => mo(e, t, Nn(t)); const Fa = { value: !1, isValid: !1 }, $a = { value: !0, isValid: !0 }; var ho = (e) => { if (Array.isArray(e)) { if (e.length > 1) { const t = e.filter((r) => r && r.checked && !r.disabled).map((r) => r.value); return { value: t, isValid: !!t.length }; } return e[0].checked && !e[0].disabled ? ( // @ts-expect-error expected to work in the browser e[0].attributes && !Fe(e[0].attributes.value) ? Fe(e[0].value) || e[0].value === "" ? $a : { value: e[0].value, isValid: !0 } : $a ) : Fa; } return Fa; }, go = (e, { valueAsNumber: t, valueAsDate: r, setValueAs: n }) => Fe(e) ? e : t ? e === "" ? NaN : e && +e : r && xt(e) ? new Date(e) : n ? n(e) : e; const Da = { isValid: !1, value: null }; var yo = (e) => Array.isArray(e) ? e.reduce((t, r) => r && r.checked && !r.disabled ? { isValid: !0, value: r.value } : t, Da) : Da; function Ra(e) { const t = e.ref; return la(t) ? t.files : ca(t) ? yo(e.refs).value : po(t) ? [...t.selectedOptions].map(({ value: r }) => r) : pn(t) ? ho(e.refs).value : go(Fe(t.value) ? e.ref.value : t.value, e); } var Zl = (e, t, r, n) => { const i = {}; for (const a of e) { const s = N(t, a); s && me(i, a, s._f); } return { criteriaMode: r, names: [...e], fields: i, shouldUseNativeValidation: n }; }, Ln = (e) => e instanceof RegExp, Qr = (e) => Fe(e) ? e : Ln(e) ? e.source : $e(e) ? Ln(e.value) ? e.value.source : e.value : e, Pa = (e) => ({ isOnSubmit: !e || e === lt.onSubmit, isOnBlur: e === lt.onBlur, isOnChange: e === lt.onChange, isOnAll: e === lt.all, isOnTouch: e === lt.onTouched }); const ja = "AsyncFunction"; var Jl = (e) => !!e && !!e.validate && !!(ct(e.validate) && e.validate.constructor.name === ja || $e(e.validate) && Object.values(e.validate).find((t) => t.constructor.name === ja)), Xl = (e) => e.mount && (e.required || e.min || e.max || e.maxLength || e.minLength || e.pattern || e.validate), Ia = (e, t, r) => !r && (t.watchAll || t.watch.has(e) || [...t.watch].some((n) => e.startsWith(n) && /^\.\w+/.test(e.slice(n.length)))); const tn = (e, t, r, n) => { for (const i of r || Object.keys(e)) { const a = N(e, i); if (a) { const { _f: s, ...o } = a; if (s) { if (s.refs && s.refs[0] && t(s.refs[0], i) && !n) return !0; if (s.ref && t(s.ref, s.name) && !n) return !0; if (tn(o, t)) break; } else if ($e(o) && tn(o, t)) break; } } }; function Ma(e, t, r) { const n = N(e, r); if (n || ei(r)) return { error: n, name: r }; const i = r.split("."); for (; i.length; ) { const a = i.join("."), s = N(t, a), o = N(e, a); if (s && !Array.isArray(s) && r !== a) return { name: r }; if (o && o.type) return { name: a, error: o }; if (o && o.root && o.root.type) return { name: `${a}.root`, error: o.root }; i.pop(); } return { name: r }; } var ec = (e, t, r, n) => { r(e); const { name: i, ...a } = e; return He(a) || Object.keys(a).length >= Object.keys(t).length || Object.keys(a).find((s) => t[s] === (!n || lt.all)); }, tc = (e, t, r) => !e || !t || e === t || en(e).some((n) => n && (r ? n === t : n.startsWith(t) || t.startsWith(n))), rc = (e, t, r, n, i) => i.isOnAll ? !1 : !r && i.isOnTouch ? !(t || e) : (r ? n.isOnBlur : i.isOnBlur) ? !e : (r ? n.isOnChange : i.isOnChange) ? e : !0, nc = (e, t) => !ia(N(e, t)).length && Re(e, t), ic = (e, t, r) => { const n = en(N(e, r)); return me(n, "root", t[r]), me(e, r, n), e; }, Pn = (e) => xt(e); function za(e, t, r = "validate") { if (Pn(e) || Array.isArray(e) && e.every(Pn) || Ye(e) && !e) return { type: r, message: Pn(e) ? e : "", ref: t }; } var vr = (e) => $e(e) && !Ln(e) ? e : { value: e, message: "" }, Va = async (e, t, r, n, i, a) => { const { ref: s, refs: o, required: l, maxLength: p, minLength: d, min: f, max: m, pattern: x, validate: h, name: c, valueAsNumber: w, mount: y } = e._f, O = N(r, c); if (!y || t.has(c)) return {}; const $ = o ? o[0] : s, A = (k) => { i && $.reportValidity && ($.setCustomValidity(Ye(k) ? "" : k || ""), $.reportValidity()); }, b = {}, M = ca(s), W = pn(s), Q = M || W, B = (w || la(s)) && Fe(s.value) && Fe(O) || Vn(s) && s.value === "" || O === "" || Array.isArray(O) && !O.length, u = uo.bind(null, c, n, b), R = (k, j, I, V = bt.maxLength, q = bt.minLength) => { const le = k ? j : I; b[c] = { type: k ? V : q, message: le, ref: s, ...u(k ? V : q, le) }; }; if (a ? !Array.isArray(O) || !O.length : l && (!Q && (B || Be(O)) || Ye(O) && !O || W && !ho(o).isValid || M && !yo(o).isValid)) { const { value: k, message: j } = Pn(l) ? { value: !!l, message: l } : vr(l); if (k && (b[c] = { type: bt.required, message: j, ref: $, ...u(bt.required, j) }, !n)) return A(j), b; } if (!B && (!Be(f) || !Be(m))) { let k, j; const I = vr(m), V = vr(f); if (!Be(O) && !isNaN(O)) { const q = s.valueAsNumber || O && +O; Be(I.value) || (k = q > I.value), Be(V.value) || (j = q < V.value); } else { const q = s.valueAsDate || new Date(O), le = (P) => /* @__PURE__ */ new Date((/* @__PURE__ */ new Date()).toDateString() + " " + P), Z = s.type == "time", J = s.type == "week"; xt(I.value) && O && (k = Z ? le(O) > le(I.value) : J ? O > I.value : q > new Date(I.value)), xt(V.value) && O && (j = Z ? le(O) < le(V.value) : J ? O < V.value : q < new Date(V.value)); } if ((k || j) && (R(!!k, I.message, V.message, bt.max, bt.min), !n)) return A(b[c].message), b; } if ((p || d) && !B && (xt(O) || a && Array.isArray(O))) { const k = vr(p), j = vr(d), I = !Be(k.value) && O.length > +k.value, V = !Be(j.value) && O.length < +j.value; if ((I || V) && (R(I, k.message, j.message), !n)) return A(b[c].message), b; } if (x && !B && xt(O)) { const { value: k, message: j } = vr(x); if (Ln(k) && !O.match(k) && (b[c] = { type: bt.pattern, message: j, ref: s, ...u(bt.pattern, j) }, !n)) return A(j), b; } if (h) { if (ct(h)) { const k = await h(O, r), j = za(k, $); if (j && (b[c] = { ...j, ...u(bt.validate, j.message) }, !n)) return A(j.message), b; } else if ($e(h)) { let k = {}; for (const j in h) { if (!He(k) && !n) break; const I = za(await h[j](O, r), $, j); I && (k = { ...I, ...u(j, I.message) }, A(I.message), n && (b[c] = k)); } if (!He(k) && (b[c] = { ref: $, ...k }, !n)) return b; } } return A(!0), b; }; const ac = { mode: lt.onSubmit, reValidateMode: lt.onChange, shouldFocusError: !0 }; function sc(e = {}) { let t = { ...ac, ...e }, r = { submitCount: 0, isDirty: !1, isReady: !1, isLoading: ct(t.defaultValues), isValidating: !1, isSubmitted: !1, isSubmitting: !1, isSubmitSuccessful: !1, isValid: !1, touchedFields: {}, dirtyFields: {}, validatingFields: {}, errors: t.errors || {}, disabled: t.disabled || !1 }; const n = {}; let i = $e(t.defaultValues) || $e(t.values) ? Ie(t.defaultValues || t.values) || {} : {}, a = t.shouldUnregister ? {} : Ie(i), s = { action: !1, mount: !1, watch: !1 }, o = { mount: /* @__PURE__ */ new Set(), disabled: /* @__PURE__ */ new Set(), unMount: /* @__PURE__ */ new Set(), array: /* @__PURE__ */ new Set(), watch: /* @__PURE__ */ new Set() }, l, p = 0; const d = { isDirty: !1, dirtyFields: !1, validatingFields: !1, touchedFields: !1, isValidating: !1, isValid: !1, errors: !1 }; let f = { ...d }; const m = { array: Aa(), state: Aa() }, x = t.criteriaMode === lt.all, h = (g) => (S) => { clearTimeout(p), p = setTimeout(g, S); }, c = async (g) => { if (!t.disabled && (d.isValid || f.isValid || g)) { const S = t.resolver ? He((await W()).errors) : await B(n, !0); S !== r.isValid && m.state.next({ isValid: S }); } }, w = (g, S) => { !t.disabled && (d.isValidating || d.validatingFields || f.isValidating || f.validatingFields) && ((g || Array.from(o.mount)).forEach((F) => { F && (S ? me(r.validatingFields, F, S) : Re(r.validatingFields, F)); }), m.state.next({ validatingFields: r.validatingFields, isValidating: !He(r.validatingFields) })); }, y = (g, S = [], F, U, E = !0, T = !0) => { if (U && F && !t.disabled) { if (s.action = !0, T && Array.isArray(N(n, g))) { const L = F(N(n, g), U.argA, U.argB); E && me(n, g, L); } if (T && Array.isArray(N(r.errors, g))) { const L = F(N(r.errors, g), U.argA, U.argB); E && me(r.errors, g, L), nc(r.errors, g); } if ((d.touchedFields || f.touchedFields) && T && Array.isArray(N(r.touchedFields, g))) { const L = F(N(r.touchedFields, g), U.argA, U.argB); E && me(r.touchedFields, g, L); } (d.dirtyFields || f.dirtyFields) && (r.dirtyFields = Kr(i, a)), m.state.next({ name: g, isDirty: R(g, S), dirtyFields: r.dirtyFields, errors: r.errors, isValid: r.isValid }); } else me(a, g, S); }, O = (g, S) => { me(r.errors, g, S), m.state.next({ errors: r.errors }); }, $ = (g) => { r.errors = g, m.state.next({ errors: r.errors, isValid: !1 }); }, A = (g, S, F, U) => { const E = N(n, g); if (E) { const T = N(a, g, Fe(F) ? N(i, g) : F); Fe(T) || U && U.defaultChecked || S ? me(a, g, S ? T : Ra(E._f)) : I(g, T), s.mount && c(); } }, b = (g, S, F, U, E) => { let T = !1, L = !1; const te = { name: g }; if (!t.disabled) { if (!F || U) { (d.isDirty || f.isDirty) && (L = r.isDirty, r.isDirty = te.isDirty = R(), T = L !== te.isDirty); const se = Dt(N(i, g), S); L = !!N(r.dirtyFields, g), se ? Re(r.dirtyFields, g) : me(r.dirtyFields, g, !0), te.dirtyFields = r.dirtyFields, T = T || (d.dirtyFields || f.dirtyFields) && L !== !se; } if (F) { const se = N(r.touchedFields, g); se || (me(r.touchedFields, g, F), te.touchedFields = r.touchedFields, T = T || (d.touchedFields || f.touchedFields) && se !== F); } T && E && m.state.next(te); } return T ? te : {}; }, M = (g, S, F, U) => { const E = N(r.errors, g), T = (d.isValid || f.isValid) && Ye(S) && r.isValid !== S; if (t.delayError && F ? (l = h(() => O(g, F)), l(t.delayError)) : (clearTimeout(p), l = null, F ? me(r.errors, g, F) : Re(r.errors, g)), (F ? !Dt(E, F) : E) || !He(U) || T) { const L = { ...U, ...T && Ye(S) ? { isValid: S } : {}, errors: r.errors, name: g }; r = { ...r, ...L }, m.state.next(L); } }, W = async (g) => { w(g, !0); const S = await t.resolver(a, t.context, Zl(g || o.mount, n, t.criteriaMode, t.shouldUseNativeValidation)); return w(g), S; }, Q = async (g) => { const { errors: S } = await W(g); if (g) for (const F of g) { const U = N(S, F); U ? me(r.errors, F, U) : Re(r.errors, F); } else r.errors = S; return S; }, B = async (g, S, F = { valid: !0 }) => { for (const U in g) { const E = g[U]; if (E) { const { _f: T, ...L } = E; if (T) { const te = o.array.has(T.name), se = E._f && Jl(E._f); se && d.validatingFields && w([U], !0); const je = await Va(E, o.disabled, a, x, t.shouldUseNativeValidation && !S, te); if (se && d.validatingFields && w([U]), je[T.name] && (F.valid = !1, S)) break; !S && (N(je, T.name) ? te ? ic(r.errors, je, T.name) : me(r.errors, T.name, je[T.name]) : Re(r.errors, T.name)); } !He(L) && await B(L, S, F); } } return F.valid; }, u = () => { for (const g of o.unMount) { const S = N(n, g); S && (S._f.refs ? S._f.refs.every((F) => !mi(F)) : !mi(S._f.ref)) && ie(g); } o.unMount = /* @__PURE__ */ new Set(); }, R = (g, S) => !t.disabled && (g && S && me(a, g, S), !Dt(P(), i)), k = (g, S, F) => co(g, o, { ...s.mount ? a : Fe(S) ? i : xt(g) ? { [g]: S } : S }, F, S), j = (g) => ia(N(s.mount ? a : i, g, t.shouldUnregister ? N(i, g, []) : [])), I = (g, S, F = {}) => { const U = N(n, g); let E = S; if (U) { const T = U._f; T && (!T.disabled && me(a, g, go(S, T)), E = Vn(T.ref) && Be(S) ? "" : S, po(T.ref) ? [...T.ref.options].forEach((L) => L.selected = E.includes(L.value)) : T.refs ? pn(T.ref) ? T.refs.forEach((L) => { (!L.defaultChecked || !L.disabled) && (Array.isArray(E) ? L.checked = !!E.find((te) => te === L.value) : L.checked = E === L.value || !!E); }) : T.refs.forEach((L) => L.checked = L.value === E) : la(T.ref) ? T.ref.value = "" : (T.ref.value = E, T.ref.type || m.state.next({ name: g, values: Ie(a) }))); } (F.shouldDirty || F.shouldTouch) && b(g, E, F.shouldTouch, F.shouldDirty, !0), F.shouldValidate && J(g); }, V = (g, S, F) => { for (const U in S) { if (!S.hasOwnProperty(U)) return; const E = S[U], T = g + "." + U, L = N(n, T); (o.array.has(g) || $e(E) || L && !L._f) && !er(E) ? V(T, E, F) : I(T, E, F); } }, q = (g, S, F = {}) => { const U = N(n, g), E = o.array.has(g), T = Ie(S); me(a, g, T), E ? (m.array.next({ name: g, values: Ie(a) }), (d.isDirty || d.dirtyFields || f.isDirty || f.dirtyFields) && F.shouldDirty && m.state.next({ name: g, dirtyFields: Kr(i, a), isDirty: R(g, T) })) : U && !U._f && !Be(T) ? V(g, T, F) : I(g, T, F), Ia(g, o) && m.state.next({ ...r }), m.state.next({ name: s.mount ? g : void 0, values: Ie(a) }); }, le = async (g) => { s.mount = !0; const S = g.target; let F = S.name, U = !0; const E = N(n, F), T = (se) => { U = Number.isNaN(se) || er(se) && isNaN(se.getTime()) || Dt(se, N(a, F, se)); }, L = Pa(t.mode), te = Pa(t.reValidateMode); if (E) { let se, je; const at = S.type ? Ra(E._f) : ao(g), et = g.type === zn.BLUR || g.type === zn.FOCUS_OUT, Br = !Xl(E._f) && !t.resolver && !N(r.errors, F) && !E._f.deps || rc(et, N(r.touchedFields, F), r.isSubmitted, te, L), Gt = Ia(F, o, et); me(a, F, at), et ? (E._f.onBlur && E._f.onBlur(g), l && l(0)) : E._f.onChange && E._f.onChange(g); const At = b(F, at, et), Ur = !He(At) || Gt; if (!et && m.state.next({ name: F, type: g.type, values: Ie(a) }), Br) return (d.isValid || f.isValid) && (t.mode === "onBlur" ? et && c() : et || c()), Ur && m.state.next({ name: F, ...Gt ? {} : At }); if (!et && Gt && m.state.next({ ...r }), t.resolver) { const { errors: gr } = await W([F]); if (T(at), U) { const Wr = Ma(r.errors, n, F), yr = Ma(gr, n, Wr.name || F); se = yr.error, F = yr.name, je = He(gr); } } else w([F], !0), se = (await Va(E, o.disabled, a, x, t.shouldUseNativeValidation))[F], w([F]), T(at), U && (se ? je = !1 : (d.isValid || f.isValid) && (je = await B(n, !0))); U && (E._f.deps && J(E._f.deps), M(F, je, se, At)); } }, Z = (g, S) => { if (N(r.errors, S) && g.focus) return g.focus(), 1; }, J = async (g, S = {}) => { let F, U; const E = en(g); if (t.resolver) { const T = await Q(Fe(g) ? g : E); F = He(T), U = g ? !E.some((L) => N(T, L)) : F; } else g ? (U = (await Promise.all(E.map(async (T) => { const L = N(n, T); return await B(L && L._f ? { [T]: L } : L); }))).every(Boolean), !(!U && !r.isValid) && c()) : U = F = await B(n); return m.state.next({ ...!xt(g) || (d.isValid || f.isValid) && F !== r.isValid ? {} : { name: g }, ...t.resolver || !g ? { isValid: F } : {}, errors: r.errors }), S.shouldFocus && !U && tn(n, Z, g ? E : o.mount), U; }, P = (g) => { const S = { ...s.mount ? a : i }; return Fe(g) ? S : xt(g) ? N(S, g) : g.map((F) => N(S, F)); }, _ = (g, S) => ({ invalid: !!N((S || r).errors, g), isDirty: !!N((S || r).dirtyFields, g), error: N((S || r).errors, g), isValidating: !!N(r.validatingFields, g), isTouched: !!N((S || r).touchedFields, g) }), ee = (g) => { g && en(g).forEach((S) => Re(r.errors, S)), m.state.next({ errors: g ? r.errors : {} }); }, Y = (g, S, F) => { const U = (N(n, g, { _f: {} })._f || {}).ref, E = N(r.errors, g) || {}, { ref: T, message: L, type: te, ...se } = E; me(r.errors, g, { ...se, ...S, ref: U }), m.state.next({ name: g, errors: r.errors, isValid: !1 }), F && F.shouldFocus && U && U.focus && U.focus(); }, H = (g, S) => ct(g) ? m.state.subscribe({ next: (F) => g(k(void 0, S), F) }) : k(g, S, !0), X = (g) => m.state.subscribe({ next: (S) => { tc(g.name, S.name, g.exact) && ec(S, g.formState || d, Ct, g.reRenderRoot) && g.callback({ values: { ...a }, ...r, ...S }); } }).unsubscribe, ne = (g) => (s.mount = !0, f = { ...f, ...g.formState }, X({ ...g, formState: f })), ie = (g, S = {}) => { for (const F of g ? en(g) : o.mount) o.mount.delete(F), o.array.delete(F), S.keepValue || (Re(n, F), Re(a, F)), !S.keepError && Re(r.errors, F), !S.keepDirty && Re(r.dirtyFields, F), !S.keepTouched && Re(r.touchedFields, F), !S.keepIsValidating && Re(r.validatingFields, F), !t.shouldUnregister && !S.keepDefaultValue && Re(i, F); m.state.next({ values: Ie(a) }), m.state.next({ ...r, ...S.keepDirty ? { isDirty: R() } : {} }), !S.keepIsValid && c(); }, oe = ({ disabled: g, name: S }) => { (Ye(g) && s.mount || g || o.disabled.has(S)) && (g ? o.disabled.add(S) : o.disabled.delete(S)); }, ce = (g, S = {}) => { let F = N(n, g); const U = Ye(S.disabled) || Ye(t.disabled); return me(n, g, { ...F || {}, _f: { ...F && F._f ? F._f : { ref: { name: g } }, name: g, mount: !0, ...S } }), o.mount.add(g), F ? oe({ disabled: Ye(S.disabled) ? S.disabled : t.disabled, name: g }) : A(g, !0, S.value), { ...U ? { disabled: S.disabled || t.disabled } : {}, ...t.progressive ? { required: !!S.required, min: Qr(S.min), max: Qr(S.max), minLength: Qr(S.minLength), maxLength: Qr(S.maxLength), pattern: Qr(S.pattern) } : {}, name: g, onChange: le, onBlur: le, ref: (E) => { if (E) { ce(g, S), F = N(n, g); const T = Fe(E.value) && E.querySelectorAll && E.querySelectorAll("input,select,textarea")[0] || E, L = Ql(T), te = F._f.refs || []; if (L ? te.find((se) => se === T) : T === F._f.ref) return; me(n, g, { _f: { ...F._f, ...L ? { refs: [ ...te.filter(mi), T, ...Array.isArray(N(i, g)) ? [{}] : [] ], ref: { type: T.type, name: g } } : { ref: T } } }), A(g, !1, void 0, T); } else F = N(n, g, {}), F._f && (F._f.mount = !1), (t.shouldUnregister || S.shouldUnregister) && !(so(o.array, g) && s.action) && o.unMount.add(g); } }; }, ae = () => t.shouldFocusError && tn(n, Z, o.mount), Ae = (g) => { Ye(g) && (m.state.next({ disabled: g }), tn(n, (S, F) => { const U = N(n, F); U && (S.disabled = U._f.disabled || g, Array.isArray(U._f.refs) && U._f.refs.forEach((E) => { E.disabled = U._f.disabled || g; })); }, 0, !1)); }, z = (g, S) => async (F) => { let U; F && (F.preventDefault && F.preventDefault(), F.persist && F.persist()); let E = Ie(a); if (m.state.next({ isSubmitting: !0 }), t.resolver) { const { errors: T, values: L } = await W(); r.errors = T, E = L; } else await B(n); if (o.disabled.size) for (const T of o.disabled) me(E, T, void 0); if (Re(r.errors, "root"), He(r.errors)) { m.state.next({ errors: {} }); try { await g(E, F); } catch (T) { U = T; } } else S && await S({ ...r.errors }, F), ae(), setTimeout(ae); if (m.state.next({ isSubmitted: !0, isSubmitting: !1, isSubmitSuccessful: He(r.errors) && !U, submitCount: r.submitCount + 1, errors: r.errors }), U) throw U; }, Ne = (g, S = {}) => { N(n, g) && (Fe(S.defaultValue) ? q(g, Ie(N(i, g))) : (q(g, S.defaultValue), me(i, g, Ie(S.defaultValue))), S.keepTouched || Re(r.touchedFields, g), S.keepDirty || (Re(r.dirtyFields, g), r.isDirty = S.defaultValue ? R(g, Ie(N(i, g))) : R()), S.keepError || (Re(r.errors, g), d.isValid && c()), m.state.next({ ...r })); }, dt = (g, S = {}) => { const F = g ? Ie(g) : i, U = Ie(F), E = He(g), T = E ? i : U; if (S.keepDefaultValues || (i = F), !S.keepValues) { if (S.keepDirtyValues) { const L = /* @__PURE__ */ new Set([ ...o.mount, ...Object.keys(Kr(i, a)) ]); for (const te of Array.from(L)) N(r.dirtyFields, te) ? me(T, te, N(a, te)) : q(te, N(T, te)); } else { if (na && Fe(g)) for (const L of o.mount) { const te = N(n, L); if (te && te._f) { const se = Array.isArray(te._f.refs) ? te._f.refs[0] : te._f.ref; if (Vn(se)) { const je = se.closest("form"); if (je) { je.reset(); break; } } } } for (const L of o.mount) q(L, N(T, L)); } a = Ie(T), m.array.next({ values: { ...T } }), m.state.next({ values: { ...T } }); } o = { mount: S.keepDirtyValues ? o.mount : /* @__PURE__ */ new Set(), unMount: /* @__PURE__ */ new Set(), array: /* @__PURE__ */ new Set(), disabled: /* @__PURE__ */ new Set(), watch: /* @__PURE__ */ new Set(), watchAll: !1, focus: "" }, s.mount = !d.isValid || !!S.keepIsValid || !!S.keepDirtyValues, s.watch = !!t.shouldUnregister, m.state.next({ submitCount: S.keepSubmitCount ? r.submitCount : 0, isDirty: E ? !1 : S.keepDirty ? r.isDirty : !!(S.keepDefaultValues && !Dt(g, i)), isSubmitted: S.keepIsSubmitted ? r.isSubmitted : !1, dirtyFields: E ? {} : S.keepDirtyValues ? S.keepDefaultValues && a ? Kr(i, a) : r.dirtyFields : S.keepDefaultValues && g ? Kr(i, g) : S.keepDirty ? r.dirtyFields : {}, touchedFields: S.keepTouched ? r.touchedFields : {}, errors: S.keepErrors ? r.errors : {}, isSubmitSuccessful: S.keepIsSubmitSuccessful ? r.isSubmitSuccessful : !1, isSubmitting: !1 }); }, Tt = (g, S) => dt(ct(g) ? g(a) : g, S), vn = (g, S = {}) => { const F = N(n, g), U = F && F._f; if (U) { const E = U.refs ? U.refs[0] : U.ref; E.focus && (E.focus(), S.shouldSelect && ct(E.select) && E.select()); } }, Ct = (g) => { r = { ...r, ...g }; }, Qt = { control: { register: ce, unregister: ie, getFieldState: _, handleSubmit: z, setError: Y, _subscribe: X, _runSchema: W, _focusError: ae, _getWatch: k, _getDirty: R, _setValid: c, _setFieldArray: y, _setDisabledField: oe, _setErrors: $, _getFieldArray: j, _reset: dt, _resetDefaultValues: () => ct(t.defaultValues) && t.defaultValues().then((g) => { Tt(g, t.resetOptions), m.state.next({ isLoading: !1 }); }), _removeUnmounted: u, _disableForm: Ae, _subjects: m, _proxyFormState: d, get _fields() { return n; }, get _formValues() { return a; }, get _state() { return s; }, set _state(g) { s = g; }, get _defaultValues() { return i; }, get _names() { return o; }, set _names(g) { o = g; }, get _formState() { return r; }, get _options() { return t; }, set _options(g) { t = { ...t, ...g }; } }, subscribe: ne, trigger: J, register: ce, handleSubmit: z, watch: H, setValue: q, getValues: P, reset: Tt, resetField: Ne, clearErrors: ee, unregister: ie, setError: Y, setFocus: vn, getFieldState: _ }; return { ...Qt, formControl: Qt }; } function oc(e = {}) { const t = he.useRef(void 0), r = he.useRef(void 0), [n, i] = he.useState({ isDirty: !1, isValidating: !1, isLoading: ct(e.defaultValues), isSubmitted: !1, isSubmitting: !1, isSubmitSuccessful: !1, isValid: !1, submitCount: 0, dirtyFields: {}, touchedFields: {}, validatingFields: {}, errors: e.errors || {}, disabled: e.disabled || !1, isReady: !1, defaultValues: ct(e.defaultValues) ? void 0 : e.defaultValues }); if (!t.current) if (e.formControl) t.current = { ...e.formControl, formState: n }, e.defaultValues && !ct(e.defaultValues) && e.formControl.reset(e.defaultValues, e.resetOptions); else { const { formControl: s, ...o } = sc(e); t.current = { ...o, formState: n }; } const a = t.current.control; return a._options = e, oa(() => { const s = a._subscribe({ formState: a._proxyFormState, callback: () => i({ ...a._formState }), reRenderRoot: !0 }); return i((o) => ({ ...o, isReady: !0 })), a._formState.isReady = !0, s; }, [a]), he.useEffect(() => a._disableForm(e.disabled), [a, e.disabled]), he.useEffect(() => { e.mode && (a._options.mode = e.mode), e.reValidateMode && (a._options.reValidateMode = e.reValidateMode); }, [a, e.mode, e.reValidateMode]), he.useEffect(() => { e.errors && (a._setErrors(e.errors), a._focusError()); }, [a, e.errors]), he.useEffect(() => { e.shouldUnregister && a._subjects.state.next({ values: a._getWatch() }); }, [a, e.shouldUnregister]), he.useEffect(() => { if (a._proxyFormState.isDirty) { const s = a._getDirty(); s !== n.isDirty && a._subjects.state.next({ isDirty: s }); } }, [a, n.isDirty]), he.useEffect(() => { e.values && !Dt(e.values, r.current) ? (a._reset(e.values, a._options.resetOptions), r.current = e.values, i((s) => ({ ...s }))) : a._resetDefaultValues(); }, [a, e.values]), he.useEffect(() => { a._state.mount || (a._setValid(), a._state.mount = !0), a._state.watch && (a._state.watch = !1, a._subjects.state.next({ ...a._formState })), a._removeUnmounted(); }), t.current.formState = lo(n, a), t.current; } const Na = (e, t, r) => { if (e && "reportValidity" in e) { const n = N(r, t); e.setCustomValidity(n && n.message || ""), e.reportValidity(); } }, vo = (e, t) => { for (const r in t.fields) { const n = t.fields[r]; n && n.ref && "reportValidity" in n.ref ? Na(n.ref, r, e) : n && n.refs && n.refs.forEach((i) => Na(i, r, e)); } }, lc = (e, t) => { t.shouldUseNativeValidation && vo(e, t); const r = {}; for (const n in e) { const i = N(t.fields, n), a = Object.assign(e[n] || {}, { ref: i && i.ref }); if (cc(t.names || Object.keys(e), n)) { const s = Object.assign({}, N(r, n)); me(s, "root", a), me(r, n, s); } else me(r, n, a); } return r; }, cc = (e, t) => { const r = La(t); return e.some((n) => La(n).match(`^${r}\\.\\d+`)); }; function La(e) { return e.replace(/\]|\[/g, ""); } function uc(e, t, r) { return r === void 0 && (r = {}), function(n, i, a) { try { return Promise.resolve(function(s, o) { try { var l = (t != null && t.context && process.env.NODE_ENV === "development" && console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"), Promise.resolve(e[r.mode === "sync" ? "validateSync" : "validate"](n, Object.assign({ abortEarly: !1 }, t, { context: i }))).then(function(p) { return a.shouldUseNativeValidation && vo({}, a), { values: r.raw ? Object.assign({}, n) : p, errors: {} }; })); } catch (p) { return o(p); } return l && l.then ? l.then(void 0, o) : l; }(0, function(s) { if (!s.inner) throw s; return { values: {}, errors: lc((o = s, l = !a.shouldUseNativeValidation && a.criteriaMode === "all", (o.inner || []).reduce(function(p, d) { if (p[d.path] || (p[d.path] = { message: d.message, type: d.type }), l) { var f = p[d.path].types, m = f && f[d.type]; p[d.path] = uo(d.path, l, p, d.type, m ? [].concat(m, d.message) : d.message); } return p; }, {})), a) }; var o, l; })); } catch (s) { return Promise.reject(s); } }; } var fn = class { constructor() { this.listeners = /* @__PURE__ */ new Set(), this.subscribe = this.subscribe.bind(this); } subscribe(e) { return this.listeners.add(e), this.onSubscribe(), () => { this.listeners.delete(e), this.onUnsubscribe(); }; } hasListeners() { return this.listeners.size > 0; } onSubscribe() { } onUnsubscribe() { } }, pr = typeof window > "u" || "Deno" in globalThis; function Ke() { } function dc(e, t) { return typeof e == "function" ? e(t) : e; } function Di(e) { return typeof e == "number" && e >= 0 && e !== 1 / 0; } function xo(e, t) { return Math.max(e + (t || 0) - Date.now(), 0); } function Bt(e, t) { return typeof e == "function" ? e(t) : e; } function rt(e, t) { return typeof e == "function" ? e(t) : e; } function qa(e, t) { const { type: r = "all", exact: n, fetchStatus: i, predicate: a, queryKey: s, stale: o } = e; if (s) { if (n) { if (t.queryHash !== ua(s, t.options)) return !1; } else if (!an(t.queryKey, s)) return !1; } if (r !== "all") { const l = t.isActive(); if (r === "active" && !l || r === "inactive" && l) return !1; } return !(typeof o == "boolean" && t.isStale() !== o || i && i !== t.state.fetchStatus || a && !a(t)); } function Ba(e, t) { const { exact: r, status: n, predicate: i, mutationKey: a } = e; if (a) { if (!t.options.mutationKey) return !1; if (r) { if (nn(t.options.mutationKey) !== nn(a)) return !1; } else if (!an(t.options.mutationKey, a)) return !1; } return !(n && t.state.status !== n || i && !i(t)); } function ua(e, t) { return ((t == null ? void 0 : t.queryKeyHashFn) || nn)(e); } function nn(e) { return JSON.stringify( e, (t, r) => ji(r) ? Object.keys(r).sort().reduce((n, i) => (n[i] = r[i], n), {}) : r ); } function an(e, t) { return e === t ? !0 : typeof e != typeof t ? !1 : e && t && typeof e == "object" && typeof t == "object" ? Object.keys(t).every((r) => an(e[r], t[r])) : !1; } function Ri(e, t) { if (e === t) return e; const r = Ua(e) && Ua(t); if (r || ji(e) && ji(t)) { const n = r ? e : Object.keys(e), i = n.length, a = r ? t : Object.keys(t), s = a.length, o = r ? [] : {}, l = new Set(n); let p = 0; for (let d = 0; d < s; d++) { const f = r ? d : a[d]; (!r && l.has(f) || r) && e[f] === void 0 && t[f] === void 0 ? (o[f] = void 0, p++) : (o[f] = Ri(e[f], t[f]), o[f] === e[f] && e[f] !== void 0 && p++); } return i === s && p === i ? e : o; } return t; } function Pi(e, t) { if (!t || Object.keys(e).length !== Object.keys(t).length) return !1; for (const r in e) if (e[r] !== t[r]) return !1; return !0; } function Ua(e) { return Array.isArray(e) && e.length === Object.keys(e).length; } function ji(e) { if (!Wa(e)) return !1; const t = e.constructor; if (t === void 0) return !0; const r = t.prototype; return !(!Wa(r) || !r.hasOwnProperty("isPrototypeOf") || Object.getPrototypeOf(e) !== Object.prototype); } function Wa(e) { return Object.prototype.toString.call(e) === "[object Object]"; } function pc(e) { return new Promise((t) => { setTimeout(t, e); }); } function Ii(e, t, r) { if (typeof r.structuralSharing == "function") return r.structuralSharing(e, t); if (r.structuralSharing !== !1) { if (process.env.NODE_ENV !== "production") try { return Ri(e, t); } catch (n) { throw console.error( `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${r.queryHash}]: ${n}` ), n; } return Ri(e, t); } return t; } function fc(e, t, r = 0) { const n = [...e, t]; return r && n.length > r ? n.slice(1) : n; } function mc(e, t, r = 0) { const n = [t, ...e]; return r && n.length > r ? n.slice(0, -1) : n; } var qn = Symbol(); function bo(e, t) { return process.env.NODE_ENV !== "production" && e.queryFn === qn && console.error( `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${e.queryHash}'` ), !e.queryFn && (t != null && t.initialPromise) ? () => t.initialPromise : !e.queryFn || e.queryFn === qn ? () => Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)) : e.queryFn; } function hc(e, t) { return typeof e == "function" ? e(...t) : !!e; } var tr, Rt, Ar, Qs, gc = (Qs = class extends fn { constructor() { super(); re(this, tr); re(this, Rt); re(this, Ar); K(this, Ar, (t) => { if (!pr && window.addEventListener) { const r = () => t(); return window.addEventListener("visibilitychange", r, !1), () => { window.removeEventListener("visibilitychange", r); }; } }); } onSubscribe() { v(this, Rt) || this.setEventListener(v(this, Ar)); } onUnsubscribe() { var t; this.hasListeners() || ((t = v(this, Rt)) == null || t.call(this), K(this, Rt, void 0)); } setEventListener(t) { var r; K(this, Ar, t), (r = v(this, Rt)) == null || r.call(this), K(this, Rt, t((n) => { typeof n == "boolean" ? this.setFocused(n) : this.onFocus(); })); } setFocused(t) { v(this, tr) !== t && (K(this, tr, t), this.onFocus()); } onFocus() { const t = this.isFocused(); this.listeners.forEach((r) => { r(t); }); } isFocused() { var t; return typeof v(this, tr) == "boolean" ? v(this, tr) : ((t = globalThis.document) == null ? void 0 : t.visibilityState) !== "hidden"; } }, tr = new WeakMap(), Rt = new WeakMap(), Ar = new WeakMap(), Qs), da = new gc(), Fr, Pt, $r, Gs, yc = (Gs = class extends fn { constructor() { super(); re(this, Fr, !0); re(this, Pt); re(this, $r); K(this, $r, (t) => { if (!pr && window.addEventListener) { const r = () => t(!0), n = () => t(!1); return window.addEventListener("online", r, !1), window.addEventListener("offline", n, !1), () => { window.removeEventListener("online", r), window.removeEventListener("offline", n); }; } }); } onSubscribe() { v(this, Pt) || this.setEventListener(v(this, $r)); } onUnsubscribe() { var t; this.hasListeners() || ((t = v(this, Pt)) == null || t.call(this), K(this, Pt, void 0)); } setEventListener(t) { var r; K(this, $r, t), (r = v(this, Pt)) == null || r.call(this), K(this, Pt, t(this.setOnline.bind(this))); } setOnline(t) { v(this, Fr) !== t && (K(this, Fr, t), this.listeners.forEach((n) => { n(t); })); } isOnline() { return v(this, Fr); } }, Fr = new WeakMap(), Pt = new WeakMap(), $r = new WeakMap(), Gs), Bn = new yc(); function Mi() { let e, t; const r = new Promise((i, a) => { e = i, t = a; }); r.status = "pending", r.catch(() => { }); function n(i) { Object.assign(r, i), delete r.resolve, delete r.reject; } return r.resolve = (i) => { n({ status: "fulfilled", value: i }), e(i); }, r.reject = (i) => { n({ status: "rejected", reason: i }), t(i); }, r; } function vc(e) { return Math.min(1e3 * 2 ** e, 3e4); } function wo(e) { return (e ?? "online") === "online" ? Bn.isOnline() : !0; } var So = class extends Error { constructor(e) { super("CancelledError"), this.revert = e == null ? void 0 : e.revert, this.silent = e == null ? void 0 : e.silent; } }; function hi(e) { return e instanceof So; } function Eo(e) { let t = !1, r = 0, n = !1, i; const a = Mi(), s = (c) => { var w; n || (m(new So(c)), (w = e.abort) == null || w.call(e)); }, o = () => { t = !0; }, l = () => { t = !1; }, p = () => da.isFocused() && (e.networkMode === "always" || Bn.isOnline()) && e.canRun(), d = () => wo(e.networkMode) && e.canRun(), f = (c) => { var w; n || (n = !0, (w = e.onSuccess) == null || w.call(e, c), i == null || i(), a.resolve(c)); }, m = (c) => { var w; n || (n = !0, (w = e.onError) == null || w.call(e, c), i == null || i(), a.reject(c)); }, x = () => new Promise((c) => { var w; i = (y) => { (n || p()) && c(y); }, (w = e.onPause) == null || w.call(e); }).then(() => { var c; i = void 0, n || (c = e.onContinue) == null || c.call(e); }), h = () => { if (n) return; let c; const w = r === 0 ? e.initialPromise : void 0; try { c = w ?? e.fn(); } catch (y) { c = Promise.reject(y); } Promise.resolve(c).then(f).catch((y) => { var M; if (n) return; const O = e.retry ?? (pr ? 0 : 3), $ = e.retryDelay ?? vc, A = typeof $ == "function" ? $(r, y) : $, b = O === !0 || typeof O == "number" && r < O || typeof O == "function" && O(r, y); if (t || !b) { m(y); return; } r++, (M = e.onFail) == null || M.call(e, r, y), pc(A).then(() => p() ? void 0 : x()).then(() => { t ? m(y) : h(); }); }); }; return { promise: a, cancel: s, continue: () => (i == null || i(), a), cancelRetry: o, continueRetry: l, canStart: d, start: () => (d() ? h() : x().then(h), a) }; } var xc = (e) => setTimeout(e, 0); function bc() { let e = [], t = 0, r = (o) => { o(); }, n = (o) => { o(); }, i = xc; const a = (o) => { t ? e.push(o) : i(() => { r(o); }); }, s = () => { const o = e; e = [], o.length && i(() => { n(() => { o.forEach((l) => { r(l); }); }); }); }; return { batch: (o) => { let l; t++; try { l = o(); } finally { t--, t || s(); } return l; }, /** * All calls to the wrapped function will be batched.