@ram_28/kf-ai-sdk 2.0.12 → 2.0.14
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/dist/api/client.d.ts.map +1 -1
- package/dist/api.cjs +1 -1
- package/dist/api.mjs +2 -2
- package/dist/attachment-constants-B5jlqoKI.cjs +1 -0
- package/dist/attachment-constants-C2UHWxmp.js +63 -0
- package/dist/auth.cjs +1 -1
- package/dist/auth.mjs +1 -1
- package/dist/bdo/core/types.d.ts +4 -0
- package/dist/bdo/core/types.d.ts.map +1 -1
- package/dist/bdo/fields/NumberField.d.ts.map +1 -1
- package/dist/bdo/fields/ReferenceField.d.ts +3 -2
- package/dist/bdo/fields/ReferenceField.d.ts.map +1 -1
- package/dist/bdo/fields/SelectField.d.ts +1 -1
- package/dist/bdo/fields/SelectField.d.ts.map +1 -1
- package/dist/bdo/fields/UserField.d.ts +5 -0
- package/dist/bdo/fields/UserField.d.ts.map +1 -1
- package/dist/bdo.cjs +1 -1
- package/dist/bdo.mjs +107 -153
- package/dist/client-DnO2KKrw.cjs +1 -0
- package/dist/{client-CMERmrC-.js → client-iQTqFDNI.js} +34 -30
- package/dist/components/hooks/useForm/createItemProxy.d.ts +4 -0
- package/dist/components/hooks/useForm/createItemProxy.d.ts.map +1 -1
- package/dist/components/hooks/useForm/createResolver.d.ts.map +1 -1
- package/dist/components/hooks/useForm/useForm.d.ts +1 -0
- package/dist/components/hooks/useForm/useForm.d.ts.map +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.mjs +368 -203
- package/dist/{metadata-BfJtHz84.cjs → metadata-DgLSJkF5.cjs} +1 -1
- package/dist/{metadata-CwAo6a8e.js → metadata-DpfI3zRN.js} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.mjs +1 -1
- package/dist/workflow/types.d.ts +3 -2
- package/dist/workflow/types.d.ts.map +1 -1
- package/dist/workflow.cjs +1 -1
- package/dist/workflow.d.ts +0 -2
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.mjs +204 -274
- package/dist/workflow.types.d.ts +0 -1
- package/dist/workflow.types.d.ts.map +1 -1
- package/docs/api.md +45 -253
- package/docs/bdo.md +130 -711
- package/docs/useAuth.md +42 -104
- package/docs/useFilter.md +117 -1591
- package/docs/useForm.md +266 -861
- package/docs/useTable.md +255 -1096
- package/docs/workflow.md +10 -155
- package/package.json +1 -1
- package/sdk/api/client.ts +18 -4
- package/sdk/bdo/core/types.ts +1 -0
- package/sdk/bdo/fields/NumberField.ts +2 -1
- package/sdk/bdo/fields/ReferenceField.ts +4 -3
- package/sdk/bdo/fields/SelectField.ts +2 -2
- package/sdk/bdo/fields/UserField.ts +14 -0
- package/sdk/components/hooks/useForm/createItemProxy.ts +221 -4
- package/sdk/components/hooks/useForm/createResolver.ts +16 -1
- package/sdk/components/hooks/useForm/useForm.ts +151 -50
- package/sdk/workflow/types.ts +3 -2
- package/sdk/workflow.ts +0 -7
- package/sdk/workflow.types.ts +0 -7
- package/dist/client-BnVxSHAm.cjs +0 -1
- package/dist/workflow/components/useActivityTable/index.d.ts +0 -4
- package/dist/workflow/components/useActivityTable/index.d.ts.map +0 -1
- package/dist/workflow/components/useActivityTable/types.d.ts +0 -53
- package/dist/workflow/components/useActivityTable/types.d.ts.map +0 -1
- package/dist/workflow/components/useActivityTable/useActivityTable.d.ts +0 -4
- package/dist/workflow/components/useActivityTable/useActivityTable.d.ts.map +0 -1
- package/sdk/workflow/components/useActivityTable/index.ts +0 -8
- package/sdk/workflow/components/useActivityTable/types.ts +0 -67
- package/sdk/workflow/components/useActivityTable/useActivityTable.ts +0 -145
|
@@ -7,6 +7,10 @@ import type { FormItemType, ExtractEditableType, ExtractReadonlyType } from "./t
|
|
|
7
7
|
* Key principle: Item has NO state. It's a view over RHF's state.
|
|
8
8
|
* Editable fields get set(), readonly fields do not.
|
|
9
9
|
*
|
|
10
|
+
* Draft-based upload: In create mode (no _id), upload() automatically creates
|
|
11
|
+
* a draft record via draftInteraction() to get an _id, then uploads immediately.
|
|
12
|
+
* On form submit, if a draft _id exists, update() is used instead of create().
|
|
13
|
+
*
|
|
10
14
|
* @param bdo - The BDO instance for field metadata
|
|
11
15
|
* @param form - The RHF useForm return object
|
|
12
16
|
* @returns SmartFormItem proxy
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createItemProxy.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/createItemProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAQ,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"createItemProxy.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/createItemProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAQ,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EAGpB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9D,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAC/B,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAiV9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createResolver.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/createResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAsCnG;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7D,GAAG,EAAE,CAAC,EACN,eAAe,CAAC,EAAE;IAAE,0BAA0B,CAAC,EAAE,OAAO,CAAA;CAAE,IAG5C,QAAQ,WAAW,EAAE,UAAU,GAAG,EAAE,SAAS,GAAG;;;;;;cACvB,MAAM;iBAAW,MAAM;;
|
|
1
|
+
{"version":3,"file":"createResolver.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/createResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAsCnG;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7D,GAAG,EAAE,CAAC,EACN,eAAe,CAAC,EAAE;IAAE,0BAA0B,CAAC,EAAE,OAAO,CAAA;CAAE,IAG5C,QAAQ,WAAW,EAAE,UAAU,GAAG,EAAE,SAAS,GAAG;;;;;;cACvB,MAAM;iBAAW,MAAM;;GAkF/D"}
|
|
@@ -12,6 +12,7 @@ import type { UseFormOptionsType, UseFormReturnType } from "./types";
|
|
|
12
12
|
* - Smart register: auto-disables readonly fields
|
|
13
13
|
* - Payload filtering: handleSubmit auto-filters to editable fields only
|
|
14
14
|
* - Constraint validation: auto-validates required, length, etc. from field meta
|
|
15
|
+
* - Draft auto-save: creates draft on form open, patches on field changes
|
|
15
16
|
*/
|
|
16
17
|
export declare function useForm<B extends BaseBdo<any, any, any>>(options: UseFormOptionsType<B>): UseFormReturnType<B>;
|
|
17
18
|
//# sourceMappingURL=useForm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/useForm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/useForm.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAIlB,MAAM,SAAS,CAAC;AAsCjB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtD,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,iBAAiB,CAAC,CAAC,CAAC,CAmRtB"}
|
package/dist/form.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("./constants-QX2RX-wu.cjs"),I=require("react"),J=require("./index.esm-DuwT11sx.cjs"),A=require("@tanstack/react-query"),T=require("./client-DnO2KKrw.cjs"),k=require("./attachment-constants-B5jlqoKI.cjs"),K=require("./metadata-DgLSJkF5.cjs");function B(o,t){const i=[];if(o.required&&(t==null||t===""||Array.isArray(t)&&t.length===0))return i.push(`${o.label} is required`),{valid:!1,errors:i};if(t==null||t==="")return{valid:!0,errors:[]};if("length"in o&&typeof o.length=="number"&&typeof t=="string"&&t.length>o.length&&i.push(`${o.label} must be at most ${o.length} characters`),"integerPart"in o&&typeof t=="number"){const y=Math.floor(Math.abs(t)),w=o.integerPart??9;y.toString().length>w&&i.push(`${o.label} integer part must be at most ${w} digits`);const f=o.fractionPart;f!==void 0&&(t.toString().split(".")[1]??"").length>f&&i.push(`${o.label} can have at most ${f} decimal places`)}return i.length>0?{valid:!1,errors:i}:{valid:!0,errors:[]}}function Q(o,t){return async(i,y,w)=>{var F;const f={},S=o.getFields(),P=(w==null?void 0:w.names)??Object.keys(S);for(const e of P){if(e==="_id"||(F=S[e])!=null&&F.readOnly)continue;const a=S[e];if(!a)continue;let l=i[e];if("integerPart"in a&&typeof l=="string"&&l!==""){const b=Number(l);isNaN(b)||(l=b,i[e]=b)}if(!a.required&&(l==null||l===""||Array.isArray(l)&&l.length===0))continue;const C=a.validate(l);if(!C.valid&&C.errors.length>0){f[e]={type:"validate",message:C.errors[0]||`${e} is invalid`};continue}if((t==null?void 0:t.enableConstraintValidation)!==!1){const b=B(a,l);if(!b.valid&&b.errors.length>0){f[e]={type:"constraint",message:b.errors[0]};continue}}if(o.hasMetadata()){const b=o.validateFieldExpression(e,l,i);!b.valid&&b.errors.length>0&&(f[e]={type:"validate",message:b.errors[0]})}}return Object.keys(f).length===0?{values:i,errors:{}}:{values:{},errors:f}}}function Z(o,t){const i=o.getFields(),y=new Map,w=o.getBoId();let f=null,S=null;async function P(){const F=t.getValues("_id");return F||f||(S||(S=T.api(w).draftInteraction({}).then(e=>(f=e._id,t.setValue("_id",f,{shouldDirty:!1}),f)).catch(e=>{throw S=null,e})),S)}return new Proxy({},{get(F,e){if(typeof e=="symbol")return;if(e==="_id")return t.getValues("_id");if(e==="toJSON")return()=>t.getValues();if(e==="validate")return()=>t.trigger();if(e==="_hasDraft")return()=>!!f;if(y.has(e))return y.get(e);const a=i[e],l=(a==null?void 0:a.meta)??{_id:e,Name:e,Type:"String"},C=(a==null?void 0:a.readOnly)??!1,b=()=>{if(!a)return{valid:!0,errors:[]};let u=t.getValues(e);if("integerPart"in a&&typeof u=="string"&&u!==""){const d=Number(u);isNaN(d)||(u=d,t.setValue(e,d,{shouldDirty:!1}))}if(!a.required&&(u==null||u===""||Array.isArray(u)&&u.length===0))return{valid:!0,errors:[]};const s=a.validate(u);if(!s.valid)return s;const n=B(a,u);if(!n.valid)return n;if(o.hasMetadata()){const d=o.validateFieldExpression(e,u,t.getValues());if(!d.valid)return d}return{valid:!0,errors:[]}},E=u=>{const s=t.getValues(e);return s??u};if(!C){const u=()=>{const n=t.getValues(e);return l.Type==="File"?n??[]:n},s={label:(a==null?void 0:a.label)??e,required:(a==null?void 0:a.required)??!1,readOnly:!1,defaultValue:a==null?void 0:a.defaultValue,meta:l,get:u,getOrDefault:E,set:n=>{t.setValue(e,n,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!1})},validate:b};if(l.Type==="Image"||l.Type==="File"){const n=w,d=()=>{const r=t.getValues("_id");if(!r)throw new Error("Save the record before attachment operations");return r};l.Type==="Image"?(s.upload=async r=>{k.validateFileExtension(r.name,"Image");const c=await P(),[h]=await T.api(n).getUploadUrl(c,e,[{FileName:r.name,Size:r.size,FileExtension:k.extractFileExtension(r.name)}]);await fetch(h.UploadUrl.URL,{method:"PUT",headers:{"Content-Type":h.ContentType},body:r});const m={_id:h._id,_name:h._name,FileName:h.FileName,FileExtension:h.FileExtension,Size:h.Size,ContentType:h.ContentType};return t.setValue(e,m,{shouldDirty:!0}),m},s.deleteAttachment=async()=>{const r=t.getValues(e),c=d();if(!(r!=null&&r._id))throw new Error(`${e} has no image to delete`);await T.api(n).deleteAttachment(c,e,r._id),t.setValue(e,null,{shouldDirty:!0})},s.getDownloadUrl=async r=>{const c=t.getValues(e),h=d();if(!(c!=null&&c._id))throw new Error(`${e} has no image`);return T.api(n).getDownloadUrl(h,e,c._id,r)}):(s.upload=async r=>{for(const V of r)k.validateFileExtension(V.name,"File");const c=await P(),h=r.map(V=>({FileName:V.name,Size:V.size,FileExtension:k.extractFileExtension(V.name)})),m=await T.api(n).getUploadUrl(c,e,h),$=await Promise.all(r.map(async(V,_)=>(await fetch(m[_].UploadUrl.URL,{method:"PUT",headers:{"Content-Type":m[_].ContentType},body:V}),{_id:m[_]._id,_name:m[_]._name,FileName:m[_].FileName,FileExtension:m[_].FileExtension,Size:m[_].Size,ContentType:m[_].ContentType}))),D=t.getValues(e)??[];return t.setValue(e,[...D,...$],{shouldDirty:!0}),$},s.deleteAttachment=async r=>{const c=t.getValues(e)??[],h=d();await T.api(n).deleteAttachment(h,e,r),t.setValue(e,c.filter(m=>m._id!==r),{shouldDirty:!0})},s.getDownloadUrl=async(r,c)=>{const h=d();return T.api(n).getDownloadUrl(h,e,r,c)},s.getDownloadUrls=async r=>{const c=d();return T.api(n).getDownloadUrls(c,e,r)})}return y.set(e,s),s}const g=()=>{const u=t.getValues(e);return l.Type==="File"?u??[]:u},x={label:(a==null?void 0:a.label)??e,required:(a==null?void 0:a.required)??!1,readOnly:!0,defaultValue:a==null?void 0:a.defaultValue,meta:l,get:g,getOrDefault:E,validate:b};if(l.Type==="Image"||l.Type==="File"){const u=w,s=()=>{const n=t.getValues("_id");if(!n)throw new Error("Cannot perform attachment operation: item has no _id. Save the item first.");return n};l.Type==="Image"?x.getDownloadUrl=async n=>{const d=t.getValues(e),r=s();if(!(d!=null&&d._id))throw new Error(`${e} has no image to download`);return T.api(u).getDownloadUrl(r,e,d._id,n)}:(x.getDownloadUrl=async(n,d)=>{const r=s();return T.api(u).getDownloadUrl(r,e,n,d)},x.getDownloadUrls=async n=>{const d=s();return T.api(u).getDownloadUrls(d,e,n)})}return y.set(e,x),x},has(F,e){return typeof e=="symbol"?!1:e==="_id"||e==="toJSON"||e==="validate"||e==="_hasDraft"?!0:e in i},ownKeys(F){return[...Object.keys(i),"_id","toJSON","validate"]},getOwnPropertyDescriptor(F,e){if(typeof e!="symbol")return{configurable:!0,enumerable:e!=="toJSON"&&e!=="validate"&&e!=="_hasDraft"}}})}function j(o,t){const i=o.meta.Type;if(typeof t=="string"&&i==="Number")return t===""?void 0:Number(t);if(!(typeof t=="string"&&t===""&&(i==="Date"||i==="DateTime"))){if(typeof t=="string"&&t!==""&&i==="DateTime"){let y=t;return y.endsWith("Z")&&(y=y.slice(0,-1)),((y.split("T")[1]||"").match(/:/g)||[]).length===1&&(y+=":00"),y+"Z"}return t}}function G(o,t){var w;const i=o.getFields(),y={...t};for(const[f,S]of Object.entries(y))typeof S=="string"&&((w=i[f])==null?void 0:w.meta.Type)==="DateTime"&&S.endsWith("Z")&&(y[f]=S.slice(0,-1));return y}function W(o){const{bdo:t,recordId:i,operation:y,defaultValues:w,mode:f="onBlur",enableDraft:S=!1,enableConstraintValidation:P,enableExpressionValidation:F}=o,e=y??(i?"update":"create"),a=I.useMemo(()=>Q(t,{enableConstraintValidation:P}),[t,P]),{data:l,isLoading:C,isFetching:b,error:E}=A.useQuery({queryKey:["form-record",t.meta._id,i],queryFn:async()=>{const D=await t.get(i);return G(t,D.toJSON())},enabled:e==="update"&&!!i,staleTime:0}),{data:g,isLoading:x,error:u}=A.useQuery({queryKey:["form-draft",t.meta._id],queryFn:async()=>T.api(t.meta._id).draftInteraction({}),enabled:e==="create",staleTime:1/0,gcTime:0,retry:1}),{data:s}=A.useQuery({queryKey:["form-schema",t.meta._id],queryFn:()=>K.getBdoSchema(t.meta._id),staleTime:30*60*1e3,gcTime:60*60*1e3,enabled:F!==!1});I.useEffect(()=>{s!=null&&s.BDOBlob?t.loadMetadata(s.BDOBlob):s!=null&&s.MetaBlob&&t.loadMetadata(s.MetaBlob)},[s,t]);const n=J.useForm({mode:f,resolver:a,defaultValues:w}),d=I.useRef(null);I.useEffect(()=>{e==="update"&&l&&l!==d.current&&(n.reset(l),d.current=l)},[l,e,n]),I.useEffect(()=>{g!=null&&g._id&&n.setValue("_id",g._id)},[g,n]);const r=I.useMemo(()=>Z(t,n),[t,n]),c=t.getFields(),h=I.useCallback((D,V)=>{var v;const _=n.register(D,V);return(v=c[D])!=null&&v.readOnly?{..._,disabled:!0}:_},[n,c]),m=I.useRef(null);I.useEffect(()=>{if(e!=="create"||!(g!=null&&g._id))return;const D=n.watch((V,{type:_})=>{_==="change"&&(m.current&&clearTimeout(m.current),m.current=setTimeout(async()=>{const v=n.getValues(),O=n.formState.dirtyFields,U={};for(const[q,N]of Object.entries(v))c[q]&&!c[q].readOnly&&O[q]&&(U[q]=j(c[q],N));if(Object.keys(U).length>0)try{await T.api(t.meta._id).draftInteraction({_id:g._id,...U})}catch{}},800))});return()=>{D.unsubscribe(),m.current&&clearTimeout(m.current)}},[n,e,g,c,t]);const $=I.useCallback((D,V)=>n.handleSubmit(async(_,v)=>{try{const O={},U=n.getValues();if(e==="create")for(const[N,R]of Object.entries(c)){if(R.readOnly)continue;const M=U[N]!==void 0?U[N]:_[N];M!==void 0&&(O[N]=j(R,M))}else{const N=n.formState.dirtyFields;for(const[R,M]of Object.entries(c)){if(M.readOnly||!N[R])continue;const L=U[R]!==void 0?U[R]:_[R];O[R]=j(M,L)}}let q;e==="create"?(O._id=g==null?void 0:g._id,q=await T.api(t.meta._id).draft(O)):q=await T.api(t.meta._id).update(i,O),D==null||D(q,v)}catch(O){V==null||V(O,v)}},(_,v)=>{V==null||V(_,v)}),[n,t,e,i,c,g]);return{item:r,bdo:t,operation:e,recordId:i,register:h,handleSubmit:$,watch:n.watch,setValue:n.setValue,getValues:n.getValues,reset:n.reset,trigger:n.trigger,control:n.control,formState:n.formState,errors:n.formState.errors,isDirty:n.formState.isDirty,isValid:n.formState.isValid,isSubmitting:n.formState.isSubmitting,isSubmitSuccessful:n.formState.isSubmitSuccessful,dirtyFields:n.formState.dirtyFields,isLoading:C||x,isFetching:b,loadError:E??u,draftId:g==null?void 0:g._id,isCreatingDraft:x}}exports.FormOperation=z.FormOperation;exports.InteractionMode=z.InteractionMode;exports.ValidationMode=z.ValidationMode;exports.useForm=W;
|