@bolttech/form-engine 0.2.2 → 0.2.3

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/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./types.js"),r=require("./asFormField-18e1d3ab.js");require("react/jsx-runtime"),require("react"),require("credit-card-type"),Object.defineProperty(exports,"TAvailableHooks",{enumerable:!0,get:function(){return e.TAvailableHooks}}),exports.ALL_NAMESPACE_EVENTS=r.ALL_NAMESPACE_EVENTS,exports.BUILD_EVENT=r.BUILD_EVENT,exports.CoreEvents=r.CoreEvents,exports.Form=r.SchemaGuard,exports.FormProvider=r.FormProvider,exports.asFormField=r.asFormField,exports.useForm=r.useForm;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./types.js"),r=require("./asFormField-7bfeac1c.js");require("react"),require("react/jsx-runtime"),require("credit-card-type"),Object.defineProperty(exports,"TAvailableHooks",{enumerable:!0,get:function(){return e.TAvailableHooks}}),exports.ALL_NAMESPACE_EVENTS=r.ALL_NAMESPACE_EVENTS,exports.BUILD_EVENT=r.BUILD_EVENT,exports.CoreEvents=r.CoreEvents,exports.Form=r.SchemaGuard,exports.FormProvider=r.FormProvider,exports.asFormField=r.asFormField,exports.useForm=r.useForm;
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bolttech/form-engine",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "A form engine based on form events for react projects",
5
5
  "type": "commonjs",
6
6
  "exports": {
package/react.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./asFormField-18e1d3ab.js");require("react/jsx-runtime"),require("react"),require("./types.js"),require("credit-card-type"),exports.Form=e.SchemaGuard,exports.FormProvider=e.FormProvider,exports.asFormField=e.asFormField,exports.useForm=e.useForm;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./asFormField-7bfeac1c.js"),r=require("react");require("./types.js"),require("react/jsx-runtime"),require("credit-card-type");exports.Form=e.SchemaGuard,exports.FormProvider=e.FormProvider,exports.asFormField=e.asFormField,exports.useForm=e.useForm,exports.useFormGroup=({group:s,onData:t,onSubmit:o,ids:a=[]})=>{const[c,i]=r.useState(s?e.getGroupFormsIds(s):a),n=r.useCallback((()=>{const r=c.reduce(((r,s)=>Object.assign(Object.assign({},r),{[s]:e.getFormInstance(s).formData})),{});t&&t(r)}),[t]),u=r=>c.reduce(((s,t)=>(null==r?void 0:r.aggregate)?Object.keys(s).reduce(((o,a)=>Object.assign(Object.assign({},o),{[a]:Object.assign(Object.assign({},s[a]),e.getFormInstance(t,r).formData[a])})),{}):Object.assign(Object.assign({},s),{[t]:e.getFormInstance(t,r).formData})),{formatted:{},erroredFields:{},fields:{},form:{},predictableErroredFields:{},filteredFields:{}});r.useEffect((()=>{!c.length&&s&&i(e.getGroupFormsIds(s))}),[c]),r.useEffect((()=>{c.map((r=>e.getFormInstance(r).subscribe(e.ALL_NAMESPACE_EVENTS(e.CoreEvents.ON_FIELD_CHANGE),n)))}),[t,c]),r.useEffect((()=>{c.map((r=>e.getFormInstance(r).subscribe(e.ALL_NAMESPACE_EVENTS(e.CoreEvents.ON_FIELD_REHYDRATE),n)))}),[t,c]),r.useEffect((()=>{c.map((r=>e.getFormInstance(r).subscribe(e.CoreEvents.ON_FORM_SUBMIT,(()=>o&&o(u({}))))))}),[o,c]);return{submitForm:()=>c.map((r=>e.getFormInstance(r).publish(e.CoreEvents.ON_FORM_SUBMIT))),formData:u}};
2
2
  //# sourceMappingURL=react.js.map
