UNPKG

effector-forms

Version:
3 lines (2 loc) 9.9 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("effector"),require("effector-react")):"function"==typeof define&&define.amd?define(["exports","effector","effector-react"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).EffectorForm={},e.effector,e.effectorReact)}(this,(function(e,r,i){"use strict";const s={store:function({init:e,domain:i,existing:s},o){return s||(i?i.store(e,{and:o,sid:"-efg263"}):r.createStore(e,{and:o,sid:"-dyefrw"}))},event:function({domain:e,existing:i}){return i||(e?e.event({sid:"-y6riru"}):r.createEvent({sid:"-y6rhv4"}))}};function o(e,i,o){var n,t,a,d,u,l,c,m,f,v,h,g;const $="function"==typeof i.init?i.init():i.init,p=s.store({domain:o,existing:null===(n=i.units)||void 0===n?void 0:n.$value,init:$},{and:{sid:`${e}-$value`},name:"$value",sid:"-qmuyz8"}),x=s.store({domain:o,existing:null===(t=i.units)||void 0===t?void 0:t.$errors,init:[]},{and:{sid:`${e}-$errors`},name:"$errors",sid:"-vpp9qr"}),V=x.map((e=>e[0]?e[0]:null)),E=s.store({domain:o,existing:null===(a=i.units)||void 0===a?void 0:a.$initValue,init:$},{and:{sid:`${e}-$initValue`},name:"$initValue",sid:"yr2fi7"}),y=s.store({domain:o,existing:null===(d=i.units)||void 0===d?void 0:d.$isTouched,init:!1},{and:{sid:`${e}-$touched`},name:"$touched",sid:"-q2zc60"}),b=r.combine({and:[p,E,(e,r)=>e!==r],or:{name:"$isDirty",sid:"cgx1r6"}}),T=s.event({domain:o,existing:null===(u=i.units)||void 0===u?void 0:u.onChange},{name:"onChange",sid:"fko8ie"}),F=s.event({domain:o,existing:null===(l=i.units)||void 0===l?void 0:l.onBlur},{name:"onBlur",sid:"-kwhocu"}),k=s.event({domain:o,existing:null===(c=i.units)||void 0===c?void 0:c.changed},{name:"changed",sid:"svcdu2"}),w=s.event({domain:o,existing:null===(m=i.units)||void 0===m?void 0:m.addError},{name:"addError",sid:"utax3x"}),j=s.event({domain:o,existing:null===(f=i.units)||void 0===f?void 0:f.validate},{name:"validate",sid:"-al4q5y"}),q=s.event({domain:o,existing:null===(v=i.units)||void 0===v?void 0:v.resetErrors},{name:"resetErrors",sid:"-8bnwk6"}),D=s.event({domain:o,existing:null===(h=i.units)||void 0===h?void 0:h.resetValue},{name:"resetValue",sid:"-5k4ef5"}),S=s.event({domain:o,existing:null===(g=i.units)||void 0===g?void 0:g.reset},{name:"reset",sid:"-t5gx88"}),U=V.map((e=>null===e)),O=V.map((e=>(null==e?void 0:e.errorText)||"")),B=r.combine({and:[{value:p,errors:x,firstError:V,isValid:U,isDirty:b,isTouched:y}],or:{name:"$field",sid:"-3lcsvv"}}),C={value:p,initValue:E,isValid:U,isDirty:b,touched:y,errors:x,firstError:V,errorText:O,onChange:T,onBlur:F,addError:w,validate:j,reset:S,resetErrors:q,resetValue:D};return{changed:k,name:e,$initValue:E,$value:p,$errors:x,$firstError:V,$errorText:O,$isValid:U,$isDirty:b,$isTouched:y,$touched:y,$field:B,onChange:T,onBlur:F,addError:w,validate:j,set:T,reset:S,resetErrors:q,resetValue:D,filter:i.filter,"@@unitShape":()=>C}}function n(e,i){const{form:s,field:o,fieldConfig:n}=e,t=n.rules||[],a=s.validateOn||["submit"],d=n.validateOn||[],{$value:u,$errors:l,onBlur:c,changed:m,addError:f,validate:v,resetErrors:h,resetValue:g,reset:$}=o,p="function"==typeof t?r.createStore([],{and:{sid:`${o.name}-$rulesSources`},name:"rulesSources",sid:"8mhplv"}):r.combine({and:[t.map((({source:e},i)=>{const s=`${o.name}-$rulesSources-${i}`;return e||r.createStore(null,{and:{sid:s},sid:"kjwg5z"})}))],or:{name:"rulesSources",sid:"93jc02"}}),x=(V=t,(e,r,i)=>{const s=[],o="function"==typeof V?V(e,r):V;for(let n=0;n<o.length;n++){const t=o[n],a=i?i[n]:null,d=t.validator(e,r,a);"boolean"!=typeof d||d||s.push({rule:t.name,errorText:t.errorText,value:e}),"object"!=typeof d||d.isValid||s.push({rule:t.name,errorText:d.errorText,value:e})}return s});var V;const E=[...a,...d],y=[];if(E.includes("submit")){const e=r.sample({and:[{source:r.combine({and:[{fieldValue:u,form:s.$values,rulesSources:p}],or:{name:"source",sid:"a7in27"}}),clock:s.submit}],or:{name:"validationTrigger",sid:"ag2jep"}});y.push(e)}E.includes("blur")&&y.push(r.sample({and:[{source:r.combine({and:[{fieldValue:u,form:s.$values,rulesSources:p}],or:{name:"source",sid:"pcyjof"}}),clock:c}],or:{sid:"-mjjw0q"}})),E.includes("change")&&y.push(r.sample({and:[{source:r.combine({and:[{fieldValue:u,form:s.$values,rulesSources:p}],or:{name:"source",sid:"-uzr82o"}}),clock:r.merge([m,g,s.resetValues],{name:"clock",sid:"mklqro"})}],or:{sid:"-7v5lsp"}})),y.push(r.sample({and:[{source:r.combine({and:[{fieldValue:u,form:s.$values,rulesSources:p}],or:{name:"source",sid:"-gsekud"}}),clock:v}],or:{sid:"6c71fm"}})),y.push(r.sample({and:[{source:r.combine({and:[{fieldValue:u,form:s.$values,rulesSources:p}],or:{name:"source",sid:"-323jeq"}}),clock:s.validate}],or:{sid:"a4k0l6"}}));const b=r.sample({and:[{source:u,clock:f,fn:(e,{rule:r,errorText:i})=>({rule:r,value:e,errorText:i})}],or:{name:"addErrorWithValue",sid:"symbs8"}}),T=r.sample({and:[{source:u,clock:s.addErrors,fn:(e,r)=>({value:e,newErrors:r})}],or:{name:"addErrorsWithValue",sid:"-6mh24c"}});l.on(y,((e,{form:r,fieldValue:i,rulesSources:s})=>x(i,r,s))).on(b,((e,r)=>[r,...e])).on(T,((e,{value:r,newErrors:i})=>{const s=[];for(const e of i)e.field===o.name&&s.push({value:r,rule:e.rule,errorText:e.errorText});return[...s,...e]})).reset(h,s.reset,$,s.resetErrors),E.includes("change")||l.reset(m)}function t({field:e,form:i}){const{$value:s,$initValue:o,$touched:n,onChange:t,changed:a,name:d,reset:u,resetValue:l,filter:c}=e,{setForm:m,setInitialForm:f,resetForm:v,resetTouched:h,resetValues:g}=i,$=r.sample({and:[{source:o,clock:r.merge([u,l,g,v],{name:"clock",sid:"3kodws"})}],or:{name:"resetValueWithInit",sid:"oge6qb"}});n.on(a,(()=>!0)).reset(u,v,h),r.guard({and:[{source:t,filter:c||(()=>!0),target:a}],or:{sid:"-kx8mil"}}),o.on(f,((e,r)=>r.hasOwnProperty(d)?r[d]:e)),s.on(a,((e,r)=>r)).on([m,f],((e,r)=>r.hasOwnProperty(d)?r[d]:e)).on($,((e,r)=>r))}function a(e){const{value:r,errors:s,firstError:o,isValid:n,isDirty:t,isTouched:a}=i.useUnit(e.$field);return{name:e.name,value:r,errors:s,firstError:o,isValid:n,isDirty:t,touched:a,isTouched:a,onChange:i.useUnit(e.onChange),onBlur:i.useUnit(e.onBlur),addError:i.useUnit(e.addError),validate:i.useUnit(e.validate),reset:i.useUnit(e.reset),set:i.useUnit(e.onChange),resetErrors:i.useUnit(e.resetErrors),hasError:()=>null!==o,errorText:e=>o?e&&e[o.rule]?e[o.rule]:o.errorText||"":""}}e.createForm=function(e){const{filter:i,domain:a,fields:d,validateOn:u,units:l}=e,c={},m=[],f=[];for(const e in d){if(!d.hasOwnProperty(e))continue;const r=o(e,d[e],a);c[e]=r,m.push(r.$isDirty),f.push(r.$touched)}const v=function(e){const i={};for(const r in e)e.hasOwnProperty(r)&&(i[r]=e[r].$value);return r.combine({and:[i],or:{sid:"39yu4w"}})}(c),h=function(e){const i=[];for(const r in e){if(!e.hasOwnProperty(r))continue;const{$firstError:s}=e[r];i.push(s)}return r.combine({and:[i],or:{name:"$firstErrors",sid:"-1vosn1"}}).map((e=>e.every((e=>null===e))))}(c),g=i?r.combine({and:[h,i,(e,r)=>e&&r],or:{name:"$isFormValid",sid:"j5pxai"}}):h,$=r.combine({and:[m],or:{name:"$isDirty",sid:"il8stq"}}).map((e=>e.some(Boolean))),p=r.combine({and:[f],or:{name:"$touched",sid:"2no1yv"}}).map((e=>e.some(Boolean))),x=r.combine({and:[{isValid:h,isDirty:$,touched:p}],or:{name:"$meta",sid:"yii6e7"}}),V=s.event({domain:a,existing:null==l?void 0:l.validate},{name:"validate",sid:"5z7ulc"}),E=s.event({domain:a,existing:null==l?void 0:l.submit},{name:"submitForm",sid:"-xys7v0"}),y=s.event({domain:a,existing:null==l?void 0:l.formValidated},{name:"formValidated",sid:"-2r221i"}),b=s.event({domain:a,existing:null==l?void 0:l.setInitialForm},{name:"setInitialForm",sid:"-q10ho7"}),T=s.event({domain:a,existing:null==l?void 0:l.setForm},{name:"setForm",sid:"l2bjv0"}),F=s.event({domain:a,existing:null==l?void 0:l.addErrors},{name:"addErrors",sid:"n5fjqj"}),k=s.event({domain:a,existing:null==l?void 0:l.reset},{name:"resetForm",sid:"pfltj4"}),w=s.event({domain:a,existing:null==l?void 0:l.resetValues},{name:"resetValues",sid:"-s67s76"}),j=s.event({domain:a,existing:null==l?void 0:l.resetErrors},{name:"resetErrors",sid:"hulqf7"}),q=s.event({domain:a,existing:null==l?void 0:l.resetTouched},{name:"resetTouched",sid:"2gwck3"}),D=r.sample({and:[{source:v,clock:E}],or:{name:"submitWithFormData",sid:"foyubg"}}),S=r.sample({and:[{source:v,clock:V}],or:{name:"validateWithFormData",sid:"-mn7k5o"}});for(const e in c){if(!c.hasOwnProperty(e))continue;const r=d[e],i=c[e];t({form:{setForm:T,setInitialForm:b,resetForm:k,resetTouched:q,resetValues:w},field:i}),n({form:{$values:v,submit:E,reset:k,addErrors:F,resetValues:w,resetErrors:j,validate:V,validateOn:u},fieldConfig:r,field:i})}r.guard({and:[{source:D,filter:g,target:y}],or:{sid:"4sls6r"}}),r.guard({and:[{source:S,filter:g,target:y}],or:{sid:"4vwjqx"}});const U={isValid:h,isDirty:$,touched:p,submit:E,reset:k,addErrors:F,validate:V,setForm:T,setInitialForm:b,resetTouched:q,resetValues:w,resetErrors:j,formValidated:y};return{fields:c,$values:v,$eachValid:h,$isValid:h,$isDirty:$,$touched:p,$meta:x,submit:E,validate:V,resetTouched:q,addErrors:F,reset:k,resetValues:w,resetErrors:j,setForm:T,setInitialForm:b,set:T,formValidated:y,"@@unitShape":()=>U}},e.useField=a,e.useForm=function(e){const r={},s={};for(const i in e.fields){if(!e.fields.hasOwnProperty(i))continue;const o=a(e.fields[i]);r[i]=o,s[i]=o.value}const{isValid:o,isDirty:n,touched:t}=i.useUnit(e.$meta);return{fields:r,values:s,hasError:e=>e?!!r[e]&&Boolean(r[e].firstError):!o,eachValid:o,isValid:o,isDirty:n,isTouched:t,touched:t,errors:e=>r[e]?r[e].errors:[],error:e=>r[e]?r[e].firstError:null,errorText:(e,i)=>{const s=r[e];return s&&s.firstError?i&&i[s.firstError.rule]?i[s.firstError.rule]:s.firstError.errorText||"":""},reset:i.useUnit(e.reset),submit:i.useUnit(e.submit),setForm:i.useUnit(e.setForm),set:i.useUnit(e.setForm),formValidated:i.useUnit(e.formValidated)}},Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=effector-forms.umd.js.map