react-f0rm 0.2.2 → 0.3.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.
Files changed (45) hide show
  1. package/README.md +527 -33
  2. package/dist/devtools/index.cjs.js +737 -0
  3. package/dist/devtools/index.cjs.js.map +1 -0
  4. package/dist/devtools/index.d.ts +33 -0
  5. package/dist/devtools/index.mjs +717 -0
  6. package/dist/devtools/index.mjs.map +1 -0
  7. package/dist/form-61297bc0.d.ts +578 -0
  8. package/dist/form-94c70b4b.mjs +378 -0
  9. package/dist/form-94c70b4b.mjs.map +1 -0
  10. package/dist/form-b9441d8c.cjs.js +387 -0
  11. package/dist/form-b9441d8c.cjs.js.map +1 -0
  12. package/dist/index.cjs.js +1257 -157
  13. package/dist/index.cjs.js.map +1 -1
  14. package/dist/index.d.ts +357 -53
  15. package/dist/index.mjs +1676 -0
  16. package/dist/index.mjs.map +1 -0
  17. package/dist/index.umd.js +1257 -157
  18. package/dist/index.umd.js.map +1 -1
  19. package/dist/index.umd.min.js +2 -2
  20. package/dist/index.umd.min.js.map +1 -1
  21. package/dist/resolvers/standard-schema.cjs.js +90 -0
  22. package/dist/resolvers/standard-schema.cjs.js.map +1 -0
  23. package/dist/resolvers/standard-schema.d.ts +66 -0
  24. package/dist/resolvers/standard-schema.mjs +86 -0
  25. package/dist/resolvers/standard-schema.mjs.map +1 -0
  26. package/dist/resolvers/yup.cjs.js +12 -2
  27. package/dist/resolvers/yup.cjs.js.map +1 -1
  28. package/dist/resolvers/yup.d.ts +2 -2
  29. package/dist/resolvers/yup.mjs +23 -0
  30. package/dist/resolvers/yup.mjs.map +1 -0
  31. package/dist/resolvers/zod.cjs.js +14 -1
  32. package/dist/resolvers/zod.cjs.js.map +1 -1
  33. package/dist/resolvers/zod.d.ts +2 -2
  34. package/dist/resolvers/zod.mjs +23 -0
  35. package/dist/resolvers/zod.mjs.map +1 -0
  36. package/dist/validate-148fe167.d.ts +22 -0
  37. package/package.json +34 -8
  38. package/dist/form-d06e6444.d.ts +0 -201
  39. package/dist/index.esm.js +0 -593
  40. package/dist/index.esm.js.map +0 -1
  41. package/dist/resolvers/yup.esm.js +0 -13
  42. package/dist/resolvers/yup.esm.js.map +0 -1
  43. package/dist/resolvers/zod.esm.js +0 -10
  44. package/dist/resolvers/zod.esm.js.map +0 -1
  45. package/dist/validate-0f17f86a.d.ts +0 -8
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * react-f0rm v0.2.2
2
+ * react-f0rm v0.3.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 u(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)}}function i(e){return Array.isArray(e)?e:e.split(/\.|\[/).map(e=>e.endsWith("]")?Number.parseInt(e,10):e)}function o(e,t){return t.reduce((e,t)=>{if(null!=e)return e[t]},e)}function a(e,t,r){if(!t.length)return r;const[n,...u]=t;if("number"==typeof n){const t=Array.isArray(e)?e.slice():[];return t[n]=a(t[n],u,r),t}return{...e,[n]:a(e&&e[n],u,r)}}function c(e){const t=i(e);return{value:t,key:JSON.stringify(t)}}const s=function(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),u=2;u<r;u++)n[u-2]=arguments[u];(e.get(t)||[]).forEach(function(e){return e.apply(void 0,n)})};function l(e){return{emitter:new Map,revalidateOnChange:!0,...e,initialValues:e?.initialValues??{},values:new Map,errors:new Map,touched:new Set,validators:new Map,validating:new Set,isSubmitting:!1,submitCount:0,isSubmitSuccessful:void 0}}function f(e){return Array.from(e.values.keys()).reduce((t,r)=>a(t,JSON.parse(r),e.values.get(r)),e.initialValues)}function d({initialValues:e,values:t},r){return t.has(r.key)?t.get(r.key):o(e,r.value)}function m({emitter:e,values:t},r,n){t.set(r.key,n),s(e,"change",r)}function h({errors:e},t){return e.get(t.key)}function v({errors:e}){return Array.from(e.values())}function y({errors:e}){return e.values().next().value}function g({emitter:e,validating:t},{key:r}){t.delete(r),s(e,"validating")}function p({emitter:e,validating:t},{key:r}){t.add(r),s(e,"validating")}function b(e,t,r){C(e,c(t),r)}function C({emitter:e,errors:t},r,n){n?t.set(r.key,n):t.delete(r.key),s(e,"errors")}function k({emitter:e,errors:t}){t.clear(),s(e,"errors")}function V({emitter:e,touched:t},{key:r}){t.has(r)||(t.add(r),s(e,"touched"))}function E({touched:e},t){return e.has(t.key)}function w({initialValues:e,values:t}){for(const[r,n]of t){if(o(e,JSON.parse(r))!==n)return!0}return!1}function S(e,{key:t}){const{emitter:r,values:n,touched:u,errors:i,validating:o}=e;n.delete(t),u.delete(t),i.delete(t),o.delete(t),s(r,"change"),s(r,"touched"),s(r,"errors"),s(r,"validating")}function P(e,t){e.initialValues!==t&&(e.initialValues=t,e.values.clear(),s(e.emitter,"change"))}function x({errors:e}){return e.size>0}async function B(e){var t,r,n,i;if(e.validators.forEach(e=>e()),await(t=e.emitter,r="validating",n=()=>!e.validating.size,i=()=>x(e),new Promise((e,o)=>{if(i())return void o();if(n())return void e();const a=u(t,r,()=>{if(i())return a(),void o();n()||(a(),e())})})).catch(()=>{throw new Error(y(e))}),e.validate){const t=await e.validate(f(e)),r=t?Object.entries(t):[];if(r.length)throw r.forEach(([t,r])=>{b(e,t,r)}),new Error(y(e))}}async function O(e){return B(e).catch(e=>e.message)}function F(e,t){e.isSubmitting=t,s(e.emitter,"submitting")}function R(e){e.submitCount++,s(e.emitter,"submitCount")}function T(e,t){e.isSubmitSuccessful=t,s(e.emitter,"submitSuccessful")}const A=t.createContext(null),j=A.Provider;function I(){const e=t.useContext(A);if(!e)throw new Error("no form provided");return e}const M=t.createContext(null),z=M.Provider;function D(e){const r=t.useRef(null),n=r.current=r.current||l(e),u=e&&e.initialValues;return t.useEffect(()=>{P(n,u)},[u]),n}function N(e,r,n){const[i,o]=t.useReducer(n,void 0,n);return t.useEffect(()=>u(e,r,o),[e,r]),i}function G(e,t){return N(e.emitter,"change",d.bind(null,e,t))}function J(e,t){return N(e.emitter,"touched",E.bind(null,e,t))}function W(e,t){return N(e.emitter,"errors",h.bind(null,e,t))}function q(e){const r=t.useMemo(()=>c(i(e)),[e]);return t.useMemo(()=>r,[r.key])}function H(e){const r=function(e){const r=t.useRef(e);return r.current=e,r}(e);return t.useCallback((...e)=>r.current(...e),[])}function U({form:e,name:r,initialValue:n,shouldUnregister:u,validate:i,...o}){const a=I(),c=e||a,s=q(r),l=function(e,r){const n=I(),u=t.useRef(null),i=t.useRef(e);return i.current=e,t.useEffect(()=>(n.validators.set(r.key,()=>{const e=i.current;if(!e)return;const t=e(d(n,r),{form:n,path:r});if(!(o=t)||"function"!=typeof o.then)return void C(n,r,t);var o;const a=u.current={};p(n,r),t.then(e=>{a===u.current&&C(n,r,e)}).finally(()=>{a===u.current&&(g(n,r),u.current=null)})}),()=>{n.validators.delete(r.key)}),[n,r.key]),H(()=>n.validators.get(r.key)?.())}(i,s);t.useMemo(()=>{void 0!==n&&m(c,s,n)},[c,s]);const f=W(c,s),h=G(c,s),v=H(e=>{m(c,s,e),(c.validateOnChange||c.revalidateOnChange&&f&&void 0!==f)&&l()}),y=H(()=>{V(c,s),(c.validateOnBlur||c.revalidateOnBlur&&void 0!==f)&&l()});return t.useEffect(()=>()=>{!1!==u&&S(c,s)},[s,c,u]),{...o,value:h,error:f,onChange:v,onBlur:y,name:s.key}}let _=0;function K(){return"_"+ ++_}const L=Symbol("buildInError");const Q=n.forwardRef(({validate:e,eventToValue:t,initialValue:r,name:u,asProps:i,...o},a)=>{const c=n.useRef(null),s=n.useCallback(e=>{c.current=e,function(e,t){"function"==typeof e?e(t):e&&(e.current=t)}(a,e)},[a]),{as:l,value:f,valueToProps:d,onChange:m,error:h,...v}=U({...o,name:u,initialValue:r,validate:(...t)=>!1===c.current?.checkValidity()?L:e?e(...t):void 0}),y=l||"input";n.useEffect(()=>{if(c.current)return h===L?(c.current.setCustomValidity(""),void c.current.reportValidity()):void("string"==typeof h&&(c.current.setCustomValidity(h),c.current.reportValidity()))},[h]);const g=t??(e=>e.target.value);return n.createElement(y,{...v,...i,...d?d(f):{value:f},onChange:e=>m(g(e)),ref:s})}),X=n.forwardRef(({name:e,...t},r)=>{const{value:u,onChange:i,error:o,...a}=U({...t,name:e});return n.createElement("input",{...a,type:"checkbox",checked:!!u,onChange:e=>i(e.target.checked),ref:r})});e.Checkbox=X,e.CheckboxGroupContext=M,e.CheckboxGroupProvider=z,e.Field=Q,e.Form=function({form:e,initialValues:t,onSubmit:r,onValidSubmit:u,onInvalidSubmit:i,...o}){const a=D({initialValues:t}),c=e||a;return n.createElement(j,{value:c},n.createElement("form",{...o,noValidate:!0,onSubmit:async function(e){e.preventDefault(),F(c,!0),R(c);const t=await O(c),n=f(c);if(t)return F(c,!1),T(c,!1),void(i&&i(v(c),n));try{r&&await r(n,e),u&&u(n,e),T(c,!0)}catch{T(c,!1)}finally{F(c,!1)}}}))},e.FormContext=A,e.FormProvider=j,e.clearErrors=k,e.createForm=l,e.ensureValidate=B,e.getError=function(e,t){return h(e,c(t))},e.getErrorByPath=h,e.getErrors=v,e.getFirstError=y,e.getValue=function(e,t){return d(e,c(t))},e.getValueByPath=d,e.getValues=f,e.hasErrors=x,e.hasTouched=function(e,t){return E(e,c(t))},e.hasTouchedByPath=E,e.incrementSubmitCount=R,e.isDirty=w,e.isTouched=function({touched:e}){return e.size>0},e.removeField=function(e,t){S(e,c(t))},e.removeFieldByPath=S,e.reset=function(e,t){e.initialValues=t,k(e);const{emitter:r,touched:n,values:u}=e;u.clear(),n.clear(),s(r,"change"),s(r,"touched"),s(r,"reset")},e.setError=b,e.setErrorByPath=C,e.setInitialValues=P,e.setIsSubmitting=F,e.setSubmitSuccessful=T,e.setTouched=function(e,t){V(e,c(t))},e.setTouchedByPath=V,e.setValidatingByPath=p,e.setValue=function(e,t,r){m(e,c(t),r)},e.setValueByPath=m,e.trigger=function(e){e.validators.forEach(e=>e())},e.unsetValidatingByPath=g,e.useCheckboxGroupContext=function(){const e=t.useContext(M);if(!e)throw new Error("no group provided");return e},e.useError=function(e,t){return W(e,c(t))},e.useErrorByPath=W,e.useField=U,e.useFieldArray=function(e){const r=I(),n=e.form||r,i=q(e.name),o=t.useRef([]),a=t.useCallback(()=>d(n,i)||[],[n,i]),c=t.useCallback(e=>{m(n,i,e)},[n,i]),s=t.useCallback(()=>{const e=a();for(;o.current.length<e.length;)o.current.push(K());for(;o.current.length>e.length;)o.current.pop();return o.current.map((e,t)=>({id:e,index:t}))},[a]),[l,f]=t.useReducer(s,void 0,s);return t.useEffect(()=>u(n.emitter,"change",f),[n.emitter]),{fields:l,append:H(e=>{const t=a();o.current.push(K()),c([...t,e])}),prepend:H(e=>{const t=a();o.current.unshift(K()),c([e,...t])}),insert:H((e,t)=>{const r=a();o.current.splice(e,0,K());const n=[...r.slice(0,e),t,...r.slice(e)];c(n)}),remove:H(e=>{const t=a();o.current.splice(e,1);const r=t.filter((t,r)=>r!==e);c(r)}),swap:H((e,t)=>{const r=a();[o.current[e],o.current[t]]=[o.current[t],o.current[e]];const n=[...r];[n[e],n[t]]=[n[t],n[e]],c(n)}),move:H((e,t)=>{const r=a(),[n]=o.current.splice(e,1);o.current.splice(t,0,n);const u=[...r],[i]=u.splice(e,1);u.splice(t,0,i),c(u)})}},e.useForm=D,e.useFormContext=I,e.useHasErrors=function(e){return N(e.emitter,"errors",x.bind(null,e))},e.useIsDirty=function(e){return N(e.emitter,"touched",w.bind(null,e))},e.useIsSubmitting=function(e){return N(e.emitter,"submitting",()=>e.isSubmitting)},e.useSubmitCount=function(e){return N(e.emitter,"submitCount",()=>e.submitCount)},e.useTouched=function(e,t){return J(e,c(t))},e.useTouchedByPath=J,e.useValue=function(e,t){return G(e,c(t))},e.useValueByPath=G,e.useWatch=N,e.validate=O});
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,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 i(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=()=>{t.push(r),r=""};for(let o=0;o<e.length;o++){const u=e[o];if("."===u)""!==r&&n();else if("["===u){""!==r&&n();const u=e[o+1];if('"'===u||"'"===u){const r=e.indexOf(u,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(/^-?\d+$/.test(n)?Number(n):n),o=r}}else r+=u}""===r&&0!==t.length||n();return t}(e);return u.set(e,r),r}function s(e,t){return t.reduce((e,t)=>{if(null!=e)return e[t]},e)}function a(e,t){if(!t.length||null==e)return e;const[r,...n]=t;if(n.length){const o=a(e[r],n);return o===e[r]?e:c(e,t,o)}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 c(e,t,r){if(!t.length)return r;const[n,...o]=t;if("number"==typeof n){const t=Array.isArray(e)?e.slice():[];return t[n]=c(t[n],o,r),t}return{...e,[n]:c(e&&e[n],o,r)}}function l(e,t,r,n){if(!t.length)return r;let o=e,u=null,i="";for(let s=0;s<t.length;s++){const a=t[s];if(!n.has(o)){let t;t="number"==typeof a?Array.isArray(o)?o.slice():[]:{...o},n.add(t),0===s?e=t:u[i]=t,o=t}s===t.length-1?o[a]=r:(u=o,i=a,o=o[a])}return e}function f(e){return e&&"function"==typeof e.then}function d(e,t,r,n){return new Promise((u,i)=>{if(n())return void i();if(r())return void u();const s=o(e,t,()=>{if(n())return s(),void i();r()&&(s(),u())})})}function m(e){const t=i(e);return{value:t,key:JSON.stringify(t)}}const h=function(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)})},y=Symbol("validation-outcome");function v(e){return{emitter:new Map,...e,mode:e?.mode??"onSubmit",reValidateMode:e?.reValidateMode??"onChange",disabled:e?.disabled??!1,initialValues:e?.initialValues??{},values:new Map,deleted:new Set,errors:new Map,touched:new Set,validators:new Map,validating:new Set,parsedValues:void 0,isSubmitting:!1,submitCount:0,isSubmitSuccessful:void 0}}function p(e){const{initialValues:t,parsedValues:r,values:n,deleted:o}=e,u=new Set;let i=r??t;for(const[e,t]of n)i=l(i,JSON.parse(e),t,u);for(const e of o)i=a(i,JSON.parse(e));return i}function g(e,t){return b(e,m(t))}function b({initialValues:e,parsedValues:t,values:r,deleted:n},o){return r.has(o.key)?r.get(o.key):n.has(o.key)?void 0:s(t??e,o.value)}function E(e,t,r,n){const{emitter:o,values:u,deleted:i}=e;u.set(t.key,r),$(i,t),P(e),n?.shouldTouch&&L(e,t),n?.shouldValidate&&e.validators.get(t.key)?.(),h(o,"change",t)}function k({errors:e},t){return e.get(t.key)?.[0]}const S=[];function V({errors:e},t){return e.get(t.key)??S}function O({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 w({errors:e}){return e.values().next().value?.[0]?.message}function C({emitter:e,validating:t},r){t.delete(r.key),h(e,"validating",r)}function x({emitter:e,validating:t},r){t.add(r.key),h(e,"validating",r)}function T(e,t,r){_(e,m(t),r)}function _({emitter:e,errors:t},r,n){const o=function(e){if("string"==typeof e)return e?[{type:"custom",message:e}]:void 0;if(J(e))return[e];if(!e)return;const t=[];return e.forEach(e=>{"string"==typeof e&&e?t.push({type:"custom",message:e}):J(e)&&t.push(e)}),t.length?t:void 0}(n);o?t.set(r.key,o):t.delete(r.key),h(e,"errors",r)}function A(e,t){const{emitter:r,errors:n}=e;if(void 0===t)return n.clear(),void h(r,"errors");const o="string"==typeof t||G(t)?[m(t)]:t.map(e=>m(e));for(const{key:e}of o)n.delete(e);for(const e of o)h(r,"errors",e)}function L({emitter:e,touched:t},r){t.has(r.key)||(t.add(r.key),h(e,"touched",r))}function F({touched:e},t){return e.has(t.key)}function j(e){let t=!1;return D(e,()=>{t=!0}),t}function D({initialValues:e,values:t},r){for(const[n,o]of t){const t=JSON.parse(n);s(e,t)!==o&&r(t.join("."))}}const B=new WeakMap;function P(e){const t=B.get(e);t&&t.version++}function N(e){const t={};return D(e,e=>{t[e]=!0}),t}function M(e){let t=B.get(e);if(t){if(t.version>0){const r=N(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:N(e)},B.set(e,t);return t.result}function R({touched:e}){return Array.from(e,e=>JSON.parse(e).join("."))}function I(e,{key:t,value:r}){const{emitter:n,values:o,touched:u,errors:i,validating:s,deleted:a}=e;o.delete(t),u.delete(t),i.delete(t),s.delete(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}(o,r)||a.add(t),P(e),h(n,"change"),h(n,"touched"),h(n,"errors"),h(n,"validating")}function $(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 q(e,t){e.initialValues!==t&&(e.initialValues=t,e.parsedValues=void 0,e.values.clear(),e.deleted.clear(),P(e),h(e.emitter,"change"))}function U({errors:e}){return e.size>0}function G(e){return e.some(e=>"number"==typeof e)}function J(e){return!!e&&"object"==typeof e&&"string"==typeof e.type&&"string"==typeof e.message}function H(e,t,r=[]){Object.entries(t).forEach(([t,n])=>{const o=[...r,...i(t)];"string"==typeof n?n&&T(e,o,n):Array.isArray(n)||J(n)?T(e,o,n):n&&"object"==typeof n&&H(e,n,o)})}function W(e,t){if(t){if("object"==typeof t&&y in t){const r=t;return r.errors&&H(e,r.errors),void function(e,t){void 0!==t&&t!==e.parsedValues&&(e.parsedValues=t,h(e.emitter,"change"))}(e,r.values)}H(e,t)}}async function z(e){if(e.validators.forEach(e=>e()),await d(e.emitter,"validating",()=>!e.validating.size,()=>U(e)).catch(()=>{throw new Error(w(e))}),e.validate){const t=await e.validate(p(e));if(W(e,t),U(e))throw new Error(w(e))}}async function K(e){return z(e).catch(e=>e.message)}function Y(e,t){e.isSubmitting=t,h(e.emitter,"submitting")}function Q(e){e.submitCount++,h(e.emitter,"submitCount")}function X(e,t){e.isSubmitSuccessful=t,h(e.emitter,"submitSuccessful")}function Z(e){if(e.startsWith("["))try{const t=JSON.parse(e);if(Array.isArray(t))return t.join(".")}catch{}return e}function ee(e,t){const{onSubmit:r,onValidSubmit:n,onInvalidSubmit:o,shouldFocusError:u=!0}=t??{};return async t=>{t&&"function"==typeof t.preventDefault&&t.preventDefault();const i=t?.currentTarget;Y(e,!0),Q(e);const s=p(e);if(i&&"function"==typeof i.checkValidity&&!1===i.checkValidity()){if(i.reportValidity(),u&&"function"==typeof i.querySelector){const e=i.querySelector(":invalid");e&&"function"==typeof e.focus&&e.focus()}return Y(e,!1),X(e,!1),void(o&&o(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:Z(n.name),type:"native",message:n.validationMessage})}return t}(i),s))}if(await K(e)){if(Y(e,!1),X(e,!1),u){const t=e.errors.keys().next().value;void 0!==t&&h(e.emitter,"focusError",t)}o&&o(O(e),s)}else try{const o=p(e);r&&await r(o,t),n&&await n(o,t),X(e,!0)}catch{X(e,!1)}finally{Y(e,!1)}}}function te(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 re,ne={exports:{}},oe={};var ue,ie={};"production"===process.env.NODE_ENV?ne.exports=function(){if(re)return oe;re=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,u=e.useLayoutEffect,i=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 u(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]),i(r),r};return oe.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:a,oe}():ne.exports=(ue||(ue=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,u=r.useEffect,i=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 i(function(){m.value=f,m.getSnapshot=l,e(m)&&h({inst:m})},[t,f,l]),u(function(){return e(m)&&h({inst:m}),t(function(){e(m)&&h({inst:m})})},[t]),s(f),f};ie.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())}()),ie);var se=ne.exports;function ae(e,t){return e.startsWith(`${t.slice(0,-1)},`)}function ce(e,t,r,n,u){const{key:i}=r;return o(e,t,e=>{(void 0===e||e.key===i||ae(i,e.key)||"branch"===n&&ae(e.key,i))&&u()})}function le(e,t,r,n){return o(e,t,e=>{void 0!==e&&e.key!==r||n()})}function fe(e){const[r]=t.useState(()=>{const t=v(e);return e&&void 0!==e.values&&q(t,e.values),t}),n=e&&e.initialValues,o=e&&e.values,u=t.useRef(null);null===u.current&&(u.current={done:!1,source:void 0}),t.useEffect(()=>{const e=u.current;e.done&&(e.source===n||ge(e.source,n))||(e.done=!0,e.source=n,q(r,n))},[r,n]);const i=t.useRef(null);return null===i.current&&(i.current={done:!1,source:void 0}),t.useEffect(()=>{if(void 0===o)return;const e=i.current;e.done&&(e.source===o||ge(e.source,o))||(e.done=!0,e.source=o,q(r,o))},[r,o]),r}function de(e,r){const n=t.useRef(null);null===n.current&&(n.current={hasValue:!1});const o=n.current,u=t.useRef(r);u.current=r;const i=t.useCallback(()=>(o.hasValue||(o.value=u.current(),o.hasValue=!0),o.value),[o]),s=t.useCallback(t=>{o.hasValue=!1;return e(()=>{o.hasValue=!1,t()})},[e,o]);return se.useSyncExternalStore(s,i,i)}function me(e,r,n){return de(t.useCallback(t=>o(e,r,t),[e,r]),n)}function he(e,r){const{emitter:n}=e,{key:o}=r;return de(t.useCallback(e=>ce(n,"change",r,"leaf",e),[n,o]),b.bind(null,e,r))}function ye(e,r){const{emitter:n}=e,{key:o}=r;return de(t.useCallback(e=>le(n,"touched",o,e),[n,o]),F.bind(null,e,r))}function ve(e,r){const{emitter:n}=e,{key:o}=r;return de(t.useCallback(e=>le(n,"errors",o,e),[n,o]),k.bind(null,e,r))}function pe(e,r){const{emitter:n}=e,{key:o}=r;return de(t.useCallback(e=>le(n,"errors",o,e),[n,o]),V.bind(null,e,r))}function ge(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(!ge(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),u=Object.keys(t);if(o.length!==u.length)return!1;for(const r of o)if(!ge(e[r],t[r]))return!1;return!0}function be(e){const r=t.useMemo(()=>m(i(e)),[e]);return t.useMemo(()=>r,[r.key])}function Ee(e){const r=function(e){const r=t.useRef(e);return r.current=e,r}(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:te("required")}];const r=[],n=(t,r)=>e.messages?.[t]??te(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??te("pattern")}),r.length?r:void 0}}(e);return t?(e,n)=>{const o=r(e,n),u=e=>{const t=[...o??[]];return Array.isArray(e)?t.push(...e):e&&t.push(e),t.length?t:void 0},i=t(e,n);return f(i)?i.then(u):u(i)}:r}function Se({form:e,name:r,initialValue:n,shouldUnregister:o,validate:u,rules:i,validateDebounce:s,delayError:a,disabled:c},l){const d=t.useContext(l),m=e||d;if(!m)throw new Error("no form provided");const h=be(r),y=function(e,r,n,o){const u=t.useContext(xe),i=n||u;if(!i)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,x(i,r))},u=()=>{n&&(n=!1,C(i,r))},l=()=>{e=null;const n=a.current;if(!n)return void u();t?.abort(),t=new AbortController;const c=s.current={};let l;try{l=n(b(i,r),{form:i,path:r,signal:t.signal})}catch(e){throw u(),e}if(!f(l))return _(i,r,l),void u();o(),l.then(e=>{c===s.current&&_(i,r,e)}).catch(()=>{}).finally(()=>{c===s.current&&(u(),s.current=null)})};return i.validators.set(r.key,()=>{const t=c.current;if(t>0)return null!==e?clearTimeout(e):o(),void(e=setTimeout(l,t));l()}),()=>{i.validators.delete(r.key),null!==e&&(clearTimeout(e),e=null),u(),t?.abort()}},[i,r.key]),Ee(()=>i.validators.get(r.key)?.())}(ke(i,u),h,m,{debounce:s}),v=pe(m,h),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),g=p[0],k=g?.message,S=he(m,h),V=me(m.emitter,"disabled",()=>m.disabled);t.useEffect(()=>{void 0!==n&&void 0===b(m,h)&&E(m,h,n)},[m,h,n]);const O=Ee(e=>{E(m,h,e),("onChange"===m.mode||"all"===m.mode||"onTouched"===m.mode&&F(m,h)||v.length>0&&"onChange"===m.reValidateMode)&&y()}),w=Ee(()=>{L(m,h),("onBlur"===m.mode||"onTouched"===m.mode||"all"===m.mode||v.length>0&&"onBlur"===m.reValidateMode)&&y()});return t.useEffect(()=>()=>{!1!==o&&I(m,h)},[h,m,o]),{form:m,value:S,error:k,errorObject:g,errors:p,onChange:O,onBlur:w,name:h.key,disabled:V||!!c}}function Ve(e){return Se(e,xe)}let Oe=0;function we(){return"_"+ ++Oe}function Ce(e,r){const n=t.useContext(r),o=e.form||n;if(!o)throw new Error("no form provided");const u=be(e.name),i=t.useRef([]),s=t.useCallback(()=>b(o,u)||[],[o,u]),a=t.useCallback(e=>{E(o,u,e)},[o,u]),c=t.useCallback(()=>{const e=s();for(;i.current.length<e.length;)i.current.push(we());for(;i.current.length>e.length;)i.current.pop();return i.current.map((e,t)=>({id:e,index:t}))},[s]),[l,f]=t.useReducer(c,void 0,c);t.useEffect(()=>ce(o.emitter,"change",u,"branch",f),[o.emitter,u]);return{fields:l,append:Ee(e=>{const t=s();i.current.push(we()),a([...t,e])}),prepend:Ee(e=>{const t=s();i.current.unshift(we()),a([e,...t])}),insert:Ee((e,t)=>{const r=s();i.current.splice(e,0,we());const n=[...r.slice(0,e),t,...r.slice(e)];a(n)}),remove:Ee(e=>{const t=s();i.current.splice(e,1);const r=t.filter((t,r)=>r!==e);a(r)}),swap:Ee((e,t)=>{const r=s();[i.current[e],i.current[t]]=[i.current[t],i.current[e]];const n=[...r];[n[e],n[t]]=[n[t],n[e]],a(n)}),move:Ee((e,t)=>{const r=s(),[n]=i.current.splice(e,1);i.current.splice(t,0,n);const o=[...r],[u]=o.splice(e,1);o.splice(t,0,u),a(o)}),replace:Ee(e=>{i.current=e.map(()=>we()),a([...e])}),update:Ee((e,t)=>{const r=s();if(e<0||e>=r.length)return;const n=[...r];n[e]=t,a(n)})}}const xe=t.createContext(null),Te=xe.Provider;const _e=t.createContext(null),Ae=_e.Provider;const Le=n.forwardRef(({validate:e,eventToValue:t,initialValue:r,name:u,asProps:i,renderError:s,as:a,valueToProps:c,form:l,shouldUnregister:f,rules:d,validateDebounce:m,disabled:h,delayError:y,...v},p)=>{const g=n.useRef(null),[b,E]=n.useState(0),k=n.useCallback(e=>{g.current=e,function(e,t){"function"==typeof e?e(t):e&&(e.current=t)}(p,e)},[p]),{value:S,onChange:V,onBlur:O,error:w,form:C,name:x,disabled:T}=Ve({name:u,form:l,initialValue:r,shouldUnregister:f,rules:d,validateDebounce:m,delayError:y,disabled:h,validate:(...t)=>{const r=g.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=g.current;e&&"function"==typeof e.setCustomValidity&&("string"==typeof w?(e.setCustomValidity(w),e.reportValidity()):e.setCustomValidity(""))},[w]),n.useEffect(()=>{b>0&&g.current?.reportValidity()},[b]),n.useEffect(()=>o(C.emitter,"focusError",(e,t)=>{if(e!==x)return;const r=g.current;r&&"function"==typeof r.focus&&(r.focus(),t?.shouldSelect&&"function"==typeof r.select&&r.select())}),[C,x]);const A=t??(e=>e.target.value),L=x.replace(/["'[\],\s]+/g,"-").replace(/^-+|-+$/g,"")||"field";return n.createElement(n.Fragment,null,n.createElement(_,{"aria-invalid":!!w||void 0,"aria-describedby":w&&s?L:void 0,...v,name:x,onBlur:O,...i,...c?c(S):{value:S},disabled:T,onChange:e=>V(A(e)),ref:k}),w&&s?n.createElement("span",{id:L,role:"alert"},s(w,L)):null)}),Fe=n.forwardRef(({name:e,form:t,initialValue:r,shouldUnregister:o,validate:u,rules:i,validateDebounce:s,disabled:a,delayError:c,...l},f)=>{const{value:d,onChange:m,onBlur:h,error:y,name:v,disabled:p}=Ve({name:e,form:t,initialValue:r,shouldUnregister:o,validate:u,rules:i,validateDebounce:s,delayError:c,disabled:a});return n.createElement("input",{"aria-invalid":!!y||void 0,...l,name:v,onBlur:h,type:"checkbox",checked:!!d,disabled:p,onChange:e=>m(e.target.checked),ref:f})});function je(e,t){return e?Array.isArray(t)?t:[]:t??""}const De=n.forwardRef(({name:e,multiple:t,children:r,form:o,initialValue:u,shouldUnregister:i,validate:s,rules:a,validateDebounce:c,disabled:l,delayError:f,...d},m)=>{const{value:h,onChange:y,onBlur:v,error:p,name:g,disabled:b}=Ve({name:e,form:o,initialValue:u,shouldUnregister:i,validate:s,rules:a,validateDebounce:c,delayError:f,disabled:l});return n.createElement("select",{"aria-invalid":!!p||void 0,...d,name:g,onBlur:v,multiple:t,value:je(t,h),disabled:b,onChange:e=>y(t?Array.from(e.target.selectedOptions,e=>e.value):e.target.value),ref:m},r)});e.Checkbox=Fe,e.CheckboxGroupContext=_e,e.CheckboxGroupProvider=Ae,e.Field=Le,e.Form=function({form:e,initialValues:t,values:r,onSubmit:o,onValidSubmit:u,onInvalidSubmit:i,shouldFocusError:s,...a}){const c=fe({initialValues:t,values:r}),l=e||c,f=ee(l,{onSubmit:o,onValidSubmit:u,onInvalidSubmit:i,shouldFocusError:s});return n.createElement(Te,{value:l},n.createElement("form",{...a,noValidate:!0,onSubmit:f}))},e.FormContext=xe,e.FormProvider=Te,e.Select=De,e.VALIDATION_OUTCOME=y,e.clearErrors=A,e.createForm=v,e.createFormContext=function(){const e=t.createContext(null);return{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 Se(t,e)},useFieldArray:function(t){return Ce(t,e)}}},e.ensureValidate=z,e.getDirtyFields=M,e.getError=function(e,t){return k(e,m(t))},e.getErrorByPath=k,e.getErrors=O,e.getFieldErrors=function(e,t){return V(e,m(t))},e.getFieldErrorsByPath=V,e.getFieldState=function(e,t){const r=m(t),{initialValues:n,values:o,touched:u,validating:i}=e,a=o.get(r.key);return{value:b(e,r),error:k(e,r),errors:V(e,r),isDirty:o.has(r.key)&&s(n,r.value)!==a,isTouched:u.has(r.key),isValidating:i.has(r.key)}},e.getFirstError=w,e.getTouchedFields=R,e.getValue=g,e.getValueByPath=b,e.getValues=p,e.handleSubmit=ee,e.hasErrors=U,e.hasTouched=function(e,t){return F(e,m(t))},e.hasTouchedByPath=F,e.incrementSubmitCount=Q,e.isDirty=j,e.isTouched=function({touched:e}){return e.size>0},e.removeField=function(e,t){I(e,m(t))},e.removeFieldByPath=I,e.reset=function(e,t,r){const n=r?.keepDirtyValues?Object.keys(M(e)).map(t=>({key:t,value:g(e,t)})):[];e.initialValues=t,e.parsedValues=void 0,r?.keepErrors||A(e);const{emitter:o,touched:u,values:i,deleted:s,validating:a}=e;i.clear(),s.clear(),r?.keepTouched||u.clear(),a.clear(),r?.keepIsSubmitting||(e.isSubmitting=!1),r?.keepSubmitCount||(e.submitCount=0),r?.keepIsSubmitted||(e.isSubmitSuccessful=void 0),P(e);for(const{key:t,value:r}of n)E(e,m(t),r);h(o,"change"),h(o,"touched"),h(o,"validating"),h(o,"submitting"),h(o,"submitCount"),h(o,"submitSuccessful"),h(o,"reset")},e.resetField=function(e,t,r){const n=m(t),{emitter:o,values:u,touched:i,errors:c,deleted:l}=e;if(u.delete(n.key),void 0!==e.parsedValues){e.parsedValues=a(e.parsedValues,n.value);const t=s(e.initialValues,n.value);void 0!==t&&u.set(n.key,t)}r&&"value"in r&&u.set(n.key,r.value),$(l,n),h(o,"change"),!r?.keepTouched&&i.delete(n.key)&&h(o,"touched",n),!r?.keepErrors&&c.delete(n.key)&&h(o,"errors",n),P(e)},e.setDisabled=function(e,t){e.disabled=t,h(e.emitter,"disabled")},e.setError=T,e.setErrorByPath=_,e.setFocus=function(e,t,r){const{key:n}=m(t);r?h(e.emitter,"focusError",n,r):h(e.emitter,"focusError",n)},e.setInitialValues=q,e.setIsSubmitting=Y,e.setSubmitSuccessful=X,e.setTouched=function(e,t){L(e,m(t))},e.setTouchedByPath=L,e.setValidatingByPath=x,e.setValue=function(e,t,r,n){E(e,m(t),r,n)},e.setValueByPath=E,e.subscribe=function(e,t){const{name:r,event:n="change",scope:u="branch",callback:i}=t;if(void 0===r)return o(e.emitter,n,i);const s=(function(e){return Array.isArray(e)&&e.every(e=>"number"!=typeof e)}(r)?r:[r]).map(t=>{const r=m(t);return"errors"===n||"touched"===n?le(e.emitter,n,r.key,i):ce(e.emitter,n,r,u,i)});return 1===s.length?s[0]:()=>s.forEach(e=>e())},e.trigger=async function(e,t){const r=()=>d(e.emitter,"validating",()=>!e.validating.size,()=>!1);if(void 0===t){if(e.validators.forEach(e=>e()),await r(),e.validate){const t=await e.validate(p(e));W(e,t)}return!U(e)}const n="string"==typeof t||G(t)?[m(t).key]:t.map(e=>m(e).key);return n.forEach(t=>e.validators.get(t)?.()),await r(),n.every(t=>!e.errors.has(t))},e.unsetValidatingByPath=C,e.useCheckboxGroupContext=function(){const e=t.useContext(_e);if(!e)throw new Error("no group provided");return e},e.useDirtyFields=function(e){return me(e.emitter,"change",M.bind(null,e))},e.useError=function(e,t){return ve(e,m(t))?.message},e.useErrorByPath=ve,e.useField=Ve,e.useFieldArray=function(e){return Ce(e,xe)},e.useFieldErrors=function(e,t){return pe(e,m(t))},e.useFieldErrorsByPath=pe,e.useForm=fe,e.useFormContext=function(){const e=t.useContext(xe);if(!e)throw new Error("no form provided");return e},e.useHasErrors=function(e){return me(e.emitter,"errors",U.bind(null,e))},e.useIsDirty=function(e){return me(e.emitter,"change",j.bind(null,e))},e.useIsSubmitting=function(e){return me(e.emitter,"submitting",()=>e.isSubmitting)},e.useSubmitCount=function(e){return me(e.emitter,"submitCount",()=>e.submitCount)},e.useTouched=function(e,t){return ye(e,m(t))},e.useTouchedByPath=ye,e.useTouchedFields=function(e){return me(e.emitter,"touched",R.bind(null,e))},e.useValue=function(e,t){return he(e,m(t))},e.useValueByPath=he,e.useWatch=me,e.validate=K});
6
6
  //# sourceMappingURL=index.umd.min.js.map