package/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"react.js","sources":["../../../libs/form-engine/src/adapters/react/useFormGroup.tsx"],"sourcesContent":["import { useEffect, useCallback, useState } from 'react';\n\nimport { TChildrenOptions, TFormValues } from '@react/types';\n\nimport { CoreEvents, ALL_NAMESPACE_EVENTS } from '@core';\nimport { getFormInstance, getGroupFormsIds } from '@core/managers';\n\ntype TProps = {\n ids?: string[];\n group?: string;\n onData?(data: Record<string, TFormValues>): void;\n onSubmit?(data: Record<string, TFormValues>): void;\n};\n\ntype THookReturn = {\n submitForm(): void;\n formData(\n opts?: TChildrenOptions & { aggregate?: boolean },\n ): Record<string, TFormValues>;\n};\n\nconst useFormGroup = ({\n group,\n onData,\n onSubmit,\n ids = [],\n}: TProps): THookReturn => {\n const [formIds, setFormIds] = useState(group ? getGroupFormsIds(group) : ids);\n\n const onDataChange = useCallback(() => {\n const data = formIds.reduce(\n (acc, formId) => ({\n ...acc,\n [formId]: getFormInstance(formId).formData,\n }),\n {},\n );\n\n onData && onData(data);\n }, [onData]);\n\n const extractFormsData = (opts) => {\n return formIds.reduce(\n (acc, formId) => {\n if (opts?.aggregate) {\n return Object.keys(acc).reduce(\n (innerAcc, key) => ({\n ...innerAcc,\n [key]: {\n ...acc[key],\n ...getFormInstance(formId, opts).formData[key],\n },\n }),\n {},\n );\n }\n\n return { ...acc, [formId]: getFormInstance(formId, opts).formData };\n },\n {\n formatted: {},\n erroredFields: {},\n fields: {},\n form: {},\n predictableErroredFields: {},\n filteredFields: {},\n } as TFormValues,\n );\n };\n\n useEffect(() => {\n if (formIds.length || !group) return;\n setFormIds(getGroupFormsIds(group));\n }, [formIds]);\n\n useEffect(() => {\n formIds.map((formId) =>\n getFormInstance(formId).subscribe(\n ALL_NAMESPACE_EVENTS(CoreEvents.ON_FIELD_CHANGE),\n onDataChange,\n ),\n );\n }, [onData, formIds]);\n\n useEffect(() => {\n formIds.map((formId) =>\n getFormInstance(formId).subscribe(\n ALL_NAMESPACE_EVENTS(CoreEvents.ON_FIELD_REHYDRATE),\n onDataChange,\n ),\n );\n }, [onData, formIds]);\n\n useEffect(() => {\n formIds.map((formId) =>\n getFormInstance(formId).subscribe(\n CoreEvents.ON_FORM_SUBMIT,\n () => onSubmit && onSubmit(extractFormsData({})),\n ),\n );\n }, [onSubmit, formIds]);\n\n const submitForm = () =>\n formIds.map((formId) =>\n getFormInstance(formId).publish(CoreEvents.ON_FORM_SUBMIT),\n );\n\n return {\n submitForm,\n formData: extractFormsData,\n };\n};\n\nexport { useFormGroup };\n"],"names":["useFormGroup","group","onData","onSubmit","ids","formIds","setFormIds","useState","getGroupFormsIds","onDataChange","useCallback","data","reduce","acc","formId","Object","assign","getFormInstance","formData","extractFormsData","opts","aggregate","keys","innerAcc","key","formatted","erroredFields","fields","form","predictableErroredFields","filteredFields","useEffect","length","map","subscribe","ALL_NAMESPACE_EVENTS","CoreEvents","ON_FIELD_CHANGE","ON_FIELD_REHYDRATE","ON_FORM_SUBMIT","submitForm","publish"],"mappings":"iWAqBqBA,EACnBC,QACAC,SACAC,WACAC,MAAM,OAEN,MAAOC,EAASC,GAAcC,EAAQA,SAACN,EAAQO,mBAAiBP,GAASG,GAEnEK,EAAeC,EAAAA,aAAY,KAC/B,MAAMC,EAAON,EAAQO,QACnB,CAACC,EAAKC,IACDC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAH,GACH,CAAAC,CAACA,GAASG,EAAAA,gBAAgBH,GAAQI,YAEpC,CAAE,GAGJhB,GAAUA,EAAOS,EAAK,GACrB,CAACT,IAEEiB,EAAoBC,GACjBf,EAAQO,QACb,CAACC,EAAKC,KACAM,eAAAA,EAAMC,WACDN,OAAOO,KAAKT,GAAKD,QACtB,CAACW,EAAUC,IACNT,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAO,IACHC,CAACA,GACIT,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAH,EAAIW,IACJP,EAAeA,gBAACH,EAAQM,GAAMF,SAASM,OAG9C,CAAE,GAINT,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAYH,GAAG,CAAEC,CAACA,GAASG,EAAeA,gBAACH,EAAQM,GAAMF,YAE3D,CACEO,UAAW,CAAE,EACbC,cAAe,CAAE,EACjBC,OAAQ,CAAE,EACVC,KAAM,CAAE,EACRC,yBAA0B,CAAE,EAC5BC,eAAgB,CAAE,IAKxBC,EAAAA,WAAU,MACJ1B,EAAQ2B,QAAW/B,GACvBK,EAAWE,EAAAA,iBAAiBP,GAAO,GAClC,CAACI,IAEJ0B,EAAAA,WAAU,KACR1B,EAAQ4B,KAAKnB,GACXG,EAAAA,gBAAgBH,GAAQoB,UACtBC,EAAAA,qBAAqBC,EAAAA,WAAWC,iBAChC5B,IAEH,GACA,CAACP,EAAQG,IAEZ0B,EAAAA,WAAU,KACR1B,EAAQ4B,KAAKnB,GACXG,EAAAA,gBAAgBH,GAAQoB,UACtBC,EAAAA,qBAAqBC,EAAAA,WAAWE,oBAChC7B,IAEH,GACA,CAACP,EAAQG,IAEZ0B,EAAAA,WAAU,KACR1B,EAAQ4B,KAAKnB,GACXG,EAAeA,gBAACH,GAAQoB,UACtBE,EAAAA,WAAWG,gBACX,IAAMpC,GAAYA,EAASgB,EAAiB,CAAE,OAEjD,GACA,CAAChB,EAAUE,IAOd,MAAO,CACLmC,WANiBA,IACjBnC,EAAQ4B,KAAKnB,GACXG,EAAAA,gBAAgBH,GAAQ2B,QAAQL,aAAWG,kBAK7CrB,SAAUC,EACX"}
@@ -1,6 +1,7 @@
1
1
  import Form from './Form';
2
- import useForm from '@react/useForm';
3
- import asFormField from '@react/asFormField';
4
- export type { TChildWrapperProps, TContext, TFormProps, TFormRefActions, TMapper, TProvider, } from '@react/types';
5
- export { FormProvider } from '@react/context';
6
- export { Form, useForm, asFormField };
2
+ import useForm from './useForm';
3
+ import { useFormGroup } from './useFormGroup';
4
+ import asFormField from './asFormField';
5
+ export type { TChildWrapperProps, TContext, TFormProps, TFormRefActions, TMapper, TProvider, } from './types';
6
+ export { FormProvider } from './context';
7
+ export { Form, useForm, useFormGroup, asFormField };