@lehnihon/bit-form 1.0.0 → 1.0.1
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/angular/index.cjs +1 -1
- package/dist/angular/index.d.cts +1 -1
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +1 -1
- package/dist/angular/index.js.map +1 -1
- package/dist/{chunk-FOPOA6NB.cjs → chunk-ACHDD75T.cjs} +6 -6
- package/dist/{chunk-FOPOA6NB.cjs.map → chunk-ACHDD75T.cjs.map} +1 -1
- package/dist/{chunk-ZI3XHI4I.js → chunk-AM65OKT2.js} +6 -6
- package/dist/{chunk-ZI3XHI4I.js.map → chunk-AM65OKT2.js.map} +1 -1
- package/dist/chunk-E6WTGKQ6.js +2 -0
- package/dist/chunk-E6WTGKQ6.js.map +1 -0
- package/dist/chunk-M4QDZTNK.cjs +2 -0
- package/dist/{chunk-XIDR3J47.cjs.map → chunk-M4QDZTNK.cjs.map} +1 -1
- package/dist/devtools/bridge.cjs +1 -1
- package/dist/devtools/bridge.js +1 -1
- package/dist/devtools/index.cjs +1 -1
- package/dist/devtools/index.js +1 -1
- package/dist/{index-CmwQH2V1.d.cts → index-CAsZliSy.d.cts} +1 -0
- package/dist/{index-DRvn8318.d.ts → index-_zEeufKs.d.ts} +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.d.cts +2 -2
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.js +1 -1
- package/dist/react-native/index.cjs +1 -1
- package/dist/react-native/index.d.cts +2 -2
- package/dist/react-native/index.d.ts +2 -2
- package/dist/react-native/index.js +1 -1
- package/dist/resolvers/zod.cjs +1 -1
- package/dist/resolvers/zod.cjs.map +1 -1
- package/dist/resolvers/zod.js +1 -1
- package/dist/resolvers/zod.js.map +1 -1
- package/dist/{use-bit-watch-BMCwKIYx.d.cts → use-bit-watch-DuG0-qkf.d.cts} +1 -1
- package/dist/{use-bit-watch-BujTdIMc.d.ts → use-bit-watch-paD4Vkvz.d.ts} +1 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.d.cts +1 -1
- package/dist/vue/index.d.ts +1 -1
- package/dist/vue/index.js +1 -1
- package/dist/vue/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-32ZEDTLP.js +0 -2
- package/dist/chunk-32ZEDTLP.js.map +0 -1
- package/dist/chunk-XIDR3J47.cjs +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as R,e as B,h as D,i as k}from"./chunk-AM65OKT2.js";import{createContext as A,useContext as O}from"react";import{jsx as U}from"react/jsx-runtime";var w=A(null),nt=({store:t,children:e})=>U(w.Provider,{value:t,children:e}),S=()=>{let t=O(w);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};import{useCallback as y,useSyncExternalStore as q,useMemo as H,useRef as L,useState as M}from"react";function ct(){let t=S(),[e,r]=M(null),[i,a]=M(null),o=L(null),g=y(()=>{let u=t.getState(),{isValid:d,isDirty:b,isSubmitting:p}=u,T=t.canUndo,I=t.canRedo;if(o.current&&o.current.isValid===d&&o.current.isDirty===b&&o.current.isSubmitting===p&&o.current.canUndo===T&&o.current.canRedo===I)return o.current;let x={isValid:d,isDirty:b,isSubmitting:p,canUndo:T,canRedo:I};return o.current=x,x},[t]),c=q(t.subscribe.bind(t),g,g),s=y(u=>d=>(d?.preventDefault?.(),t.submit(u)),[t]),n=y(u=>d=>(d?.preventDefault?.(),r(null),t.submit(async b=>{try{let p=await u(b);a(p),r(null)}catch(p){D(p)?t.setServerErrors(k(p)):r(p instanceof Error?p:new Error(String(p)))}})),[t]),m=y(()=>{t.reset(),r(null),a(null)},[t]),l=y(()=>t.getState().values,[t]),f=y(()=>t.getState().errors,[t]),h=y(()=>t.getState().touched,[t]),v=H(()=>({setField:t.setField.bind(t),blurField:t.blurField.bind(t),setValues:t.setValues.bind(t),setError:t.setError.bind(t),setErrors:t.setErrors.bind(t),setServerErrors:t.setServerErrors.bind(t),reset:m,validate:t.validate.bind(t),registerMask:t.registerMask.bind(t),pushItem:t.pushItem.bind(t),removeItem:t.removeItem.bind(t),prependItem:t.prependItem.bind(t),insertItem:t.insertItem.bind(t),moveItem:t.moveItem.bind(t),swapItems:t.swapItems.bind(t),undo:t.undo.bind(t),redo:t.redo.bind(t)}),[t,m]);return{...c,getValues:l,getErrors:f,getTouched:h,submit:s,onSubmit:n,submitError:e,lastResponse:i,...v,reset:m,store:t}}import{useCallback as W,useSyncExternalStore as _,useState as $,useMemo as j,useEffect as z}from"react";var P=()=>Math.random().toString(36).substring(2,9);function ht(t){let e=S(),r=W(()=>{let s=e.getState(),n=B(s.values,t);return Array.isArray(n)?n:[]},[e,t]),i=_(e.subscribe.bind(e),r,r),[a,o]=$(()=>i.map(P));z(()=>{i.length!==a.length&&o(s=>{if(i.length>s.length){let n=i.length-s.length;return[...s,...Array(n).fill(null).map(P)]}return s.slice(0,i.length)})},[i.length]);let g=j(()=>({append:s=>{o(n=>[...n,P()]),e.pushItem(t,s)},prepend:s=>{o(n=>[P(),...n]),e.prependItem(t,s)},insert:(s,n)=>{o(m=>{let l=[...m];return l.splice(s,0,P()),l}),e.insertItem(t,s,n)},remove:s=>{o(n=>n.filter((m,l)=>l!==s)),e.removeItem(t,s)},move:(s,n)=>{o(m=>{let l=[...m],[f]=l.splice(s,1);return l.splice(n,0,f),l}),e.moveItem(t,s,n)},swap:(s,n)=>{o(m=>{let l=[...m];return[l[s],l[n]]=[l[n],l[s]],l}),e.swapItems(t,s,n)},replace:s=>{o(s.map(P)),e.setField(t,s)},clear:()=>{o([]),e.setField(t,[])}}),[e,t]);return{fields:j(()=>i.map((s,n)=>({key:a[n]||`temp-${n}`,value:s,index:n})),[i,a]),length:i.length,...g}}import{useCallback as V,useSyncExternalStore as G,useRef as J}from"react";function Ft(t){let e=S(),r=J(null),i=V(()=>{let c=e.getStepStatus(t);return r.current&&r.current.hasErrors===c.hasErrors&&r.current.isDirty===c.isDirty&&Object.keys(r.current.errors).length===Object.keys(c.errors).length&&Object.entries(c.errors).every(([s,n])=>r.current.errors[s]===n)?r.current:(r.current=c,c)},[e,t]),a=G(e.subscribe.bind(e),i,i),o=V(async()=>{let c=await e.validate({scope:t}),s=e.getStepErrors(t);return{valid:c,errors:s}},[e,t]),g=V(()=>e.getStepErrors(t),[e,t]);return{scopeName:t,status:a,errors:a.errors,validate:o,getErrors:g,isValid:!a.hasErrors,isDirty:a.isDirty}}import{useCallback as F,useSyncExternalStore as K,useRef as Q,useState as X}from"react";function It(t){let e=S(),[r,i]=X(0),a=t[r]??"",o=Q(null),g=F(()=>{let u=e.getStepStatus(a);return o.current&&o.current.hasErrors===u.hasErrors&&o.current.isDirty===u.isDirty&&Object.keys(o.current.errors).length===Object.keys(u.errors).length&&Object.entries(u.errors).every(([d,b])=>o.current.errors[d]===b)?o.current:(o.current=u,u)},[e,a]),c=K(e.subscribe.bind(e),g,g),s=F(async()=>{let u=await e.validate({scope:a}),d=e.getStepErrors(a);return{valid:u,errors:d}},[e,a]),n=F(()=>e.getStepErrors(a),[e,a]),m=F(async()=>{let u=await e.validate({scope:a});if(u)i(d=>Math.min(d+1,t.length-1));else{let d=e.getStepErrors(a),b=Object.keys(d);b.length>0&&e.markFieldsTouched(b)}return u},[e,a,t.length]),l=F(()=>{i(u=>Math.max(u-1,0))},[]),f=F(u=>{i(Math.max(0,Math.min(u-1,t.length-1)))},[t.length]),h=r===0,v=r>=t.length-1;return{step:r+1,stepIndex:r,scope:a,next:m,prev:l,goTo:f,isFirst:h,isLast:v,status:c,errors:c.errors,isValid:!c.hasErrors,isDirty:c.isDirty,validate:s,getErrors:n}}import{useCallback as C,useSyncExternalStore as Y,useRef as Z}from"react";function jt(t){let e=S(),r=Z(null),i=C(()=>{let o=B(e.getState().values,t);return r.current!==null&&R(r.current,o)?r.current:(r.current=o,o)},[e,t]),a=C(o=>e.subscribe(o),[e]);return Y(a,i,i)}import{useCallback as E,useSyncExternalStore as N,useRef as tt,useEffect as et}from"react";function Wt(t,e){let r=S(),i=tt(null);et(()=>(e&&r.registerField(t,e),()=>{r.unregisterField&&r.unregisterField(t)}),[r,t,e]);let a=E(()=>{let n=r.getState(),m=B(n.values,t),l=n.errors[t],f=!!n.touched[t],h=r.isHidden(t),v=r.isRequired(t),u=r.isFieldDirty(t),d=r.isFieldValidating(t);if(i.current&&i.current.value===m&&i.current.error===l&&i.current.touched===f&&i.current.isHidden===h&&i.current.isRequired===v&&i.current.isDirty===u&&i.current.isValidating===d)return i.current;let b={value:m,error:l,touched:f,isHidden:h,isRequired:v,isDirty:u,isValidating:d};return i.current=b,b},[r,t]),o=E(n=>r.subscribe(n),[r]),g=N(o,a,a),c=E(n=>r.setField(t,n),[r,t]),s=E(()=>r.blurField(t),[r,t]);return{fieldState:g,setValue:c,setBlur:s,store:r}}export{nt as a,S as b,ct as c,Wt as d,ht as e,Ft as f,It as g,jt as h};
|
|
2
|
+
//# sourceMappingURL=chunk-E6WTGKQ6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts","../src/react/use-bit-scope.ts","../src/react/use-bit-steps.ts","../src/react/use-bit-watch.ts","../src/react/use-bit-field-base.ts"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\nimport { BitStore } from \"../core\";\n\nconst BitContext = createContext<BitStore<any> | null>(null);\n\nexport const BitFormProvider = ({\n store,\n children,\n}: {\n store: BitStore<any>;\n children: React.ReactNode;\n}) => <BitContext.Provider value={store}>{children}</BitContext.Provider>;\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitStore<T>;\n};\n","import { useCallback, useSyncExternalStore, useMemo, useRef, useState } from \"react\";\nimport { useBitStore } from \"./context\";\nimport { isValidationErrorShape, extractServerErrors } from \"../core/utils\";\n\nexport function useBitForm<T extends object>() {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n\n const lastMeta = useRef<{\n isValid: boolean;\n isDirty: boolean;\n isSubmitting: boolean;\n canUndo: boolean;\n canRedo: boolean;\n } | null>(null);\n\n const getMetaSnapshot = useCallback(() => {\n const state = store.getState();\n const { isValid, isDirty, isSubmitting } = state;\n const canUndo = store.canUndo;\n const canRedo = store.canRedo;\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === isValid &&\n lastMeta.current.isDirty === isDirty &&\n lastMeta.current.isSubmitting === isSubmitting &&\n lastMeta.current.canUndo === canUndo &&\n lastMeta.current.canRedo === canRedo\n ) {\n return lastMeta.current;\n }\n\n const nextMeta = { isValid, isDirty, isSubmitting, canUndo, canRedo };\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const metaState = useSyncExternalStore(\n store.subscribe.bind(store),\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const submit = useCallback(\n (onSuccess: (values: T) => void | Promise<void>) => {\n return (e?: { preventDefault: () => void }) => {\n e?.preventDefault?.();\n return store.submit(onSuccess);\n };\n },\n [store],\n );\n\n const onSubmit = useCallback(\n (handler: (values: T) => Promise<unknown>) => {\n return (e?: { preventDefault: () => void }) => {\n e?.preventDefault?.();\n setSubmitError(null);\n\n return store.submit(async (values) => {\n try {\n const result = await handler(values);\n setLastResponse(result);\n setSubmitError(null);\n } catch (err) {\n if (isValidationErrorShape(err)) {\n store.setServerErrors(extractServerErrors(err));\n } else {\n setSubmitError(\n err instanceof Error ? err : new Error(String(err)),\n );\n }\n }\n });\n };\n },\n [store],\n );\n\n const reset = useCallback(() => {\n store.reset();\n setSubmitError(null);\n setLastResponse(null);\n }, [store]);\n\n const getValues = useCallback(() => store.getState().values, [store]);\n const getErrors = useCallback(() => store.getState().errors, [store]);\n const getTouched = useCallback(() => store.getState().touched, [store]);\n\n const actions = useMemo(\n () => ({\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n setValues: store.setValues.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n reset,\n validate: store.validate.bind(store),\n registerMask: store.registerMask.bind(store),\n pushItem: store.pushItem.bind(store),\n removeItem: store.removeItem.bind(store),\n prependItem: store.prependItem.bind(store),\n insertItem: store.insertItem.bind(store),\n moveItem: store.moveItem.bind(store),\n swapItems: store.swapItems.bind(store),\n undo: store.undo.bind(store),\n redo: store.redo.bind(store),\n }),\n [store, reset],\n );\n\n return {\n ...metaState,\n getValues,\n getErrors,\n getTouched,\n submit,\n onSubmit,\n submitError,\n lastResponse,\n ...actions,\n reset,\n store,\n };\n}\n","import {\n useCallback,\n useSyncExternalStore,\n useState,\n useMemo,\n useEffect,\n} from \"react\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\n\nconst generateId = () => Math.random().toString(36).substring(2, 9);\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = useCallback(() => {\n const state = store.getState();\n const value = getDeepValue(state.values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(value) ? (value as Item[]) : [];\n }, [store, path]);\n\n const data = useSyncExternalStore(\n store.subscribe.bind(store),\n getSnapshot,\n getSnapshot,\n );\n\n const [ids, setIds] = useState<string[]>(() =>\n (data as Item[]).map(generateId),\n );\n\n useEffect(() => {\n if (data.length !== ids.length) {\n setIds((prevIds) => {\n if (data.length > prevIds.length) {\n const diff = data.length - prevIds.length;\n return [...prevIds, ...Array(diff).fill(null).map(generateId)];\n }\n return prevIds.slice(0, data.length);\n });\n }\n }, [data.length]);\n\n const methods = useMemo(\n () => ({\n append: (value: Item) => {\n setIds((prev) => [...prev, generateId()]);\n store.pushItem(path, value);\n },\n prepend: (value: Item) => {\n setIds((prev) => [generateId(), ...prev]);\n store.prependItem(path, value);\n },\n insert: (index: number, value: Item) => {\n setIds((prev) => {\n const newIds = [...prev];\n newIds.splice(index, 0, generateId());\n return newIds;\n });\n store.insertItem(path, index, value);\n },\n remove: (index: number) => {\n setIds((prev) => prev.filter((_, i) => i !== index));\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n setIds((prev) => {\n const newIds = [...prev];\n const [item] = newIds.splice(from, 1);\n newIds.splice(to, 0, item);\n return newIds;\n });\n store.moveItem(path, from, to);\n },\n swap: (indexA: number, indexB: number) => {\n setIds((prev) => {\n const newIds = [...prev];\n [newIds[indexA], newIds[indexB]] = [newIds[indexB], newIds[indexA]];\n return newIds;\n });\n store.swapItems(path, indexA, indexB);\n },\n replace: (items: Item[]) => {\n setIds(items.map(generateId));\n store.setField(path as unknown as BitPath<TForm>, items as any);\n },\n clear: () => {\n setIds([]);\n store.setField(path as unknown as BitPath<TForm>, [] as any);\n },\n }),\n [store, path],\n );\n\n const fields = useMemo(\n () =>\n (data as Item[]).map((item: Item, index: number) => ({\n key: ids[index] || `temp-${index}`,\n value: item,\n index,\n })),\n [data, ids],\n );\n\n return {\n fields,\n length: data.length,\n ...methods,\n };\n}\n","import { useCallback, useSyncExternalStore, useRef } from \"react\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\nexport function useBitScope(scopeName: string) {\n const store = useBitStore();\n\n const lastStatus = useRef<ScopeStatus | null>(null);\n\n const getStatusSnapshot = useCallback(() => {\n const nextStatus = store.getStepStatus(scopeName);\n\n if (\n lastStatus.current &&\n lastStatus.current.hasErrors === nextStatus.hasErrors &&\n lastStatus.current.isDirty === nextStatus.isDirty &&\n Object.keys(lastStatus.current.errors).length ===\n Object.keys(nextStatus.errors).length &&\n Object.entries(nextStatus.errors).every(\n ([k, v]) => lastStatus.current!.errors[k] === v,\n )\n ) {\n return lastStatus.current;\n }\n\n lastStatus.current = nextStatus;\n return nextStatus;\n }, [store, scopeName]);\n\n const status = useSyncExternalStore(\n store.subscribe.bind(store),\n getStatusSnapshot,\n getStatusSnapshot,\n );\n\n const validate = useCallback(async (): Promise<ValidateScopeResult> => {\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n }, [store, scopeName]);\n\n const getErrors = useCallback(() => {\n return store.getStepErrors(scopeName);\n }, [store, scopeName]);\n\n return {\n scopeName,\n status,\n errors: status.errors,\n validate,\n getErrors,\n isValid: !status.hasErrors,\n isDirty: status.isDirty,\n };\n}\n","import { useCallback, useSyncExternalStore, useRef, useState } from \"react\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport interface UseBitStepsResult {\n step: number;\n stepIndex: number;\n scope: string;\n next: () => Promise<boolean>;\n prev: () => void;\n goTo: (step: number) => void;\n isFirst: boolean;\n isLast: boolean;\n status: ScopeStatus;\n errors: Record<string, string>;\n isValid: boolean;\n isDirty: boolean;\n validate: () => Promise<ValidateScopeResult>;\n getErrors: () => Record<string, string>;\n}\n\nexport function useBitSteps(scopeNames: string[]): UseBitStepsResult {\n const store = useBitStore();\n const [stepIndex, setStepIndex] = useState(0);\n\n const scope = scopeNames[stepIndex] ?? \"\";\n const lastStatus = useRef<ScopeStatus | null>(null);\n\n const getStatusSnapshot = useCallback(() => {\n const nextStatus = store.getStepStatus(scope);\n\n if (\n lastStatus.current &&\n lastStatus.current.hasErrors === nextStatus.hasErrors &&\n lastStatus.current.isDirty === nextStatus.isDirty &&\n Object.keys(lastStatus.current.errors).length ===\n Object.keys(nextStatus.errors).length &&\n Object.entries(nextStatus.errors).every(\n ([k, v]) => lastStatus.current!.errors[k] === v,\n )\n ) {\n return lastStatus.current;\n }\n\n lastStatus.current = nextStatus;\n return nextStatus;\n }, [store, scope]);\n\n const status = useSyncExternalStore(\n store.subscribe.bind(store),\n getStatusSnapshot,\n getStatusSnapshot,\n );\n\n const validate = useCallback(async (): Promise<ValidateScopeResult> => {\n const valid = await store.validate({ scope });\n const errors = store.getStepErrors(scope);\n return { valid, errors };\n }, [store, scope]);\n\n const getErrors = useCallback(() => {\n return store.getStepErrors(scope);\n }, [store, scope]);\n\n const next = useCallback(async (): Promise<boolean> => {\n const valid = await store.validate({ scope });\n if (valid) {\n setStepIndex((s) => Math.min(s + 1, scopeNames.length - 1));\n } else {\n const errors = store.getStepErrors(scope);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.markFieldsTouched(pathsWithErrors);\n }\n }\n return valid;\n }, [store, scope, scopeNames.length]);\n\n const prev = useCallback(() => {\n setStepIndex((s) => Math.max(s - 1, 0));\n }, []);\n\n const goTo = useCallback((targetStep: number) => {\n setStepIndex(\n Math.max(0, Math.min(targetStep - 1, scopeNames.length - 1)),\n );\n }, [scopeNames.length]);\n\n const isFirst = stepIndex === 0;\n const isLast = stepIndex >= scopeNames.length - 1;\n\n return {\n step: stepIndex + 1,\n stepIndex,\n scope,\n next,\n prev,\n goTo,\n isFirst,\n isLast,\n status,\n errors: status.errors,\n isValid: !status.hasErrors,\n isDirty: status.isDirty,\n validate,\n getErrors,\n };\n}\n","import { useCallback, useSyncExternalStore, useRef } from \"react\";\nimport { useBitStore } from \"./context\";\nimport { getDeepValue, deepEqual, BitPath, BitPathValue } from \"../core\";\n\nexport function useBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): BitPathValue<TForm, P> {\n const store = useBitStore<TForm>();\n const lastValue = useRef<BitPathValue<TForm, P> | null>(null);\n\n const getSnapshot = useCallback(() => {\n const value = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n\n if (\n lastValue.current !== null &&\n deepEqual(lastValue.current, value)\n ) {\n return lastValue.current;\n }\n\n lastValue.current = value;\n return value;\n }, [store, path]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.subscribe(cb),\n [store],\n );\n\n return useSyncExternalStore(\n subscribe,\n getSnapshot,\n getSnapshot,\n ) as BitPathValue<TForm, P>;\n}\n","import { useCallback, useSyncExternalStore, useRef, useEffect } from \"react\";\nimport { useBitStore } from \"./context\";\nimport { getDeepValue, BitFieldDefinition, BitPath, BitPathValue } from \"../core\";\n\nexport function useBitFieldBase<\n TValue = any,\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P, config?: BitFieldDefinition<TForm>) {\n const store = useBitStore<TForm>();\n const lastState = useRef<{\n value: BitPathValue<TForm, P>;\n error: any;\n touched: boolean;\n isHidden: boolean;\n isRequired: boolean;\n isDirty: boolean;\n isValidating: boolean;\n } | null>(null);\n\n useEffect(() => {\n if (config) {\n store.registerField(path, config as any);\n }\n\n return () => {\n if (store.unregisterField) {\n store.unregisterField(path);\n }\n };\n }, [store, path, config]);\n\n const getSnapshot = useCallback(() => {\n const state = store.getState();\n const value = getDeepValue(\n state.values,\n path as string,\n ) as BitPathValue<TForm, P>;\n const error = state.errors[path];\n const touched = !!state.touched[path];\n\n const isHidden = store.isHidden(path);\n const isRequired = store.isRequired(path);\n const isDirty = store.isFieldDirty(path);\n const isValidating = store.isFieldValidating(path);\n\n if (\n lastState.current &&\n lastState.current.value === value &&\n lastState.current.error === error &&\n lastState.current.touched === touched &&\n lastState.current.isHidden === isHidden &&\n lastState.current.isRequired === isRequired &&\n lastState.current.isDirty === isDirty &&\n lastState.current.isValidating === isValidating\n ) {\n return lastState.current;\n }\n\n const newState = {\n value,\n error,\n touched,\n isHidden,\n isRequired,\n isDirty,\n isValidating,\n };\n lastState.current = newState;\n return newState;\n }, [store, path]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.subscribe(cb),\n [store],\n );\n\n const fieldState = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P>) => store.setField(path, val),\n [store, path],\n );\n\n const setBlur = useCallback(() => store.blurField(path), [store, path]);\n\n return { fieldState, setValue, setBlur, store };\n}\n"],"mappings":"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","names":["createContext","useContext","jsx","BitContext","BitFormProvider","store","children","useBitStore","useCallback","useSyncExternalStore","useMemo","useRef","useState","useBitForm","store","useBitStore","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","useRef","getMetaSnapshot","useCallback","state","isValid","isDirty","isSubmitting","canUndo","canRedo","nextMeta","metaState","useSyncExternalStore","submit","onSuccess","e","onSubmit","handler","values","result","err","isValidationErrorShape","extractServerErrors","reset","getValues","getErrors","getTouched","actions","useMemo","useCallback","useSyncExternalStore","useState","useMemo","useEffect","generateId","useBitArray","path","store","useBitStore","getSnapshot","useCallback","state","value","getDeepValue","data","useSyncExternalStore","ids","setIds","useState","useEffect","prevIds","diff","methods","useMemo","prev","index","newIds","_","i","from","to","item","indexA","indexB","items","useCallback","useSyncExternalStore","useRef","useBitScope","scopeName","store","useBitStore","lastStatus","useRef","getStatusSnapshot","useCallback","nextStatus","k","v","status","useSyncExternalStore","validate","valid","errors","getErrors","useCallback","useSyncExternalStore","useRef","useState","useBitSteps","scopeNames","store","useBitStore","stepIndex","setStepIndex","useState","scope","lastStatus","useRef","getStatusSnapshot","useCallback","nextStatus","k","v","status","useSyncExternalStore","validate","valid","errors","getErrors","next","s","pathsWithErrors","prev","goTo","targetStep","isFirst","isLast","useCallback","useSyncExternalStore","useRef","useBitWatch","path","store","useBitStore","lastValue","useRef","getSnapshot","useCallback","value","getDeepValue","deepEqual","subscribe","cb","useSyncExternalStore","useCallback","useSyncExternalStore","useRef","useEffect","useBitFieldBase","path","config","store","useBitStore","lastState","useRef","useEffect","getSnapshot","useCallback","state","value","getDeepValue","error","touched","isHidden","isRequired","isDirty","isValidating","newState","subscribe","cb","fieldState","useSyncExternalStore","setValue","val","setBlur"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkACHDD75Tcjs = require('./chunk-ACHDD75T.cjs');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var w=_react.createContext.call(void 0, null),nt= exports.a =({store:t,children:e})=>_jsxruntime.jsx.call(void 0, w.Provider,{value:t,children:e}),S= exports.b =()=>{let t=_react.useContext.call(void 0, w);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};function ct(){let t=S(),[e,r]=_react.useState.call(void 0, null),[i,a]=_react.useState.call(void 0, null),o=_react.useRef.call(void 0, null),g=_react.useCallback.call(void 0, ()=>{let u=t.getState(),{isValid:d,isDirty:b,isSubmitting:p}=u,T=t.canUndo,I=t.canRedo;if(o.current&&o.current.isValid===d&&o.current.isDirty===b&&o.current.isSubmitting===p&&o.current.canUndo===T&&o.current.canRedo===I)return o.current;let x={isValid:d,isDirty:b,isSubmitting:p,canUndo:T,canRedo:I};return o.current=x,x},[t]),c=_react.useSyncExternalStore.call(void 0, t.subscribe.bind(t),g,g),s=_react.useCallback.call(void 0, u=>d=>(_optionalChain([d, 'optionalAccess', _2 => _2.preventDefault, 'optionalCall', _3 => _3()]),t.submit(u)),[t]),n=_react.useCallback.call(void 0, u=>d=>(_optionalChain([d, 'optionalAccess', _4 => _4.preventDefault, 'optionalCall', _5 => _5()]),r(null),t.submit(async b=>{try{let p=await u(b);a(p),r(null)}catch(p){_chunkACHDD75Tcjs.h.call(void 0, p)?t.setServerErrors(_chunkACHDD75Tcjs.i.call(void 0, p)):r(p instanceof Error?p:new Error(String(p)))}})),[t]),m=_react.useCallback.call(void 0, ()=>{t.reset(),r(null),a(null)},[t]),l=_react.useCallback.call(void 0, ()=>t.getState().values,[t]),f=_react.useCallback.call(void 0, ()=>t.getState().errors,[t]),h=_react.useCallback.call(void 0, ()=>t.getState().touched,[t]),v=_react.useMemo.call(void 0, ()=>({setField:t.setField.bind(t),blurField:t.blurField.bind(t),setValues:t.setValues.bind(t),setError:t.setError.bind(t),setErrors:t.setErrors.bind(t),setServerErrors:t.setServerErrors.bind(t),reset:m,validate:t.validate.bind(t),registerMask:t.registerMask.bind(t),pushItem:t.pushItem.bind(t),removeItem:t.removeItem.bind(t),prependItem:t.prependItem.bind(t),insertItem:t.insertItem.bind(t),moveItem:t.moveItem.bind(t),swapItems:t.swapItems.bind(t),undo:t.undo.bind(t),redo:t.redo.bind(t)}),[t,m]);return{...c,getValues:l,getErrors:f,getTouched:h,submit:s,onSubmit:n,submitError:e,lastResponse:i,...v,reset:m,store:t}}var P=()=>Math.random().toString(36).substring(2,9);function ht(t){let e=S(),r=_react.useCallback.call(void 0, ()=>{let s=e.getState(),n=_chunkACHDD75Tcjs.e.call(void 0, s.values,t);return Array.isArray(n)?n:[]},[e,t]),i=_react.useSyncExternalStore.call(void 0, e.subscribe.bind(e),r,r),[a,o]=_react.useState.call(void 0, ()=>i.map(P));_react.useEffect.call(void 0, ()=>{i.length!==a.length&&o(s=>{if(i.length>s.length){let n=i.length-s.length;return[...s,...Array(n).fill(null).map(P)]}return s.slice(0,i.length)})},[i.length]);let g=_react.useMemo.call(void 0, ()=>({append:s=>{o(n=>[...n,P()]),e.pushItem(t,s)},prepend:s=>{o(n=>[P(),...n]),e.prependItem(t,s)},insert:(s,n)=>{o(m=>{let l=[...m];return l.splice(s,0,P()),l}),e.insertItem(t,s,n)},remove:s=>{o(n=>n.filter((m,l)=>l!==s)),e.removeItem(t,s)},move:(s,n)=>{o(m=>{let l=[...m],[f]=l.splice(s,1);return l.splice(n,0,f),l}),e.moveItem(t,s,n)},swap:(s,n)=>{o(m=>{let l=[...m];return[l[s],l[n]]=[l[n],l[s]],l}),e.swapItems(t,s,n)},replace:s=>{o(s.map(P)),e.setField(t,s)},clear:()=>{o([]),e.setField(t,[])}}),[e,t]);return{fields:_react.useMemo.call(void 0, ()=>i.map((s,n)=>({key:a[n]||`temp-${n}`,value:s,index:n})),[i,a]),length:i.length,...g}}function Ft(t){let e=S(),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let c=e.getStepStatus(t);return r.current&&r.current.hasErrors===c.hasErrors&&r.current.isDirty===c.isDirty&&Object.keys(r.current.errors).length===Object.keys(c.errors).length&&Object.entries(c.errors).every(([s,n])=>r.current.errors[s]===n)?r.current:(r.current=c,c)},[e,t]),a=_react.useSyncExternalStore.call(void 0, e.subscribe.bind(e),i,i),o=_react.useCallback.call(void 0, async()=>{let c=await e.validate({scope:t}),s=e.getStepErrors(t);return{valid:c,errors:s}},[e,t]),g=_react.useCallback.call(void 0, ()=>e.getStepErrors(t),[e,t]);return{scopeName:t,status:a,errors:a.errors,validate:o,getErrors:g,isValid:!a.hasErrors,isDirty:a.isDirty}}function It(t){let e=S(),[r,i]=_react.useState.call(void 0, 0),a=_nullishCoalesce(t[r], () => ("")),o=_react.useRef.call(void 0, null),g=_react.useCallback.call(void 0, ()=>{let u=e.getStepStatus(a);return o.current&&o.current.hasErrors===u.hasErrors&&o.current.isDirty===u.isDirty&&Object.keys(o.current.errors).length===Object.keys(u.errors).length&&Object.entries(u.errors).every(([d,b])=>o.current.errors[d]===b)?o.current:(o.current=u,u)},[e,a]),c=_react.useSyncExternalStore.call(void 0, e.subscribe.bind(e),g,g),s=_react.useCallback.call(void 0, async()=>{let u=await e.validate({scope:a}),d=e.getStepErrors(a);return{valid:u,errors:d}},[e,a]),n=_react.useCallback.call(void 0, ()=>e.getStepErrors(a),[e,a]),m=_react.useCallback.call(void 0, async()=>{let u=await e.validate({scope:a});if(u)i(d=>Math.min(d+1,t.length-1));else{let d=e.getStepErrors(a),b=Object.keys(d);b.length>0&&e.markFieldsTouched(b)}return u},[e,a,t.length]),l=_react.useCallback.call(void 0, ()=>{i(u=>Math.max(u-1,0))},[]),f=_react.useCallback.call(void 0, u=>{i(Math.max(0,Math.min(u-1,t.length-1)))},[t.length]),h=r===0,v=r>=t.length-1;return{step:r+1,stepIndex:r,scope:a,next:m,prev:l,goTo:f,isFirst:h,isLast:v,status:c,errors:c.errors,isValid:!c.hasErrors,isDirty:c.isDirty,validate:s,getErrors:n}}function jt(t){let e=S(),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let o=_chunkACHDD75Tcjs.e.call(void 0, e.getState().values,t);return r.current!==null&&_chunkACHDD75Tcjs.d.call(void 0, r.current,o)?r.current:(r.current=o,o)},[e,t]),a=_react.useCallback.call(void 0, o=>e.subscribe(o),[e]);return _react.useSyncExternalStore.call(void 0, a,i,i)}function Wt(t,e){let r=S(),i=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>(e&&r.registerField(t,e),()=>{r.unregisterField&&r.unregisterField(t)}),[r,t,e]);let a=_react.useCallback.call(void 0, ()=>{let n=r.getState(),m=_chunkACHDD75Tcjs.e.call(void 0, n.values,t),l=n.errors[t],f=!!n.touched[t],h=r.isHidden(t),v=r.isRequired(t),u=r.isFieldDirty(t),d=r.isFieldValidating(t);if(i.current&&i.current.value===m&&i.current.error===l&&i.current.touched===f&&i.current.isHidden===h&&i.current.isRequired===v&&i.current.isDirty===u&&i.current.isValidating===d)return i.current;let b={value:m,error:l,touched:f,isHidden:h,isRequired:v,isDirty:u,isValidating:d};return i.current=b,b},[r,t]),o=_react.useCallback.call(void 0, n=>r.subscribe(n),[r]),g=_react.useSyncExternalStore.call(void 0, o,a,a),c=_react.useCallback.call(void 0, n=>r.setField(t,n),[r,t]),s=_react.useCallback.call(void 0, ()=>r.blurField(t),[r,t]);return{fieldState:g,setValue:c,setBlur:s,store:r}}exports.a = nt; exports.b = S; exports.c = ct; exports.d = Wt; exports.e = ht; exports.f = Ft; exports.g = It; exports.h = jt;
|
|
2
|
+
//# sourceMappingURL=chunk-M4QDZTNK.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/leandrocarol/Projetos/bit-form/dist/chunk-XIDR3J47.cjs","../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts"],"names":["BitContext","createContext","BitFormProvider","store","children","jsx","useBitStore","useContext","useBitForm","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","useRef","getMetaSnapshot","useCallback","state","isValid","isDirty","isSubmitting","canUndo","canRedo","nextMeta","metaState","useSyncExternalStore","submit","onSuccess","e","onSubmit","handler","values","result","err","isValidationErrorShape","extractServerErrors","reset","getValues","getErrors","getTouched","actions","useMemo","generateId","useBitArray","path","getSnapshot","value","getDeepValue","data","ids","setIds","useEffect","prevIds","diff","methods","prev","index","newIds","_","i","from","to","item","indexA","indexB","items"],"mappings":"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","file":"/Users/leandrocarol/Projetos/bit-form/dist/chunk-XIDR3J47.cjs","sourcesContent":[null,"import React, { createContext, useContext } from \"react\";\nimport { BitStore } from \"../core\";\n\nconst BitContext = createContext<BitStore<any> | null>(null);\n\nexport const BitFormProvider = ({\n store,\n children,\n}: {\n store: BitStore<any>;\n children: React.ReactNode;\n}) => <BitContext.Provider value={store}>{children}</BitContext.Provider>;\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitStore<T>;\n};\n","import { useCallback, useSyncExternalStore, useMemo, useRef, useState } from \"react\";\nimport { useBitStore } from \"./context\";\nimport { isValidationErrorShape, extractServerErrors } from \"../core/utils\";\n\nexport function useBitForm<T extends object>() {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n\n const lastMeta = useRef<{\n isValid: boolean;\n isDirty: boolean;\n isSubmitting: boolean;\n canUndo: boolean;\n canRedo: boolean;\n } | null>(null);\n\n const getMetaSnapshot = useCallback(() => {\n const state = store.getState();\n const { isValid, isDirty, isSubmitting } = state;\n const canUndo = store.canUndo;\n const canRedo = store.canRedo;\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === isValid &&\n lastMeta.current.isDirty === isDirty &&\n lastMeta.current.isSubmitting === isSubmitting &&\n lastMeta.current.canUndo === canUndo &&\n lastMeta.current.canRedo === canRedo\n ) {\n return lastMeta.current;\n }\n\n const nextMeta = { isValid, isDirty, isSubmitting, canUndo, canRedo };\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const metaState = useSyncExternalStore(\n store.subscribe.bind(store),\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const submit = useCallback(\n (onSuccess: (values: T) => void | Promise<void>) => {\n return (e?: { preventDefault: () => void }) => {\n e?.preventDefault?.();\n return store.submit(onSuccess);\n };\n },\n [store],\n );\n\n const onSubmit = useCallback(\n (handler: (values: T) => Promise<unknown>) => {\n return (e?: { preventDefault: () => void }) => {\n e?.preventDefault?.();\n setSubmitError(null);\n\n return store.submit(async (values) => {\n try {\n const result = await handler(values);\n setLastResponse(result);\n setSubmitError(null);\n } catch (err) {\n if (isValidationErrorShape(err)) {\n store.setServerErrors(extractServerErrors(err));\n } else {\n setSubmitError(\n err instanceof Error ? err : new Error(String(err)),\n );\n }\n }\n });\n };\n },\n [store],\n );\n\n const reset = useCallback(() => {\n store.reset();\n setSubmitError(null);\n setLastResponse(null);\n }, [store]);\n\n const getValues = useCallback(() => store.getState().values, [store]);\n const getErrors = useCallback(() => store.getState().errors, [store]);\n const getTouched = useCallback(() => store.getState().touched, [store]);\n\n const actions = useMemo(\n () => ({\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n setValues: store.setValues.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n reset,\n validate: store.validate.bind(store),\n registerMask: store.registerMask.bind(store),\n pushItem: store.pushItem.bind(store),\n removeItem: store.removeItem.bind(store),\n prependItem: store.prependItem.bind(store),\n insertItem: store.insertItem.bind(store),\n moveItem: store.moveItem.bind(store),\n swapItems: store.swapItems.bind(store),\n undo: store.undo.bind(store),\n redo: store.redo.bind(store),\n }),\n [store, reset],\n );\n\n return {\n ...metaState,\n getValues,\n getErrors,\n getTouched,\n submit,\n onSubmit,\n submitError,\n lastResponse,\n ...actions,\n reset,\n store,\n };\n}\n","import {\n useCallback,\n useSyncExternalStore,\n useState,\n useMemo,\n useEffect,\n} from \"react\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\n\nconst generateId = () => Math.random().toString(36).substring(2, 9);\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = useCallback(() => {\n const state = store.getState();\n const value = getDeepValue(state.values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(value) ? (value as Item[]) : [];\n }, [store, path]);\n\n const data = useSyncExternalStore(\n store.subscribe.bind(store),\n getSnapshot,\n getSnapshot,\n );\n\n const [ids, setIds] = useState<string[]>(() =>\n (data as Item[]).map(generateId),\n );\n\n useEffect(() => {\n if (data.length !== ids.length) {\n setIds((prevIds) => {\n if (data.length > prevIds.length) {\n const diff = data.length - prevIds.length;\n return [...prevIds, ...Array(diff).fill(null).map(generateId)];\n }\n return prevIds.slice(0, data.length);\n });\n }\n }, [data.length]);\n\n const methods = useMemo(\n () => ({\n append: (value: Item) => {\n setIds((prev) => [...prev, generateId()]);\n store.pushItem(path, value);\n },\n prepend: (value: Item) => {\n setIds((prev) => [generateId(), ...prev]);\n store.prependItem(path, value);\n },\n insert: (index: number, value: Item) => {\n setIds((prev) => {\n const newIds = [...prev];\n newIds.splice(index, 0, generateId());\n return newIds;\n });\n store.insertItem(path, index, value);\n },\n remove: (index: number) => {\n setIds((prev) => prev.filter((_, i) => i !== index));\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n setIds((prev) => {\n const newIds = [...prev];\n const [item] = newIds.splice(from, 1);\n newIds.splice(to, 0, item);\n return newIds;\n });\n store.moveItem(path, from, to);\n },\n swap: (indexA: number, indexB: number) => {\n setIds((prev) => {\n const newIds = [...prev];\n [newIds[indexA], newIds[indexB]] = [newIds[indexB], newIds[indexA]];\n return newIds;\n });\n store.swapItems(path, indexA, indexB);\n },\n replace: (items: Item[]) => {\n setIds(items.map(generateId));\n store.setField(path as unknown as BitPath<TForm>, items as any);\n },\n clear: () => {\n setIds([]);\n store.setField(path as unknown as BitPath<TForm>, [] as any);\n },\n }),\n [store, path],\n );\n\n const fields = useMemo(\n () =>\n (data as Item[]).map((item: Item, index: number) => ({\n key: ids[index] || `temp-${index}`,\n value: item,\n index,\n })),\n [data, ids],\n );\n\n return {\n fields,\n length: data.length,\n ...methods,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/Users/leandrocarol/Projetos/bit-form/dist/chunk-M4QDZTNK.cjs","../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts"],"names":["BitContext","createContext","BitFormProvider","store","children","jsx","useBitStore","useContext","useBitForm","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","useRef","getMetaSnapshot","useCallback","state","isValid","isDirty","isSubmitting","canUndo","canRedo","nextMeta","metaState","useSyncExternalStore","submit","onSuccess","e","onSubmit","handler","values","result","err","isValidationErrorShape","extractServerErrors","reset","getValues","getErrors","getTouched","actions","useMemo","generateId","useBitArray","path","getSnapshot","value","getDeepValue","data","ids","setIds","useEffect","prevIds","diff","methods","prev","index","newIds","_","i","from","to","item","indexA","indexB","items"],"mappings":"AAAA,yuBAA6D,8BCAZ,+CAW3C,IARAA,CAAAA,CAAaC,kCAAAA,IAAwC,CAAA,CAE9CC,EAAAA,aAAkB,CAAC,CAC9B,KAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CACF,CAAA,CAAA,EAGMC,6BAAAA,CAACL,CAAW,QAAA,CAAX,CAAoB,KAAA,CAAOG,CAAAA,CAAQ,QAAA,CAAAC,CAAAA,CAAS,CAAA,CAEtCE,CAAAA,aAAc,CAAA,CAAA,EAAwB,CACjD,IAAMH,CAAAA,CAAQI,+BAAAA,CAAqB,CAAA,CACnC,EAAA,CAAI,CAACJ,CAAAA,CACH,MAAM,IAAI,KAAA,CACR,6DACF,CAAA,CACF,OAAOA,CACT,CAAA,CCpBA,SAIgBK,EAAAA,CAAAA,CAA+B,CAC7C,IAAML,CAAAA,CAAQG,CAAAA,CAAe,CAAA,CAEvB,CAACG,CAAAA,CAAaC,CAAc,CAAA,CAAIC,6BAAAA,IAA2B,CAAA,CAC3D,CAACC,CAAAA,CAAcC,CAAe,CAAA,CAAIF,6BAAAA,IAAsB,CAAA,CAExDG,CAAAA,CAAWC,2BAAAA,IAMH,CAAA,CAERC,CAAAA,CAAkBC,gCAAAA,CAAY,CAAA,EAAM,CACxC,IAAMC,CAAAA,CAAQf,CAAAA,CAAM,QAAA,CAAS,CAAA,CACvB,CAAE,OAAA,CAAAgB,CAAAA,CAAS,OAAA,CAAAC,CAAAA,CAAS,YAAA,CAAAC,CAAa,CAAA,CAAIH,CAAAA,CACrCI,CAAAA,CAAUnB,CAAAA,CAAM,OAAA,CAChBoB,CAAAA,CAAUpB,CAAAA,CAAM,OAAA,CAEtB,EAAA,CACEW,CAAAA,CAAS,OAAA,EACTA,CAAAA,CAAS,OAAA,CAAQ,OAAA,GAAYK,CAAAA,EAC7BL,CAAAA,CAAS,OAAA,CAAQ,OAAA,GAAYM,CAAAA,EAC7BN,CAAAA,CAAS,OAAA,CAAQ,YAAA,GAAiBO,CAAAA,EAClCP,CAAAA,CAAS,OAAA,CAAQ,OAAA,GAAYQ,CAAAA,EAC7BR,CAAAA,CAAS,OAAA,CAAQ,OAAA,GAAYS,CAAAA,CAE7B,OAAOT,CAAAA,CAAS,OAAA,CAGlB,IAAMU,CAAAA,CAAW,CAAE,OAAA,CAAAL,CAAAA,CAAS,OAAA,CAAAC,CAAAA,CAAS,YAAA,CAAAC,CAAAA,CAAc,OAAA,CAAAC,CAAAA,CAAS,OAAA,CAAAC,CAAQ,CAAA,CACpE,OAAAT,CAAAA,CAAS,OAAA,CAAUU,CAAAA,CACZA,CACT,CAAA,CAAG,CAACrB,CAAK,CAAC,CAAA,CAEJsB,CAAAA,CAAYC,yCAAAA,CAChBvB,CAAM,SAAA,CAAU,IAAA,CAAKA,CAAK,CAAA,CAC1Ba,CAAAA,CACAA,CACF,CAAA,CAEMW,CAAAA,CAASV,gCAAAA,CACZW,EACSC,CAAAA,EAAAA,iBACNA,CAAAA,6BAAG,cAAA,0BAAA,CAAiB,GAAA,CACb1B,CAAAA,CAAM,MAAA,CAAOyB,CAAS,CAAA,CAAA,CAGjC,CAACzB,CAAK,CACR,CAAA,CAEM2B,CAAAA,CAAWb,gCAAAA,CACdc,EACSF,CAAAA,EAAAA,iBACNA,CAAAA,6BAAG,cAAA,0BAAA,CAAiB,GAAA,CACpBnB,CAAAA,CAAe,IAAI,CAAA,CAEZP,CAAAA,CAAM,MAAA,CAAO,MAAO6B,CAAAA,EAAW,CACpC,GAAI,CACF,IAAMC,CAAAA,CAAS,MAAMF,CAAAA,CAAQC,CAAM,CAAA,CACnCnB,CAAAA,CAAgBoB,CAAM,CAAA,CACtBvB,CAAAA,CAAe,IAAI,CACrB,CAAA,KAAA,CAASwB,CAAAA,CAAK,CACRC,iCAAAA,CAA0B,CAAA,CAC5BhC,CAAAA,CAAM,eAAA,CAAgBiC,iCAAAA,CAAuB,CAAC,CAAA,CAE9C1B,CAAAA,CACEwB,EAAAA,WAAe,KAAA,CAAQA,CAAAA,CAAM,IAAI,KAAA,CAAM,MAAA,CAAOA,CAAG,CAAC,CACpD,CAEJ,CACF,CAAC,CAAA,CAAA,CAGL,CAAC/B,CAAK,CACR,CAAA,CAEMkC,CAAAA,CAAQpB,gCAAAA,CAAY,CAAA,EAAM,CAC9Bd,CAAAA,CAAM,KAAA,CAAM,CAAA,CACZO,CAAAA,CAAe,IAAI,CAAA,CACnBG,CAAAA,CAAgB,IAAI,CACtB,CAAA,CAAG,CAACV,CAAK,CAAC,CAAA,CAEJmC,CAAAA,CAAYrB,gCAAAA,CAAY,CAAA,EAAMd,CAAAA,CAAM,QAAA,CAAS,CAAA,CAAE,MAAA,CAAQ,CAACA,CAAK,CAAC,CAAA,CAC9DoC,CAAAA,CAAYtB,gCAAAA,CAAY,CAAA,EAAMd,CAAAA,CAAM,QAAA,CAAS,CAAA,CAAE,MAAA,CAAQ,CAACA,CAAK,CAAC,CAAA,CAC9DqC,CAAAA,CAAavB,gCAAAA,CAAY,CAAA,EAAMd,CAAAA,CAAM,QAAA,CAAS,CAAA,CAAE,OAAA,CAAS,CAACA,CAAK,CAAC,CAAA,CAEhEsC,CAAAA,CAAUC,4BAAAA,CACd,CAAA,EAAA,CAAO,CACL,QAAA,CAAUvC,CAAAA,CAAM,QAAA,CAAS,IAAA,CAAKA,CAAK,CAAA,CACnC,SAAA,CAAWA,CAAAA,CAAM,SAAA,CAAU,IAAA,CAAKA,CAAK,CAAA,CACrC,SAAA,CAAWA,CAAAA,CAAM,SAAA,CAAU,IAAA,CAAKA,CAAK,CAAA,CACrC,QAAA,CAAUA,CAAAA,CAAM,QAAA,CAAS,IAAA,CAAKA,CAAK,CAAA,CACnC,SAAA,CAAWA,CAAAA,CAAM,SAAA,CAAU,IAAA,CAAKA,CAAK,CAAA,CACrC,eAAA,CAAiBA,CAAAA,CAAM,eAAA,CAAgB,IAAA,CAAKA,CAAK,CAAA,CACjD,KAAA,CAAAkC,CAAAA,CACA,QAAA,CAAUlC,CAAAA,CAAM,QAAA,CAAS,IAAA,CAAKA,CAAK,CAAA,CACnC,YAAA,CAAcA,CAAAA,CAAM,YAAA,CAAa,IAAA,CAAKA,CAAK,CAAA,CAC3C,QAAA,CAAUA,CAAAA,CAAM,QAAA,CAAS,IAAA,CAAKA,CAAK,CAAA,CACnC,UAAA,CAAYA,CAAAA,CAAM,UAAA,CAAW,IAAA,CAAKA,CAAK,CAAA,CACvC,WAAA,CAAaA,CAAAA,CAAM,WAAA,CAAY,IAAA,CAAKA,CAAK,CAAA,CACzC,UAAA,CAAYA,CAAAA,CAAM,UAAA,CAAW,IAAA,CAAKA,CAAK,CAAA,CACvC,QAAA,CAAUA,CAAAA,CAAM,QAAA,CAAS,IAAA,CAAKA,CAAK,CAAA,CACnC,SAAA,CAAWA,CAAAA,CAAM,SAAA,CAAU,IAAA,CAAKA,CAAK,CAAA,CACrC,IAAA,CAAMA,CAAAA,CAAM,IAAA,CAAK,IAAA,CAAKA,CAAK,CAAA,CAC3B,IAAA,CAAMA,CAAAA,CAAM,IAAA,CAAK,IAAA,CAAKA,CAAK,CAC7B,CAAA,CAAA,CACA,CAACA,CAAAA,CAAOkC,CAAK,CACf,CAAA,CAEA,MAAO,CACL,GAAGZ,CAAAA,CACH,SAAA,CAAAa,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,MAAA,CAAAb,CAAAA,CACA,QAAA,CAAAG,CAAAA,CACA,WAAA,CAAArB,CAAAA,CACA,YAAA,CAAAG,CAAAA,CACA,GAAG6B,CAAAA,CACH,KAAA,CAAAJ,CAAAA,CACA,KAAA,CAAAlC,CACF,CACF,CChIA,IAgBMwC,CAAAA,CAAa,CAAA,CAAA,EAAM,IAAA,CAAK,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,SAAA,CAAU,CAAA,CAAG,CAAC,CAAA,CAE3D,SAASC,EAAAA,CAGdC,CAAAA,CAAS,CACT,IAAM1C,CAAAA,CAAQG,CAAAA,CAAmB,CAAA,CAI3BwC,CAAAA,CAAc7B,gCAAAA,CAAY,CAAA,EAAM,CACpC,IAAMC,CAAAA,CAAQf,CAAAA,CAAM,QAAA,CAAS,CAAA,CACvB4C,CAAAA,CAAQC,iCAAAA,CAAa9B,CAAM,MAAA,CAAQ2B,CAAc,CAAA,CAGvD,OAAO,KAAA,CAAM,OAAA,CAAQE,CAAK,CAAA,CAAKA,CAAAA,CAAmB,CAAC,CACrD,CAAA,CAAG,CAAC5C,CAAAA,CAAO0C,CAAI,CAAC,CAAA,CAEVI,CAAAA,CAAOvB,yCAAAA,CACXvB,CAAM,SAAA,CAAU,IAAA,CAAKA,CAAK,CAAA,CAC1B2C,CAAAA,CACAA,CACF,CAAA,CAEM,CAACI,CAAAA,CAAKC,CAAM,CAAA,CAAIxC,6BAAAA,CAAmB,CAAA,EACtCsC,CAAAA,CAAgB,GAAA,CAAIN,CAAU,CACjC,CAAA,CAEAS,8BAAAA,CAAU,CAAA,EAAM,CACVH,CAAAA,CAAK,MAAA,GAAWC,CAAAA,CAAI,MAAA,EACtBC,CAAAA,CAAQE,CAAAA,EAAY,CAClB,EAAA,CAAIJ,CAAAA,CAAK,MAAA,CAASI,CAAAA,CAAQ,MAAA,CAAQ,CAChC,IAAMC,CAAAA,CAAOL,CAAAA,CAAK,MAAA,CAASI,CAAAA,CAAQ,MAAA,CACnC,MAAO,CAAC,GAAGA,CAAAA,CAAS,GAAG,KAAA,CAAMC,CAAI,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,CAAE,GAAA,CAAIX,CAAU,CAAC,CAC/D,CACA,OAAOU,CAAAA,CAAQ,KAAA,CAAM,CAAA,CAAGJ,CAAAA,CAAK,MAAM,CACrC,CAAC,CAEL,CAAA,CAAG,CAACA,CAAAA,CAAK,MAAM,CAAC,CAAA,CAEhB,IAAMM,CAAAA,CAAUb,4BAAAA,CACd,CAAA,EAAA,CAAO,CACL,MAAA,CAASK,CAAAA,EAAgB,CACvBI,CAAAA,CAAQK,CAAAA,EAAS,CAAC,GAAGA,CAAAA,CAAMb,CAAAA,CAAW,CAAC,CAAC,CAAA,CACxCxC,CAAAA,CAAM,QAAA,CAAS0C,CAAAA,CAAME,CAAK,CAC5B,CAAA,CACA,OAAA,CAAUA,CAAAA,EAAgB,CACxBI,CAAAA,CAAQK,CAAAA,EAAS,CAACb,CAAAA,CAAW,CAAA,CAAG,GAAGa,CAAI,CAAC,CAAA,CACxCrD,CAAAA,CAAM,WAAA,CAAY0C,CAAAA,CAAME,CAAK,CAC/B,CAAA,CACA,MAAA,CAAQ,CAACU,CAAAA,CAAeV,CAAAA,CAAAA,EAAgB,CACtCI,CAAAA,CAAQK,CAAAA,EAAS,CACf,IAAME,CAAAA,CAAS,CAAC,GAAGF,CAAI,CAAA,CACvB,OAAAE,CAAAA,CAAO,MAAA,CAAOD,CAAAA,CAAO,CAAA,CAAGd,CAAAA,CAAW,CAAC,CAAA,CAC7Be,CACT,CAAC,CAAA,CACDvD,CAAAA,CAAM,UAAA,CAAW0C,CAAAA,CAAMY,CAAAA,CAAOV,CAAK,CACrC,CAAA,CACA,MAAA,CAASU,CAAAA,EAAkB,CACzBN,CAAAA,CAAQK,CAAAA,EAASA,CAAAA,CAAK,MAAA,CAAO,CAACG,CAAAA,CAAGC,CAAAA,CAAAA,EAAMA,CAAAA,GAAMH,CAAK,CAAC,CAAA,CACnDtD,CAAAA,CAAM,UAAA,CAAW0C,CAAAA,CAAMY,CAAK,CAC9B,CAAA,CACA,IAAA,CAAM,CAACI,CAAAA,CAAcC,CAAAA,CAAAA,EAAe,CAClCX,CAAAA,CAAQK,CAAAA,EAAS,CACf,IAAME,CAAAA,CAAS,CAAC,GAAGF,CAAI,CAAA,CACjB,CAACO,CAAI,CAAA,CAAIL,CAAAA,CAAO,MAAA,CAAOG,CAAAA,CAAM,CAAC,CAAA,CACpC,OAAAH,CAAAA,CAAO,MAAA,CAAOI,CAAAA,CAAI,CAAA,CAAGC,CAAI,CAAA,CAClBL,CACT,CAAC,CAAA,CACDvD,CAAAA,CAAM,QAAA,CAAS0C,CAAAA,CAAMgB,CAAAA,CAAMC,CAAE,CAC/B,CAAA,CACA,IAAA,CAAM,CAACE,CAAAA,CAAgBC,CAAAA,CAAAA,EAAmB,CACxCd,CAAAA,CAAQK,CAAAA,EAAS,CACf,IAAME,CAAAA,CAAS,CAAC,GAAGF,CAAI,CAAA,CACvB,MAAA,CAACE,CAAAA,CAAOM,CAAM,CAAA,CAAGN,CAAAA,CAAOO,CAAM,CAAC,CAAA,CAAI,CAACP,CAAAA,CAAOO,CAAM,CAAA,CAAGP,CAAAA,CAAOM,CAAM,CAAC,CAAA,CAC3DN,CACT,CAAC,CAAA,CACDvD,CAAAA,CAAM,SAAA,CAAU0C,CAAAA,CAAMmB,CAAAA,CAAQC,CAAM,CACtC,CAAA,CACA,OAAA,CAAUC,CAAAA,EAAkB,CAC1Bf,CAAAA,CAAOe,CAAAA,CAAM,GAAA,CAAIvB,CAAU,CAAC,CAAA,CAC5BxC,CAAAA,CAAM,QAAA,CAAS0C,CAAAA,CAAmCqB,CAAY,CAChE,CAAA,CACA,KAAA,CAAO,CAAA,CAAA,EAAM,CACXf,CAAAA,CAAO,CAAC,CAAC,CAAA,CACThD,CAAAA,CAAM,QAAA,CAAS0C,CAAAA,CAAmC,CAAC,CAAQ,CAC7D,CACF,CAAA,CAAA,CACA,CAAC1C,CAAAA,CAAO0C,CAAI,CACd,CAAA,CAYA,MAAO,CACL,MAAA,CAXaH,4BAAAA,CACb,CAAA,EACGO,CAAAA,CAAgB,GAAA,CAAI,CAACc,CAAAA,CAAYN,CAAAA,CAAAA,EAAAA,CAAmB,CACnD,GAAA,CAAKP,CAAAA,CAAIO,CAAK,CAAA,EAAK,CAAA,KAAA,EAAQA,CAAK,CAAA,CAAA","file":"/Users/leandrocarol/Projetos/bit-form/dist/chunk-M4QDZTNK.cjs","sourcesContent":[null,"import React, { createContext, useContext } from \"react\";\nimport { BitStore } from \"../core\";\n\nconst BitContext = createContext<BitStore<any> | null>(null);\n\nexport const BitFormProvider = ({\n store,\n children,\n}: {\n store: BitStore<any>;\n children: React.ReactNode;\n}) => <BitContext.Provider value={store}>{children}</BitContext.Provider>;\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitStore<T>;\n};\n","import { useCallback, useSyncExternalStore, useMemo, useRef, useState } from \"react\";\nimport { useBitStore } from \"./context\";\nimport { isValidationErrorShape, extractServerErrors } from \"../core/utils\";\n\nexport function useBitForm<T extends object>() {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n\n const lastMeta = useRef<{\n isValid: boolean;\n isDirty: boolean;\n isSubmitting: boolean;\n canUndo: boolean;\n canRedo: boolean;\n } | null>(null);\n\n const getMetaSnapshot = useCallback(() => {\n const state = store.getState();\n const { isValid, isDirty, isSubmitting } = state;\n const canUndo = store.canUndo;\n const canRedo = store.canRedo;\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === isValid &&\n lastMeta.current.isDirty === isDirty &&\n lastMeta.current.isSubmitting === isSubmitting &&\n lastMeta.current.canUndo === canUndo &&\n lastMeta.current.canRedo === canRedo\n ) {\n return lastMeta.current;\n }\n\n const nextMeta = { isValid, isDirty, isSubmitting, canUndo, canRedo };\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const metaState = useSyncExternalStore(\n store.subscribe.bind(store),\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const submit = useCallback(\n (onSuccess: (values: T) => void | Promise<void>) => {\n return (e?: { preventDefault: () => void }) => {\n e?.preventDefault?.();\n return store.submit(onSuccess);\n };\n },\n [store],\n );\n\n const onSubmit = useCallback(\n (handler: (values: T) => Promise<unknown>) => {\n return (e?: { preventDefault: () => void }) => {\n e?.preventDefault?.();\n setSubmitError(null);\n\n return store.submit(async (values) => {\n try {\n const result = await handler(values);\n setLastResponse(result);\n setSubmitError(null);\n } catch (err) {\n if (isValidationErrorShape(err)) {\n store.setServerErrors(extractServerErrors(err));\n } else {\n setSubmitError(\n err instanceof Error ? err : new Error(String(err)),\n );\n }\n }\n });\n };\n },\n [store],\n );\n\n const reset = useCallback(() => {\n store.reset();\n setSubmitError(null);\n setLastResponse(null);\n }, [store]);\n\n const getValues = useCallback(() => store.getState().values, [store]);\n const getErrors = useCallback(() => store.getState().errors, [store]);\n const getTouched = useCallback(() => store.getState().touched, [store]);\n\n const actions = useMemo(\n () => ({\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n setValues: store.setValues.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n reset,\n validate: store.validate.bind(store),\n registerMask: store.registerMask.bind(store),\n pushItem: store.pushItem.bind(store),\n removeItem: store.removeItem.bind(store),\n prependItem: store.prependItem.bind(store),\n insertItem: store.insertItem.bind(store),\n moveItem: store.moveItem.bind(store),\n swapItems: store.swapItems.bind(store),\n undo: store.undo.bind(store),\n redo: store.redo.bind(store),\n }),\n [store, reset],\n );\n\n return {\n ...metaState,\n getValues,\n getErrors,\n getTouched,\n submit,\n onSubmit,\n submitError,\n lastResponse,\n ...actions,\n reset,\n store,\n };\n}\n","import {\n useCallback,\n useSyncExternalStore,\n useState,\n useMemo,\n useEffect,\n} from \"react\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\n\nconst generateId = () => Math.random().toString(36).substring(2, 9);\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = useCallback(() => {\n const state = store.getState();\n const value = getDeepValue(state.values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(value) ? (value as Item[]) : [];\n }, [store, path]);\n\n const data = useSyncExternalStore(\n store.subscribe.bind(store),\n getSnapshot,\n getSnapshot,\n );\n\n const [ids, setIds] = useState<string[]>(() =>\n (data as Item[]).map(generateId),\n );\n\n useEffect(() => {\n if (data.length !== ids.length) {\n setIds((prevIds) => {\n if (data.length > prevIds.length) {\n const diff = data.length - prevIds.length;\n return [...prevIds, ...Array(diff).fill(null).map(generateId)];\n }\n return prevIds.slice(0, data.length);\n });\n }\n }, [data.length]);\n\n const methods = useMemo(\n () => ({\n append: (value: Item) => {\n setIds((prev) => [...prev, generateId()]);\n store.pushItem(path, value);\n },\n prepend: (value: Item) => {\n setIds((prev) => [generateId(), ...prev]);\n store.prependItem(path, value);\n },\n insert: (index: number, value: Item) => {\n setIds((prev) => {\n const newIds = [...prev];\n newIds.splice(index, 0, generateId());\n return newIds;\n });\n store.insertItem(path, index, value);\n },\n remove: (index: number) => {\n setIds((prev) => prev.filter((_, i) => i !== index));\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n setIds((prev) => {\n const newIds = [...prev];\n const [item] = newIds.splice(from, 1);\n newIds.splice(to, 0, item);\n return newIds;\n });\n store.moveItem(path, from, to);\n },\n swap: (indexA: number, indexB: number) => {\n setIds((prev) => {\n const newIds = [...prev];\n [newIds[indexA], newIds[indexB]] = [newIds[indexB], newIds[indexA]];\n return newIds;\n });\n store.swapItems(path, indexA, indexB);\n },\n replace: (items: Item[]) => {\n setIds(items.map(generateId));\n store.setField(path as unknown as BitPath<TForm>, items as any);\n },\n clear: () => {\n setIds([]);\n store.setField(path as unknown as BitPath<TForm>, [] as any);\n },\n }),\n [store, path],\n );\n\n const fields = useMemo(\n () =>\n (data as Item[]).map((item: Item, index: number) => ({\n key: ids[index] || `temp-${index}`,\n value: item,\n index,\n })),\n [data, ids],\n );\n\n return {\n fields,\n length: data.length,\n ...methods,\n };\n}\n"]}
|
package/dist/devtools/bridge.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkACHDD75Tcjs = require('../chunk-ACHDD75T.cjs');exports.setupRemoteBridge = _chunkACHDD75Tcjs.T;
|
|
2
2
|
//# sourceMappingURL=bridge.cjs.map
|
package/dist/devtools/bridge.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{T as a}from"../chunk-
|
|
1
|
+
import{T as a}from"../chunk-AM65OKT2.js";export{a as setupRemoteBridge};
|
|
2
2
|
//# sourceMappingURL=bridge.js.map
|
package/dist/devtools/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkACHDD75Tcjs = require('../chunk-ACHDD75T.cjs');exports.initDevTools = _chunkACHDD75Tcjs.U;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/devtools/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{U as a}from"../chunk-
|
|
1
|
+
import{U as a}from"../chunk-AM65OKT2.js";export{a as initDevTools};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -65,6 +65,7 @@ declare class BitStore<T extends object = any> implements BitStoreAdapter<T>, Bi
|
|
|
65
65
|
watch<P extends BitPath<T>>(path: P, callback: (value: BitPathValue<T, P>) => void): () => void;
|
|
66
66
|
setField<P extends BitPath<T>>(path: P, value: BitPathValue<T, P>): void;
|
|
67
67
|
blurField<P extends BitPath<T>>(path: P): void;
|
|
68
|
+
markFieldsTouched(paths: string[]): void;
|
|
68
69
|
setValues(newValues: T): void;
|
|
69
70
|
setError(path: string, message: string | undefined): void;
|
|
70
71
|
setErrors(errors: BitErrors<T>): void;
|
|
@@ -65,6 +65,7 @@ declare class BitStore<T extends object = any> implements BitStoreAdapter<T>, Bi
|
|
|
65
65
|
watch<P extends BitPath<T>>(path: P, callback: (value: BitPathValue<T, P>) => void): () => void;
|
|
66
66
|
setField<P extends BitPath<T>>(path: P, value: BitPathValue<T, P>): void;
|
|
67
67
|
blurField<P extends BitPath<T>>(path: P): void;
|
|
68
|
+
markFieldsTouched(paths: string[]): void;
|
|
68
69
|
setValues(newValues: T): void;
|
|
69
70
|
setError(path: string, message: string | undefined): void;
|
|
70
71
|
setErrors(errors: BitErrors<T>): void;
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkACHDD75Tcjs = require('./chunk-ACHDD75T.cjs');exports.BitStore = _chunkACHDD75Tcjs.V; exports.bitBus = _chunkACHDD75Tcjs.a; exports.bitMasks = _chunkACHDD75Tcjs.S; exports.cleanPrefixedKeys = _chunkACHDD75Tcjs.g; exports.createCreditCardMask = _chunkACHDD75Tcjs.n; exports.createCurrencyMask = _chunkACHDD75Tcjs.m; exports.createDateMask = _chunkACHDD75Tcjs.o; exports.createPatternMask = _chunkACHDD75Tcjs.l; exports.deepClone = _chunkACHDD75Tcjs.b; exports.deepEqual = _chunkACHDD75Tcjs.d; exports.extractServerErrors = _chunkACHDD75Tcjs.i; exports.getDeepValue = _chunkACHDD75Tcjs.e; exports.isValidationErrorShape = _chunkACHDD75Tcjs.h; exports.maskBRL = _chunkACHDD75Tcjs.p; exports.maskCEP = _chunkACHDD75Tcjs.B; exports.maskCNH = _chunkACHDD75Tcjs.E; exports.maskCNPJ = _chunkACHDD75Tcjs.y; exports.maskCPF = _chunkACHDD75Tcjs.x; exports.maskCVV = _chunkACHDD75Tcjs.L; exports.maskColorHex = _chunkACHDD75Tcjs.O; exports.maskCreditCard = _chunkACHDD75Tcjs.K; exports.maskDate = _chunkACHDD75Tcjs.C; exports.maskDateISO = _chunkACHDD75Tcjs.M; exports.maskDateUS = _chunkACHDD75Tcjs.I; exports.maskDecimal = _chunkACHDD75Tcjs.v; exports.maskEUR = _chunkACHDD75Tcjs.r; exports.maskGBP = _chunkACHDD75Tcjs.s; exports.maskIBAN = _chunkACHDD75Tcjs.R; exports.maskIPv4 = _chunkACHDD75Tcjs.P; exports.maskIPv6 = _chunkACHDD75Tcjs.Q; exports.maskInteger = _chunkACHDD75Tcjs.w; exports.maskJPY = _chunkACHDD75Tcjs.t; exports.maskLandline = _chunkACHDD75Tcjs.A; exports.maskMacAddress = _chunkACHDD75Tcjs.N; exports.maskPercent = _chunkACHDD75Tcjs.u; exports.maskPhone = _chunkACHDD75Tcjs.z; exports.maskRG = _chunkACHDD75Tcjs.F; exports.maskSSN = _chunkACHDD75Tcjs.J; exports.maskTime = _chunkACHDD75Tcjs.D; exports.maskUSD = _chunkACHDD75Tcjs.q; exports.maskUSPhone = _chunkACHDD75Tcjs.G; exports.maskZipCode = _chunkACHDD75Tcjs.H; exports.setDeepValue = _chunkACHDD75Tcjs.f; exports.unmask = _chunkACHDD75Tcjs.j; exports.unmaskCurrency = _chunkACHDD75Tcjs.k; exports.valueEqual = _chunkACHDD75Tcjs.c;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { B as BitStore } from './index-
|
|
1
|
+
export { B as BitStore } from './index-CAsZliSy.cjs';
|
|
2
2
|
import { P as PatternMaskOptions, B as BitMask, C as CurrencyMaskConfig, D as DateMaskConfig } from './bus-DAwKIiMY.cjs';
|
|
3
3
|
export { a as BitArrayItem, b as BitArrayPath, c as BitComputedFn, d as BitConfig, e as BitErrors, f as BitFieldConditional, g as BitFieldDefinition, h as BitFieldOptions, i as BitFieldValidation, j as BitHistoryConfig, k as BitPath, l as BitPathValue, m as BitState, n as BitTouched, o as BitTransformFn, p as BitValidationConfig, S as ScopeStatus, V as ValidateScopeResult, q as ValidatorFn, r as bitBus } from './bus-DAwKIiMY.cjs';
|
|
4
4
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { B as BitStore } from './index-
|
|
1
|
+
export { B as BitStore } from './index-_zEeufKs.js';
|
|
2
2
|
import { P as PatternMaskOptions, B as BitMask, C as CurrencyMaskConfig, D as DateMaskConfig } from './bus-DAwKIiMY.js';
|
|
3
3
|
export { a as BitArrayItem, b as BitArrayPath, c as BitComputedFn, d as BitConfig, e as BitErrors, f as BitFieldConditional, g as BitFieldDefinition, h as BitFieldOptions, i as BitFieldValidation, j as BitHistoryConfig, k as BitPath, l as BitPathValue, m as BitState, n as BitTouched, o as BitTransformFn, p as BitValidationConfig, S as ScopeStatus, V as ValidateScopeResult, q as ValidatorFn, r as bitBus } from './bus-DAwKIiMY.js';
|
|
4
4
|
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,V as T,a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i,p as j,q as k,r as l,s as n,t as q,u as s,v as u,w as v,x as w,y,z}from"./chunk-
|
|
1
|
+
import{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,V as T,a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i,p as j,q as k,r as l,s as n,t as q,u as s,v as u,w as v,x as w,y,z}from"./chunk-AM65OKT2.js";export{T as BitStore,o as bitBus,S as bitMasks,t as cleanPrefixedKeys,h as createCreditCardMask,g as createCurrencyMask,i as createDateMask,d as createPatternMask,r as deepClone,f as deepEqual,a as extractServerErrors,m as getDeepValue,x as isValidationErrorShape,j as maskBRL,B as maskCEP,E as maskCNH,y as maskCNPJ,w as maskCPF,L as maskCVV,O as maskColorHex,K as maskCreditCard,C as maskDate,M as maskDateISO,I as maskDateUS,u as maskDecimal,l as maskEUR,n as maskGBP,R as maskIBAN,P as maskIPv4,Q as maskIPv6,v as maskInteger,q as maskJPY,A as maskLandline,N as maskMacAddress,s as maskPercent,z as maskPhone,F as maskRG,J as maskSSN,D as maskTime,k as maskUSD,G as maskUSPhone,H as maskZipCode,p as setDeepValue,b as unmask,c as unmaskCurrency,e as valueEqual};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkM4QDZTNKcjs = require('../chunk-M4QDZTNK.cjs');require('../chunk-ACHDD75T.cjs');var _react = require('react');function M(o,u){let{fieldState:i,setValue:s,setBlur:l,store:r}=_chunkM4QDZTNKcjs.d.call(void 0, o),t=_react.useMemo.call(void 0, ()=>{let e=_nullishCoalesce(_optionalChain([u, 'optionalAccess', _ => _.mask]), () => (_optionalChain([r, 'access', _2 => _2.config, 'access', _3 => _3.fields, 'optionalAccess', _4 => _4[o], 'optionalAccess', _5 => _5.mask])));if(e)return typeof e=="string"?r.config.masks[e]:e},[_optionalChain([u, 'optionalAccess', _6 => _6.mask]),r.config.masks,r.config.fields,o]),m=_react.useMemo.call(void 0, ()=>{let e=i.value;return e==null||e===""?"":t?t.format(e):String(e)},[i.value,t]),d=_react.useCallback.call(void 0, e=>{if(!t){s(e);return}s(t.parse(String(_nullishCoalesce(e, () => ("")))))},[t,s]),{isHidden:f,isRequired:p,value:x,error:a,touched:n,isDirty:c,isValidating:B}=i;return{value:x,displayValue:m,error:n?a:void 0,touched:n,invalid:!!(n&&a),isValidating:B,isDirty:c,isHidden:f,isRequired:p,fieldMeta:{isDirty:c,isValidating:B,isHidden:f,isRequired:p,hasError:!!a},setValue:d,setBlur:l,props:{value:m,onChange:e=>{let P=_optionalChain([e, 'optionalAccess', _7 => _7.target])?e.target.value:e;d(P)},onBlur:l}}}exports.BitFormProvider = _chunkM4QDZTNKcjs.a; exports.useBitArray = _chunkM4QDZTNKcjs.e; exports.useBitField = M; exports.useBitForm = _chunkM4QDZTNKcjs.c; exports.useBitScope = _chunkM4QDZTNKcjs.f; exports.useBitSteps = _chunkM4QDZTNKcjs.g; exports.useBitStore = _chunkM4QDZTNKcjs.b; exports.useBitWatch = _chunkM4QDZTNKcjs.h;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/react/index.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { B as BitFormProvider, U as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-
|
|
1
|
+
export { B as BitFormProvider, U as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-DuG0-qkf.cjs';
|
|
2
2
|
import { k as BitPath, h as BitFieldOptions, l as BitPathValue } from '../bus-DAwKIiMY.cjs';
|
|
3
3
|
export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-DAwKIiMY.cjs';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react';
|
|
6
|
-
import '../index-
|
|
6
|
+
import '../index-CAsZliSy.cjs';
|
|
7
7
|
|
|
8
8
|
declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P, options?: BitFieldOptions): {
|
|
9
9
|
value: BitPathValue<TForm, P>;
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { B as BitFormProvider, U as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-
|
|
1
|
+
export { B as BitFormProvider, U as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-paD4Vkvz.js';
|
|
2
2
|
import { k as BitPath, h as BitFieldOptions, l as BitPathValue } from '../bus-DAwKIiMY.js';
|
|
3
3
|
export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-DAwKIiMY.js';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react';
|
|
6
|
-
import '../index-
|
|
6
|
+
import '../index-_zEeufKs.js';
|
|
7
7
|
|
|
8
8
|
declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P, options?: BitFieldOptions): {
|
|
9
9
|
value: BitPathValue<TForm, P>;
|
package/dist/react/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as v,b as S,c as y,d as F,e as h,f as V,g as k,h as T}from"../chunk-
|
|
1
|
+
import{a as v,b as S,c as y,d as F,e as h,f as V,g as k,h as T}from"../chunk-E6WTGKQ6.js";import"../chunk-AM65OKT2.js";import{useMemo as g,useCallback as b}from"react";function M(o,u){let{fieldState:i,setValue:s,setBlur:l,store:r}=F(o),t=g(()=>{let e=u?.mask??r.config.fields?.[o]?.mask;if(e)return typeof e=="string"?r.config.masks[e]:e},[u?.mask,r.config.masks,r.config.fields,o]),m=g(()=>{let e=i.value;return e==null||e===""?"":t?t.format(e):String(e)},[i.value,t]),d=b(e=>{if(!t){s(e);return}s(t.parse(String(e??"")))},[t,s]),{isHidden:f,isRequired:p,value:x,error:a,touched:n,isDirty:c,isValidating:B}=i;return{value:x,displayValue:m,error:n?a:void 0,touched:n,invalid:!!(n&&a),isValidating:B,isDirty:c,isHidden:f,isRequired:p,fieldMeta:{isDirty:c,isValidating:B,isHidden:f,isRequired:p,hasError:!!a},setValue:d,setBlur:l,props:{value:m,onChange:e=>{let P=e?.target?e.target.value:e;d(P)},onBlur:l}}}export{v as BitFormProvider,h as useBitArray,M as useBitField,y as useBitForm,V as useBitScope,k as useBitSteps,S as useBitStore,T as useBitWatch};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkM4QDZTNKcjs = require('../chunk-M4QDZTNK.cjs');require('../chunk-ACHDD75T.cjs');var _react = require('react');function V(i,n){let{fieldState:s,setValue:o,setBlur:u,store:t}=_chunkM4QDZTNKcjs.d.call(void 0, i),r=_react.useMemo.call(void 0, ()=>{let e=_nullishCoalesce(_optionalChain([n, 'optionalAccess', _ => _.mask]), () => (_optionalChain([t, 'access', _2 => _2.config, 'access', _3 => _3.fields, 'optionalAccess', _4 => _4[i], 'optionalAccess', _5 => _5.mask])));if(e)return typeof e=="string"?t.config.masks[e]:e},[_optionalChain([n, 'optionalAccess', _6 => _6.mask]),t.config.masks,t.config.fields,i]),l=_react.useMemo.call(void 0, ()=>{let e=s.value;return e==null||e===""?"":r?r.format(e):String(e)},[s.value,r]),c=_react.useCallback.call(void 0, e=>{if(!r){o(e);return}o(r.parse(String(_nullishCoalesce(e, () => ("")))))},[r,o]),{isHidden:B,isRequired:p,value:F,error:d,touched:a}=s;return{value:F,displayValue:l,error:a?d:void 0,touched:a,invalid:!!(a&&d),isValidating:t.isFieldValidating(i),isDirty:t.isFieldDirty(i),isHidden:B,isRequired:p,setValue:o,setBlur:u,props:{value:l,onChangeText:c,onBlur:u}}}exports.BitFormProvider = _chunkM4QDZTNKcjs.a; exports.useBitArray = _chunkM4QDZTNKcjs.e; exports.useBitField = V; exports.useBitForm = _chunkM4QDZTNKcjs.c; exports.useBitScope = _chunkM4QDZTNKcjs.f; exports.useBitSteps = _chunkM4QDZTNKcjs.g; exports.useBitStore = _chunkM4QDZTNKcjs.b; exports.useBitWatch = _chunkM4QDZTNKcjs.h;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { B as BitFormProvider, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-
|
|
1
|
+
export { B as BitFormProvider, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-DuG0-qkf.cjs';
|
|
2
2
|
import { k as BitPath, h as BitFieldOptions, l as BitPathValue } from '../bus-DAwKIiMY.cjs';
|
|
3
3
|
export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-DAwKIiMY.cjs';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react';
|
|
6
|
-
import '../index-
|
|
6
|
+
import '../index-CAsZliSy.cjs';
|
|
7
7
|
|
|
8
8
|
declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P, options?: BitFieldOptions): {
|
|
9
9
|
value: BitPathValue<TForm, P>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { B as BitFormProvider, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-
|
|
1
|
+
export { B as BitFormProvider, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-paD4Vkvz.js';
|
|
2
2
|
import { k as BitPath, h as BitFieldOptions, l as BitPathValue } from '../bus-DAwKIiMY.js';
|
|
3
3
|
export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-DAwKIiMY.js';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react';
|
|
6
|
-
import '../index-
|
|
6
|
+
import '../index-_zEeufKs.js';
|
|
7
7
|
|
|
8
8
|
declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P, options?: BitFieldOptions): {
|
|
9
9
|
value: BitPathValue<TForm, P>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as g,b as P,c as x,d as m,e as v,f as y,g as S,h}from"../chunk-
|
|
1
|
+
import{a as g,b as P,c as x,d as m,e as v,f as y,g as S,h}from"../chunk-E6WTGKQ6.js";import"../chunk-AM65OKT2.js";import{useMemo as f,useCallback as k}from"react";function V(i,n){let{fieldState:s,setValue:o,setBlur:u,store:t}=m(i),r=f(()=>{let e=n?.mask??t.config.fields?.[i]?.mask;if(e)return typeof e=="string"?t.config.masks[e]:e},[n?.mask,t.config.masks,t.config.fields,i]),l=f(()=>{let e=s.value;return e==null||e===""?"":r?r.format(e):String(e)},[s.value,r]),c=k(e=>{if(!r){o(e);return}o(r.parse(String(e??"")))},[r,o]),{isHidden:B,isRequired:p,value:F,error:d,touched:a}=s;return{value:F,displayValue:l,error:a?d:void 0,touched:a,invalid:!!(a&&d),isValidating:t.isFieldValidating(i),isDirty:t.isFieldDirty(i),isHidden:B,isRequired:p,setValue:o,setBlur:u,props:{value:l,onChangeText:c,onBlur:u}}}export{g as BitFormProvider,v as useBitArray,V as useBitField,x as useBitForm,y as useBitScope,S as useBitSteps,P as useBitStore,h as useBitWatch};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/resolvers/zod.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var f=n=>async(a,t)=>{try{return await n.parseAsync(a),{}}catch(o){let e={};if(o.issues&&o.issues.forEach(s=>{let r=s.path.join(".");r&&!e[r]&&(e[r]=s.message)}),_optionalChain([t, 'optionalAccess', _ => _.scopeFields])&&t.scopeFields.length>0){let s=new Set(t.scopeFields),r={};for(let[c,i]of Object.entries(e))s.has(c)&&i&&(r[c]=i);return r}return e}};exports.zodResolver = f;
|
|
2
2
|
//# sourceMappingURL=zod.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/resolvers/zod.ts"],"names":["zodResolver","schema","values","options","
|
|
1
|
+
{"version":3,"sources":["../../src/resolvers/zod.ts"],"names":["zodResolver","schema","values","options","err","errors","issue","path","scopeSet","filtered","key","msg"],"mappings":"AAGO,ilBAAMA,CAAAA,CAAiCC,CAAAA,EACrC,KAAA,CACLC,CAAAA,CACAC,CAAAA,CAAAA,EAC0B,CAC1B,GAAI,CACF,OAAA,MAAMF,CAAAA,CAAO,UAAA,CAAWC,CAAM,CAAA,CACvB,CAAC,CACV,CAAA,KAAA,CAASE,CAAAA,CAAU,CACjB,IAAMC,CAAAA,CAAuB,CAAC,CAAA,CAW9B,EAAA,CATID,CAAAA,CAAI,MAAA,EACNA,CAAAA,CAAI,MAAA,CAAO,OAAA,CAASE,CAAAA,EAAe,CACjC,IAAMC,CAAAA,CAAOD,CAAAA,CAAM,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA,CAC5BC,CAAAA,EAAQ,CAACF,CAAAA,CAAOE,CAAI,CAAA,EAAA,CACtBF,CAAAA,CAAOE,CAAI,CAAA,CAAID,CAAAA,CAAM,OAAA,CAEzB,CAAC,CAAA,iBAGCH,CAAAA,2BAAS,aAAA,EAAeA,CAAAA,CAAQ,WAAA,CAAY,MAAA,CAAS,CAAA,CAAG,CAC1D,IAAMK,CAAAA,CAAW,IAAI,GAAA,CAAIL,CAAAA,CAAQ,WAAW,CAAA,CACtCM,CAAAA,CAAyB,CAAC,CAAA,CAChC,GAAA,CAAA,GAAW,CAACC,CAAAA,CAAKC,CAAG,CAAA,GAAK,MAAA,CAAO,OAAA,CAAQN,CAAM,CAAA,CACxCG,CAAAA,CAAS,GAAA,CAAIE,CAAG,CAAA,EAAKC,CAAAA,EAAAA,CAAKF,CAAAA,CAASC,CAAyB,CAAA,CAAIC,CAAAA,CAAAA,CAEtE,OAAOF,CACT,CAEA,OAAOJ,CACT,CACF,CAAA,CAAA,wBAAA","file":"/Users/leandrocarol/Projetos/bit-form/dist/resolvers/zod.cjs","sourcesContent":["import { ZodSchema } from \"zod\";\nimport { BitErrors } from \"../core\";\n\nexport const zodResolver = <T extends object>(schema: ZodSchema<T>) => {\n return async (\n values: T,\n options?: { scopeFields?: string[] },\n ): Promise<BitErrors<T>> => {\n try {\n await schema.parseAsync(values);\n return {};\n } catch (err: any) {\n const errors: BitErrors<T> = {};\n\n if (err.issues) {\n err.issues.forEach((issue: any) => {\n const path = issue.path.join(\".\");\n if (path && !errors[path]) {\n errors[path] = issue.message;\n }\n });\n }\n\n if (options?.scopeFields && options.scopeFields.length > 0) {\n const scopeSet = new Set(options.scopeFields);\n const filtered: BitErrors<T> = {};\n for (const [key, msg] of Object.entries(errors)) {\n if (scopeSet.has(key) && msg) filtered[key as keyof BitErrors<T>] = msg;\n }\n return filtered;\n }\n\n return errors;\n }\n };\n};\n"]}
|
package/dist/resolvers/zod.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var f=n=>async(a,t)=>{try{return await n.parseAsync(a),{}}catch(o){let e={};if(o.issues&&o.issues.forEach(s=>{let r=s.path.join(".");r&&!e[r]&&(e[r]=s.message)}),t?.scopeFields&&t.scopeFields.length>0){let s=new Set(t.scopeFields),r={};for(let[c,i]of Object.entries(e))s.has(c)&&i&&(r[c]=i);return r}return e}};export{f as zodResolver};
|
|
2
2
|
//# sourceMappingURL=zod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/resolvers/zod.ts"],"sourcesContent":["import { ZodSchema } from \"zod\";\nimport { BitErrors } from \"../core\";\n\nexport const zodResolver = <T extends object>(schema: ZodSchema<T>) => {\n return async (\n values: T,\n options?: { scopeFields?: string[] },\n ): Promise<BitErrors<T>> => {\n try {\n
|
|
1
|
+
{"version":3,"sources":["../../src/resolvers/zod.ts"],"sourcesContent":["import { ZodSchema } from \"zod\";\nimport { BitErrors } from \"../core\";\n\nexport const zodResolver = <T extends object>(schema: ZodSchema<T>) => {\n return async (\n values: T,\n options?: { scopeFields?: string[] },\n ): Promise<BitErrors<T>> => {\n try {\n await schema.parseAsync(values);\n return {};\n } catch (err: any) {\n const errors: BitErrors<T> = {};\n\n if (err.issues) {\n err.issues.forEach((issue: any) => {\n const path = issue.path.join(\".\");\n if (path && !errors[path]) {\n errors[path] = issue.message;\n }\n });\n }\n\n if (options?.scopeFields && options.scopeFields.length > 0) {\n const scopeSet = new Set(options.scopeFields);\n const filtered: BitErrors<T> = {};\n for (const [key, msg] of Object.entries(errors)) {\n if (scopeSet.has(key) && msg) filtered[key as keyof BitErrors<T>] = msg;\n }\n return filtered;\n }\n\n return errors;\n }\n };\n};\n"],"mappings":"AAGO,IAAMA,EAAiCC,GACrC,MACLC,EACAC,IAC0B,CAC1B,GAAI,CACF,aAAMF,EAAO,WAAWC,CAAM,EACvB,CAAC,CACV,OAASE,EAAU,CACjB,IAAMC,EAAuB,CAAC,EAW9B,GATID,EAAI,QACNA,EAAI,OAAO,QAASE,GAAe,CACjC,IAAMC,EAAOD,EAAM,KAAK,KAAK,GAAG,EAC5BC,GAAQ,CAACF,EAAOE,CAAI,IACtBF,EAAOE,CAAI,EAAID,EAAM,QAEzB,CAAC,EAGCH,GAAS,aAAeA,EAAQ,YAAY,OAAS,EAAG,CAC1D,IAAMK,EAAW,IAAI,IAAIL,EAAQ,WAAW,EACtCM,EAAyB,CAAC,EAChC,OAAW,CAACC,EAAKC,CAAG,IAAK,OAAO,QAAQN,CAAM,EACxCG,EAAS,IAAIE,CAAG,GAAKC,IAAKF,EAASC,CAAyB,EAAIC,GAEtE,OAAOF,CACT,CAEA,OAAOJ,CACT,CACF","names":["zodResolver","schema","values","options","err","errors","issue","path","scopeSet","filtered","key","msg"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { B as BitStore } from './index-
|
|
3
|
+
import { B as BitStore } from './index-CAsZliSy.cjs';
|
|
4
4
|
import { k as BitPath, l as BitPathValue, e as BitErrors, B as BitMask, b as BitArrayPath, a as BitArrayItem, n as BitTouched, S as ScopeStatus, V as ValidateScopeResult } from './bus-DAwKIiMY.cjs';
|
|
5
5
|
|
|
6
6
|
declare const BitFormProvider: ({ store, children, }: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { B as BitStore } from './index-
|
|
3
|
+
import { B as BitStore } from './index-_zEeufKs.js';
|
|
4
4
|
import { k as BitPath, l as BitPathValue, e as BitErrors, B as BitMask, b as BitArrayPath, a as BitArrayItem, n as BitTouched, S as ScopeStatus, V as ValidateScopeResult } from './bus-DAwKIiMY.js';
|
|
5
5
|
|
|
6
6
|
declare const BitFormProvider: ({ store, children, }: {
|
package/dist/vue/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkACHDD75Tcjs = require('../chunk-ACHDD75T.cjs');var _vue = require('vue');var D=Symbol("BIT_STORE");function q(e){_vue.provide.call(void 0, D,e)}function d(){let e=_vue.inject.call(void 0, D);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function W(){let e=d(),t=_vue.shallowRef.call(void 0, e.getState()),o=_vue.ref.call(void 0, null),s=_vue.ref.call(void 0, null),n=e.subscribe(()=>{t.value={...e.getState()}});_vue.onUnmounted.call(void 0, n);let i=()=>t.value.values,m=()=>t.value.errors,f=()=>t.value.touched,g=_vue.computed.call(void 0, ()=>t.value.isValid),r=_vue.computed.call(void 0, ()=>t.value.isSubmitting),u=_vue.computed.call(void 0, ()=>t.value.isDirty),c=_vue.computed.call(void 0, ()=>(t.value,e.canUndo)),p=_vue.computed.call(void 0, ()=>(t.value,e.canRedo));return{store:e,isValid:g,isSubmitting:r,isDirty:u,canUndo:c,canRedo:p,getValues:i,getErrors:m,getTouched:f,submit:S=>b=>(_optionalChain([b, 'optionalAccess', _2 => _2.preventDefault, 'optionalCall', _3 => _3()]),e.submit(S)),onSubmit:S=>b=>(_optionalChain([b, 'optionalAccess', _4 => _4.preventDefault, 'optionalCall', _5 => _5()]),o.value=null,e.submit(async B=>{try{let a=await S(B);s.value=a,o.value=null}catch(a){_chunkACHDD75Tcjs.h.call(void 0, a)?e.setServerErrors(_chunkACHDD75Tcjs.i.call(void 0, a)):o.value=a instanceof Error?a:new Error(String(a))}})),submitError:o,lastResponse:s,reset:()=>{e.reset(),o.value=null,s.value=null},validate:e.validate.bind(e),setValues:e.setValues.bind(e),setError:e.setError.bind(e),setErrors:e.setErrors.bind(e),setServerErrors:e.setServerErrors.bind(e),setField:e.setField.bind(e),blurField:e.blurField.bind(e),registerMask:e.registerMask.bind(e),pushItem:e.pushItem.bind(e),prependItem:e.prependItem.bind(e),removeItem:e.removeItem.bind(e),insertItem:e.insertItem.bind(e),moveItem:e.moveItem.bind(e),swapItems:e.swapItems.bind(e),undo:e.undo.bind(e),redo:e.redo.bind(e)}}function $(e,t,o){let s=d();t&&s.registerField(e,t);let n=_nullishCoalesce(_optionalChain([o, 'optionalAccess', _6 => _6.mask]), () => (_optionalChain([s, 'access', _7 => _7.config, 'access', _8 => _8.fields, 'optionalAccess', _9 => _9[e], 'optionalAccess', _10 => _10.mask]))),i=n?typeof n=="string"?_optionalChain([s, 'access', _11 => _11.config, 'access', _12 => _12.masks, 'optionalAccess', _13 => _13[n]]):n:void 0,m=_vue.shallowRef.call(void 0, s.getState()),f=s.subscribe(()=>{m.value=s.getState()});_vue.onUnmounted.call(void 0, ()=>{f(),s.unregisterField&&s.unregisterField(e)});let g=_vue.computed.call(void 0, ()=>_chunkACHDD75Tcjs.e.call(void 0, m.value.values,e)),r=_vue.computed.call(void 0, ()=>{let l=g.value;return l==null||l===""?"":i?i.format(l):String(l)}),u=_vue.computed.call(void 0, {get:()=>r.value,set:l=>{if(!i){s.setField(e,l);return}s.setField(e,i.parse(String(_nullishCoalesce(l, () => ("")))))}}),c=_vue.computed.call(void 0, ()=>m.value.touched[e]?m.value.errors[e]:void 0),p=_vue.computed.call(void 0, ()=>!!m.value.touched[e]),V=_vue.computed.call(void 0, ()=>!!(p.value&&c.value)),E=_vue.computed.call(void 0, ()=>(m.value,s.isFieldValidating(e))),S=_vue.computed.call(void 0, ()=>(m.value,s.isFieldDirty(e))),b=_vue.computed.call(void 0, ()=>(m.value,s.isHidden(e))),B=_vue.computed.call(void 0, ()=>(m.value,s.isRequired(e))),a=_vue.computed.call(void 0, ()=>({isDirty:S.value,isValidating:E.value,isHidden:b.value,isRequired:B.value,hasError:!!c.value}));return{value:u,displayValue:r,error:c,touched:p,invalid:V,isValidating:E,isDirty:S,isHidden:b,isRequired:B,fieldMeta:a,setBlur:()=>s.blurField(e),setValue:l=>u.value=l}}var F=()=>Math.random().toString(36).substring(2,9);function z(e){let t=d(),o=()=>{let r=_chunkACHDD75Tcjs.e.call(void 0, t.getState().values,e);return Array.isArray(r)?r:[]},s=o(),n=_vue.ref.call(void 0, s),i=_vue.ref.call(void 0, s.map(F)),m=t.subscribe(()=>{let r=o();if(n.value=[...r],r.length!==i.value.length){let u=[...i.value];if(r.length>u.length){let c=r.length-u.length,p=Array.from({length:c},F);i.value=[...u,...p]}else i.value=u.slice(0,r.length)}});_vue.onUnmounted.call(void 0, ()=>{m(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let f=_vue.computed.call(void 0, ()=>n.value.map((r,u)=>({key:i.value[u]||`temp-${u}`,value:r,index:u}))),g=_vue.computed.call(void 0, ()=>n.value.length);return{fields:f,length:g,append:r=>{i.value.push(F()),t.pushItem(e,r)},prepend:r=>{i.value.unshift(F()),t.prependItem(e,r)},insert:(r,u)=>{i.value.splice(r,0,F()),t.insertItem(e,r,u)},remove:r=>{i.value.splice(r,1),t.removeItem(e,r)},move:(r,u)=>{let c=[...i.value],[p]=c.splice(r,1);c.splice(u,0,p),i.value=c,t.moveItem(e,r,u)},swap:(r,u)=>{let c=[...i.value];[c[r],c[u]]=[c[u],c[r]],i.value=c,t.swapItems(e,r,u)},replace:r=>{i.value=r.map(F),t.setField(e,r)},clear:()=>{i.value=[],t.setField(e,[])}}}function X(e,t){let o=Object.keys(e),s=Object.keys(t);return o.length!==s.length?!1:o.every(n=>e[n]===t[n])}function Z(e){let t=d(),o=_vue.ref.call(void 0, t.getStepStatus(e)),s;_vue.onMounted.call(void 0, ()=>{s=t.subscribe(()=>{let r=t.getStepStatus(e);(r.hasErrors!==o.value.hasErrors||r.isDirty!==o.value.isDirty||!X(r.errors,o.value.errors))&&(o.value=r)})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([s, 'optionalCall', _14 => _14()])});let n=async()=>{let r=await t.validate({scope:e}),u=t.getStepErrors(e);return{valid:r,errors:u}},i=()=>t.getStepErrors(e),m=_vue.computed.call(void 0, ()=>!o.value.hasErrors),f=_vue.computed.call(void 0, ()=>o.value.isDirty),g=_vue.computed.call(void 0, ()=>o.value.errors);return{scopeName:e,status:o,errors:g,validate:n,getErrors:i,isValid:m,isDirty:f}}function re(e,t){let o=Object.keys(e),s=Object.keys(t);return o.length!==s.length?!1:o.every(n=>e[n]===t[n])}function se(e){let t=d(),o=_vue.ref.call(void 0, 0),s=_vue.computed.call(void 0, ()=>_nullishCoalesce(e[o.value], () => (""))),n=_vue.ref.call(void 0, t.getStepStatus(s.value)),i;_vue.watch.call(void 0, s,a=>{n.value=t.getStepStatus(a)});let m=()=>{let a=s.value,l=t.getStepStatus(a);(l.hasErrors!==n.value.hasErrors||l.isDirty!==n.value.isDirty||!re(l.errors,n.value.errors))&&(n.value=l)};_vue.onMounted.call(void 0, ()=>{i=t.subscribe(m)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([i, 'optionalCall', _15 => _15()])});let f=async()=>{let a=s.value,l=await t.validate({scope:a}),P=t.getStepErrors(a);return{valid:l,errors:P}},g=()=>t.getStepErrors(s.value),r=async()=>{let a=s.value,l=await t.validate({scope:a});if(l)o.value=Math.min(o.value+1,e.length-1);else{let P=t.getStepErrors(a),x=Object.keys(P);x.length>0&&t.markFieldsTouched(x)}return l},u=()=>{o.value=Math.max(o.value-1,0)},c=a=>{o.value=Math.max(0,Math.min(a-1,e.length-1))},p=_vue.computed.call(void 0, ()=>o.value+1),V=_vue.computed.call(void 0, ()=>o.value===0),E=_vue.computed.call(void 0, ()=>o.value>=e.length-1),S=_vue.computed.call(void 0, ()=>!n.value.hasErrors),b=_vue.computed.call(void 0, ()=>n.value.isDirty),B=_vue.computed.call(void 0, ()=>n.value.errors);return{step:p,stepIndex:o,scope:s,next:r,prev:u,goTo:c,isFirst:V,isLast:E,status:n,errors:B,isValid:S,isDirty:b,validate:f,getErrors:g}}function ue(e){let t=d(),o=_chunkACHDD75Tcjs.e.call(void 0, t.getState().values,e),s=_vue.ref.call(void 0, o),n=t.watch(e,i=>{_chunkACHDD75Tcjs.d.call(void 0, s.value,i)||(s.value=i)});return _vue.onUnmounted.call(void 0, n),_vue.readonly.call(void 0, s)}exports.provideBitStore = q; exports.useBitArray = z; exports.useBitField = $; exports.useBitForm = W; exports.useBitScope = Z; exports.useBitSteps = se; exports.useBitStore = d; exports.useBitWatch = ue;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/vue/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as BitStore } from '../index-
|
|
1
|
+
import { B as BitStore } from '../index-CAsZliSy.cjs';
|
|
2
2
|
import { e as BitErrors, n as BitTouched, k as BitPath, l as BitPathValue, B as BitMask, b as BitArrayPath, a as BitArrayItem, g as BitFieldDefinition, h as BitFieldOptions, S as ScopeStatus, V as ValidateScopeResult } from '../bus-DAwKIiMY.cjs';
|
|
3
3
|
import * as vue from 'vue';
|
|
4
4
|
import * as _vue_reactivity from '@vue/reactivity';
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as BitStore } from '../index-
|
|
1
|
+
import { B as BitStore } from '../index-_zEeufKs.js';
|
|
2
2
|
import { e as BitErrors, n as BitTouched, k as BitPath, l as BitPathValue, B as BitMask, b as BitArrayPath, a as BitArrayItem, g as BitFieldDefinition, h as BitFieldOptions, S as ScopeStatus, V as ValidateScopeResult } from '../bus-DAwKIiMY.js';
|
|
3
3
|
import * as vue from 'vue';
|
|
4
4
|
import * as _vue_reactivity from '@vue/reactivity';
|
package/dist/vue/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as
|
|
1
|
+
import{d as T,e as h,h as w,i as k}from"../chunk-AM65OKT2.js";import{inject as U,provide as C}from"vue";var D=Symbol("BIT_STORE");function q(e){C(D,e)}function d(){let e=U(D);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}import{computed as I,onUnmounted as H,shallowRef as K,ref as j}from"vue";function W(){let e=d(),t=K(e.getState()),o=j(null),s=j(null),n=e.subscribe(()=>{t.value={...e.getState()}});H(n);let i=()=>t.value.values,m=()=>t.value.errors,f=()=>t.value.touched,g=I(()=>t.value.isValid),r=I(()=>t.value.isSubmitting),u=I(()=>t.value.isDirty),c=I(()=>(t.value,e.canUndo)),p=I(()=>(t.value,e.canRedo));return{store:e,isValid:g,isSubmitting:r,isDirty:u,canUndo:c,canRedo:p,getValues:i,getErrors:m,getTouched:f,submit:S=>b=>(b?.preventDefault?.(),e.submit(S)),onSubmit:S=>b=>(b?.preventDefault?.(),o.value=null,e.submit(async B=>{try{let a=await S(B);s.value=a,o.value=null}catch(a){w(a)?e.setServerErrors(k(a)):o.value=a instanceof Error?a:new Error(String(a))}})),submitError:o,lastResponse:s,reset:()=>{e.reset(),o.value=null,s.value=null},validate:e.validate.bind(e),setValues:e.setValues.bind(e),setError:e.setError.bind(e),setErrors:e.setErrors.bind(e),setServerErrors:e.setServerErrors.bind(e),setField:e.setField.bind(e),blurField:e.blurField.bind(e),registerMask:e.registerMask.bind(e),pushItem:e.pushItem.bind(e),prependItem:e.prependItem.bind(e),removeItem:e.removeItem.bind(e),insertItem:e.insertItem.bind(e),moveItem:e.moveItem.bind(e),swapItems:e.swapItems.bind(e),undo:e.undo.bind(e),redo:e.redo.bind(e)}}import{computed as v,onUnmounted as _,shallowRef as L}from"vue";function $(e,t,o){let s=d();t&&s.registerField(e,t);let n=o?.mask??s.config.fields?.[e]?.mask,i=n?typeof n=="string"?s.config.masks?.[n]:n:void 0,m=L(s.getState()),f=s.subscribe(()=>{m.value=s.getState()});_(()=>{f(),s.unregisterField&&s.unregisterField(e)});let g=v(()=>h(m.value.values,e)),r=v(()=>{let l=g.value;return l==null||l===""?"":i?i.format(l):String(l)}),u=v({get:()=>r.value,set:l=>{if(!i){s.setField(e,l);return}s.setField(e,i.parse(String(l??"")))}}),c=v(()=>m.value.touched[e]?m.value.errors[e]:void 0),p=v(()=>!!m.value.touched[e]),V=v(()=>!!(p.value&&c.value)),E=v(()=>(m.value,s.isFieldValidating(e))),S=v(()=>(m.value,s.isFieldDirty(e))),b=v(()=>(m.value,s.isHidden(e))),B=v(()=>(m.value,s.isRequired(e))),a=v(()=>({isDirty:S.value,isValidating:E.value,isHidden:b.value,isRequired:B.value,hasError:!!c.value}));return{value:u,displayValue:r,error:c,touched:p,invalid:V,isValidating:E,isDirty:S,isHidden:b,isRequired:B,fieldMeta:a,setBlur:()=>s.blurField(e),setValue:l=>u.value=l}}import{ref as A,computed as M,onUnmounted as Y}from"vue";var F=()=>Math.random().toString(36).substring(2,9);function z(e){let t=d(),o=()=>{let r=h(t.getState().values,e);return Array.isArray(r)?r:[]},s=o(),n=A(s),i=A(s.map(F)),m=t.subscribe(()=>{let r=o();if(n.value=[...r],r.length!==i.value.length){let u=[...i.value];if(r.length>u.length){let c=r.length-u.length,p=Array.from({length:c},F);i.value=[...u,...p]}else i.value=u.slice(0,r.length)}});Y(()=>{m(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let f=M(()=>n.value.map((r,u)=>({key:i.value[u]||`temp-${u}`,value:r,index:u}))),g=M(()=>n.value.length);return{fields:f,length:g,append:r=>{i.value.push(F()),t.pushItem(e,r)},prepend:r=>{i.value.unshift(F()),t.prependItem(e,r)},insert:(r,u)=>{i.value.splice(r,0,F()),t.insertItem(e,r,u)},remove:r=>{i.value.splice(r,1),t.removeItem(e,r)},move:(r,u)=>{let c=[...i.value],[p]=c.splice(r,1);c.splice(u,0,p),i.value=c,t.moveItem(e,r,u)},swap:(r,u)=>{let c=[...i.value];[c[r],c[u]]=[c[u],c[r]],i.value=c,t.swapItems(e,r,u)},replace:r=>{i.value=r.map(F),t.setField(e,r)},clear:()=>{i.value=[],t.setField(e,[])}}}import{ref as G,computed as R,onMounted as J,onUnmounted as Q}from"vue";function X(e,t){let o=Object.keys(e),s=Object.keys(t);return o.length!==s.length?!1:o.every(n=>e[n]===t[n])}function Z(e){let t=d(),o=G(t.getStepStatus(e)),s;J(()=>{s=t.subscribe(()=>{let r=t.getStepStatus(e);(r.hasErrors!==o.value.hasErrors||r.isDirty!==o.value.isDirty||!X(r.errors,o.value.errors))&&(o.value=r)})}),Q(()=>{s?.()});let n=async()=>{let r=await t.validate({scope:e}),u=t.getStepErrors(e);return{valid:r,errors:u}},i=()=>t.getStepErrors(e),m=R(()=>!o.value.hasErrors),f=R(()=>o.value.isDirty),g=R(()=>o.value.errors);return{scopeName:e,status:o,errors:g,validate:n,getErrors:i,isValid:m,isDirty:f}}import{ref as O,computed as y,watch as N,onMounted as ee,onUnmounted as te}from"vue";function re(e,t){let o=Object.keys(e),s=Object.keys(t);return o.length!==s.length?!1:o.every(n=>e[n]===t[n])}function se(e){let t=d(),o=O(0),s=y(()=>e[o.value]??""),n=O(t.getStepStatus(s.value)),i;N(s,a=>{n.value=t.getStepStatus(a)});let m=()=>{let a=s.value,l=t.getStepStatus(a);(l.hasErrors!==n.value.hasErrors||l.isDirty!==n.value.isDirty||!re(l.errors,n.value.errors))&&(n.value=l)};ee(()=>{i=t.subscribe(m)}),te(()=>{i?.()});let f=async()=>{let a=s.value,l=await t.validate({scope:a}),P=t.getStepErrors(a);return{valid:l,errors:P}},g=()=>t.getStepErrors(s.value),r=async()=>{let a=s.value,l=await t.validate({scope:a});if(l)o.value=Math.min(o.value+1,e.length-1);else{let P=t.getStepErrors(a),x=Object.keys(P);x.length>0&&t.markFieldsTouched(x)}return l},u=()=>{o.value=Math.max(o.value-1,0)},c=a=>{o.value=Math.max(0,Math.min(a-1,e.length-1))},p=y(()=>o.value+1),V=y(()=>o.value===0),E=y(()=>o.value>=e.length-1),S=y(()=>!n.value.hasErrors),b=y(()=>n.value.isDirty),B=y(()=>n.value.errors);return{step:p,stepIndex:o,scope:s,next:r,prev:u,goTo:c,isFirst:V,isLast:E,status:n,errors:B,isValid:S,isDirty:b,validate:f,getErrors:g}}import{ref as oe,onUnmounted as ne,readonly as ie}from"vue";function ue(e){let t=d(),o=h(t.getState().values,e),s=oe(o),n=t.watch(e,i=>{T(s.value,i)||(s.value=i)});return ne(n),ie(s)}export{q as provideBitStore,z as useBitArray,$ as useBitField,W as useBitForm,Z as useBitScope,se as useBitSteps,d as useBitStore,ue as useBitWatch};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|