react-f0rm 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * react-f0rm v1.0.0
2
+ * react-f0rm v1.1.0
3
3
  * Copyright (c) 2021-present wmzy <1256573276@qq.com>
4
4
  */
5
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define("react-f0rm",["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["react-f0rm"]={},e.React)}(this,function(e,t){"use strict";function r(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}var n=r(t);function o(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),o=2;o<r;o++)n[o-2]=arguments[o];(e.get(t)||[]).forEach(function(e){return e.apply(void 0,n)})}function i(e,t,r){var n=function(e,t){var r=e.get(t);if(r)return r;var n=new Set;return e.set(t,n),n}(e,t);return n.add(r),function(){return n.delete(r)}}const u=new Map;function s(e){if(Array.isArray(e))return e;const t=u.get(e);if(t)return t;const r=function(e){const t=[];let r="";const n=()=>{if(a(r)){const n=[...t.map(String),r].join("."),o=t.reduce((e,t)=>e+("number"==typeof t?`[${t}]`:`${e?".":""}${t}`),"");throw new TypeError(`Numeric path segment must use bracket notation: "${n}" → "${o}[${r}]" (path: ${e})`)}t.push(r),r=""};for(let o=0;o<e.length;o++){const i=e[o];if("."===i)""!==r&&n();else if("["===i){""!==r&&n();const i=e[o+1];if('"'===i||"'"===i){const r=e.indexOf(i,o+2);if(-1===r)throw new TypeError(`Unterminated quote in path: ${e}`);if("]"!==e[r+1])throw new TypeError(`Expected "]" after quoted segment in path: ${e}`);t.push(e.slice(o+2,r)),o=r+1}else{const r=e.indexOf("]",o+1);if(-1===r)throw new TypeError(`Unterminated bracket in path: ${e}`);const n=e.slice(o+1,r);t.push(a(n)?Number(n):n),o=r}}else r+=i}""===r&&0!==t.length||n();return t}(e);return u.set(e,r),r}const a=e=>/^-?\d+$/.test(e);function c(e,t){return t.reduce((e,t)=>{if(null!=e)return e[t]},e)}function l(e,t){if(!t.length||null==e)return e;const[r,...n]=t;if(n.length){const t=l(e[r],n);return t===e[r]?e:f(e,[r],t)}if(Array.isArray(e)){if(!(r in e))return e;const t=e.slice();return delete t[r],t}if("object"!=typeof e||!(r in e))return e;const o={...e};return delete o[r],o}function f(e,t,r){if(!t.length)return r;const[n,...o]=t,i="number"==typeof n?n:Array.isArray(e)&&"string"==typeof n&&a(n)?Number(n):void 0;if(void 0!==i){const t=Array.isArray(e)?e.slice():[];return t[i]=f(t[i],o,r),t}return{...e,[n]:f(e&&e[n],o,r)}}function d(e,t,r,n){if(!t.length)return r;let o=e,i=null,u="";for(let s=0;s<t.length;s++){const c=t[s];if(!n.has(o)){let t;t="number"==typeof c||Array.isArray(o)&&"string"==typeof c&&a(c)?Array.isArray(o)?o.slice():[]:{...o},n.add(t),0===s?e=t:i[u]=t,o=t}s===t.length-1?o[c]=r:(i=o,u=c,o=o[c])}return e}function m(e){return e&&"function"==typeof e.then}function h(e,t){if(Object.is(e,t))return!0;if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(!e||!t||"object"!=typeof e||"object"!=typeof t)return!1;const r=Array.isArray(e);if(r!==Array.isArray(t))return!1;if(r){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!h(e[r],t[r]))return!1;return!0}const n=Object.getPrototypeOf(e);if(n!==Object.prototype&&null!==n)return!1;if(Object.getPrototypeOf(t)!==n)return!1;const o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(const r of o)if(!h(e[r],t[r]))return!1;return!0}function y(e,t,r,n){return new Promise((o,u)=>{if(n())return void u();if(r())return void o();const s=i(e,t,()=>{if(n())return s(),void u();r()&&(s(),o())})})}function g(e){const t=s(e);return{value:t,key:JSON.stringify(t)}}const v=Symbol("validation-outcome");function p(e){return{emitter:new Map,...e,mode:e?.mode??"onSubmit",reValidateMode:e?.reValidateMode??"onChange",disabled:e?.disabled??!1,validateDeps:e?.validateDeps?new Set(e.validateDeps.map(e=>g(e).key)):void 0,initialValues:e?.initialValues??{},values:new Map,deleted:new Set,errors:new Map,touched:new Set,validators:new Map,changeHandlers:new Map,validating:new Set,parsedValues:void 0,isSubmitting:!1,submitCount:0,isSubmitSuccessful:void 0}}function b(e){const{initialValues:t,parsedValues:r,values:n,deleted:o}=e,i=new Set;let u=r??t;for(const[e,t]of n)u=d(u,JSON.parse(e),t,i);for(const e of o)u=l(u,JSON.parse(e));return u}function k(e,t){return E(e,g(t))}function E({initialValues:e,parsedValues:t,values:r,deleted:n},o){const{key:i,value:u}=o;if(r.has(i))return r.get(i);if(!n.has(i)){for(let e=u.length-1;e>0;e--){const t=JSON.stringify(u.slice(0,e));if(r.has(t))return c(r.get(t),u.slice(e))}return c(t??e,u)}}function S(e,t,r,n){const{emitter:i,values:u,deleted:s}=e;u.set(t.key,r),function(e,{key:t}){if(!e.size)return;const r=`${t.slice(0,-1)},`;for(const t of e.keys())t.startsWith(r)&&e.delete(t)}(u,t),z(s,t),function(e,{key:t}){const r=N.get(e);if(!r?.size)return;const n=`${t.slice(0,-1)},`;for(const e of r.keys())e.startsWith(n)&&r.delete(e)}(e,t),!1===n?.shouldDirty&&I(e,t,r),q(e),n?.shouldTouch&&P(e,t),n?.shouldValidate&&e.validators.get(t.key)?.(),o(i,"change",t)}function V(e,t,r,n){!1===n?.shouldDirty&&I(e,t,r);const o=e.changeHandlers.get(t.key);o?o(r):S(e,t,r,n)}function w({errors:e},t){return e.get(t.key)?.[0]}const O=[];function C({errors:e},t){return e.get(t.key)??O}function x({errors:e}){const t=[];for(const[r,n]of e){const e=JSON.parse(r).join(".");for(const{type:r,message:o}of n)t.push({path:e,type:r,message:o})}return t}function A({errors:e}){return e.values().next().value?.[0]?.message}function T({emitter:e,validating:t},r){t.delete(r.key),o(e,"validating",r)}function _({emitter:e,validating:t},r){t.add(r.key),o(e,"validating",r)}function j(e,t,r){D(e,g(t),r)}function D({emitter:e,errors:t},r,n){const i=function(e){if("string"==typeof e)return e?[{type:"custom",message:e}]:void 0;if(X(e))return[e];if(!e)return;const t=[];return e.forEach(e=>{"string"==typeof e&&e?t.push({type:"custom",message:e}):X(e)&&t.push(e)}),t.length?t:void 0}(n);i?t.set(r.key,i):t.delete(r.key),o(e,"errors",r)}function F(e,t){const{emitter:r,errors:n}=e;if(void 0===t)return n.clear(),void o(r,"errors");const i="string"==typeof t||Q(t)?[g(t)]:t.map(e=>g(e));for(const{key:e}of i)n.delete(e);for(const e of i)o(r,"errors",e)}function P({emitter:e,touched:t},r){t.has(r.key)||(t.add(r.key),o(e,"touched",r))}function L({touched:e},t){return e.has(t.key)}function B(e){let t=!1;return M(e,()=>{t=!0}),t}function M(e,t){for(const[r,n]of e.values){const o=JSON.parse(r);R(e,r,o)!==n&&t(o.join("."))}}const N=new WeakMap;function R(e,t,r){const n=N.get(e);return n?.has(t)?n.get(t):c(e.initialValues,r)}function I(e,{key:t},r){let n=N.get(e);n||(n=new Map,N.set(e,n)),n.set(t,r)}function $(e,t){const r=N.get(e);r&&(void 0===t?r.clear():r.delete(t))}const W=new WeakMap;function q(e){const t=W.get(e);t&&t.version++}function H(e){const t={};return M(e,e=>{t[e]=!0}),t}function J(e){let t=W.get(e);if(t){if(t.version>0){const r=H(e);(function(e,t){const r=Object.keys(e);return r.length===Object.keys(t).length&&r.every(e=>!0===t[e])})(t.result,r)||(t.result=r),t.version=0}}else t={version:0,result:H(e)},W.set(e,t);return t.result}function U({touched:e}){return Array.from(e,e=>JSON.parse(e).join("."))}function G(e,{key:t,value:r}){const{emitter:n,values:i,touched:u,errors:s,validating:a,deleted:c}=e;i.delete(t),u.delete(t),s.delete(t),a.delete(t),$(e,t),function(e,t){for(let r=1;r<t.length;r++)if(e.has(JSON.stringify(t.slice(0,r))))return!0;const r=`${JSON.stringify(t).slice(0,-1)},`;for(const t of e.keys())if(t.startsWith(r))return!0;return!1}(i,r)||c.add(t),q(e),o(n,"change"),o(n,"touched"),o(n,"errors"),o(n,"validating")}function z(e,{key:t}){if(e.size)for(const r of e)(r===t||r.startsWith(`${t.slice(0,-1)},`)||t.startsWith(`${r.slice(0,-1)},`))&&e.delete(r)}function K(e,t){e.initialValues===t||h(e.initialValues,t)||(e.initialValues=t,e.parsedValues=void 0,e.values.clear(),e.deleted.clear(),$(e),q(e),o(e.emitter,"change"))}function Y({errors:e}){return e.size>0}function Q(e){return e.some(e=>"number"==typeof e)}function X(e){return!!e&&"object"==typeof e&&"string"==typeof e.type&&"string"==typeof e.message}function Z(e,t,r=[],n){Object.entries(t).forEach(([t,o])=>{const i=[...r,...a(t)?[t]:s(t)];"string"==typeof o?o&&(j(e,i,o),ee(e,i,n)):Array.isArray(o)||X(o)?(j(e,i,o),ee(e,i,n)):o&&"object"==typeof o&&Z(e,o,i,n)})}function ee(e,t,r){if(!r)return;const n=g(t),o=e.errors.get(n.key);o&&r.set(n.key,o)}function te(e,t){const r=e.validateDeps?function(e){let t=re.get(e);t||(t=new Map,re.set(e,t));return t}(e):void 0;if(r&&(!function(e,t){for(const[r,n]of t){e.errors.get(r)===n&&(e.errors.delete(r),o(e.emitter,"errors",g(JSON.parse(r))))}}(e,r),r.clear()),t){if("object"==typeof t&&v in t){const n=t;return n.errors&&Z(e,n.errors,[],r),void function(e,t){void 0!==t&&t!==e.parsedValues&&(e.parsedValues=t,o(e.emitter,"change"))}(e,n.values)}Z(e,t,[],r)}}const re=new WeakMap;const ne="__form_validate__";function oe(e){for(const t of e.validating)if(t!==ne)return!1;return!0}const ie=Symbol("form-validate-settled"),ue=new WeakMap;function se(e){const t=e.validate;if(!t)return Promise.resolve();const r=e.validateDebounce??0;if(r<=0){const r=new AbortController;return Promise.resolve(t(b(e),{form:e,signal:r.signal})).then(t=>{te(e,t)})}const n=function(e){let t=ue.get(e);return t||(t={timer:null,controller:null,round:null,marked:!1,waiters:[]},ue.set(e,t)),t}(e);return null!==n.timer?clearTimeout(n.timer):(n.marked=!0,e.validating.add(ne),o(e.emitter,"validating")),n.timer=setTimeout(()=>{n.timer=null;const t=n.round={};(function(e,t,r){const n=e.validate;if(!n)return Promise.resolve();t.controller?.abort();const o=t.controller=new AbortController;let i;try{i=Promise.resolve(n(b(e),{form:e,signal:o.signal}))}catch(e){i=Promise.reject(e)}return i.then(n=>{t.round===r&&te(e,n)},e=>{if(t.round===r)throw e})})(e,n,t).then(()=>ae(e,n,t,ie),r=>ae(e,n,t,r))},r),new Promise((e,t)=>{n.waiters.push({resolve:e,reject:t})})}function ae(e,t,r,n){if(t.round!==r)return;if(t.round=null,null!==t.timer)return;t.marked&&(t.marked=!1,e.validating.delete(ne),o(e.emitter,"validating"));const i=t.waiters;t.waiters=[];for(const e of i)n===ie?e.resolve():e.reject(n)}function ce(e,t,r){e.validateDeps?.has(t.key)&&e.validate&&("onChange"===r||"all"===r||"onTouched"===r&&L(e,t)||"onChange"===e.reValidateMode&&function(e){const t=re.get(e);if(!t)return!1;for(const[r,n]of t)if(e.errors.get(r)===n)return!0;return!1}(e))&&se(e).catch(()=>{})}async function le(e){if(e.validators.forEach(e=>e()),await y(e.emitter,"validating",()=>oe(e),()=>Y(e)).catch(()=>{throw new Error(A(e))}),e.validate&&(await se(e),Y(e)))throw new Error(A(e))}async function fe(e){return le(e).catch(e=>e.message)}function de(e,t){e.isSubmitting=t,o(e.emitter,"submitting")}function me(e){e.submitCount++,o(e.emitter,"submitCount")}function he(e,t){e.isSubmitSuccessful=t,o(e.emitter,"submitSuccessful")}function ye(e){if(e.startsWith("["))try{const t=JSON.parse(e);if(Array.isArray(t))return t.join(".")}catch{}return e}function ge(e,t){const{onSubmit:r,onValidSubmit:n,onInvalidSubmit:i,shouldFocusError:u=!0}=t??{};return async t=>{t&&"function"==typeof t.preventDefault&&t.preventDefault();const s=t?.currentTarget;de(e,!0),me(e);const a=b(e);if(s&&"function"==typeof s.checkValidity&&!1===s.checkValidity()){if(s.reportValidity(),u&&"function"==typeof s.querySelector){const e=s.querySelector(":invalid");e&&"function"==typeof e.focus&&e.focus()}return de(e,!1),he(e,!1),void(i&&i(function(e){const t=[],{elements:r}=e;for(let e=0;e<r.length;e++){const n=r[e];n.name&&"function"==typeof n.checkValidity&&!n.checkValidity()&&t.push({path:ye(n.name),type:"native",message:n.validationMessage})}return t}(s),a))}if(await fe(e)){if(de(e,!1),he(e,!1),u){const t=e.errors.keys().next().value;void 0!==t&&o(e.emitter,"focusError",t)}i&&i(x(e),a)}else try{const o=b(e);r&&await r(o,t),n&&await n(o,t),he(e,!0)}catch{he(e,!1)}finally{de(e,!1)}}}function ve(e,t){switch(e){case"required":return"This field is required";case"min":return`Must be at least ${t}`;case"max":return`Must be at most ${t}`;case"minLength":return`Must be at least ${t} characters`;case"maxLength":return`Must be at most ${t} characters`;case"pattern":return"Invalid format";default:return"Invalid value"}}var pe,be={exports:{}},ke={};var Ee,Se,Ve={};var we=(Se||(Se=1,"production"===process.env.NODE_ENV?be.exports=function(){if(pe)return ke;pe=1;var e=t,r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=e.useState,o=e.useEffect,i=e.useLayoutEffect,u=e.useDebugValue;function s(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch(e){return!0}}var a="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=n({inst:{value:r,getSnapshot:t}}),c=a[0].inst,l=a[1];return i(function(){c.value=r,c.getSnapshot=t,s(c)&&l({inst:c})},[e,r,t]),o(function(){return s(c)&&l({inst:c}),e(function(){s(c)&&l({inst:c})})},[e]),u(r),r};return ke.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:a,ke}():be.exports=(Ee||(Ee=1,"production"!==process.env.NODE_ENV&&function(){function e(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch(e){return!0}}"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var r=t,n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,u=r.useLayoutEffect,s=r.useDebugValue,a=!1,c=!1,l="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(t,l){a||void 0===r.startTransition||(a=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var f=l();if(!c){var d=l();n(f,d)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),c=!0)}var m=(d=o({inst:{value:f,getSnapshot:l}}))[0].inst,h=d[1];return u(function(){m.value=f,m.getSnapshot=l,e(m)&&h({inst:m})},[t,f,l]),i(function(){return e(m)&&h({inst:m}),t(function(){e(m)&&h({inst:m})})},[t]),s(f),f};Ve.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:l,"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Ve)),be.exports);function Oe(e,t){return e.startsWith(`${t.slice(0,-1)},`)}function Ce(e,t,r,n,o){const{key:u}=r;return i(e,t,e=>{(void 0===e||e.key===u||Oe(u,e.key)||"branch"===n&&Oe(e.key,u))&&o()})}function xe(e,t,r,n){return i(e,t,e=>{void 0!==e&&e.key!==r||n()})}function Ae(e){const[r]=t.useState(()=>{const t=p(e);return e&&void 0!==e.values&&K(t,e.values),t}),n=e&&e.initialValues,o=e&&e.values,i=t.useRef(null);null===i.current&&(i.current={done:!1,source:void 0}),t.useEffect(()=>{const e=i.current;e.done&&(e.source===n||h(e.source,n))||(e.done=!0,e.source=n,K(r,n))},[r,n]);const u=t.useRef(null);return null===u.current&&(u.current={done:!1,source:void 0}),t.useEffect(()=>{if(void 0===o)return;const e=u.current;e.done&&(e.source===o||h(e.source,o))||(e.done=!0,e.source=o,K(r,o))},[r,o]),r}function Te(e,r){const n=t.useRef(null);null===n.current&&(n.current={hasValue:!1});const o=n.current,i=t.useRef(r);i.current=r;const u=t.useCallback(()=>(o.hasValue||(o.value=i.current(),o.hasValue=!0),o.value),[o]),s=t.useCallback(t=>{o.hasValue=!1;return e(()=>{o.hasValue=!1,t()})},[e,o]);return we.useSyncExternalStore(s,u,u)}function _e(e,r,n){return Te(t.useCallback(t=>i(e,r,t),[e,r]),n)}function je(e,r){const{emitter:n}=e,{key:o}=r;return Te(t.useCallback(e=>Ce(n,"change",r,"leaf",e),[n,o]),E.bind(null,e,r))}function De(e,r){const{emitter:n}=e,{key:o}=r;return Te(t.useCallback(e=>xe(n,"touched",o,e),[n,o]),L.bind(null,e,r))}function Fe(e,r){const{emitter:n}=e,{key:o}=r;return Te(t.useCallback(e=>xe(n,"errors",o,e),[n,o]),w.bind(null,e,r))}function Pe(e,r){const{emitter:n}=e,{key:o}=r;return Te(t.useCallback(e=>xe(n,"errors",o,e),[n,o]),C.bind(null,e,r))}function Le(e){const r=t.useMemo(()=>g(s(e)),[e]);return t.useMemo(()=>r,[r.key])}function Be(e){const r=t.useRef(e);return r.current=e,r}function Me(e){const r=Be(e);return t.useCallback((...e)=>r.current(...e),[r])}function Ne(e,t){if(!e)return t;const r=function(e){return t=>{if(e.required&&(""===t||null==t))return[{type:"required",message:"string"==typeof e.required?e.required:ve("required")}];const r=[],n=(t,r)=>e.messages?.[t]??ve(t,r);if(void 0!==e.min){const o=Number(t);!Number.isNaN(o)&&o<e.min&&r.push({type:"min",message:n("min",e.min)})}if(void 0!==e.max){const o=Number(t);!Number.isNaN(o)&&o>e.max&&r.push({type:"max",message:n("max",e.max)})}return void 0!==e.minLength&&"string"==typeof t&&t.length<e.minLength&&r.push({type:"minLength",message:n("minLength",e.minLength)}),void 0!==e.maxLength&&"string"==typeof t&&t.length>e.maxLength&&r.push({type:"maxLength",message:n("maxLength",e.maxLength)}),e.pattern&&!e.pattern.value.test(t)&&r.push({type:"pattern",message:e.messages?.pattern??e.pattern.message??ve("pattern")}),r.length?r:void 0}}(e);return t?(e,n)=>{const o=r(e,n),i=e=>{const t=[...o??[]];return Array.isArray(e)?t.push(...e):e&&t.push(e),t.length?t:void 0},u=t(e,n);return m(u)?u.then(i):i(u)}:r}function Re({form:e,name:r,initialValue:n,shouldUnregister:o,validate:i,rules:u,validateDebounce:s,delayError:a,disabled:c,mode:l},f){const d=t.useContext(f),h=e||d;if(!h)throw new Error("no form provided");const y=Le(r),g=function(e,r,n,o){const i=t.useContext(ze),u=n||i;if(!u)throw new Error("no form provided");const s=t.useRef(null),a=t.useRef(e);a.current=e;const c=t.useRef(o?.debounce??0);return c.current=o?.debounce??0,t.useEffect(()=>{let e=null,t=null,n=!1;const o=()=>{n||(n=!0,_(u,r))},i=()=>{n&&(n=!1,T(u,r))},l=()=>{e=null;const n=a.current;if(!n)return void i();t?.abort(),t=new AbortController;const c=s.current={};let l;try{l=n(E(u,r),{form:u,path:r,signal:t.signal})}catch(e){throw i(),e}if(!m(l))return D(u,r,l),void i();o(),l.then(e=>{c===s.current&&D(u,r,e)}).catch(()=>{}).finally(()=>{c===s.current&&(i(),s.current=null)})};return u.validators.set(r.key,()=>{const t=c.current;if(t>0)return null!==e?clearTimeout(e):o(),void(e=setTimeout(l,t));l()}),()=>{u.validators.delete(r.key),null!==e&&(clearTimeout(e),e=null),i(),t?.abort()}},[u,r.key]),Me(()=>u.validators.get(r.key)?.())}(Ne(u,i),y,h,{debounce:s}),v=Pe(h,y),p=function(e,r){const[n,o]=t.useState(e);return t.useEffect(()=>{if(void 0===r)return;if(0===e.length)return void o(e);if(n.length>0)return void o(e);const t=setTimeout(()=>o(e),r);return()=>clearTimeout(t)},[e,r,n]),void 0===r?e:n}(v,a),b=p[0],k=b?.message,V=je(h,y),w=_e(h.emitter,"disabled",()=>h.disabled),O=l??h.mode;t.useEffect(()=>{void 0!==n&&void 0===E(h,y)&&S(h,y,n)},[h,y,n]);const C=Me(e=>{S(h,y,e),("onChange"===O||"all"===O||"onTouched"===O&&L(h,y)||v.length>0&&"onChange"===h.reValidateMode)&&g(),ce(h,y,O)});t.useEffect(()=>(h.changeHandlers.set(y.key,C),()=>{h.changeHandlers.get(y.key)===C&&h.changeHandlers.delete(y.key)}),[h,y.key,C]);const x=Me(()=>{P(h,y),("onBlur"===O||"onTouched"===O||"all"===O||v.length>0&&"onBlur"===h.reValidateMode)&&g()});return t.useEffect(()=>()=>{!1!==o&&G(h,y)},[y,h,o]),{form:h,value:V,error:k,errorObject:b,errors:p,onChange:C,onBlur:x,name:y.key,disabled:w||!!c}}function Ie(e){return Re(e,ze)}let $e=0;function We(){return"_"+ ++$e}const qe=new WeakMap;function He(e,t,r){let n=qe.get(e);n||(n=new Map,qe.set(e,n)),n.set(t,r)}function Je(e){return e+1}function Ue(e,r){const n=t.useContext(r),o=e.form||n;if(!o)throw new Error("no form provided");const i=Le(e.name),u=t.useRef([]),s=t.useCallback(()=>E(o,i)||[],[o,i]),a=t.useCallback(e=>{S(o,i,e)},[o,i]),c=t.useCallback(()=>{const e=s();for(;u.current.length<e.length;)u.current.push(We());for(;u.current.length>e.length;)u.current.pop();return u.current.map((e,t)=>({id:e,index:t}))},[s]),[l,f]=t.useReducer(c,void 0,c);t.useEffect(()=>Ce(o.emitter,"change",i,"branch",f),[o.emitter,i]),He(o,i.key,u.current),t.useEffect(()=>(He(o,i.key,u.current),()=>{const e=qe.get(o);e?.get(i.key)===u.current&&e.delete(i.key)}),[o,i.key]);return{fields:l,append:Me(e=>{const t=s();u.current.push(We()),a([...t,e])}),prepend:Me(e=>{const t=s();u.current.unshift(We()),a([e,...t])}),insert:Me((e,t)=>{const r=s();u.current.splice(e,0,We());const n=[...r.slice(0,e),t,...r.slice(e)];a(n)}),remove:Me(e=>{const t=s();u.current.splice(e,1);const r=t.filter((t,r)=>r!==e);a(r)}),swap:Me((e,t)=>{const r=s();[u.current[e],u.current[t]]=[u.current[t],u.current[e]];const n=[...r];[n[e],n[t]]=[n[t],n[e]],a(n)}),move:Me((e,t)=>{const r=s(),[n]=u.current.splice(e,1);u.current.splice(t,0,n);const o=[...r],[i]=o.splice(e,1);o.splice(t,0,i),a(o)}),replace:Me(e=>{u.current=e.map(()=>We()),a([...e])}),update:Me((e,t)=>{const r=s();if(e<0||e>=r.length)return;const n=[...r];n[e]=t,a(n)})}}function Ge(e,r){const n=t.useContext(r),o=e.form||n;if(!o)throw new Error("no form provided");const{id:i}=e,u=Le(e.name),s=t.useCallback(()=>function(e,t){return qe.get(e)?.get(t)}(o,u.key)?.indexOf(i)??-1,[o,u.key,i]),a=t.useCallback(e=>{const t=E(o,u);return Array.isArray(t)?t[e]:void 0},[o,u]),c=s(),l=a(c),f=t.useRef({index:c,value:l});f.current={index:c,value:l};const d=Be({computeIndex:s,computeValue:a}),[,m]=t.useReducer(Je,0);t.useEffect(()=>Ce(o.emitter,"change",u,"leaf",()=>{const{computeIndex:e,computeValue:t}=d.current,r=e();r===f.current.index&&Object.is(t(r),f.current.value)||m()}),[o.emitter,u,d]);const h=Le([...u.value,c]),y=Pe(o,h);return{value:l,setValue:Me(e=>{if(c<0)return;const t=[...E(o,u)??[]];c>=t.length||(t[c]=e,S(o,u,t))}),errors:y,error:y[0]?.message,name:h.key,index:c,form:o}}const ze=t.createContext(null),Ke=ze.Provider;const Ye=t.createContext(null),Qe=Ye.Provider;function Xe(e){return e.replace(/["'[\],\s]+/g,"-").replace(/^-+|-+$/g,"")||"field"}function Ze(e,t,r){return{"aria-invalid":!!e||r["aria-invalid"],"aria-describedby":e?[r["aria-describedby"],Xe(t)].filter(Boolean).join(" "):r["aria-describedby"]}}const et=n.forwardRef(({validate:e,eventToValue:t,initialValue:r,name:o,asProps:u,renderError:s,as:a,valueToProps:c,form:l,shouldUnregister:f,rules:d,validateDebounce:m,disabled:h,delayError:y,mode:g,...v},p)=>{const b=n.useRef(null),[k,E]=n.useState(0),S=n.useCallback(e=>{b.current=e,function(e,t){"function"==typeof e?e(t):e&&(e.current=t)}(p,e)},[p]),{value:V,onChange:w,onBlur:O,error:C,form:x,name:A,disabled:T}=Ie({name:o,form:l,initialValue:r,shouldUnregister:f,rules:d,validateDebounce:m,delayError:y,disabled:h,mode:g,validate:(...t)=>{const r=b.current;if(!r||"function"!=typeof r.checkValidity||(r.setCustomValidity(""),!1!==r.checkValidity()))return e?e(...t):void 0;E(e=>e+1)}}),_=a||"input";n.useEffect(()=>{const e=b.current;e&&"function"==typeof e.setCustomValidity&&("string"==typeof C?(e.setCustomValidity(C),e.reportValidity()):e.setCustomValidity(""))},[C]),n.useEffect(()=>{k>0&&b.current?.reportValidity()},[k]),n.useEffect(()=>i(x.emitter,"focusError",(e,t)=>{if(e!==A)return;const r=b.current;r&&"function"==typeof r.focus&&(r.focus(),t?.shouldSelect&&"function"==typeof r.select&&r.select())}),[x,A]);const j=t??(e=>e.target.value),D=Xe(A);return n.createElement(n.Fragment,null,n.createElement(_,{...v,name:A,onBlur:O,...u,...c?c(V):{value:V},...Ze(C,A,v),disabled:T,onChange:e=>w(j(e)),ref:S}),C&&s?n.createElement("span",{id:D,role:"alert"},s(C,D)):null)}),tt=n.forwardRef(({name:e,form:t,initialValue:r,shouldUnregister:o,validate:i,rules:u,validateDebounce:s,disabled:a,delayError:c,mode:l,...f},d)=>{const{value:m,onChange:h,onBlur:y,error:g,name:v,disabled:p}=Ie({name:e,form:t,initialValue:r,shouldUnregister:o,validate:i,rules:u,validateDebounce:s,delayError:c,disabled:a,mode:l});return n.createElement("input",{...f,name:v,onBlur:y,type:"checkbox",checked:!!m,...Ze(g,v,f),disabled:p,onChange:e=>h(e.target.checked),ref:d})});function rt(e,t){return e?Array.isArray(t)?t:[]:t??""}const nt=n.forwardRef(({name:e,multiple:t,children:r,form:o,initialValue:i,shouldUnregister:u,validate:s,rules:a,validateDebounce:c,disabled:l,delayError:f,mode:d,...m},h)=>{const{value:y,onChange:g,onBlur:v,error:p,name:b,disabled:k}=Ie({name:e,form:o,initialValue:i,shouldUnregister:u,validate:s,rules:a,validateDebounce:c,delayError:f,disabled:l,mode:d});return n.createElement("select",{...m,name:b,onBlur:v,multiple:t,value:rt(t,y),...Ze(p,b,m),disabled:k,onChange:e=>g(t?Array.from(e.target.selectedOptions,e=>e.value):e.target.value),ref:h},r)});e.Checkbox=tt,e.CheckboxGroupContext=Ye,e.CheckboxGroupProvider=Qe,e.Field=et,e.Form=function({form:e,context:t,initialValues:r,values:o,onSubmit:i,onValidSubmit:u,onInvalidSubmit:s,shouldFocusError:a,...c}){const l=Ae({initialValues:r,values:o}),f=e||l,d=ge(f,{onSubmit:i,onValidSubmit:u,onInvalidSubmit:s,shouldFocusError:a}),{Provider:m}=t??ze;return n.createElement(m,{value:f},n.createElement("form",{...c,noValidate:!0,onSubmit:d}))},e.FormContext=ze,e.FormProvider=Ke,e.Select=nt,e.VALIDATION_OUTCOME=v,e.changeValue=function(e,t,r,n){V(e,g(t),r,n)},e.changeValueByPath=V,e.clearErrors=F,e.createForm=p,e.createFormContext=function(){const e=t.createContext(null);return{context:e,FormProvider:function({form:r,children:n}){return t.createElement(e.Provider,{value:r},n)},useFormContext:function(){const r=t.useContext(e);if(!r)throw new Error("no form provided");return r},useField:function(t){return Re(t,e)},useFieldArray:function(t){return Ue(t,e)},useFieldArrayItem:function(t){return Ge(t,e)}}},e.ensureValidate=le,e.fieldErrorId=function(e){return Xe(g(e).key)},e.getDirtyFields=J,e.getError=function(e,t){return w(e,g(t))},e.getErrorByPath=w,e.getErrors=x,e.getFieldErrors=function(e,t){return C(e,g(t))},e.getFieldErrorsByPath=C,e.getFieldState=function(e,t){const r=g(t),{values:n,touched:o,validating:i}=e,u=n.get(r.key);return{value:E(e,r),error:w(e,r),errors:C(e,r),isDirty:n.has(r.key)&&R(e,r.key,r.value)!==u,isTouched:o.has(r.key),isValidating:i.has(r.key)}},e.getFirstError=A,e.getTouchedFields=U,e.getValue=k,e.getValueByPath=E,e.getValues=b,e.handleSubmit=ge,e.hasErrors=Y,e.hasTouched=function(e,t){return L(e,g(t))},e.hasTouchedByPath=L,e.incrementSubmitCount=me,e.isDirty=B,e.isTouched=function({touched:e}){return e.size>0},e.removeField=function(e,t){G(e,g(t))},e.removeFieldByPath=G,e.reset=function(e,t,r){const n=r?.keepDirtyValues?Object.keys(J(e)).map(t=>({key:t,value:k(e,t)})):[];e.initialValues=t,e.parsedValues=void 0,r?.keepErrors||F(e);const{emitter:i,touched:u,values:s,deleted:a,validating:c}=e;s.clear(),a.clear(),$(e),r?.keepTouched||u.clear(),c.clear(),r?.keepIsSubmitting||(e.isSubmitting=!1),r?.keepSubmitCount||(e.submitCount=0),r?.keepIsSubmitted||(e.isSubmitSuccessful=void 0),q(e);for(const{key:t,value:r}of n)S(e,g(t),r);o(i,"change"),o(i,"touched"),o(i,"validating"),o(i,"submitting"),o(i,"submitCount"),o(i,"submitSuccessful"),o(i,"reset")},e.resetField=function(e,t,r){const n=g(t),{emitter:i,values:u,touched:s,errors:a,deleted:f}=e;if(u.delete(n.key),$(e,n.key),void 0!==e.parsedValues){e.parsedValues=l(e.parsedValues,n.value);const t=c(e.initialValues,n.value);void 0!==t&&u.set(n.key,t)}r&&"value"in r&&u.set(n.key,r.value),z(f,n),o(i,"change"),!r?.keepTouched&&s.delete(n.key)&&o(i,"touched",n),!r?.keepErrors&&a.delete(n.key)&&o(i,"errors",n),q(e)},e.revalidateFormOnChange=ce,e.setDisabled=function(e,t){e.disabled=t,o(e.emitter,"disabled")},e.setError=j,e.setErrorByPath=D,e.setFocus=function(e,t,r){const{key:n}=g(t);r?o(e.emitter,"focusError",n,r):o(e.emitter,"focusError",n)},e.setInitialValues=K,e.setIsSubmitting=de,e.setServerErrors=function(e,t,r){r?.keepExisting||F(e);for(const[r,n]of Object.entries(t))j(e,r,(Array.isArray(n)?n:[n]).map(e=>({type:"server",message:e})))},e.setSubmitSuccessful=he,e.setTouched=function(e,t){P(e,g(t))},e.setTouchedByPath=P,e.setValidatingByPath=_,e.setValue=function(e,t,r,n){S(e,g(t),r,n)},e.setValueByPath=S,e.subscribe=function(e,t){const{name:r,event:n="change",scope:o="branch",callback:u}=t;if(void 0===r)return i(e.emitter,n,u);const s=(function(e){return Array.isArray(e)&&e.every(e=>"number"!=typeof e)}(r)?r:[r]).map(t=>{const r=g(t);return"errors"===n||"touched"===n?xe(e.emitter,n,r.key,u):Ce(e.emitter,n,r,o,u)});return 1===s.length?s[0]:()=>s.forEach(e=>e())},e.trigger=async function(e,t){const r=()=>y(e.emitter,"validating",()=>oe(e),()=>!1);if(void 0===t)return e.validators.forEach(e=>e()),await r(),e.validate&&await se(e),!Y(e);const n="string"==typeof t||Q(t)?[g(t).key]:t.map(e=>g(e).key);return n.forEach(t=>e.validators.get(t)?.()),await r(),n.every(t=>!e.errors.has(t))},e.unsetValidatingByPath=T,e.useCanSubmit=function(e){const{emitter:r}=e;return Te(t.useCallback(e=>{const t=i(r,"errors",e),n=i(r,"submitting",e);return()=>{t(),n()}},[r]),()=>!e.isSubmitting&&!Y(e))},e.useCheckboxGroupContext=function(){const e=t.useContext(Ye);if(!e)throw new Error("no group provided");return e},e.useDirtyFields=function(e){return _e(e.emitter,"change",J.bind(null,e))},e.useError=function(e,t){return Fe(e,g(t))?.message},e.useErrorByPath=Fe,e.useField=Ie,e.useFieldArray=function(e){return Ue(e,ze)},e.useFieldArrayItem=function(e){return Ge(e,ze)},e.useFieldErrors=function(e,t){return Pe(e,g(t))},e.useFieldErrorsByPath=Pe,e.useForm=Ae,e.useFormContext=function(){const e=t.useContext(ze);if(!e)throw new Error("no form provided");return e},e.useHasErrors=function(e){return _e(e.emitter,"errors",Y.bind(null,e))},e.useIsDirty=function(e){return _e(e.emitter,"change",B.bind(null,e))},e.useIsSubmitting=function(e){return _e(e.emitter,"submitting",()=>e.isSubmitting)},e.useSubmitCount=function(e){return _e(e.emitter,"submitCount",()=>e.submitCount)},e.useTouched=function(e,t){return De(e,g(t))},e.useTouchedByPath=De,e.useTouchedFields=function(e){return _e(e.emitter,"touched",U.bind(null,e))},e.useValue=function(e,t){return je(e,g(t))},e.useValueByPath=je,e.useWatch=_e,e.validate=fe});
5
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define("react-f0rm",["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["react-f0rm"]={},e.React)}(this,function(e,t){"use strict";function r(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}var n=r(t);function o(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),o=2;o<r;o++)n[o-2]=arguments[o];(e.get(t)||[]).forEach(function(e){return e.apply(void 0,n)})}function i(e,t,r){var n=function(e,t){var r=e.get(t);if(r)return r;var n=new Set;return e.set(t,n),n}(e,t);return n.add(r),function(){return n.delete(r)}}const u=new Map;function s(e){if(Array.isArray(e))return e;const t=u.get(e);if(t)return t;const r=function(e){const t=[];let r="";const n=()=>{if(a(r)){const n=[...t.map(String),r].join("."),o=t.reduce((e,t)=>e+("number"==typeof t?`[${t}]`:`${e?".":""}${t}`),"");throw new TypeError(`Numeric path segment must use bracket notation: "${n}" → "${o}[${r}]" (path: ${e})`)}t.push(r),r=""};for(let o=0;o<e.length;o++){const i=e[o];if("."===i)""!==r&&n();else if("["===i){""!==r&&n();const i=e[o+1];if('"'===i||"'"===i){const r=e.indexOf(i,o+2);if(-1===r)throw new TypeError(`Unterminated quote in path: ${e}`);if("]"!==e[r+1])throw new TypeError(`Expected "]" after quoted segment in path: ${e}`);t.push(e.slice(o+2,r)),o=r+1}else{const r=e.indexOf("]",o+1);if(-1===r)throw new TypeError(`Unterminated bracket in path: ${e}`);const n=e.slice(o+1,r);t.push(a(n)?Number(n):n),o=r}}else r+=i}""===r&&0!==t.length||n();return t}(e);return u.set(e,r),r}const a=e=>/^-?\d+$/.test(e);function c(e,t){return t.reduce((e,t)=>{if(null!=e)return e[t]},e)}function l(e,t){if(!t.length||null==e)return e;const[r,...n]=t;if(n.length){const t=l(e[r],n);return t===e[r]?e:f(e,[r],t)}if(Array.isArray(e)){if(!(r in e))return e;const t=e.slice();return delete t[r],t}if("object"!=typeof e||!(r in e))return e;const o={...e};return delete o[r],o}function f(e,t,r){if(!t.length)return r;const[n,...o]=t,i="number"==typeof n?n:Array.isArray(e)&&"string"==typeof n&&a(n)?Number(n):void 0;if(void 0!==i){const t=Array.isArray(e)?e.slice():[];return t[i]=f(t[i],o,r),t}return{...e,[n]:f(e&&e[n],o,r)}}function d(e,t,r,n){if(!t.length)return r;let o=e,i=null,u="";for(let s=0;s<t.length;s++){const c=t[s];if(!n.has(o)){let t;t="number"==typeof c||Array.isArray(o)&&"string"==typeof c&&a(c)?Array.isArray(o)?o.slice():[]:{...o},n.add(t),0===s?e=t:i[u]=t,o=t}s===t.length-1?o[c]=r:(i=o,u=c,o=o[c])}return e}function m(e){return e&&"function"==typeof e.then}function h(e,t){if(Object.is(e,t))return!0;if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(!e||!t||"object"!=typeof e||"object"!=typeof t)return!1;const r=Array.isArray(e);if(r!==Array.isArray(t))return!1;if(r){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!h(e[r],t[r]))return!1;return!0}const n=Object.getPrototypeOf(e);if(n!==Object.prototype&&null!==n)return!1;if(Object.getPrototypeOf(t)!==n)return!1;const o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(const r of o)if(!h(e[r],t[r]))return!1;return!0}function y(e,t,r,n){return new Promise((o,u)=>{if(n())return void u();if(r())return void o();const s=i(e,t,()=>{if(n())return s(),void u();r()&&(s(),o())})})}function g(e){const t=s(e);return{value:t,key:JSON.stringify(t)}}const v=Symbol("validation-outcome");function p(e){return{emitter:new Map,...e,mode:e?.mode??"onSubmit",reValidateMode:e?.reValidateMode??"onChange",disabled:e?.disabled??!1,validateDeps:e?.validateDeps?new Set(e.validateDeps.map(e=>g(e).key)):void 0,initialValues:e?.initialValues??{},values:new Map,deleted:new Set,errors:new Map,touched:new Set,validators:new Map,changeHandlers:new Map,validating:new Set,parsedValues:void 0,isSubmitting:!1,submitCount:0,isSubmitSuccessful:void 0}}const b=new WeakMap;function k(e){const t=b.get(e);t&&t.version++}function E(e){let t=b.get(e);return t?t.version>0&&(t.result=S(e),t.version=0):(t={version:0,result:S(e)},b.set(e,t)),t.result}function S(e){const{initialValues:t,parsedValues:r,values:n,deleted:o}=e,i=new Set;let u=r??t;for(const[e,t]of n)u=d(u,JSON.parse(e),t,i);for(const e of o)u=l(u,JSON.parse(e));return u}function V({initialValues:e,parsedValues:t,values:r,deleted:n},o){const{key:i,value:u}=o;if(r.has(i))return r.get(i);if(!n.has(i)){for(let e=u.length-1;e>0;e--){const t=JSON.stringify(u.slice(0,e));if(r.has(t))return c(r.get(t),u.slice(e))}return c(t??e,u)}}function w(e,t,r,n){const{emitter:i,values:u,deleted:s}=e;u.set(t.key,r),Z(u,t),ee(s,t),J(e,t),!1===n?.shouldDirty&&H(e,t,r),z(e),k(e),n?.shouldTouch&&N(e,t),n?.shouldValidate&&e.validators.get(t.key)?.(),o(i,"change",t)}function C(e,t,r){const{values:n,deleted:o}=e;n.set(t.key,r),Z(n,t),ee(o,t),J(e,t),z(e),k(e)}function O({emitter:e},t){o(e,"change",t)}function x(e,t,r,n){!1===n?.shouldDirty&&H(e,t,r);const o=e.changeHandlers.get(t.key);o?o(r):w(e,t,r,n)}function A({errors:e},t){return e.get(t.key)?.[0]}const T=[];function _({errors:e},t){return e.get(t.key)??T}function D({errors:e}){const t=[];for(const[r,n]of e){const e=JSON.parse(r).join(".");for(const{type:r,message:o}of n)t.push({path:e,type:r,message:o})}return t}function j({errors:e}){return e.values().next().value?.[0]?.message}function F({emitter:e,validating:t},r){t.delete(r.key),o(e,"validating",r)}function P({emitter:e,validating:t},r){t.add(r.key),o(e,"validating",r)}function M(e,t,r){B(e,g(t),r)}function B({emitter:e,errors:t},r,n){const i=function(e){if("string"==typeof e)return e?[{type:"custom",message:e}]:void 0;if(oe(e))return[e];if(!e)return;const t=[];return e.forEach(e=>{"string"==typeof e&&e?t.push({type:"custom",message:e}):oe(e)&&t.push(e)}),t.length?t:void 0}(n);i?t.set(r.key,i):t.delete(r.key),o(e,"errors",r)}function L(e,t){const{emitter:r,errors:n}=e;if(void 0===t)return n.clear(),void o(r,"errors");const i="string"==typeof t||ne(t)?[g(t)]:t.map(e=>g(e));for(const{key:e}of i)n.delete(e);for(const e of i)o(r,"errors",e)}function N({emitter:e,touched:t},r){t.has(r.key)||(t.add(r.key),o(e,"touched",r))}function R({touched:e},t){return e.has(t.key)}function $(e){let t=!1;return I(e,()=>{t=!0}),t}function I(e,t){for(const[r,n]of e.values){const o=JSON.parse(r);q(e,r,o)!==n&&t(o.join("."))}}const W=new WeakMap;function q(e,t,r){const n=W.get(e);return n?.has(t)?n.get(t):c(e.initialValues,r)}function H(e,{key:t},r){let n=W.get(e);n||(n=new Map,W.set(e,n)),n.set(t,r)}function J(e,{key:t}){const r=W.get(e);if(!r?.size)return;const n=`${t.slice(0,-1)},`;for(const e of r.keys())e.startsWith(n)&&r.delete(e)}function U(e,t){const r=W.get(e);r&&(void 0===t?r.clear():r.delete(t))}const G=new WeakMap;function z(e){const t=G.get(e);t&&t.version++}function K(e){const t={};return I(e,e=>{t[e]=!0}),t}function Y(e){let t=G.get(e);if(t){if(t.version>0){const r=K(e);(function(e,t){const r=Object.keys(e);return r.length===Object.keys(t).length&&r.every(e=>!0===t[e])})(t.result,r)||(t.result=r),t.version=0}}else t={version:0,result:K(e)},G.set(e,t);return t.result}function Q({touched:e}){return Array.from(e,e=>JSON.parse(e).join("."))}function X(e,t){const{key:r,value:n}=t,{emitter:i,values:u,touched:s,errors:a,validating:c,deleted:l}=e;u.delete(r),s.delete(r),a.delete(r),c.delete(r),U(e,r),function(e,t){for(let r=1;r<t.length;r++)if(e.has(JSON.stringify(t.slice(0,r))))return!0;const r=`${JSON.stringify(t).slice(0,-1)},`;for(const t of e.keys())if(t.startsWith(r))return!0;return!1}(u,n)||l.add(r),z(e),k(e),o(i,"change",t),o(i,"touched",t),o(i,"errors",t),o(i,"validating",t)}function Z(e,{key:t}){if(!e.size)return;const r=`${t.slice(0,-1)},`;for(const t of e.keys())t.startsWith(r)&&e.delete(t)}function ee(e,{key:t}){if(e.size)for(const r of e)(r===t||r.startsWith(`${t.slice(0,-1)},`)||t.startsWith(`${r.slice(0,-1)},`))&&e.delete(r)}function te(e,t){e.initialValues===t||h(e.initialValues,t)||(e.initialValues=t,e.parsedValues=void 0,e.values.clear(),e.deleted.clear(),U(e),z(e),k(e),o(e.emitter,"change"))}function re({errors:e}){return e.size>0}function ne(e){return e.some(e=>"number"==typeof e)}function oe(e){return!!e&&"object"==typeof e&&"string"==typeof e.type&&"string"==typeof e.message}function ie(e,t,r=[],n){Object.entries(t).forEach(([t,o])=>{const i=[...r,...a(t)?[t]:s(t)];"string"==typeof o?o&&(M(e,i,o),ue(e,i,n)):Array.isArray(o)||oe(o)?(M(e,i,o),ue(e,i,n)):o&&"object"==typeof o&&ie(e,o,i,n)})}function ue(e,t,r){if(!r)return;const n=g(t),o=e.errors.get(n.key);o&&r.set(n.key,o)}function se(e,t){const r=e.validateDeps?function(e){let t=ae.get(e);t||(t=new Map,ae.set(e,t));return t}(e):void 0;if(r&&(!function(e,t){for(const[r,n]of t){e.errors.get(r)===n&&(e.errors.delete(r),o(e.emitter,"errors",g(JSON.parse(r))))}}(e,r),r.clear()),t){if("object"==typeof t&&v in t){const n=t;return n.errors&&ie(e,n.errors,[],r),void function(e,t){void 0!==t&&t!==e.parsedValues&&(e.parsedValues=t,k(e),o(e.emitter,"change"))}(e,n.values)}ie(e,t,[],r)}}const ae=new WeakMap;const ce="__form_validate__";function le(e){for(const t of e.validating)if(t!==ce)return!1;return!0}const fe=Symbol("form-validate-settled"),de=new WeakMap;function me(e){const t=e.validate;if(!t)return Promise.resolve();const r=e.validateDebounce??0;if(r<=0){const r=new AbortController;return Promise.resolve(t(E(e),{form:e,signal:r.signal})).then(t=>{se(e,t)})}const n=function(e){let t=de.get(e);return t||(t={timer:null,controller:null,round:null,marked:!1,waiters:[]},de.set(e,t)),t}(e);return null!==n.timer?clearTimeout(n.timer):(n.marked=!0,e.validating.add(ce),o(e.emitter,"validating")),n.timer=setTimeout(()=>{n.timer=null;const t=n.round={};(function(e,t,r){const n=e.validate;if(!n)return Promise.resolve();t.controller?.abort();const o=t.controller=new AbortController;let i;try{i=Promise.resolve(n(E(e),{form:e,signal:o.signal}))}catch(e){i=Promise.reject(e)}return i.then(n=>{t.round===r&&se(e,n)},e=>{if(t.round===r)throw e})})(e,n,t).then(()=>he(e,n,t,fe),r=>he(e,n,t,r))},r),new Promise((e,t)=>{n.waiters.push({resolve:e,reject:t})})}function he(e,t,r,n){if(t.round!==r)return;if(t.round=null,null!==t.timer)return;t.marked&&(t.marked=!1,e.validating.delete(ce),o(e.emitter,"validating"));const i=t.waiters;t.waiters=[];for(const e of i)n===fe?e.resolve():e.reject(n)}function ye(e,t,r){e.validateDeps?.has(t.key)&&e.validate&&("onChange"===r||"all"===r||"onTouched"===r&&R(e,t)||"onChange"===e.reValidateMode&&function(e){const t=ae.get(e);if(!t)return!1;for(const[r,n]of t)if(e.errors.get(r)===n)return!0;return!1}(e))&&me(e).catch(()=>{})}const ge=new WeakMap;function ve(e,t,r){let n=ge.get(e);n||(n=new Map,ge.set(e,n));for(const e of r){let r=n.get(e);r||(r=new Set,n.set(e,r)),r.add(t)}}function pe(e,t,r){const n=ge.get(e);if(n)for(const e of r){const r=n.get(e);r?.delete(t)&&(r.size||n.delete(e))}}function be(e,t,r){const n=ge.get(e)?.get(t.key);if(n?.size)for(const o of n)o!==t.key&&("onChange"===r||"all"===r||"onTouched"===r&&R(e,t)||"onChange"===e.reValidateMode&&e.errors.has(o))&&e.validators.get(o)?.()}function ke(e){const t=new Error(j(e));return t.errors=D(e),t}async function Ee(e){if(e.validators.forEach(e=>e()),await y(e.emitter,"validating",()=>le(e),()=>re(e)).catch(()=>{throw ke(e)}),e.validate&&(await me(e),re(e)))throw ke(e)}async function Se(e){return Ee(e).catch(e=>e.message)}function Ve(e,t){e.isSubmitting=t,o(e.emitter,"submitting")}function we(e){e.submitCount++,o(e.emitter,"submitCount")}function Ce(e,t){e.isSubmitSuccessful=t,o(e.emitter,"submitSuccessful")}function Oe(e){if(e.startsWith("["))try{const t=JSON.parse(e);if(Array.isArray(t))return t.join(".")}catch{}return e}function xe(e,t){const{onSubmit:r,onValidSubmit:n,onInvalidSubmit:i,shouldFocusError:u=!0}=t??{};return async t=>{t&&"function"==typeof t.preventDefault&&t.preventDefault();const s=t?.currentTarget;Ve(e,!0),we(e);const a=E(e);if(s&&"function"==typeof s.checkValidity&&!1===s.checkValidity()){if(s.reportValidity(),u&&"function"==typeof s.querySelector){const e=s.querySelector(":invalid");e&&"function"==typeof e.focus&&e.focus()}return Ve(e,!1),Ce(e,!1),void(i&&i(function(e){const t=[],{elements:r}=e;for(let e=0;e<r.length;e++){const n=r[e];n.name&&"function"==typeof n.checkValidity&&!n.checkValidity()&&t.push({path:Oe(n.name),type:"native",message:n.validationMessage})}return t}(s),a))}if(await Se(e)){if(Ve(e,!1),Ce(e,!1),u){const t=e.errors.keys().next().value;void 0!==t&&o(e.emitter,"focusError",t)}i&&i(D(e),a)}else try{const o=E(e);r&&await r(o,t),n&&await n(o,t),Ce(e,!0)}catch{Ce(e,!1)}finally{Ve(e,!1)}}}function Ae(e,t){switch(e){case"required":return"This field is required";case"min":return`Must be at least ${t}`;case"max":return`Must be at most ${t}`;case"minLength":return`Must be at least ${t} characters`;case"maxLength":return`Must be at most ${t} characters`;case"pattern":return"Invalid format";default:return"Invalid value"}}var Te,_e={exports:{}},De={};var je,Fe,Pe={};var Me=(Fe||(Fe=1,"production"===process.env.NODE_ENV?_e.exports=function(){if(Te)return De;Te=1;var e=t,r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=e.useState,o=e.useEffect,i=e.useLayoutEffect,u=e.useDebugValue;function s(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch(e){return!0}}var a="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=n({inst:{value:r,getSnapshot:t}}),c=a[0].inst,l=a[1];return i(function(){c.value=r,c.getSnapshot=t,s(c)&&l({inst:c})},[e,r,t]),o(function(){return s(c)&&l({inst:c}),e(function(){s(c)&&l({inst:c})})},[e]),u(r),r};return De.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:a,De}():_e.exports=(je||(je=1,"production"!==process.env.NODE_ENV&&function(){function e(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch(e){return!0}}"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var r=t,n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,u=r.useLayoutEffect,s=r.useDebugValue,a=!1,c=!1,l="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(t,l){a||void 0===r.startTransition||(a=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var f=l();if(!c){var d=l();n(f,d)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),c=!0)}var m=(d=o({inst:{value:f,getSnapshot:l}}))[0].inst,h=d[1];return u(function(){m.value=f,m.getSnapshot=l,e(m)&&h({inst:m})},[t,f,l]),i(function(){return e(m)&&h({inst:m}),t(function(){e(m)&&h({inst:m})})},[t]),s(f),f};Pe.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:l,"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Pe)),_e.exports);function Be(e,t){return e.startsWith(`${t.slice(0,-1)},`)}function Le(e,t,r,n,o){const{key:u}=r;return i(e,t,e=>{(void 0===e||e.key===u||Be(u,e.key)||"branch"===n&&Be(e.key,u))&&o()})}function Ne(e,t,r,n){return i(e,t,e=>{void 0!==e&&e.key!==r||n()})}function Re(e){const[r]=t.useState(()=>{const t=p(e);return e&&void 0!==e.values&&te(t,e.values),t}),n=e&&e.initialValues,o=e&&e.values,i=t.useRef(null);null===i.current&&(i.current={done:!1,source:void 0}),t.useEffect(()=>{if(void 0===n)return;const e=i.current;e.done&&(e.source===n||h(e.source,n))||(e.done=!0,e.source=n,te(r,n))},[r,n]);const u=t.useRef(null);return null===u.current&&(u.current={done:!1,source:void 0}),t.useEffect(()=>{if(void 0===o)return;const e=u.current;e.done&&(e.source===o||h(e.source,o))||(e.done=!0,e.source=o,te(r,o))},[r,o]),r}function $e(e,r){const n=t.useRef(null);null===n.current&&(n.current={hasValue:!1});const o=n.current,i=t.useRef(r);i.current=r;const u=t.useCallback(()=>(o.hasValue||(o.value=i.current(),o.hasValue=!0),o.value),[o]),s=t.useCallback(t=>{o.hasValue=!1;return e(()=>{o.hasValue=!1,t()})},[e,o]);return Me.useSyncExternalStore(s,u,u)}function Ie(e,r,n){return $e(t.useCallback(t=>i(e,r,t),[e,r]),n)}function We(e,r){const{emitter:n}=e,{key:o}=r;return $e(t.useCallback(e=>Le(n,"change",r,"leaf",e),[n,o]),V.bind(null,e,r))}function qe(e,r){const{emitter:n}=e,{key:o}=r;return $e(t.useCallback(e=>Ne(n,"touched",o,e),[n,o]),R.bind(null,e,r))}function He(e,r){const{emitter:n}=e,{key:o}=r;return $e(t.useCallback(e=>Ne(n,"errors",o,e),[n,o]),A.bind(null,e,r))}function Je(e,r){const{emitter:n}=e,{key:o}=r;return $e(t.useCallback(e=>Ne(n,"errors",o,e),[n,o]),_.bind(null,e,r))}function Ue(e){const r=t.useMemo(()=>g(s(e)),[e]);return t.useMemo(()=>r,[r.key])}function Ge(e){const r=t.useRef(e);return r.current=e,r}function ze(e){const r=Ge(e);return t.useCallback((...e)=>r.current(...e),[r])}function Ke(e,t){if(!e)return t;const r=function(e){return t=>{if(e.required&&(""===t||null==t))return[{type:"required",message:"string"==typeof e.required?e.required:Ae("required")}];const r=[],n=(t,r)=>e.messages?.[t]??Ae(t,r);if(void 0!==e.min){const o=Number(t);!Number.isNaN(o)&&o<e.min&&r.push({type:"min",message:n("min",e.min)})}if(void 0!==e.max){const o=Number(t);!Number.isNaN(o)&&o>e.max&&r.push({type:"max",message:n("max",e.max)})}return void 0!==e.minLength&&"string"==typeof t&&t.length<e.minLength&&r.push({type:"minLength",message:n("minLength",e.minLength)}),void 0!==e.maxLength&&"string"==typeof t&&t.length>e.maxLength&&r.push({type:"maxLength",message:n("maxLength",e.maxLength)}),e.pattern&&!e.pattern.value.test(t)&&r.push({type:"pattern",message:e.messages?.pattern??e.pattern.message??Ae("pattern")}),r.length?r:void 0}}(e);return t?(e,n)=>{const o=r(e,n),i=e=>{const t=[...o??[]];return Array.isArray(e)?t.push(...e):e&&t.push(e),t.length?t:void 0},u=t(e,n);return m(u)?u.then(i):i(u)}:r}function Ye({form:e,name:r,initialValue:n,shouldUnregister:o,validate:i,rules:u,validateDebounce:s,validateDeps:a,delayError:c,disabled:l,mode:f},d){const h=t.useContext(d),y=e||h;if(!y)throw new Error("no form provided");const v=Ue(r),p=t.useRef(!1);void 0!==n&&void 0===V(y,v)&&(C(y,v,n),p.current=!0),t.useEffect(()=>{p.current&&(p.current=!1,O(y,v))});const b=function(e,r,n,o){const i=t.useContext(it),u=n||i;if(!u)throw new Error("no form provided");const s=t.useRef(null),a=t.useRef(e);a.current=e;const c=t.useRef(o?.debounce??0);return c.current=o?.debounce??0,t.useEffect(()=>{let e=null,t=null,n=!1;const o=()=>{n||(n=!0,P(u,r))},i=()=>{n&&(n=!1,F(u,r))},l=()=>{e=null;const n=a.current;if(!n)return void i();t?.abort(),t=new AbortController;const c=s.current={};let l;try{l=n(V(u,r),{form:u,path:r,signal:t.signal})}catch(e){throw i(),e}if(!m(l))return B(u,r,l),void i();o(),l.then(e=>{c===s.current&&B(u,r,e)}).catch(()=>{}).finally(()=>{c===s.current&&(i(),s.current=null)})};return u.validators.set(r.key,()=>{const t=c.current;if(t>0)return null!==e?clearTimeout(e):o(),void(e=setTimeout(l,t));l()}),()=>{u.validators.delete(r.key),null!==e&&(clearTimeout(e),e=null),i(),t?.abort()}},[u,r.key]),ze(()=>u.validators.get(r.key)?.())}(Ke(u,i),v,y,{debounce:s}),k=Je(y,v),E=function(e,r){const[n,o]=t.useState(e);return t.useEffect(()=>{if(void 0===r)return;if(0===e.length)return void o(e);if(n.length>0)return void o(e);const t=setTimeout(()=>o(e),r);return()=>clearTimeout(t)},[e,r,n]),void 0===r?e:n}(k,c),S=E[0],x=S?.message,A=We(y,v),T=Ie(y.emitter,"disabled",()=>y.disabled),_=f??y.mode,D=ze(e=>{w(y,v,e),("onChange"===_||"all"===_||"onTouched"===_&&R(y,v)||k.length>0&&"onChange"===y.reValidateMode)&&b(),ye(y,v,_),be(y,v,_)});t.useEffect(()=>(y.changeHandlers.set(v.key,D),()=>{y.changeHandlers.get(v.key)===D&&y.changeHandlers.delete(v.key)}),[y,v.key,D]);const j=a?.length?a.join("\n"):void 0;t.useEffect(()=>{if(!j)return;const e=a.map(e=>g(e).key);return ve(y,v.key,e),()=>pe(y,v.key,e)},[y,v.key,j]);const M=ze(()=>{N(y,v),("onBlur"===_||"onTouched"===_||"all"===_||k.length>0&&"onBlur"===y.reValidateMode)&&b()});return t.useEffect(()=>()=>{!1!==o&&X(y,v)},[v,y,o]),{form:y,value:A,error:x,errorObject:S,errors:E,onChange:D,onBlur:M,name:v.key,disabled:T||!!l}}function Qe(e){return Ye(e,it)}const Xe=new WeakMap;function Ze(e){const t=(Xe.get(e)??0)+1;return Xe.set(e,t),`_${t}`}const et=new WeakMap;function tt(e,t,r){let n=et.get(e);n||(n=new Map,et.set(e,n)),n.set(t,r)}function rt(e){return e+1}function nt(e,r){const n=t.useContext(r),o=e.form||n;if(!o)throw new Error("no form provided");const i=Ue(e.name),u=t.useRef([]),s=t.useCallback(()=>V(o,i)||[],[o,i]),a=t.useCallback(e=>{w(o,i,e)},[o,i]),c=t.useCallback(()=>{const e=s();for(;u.current.length<e.length;)u.current.push(Ze(o));for(;u.current.length>e.length;)u.current.pop();return u.current.map((e,t)=>({id:e,index:t}))},[s,o]),[l,f]=t.useReducer(c,void 0,c);t.useEffect(()=>Le(o.emitter,"change",i,"branch",f),[o.emitter,i]),tt(o,i.key,u.current),t.useEffect(()=>(tt(o,i.key,u.current),()=>{const e=et.get(o);e?.get(i.key)===u.current&&e.delete(i.key)}),[o,i.key]);return{fields:l,append:ze(e=>{const t=s();u.current.push(Ze(o)),a([...t,e])}),prepend:ze(e=>{const t=s();u.current.unshift(Ze(o)),a([e,...t])}),insert:ze((e,t)=>{const r=s();u.current.splice(e,0,Ze(o));const n=[...r.slice(0,e),t,...r.slice(e)];a(n)}),remove:ze(e=>{const t=s();u.current.splice(e,1);const r=t.filter((t,r)=>r!==e);a(r)}),swap:ze((e,t)=>{const r=s();[u.current[e],u.current[t]]=[u.current[t],u.current[e]];const n=[...r];[n[e],n[t]]=[n[t],n[e]],a(n)}),move:ze((e,t)=>{const r=s(),[n]=u.current.splice(e,1);u.current.splice(t,0,n);const o=[...r],[i]=o.splice(e,1);o.splice(t,0,i),a(o)}),replace:ze(e=>{u.current=e.map(()=>Ze(o)),a([...e])}),update:ze((e,t)=>{const r=s();if(e<0||e>=r.length)return;const n=[...r];n[e]=t,a(n)})}}function ot(e,r){const n=t.useContext(r),o=e.form||n;if(!o)throw new Error("no form provided");const{id:i}=e,u=Ue(e.name),s=t.useCallback(()=>function(e,t){return et.get(e)?.get(t)}(o,u.key)?.indexOf(i)??-1,[o,u.key,i]),a=t.useCallback(e=>{const t=V(o,u);return Array.isArray(t)?t[e]:void 0},[o,u]),c=s(),l=a(c),f=t.useRef({index:c,value:l});f.current={index:c,value:l};const d=Ge({computeIndex:s,computeValue:a}),[,m]=t.useReducer(rt,0);t.useEffect(()=>Le(o.emitter,"change",u,"leaf",()=>{const{computeIndex:e,computeValue:t}=d.current,r=e();r===f.current.index&&Object.is(t(r),f.current.value)||m()}),[o.emitter,u,d]);const h=Ue([...u.value,c]),y=Je(o,h);return{value:l,setValue:ze(e=>{if(c<0)return;const t=[...V(o,u)??[]];c>=t.length||(t[c]=e,w(o,u,t))}),errors:y,error:y[0]?.message,name:h.key,index:c,form:o}}const it=t.createContext(null),ut=it.Provider;const st=t.createContext(null),at=st.Provider;function ct(e){return e.replace(/["'[\],\s]+/g,"-").replace(/^-+|-+$/g,"")||"field"}function lt(e,t,r){return{"aria-invalid":!!e||r["aria-invalid"],"aria-describedby":e?[r["aria-describedby"],ct(t)].filter(Boolean).join(" "):r["aria-describedby"]}}const ft=n.forwardRef(({validate:e,eventToValue:t,initialValue:r,name:o,asProps:u,renderError:s,as:a,valueToProps:c,form:l,shouldUnregister:f,rules:d,validateDebounce:m,disabled:h,delayError:y,mode:g,...v},p)=>{const b=n.useRef(null),[k,E]=n.useState(0),S=n.useCallback(e=>{b.current=e,function(e,t){"function"==typeof e?e(t):e&&(e.current=t)}(p,e)},[p]),{value:V,onChange:w,onBlur:C,error:O,form:x,name:A,disabled:T}=Qe({name:o,form:l,initialValue:r,shouldUnregister:f,rules:d,validateDebounce:m,delayError:y,disabled:h,mode:g,validate:(...t)=>{const r=b.current;if(!r||"function"!=typeof r.checkValidity||(r.setCustomValidity(""),!1!==r.checkValidity()))return e?e(...t):void 0;E(e=>e+1)}}),_=a||"input";n.useEffect(()=>{const e=b.current;e&&"function"==typeof e.setCustomValidity&&("string"==typeof O?(e.setCustomValidity(O),e.reportValidity()):e.setCustomValidity(""))},[O]),n.useEffect(()=>{k>0&&b.current?.reportValidity()},[k]),n.useEffect(()=>i(x.emitter,"focusError",(e,t)=>{if(e!==A)return;const r=b.current;r&&"function"==typeof r.focus&&(r.focus(),t?.shouldSelect&&"function"==typeof r.select&&r.select())}),[x,A]);const D=t??(e=>e.target.value),j=ct(A);return n.createElement(n.Fragment,null,n.createElement(_,{...v,name:A,onBlur:C,...u,...c?c(V):{value:V},...lt(O,A,v),disabled:T,onChange:e=>w(D(e)),ref:S}),O&&s?n.createElement("span",{id:j,role:"alert"},s(O,j)):null)}),dt=n.forwardRef(({name:e,form:t,initialValue:r,shouldUnregister:o,validate:i,rules:u,validateDebounce:s,disabled:a,delayError:c,mode:l,...f},d)=>{const{value:m,onChange:h,onBlur:y,error:g,name:v,disabled:p}=Qe({name:e,form:t,initialValue:r,shouldUnregister:o,validate:i,rules:u,validateDebounce:s,delayError:c,disabled:a,mode:l});return n.createElement("input",{...f,name:v,onBlur:y,type:"checkbox",checked:!!m,...lt(g,v,f),disabled:p,onChange:e=>h(e.target.checked),ref:d})});function mt(e,t){return e?Array.isArray(t)?t:[]:t??""}const ht=n.forwardRef(({name:e,multiple:t,children:r,form:o,initialValue:i,shouldUnregister:u,validate:s,rules:a,validateDebounce:c,disabled:l,delayError:f,mode:d,...m},h)=>{const{value:y,onChange:g,onBlur:v,error:p,name:b,disabled:k}=Qe({name:e,form:o,initialValue:i,shouldUnregister:u,validate:s,rules:a,validateDebounce:c,delayError:f,disabled:l,mode:d});return n.createElement("select",{...m,name:b,onBlur:v,multiple:t,value:mt(t,y),...lt(p,b,m),disabled:k,onChange:e=>g(t?Array.from(e.target.selectedOptions,e=>e.value):e.target.value),ref:h},r)});e.Checkbox=dt,e.CheckboxGroupContext=st,e.CheckboxGroupProvider=at,e.Field=ft,e.Form=function({form:e,context:t,initialValues:r,values:o,onSubmit:i,onValidSubmit:u,onInvalidSubmit:s,shouldFocusError:a,...c}){const l=Re({initialValues:r,values:o}),f=e||l,d=xe(f,{onSubmit:i,onValidSubmit:u,onInvalidSubmit:s,shouldFocusError:a}),{Provider:m}=t??it;return n.createElement(m,{value:f},n.createElement("form",{...c,noValidate:!0,onSubmit:d}))},e.FormContext=it,e.FormProvider=ut,e.Select=ht,e.VALIDATION_OUTCOME=v,e.changeValue=function(e,t,r,n){x(e,g(t),r,n)},e.changeValueByPath=x,e.clearErrors=L,e.createForm=p,e.createFormContext=function(){const e=t.createContext(null);return{context:e,FormProvider:function({form:r,children:n}){return t.createElement(e.Provider,{value:r},n)},useFormContext:function(){const r=t.useContext(e);if(!r)throw new Error("no form provided");return r},useField:function(t){return Ye(t,e)},useFieldArray:function(t){return nt(t,e)},useFieldArrayItem:function(t){return ot(t,e)}}},e.emitChangeByPath=O,e.ensureValidate=Ee,e.fieldErrorId=function(e){return ct(g(e).key)},e.getDirtyFields=Y,e.getError=function(e,t){return A(e,g(t))},e.getErrorByPath=A,e.getErrors=D,e.getFieldErrors=function(e,t){return _(e,g(t))},e.getFieldErrorsByPath=_,e.getFieldState=function(e,t){const r=g(t),{values:n,touched:o,validating:i}=e,u=n.get(r.key);return{value:V(e,r),error:A(e,r),errors:_(e,r),isDirty:n.has(r.key)&&q(e,r.key,r.value)!==u,isTouched:o.has(r.key),isValidating:i.has(r.key)}},e.getFirstError=j,e.getTouchedFields=Q,e.getValue=function(e,t){return V(e,g(t))},e.getValueByPath=V,e.getValues=E,e.handleSubmit=xe,e.hasErrors=re,e.hasTouched=function(e,t){return R(e,g(t))},e.hasTouchedByPath=R,e.incrementSubmitCount=we,e.isDirty=$,e.isTouched=function({touched:e}){return e.size>0},e.registerFieldValidateDeps=ve,e.removeField=function(e,t){X(e,g(t))},e.removeFieldByPath=X,e.reset=function(e,t,r){const n=[];if(r?.keepDirtyValues)for(const[t,r]of e.values){const o=JSON.parse(t);q(e,t,o)!==r&&n.push({segments:o,value:r})}e.initialValues=t,e.parsedValues=void 0,r?.keepErrors||L(e);const{emitter:i,touched:u,values:s,deleted:a,validating:c}=e;s.clear(),a.clear(),U(e),r?.keepTouched||u.clear(),c.clear(),r?.keepIsSubmitting||(e.isSubmitting=!1),r?.keepSubmitCount||(e.submitCount=0),r?.keepIsSubmitted||(e.isSubmitSuccessful=void 0),z(e),k(e);for(const{segments:t,value:r}of n)w(e,g(t),r);o(i,"change"),o(i,"touched"),o(i,"validating"),o(i,"submitting"),o(i,"submitCount"),o(i,"submitSuccessful"),o(i,"reset")},e.resetField=function(e,t,r){const n=g(t),{emitter:i,values:u,touched:s,errors:a,deleted:f}=e;if(u.delete(n.key),U(e,n.key),void 0!==e.parsedValues){e.parsedValues=l(e.parsedValues,n.value);const t=c(e.initialValues,n.value);void 0!==t&&u.set(n.key,t)}r&&"value"in r&&u.set(n.key,r.value),ee(f,n),o(i,"change"),!r?.keepTouched&&s.delete(n.key)&&o(i,"touched",n),!r?.keepErrors&&a.delete(n.key)&&o(i,"errors",n),z(e),k(e)},e.revalidateDependentsOnChange=be,e.revalidateFormOnChange=ye,e.seedValueByPath=C,e.setDisabled=function(e,t){e.disabled=t,o(e.emitter,"disabled")},e.setError=M,e.setErrorByPath=B,e.setFocus=function(e,t,r){const{key:n}=g(t);r?o(e.emitter,"focusError",n,r):o(e.emitter,"focusError",n)},e.setInitialValues=te,e.setIsSubmitting=Ve,e.setServerErrors=function(e,t,r){r?.keepExisting||L(e);for(const[r,n]of Object.entries(t))M(e,r,(Array.isArray(n)?n:[n]).map(e=>({type:"server",message:e})))},e.setSubmitSuccessful=Ce,e.setTouched=function(e,t){N(e,g(t))},e.setTouchedByPath=N,e.setValidatingByPath=P,e.setValue=function(e,t,r,n){w(e,g(t),r,n)},e.setValueByPath=w,e.subscribe=function(e,t){const{name:r,event:n="change",scope:o="branch",callback:u}=t;if(void 0===r)return i(e.emitter,n,u);const s=(function(e){return Array.isArray(e)&&e.every(e=>"number"!=typeof e)}(r)?r:[r]).map(t=>{const r=g(t);return"errors"===n||"touched"===n?Ne(e.emitter,n,r.key,u):Le(e.emitter,n,r,o,u)});return 1===s.length?s[0]:()=>s.forEach(e=>e())},e.trigger=async function(e,t){const r=t=>y(e.emitter,"validating",()=>void 0===t?le(e):t.every(t=>!e.validating.has(t)),()=>!1);if(void 0===t)return e.validators.forEach(e=>e()),await r(),e.validate&&await me(e),!re(e);const n="string"==typeof t||ne(t)?[g(t).key]:t.map(e=>g(e).key);return n.forEach(t=>e.validators.get(t)?.()),await r(n),n.every(t=>!e.errors.has(t))},e.unregisterFieldValidateDeps=pe,e.unsetValidatingByPath=F,e.useCanSubmit=function(e){const{emitter:r}=e;return $e(t.useCallback(e=>{const t=i(r,"errors",e),n=i(r,"submitting",e);return()=>{t(),n()}},[r]),()=>!e.isSubmitting&&!re(e))},e.useCheckboxGroupContext=function(){const e=t.useContext(st);if(!e)throw new Error("no group provided");return e},e.useDirtyFields=function(e){return Ie(e.emitter,"change",Y.bind(null,e))},e.useError=function(e,t){return He(e,g(t))?.message},e.useErrorByPath=He,e.useField=Qe,e.useFieldArray=function(e){return nt(e,it)},e.useFieldArrayItem=function(e){return ot(e,it)},e.useFieldErrors=function(e,t){return Je(e,g(t))},e.useFieldErrorsByPath=Je,e.useForm=Re,e.useFormContext=function(){const e=t.useContext(it);if(!e)throw new Error("no form provided");return e},e.useHasErrors=function(e){return Ie(e.emitter,"errors",re.bind(null,e))},e.useIsDirty=function(e){return Ie(e.emitter,"change",$.bind(null,e))},e.useIsSubmitting=function(e){return Ie(e.emitter,"submitting",()=>e.isSubmitting)},e.useSubmitCount=function(e){return Ie(e.emitter,"submitCount",()=>e.submitCount)},e.useTouched=function(e,t){return qe(e,g(t))},e.useTouchedByPath=qe,e.useTouchedFields=function(e){return Ie(e.emitter,"touched",Q.bind(null,e))},e.useValue=function(e,t){return We(e,g(t))},e.useValueByPath=We,e.useWatch=Ie,e.validate=Se});
6
6
  //# sourceMappingURL=index.umd.min.js.map