feature-form 0.0.8 → 0.0.10

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.
package/README.md CHANGED
@@ -40,40 +40,60 @@ Provide a typesafe, straightforward, and lightweight form library designed to be
40
40
  ## 📖 Usage
41
41
 
42
42
  ```tsx
43
- import { createForm, zodValidator } from 'feature-form';
43
+ import { createForm } from 'feature-form';
44
+ import { zodValidator } from 'feature-form-validators/zod';
45
+ import { valibotValidator } from 'feature-form-validators/valibot';
44
46
  import { useForm } from 'feature-react/form';
45
47
  import * as z from 'zod';
48
+ import * as v from 'valibot';
46
49
 
47
- const $form = createForm({
50
+ interface TFormData {
51
+ name: string;
52
+ email: string;
53
+ }
54
+
55
+ const $form = createForm<TFormData>({
48
56
  fields: {
49
- firstName: {
57
+ name: {
50
58
  validator: zodValidator(z.string().min(2).max(10)),
51
59
  defaultValue: ''
60
+ },
61
+ email: {
62
+ validator: valibotValidator(v.pipe(v.string(), v.email())),
63
+ defaultValue: ''
52
64
  }
53
65
  },
54
66
  onValidSubmit: (data) => console.log('ValidSubmit', data),
55
67
  onInvalidSubmit: (errors) => console.log('InvalidSubmit', errors)
56
68
  });
57
69
 
58
- export const Component: React.FC = () => {
70
+ export const MyFormComponent: React.FC = () => {
59
71
  const { handleSubmit, register, status } = useForm($form);
60
72
 
61
73
  return (
62
74
  <form onSubmit={handleSubmit()}>
63
- <input {...register('firstName')} />
64
- <ErrorMessage status={status('firstName')} />
75
+ <div>
76
+ <label>Name</label>
77
+ <input {...register('name')} />
78
+ {status('name').error && <span>{status('name').error}</span>}
79
+ </div>
80
+ <div>
81
+ <label>Email</label>
82
+ <input {...register('email')} />
83
+ {status('email').error && <span>{status('email').error}</span>}
84
+ </div>
65
85
  <button type="submit">Submit</button>
66
86
  </form>
67
87
  );
68
88
  }
69
89
  ```
70
90
 
71
- ### Validators
91
+ ### Validators ([`feature-form-validators`](https://github.com/inbeta-group/monorepo/tree/develop/packages/feature-form-validators))
72
92
 
73
- Supports various validators such as [Zod](https://github.com/colinhacks/zod), [Yup](https://github.com/jquense/yup), [Valibot](https://github.com/fabian-hiller/valibot) and more.
93
+ `feature-form` supports various validators such as [Zod](https://github.com/colinhacks/zod), [Yup](https://github.com/jquense/yup), [Valibot](https://github.com/fabian-hiller/valibot) and more.
74
94
 
75
95
  ```ts
76
- import { zodValidator, valibotValidator } from 'feature-form-validators/zod';
96
+ import { zodValidator } from 'feature-form-validators/zod';
77
97
  import { valibotValidator } from 'feature-form-validators/valibot';
78
98
  import * as z from 'zod';
79
99
  import * as v from 'valibot';
@@ -1 +1 @@
1
- "use strict";var p=require("@ibg/utils"),_=require("./form-field/create-form-field.js");require("feature-state");var u=require("./types/form-field.js"),j=Object.defineProperty,O=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,E=Object.prototype.propertyIsEnumerable,F=(s,a,i)=>a in s?j(s,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[a]=i,P=(s,a)=>{for(var i in a||(a={}))w.call(a,i)&&F(s,i,a[i]);if(O)for(var i of O(a))E.call(a,i)&&F(s,i,a[i]);return s},v=(s,a,i)=>new Promise((V,g)=>{var S=o=>{try{c(i.next(o))}catch(d){g(d)}},y=o=>{try{c(i.throw(o))}catch(d){g(d)}},c=o=>o.done?V(o.value):Promise.resolve(o.value).then(S,y);c((i=i.apply(s,a)).next())});function k(s){const{fields:a,collectErrorMode:i="firstError",disabled:V=!1,validateMode:g=p.bitwiseFlag(u.FormFieldValidateMode.OnSubmit),reValidateMode:S=p.bitwiseFlag(u.FormFieldReValidateMode.OnBlur),onValidSubmit:y,onInvalidSubmit:c,notifyOnStatusChange:o=!0}=s,d={_:null,_features:["base"],_config:{collectErrorMode:i,disabled:V},_validSubmitCallbacks:y!=null?[y]:[],_invalidSubmitCallbacks:c!=null?[c]:[],fields:Object.fromEntries(Object.entries(a).map(([e,t])=>{var l,b,f,h;return[e,_.createFormField(t.defaultValue,{key:e,validator:t.validator,collectErrorMode:(l=t.collectErrorMode)!=null?l:i,validateMode:(b=t.validateMode)!=null?b:g,reValidateMode:(f=t.reValidateMode)!=null?f:S,editable:(h=t.editable)!=null?h:!0,notifyOnStatusChange:o})]})),isValid:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,_revalidate(e=!1){return v(this,null,function*(){const t=Object.values(this.fields);return e||(this.isValidating=!0,yield Promise.all(t.map(l=>l.validate())),this.isValidating=!1),this.isValid=t.every(l=>l.isValid()),this.isValid})},submit(){return v(this,arguments,function*(e={}){const{additionalData:t,assignToInitial:l=!1,onInvalidSubmit:b,onValidSubmit:f}=e;this.isSubmitting=!0;const h=[];for(const r of Object.values(this.fields))(r.isSubmitted&&r._config.reValidateMode.has(u.FormFieldReValidateMode.OnSubmit)||!r.isSubmitted&&r._config.validateMode.has(u.FormFieldValidateMode.OnSubmit))&&h.push(r.validate()),this.isSubmitting=!0;yield Promise.all(h);const m=this.getData();if(m!=null){const r=this._validSubmitCallbacks.map(n=>n(m,t));typeof f=="function"&&r.push(f(m,t)),yield Promise.all(r)}else{const r=this.getErrors(),n=this._invalidSubmitCallbacks.map(M=>M(r,t));typeof b=="function"&&n.push(b(r,t)),yield Promise.all(n)}for(const[r,n]of Object.entries(this.fields))m!=null&&Object.prototype.hasOwnProperty.call(m,r)&&l&&(n._intialValue=p.deepCopy(m[r])),n.isSubmitted=!0,n.isSubmitting=!1;return this.isSubmitted=!0,this.isSubmitting=!1,this.isValid})},validate(){return v(this,null,function*(){return this._revalidate(!1)})},getField(e){return this.fields[e]},getData(){if(!this.isValid)return null;const e={};for(const[t,l]of Object.entries(this.fields))e[t]=l.get();return e},getErrors(){const e={};for(const[t,l]of Object.entries(this.fields))switch(l.status._value.type){case"INVALID":e[t]=l.status._value.errors;break;case"UNVALIDATED":e[t]=[{code:"unvalidated",message:`${t.toString()} was not yet validated!`,path:t}];break}return e},reset(){for(const e of Object.values(this.fields))e.reset();this.isSubmitted=!1}};for(const e of Object.values(d.fields))e.listen(t=>v(this,[t],function*({source:l}){l==="set"&&(e.isSubmitted&&e._config.reValidateMode.has(u.FormFieldReValidateMode.OnChange)||!e.isSubmitted&&e._config.validateMode.has(u.FormFieldValidateMode.OnChange)||e._config.validateMode.has(u.FormFieldValidateMode.OnTouched)&&e.isTouched)&&(yield e.validate())}),{key:"form"}),e.status.listen(()=>v(this,null,function*(){yield d._revalidate(!0)}),{key:"form"});return d}function C(s,a){return P({validator:s},a)}exports.createForm=k,exports.fromValidator=C;
1
+ "use strict";var S=require("@ibg/utils"),_=require("./form-field/create-form-field.js");require("feature-state");var u=require("./types/form-field.js"),j=Object.defineProperty,O=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,E=Object.prototype.propertyIsEnumerable,F=(s,a,i)=>a in s?j(s,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[a]=i,P=(s,a)=>{for(var i in a||(a={}))w.call(a,i)&&F(s,i,a[i]);if(O)for(var i of O(a))E.call(a,i)&&F(s,i,a[i]);return s},v=(s,a,i)=>new Promise((y,p)=>{var V=o=>{try{c(i.next(o))}catch(d){p(d)}},g=o=>{try{c(i.throw(o))}catch(d){p(d)}},c=o=>o.done?y(o.value):Promise.resolve(o.value).then(V,g);c((i=i.apply(s,a)).next())});function k(s){const{fields:a,collectErrorMode:i="firstError",disabled:y=!1,validateMode:p=S.bitwiseFlag(u.FormFieldValidateMode.OnSubmit),reValidateMode:V=S.bitwiseFlag(u.FormFieldReValidateMode.OnBlur),onValidSubmit:g,onInvalidSubmit:c,notifyOnStatusChange:o=!0}=s,d={_:null,_features:["base"],_config:{collectErrorMode:i,disabled:y},_validSubmitCallbacks:g!=null?[g]:[],_invalidSubmitCallbacks:c!=null?[c]:[],fields:Object.fromEntries(Object.entries(a).map(([e,t])=>{var l,b,f,h;return[e,_.createFormField(t.defaultValue,{key:e,validationAdapter:t.validationAdapter,collectErrorMode:(l=t.collectErrorMode)!=null?l:i,validateMode:(b=t.validateMode)!=null?b:p,reValidateMode:(f=t.reValidateMode)!=null?f:V,editable:(h=t.editable)!=null?h:!0,notifyOnStatusChange:o})]})),isValid:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,_revalidate(e=!1){return v(this,null,function*(){const t=Object.values(this.fields);return e||(this.isValidating=!0,yield Promise.all(t.map(l=>l.validate())),this.isValidating=!1),this.isValid=t.every(l=>l.isValid()),this.isValid})},submit(){return v(this,arguments,function*(e={}){const{additionalData:t,assignToInitial:l=!1,onInvalidSubmit:b,onValidSubmit:f}=e;this.isSubmitting=!0;const h=[];for(const r of Object.values(this.fields))(r.isSubmitted&&r._config.reValidateMode.has(u.FormFieldReValidateMode.OnSubmit)||!r.isSubmitted&&r._config.validateMode.has(u.FormFieldValidateMode.OnSubmit))&&h.push(r.validate()),this.isSubmitting=!0;yield Promise.all(h);const m=this.getData();if(m!=null){const r=this._validSubmitCallbacks.map(n=>n(m,t));typeof f=="function"&&r.push(f(m,t)),yield Promise.all(r)}else{const r=this.getErrors(),n=this._invalidSubmitCallbacks.map(M=>M(r,t));typeof b=="function"&&n.push(b(r,t)),yield Promise.all(n)}for(const[r,n]of Object.entries(this.fields))m!=null&&Object.prototype.hasOwnProperty.call(m,r)&&l&&(n._intialValue=S.deepCopy(m[r])),n.isSubmitted=!0,n.isSubmitting=!1;return this.isSubmitted=!0,this.isSubmitting=!1,this.isValid})},validate(){return v(this,null,function*(){return this._revalidate(!1)})},getField(e){return this.fields[e]},getData(){if(!this.isValid)return null;const e={};for(const[t,l]of Object.entries(this.fields))e[t]=l.get();return e},getErrors(){const e={};for(const[t,l]of Object.entries(this.fields))switch(l.status._value.type){case"INVALID":e[t]=l.status._value.errors;break;case"UNVALIDATED":e[t]=[{code:"unvalidated",message:`${t.toString()} was not yet validated!`,path:t}];break}return e},reset(){for(const e of Object.values(this.fields))e.reset();this.isSubmitted=!1}};for(const e of Object.values(d.fields))e.listen(t=>v(this,[t],function*({source:l}){l==="set"&&(e.isSubmitted&&e._config.reValidateMode.has(u.FormFieldReValidateMode.OnChange)||!e.isSubmitted&&e._config.validateMode.has(u.FormFieldValidateMode.OnChange)||e._config.validateMode.has(u.FormFieldValidateMode.OnTouched)&&e.isTouched)&&(yield e.validate())}),{key:"form"}),e.status.listen(()=>v(this,null,function*(){yield d._revalidate(!0)}),{key:"form"});return d}function C(s,a){return P({validationAdapter:s},a)}exports.createForm=k,exports.fromValidationAdapter=C;
@@ -1 +1 @@
1
- "use strict";var F=require("feature-state"),h=require("@ibg/utils"),r=require("../types/form-field.js"),f=require("./create-status.js"),V=(d,l,i)=>new Promise((o,s)=>{var u=e=>{try{a(i.next(e))}catch(t){s(t)}},n=e=>{try{a(i.throw(e))}catch(t){s(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(u,n);a((i=i.apply(d,l)).next())});function M(d,l){const{key:i,validator:o,editable:s=!0,reValidateMode:u=h.bitwiseFlag(r.FormFieldReValidateMode.OnBlur),validateMode:n=h.bitwiseFlag(r.FormFieldValidateMode.OnSubmit),collectErrorMode:a="firstError",notifyOnStatusChange:e=!0}=l,t=F.createState(d),c=f.createStatus({type:"UNVALIDATED"});e&&c.listen(()=>{t._notify({additionalData:{source:"status"}})},{key:"form-field"});const v={_config:{editable:s,validateMode:n,reValidateMode:u,collectErrorMode:a},_intialValue:h.deepCopy(t._value),key:i,isTouched:!1,isSubmitted:!1,isSubmitting:!1,validator:o,status:c,validate(){return V(this,null,function*(){return this.validator.validate(this)})},isValid(){return this.status.get().type==="VALID"},blur(){(this.isSubmitted&&this._config.reValidateMode.has(r.FormFieldReValidateMode.OnBlur)||!this.isSubmitted&&(this._config.validateMode.has(r.FormFieldValidateMode.OnBlur)||this._config.validateMode.has(r.FormFieldValidateMode.OnTouched)&&!this.isTouched))&&this.validate(),this.isTouched=!0},reset(){this.set(this._intialValue),this.isTouched=!1,this.isSubmitted=!1,this.isSubmitting=!1,this.status.set({type:"UNVALIDATED"})}},m=Object.assign(t,v);return m._features.push("form-field"),m}exports.createFormField=M;
1
+ "use strict";var f=require("feature-state"),F=require("validation-adapter"),c=require("@ibg/utils"),r=require("../types/form-field.js"),V=require("./create-status.js"),M=require("./create-validator.js"),b=(s,l,i)=>new Promise((o,d)=>{var u=e=>{try{a(i.next(e))}catch(t){d(t)}},n=e=>{try{a(i.throw(e))}catch(t){d(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(u,n);a((i=i.apply(s,l)).next())});function y(s,l){const{key:i,validationAdapter:o=F.createValidationAdapter([]),editable:d=!0,reValidateMode:u=c.bitwiseFlag(r.FormFieldReValidateMode.OnBlur),validateMode:n=c.bitwiseFlag(r.FormFieldValidateMode.OnSubmit),collectErrorMode:a="firstError",notifyOnStatusChange:e=!0}=l,t=f.createState(s,{deferred:!1}),h=V.createStatus({type:"UNVALIDATED"});e&&h.listen(()=>{t._notify({additionalData:{source:"status"}})},{key:"form-field"});const m={_config:{editable:d,validateMode:n,reValidateMode:u,collectErrorMode:a},_intialValue:c.deepCopy(t._value),key:i,isTouched:!1,isSubmitted:!1,isSubmitting:!1,validator:M.createValidator(o),status:h,validate(){return b(this,null,function*(){return this.validator.validate(this)})},isValid(){return this.status.get().type==="VALID"},blur(){(this.isSubmitted&&this._config.reValidateMode.has(r.FormFieldReValidateMode.OnBlur)||!this.isSubmitted&&(this._config.validateMode.has(r.FormFieldValidateMode.OnBlur)||this._config.validateMode.has(r.FormFieldValidateMode.OnTouched)&&!this.isTouched))&&this.validate(),this.isTouched=!0},reset(){this.set(this._intialValue),this.isTouched=!1,this.isSubmitted=!1,this.isSubmitting=!1,this.status.set({type:"UNVALIDATED"})}},v=Object.assign(t,m);return v._features.push("form-field"),v}exports.createFormField=y;
@@ -1 +1 @@
1
- "use strict";var u=require("feature-state");function i(s){const a=u.createState(s),t=Object.assign(a,{_nextValue:void 0,registerNextError(e){var r;((r=this._nextValue)==null?void 0:r.type)==="INVALID"?this._nextValue.errors.push(e):this._nextValue={type:"INVALID",errors:[e]}}});return t._features.push("form-field-status"),t}exports.createStatus=i;
1
+ "use strict";var u=require("feature-state");function i(a){const s=u.createState(a,{deferred:!1}),e=Object.assign(s,{_nextValue:void 0,registerNextError(t){var r;((r=this._nextValue)==null?void 0:r.type)==="INVALID"?this._nextValue.errors.push(t):this._nextValue={type:"INVALID",errors:[t]}}});return e._features.push("form-field-status"),e}exports.createStatus=i;
@@ -0,0 +1 @@
1
+ "use strict";function t(r){return{config:{collectErrorMode:r._config.collectErrorMode,name:r.key},value:r.get(),hasError:()=>{var e;return((e=r.status._nextValue)==null?void 0:e.type)==="INVALID"},registerError(e){r.status.registerNextError({code:e.code,message:e.message,path:e.path})}}}exports.createValidateContext=t;
@@ -1 +1 @@
1
- "use strict";var d=require("@ibg/utils"),v=(a,t,i)=>new Promise((n,l)=>{var o=e=>{try{s(i.next(e))}catch(r){l(r)}},h=e=>{try{s(i.throw(e))}catch(r){l(r)}},s=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,h);s((i=i.apply(a,t)).next())});function u(a){return{_validationChain:a,isValidating:!1,push(t){this._validationChain.push(t)},append(t){return this._validationChain.push(...t._validationChain),this},validate(t){return v(this,null,function*(){var i;this.isValidating=!0;for(const n of this._validationChain)if(yield n.validate(t),t._config.collectErrorMode==="firstError"&&((i=t.status._nextValue)==null?void 0:i.type)==="INVALID")break;return t.status._nextValue==null?t.status.set({type:"VALID"}):t.status.set(t.status._nextValue),t.status._nextValue=void 0,this.isValidating=!1,t.status.get().type==="VALID"})},clone(){return u(d.deepCopy(this._validationChain))}}}exports.createValidator=u;
1
+ "use strict";var o=require("./create-validate-context.js"),V=(i,t,a)=>new Promise((n,l)=>{var u=e=>{try{s(a.next(e))}catch(r){l(r)}},d=e=>{try{s(a.throw(e))}catch(r){l(r)}},s=e=>e.done?n(e.value):Promise.resolve(e.value).then(u,d);s((a=a.apply(i,t)).next())});function c(i){return{_validationAdapter:i,isValidating:!1,validate(t){return V(this,null,function*(){const a=o.createValidateContext(t);return this.isValidating=!0,yield this._validationAdapter.validate(a),this.isValidating=!1,t.status._nextValue==null?t.status.set({type:"VALID"}):t.status.set(t.status._nextValue),t.status._nextValue=void 0,t.status.get().type==="VALID"})}}}exports.createValidator=c;
package/dist/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@ibg/utils"),r=require("./create-form.js"),t=require("./form-field/create-form-field.js"),i=require("./form-field/create-status.js"),o=require("./form-field/create-validator.js"),F=require("./form-field/is-form-field.js"),a=require("./types/form-field.js");Object.defineProperty(exports,"BitwiseFlag",{enumerable:!0,get:function(){return e.BitwiseFlag}}),Object.defineProperty(exports,"bitwiseFlag",{enumerable:!0,get:function(){return e.bitwiseFlag}}),exports.createForm=r.createForm,exports.fromValidator=r.fromValidator,exports.createFormField=t.createFormField,exports.createStatus=i.createStatus,exports.createValidator=o.createValidator,exports.isFormField=F.isFormField,exports.FormFieldReValidateMode=a.FormFieldReValidateMode,exports.FormFieldValidateMode=a.FormFieldValidateMode;
1
+ "use strict";var e=require("@ibg/utils"),a=require("validation-adapter"),r=require("./create-form.js"),i=require("./form-field/create-form-field.js"),d=require("./form-field/create-status.js"),o=require("./form-field/create-validator.js"),l=require("./form-field/is-form-field.js"),t=require("./types/form-field.js");Object.defineProperty(exports,"BitwiseFlag",{enumerable:!0,get:function(){return e.BitwiseFlag}}),Object.defineProperty(exports,"bitwiseFlag",{enumerable:!0,get:function(){return e.bitwiseFlag}}),Object.defineProperty(exports,"createValidationAdapter",{enumerable:!0,get:function(){return a.createValidationAdapter}}),exports.createForm=r.createForm,exports.fromValidationAdapter=r.fromValidationAdapter,exports.createFormField=i.createFormField,exports.createStatus=d.createStatus,exports.createValidator=o.createValidator,exports.isFormField=l.isFormField,exports.FormFieldReValidateMode=t.FormFieldReValidateMode,exports.FormFieldValidateMode=t.FormFieldValidateMode;
@@ -1 +1 @@
1
- import{bitwiseFlag as V,deepCopy as E}from"@ibg/utils";import{createFormField as F}from"./form-field/create-form-field.js";import"feature-state";import{FormFieldValidateMode as g,FormFieldReValidateMode as O}from"./types/form-field.js";var P=Object.defineProperty,_=Object.getOwnPropertySymbols,k=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,M=(r,a,i)=>a in r?P(r,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):r[a]=i,C=(r,a)=>{for(var i in a||(a={}))k.call(a,i)&&M(r,i,a[i]);if(_)for(var i of _(a))w.call(a,i)&&M(r,i,a[i]);return r},h=(r,a,i)=>new Promise((y,v)=>{var S=o=>{try{u(i.next(o))}catch(d){v(d)}},p=o=>{try{u(i.throw(o))}catch(d){v(d)}},u=o=>o.done?y(o.value):Promise.resolve(o.value).then(S,p);u((i=i.apply(r,a)).next())});function D(r){const{fields:a,collectErrorMode:i="firstError",disabled:y=!1,validateMode:v=V(g.OnSubmit),reValidateMode:S=V(O.OnBlur),onValidSubmit:p,onInvalidSubmit:u,notifyOnStatusChange:o=!0}=r,d={_:null,_features:["base"],_config:{collectErrorMode:i,disabled:y},_validSubmitCallbacks:p!=null?[p]:[],_invalidSubmitCallbacks:u!=null?[u]:[],fields:Object.fromEntries(Object.entries(a).map(([t,e])=>{var l,f,b,m;return[t,F(e.defaultValue,{key:t,validator:e.validator,collectErrorMode:(l=e.collectErrorMode)!=null?l:i,validateMode:(f=e.validateMode)!=null?f:v,reValidateMode:(b=e.reValidateMode)!=null?b:S,editable:(m=e.editable)!=null?m:!0,notifyOnStatusChange:o})]})),isValid:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,_revalidate(t=!1){return h(this,null,function*(){const e=Object.values(this.fields);return t||(this.isValidating=!0,yield Promise.all(e.map(l=>l.validate())),this.isValidating=!1),this.isValid=e.every(l=>l.isValid()),this.isValid})},submit(){return h(this,arguments,function*(t={}){const{additionalData:e,assignToInitial:l=!1,onInvalidSubmit:f,onValidSubmit:b}=t;this.isSubmitting=!0;const m=[];for(const s of Object.values(this.fields))(s.isSubmitted&&s._config.reValidateMode.has(O.OnSubmit)||!s.isSubmitted&&s._config.validateMode.has(g.OnSubmit))&&m.push(s.validate()),this.isSubmitting=!0;yield Promise.all(m);const c=this.getData();if(c!=null){const s=this._validSubmitCallbacks.map(n=>n(c,e));typeof b=="function"&&s.push(b(c,e)),yield Promise.all(s)}else{const s=this.getErrors(),n=this._invalidSubmitCallbacks.map(j=>j(s,e));typeof f=="function"&&n.push(f(s,e)),yield Promise.all(n)}for(const[s,n]of Object.entries(this.fields))c!=null&&Object.prototype.hasOwnProperty.call(c,s)&&l&&(n._intialValue=E(c[s])),n.isSubmitted=!0,n.isSubmitting=!1;return this.isSubmitted=!0,this.isSubmitting=!1,this.isValid})},validate(){return h(this,null,function*(){return this._revalidate(!1)})},getField(t){return this.fields[t]},getData(){if(!this.isValid)return null;const t={};for(const[e,l]of Object.entries(this.fields))t[e]=l.get();return t},getErrors(){const t={};for(const[e,l]of Object.entries(this.fields))switch(l.status._value.type){case"INVALID":t[e]=l.status._value.errors;break;case"UNVALIDATED":t[e]=[{code:"unvalidated",message:`${e.toString()} was not yet validated!`,path:e}];break}return t},reset(){for(const t of Object.values(this.fields))t.reset();this.isSubmitted=!1}};for(const t of Object.values(d.fields))t.listen(e=>h(this,[e],function*({source:l}){l==="set"&&(t.isSubmitted&&t._config.reValidateMode.has(O.OnChange)||!t.isSubmitted&&t._config.validateMode.has(g.OnChange)||t._config.validateMode.has(g.OnTouched)&&t.isTouched)&&(yield t.validate())}),{key:"form"}),t.status.listen(()=>h(this,null,function*(){yield d._revalidate(!0)}),{key:"form"});return d}function I(r,a){return C({validator:r},a)}export{D as createForm,I as fromValidator};
1
+ import{bitwiseFlag as V,deepCopy as E}from"@ibg/utils";import{createFormField as F}from"./form-field/create-form-field.js";import"feature-state";import{FormFieldValidateMode as g,FormFieldReValidateMode as O}from"./types/form-field.js";var P=Object.defineProperty,_=Object.getOwnPropertySymbols,k=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,M=(r,a,i)=>a in r?P(r,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):r[a]=i,C=(r,a)=>{for(var i in a||(a={}))k.call(a,i)&&M(r,i,a[i]);if(_)for(var i of _(a))w.call(a,i)&&M(r,i,a[i]);return r},h=(r,a,i)=>new Promise((y,v)=>{var S=o=>{try{u(i.next(o))}catch(d){v(d)}},p=o=>{try{u(i.throw(o))}catch(d){v(d)}},u=o=>o.done?y(o.value):Promise.resolve(o.value).then(S,p);u((i=i.apply(r,a)).next())});function D(r){const{fields:a,collectErrorMode:i="firstError",disabled:y=!1,validateMode:v=V(g.OnSubmit),reValidateMode:S=V(O.OnBlur),onValidSubmit:p,onInvalidSubmit:u,notifyOnStatusChange:o=!0}=r,d={_:null,_features:["base"],_config:{collectErrorMode:i,disabled:y},_validSubmitCallbacks:p!=null?[p]:[],_invalidSubmitCallbacks:u!=null?[u]:[],fields:Object.fromEntries(Object.entries(a).map(([t,e])=>{var l,f,b,m;return[t,F(e.defaultValue,{key:t,validationAdapter:e.validationAdapter,collectErrorMode:(l=e.collectErrorMode)!=null?l:i,validateMode:(f=e.validateMode)!=null?f:v,reValidateMode:(b=e.reValidateMode)!=null?b:S,editable:(m=e.editable)!=null?m:!0,notifyOnStatusChange:o})]})),isValid:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,_revalidate(t=!1){return h(this,null,function*(){const e=Object.values(this.fields);return t||(this.isValidating=!0,yield Promise.all(e.map(l=>l.validate())),this.isValidating=!1),this.isValid=e.every(l=>l.isValid()),this.isValid})},submit(){return h(this,arguments,function*(t={}){const{additionalData:e,assignToInitial:l=!1,onInvalidSubmit:f,onValidSubmit:b}=t;this.isSubmitting=!0;const m=[];for(const s of Object.values(this.fields))(s.isSubmitted&&s._config.reValidateMode.has(O.OnSubmit)||!s.isSubmitted&&s._config.validateMode.has(g.OnSubmit))&&m.push(s.validate()),this.isSubmitting=!0;yield Promise.all(m);const c=this.getData();if(c!=null){const s=this._validSubmitCallbacks.map(n=>n(c,e));typeof b=="function"&&s.push(b(c,e)),yield Promise.all(s)}else{const s=this.getErrors(),n=this._invalidSubmitCallbacks.map(j=>j(s,e));typeof f=="function"&&n.push(f(s,e)),yield Promise.all(n)}for(const[s,n]of Object.entries(this.fields))c!=null&&Object.prototype.hasOwnProperty.call(c,s)&&l&&(n._intialValue=E(c[s])),n.isSubmitted=!0,n.isSubmitting=!1;return this.isSubmitted=!0,this.isSubmitting=!1,this.isValid})},validate(){return h(this,null,function*(){return this._revalidate(!1)})},getField(t){return this.fields[t]},getData(){if(!this.isValid)return null;const t={};for(const[e,l]of Object.entries(this.fields))t[e]=l.get();return t},getErrors(){const t={};for(const[e,l]of Object.entries(this.fields))switch(l.status._value.type){case"INVALID":t[e]=l.status._value.errors;break;case"UNVALIDATED":t[e]=[{code:"unvalidated",message:`${e.toString()} was not yet validated!`,path:e}];break}return t},reset(){for(const t of Object.values(this.fields))t.reset();this.isSubmitted=!1}};for(const t of Object.values(d.fields))t.listen(e=>h(this,[e],function*({source:l}){l==="set"&&(t.isSubmitted&&t._config.reValidateMode.has(O.OnChange)||!t.isSubmitted&&t._config.validateMode.has(g.OnChange)||t._config.validateMode.has(g.OnTouched)&&t.isTouched)&&(yield t.validate())}),{key:"form"}),t.status.listen(()=>h(this,null,function*(){yield d._revalidate(!0)}),{key:"form"});return d}function A(r,a){return C({validationAdapter:r},a)}export{D as createForm,A as fromValidationAdapter};
@@ -1 +1 @@
1
- import{createState as p}from"feature-state";import{bitwiseFlag as m,deepCopy as b}from"@ibg/utils";import{FormFieldReValidateMode as f,FormFieldValidateMode as n}from"../types/form-field.js";import{createStatus as y}from"./create-status.js";var V=(o,r,i)=>new Promise((d,s)=>{var l=t=>{try{a(i.next(t))}catch(e){s(e)}},u=t=>{try{a(i.throw(t))}catch(e){s(e)}},a=t=>t.done?d(t.value):Promise.resolve(t.value).then(l,u);a((i=i.apply(o,r)).next())});function M(o,r){const{key:i,validator:d,editable:s=!0,reValidateMode:l=m(f.OnBlur),validateMode:u=m(n.OnSubmit),collectErrorMode:a="firstError",notifyOnStatusChange:t=!0}=r,e=p(o),h=y({type:"UNVALIDATED"});t&&h.listen(()=>{e._notify({additionalData:{source:"status"}})},{key:"form-field"});const v={_config:{editable:s,validateMode:u,reValidateMode:l,collectErrorMode:a},_intialValue:b(e._value),key:i,isTouched:!1,isSubmitted:!1,isSubmitting:!1,validator:d,status:h,validate(){return V(this,null,function*(){return this.validator.validate(this)})},isValid(){return this.status.get().type==="VALID"},blur(){(this.isSubmitted&&this._config.reValidateMode.has(f.OnBlur)||!this.isSubmitted&&(this._config.validateMode.has(n.OnBlur)||this._config.validateMode.has(n.OnTouched)&&!this.isTouched))&&this.validate(),this.isTouched=!0},reset(){this.set(this._intialValue),this.isTouched=!1,this.isSubmitted=!1,this.isSubmitting=!1,this.status.set({type:"UNVALIDATED"})}},c=Object.assign(e,v);return c._features.push("form-field"),c}export{M as createFormField};
1
+ import{createState as v}from"feature-state";import{createValidationAdapter as V}from"validation-adapter";import{bitwiseFlag as m,deepCopy as b}from"@ibg/utils";import{FormFieldReValidateMode as f,FormFieldValidateMode as n}from"../types/form-field.js";import{createStatus as y}from"./create-status.js";import{createValidator as M}from"./create-validator.js";var g=(o,s,i)=>new Promise((d,r)=>{var l=t=>{try{a(i.next(t))}catch(e){r(e)}},u=t=>{try{a(i.throw(t))}catch(e){r(e)}},a=t=>t.done?d(t.value):Promise.resolve(t.value).then(l,u);a((i=i.apply(o,s)).next())});function S(o,s){const{key:i,validationAdapter:d=V([]),editable:r=!0,reValidateMode:l=m(f.OnBlur),validateMode:u=m(n.OnSubmit),collectErrorMode:a="firstError",notifyOnStatusChange:t=!0}=s,e=v(o,{deferred:!1}),h=y({type:"UNVALIDATED"});t&&h.listen(()=>{e._notify({additionalData:{source:"status"}})},{key:"form-field"});const p={_config:{editable:r,validateMode:u,reValidateMode:l,collectErrorMode:a},_intialValue:b(e._value),key:i,isTouched:!1,isSubmitted:!1,isSubmitting:!1,validator:M(d),status:h,validate(){return g(this,null,function*(){return this.validator.validate(this)})},isValid(){return this.status.get().type==="VALID"},blur(){(this.isSubmitted&&this._config.reValidateMode.has(f.OnBlur)||!this.isSubmitted&&(this._config.validateMode.has(n.OnBlur)||this._config.validateMode.has(n.OnTouched)&&!this.isTouched))&&this.validate(),this.isTouched=!0},reset(){this.set(this._intialValue),this.isTouched=!1,this.isSubmitted=!1,this.isSubmitting=!1,this.status.set({type:"UNVALIDATED"})}},c=Object.assign(e,p);return c._features.push("form-field"),c}export{S as createFormField};
@@ -1 +1 @@
1
- import{createState as u}from"feature-state";function o(s){const a=u(s),t=Object.assign(a,{_nextValue:void 0,registerNextError(e){var r;((r=this._nextValue)==null?void 0:r.type)==="INVALID"?this._nextValue.errors.push(e):this._nextValue={type:"INVALID",errors:[e]}}});return t._features.push("form-field-status"),t}export{o as createStatus};
1
+ import{createState as u}from"feature-state";function o(s){const a=u(s,{deferred:!1}),e=Object.assign(a,{_nextValue:void 0,registerNextError(t){var r;((r=this._nextValue)==null?void 0:r.type)==="INVALID"?this._nextValue.errors.push(t):this._nextValue={type:"INVALID",errors:[t]}}});return e._features.push("form-field-status"),e}export{o as createStatus};
@@ -0,0 +1 @@
1
+ function t(r){return{config:{collectErrorMode:r._config.collectErrorMode,name:r.key},value:r.get(),hasError:()=>{var e;return((e=r.status._nextValue)==null?void 0:e.type)==="INVALID"},registerError(e){r.status.registerNextError({code:e.code,message:e.message,path:e.path})}}}export{t as createValidateContext};
@@ -1 +1 @@
1
- import{deepCopy as d}from"@ibg/utils";var v=(a,t,i)=>new Promise((n,l)=>{var u=e=>{try{s(i.next(e))}catch(r){l(r)}},h=e=>{try{s(i.throw(e))}catch(r){l(r)}},s=e=>e.done?n(e.value):Promise.resolve(e.value).then(u,h);s((i=i.apply(a,t)).next())});function o(a){return{_validationChain:a,isValidating:!1,push(t){this._validationChain.push(t)},append(t){return this._validationChain.push(...t._validationChain),this},validate(t){return v(this,null,function*(){var i;this.isValidating=!0;for(const n of this._validationChain)if(yield n.validate(t),t._config.collectErrorMode==="firstError"&&((i=t.status._nextValue)==null?void 0:i.type)==="INVALID")break;return t.status._nextValue==null?t.status.set({type:"VALID"}):t.status.set(t.status._nextValue),t.status._nextValue=void 0,this.isValidating=!1,t.status.get().type==="VALID"})},clone(){return o(d(this._validationChain))}}}export{o as createValidator};
1
+ import{createValidateContext as d}from"./create-validate-context.js";var V=(i,t,a)=>new Promise((r,n)=>{var u=e=>{try{s(a.next(e))}catch(l){n(l)}},o=e=>{try{s(a.throw(e))}catch(l){n(l)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(u,o);s((a=a.apply(i,t)).next())});function v(i){return{_validationAdapter:i,isValidating:!1,validate(t){return V(this,null,function*(){const a=d(t);return this.isValidating=!0,yield this._validationAdapter.validate(a),this.isValidating=!1,t.status._nextValue==null?t.status.set({type:"VALID"}):t.status.set(t.status._nextValue),t.status._nextValue=void 0,t.status.get().type==="VALID"})}}}export{v as createValidator};
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- import{BitwiseFlag as o,bitwiseFlag as t}from"@ibg/utils";import{createForm as i,fromValidator as m}from"./create-form.js";import{createFormField as d}from"./form-field/create-form-field.js";import{createStatus as f}from"./form-field/create-status.js";import{createValidator as x}from"./form-field/create-validator.js";import{isFormField as s}from"./form-field/is-form-field.js";import{FormFieldReValidateMode as g,FormFieldValidateMode as w}from"./types/form-field.js";export{o as BitwiseFlag,g as FormFieldReValidateMode,w as FormFieldValidateMode,t as bitwiseFlag,i as createForm,d as createFormField,f as createStatus,x as createValidator,m as fromValidator,s as isFormField};
1
+ import{BitwiseFlag as o,bitwiseFlag as t}from"@ibg/utils";import{createValidationAdapter as i}from"validation-adapter";import{createForm as d,fromValidationAdapter as l}from"./create-form.js";import{createFormField as p}from"./form-field/create-form-field.js";import{createStatus as x}from"./form-field/create-status.js";import{createValidator as V}from"./form-field/create-validator.js";import{isFormField as g}from"./form-field/is-form-field.js";import{FormFieldReValidateMode as w,FormFieldValidateMode as A}from"./types/form-field.js";export{o as BitwiseFlag,w as FormFieldReValidateMode,A as FormFieldValidateMode,t as bitwiseFlag,d as createForm,p as createFormField,x as createStatus,i as createValidationAdapter,V as createValidator,l as fromValidationAdapter,g as isFormField};
@@ -1,5 +1,5 @@
1
1
  import { type BitwiseFlag } from '@ibg/utils';
2
- import { FormFieldReValidateMode, FormFieldValidateMode, type TForm, type TFormConfig, type TFormData, type TFormFieldStateConfig, type TFormFieldValidator, type TInvalidSubmitCallback, type TValidSubmitCallback } from './types';
2
+ import { FormFieldReValidateMode, FormFieldValidateMode, type TForm, type TFormConfig, type TFormData, type TFormFieldStateConfig, type TFormFieldValidationAdapter, type TInvalidSubmitCallback, type TValidSubmitCallback } from './types';
3
3
  export declare function createForm<GFormData extends TFormData>(config: TCreateFormConfig<GFormData>): TForm<GFormData, ['base']>;
4
4
  export interface TCreateFormConfig<GFormData extends TFormData> extends Partial<TFormConfig> {
5
5
  /**
@@ -26,7 +26,7 @@ export type TCreateFormConfigFormFields<GFormData extends TFormData> = {
26
26
  };
27
27
  export interface TCreateFormConfigFormField<GValue> extends Partial<TFormFieldStateConfig> {
28
28
  defaultValue?: GValue;
29
- validator: TFormFieldValidator<GValue>;
29
+ validationAdapter?: TFormFieldValidationAdapter<GValue>;
30
30
  }
31
- export declare function fromValidator<GValue>(validator: TFormFieldValidator<GValue>, config: Omit<TCreateFormConfigFormField<GValue>, 'validator'>): TCreateFormConfigFormField<GValue>;
31
+ export declare function fromValidationAdapter<GValue>(validationAdapter: TFormFieldValidationAdapter<GValue>, config: Omit<TCreateFormConfigFormField<GValue>, 'validator'>): TCreateFormConfigFormField<GValue>;
32
32
  //# sourceMappingURL=create-form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-form.d.ts","sourceRoot":"","sources":["../../src/create-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,WAAW,EAAiB,MAAM,YAAY,CAAC;AAGpF,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,SAAS,EAEd,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAGxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,UAAU,CAAC,SAAS,SAAS,SAAS,EACrD,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAClC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAyM5B;AAED,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS,SAAS,CAAE,SAAQ,OAAO,CAAC,WAAW,CAAC;IAC3F;;OAEG;IACH,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAClD;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACtD;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,eAAe,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,2BAA2B,CAAC,SAAS,SAAS,SAAS,IAAI;KACrE,GAAG,IAAI,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACpE,CAAC;AAEF,MAAM,WAAW,0BAA0B,CAAC,MAAM,CAAE,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;CACvC;AAID,wBAAgB,aAAa,CAAC,MAAM,EACnC,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC,EACtC,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,GAC3D,0BAA0B,CAAC,MAAM,CAAC,CAEpC"}
1
+ {"version":3,"file":"create-form.d.ts","sourceRoot":"","sources":["../../src/create-form.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,SAAS,EAEd,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAGhC,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,UAAU,CAAC,SAAS,SAAS,SAAS,EACrD,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAClC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAwM5B;AAED,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS,SAAS,CAAE,SAAQ,OAAO,CAAC,WAAW,CAAC;IAC3F;;OAEG;IACH,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAClD;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACtD;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,eAAe,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,2BAA2B,CAAC,SAAS,SAAS,SAAS,IAAI;KACrE,GAAG,IAAI,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACpE,CAAC;AAEF,MAAM,WAAW,0BAA0B,CAAC,MAAM,CAAE,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC;CACxD;AAID,wBAAgB,qBAAqB,CAAC,MAAM,EAC3C,iBAAiB,EAAE,2BAA2B,CAAC,MAAM,CAAC,EACtD,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,GAC3D,0BAA0B,CAAC,MAAM,CAAC,CAEpC"}
@@ -1,8 +1,8 @@
1
- import { type TFormField, type TFormFieldStateConfig, type TFormFieldValidator } from '../types';
1
+ import { type TFormField, type TFormFieldStateConfig, type TFormFieldValidationAdapter } from '../types';
2
2
  export declare function createFormField<GValue>(initialValue: GValue | undefined, config: TCreateFormFieldConfig<GValue>): TFormField<GValue>;
3
3
  export interface TCreateFormFieldConfig<GValue> extends Partial<TFormFieldStateConfig> {
4
4
  key: string;
5
- validator: TFormFieldValidator<GValue>;
5
+ validationAdapter?: TFormFieldValidationAdapter<GValue>;
6
6
  notifyOnStatusChange?: boolean;
7
7
  }
8
8
  //# sourceMappingURL=create-form-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-form-field.d.ts","sourceRoot":"","sources":["../../../src/form-field/create-form-field.ts"],"names":[],"mappings":"AAGA,OAAO,EAGN,KAAK,UAAU,EACf,KAAK,qBAAqB,EAE1B,KAAK,mBAAmB,EACxB,MAAM,UAAU,CAAC;AAGlB,wBAAgB,eAAe,CAAC,MAAM,EACrC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,GACpC,UAAU,CAAC,MAAM,CAAC,CAyEpB;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,CAAE,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IACrF,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACvC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC/B"}
1
+ {"version":3,"file":"create-form-field.d.ts","sourceRoot":"","sources":["../../../src/form-field/create-form-field.ts"],"names":[],"mappings":"AAIA,OAAO,EAGN,KAAK,UAAU,EACf,KAAK,qBAAqB,EAE1B,KAAK,2BAA2B,EAChC,MAAM,UAAU,CAAC;AAIlB,wBAAgB,eAAe,CAAC,MAAM,EACrC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,GACpC,UAAU,CAAC,MAAM,CAAC,CAyEpB;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,CAAE,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IACrF,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACxD,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC/B"}
@@ -0,0 +1,3 @@
1
+ import { type TFormField, type TFormFieldValidateContext } from '../types';
2
+ export declare function createValidateContext<GValue>(formField: TFormField<GValue>): TFormFieldValidateContext<GValue>;
3
+ //# sourceMappingURL=create-validate-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-validate-context.d.ts","sourceRoot":"","sources":["../../../src/form-field/create-validate-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE3E,wBAAgB,qBAAqB,CAAC,MAAM,EAC3C,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,GAC3B,yBAAyB,CAAC,MAAM,CAAC,CAkBnC"}
@@ -1,3 +1,3 @@
1
- import { type TFormFieldValidationChain, type TFormFieldValidator } from '../types';
2
- export declare function createValidator<GValue>(validationChain: TFormFieldValidationChain<GValue>): TFormFieldValidator<GValue>;
1
+ import { type TFormFieldValidationAdapter, type TFormFieldValidator } from '../types';
2
+ export declare function createValidator<GValue>(validationAdapter: TFormFieldValidationAdapter<GValue>): TFormFieldValidator<GValue>;
3
3
  //# sourceMappingURL=create-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-validator.d.ts","sourceRoot":"","sources":["../../../src/form-field/create-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpF,wBAAgB,eAAe,CAAC,MAAM,EACrC,eAAe,EAAE,yBAAyB,CAAC,MAAM,CAAC,GAChD,mBAAmB,CAAC,MAAM,CAAC,CAwC7B"}
1
+ {"version":3,"file":"create-validator.d.ts","sourceRoot":"","sources":["../../../src/form-field/create-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,2BAA2B,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGtF,wBAAgB,eAAe,CAAC,MAAM,EACrC,iBAAiB,EAAE,2BAA2B,CAAC,MAAM,CAAC,GACpD,mBAAmB,CAAC,MAAM,CAAC,CAuB7B"}
@@ -1,5 +1,6 @@
1
1
  import type { TFormFieldStateFeature, TFormFielStatusStateFeature } from './types';
2
2
  export { BitwiseFlag, bitwiseFlag } from '@ibg/utils';
3
+ export { createValidationAdapter } from 'validation-adapter';
3
4
  export * from './create-form';
4
5
  export * from './form-field';
5
6
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAExB,OAAO,QAAQ,eAAe,CAAC;IAC9B,UAAU,mBAAmB,CAAC,MAAM;QACnC,YAAY,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC7C,mBAAmB,EAAE,2BAA2B,CAAC;KACjD;CACD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAExB,OAAO,QAAQ,eAAe,CAAC;IAC9B,UAAU,mBAAmB,CAAC,MAAM;QACnC,YAAY,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC7C,mBAAmB,EAAE,2BAA2B,CAAC;KACjD;CACD"}
@@ -1,4 +1,4 @@
1
- import type { TUnionToIntersection } from '@ibg/utils';
1
+ import type { TUnionToIntersection } from '@ibg/types/utils';
2
2
  import { type TFormData } from './form';
3
3
  export type TFeatures<GFormData extends TFormData = TFormData> = {
4
4
  base: {
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../../src/types/features.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS,IAAI;IAChE,IAAI,EAAE;QAAE,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;CAClB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAInC,MAAM,WAAW,mBAAmB,CAAC,SAAS;CAAI;AAElD,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS,IAAI,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;AAE/F,MAAM,MAAM,qBAAqB,CAChC,SAAS,SAAS,SAAS,EAC3B,oBAAoB,SAAS,YAAY,EAAE,IACxC;KACF,CAAC,IAAI,oBAAoB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,eAAe,CAC1B,SAAS,SAAS,SAAS,EAC3B,oBAAoB,SAAS,YAAY,EAAE,EAC3C,uBAAuB,SAAS,qBAAqB,CACpD,SAAS,EACT,oBAAoB,CACpB,GAAG,qBAAqB,CAAC,SAAS,EAAE,oBAAoB,CAAC,IACvD,oBAAoB,CAAC,uBAAuB,CAAC,MAAM,uBAAuB,CAAC,CAAC,CAAC;AAEjF,MAAM,MAAM,gBAAgB,CAC3B,YAAY,SAAS,YAAY,EAAE,EACnC,qBAAqB,SAAS,YAAY,EAAE,IAE5C,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,GACvE,YAAY,GACZ,YAAY,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../../src/types/features.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS,IAAI;IAChE,IAAI,EAAE;QAAE,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;CAClB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAInC,MAAM,WAAW,mBAAmB,CAAC,SAAS;CAAI;AAElD,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS,IAAI,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;AAE/F,MAAM,MAAM,qBAAqB,CAChC,SAAS,SAAS,SAAS,EAC3B,oBAAoB,SAAS,YAAY,EAAE,IACxC;KACF,CAAC,IAAI,oBAAoB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,eAAe,CAC1B,SAAS,SAAS,SAAS,EAC3B,oBAAoB,SAAS,YAAY,EAAE,EAC3C,uBAAuB,SAAS,qBAAqB,CACpD,SAAS,EACT,oBAAoB,CACpB,GAAG,qBAAqB,CAAC,SAAS,EAAE,oBAAoB,CAAC,IACvD,oBAAoB,CAAC,uBAAuB,CAAC,MAAM,uBAAuB,CAAC,CAAC,CAAC;AAEjF,MAAM,MAAM,gBAAgB,CAC3B,YAAY,SAAS,YAAY,EAAE,EACnC,qBAAqB,SAAS,YAAY,EAAE,IAE5C,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,GACvE,YAAY,GACZ,YAAY,GAAG,qBAAqB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type TState } from 'feature-state';
2
+ import { type TBaseValidateContext, type TCollectErrorMode, type TValidationAdapter } from 'validation-adapter';
2
3
  import { type BitwiseFlag } from '@ibg/utils';
3
- import { type TCollectErrorMode } from './form';
4
4
  export type TFormField<GValue> = TState<GValue | undefined, ['base', 'form-field']>;
5
5
  export interface TFormFieldStateFeature<GValue> {
6
6
  _config: TFormFieldStateConfig;
@@ -60,18 +60,11 @@ export interface TInvalidFormFieldError {
60
60
  message?: string;
61
61
  path?: string;
62
62
  }
63
- export type TValidateFormFieldFunction<GValue> = (formField: TFormField<GValue>) => Promise<void> | void;
64
- export interface TFormFieldValidationLink<GValue> {
65
- key: string;
66
- validate: TValidateFormFieldFunction<GValue>;
67
- }
68
- export type TFormFieldValidationChain<GValue> = TFormFieldValidationLink<GValue>[];
69
63
  export interface TFormFieldValidator<GValue> {
70
- _validationChain: TFormFieldValidationChain<GValue>;
64
+ _validationAdapter: TFormFieldValidationAdapter<GValue>;
71
65
  isValidating: boolean;
72
66
  validate: (formField: TFormField<GValue>) => Promise<boolean>;
73
- append: (validator: TFormFieldValidator<GValue>) => TFormFieldValidator<GValue>;
74
- clone: () => TFormFieldValidator<GValue>;
75
- push: (...validateFunctions: TFormFieldValidationLink<GValue>[]) => void;
76
67
  }
68
+ export type TFormFieldValidationAdapter<GValue> = TValidationAdapter<GValue, TFormFieldValidateContext<GValue>>;
69
+ export type TFormFieldValidateContext<GValue> = TBaseValidateContext<GValue>;
77
70
  //# sourceMappingURL=form-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../../src/types/form-field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../../src/types/form-field.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type TCollectErrorMode } from 'validation-adapter';
1
2
  import { type TFeatureKeys, type TSelectFeatures } from './features';
2
3
  import { type TFormField, type TFormFieldValidator, type TInvalidFormFieldError } from './form-field';
3
4
  export type TForm<GFormData extends TFormData, GSelectedFeatureKeys extends TFeatureKeys[]> = {
@@ -50,5 +51,4 @@ export interface TFormConfig {
50
51
  */
51
52
  collectErrorMode: TCollectErrorMode;
52
53
  }
53
- export type TCollectErrorMode = 'firstError' | 'all';
54
54
  //# sourceMappingURL=form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/types/form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/types/form.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "feature-form",
3
3
  "description": "Straightforward, typesafe, and feature-based form library for ReactJs",
4
- "version": "0.0.8",
4
+ "version": "0.0.10",
5
5
  "private": false,
6
6
  "source": "./src/index.ts",
7
7
  "main": "./dist/cjs/index.js",
@@ -19,12 +19,14 @@
19
19
  },
20
20
  "homepage": "https://inbeta.group/?source=github",
21
21
  "dependencies": {
22
- "@ibg/utils": "0.0.8",
23
- "feature-state": "0.0.13"
22
+ "@ibg/utils": "0.0.10",
23
+ "feature-state": "0.0.15",
24
+ "validation-adapter": "0.0.3"
24
25
  },
25
26
  "devDependencies": {
26
27
  "@types/node": "^20.14.1",
27
- "@ibg/config": "0.0.12"
28
+ "@ibg/config": "0.0.13",
29
+ "@ibg/types": "0.0.2"
28
30
  },
29
31
  "files": [
30
32
  "dist",
@@ -32,12 +34,7 @@
32
34
  ],
33
35
  "size-limit": [
34
36
  {
35
- "path": "dist/esm/index.js",
36
- "ignore": [
37
- "zod",
38
- "yup",
39
- "valibot"
40
- ]
37
+ "path": "dist/esm/index.js"
41
38
  }
42
39
  ],
43
40
  "scripts": {