@lehnihon/bit-form 1.0.6 → 1.0.8

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.
Files changed (62) hide show
  1. package/README.md +42 -1
  2. package/dist/angular/index.cjs +1 -1
  3. package/dist/angular/index.cjs.map +1 -1
  4. package/dist/angular/index.d.cts +44 -41
  5. package/dist/angular/index.d.ts +44 -41
  6. package/dist/angular/index.js +1 -1
  7. package/dist/angular/index.js.map +1 -1
  8. package/dist/{bus-DAwKIiMY.d.cts → bus-BtKUu_9m.d.cts} +42 -7
  9. package/dist/{bus-DAwKIiMY.d.ts → bus-BtKUu_9m.d.ts} +42 -7
  10. package/dist/chunk-4SZ2BOTW.js +2 -0
  11. package/dist/chunk-4SZ2BOTW.js.map +1 -0
  12. package/dist/chunk-IUDMKNON.cjs +2 -0
  13. package/dist/chunk-IUDMKNON.cjs.map +1 -0
  14. package/dist/chunk-MVDS4KAD.js +133 -0
  15. package/dist/chunk-MVDS4KAD.js.map +1 -0
  16. package/dist/chunk-QB7MQ6ZB.cjs +133 -0
  17. package/dist/{chunk-6VDQSKUN.cjs.map → chunk-QB7MQ6ZB.cjs.map} +1 -1
  18. package/dist/cli/index.cjs +404 -4
  19. package/dist/devtools/bridge.cjs +1 -1
  20. package/dist/devtools/bridge.js +1 -1
  21. package/dist/devtools/index.cjs +1 -1
  22. package/dist/devtools/index.js +1 -1
  23. package/dist/{index-BD_l3aH5.d.cts → index-C4HaSh5W.d.ts} +102 -15
  24. package/dist/{index-CPKnWBVv.d.ts → index-CH9ZdEkZ.d.cts} +102 -15
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.d.cts +3 -3
  27. package/dist/index.d.ts +3 -3
  28. package/dist/index.js +1 -1
  29. package/dist/react/index.cjs +1 -1
  30. package/dist/react/index.cjs.map +1 -1
  31. package/dist/react/index.d.cts +23 -22
  32. package/dist/react/index.d.ts +23 -22
  33. package/dist/react/index.js +1 -1
  34. package/dist/react/index.js.map +1 -1
  35. package/dist/react-native/index.cjs +1 -1
  36. package/dist/react-native/index.cjs.map +1 -1
  37. package/dist/react-native/index.d.cts +24 -14
  38. package/dist/react-native/index.d.ts +24 -14
  39. package/dist/react-native/index.js +1 -1
  40. package/dist/react-native/index.js.map +1 -1
  41. package/dist/resolvers/joi.d.cts +1 -1
  42. package/dist/resolvers/joi.d.ts +1 -1
  43. package/dist/resolvers/yup.d.cts +1 -1
  44. package/dist/resolvers/yup.d.ts +1 -1
  45. package/dist/resolvers/zod.d.cts +1 -1
  46. package/dist/resolvers/zod.d.ts +1 -1
  47. package/dist/{use-bit-watch-CoCFwS-F.d.ts → use-bit-watch-Bdwj9l_g.d.ts} +32 -27
  48. package/dist/{use-bit-watch-BSWy9rG7.d.cts → use-bit-watch-ClvBxm6Z.d.cts} +32 -27
  49. package/dist/vue/index.cjs +1 -1
  50. package/dist/vue/index.cjs.map +1 -1
  51. package/dist/vue/index.d.cts +48 -42
  52. package/dist/vue/index.d.ts +48 -42
  53. package/dist/vue/index.js +1 -1
  54. package/dist/vue/index.js.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/chunk-6VDQSKUN.cjs +0 -133
  57. package/dist/chunk-KA4FAGIX.js +0 -133
  58. package/dist/chunk-KA4FAGIX.js.map +0 -1
  59. package/dist/chunk-UFYHEI6S.js +0 -2
  60. package/dist/chunk-UFYHEI6S.js.map +0 -1
  61. package/dist/chunk-Z6ITPS2B.cjs +0 -2
  62. package/dist/chunk-Z6ITPS2B.cjs.map +0 -1
@@ -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 _chunkZ6ITPS2Bcjs = require('../chunk-Z6ITPS2B.cjs');require('../chunk-6VDQSKUN.cjs');var _react = require('react');function V(i,n){let{fieldState:s,setValue:o,setBlur:u,store:t}=_chunkZ6ITPS2Bcjs.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 = _chunkZ6ITPS2Bcjs.a; exports.useBitArray = _chunkZ6ITPS2Bcjs.e; exports.useBitField = V; exports.useBitForm = _chunkZ6ITPS2Bcjs.c; exports.useBitScope = _chunkZ6ITPS2Bcjs.f; exports.useBitSteps = _chunkZ6ITPS2Bcjs.g; exports.useBitStore = _chunkZ6ITPS2Bcjs.b; exports.useBitWatch = _chunkZ6ITPS2Bcjs.h;
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 _chunkIUDMKNONcjs = require('../chunk-IUDMKNON.cjs');require('../chunk-QB7MQ6ZB.cjs');var _react = require('react');function x(o){if(!o||typeof o!="object")return!1;let t=Object.keys(o);return t.length===1&&t[0]==="mask"}function E(o,t,s){let P=s!==void 0?t:x(t)?void 0:t,B=s!==void 0?s:x(t)?t:void 0,{fieldState:a,setValue:n,setBlur:d,store:r}=_chunkIUDMKNONcjs.d.call(void 0, o,P),i=_react.useMemo.call(void 0, ()=>{let e=_nullishCoalesce(_optionalChain([B, '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([B, 'optionalAccess', _6 => _6.mask]),r.config.masks,r.config.fields,o]),m=_react.useMemo.call(void 0, ()=>{let e=a.value;return e==null||e===""?"":i?i.format(e):String(e)},[a.value,i]),F=_react.useCallback.call(void 0, e=>{if(!i){n(e);return}n(i.parse(String(_nullishCoalesce(e, () => ("")))))},[i,n]),g=_react.useCallback.call(void 0, e=>{if(!i){n(e);return}n(i.parse(String(_nullishCoalesce(e, () => ("")))))},[i,n]),{isHidden:h,isRequired:y,value:T,error:l,touched:u,isDirty:V,isValidating:b}=a,k=!!(u&&l),S=u?l:void 0,p=_react.useCallback.call(void 0, ()=>{d()},[d]);return{field:{value:T,displayValue:m,setValue:g,setBlur:d,onChangeText:F,onBlur:p},meta:{error:S,touched:u,invalid:k,isValidating:b,isDirty:V,isHidden:h,isRequired:y,hasError:!!l},props:{value:m,onChangeText:F,onBlur:p}}}exports.BitFormProvider = _chunkIUDMKNONcjs.a; exports.useBitArray = _chunkIUDMKNONcjs.e; exports.useBitField = E; exports.useBitForm = _chunkIUDMKNONcjs.c; exports.useBitScope = _chunkIUDMKNONcjs.f; exports.useBitSteps = _chunkIUDMKNONcjs.g; exports.useBitStore = _chunkIUDMKNONcjs.b; exports.useBitWatch = _chunkIUDMKNONcjs.h;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","../../src/react-native/use-bit-field.ts"],"names":["useBitField","path","options","fieldState","setValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","maskOption","displayValue","val","handleChange","useCallback","text","isHidden","isRequired","value","error","touched"],"mappings":"AAAA,0uBAAqF,iCAA8B,8BCA9E,SAIrBA,CAAAA,CAGdC,CAAAA,CAASC,CAAAA,CAA2B,CACpC,GAAM,CAAE,UAAA,CAAAC,CAAAA,CAAY,QAAA,CAAAC,CAAAA,CAAU,OAAA,CAAAC,CAAAA,CAAS,KAAA,CAAAC,CAAM,CAAA,CAAIC,iCAAAA,CAI3C,CAAA,CAEAC,CAAAA,CAAeC,4BAAAA,CAAQ,CAAA,EAAM,CACjC,IAAMC,CAAAA,kCACJR,CAAAA,2BAAS,MAAA,yBAAQI,CAAAA,qBAAM,MAAA,qBAAO,MAAA,4BAAA,CAASL,CAAc,CAAA,6BAAG,QAAA,CAC1D,EAAA,CAAKS,CAAAA,CACL,OAAO,OAAOA,CAAAA,EAAe,QAAA,CACzBJ,CAAAA,CAAM,MAAA,CAAO,KAAA,CAAOI,CAAU,CAAA,CAC9BA,CACN,CAAA,CAAG,iBAACR,CAAAA,6BAAS,MAAA,CAAMI,CAAAA,CAAM,MAAA,CAAO,KAAA,CAAOA,CAAAA,CAAM,MAAA,CAAO,MAAA,CAAQL,CAAI,CAAC,CAAA,CAE3DU,CAAAA,CAAeF,4BAAAA,CAAQ,CAAA,EAAM,CACjC,IAAMG,CAAAA,CAAMT,CAAAA,CAAW,KAAA,CACvB,OAAyBS,CAAAA,EAAQ,IAAA,EAAQA,CAAAA,GAAQ,EAAA,CAAW,EAAA,CAErDJ,CAAAA,CAAeA,CAAAA,CAAa,MAAA,CAAOI,CAAG,CAAA,CAAI,MAAA,CAAOA,CAAG,CAC7D,CAAA,CAAG,CAACT,CAAAA,CAAW,KAAA,CAAOK,CAAY,CAAC,CAAA,CAE7BK,CAAAA,CAAeC,gCAAAA,CAClBC,EAAiB,CAChB,EAAA,CAAI,CAACP,CAAAA,CAAc,CACjBJ,CAAAA,CAASW,CAAW,CAAA,CACpB,MACF,CAEAX,CAAAA,CAASI,CAAAA,CAAa,KAAA,CAAM,MAAA,kBAAOO,CAAAA,SAAQ,IAAE,CAAC,CAAQ,CACxD,CAAA,CACA,CAACP,CAAAA,CAAcJ,CAAQ,CACzB,CAAA,CAEM,CAAE,QAAA,CAAAY,CAAAA,CAAU,UAAA,CAAAC,CAAAA,CAAY,KAAA,CAAAC,CAAAA,CAAO,KAAA,CAAAC,CAAAA,CAAO,OAAA,CAAAC,CAAQ,CAAA,CAAIjB,CAAAA,CAExD,MAAO,CACL,KAAA,CAAOe,CAAAA,CACP,YAAA,CAAAP,CAAAA,CACA,KAAA,CAAOS,CAAAA,CAAUD,CAAAA,CAAQ,KAAA,CAAA,CACzB,OAAA,CAASC,CAAAA,CACT,OAAA,CAAS,CAAC,CAAA,CAAEA,CAAAA,EAAWD,CAAAA,CAAAA,CACvB,YAAA,CAAcb,CAAAA,CAAM,iBAAA,CAAkBL,CAAI,CAAA,CAC1C,OAAA,CAASK,CAAAA,CAAM,YAAA,CAAaL,CAAI,CAAA,CAChC,QAAA,CAAAe,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAAb,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,KAAA,CAAO,CACL,KAAA,CAAOM,CAAAA,CACP,YAAA,CAAcE,CAAAA,CACd,MAAA,CAAQR,CACV,CACF,CACF,CAAA,wUAAA","file":"/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport { BitFieldOptions, BitPath, BitPathValue } from \"../core\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P, options?: BitFieldOptions) {\n const { fieldState, setValue, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const resolvedMask = useMemo(() => {\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n if (!maskOption) return undefined;\n return typeof maskOption === \"string\"\n ? store.config.masks![maskOption]\n : maskOption;\n }, [options?.mask, store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(() => {\n const val = fieldState.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n }, [fieldState.value, resolvedMask]);\n\n const handleChange = useCallback(\n (text: string) => {\n if (!resolvedMask) {\n setValue(text as any);\n return;\n }\n\n setValue(resolvedMask.parse(String(text ?? \"\")) as any);\n },\n [resolvedMask, setValue],\n );\n\n const { isHidden, isRequired, value, error, touched } = fieldState;\n\n return {\n value: value as BitPathValue<TForm, P>,\n displayValue,\n error: touched ? error : undefined,\n touched: touched,\n invalid: !!(touched && error),\n isValidating: store.isFieldValidating(path),\n isDirty: store.isFieldDirty(path),\n isHidden,\n isRequired,\n setValue,\n setBlur,\n props: {\n value: displayValue,\n onChangeText: handleChange,\n onBlur: setBlur,\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","../../src/react-native/use-bit-field.ts"],"names":["isMaskOnlyOptions","value","keys","useBitField","path","configOrOptions","maybeOptions","config","options","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","maskOption","displayValue","val","handleChange","useCallback","text","setValue","isHidden","isRequired","error","touched","isDirty","isValidating","invalid","visibleError","onBlur"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport {\n BitFieldDefinition,\n BitFieldOptions,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport interface UseBitFieldNativeMeta {\n error: string | undefined;\n touched: boolean;\n invalid: boolean;\n isValidating: boolean;\n isDirty: boolean;\n isHidden: boolean;\n isRequired: boolean;\n hasError: boolean;\n}\n\nexport interface UseBitFieldNativeBindProps {\n value: string;\n onChangeText: (value: string) => void;\n onBlur: () => void;\n}\n\nexport interface UseBitFieldNativeResult<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n> {\n field: {\n value: BitPathValue<TForm, P>;\n displayValue: string;\n setValue: (val: any) => void;\n setBlur: () => void;\n onChangeText: (text: string) => void;\n onBlur: () => void;\n };\n meta: UseBitFieldNativeMeta;\n props: UseBitFieldNativeBindProps;\n}\n\nfunction isMaskOnlyOptions(\n value: BitFieldDefinition<any> | BitFieldOptions | undefined,\n): value is BitFieldOptions {\n if (!value || typeof value !== \"object\") return false;\n const keys = Object.keys(value);\n return keys.length === 1 && keys[0] === \"mask\";\n}\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(\n path: P,\n configOrOptions?: BitFieldDefinition<TForm> | BitFieldOptions,\n maybeOptions?: BitFieldOptions,\n): UseBitFieldNativeResult<TForm, P> {\n const config =\n maybeOptions !== undefined\n ? (configOrOptions as BitFieldDefinition<TForm> | undefined)\n : isMaskOnlyOptions(configOrOptions)\n ? undefined\n : (configOrOptions as BitFieldDefinition<TForm> | undefined);\n\n const options =\n maybeOptions !== undefined\n ? maybeOptions\n : isMaskOnlyOptions(configOrOptions)\n ? configOrOptions\n : undefined;\n\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path, config);\n\n const resolvedMask = useMemo(() => {\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n if (!maskOption) return undefined;\n return typeof maskOption === \"string\"\n ? store.config.masks![maskOption]\n : maskOption;\n }, [options?.mask, store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(() => {\n const val = fieldState.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n }, [fieldState.value, resolvedMask]);\n\n const handleChange = useCallback(\n (text: string) => {\n if (!resolvedMask) {\n rawSetValue(text as any);\n return;\n }\n\n rawSetValue(resolvedMask.parse(String(text ?? \"\")) as any);\n },\n [resolvedMask, rawSetValue],\n );\n\n const setValue = useCallback(\n (val: any) => {\n if (!resolvedMask) {\n rawSetValue(val);\n return;\n }\n\n rawSetValue(resolvedMask.parse(String(val ?? \"\")) as any);\n },\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n field: {\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChangeText: handleChange,\n onBlur,\n },\n meta: {\n error: visibleError,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n props: {\n value: displayValue,\n onChangeText: handleChange,\n onBlur,\n },\n };\n}\n"]}
@@ -1,27 +1,37 @@
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-BSWy9rG7.cjs';
2
- import { k as BitPath, h as BitFieldOptions, l as BitPathValue } from '../bus-DAwKIiMY.cjs';
3
- export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-DAwKIiMY.cjs';
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-ClvBxm6Z.cjs';
2
+ import { k as BitPath, l as BitPathValue, g as BitFieldDefinition, h as BitFieldOptions } from '../bus-BtKUu_9m.cjs';
3
+ export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-BtKUu_9m.cjs';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react';
6
- import '../index-BD_l3aH5.cjs';
6
+ import '../index-CH9ZdEkZ.cjs';
7
7
 
8
- declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P, options?: BitFieldOptions): {
9
- value: BitPathValue<TForm, P>;
10
- displayValue: string;
11
- error: any;
8
+ interface UseBitFieldNativeMeta {
9
+ error: string | undefined;
12
10
  touched: boolean;
13
11
  invalid: boolean;
14
12
  isValidating: boolean;
15
13
  isDirty: boolean;
16
14
  isHidden: boolean;
17
15
  isRequired: boolean;
18
- setValue: (val: BitPathValue<TForm, P>) => void;
19
- setBlur: () => void;
20
- props: {
21
- value: string;
16
+ hasError: boolean;
17
+ }
18
+ interface UseBitFieldNativeBindProps {
19
+ value: string;
20
+ onChangeText: (value: string) => void;
21
+ onBlur: () => void;
22
+ }
23
+ interface UseBitFieldNativeResult<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>> {
24
+ field: {
25
+ value: BitPathValue<TForm, P>;
26
+ displayValue: string;
27
+ setValue: (val: any) => void;
28
+ setBlur: () => void;
22
29
  onChangeText: (text: string) => void;
23
30
  onBlur: () => void;
24
31
  };
25
- };
32
+ meta: UseBitFieldNativeMeta;
33
+ props: UseBitFieldNativeBindProps;
34
+ }
35
+ declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P, configOrOptions?: BitFieldDefinition<TForm> | BitFieldOptions, maybeOptions?: BitFieldOptions): UseBitFieldNativeResult<TForm, P>;
26
36
 
27
- export { useBitField };
37
+ export { type UseBitFieldNativeBindProps, type UseBitFieldNativeMeta, type UseBitFieldNativeResult, useBitField };
@@ -1,27 +1,37 @@
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-CoCFwS-F.js';
2
- import { k as BitPath, h as BitFieldOptions, l as BitPathValue } from '../bus-DAwKIiMY.js';
3
- export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-DAwKIiMY.js';
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-Bdwj9l_g.js';
2
+ import { k as BitPath, l as BitPathValue, g as BitFieldDefinition, h as BitFieldOptions } from '../bus-BtKUu_9m.js';
3
+ export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-BtKUu_9m.js';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react';
6
- import '../index-CPKnWBVv.js';
6
+ import '../index-C4HaSh5W.js';
7
7
 
8
- declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P, options?: BitFieldOptions): {
9
- value: BitPathValue<TForm, P>;
10
- displayValue: string;
11
- error: any;
8
+ interface UseBitFieldNativeMeta {
9
+ error: string | undefined;
12
10
  touched: boolean;
13
11
  invalid: boolean;
14
12
  isValidating: boolean;
15
13
  isDirty: boolean;
16
14
  isHidden: boolean;
17
15
  isRequired: boolean;
18
- setValue: (val: BitPathValue<TForm, P>) => void;
19
- setBlur: () => void;
20
- props: {
21
- value: string;
16
+ hasError: boolean;
17
+ }
18
+ interface UseBitFieldNativeBindProps {
19
+ value: string;
20
+ onChangeText: (value: string) => void;
21
+ onBlur: () => void;
22
+ }
23
+ interface UseBitFieldNativeResult<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>> {
24
+ field: {
25
+ value: BitPathValue<TForm, P>;
26
+ displayValue: string;
27
+ setValue: (val: any) => void;
28
+ setBlur: () => void;
22
29
  onChangeText: (text: string) => void;
23
30
  onBlur: () => void;
24
31
  };
25
- };
32
+ meta: UseBitFieldNativeMeta;
33
+ props: UseBitFieldNativeBindProps;
34
+ }
35
+ declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P, configOrOptions?: BitFieldDefinition<TForm> | BitFieldOptions, maybeOptions?: BitFieldOptions): UseBitFieldNativeResult<TForm, P>;
26
36
 
27
- export { useBitField };
37
+ export { type UseBitFieldNativeBindProps, type UseBitFieldNativeMeta, type UseBitFieldNativeResult, useBitField };
@@ -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-UFYHEI6S.js";import"../chunk-KA4FAGIX.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};
1
+ import{a as N,b as U,c as D,d as c,e as C,f as M,g as R,h as j}from"../chunk-4SZ2BOTW.js";import"../chunk-MVDS4KAD.js";import{useMemo as v,useCallback as f}from"react";function x(o){if(!o||typeof o!="object")return!1;let t=Object.keys(o);return t.length===1&&t[0]==="mask"}function E(o,t,s){let P=s!==void 0?t:x(t)?void 0:t,B=s!==void 0?s:x(t)?t:void 0,{fieldState:a,setValue:n,setBlur:d,store:r}=c(o,P),i=v(()=>{let e=B?.mask??r.config.fields?.[o]?.mask;if(e)return typeof e=="string"?r.config.masks[e]:e},[B?.mask,r.config.masks,r.config.fields,o]),m=v(()=>{let e=a.value;return e==null||e===""?"":i?i.format(e):String(e)},[a.value,i]),F=f(e=>{if(!i){n(e);return}n(i.parse(String(e??"")))},[i,n]),g=f(e=>{if(!i){n(e);return}n(i.parse(String(e??"")))},[i,n]),{isHidden:h,isRequired:y,value:T,error:l,touched:u,isDirty:V,isValidating:b}=a,k=!!(u&&l),S=u?l:void 0,p=f(()=>{d()},[d]);return{field:{value:T,displayValue:m,setValue:g,setBlur:d,onChangeText:F,onBlur:p},meta:{error:S,touched:u,invalid:k,isValidating:b,isDirty:V,isHidden:h,isRequired:y,hasError:!!l},props:{value:m,onChangeText:F,onBlur:p}}}export{N as BitFormProvider,C as useBitArray,E as useBitField,D as useBitForm,M as useBitScope,R as useBitSteps,U as useBitStore,j as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react-native/use-bit-field.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport { BitFieldOptions, BitPath, BitPathValue } from \"../core\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P, options?: BitFieldOptions) {\n const { fieldState, setValue, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const resolvedMask = useMemo(() => {\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n if (!maskOption) return undefined;\n return typeof maskOption === \"string\"\n ? store.config.masks![maskOption]\n : maskOption;\n }, [options?.mask, store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(() => {\n const val = fieldState.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n }, [fieldState.value, resolvedMask]);\n\n const handleChange = useCallback(\n (text: string) => {\n if (!resolvedMask) {\n setValue(text as any);\n return;\n }\n\n setValue(resolvedMask.parse(String(text ?? \"\")) as any);\n },\n [resolvedMask, setValue],\n );\n\n const { isHidden, isRequired, value, error, touched } = fieldState;\n\n return {\n value: value as BitPathValue<TForm, P>,\n displayValue,\n error: touched ? error : undefined,\n touched: touched,\n invalid: !!(touched && error),\n isValidating: store.isFieldValidating(path),\n isDirty: store.isFieldDirty(path),\n isHidden,\n isRequired,\n setValue,\n setBlur,\n props: {\n value: displayValue,\n onChangeText: handleChange,\n onBlur: setBlur,\n },\n };\n}\n"],"mappings":"kHAAA,OAAS,WAAAA,EAAS,eAAAC,MAAmB,QAI9B,SAASC,EAGdC,EAASC,EAA2B,CACpC,GAAM,CAAE,WAAAC,EAAY,SAAAC,EAAU,QAAAC,EAAS,MAAAC,CAAM,EAAIC,EAI/CN,CAAI,EAEAO,EAAeC,EAAQ,IAAM,CACjC,IAAMC,EACJR,GAAS,MAAQI,EAAM,OAAO,SAASL,CAAc,GAAG,KAC1D,GAAKS,EACL,OAAO,OAAOA,GAAe,SACzBJ,EAAM,OAAO,MAAOI,CAAU,EAC9BA,CACN,EAAG,CAACR,GAAS,KAAMI,EAAM,OAAO,MAAOA,EAAM,OAAO,OAAQL,CAAI,CAAC,EAE3DU,EAAeF,EAAQ,IAAM,CACjC,IAAMG,EAAMT,EAAW,MACvB,OAAyBS,GAAQ,MAAQA,IAAQ,GAAW,GAErDJ,EAAeA,EAAa,OAAOI,CAAG,EAAI,OAAOA,CAAG,CAC7D,EAAG,CAACT,EAAW,MAAOK,CAAY,CAAC,EAE7BK,EAAeC,EAClBC,GAAiB,CAChB,GAAI,CAACP,EAAc,CACjBJ,EAASW,CAAW,EACpB,MACF,CAEAX,EAASI,EAAa,MAAM,OAAOO,GAAQ,EAAE,CAAC,CAAQ,CACxD,EACA,CAACP,EAAcJ,CAAQ,CACzB,EAEM,CAAE,SAAAY,EAAU,WAAAC,EAAY,MAAAC,EAAO,MAAAC,EAAO,QAAAC,CAAQ,EAAIjB,EAExD,MAAO,CACL,MAAOe,EACP,aAAAP,EACA,MAAOS,EAAUD,EAAQ,OACzB,QAASC,EACT,QAAS,CAAC,EAAEA,GAAWD,GACvB,aAAcb,EAAM,kBAAkBL,CAAI,EAC1C,QAASK,EAAM,aAAaL,CAAI,EAChC,SAAAe,EACA,WAAAC,EACA,SAAAb,EACA,QAAAC,EACA,MAAO,CACL,MAAOM,EACP,aAAcE,EACd,OAAQR,CACV,CACF,CACF","names":["useMemo","useCallback","useBitField","path","options","fieldState","setValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","maskOption","displayValue","val","handleChange","useCallback","text","isHidden","isRequired","value","error","touched"]}
1
+ {"version":3,"sources":["../../src/react-native/use-bit-field.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport {\n BitFieldDefinition,\n BitFieldOptions,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport interface UseBitFieldNativeMeta {\n error: string | undefined;\n touched: boolean;\n invalid: boolean;\n isValidating: boolean;\n isDirty: boolean;\n isHidden: boolean;\n isRequired: boolean;\n hasError: boolean;\n}\n\nexport interface UseBitFieldNativeBindProps {\n value: string;\n onChangeText: (value: string) => void;\n onBlur: () => void;\n}\n\nexport interface UseBitFieldNativeResult<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n> {\n field: {\n value: BitPathValue<TForm, P>;\n displayValue: string;\n setValue: (val: any) => void;\n setBlur: () => void;\n onChangeText: (text: string) => void;\n onBlur: () => void;\n };\n meta: UseBitFieldNativeMeta;\n props: UseBitFieldNativeBindProps;\n}\n\nfunction isMaskOnlyOptions(\n value: BitFieldDefinition<any> | BitFieldOptions | undefined,\n): value is BitFieldOptions {\n if (!value || typeof value !== \"object\") return false;\n const keys = Object.keys(value);\n return keys.length === 1 && keys[0] === \"mask\";\n}\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(\n path: P,\n configOrOptions?: BitFieldDefinition<TForm> | BitFieldOptions,\n maybeOptions?: BitFieldOptions,\n): UseBitFieldNativeResult<TForm, P> {\n const config =\n maybeOptions !== undefined\n ? (configOrOptions as BitFieldDefinition<TForm> | undefined)\n : isMaskOnlyOptions(configOrOptions)\n ? undefined\n : (configOrOptions as BitFieldDefinition<TForm> | undefined);\n\n const options =\n maybeOptions !== undefined\n ? maybeOptions\n : isMaskOnlyOptions(configOrOptions)\n ? configOrOptions\n : undefined;\n\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path, config);\n\n const resolvedMask = useMemo(() => {\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n if (!maskOption) return undefined;\n return typeof maskOption === \"string\"\n ? store.config.masks![maskOption]\n : maskOption;\n }, [options?.mask, store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(() => {\n const val = fieldState.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n }, [fieldState.value, resolvedMask]);\n\n const handleChange = useCallback(\n (text: string) => {\n if (!resolvedMask) {\n rawSetValue(text as any);\n return;\n }\n\n rawSetValue(resolvedMask.parse(String(text ?? \"\")) as any);\n },\n [resolvedMask, rawSetValue],\n );\n\n const setValue = useCallback(\n (val: any) => {\n if (!resolvedMask) {\n rawSetValue(val);\n return;\n }\n\n rawSetValue(resolvedMask.parse(String(val ?? \"\")) as any);\n },\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n field: {\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChangeText: handleChange,\n onBlur,\n },\n meta: {\n error: visibleError,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n props: {\n value: displayValue,\n onChangeText: handleChange,\n onBlur,\n },\n };\n}\n"],"mappings":"uHAAA,OAAS,WAAAA,EAAS,eAAAC,MAAmB,QA0CrC,SAASC,EACPC,EAC0B,CAC1B,GAAI,CAACA,GAAS,OAAOA,GAAU,SAAU,MAAO,GAChD,IAAMC,EAAO,OAAO,KAAKD,CAAK,EAC9B,OAAOC,EAAK,SAAW,GAAKA,EAAK,CAAC,IAAM,MAC1C,CAEO,SAASC,EAIdC,EACAC,EACAC,EACmC,CACnC,IAAMC,EACJD,IAAiB,OACZD,EACDL,EAAkBK,CAAe,EAC/B,OACCA,EAEHG,EACJF,IAAiB,OACbA,EACAN,EAAkBK,CAAe,EAC/BA,EACA,OAEF,CACJ,WAAAI,EACA,SAAUC,EACV,QAAAC,EACA,MAAAC,CACF,EAAIC,EAAkDT,EAAMG,CAAM,EAE5DO,EAAeC,EAAQ,IAAM,CACjC,IAAMC,EACJR,GAAS,MAAQI,EAAM,OAAO,SAASR,CAAc,GAAG,KAC1D,GAAKY,EACL,OAAO,OAAOA,GAAe,SACzBJ,EAAM,OAAO,MAAOI,CAAU,EAC9BA,CACN,EAAG,CAACR,GAAS,KAAMI,EAAM,OAAO,MAAOA,EAAM,OAAO,OAAQR,CAAI,CAAC,EAE3Da,EAAeF,EAAQ,IAAM,CACjC,IAAMG,EAAMT,EAAW,MACvB,OAAyBS,GAAQ,MAAQA,IAAQ,GAAW,GAErDJ,EAAeA,EAAa,OAAOI,CAAG,EAAI,OAAOA,CAAG,CAC7D,EAAG,CAACT,EAAW,MAAOK,CAAY,CAAC,EAE7BK,EAAeC,EAClBC,GAAiB,CAChB,GAAI,CAACP,EAAc,CACjBJ,EAAYW,CAAW,EACvB,MACF,CAEAX,EAAYI,EAAa,MAAM,OAAOO,GAAQ,EAAE,CAAC,CAAQ,CAC3D,EACA,CAACP,EAAcJ,CAAW,CAC5B,EAEMY,EAAWF,EACdF,GAAa,CACZ,GAAI,CAACJ,EAAc,CACjBJ,EAAYQ,CAAG,EACf,MACF,CAEAR,EAAYI,EAAa,MAAM,OAAOI,GAAO,EAAE,CAAC,CAAQ,CAC1D,EACA,CAACJ,EAAcJ,CAAW,CAC5B,EAEM,CAAE,SAAAa,EAAU,WAAAC,EAAY,MAAAvB,EAAO,MAAAwB,EAAO,QAAAC,EAAS,QAAAC,EAAS,aAAAC,CAAa,EACzEnB,EACIoB,EAAU,CAAC,EAAEH,GAAWD,GACxBK,EAAeJ,EAAUD,EAAQ,OAEjCM,EAASX,EAAY,IAAM,CAC/BT,EAAQ,CACV,EAAG,CAACA,CAAO,CAAC,EAEZ,MAAO,CACL,MAAO,CACL,MAAOV,EACP,aAAAgB,EACA,SAAAK,EACA,QAAAX,EACA,aAAcQ,EACd,OAAAY,CACF,EACA,KAAM,CACJ,MAAOD,EACP,QAAAJ,EACA,QAAAG,EACA,aAAAD,EACA,QAAAD,EACA,SAAAJ,EACA,WAAAC,EACA,SAAU,CAAC,CAACC,CACd,EACA,MAAO,CACL,MAAOR,EACP,aAAcE,EACd,OAAAY,CACF,CACF,CACF","names":["useMemo","useCallback","isMaskOnlyOptions","value","keys","useBitField","path","configOrOptions","maybeOptions","config","options","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","maskOption","displayValue","val","handleChange","useCallback","text","setValue","isHidden","isRequired","error","touched","isDirty","isValidating","invalid","visibleError","onBlur"]}
@@ -1,5 +1,5 @@
1
1
  import { ObjectSchema } from 'joi';
2
- import { e as BitErrors } from '../bus-DAwKIiMY.cjs';
2
+ import { e as BitErrors } from '../bus-BtKUu_9m.cjs';
3
3
 
4
4
  declare const joiResolver: <T extends object>(schema: ObjectSchema<T>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,5 +1,5 @@
1
1
  import { ObjectSchema } from 'joi';
2
- import { e as BitErrors } from '../bus-DAwKIiMY.js';
2
+ import { e as BitErrors } from '../bus-BtKUu_9m.js';
3
3
 
4
4
  declare const joiResolver: <T extends object>(schema: ObjectSchema<T>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'yup';
2
- import { e as BitErrors } from '../bus-DAwKIiMY.cjs';
2
+ import { e as BitErrors } from '../bus-BtKUu_9m.cjs';
3
3
 
4
4
  declare const yupResolver: <T extends object>(schema: Schema<any>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'yup';
2
- import { e as BitErrors } from '../bus-DAwKIiMY.js';
2
+ import { e as BitErrors } from '../bus-BtKUu_9m.js';
3
3
 
4
4
  declare const yupResolver: <T extends object>(schema: Schema<any>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,5 +1,5 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { e as BitErrors } from '../bus-DAwKIiMY.cjs';
2
+ import { e as BitErrors } from '../bus-BtKUu_9m.cjs';
3
3
 
4
4
  declare const zodResolver: <T extends object>(schema: ZodSchema<T>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,5 +1,5 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { e as BitErrors } from '../bus-DAwKIiMY.js';
2
+ import { e as BitErrors } from '../bus-BtKUu_9m.js';
3
3
 
4
4
  declare const zodResolver: <T extends object>(schema: ZodSchema<T>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { B as BitStore } from './index-CPKnWBVv.js';
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';
3
+ import { B as BitStore } from './index-C4HaSh5W.js';
4
+ import { e as BitErrors, n as BitTouched, k as BitPath, l as BitPathValue, B as BitMask, b as BitArrayPath, a as BitArrayItem, S as ScopeStatus, V as ValidateScopeResult } from './bus-BtKUu_9m.js';
5
5
 
6
6
  declare const BitFormProvider: ({ store, children, }: {
7
7
  store: BitStore<any>;
@@ -10,8 +10,25 @@ declare const BitFormProvider: ({ store, children, }: {
10
10
  declare const useBitStore: <T extends object>() => BitStore<T>;
11
11
 
12
12
  declare function useBitForm<T extends object>(): {
13
+ meta: {
14
+ submitError: Error | null;
15
+ lastResponse: unknown;
16
+ isValid: boolean;
17
+ isDirty: boolean;
18
+ isSubmitting: boolean;
19
+ canUndo: boolean;
20
+ canRedo: boolean;
21
+ };
22
+ getValues: () => T;
23
+ getErrors: () => BitErrors<T>;
24
+ getTouched: () => BitTouched<T>;
25
+ submit: (onSuccess: (values: T) => void | Promise<void>) => (e?: {
26
+ preventDefault: () => void;
27
+ }) => Promise<void>;
28
+ onSubmit: (handler: (values: T) => Promise<unknown>) => (e?: {
29
+ preventDefault: () => void;
30
+ }) => Promise<void>;
13
31
  reset: () => void;
14
- store: BitStore<T>;
15
32
  setField: <P extends BitPath<T, "">>(path: P, value: BitPathValue<T, P>) => void;
16
33
  blurField: <P extends BitPath<T, "">>(path: P) => void;
17
34
  setValues: (newValues: T) => void;
@@ -23,30 +40,18 @@ declare function useBitForm<T extends object>(): {
23
40
  scopeFields?: string[];
24
41
  }) => Promise<boolean>;
25
42
  registerMask: (name: string, mask: BitMask) => void;
26
- pushItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
27
- removeItem: <P extends BitArrayPath<T>>(path: P, index: number) => void;
28
- prependItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
29
- insertItem: <P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>) => void;
30
- moveItem: <P extends BitArrayPath<T>>(path: P, from: number, to: number) => void;
31
- swapItems: <P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number) => void;
32
- undo: () => void;
33
- redo: () => void;
34
- getValues: () => T;
35
- getErrors: () => BitErrors<T>;
36
- getTouched: () => BitTouched<T>;
37
- submit: (onSuccess: (values: T) => void | Promise<void>) => (e?: {
38
- preventDefault: () => void;
39
- }) => Promise<void>;
40
- onSubmit: (handler: (values: T) => Promise<unknown>) => (e?: {
41
- preventDefault: () => void;
42
- }) => Promise<void>;
43
- submitError: Error | null;
44
- lastResponse: unknown;
45
- isValid: boolean;
46
- isDirty: boolean;
47
- isSubmitting: boolean;
48
- canUndo: boolean;
49
- canRedo: boolean;
43
+ mutations: {
44
+ pushItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
45
+ removeItem: <P extends BitArrayPath<T>>(path: P, index: number) => void;
46
+ prependItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
47
+ insertItem: <P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>) => void;
48
+ moveItem: <P extends BitArrayPath<T>>(path: P, from: number, to: number) => void;
49
+ swapItems: <P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number) => void;
50
+ };
51
+ history: {
52
+ undo: () => void;
53
+ redo: () => void;
54
+ };
50
55
  };
51
56
 
52
57
  declare function useBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { B as BitStore } from './index-BD_l3aH5.cjs';
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';
3
+ import { B as BitStore } from './index-CH9ZdEkZ.cjs';
4
+ import { e as BitErrors, n as BitTouched, k as BitPath, l as BitPathValue, B as BitMask, b as BitArrayPath, a as BitArrayItem, S as ScopeStatus, V as ValidateScopeResult } from './bus-BtKUu_9m.cjs';
5
5
 
6
6
  declare const BitFormProvider: ({ store, children, }: {
7
7
  store: BitStore<any>;
@@ -10,8 +10,25 @@ declare const BitFormProvider: ({ store, children, }: {
10
10
  declare const useBitStore: <T extends object>() => BitStore<T>;
11
11
 
12
12
  declare function useBitForm<T extends object>(): {
13
+ meta: {
14
+ submitError: Error | null;
15
+ lastResponse: unknown;
16
+ isValid: boolean;
17
+ isDirty: boolean;
18
+ isSubmitting: boolean;
19
+ canUndo: boolean;
20
+ canRedo: boolean;
21
+ };
22
+ getValues: () => T;
23
+ getErrors: () => BitErrors<T>;
24
+ getTouched: () => BitTouched<T>;
25
+ submit: (onSuccess: (values: T) => void | Promise<void>) => (e?: {
26
+ preventDefault: () => void;
27
+ }) => Promise<void>;
28
+ onSubmit: (handler: (values: T) => Promise<unknown>) => (e?: {
29
+ preventDefault: () => void;
30
+ }) => Promise<void>;
13
31
  reset: () => void;
14
- store: BitStore<T>;
15
32
  setField: <P extends BitPath<T, "">>(path: P, value: BitPathValue<T, P>) => void;
16
33
  blurField: <P extends BitPath<T, "">>(path: P) => void;
17
34
  setValues: (newValues: T) => void;
@@ -23,30 +40,18 @@ declare function useBitForm<T extends object>(): {
23
40
  scopeFields?: string[];
24
41
  }) => Promise<boolean>;
25
42
  registerMask: (name: string, mask: BitMask) => void;
26
- pushItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
27
- removeItem: <P extends BitArrayPath<T>>(path: P, index: number) => void;
28
- prependItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
29
- insertItem: <P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>) => void;
30
- moveItem: <P extends BitArrayPath<T>>(path: P, from: number, to: number) => void;
31
- swapItems: <P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number) => void;
32
- undo: () => void;
33
- redo: () => void;
34
- getValues: () => T;
35
- getErrors: () => BitErrors<T>;
36
- getTouched: () => BitTouched<T>;
37
- submit: (onSuccess: (values: T) => void | Promise<void>) => (e?: {
38
- preventDefault: () => void;
39
- }) => Promise<void>;
40
- onSubmit: (handler: (values: T) => Promise<unknown>) => (e?: {
41
- preventDefault: () => void;
42
- }) => Promise<void>;
43
- submitError: Error | null;
44
- lastResponse: unknown;
45
- isValid: boolean;
46
- isDirty: boolean;
47
- isSubmitting: boolean;
48
- canUndo: boolean;
49
- canRedo: boolean;
43
+ mutations: {
44
+ pushItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
45
+ removeItem: <P extends BitArrayPath<T>>(path: P, index: number) => void;
46
+ prependItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
47
+ insertItem: <P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>) => void;
48
+ moveItem: <P extends BitArrayPath<T>>(path: P, from: number, to: number) => void;
49
+ swapItems: <P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number) => void;
50
+ };
51
+ history: {
52
+ undo: () => void;
53
+ redo: () => void;
54
+ };
50
55
  };
51
56
 
52
57
  declare function useBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
@@ -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 _chunk6VDQSKUNcjs = require('../chunk-6VDQSKUN.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){_chunk6VDQSKUNcjs.h.call(void 0, a)?e.setServerErrors(_chunk6VDQSKUNcjs.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, ()=>_chunk6VDQSKUNcjs.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=_chunk6VDQSKUNcjs.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=_chunk6VDQSKUNcjs.e.call(void 0, t.getState().values,e),s=_vue.ref.call(void 0, o),n=t.watch(e,i=>{_chunk6VDQSKUNcjs.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;
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 _chunkQB7MQ6ZBcjs = require('../chunk-QB7MQ6ZB.cjs');var _vue = require('vue');var U=Symbol("BIT_STORE");function H(e){_vue.provide.call(void 0, U,e)}function m(){let e=_vue.inject.call(void 0, U);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function _(){let e=m(),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,l=()=>t.value.errors,g=()=>t.value.touched,f=_vue.computed.call(void 0, ()=>t.value.isValid),r=_vue.computed.call(void 0, ()=>t.value.isSubmitting),a=_vue.computed.call(void 0, ()=>t.value.isDirty),c=_vue.computed.call(void 0, ()=>(t.value,e.canUndo)),y=_vue.computed.call(void 0, ()=>(t.value,e.canRedo));return{meta:{isValid:f,isDirty:a,isSubmitting:r,canUndo:c,canRedo:y,submitError:o,lastResponse:s},getValues:i,getErrors:l,getTouched:g,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 d=>{try{let u=await S(d);s.value=u,o.value=null}catch(u){_chunkQB7MQ6ZBcjs.h.call(void 0, u)?e.setServerErrors(_chunkQB7MQ6ZBcjs.i.call(void 0, u)):o.value=u instanceof Error?u:new Error(String(u))}})),reset:()=>{e.reset(),o.value=null,s.value=null},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),validate:e.validate.bind(e),registerMask:e.registerMask.bind(e),mutations:{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)},history:{undo:e.undo.bind(e),redo:e.redo.bind(e)}}}function Y(e,t,o){let s=m();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,l=_vue.shallowRef.call(void 0, s.getState()),g=s.subscribe(()=>{l.value=s.getState()});_vue.onUnmounted.call(void 0, ()=>{g(),s.unregisterField&&s.unregisterField(e)});let f=_vue.computed.call(void 0, ()=>_chunkQB7MQ6ZBcjs.e.call(void 0, l.value.values,e)),r=_vue.computed.call(void 0, ()=>{let v=f.value;return v==null||v===""?"":i?i.format(v):String(v)}),a=_vue.computed.call(void 0, {get:()=>r.value,set:v=>{if(!i){s.setField(e,v);return}s.setField(e,i.parse(String(_nullishCoalesce(v, () => ("")))))}}),c=_vue.computed.call(void 0, ()=>l.value.errors[e]),y=_vue.computed.call(void 0, ()=>l.value.touched[e]?l.value.errors[e]:void 0),R=_vue.computed.call(void 0, ()=>!!l.value.touched[e]),x=_vue.computed.call(void 0, ()=>!!(R.value&&y.value)),P=_vue.computed.call(void 0, ()=>(l.value,s.isFieldValidating(e))),S=_vue.computed.call(void 0, ()=>(l.value,s.isFieldDirty(e))),b=_vue.computed.call(void 0, ()=>(l.value,s.isHidden(e))),d=_vue.computed.call(void 0, ()=>(l.value,s.isRequired(e))),u=_vue.computed.call(void 0, ()=>!!c.value),h=v=>{a.value=v},I=()=>s.blurField(e);return{value:f,displayValue:r,modelValue:a,setValue:h,setBlur:I,onInput:v=>{h(v)},onBlur:()=>{I()},meta:{error:y,touched:R,invalid:x,isValidating:P,isDirty:S,isHidden:b,isRequired:d,hasError:u}}}var F=()=>Math.random().toString(36).substring(2,9);function G(e){let t=m(),o=()=>{let r=_chunkQB7MQ6ZBcjs.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)),l=t.subscribe(()=>{let r=o();if(n.value=[...r],r.length!==i.value.length){let a=[...i.value];if(r.length>a.length){let c=r.length-a.length,y=Array.from({length:c},F);i.value=[...a,...y]}else i.value=a.slice(0,r.length)}});_vue.onUnmounted.call(void 0, ()=>{l(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let g=_vue.computed.call(void 0, ()=>n.value.map((r,a)=>({key:i.value[a]||`temp-${a}`,value:r,index:a}))),f=_vue.computed.call(void 0, ()=>n.value.length);return{fields:g,length:f,append:r=>{i.value.push(F()),t.pushItem(e,r)},prepend:r=>{i.value.unshift(F()),t.prependItem(e,r)},insert:(r,a)=>{i.value.splice(r,0,F()),t.insertItem(e,r,a)},remove:r=>{i.value.splice(r,1),t.removeItem(e,r)},move:(r,a)=>{let c=[...i.value],[y]=c.splice(r,1);c.splice(a,0,y),i.value=c,t.moveItem(e,r,a)},swap:(r,a)=>{let c=[...i.value];[c[r],c[a]]=[c[a],c[r]],i.value=c,t.swapItems(e,r,a)},replace:r=>{i.value=r.map(F),t.setField(e,r)},clear:()=>{i.value=[],t.setField(e,[])}}}function Z(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 N(e){let t=m(),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||!Z(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}),a=t.getStepErrors(e);return{valid:r,errors:a}},i=()=>t.getStepErrors(e),l=_vue.computed.call(void 0, ()=>!o.value.hasErrors),g=_vue.computed.call(void 0, ()=>o.value.isDirty),f=_vue.computed.call(void 0, ()=>o.value.errors);return{scopeName:e,status:o,errors:f,validate:n,getErrors:i,isValid:l,isDirty:g}}function se(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 oe(e){let t=m(),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,d=>{n.value=t.getStepStatus(d)});let l=()=>{let d=s.value,u=t.getStepStatus(d);(u.hasErrors!==n.value.hasErrors||u.isDirty!==n.value.isDirty||!se(u.errors,n.value.errors))&&(n.value=u)};_vue.onMounted.call(void 0, ()=>{i=t.subscribe(l)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([i, 'optionalCall', _15 => _15()])});let g=async()=>{let d=s.value,u=await t.validate({scope:d}),h=t.getStepErrors(d);return{valid:u,errors:h}},f=()=>t.getStepErrors(s.value),r=async()=>{let d=s.value,u=await t.validate({scope:d});if(u)o.value=Math.min(o.value+1,e.length-1);else{let h=t.getStepErrors(d),I=Object.keys(h);I.length>0&&t.markFieldsTouched(I)}return u},a=()=>{o.value=Math.max(o.value-1,0)},c=d=>{o.value=Math.max(0,Math.min(d-1,e.length-1))},y=_vue.computed.call(void 0, ()=>o.value+1),R=_vue.computed.call(void 0, ()=>o.value===0),x=_vue.computed.call(void 0, ()=>o.value>=e.length-1),P=_vue.computed.call(void 0, ()=>!n.value.hasErrors),S=_vue.computed.call(void 0, ()=>n.value.isDirty),b=_vue.computed.call(void 0, ()=>n.value.errors);return{step:y,stepIndex:o,scope:s,next:r,prev:a,goTo:c,isFirst:R,isLast:x,status:n,errors:b,isValid:P,isDirty:S,validate:g,getErrors:f}}function ue(e){let t=m(),o=_chunkQB7MQ6ZBcjs.e.call(void 0, t.getState().values,e),s=_vue.ref.call(void 0, o),n=t.watch(e,i=>{_chunkQB7MQ6ZBcjs.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 = H; exports.useBitArray = G; exports.useBitField = Y; exports.useBitForm = _; exports.useBitScope = N; exports.useBitSteps = oe; exports.useBitStore = m; exports.useBitWatch = ue;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts"],"names":["BIT_STORE_KEY","provideBitStore","store","provide","useBitStore","inject","useBitForm","state","shallowRef","submitError","ref","lastResponse","unsubscribe","onUnmounted","getValues","getErrors","getTouched","isValid","computed","isSubmitting","isDirty","canUndo","canRedo","onSuccess","e","handler","values","result","err","isValidationErrorShape","extractServerErrors","useBitField","path","config","options","maskOption","resolvedMask","rawValue","getDeepValue","displayValue","val","value","error","touched","invalid","isValidating","isHidden","isRequired","fieldMeta","generateId","useBitArray","getSnapshot","initialValues","ids","newValues","currentIds","diff","newIds"],"mappings":"AAAA,0uBAA8D,0BCAhB,IAIjCA,CAAAA,CAA6C,MAAA,CAAO,WAAW,CAAA,CAErE,SAASC,CAAAA,CAAgBC,CAAAA,CAAsB,CACpDC,0BAAAA,CAAQH,CAAeE,CAAK,CAC9B,CAEO,SAASE,CAAAA,CAAAA,CAAgC,CAC9C,IAAMF,CAAAA,CAAQG,yBAAAA,CAAoB,CAAA,CAClC,EAAA,CAAI,CAACH,CAAAA,CACH,MAAM,IAAI,KAAA,CACR,2DACF,CAAA,CACF,OAAOA,CACT,CCjBA,SAIgBI,CAAAA,CAAAA,CAA+B,CAC7C,IAAMJ,CAAAA,CAAQE,CAAAA,CAAe,CAAA,CACvBG,CAAAA,CAAQC,6BAAAA,CAAWN,CAAM,QAAA,CAAS,CAAC,CAAA,CACnCO,CAAAA,CAAcC,sBAAAA,IAAsB,CAAA,CACpCC,CAAAA,CAAeD,sBAAAA,IAAiB,CAAA,CAEhCE,CAAAA,CAAcV,CAAAA,CAAM,SAAA,CAAU,CAAA,CAAA,EAAM,CACxCK,CAAAA,CAAM,KAAA,CAAQ,CAAE,GAAGL,CAAAA,CAAM,QAAA,CAAS,CAAE,CACtC,CAAC,CAAA,CAEDW,8BAAAA,CAAuB,CAAA,CAEvB,IAAMC,CAAAA,CAAY,CAAA,CAAA,EAAMP,CAAAA,CAAM,KAAA,CAAM,MAAA,CAC9BQ,CAAAA,CAAY,CAAA,CAAA,EAAMR,CAAAA,CAAM,KAAA,CAAM,MAAA,CAC9BS,CAAAA,CAAa,CAAA,CAAA,EAAMT,CAAAA,CAAM,KAAA,CAAM,OAAA,CAE/BU,CAAAA,CAAUC,2BAAAA,CAAS,CAAA,EAAMX,CAAAA,CAAM,KAAA,CAAM,OAAO,CAAA,CAC5CY,CAAAA,CAAeD,2BAAAA,CAAS,CAAA,EAAMX,CAAAA,CAAM,KAAA,CAAM,YAAY,CAAA,CACtDa,CAAAA,CAAUF,2BAAAA,CAAS,CAAA,EAAMX,CAAAA,CAAM,KAAA,CAAM,OAAO,CAAA,CAE5Cc,CAAAA,CAAUH,2BAAAA,CAAS,CAAA,EAAA,CACvBX,CAAAA,CAAM,KAAA,CACCL,CAAAA,CAAM,OAAA,CACd,CAAA,CAEKoB,CAAAA,CAAUJ,2BAAAA,CAAS,CAAA,EAAA,CACvBX,CAAAA,CAAM,KAAA,CACCL,CAAAA,CAAM,OAAA,CACd,CAAA,CA6BD,MAAO,CACL,KAAA,CAAAA,CAAAA,CACA,OAAA,CAAAe,CAAAA,CACA,YAAA,CAAAE,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,SAAA,CAAAR,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,MAAA,CAASO,CAAAA,EACCC,CAAAA,EAAAA,iBACNA,CAAAA,6BAAG,cAAA,0BAAA,CAAiB,GAAA,CACbtB,CAAAA,CAAM,MAAA,CAAOqB,CAAS,CAAA,CAAA,CAGjC,QAAA,CA3CgBE,CAAAA,EACRD,CAAAA,EAAAA,iBACNA,CAAAA,6BAAG,cAAA,0BAAA,CAAiB,GAAA,CACpBf,CAAAA,CAAY,KAAA,CAAQ,IAAA,CACbP,CAAAA,CAAM,MAAA,CAAO,MAAOwB,CAAAA,EAAW,CACpC,GAAI,CACF,IAAMC,CAAAA,CAAS,MAAMF,CAAAA,CAAQC,CAAM,CAAA,CACnCf,CAAAA,CAAa,KAAA,CAAQgB,CAAAA,CACrBlB,CAAAA,CAAY,KAAA,CAAQ,IACtB,CAAA,KAAA,CAASmB,CAAAA,CAAK,CACRC,iCAAAA,CAA0B,CAAA,CAC5B3B,CAAAA,CAAM,eAAA,CAAgB4B,iCAAAA,CAAuB,CAAC,CAAA,CAE9CrB,CAAAA,CAAY,KAAA,CACVmB,EAAAA,WAAe,KAAA,CAAQA,CAAAA,CAAM,IAAI,KAAA,CAAM,MAAA,CAAOA,CAAG,CAAC,CAExD,CACF,CAAC,CAAA,CAAA,CA2BH,WAAA,CAAAnB,CAAAA,CACA,YAAA,CAAAE,CAAAA,CACA,KAAA,CAzBY,CAAA,CAAA,EAAM,CAClBT,CAAAA,CAAM,KAAA,CAAM,CAAA,CACZO,CAAAA,CAAY,KAAA,CAAQ,IAAA,CACpBE,CAAAA,CAAa,KAAA,CAAQ,IACvB,CAAA,CAsBE,QAAA,CAAUT,CAAAA,CAAM,QAAA,CAAS,IAAA,CAAKA,CAAK,CAAA,CACnC,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,QAAA,CAAUA,CAAAA,CAAM,QAAA,CAAS,IAAA,CAAKA,CAAK,CAAA,CACnC,SAAA,CAAWA,CAAAA,CAAM,SAAA,CAAU,IAAA,CAAKA,CAAK,CAAA,CACrC,YAAA,CAAcA,CAAAA,CAAM,YAAA,CAAa,IAAA,CAAKA,CAAK,CAAA,CAC3C,QAAA,CAAUA,CAAAA,CAAM,QAAA,CAAS,IAAA,CAAKA,CAAK,CAAA,CACnC,WAAA,CAAaA,CAAAA,CAAM,WAAA,CAAY,IAAA,CAAKA,CAAK,CAAA,CACzC,UAAA,CAAYA,CAAAA,CAAM,UAAA,CAAW,IAAA,CAAKA,CAAK,CAAA,CACvC,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,CACF,CClGA,SAIgB6B,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,CACA,IAAMhC,CAAAA,CAAQE,CAAAA,CAAiB,CAAA,CAE3B6B,CAAAA,EACF/B,CAAAA,CAAM,aAAA,CAAc8B,CAAAA,CAAgBC,CAAa,CAAA,CAGnD,IAAME,CAAAA,kCACJD,CAAAA,6BAAS,MAAA,yBAAQhC,CAAAA,qBAAM,MAAA,qBAAO,MAAA,4BAAA,CAAS8B,CAAc,CAAA,+BAAG,QAAA,CACpDI,CAAAA,CAAeD,CAAAA,CACjB,OAAOA,CAAAA,EAAe,QAAA,iBACpBjC,CAAAA,uBAAM,MAAA,uBAAO,KAAA,8BAAA,CAAQiC,CAAU,GAAA,CAC/BA,CAAAA,CACF,KAAA,CAAA,CAEE5B,CAAAA,CAAQC,6BAAAA,CAAWN,CAAM,QAAA,CAAS,CAAC,CAAA,CAEnCU,CAAAA,CAAcV,CAAAA,CAAM,SAAA,CAAU,CAAA,CAAA,EAAM,CACxCK,CAAAA,CAAM,KAAA,CAAQL,CAAAA,CAAM,QAAA,CAAS,CAC/B,CAAC,CAAA,CAEDW,8BAAAA,CAAY,CAAA,EAAM,CAChBD,CAAAA,CAAY,CAAA,CACRV,CAAAA,CAAM,eAAA,EACRA,CAAAA,CAAM,eAAA,CAAgB8B,CAAc,CAExC,CAAC,CAAA,CAED,IAAMK,CAAAA,CAAWnB,2BAAAA,CACf,CAAA,EAAMoB,iCAAAA,CAAa/B,CAAM,KAAA,CAAM,MAAA,CAAQyB,CAAc,CACvD,CAAA,CAEMO,CAAAA,CAAerB,2BAAAA,CAAS,CAAA,EAAM,CAClC,IAAMsB,CAAAA,CAAMH,CAAAA,CAAS,KAAA,CACrB,OAAyBG,CAAAA,EAAQ,IAAA,EAAQA,CAAAA,GAAQ,EAAA,CAAW,EAAA,CAErDJ,CAAAA,CAAeA,CAAAA,CAAa,MAAA,CAAOI,CAAU,CAAA,CAAI,MAAA,CAAOA,CAAG,CACpE,CAAC,CAAA,CAEKC,CAAAA,CAAQvB,2BAAAA,CACZ,GAAA,CAAK,CAAA,CAAA,EAAMqB,CAAAA,CAAa,KAAA,CACxB,GAAA,CAAMC,CAAAA,EAAa,CACjB,EAAA,CAAI,CAACJ,CAAAA,CAAc,CACjBlC,CAAAA,CAAM,QAAA,CAAS8B,CAAAA,CAAMQ,CAAG,CAAA,CACxB,MACF,CAEAtC,CAAAA,CAAM,QAAA,CAAS8B,CAAAA,CAAMI,CAAAA,CAAa,KAAA,CAAM,MAAA,kBAAOI,CAAAA,SAAO,IAAE,CAAC,CAAC,CAC5D,CACF,CAAC,CAAA,CAEKE,CAAAA,CAAQxB,2BAAAA,CAAS,CAAA,EACrBX,CAAAA,CAAM,KAAA,CAAM,OAAA,CAAQyB,CAAI,CAAA,CAAIzB,CAAAA,CAAM,KAAA,CAAM,MAAA,CAAOyB,CAAI,CAAA,CAAI,KAAA,CACzD,CAAA,CACMW,CAAAA,CAAUzB,2BAAAA,CAAS,CAAA,EAAM,CAAC,CAACX,CAAAA,CAAM,KAAA,CAAM,OAAA,CAAQyB,CAAI,CAAC,CAAA,CACpDY,CAAAA,CAAU1B,2BAAAA,CAAS,CAAA,EAAM,CAAC,CAAA,CAAEyB,CAAAA,CAAQ,KAAA,EAASD,CAAAA,CAAM,KAAA,CAAM,CAAA,CAEzDG,CAAAA,CAAe3B,2BAAAA,CAAS,CAAA,EAAA,CAC5BX,CAAAA,CAAM,KAAA,CACCL,CAAAA,CAAM,iBAAA,CAAkB8B,CAAI,CAAA,CACpC,CAAA,CAEKZ,CAAAA,CAAUF,2BAAAA,CAAS,CAAA,EAAA,CACvBX,CAAAA,CAAM,KAAA,CACCL,CAAAA,CAAM,YAAA,CAAa8B,CAAI,CAAA,CAC/B,CAAA,CAEKc,CAAAA,CAAW5B,2BAAAA,CAAS,CAAA,EAAA,CACxBX,CAAAA,CAAM,KAAA,CACCL,CAAAA,CAAM,QAAA,CAAS8B,CAAI,CAAA,CAC3B,CAAA,CAEKe,CAAAA,CAAa7B,2BAAAA,CAAS,CAAA,EAAA,CAC1BX,CAAAA,CAAM,KAAA,CACCL,CAAAA,CAAM,UAAA,CAAW8B,CAAI,CAAA,CAC7B,CAAA,CAEKgB,CAAAA,CAAY9B,2BAAAA,CAAS,CAAA,EAAA,CAAO,CAChC,OAAA,CAASE,CAAAA,CAAQ,KAAA,CACjB,YAAA,CAAcyB,CAAAA,CAAa,KAAA,CAC3B,QAAA,CAAUC,CAAAA,CAAS,KAAA,CACnB,UAAA,CAAYC,CAAAA,CAAW,KAAA,CACvB,QAAA,CAAU,CAAC,CAACL,CAAAA,CAAM,KACpB,CAAA,CAAE,CAAA,CAEF,MAAO,CACL,KAAA,CAAAD,CAAAA,CACA,YAAA,CAAAF,CAAAA,CACA,KAAA,CAAAG,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,OAAA,CAAAzB,CAAAA,CACA,QAAA,CAAA0B,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,OAAA,CAAS,CAAA,CAAA,EAAM9C,CAAAA,CAAM,SAAA,CAAU8B,CAAI,CAAA,CACnC,QAAA,CAAWQ,CAAAA,EAAcC,CAAAA,CAAM,KAAA,CAAQD,CACzC,CACF,CC3GA,IAUMS,CAAAA,CAAa,CAAA,CAAA,EAAM,IAAA,CAAK,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,SAAA,CAAU,CAAA,CAAG,CAAC,CAAA,CAE3D,SAASC,CAAAA,CAGdlB,CAAAA,CAAS,CACT,IAAM9B,CAAAA,CAAQE,CAAAA,CAAmB,CAAA,CAI3B+C,CAAAA,CAAc,CAAA,CAAA,EAAc,CAChC,IAAMX,CAAAA,CAAMF,iCAAAA,CACVpC,CAAM,QAAA,CAAS,CAAA,CAAE,MAAA,CACjB8B,CACF,CAAA,CACA,OAAO,KAAA,CAAM,OAAA,CAAQQ,CAAG,CAAA,CAAKA,CAAAA,CAAiB,CAAC,CACjD,CAAA,CAEMY,CAAAA,CAAgBD,CAAAA,CAAY,CAAA,CAC5BzB,CAAAA,CAAShB,sBAAAA,CAAyB,CAAA,CAClC2C,CAAAA,CAAM3C,sBAAAA,CAAc0C,CAAc,GAAA,CAAIH,CAAU,CAAC,CAAA,CAEjDrC,CAAAA,CAAcV,CAAAA,CAAM,SAAA,CAAU,CAAA,CAAA,EAAM,CACxC,IAAMoD,CAAAA,CAAYH,CAAAA,CAAY,CAAA,CAG9B,EAAA,CAFAzB,CAAAA,CAAO,KAAA,CAAQ,CAAC,GAAG4B,CAAS,CAAA,CAExBA,CAAAA,CAAU,MAAA,GAAWD,CAAAA,CAAI,KAAA,CAAM,MAAA,CAAQ,CACzC,IAAME,CAAAA,CAAa,CAAC,GAAGF,CAAAA,CAAI,KAAK,CAAA,CAChC,EAAA,CAAIC,CAAAA,CAAU,MAAA,CAASC,CAAAA,CAAW,MAAA,CAAQ,CACxC,IAAMC,CAAAA,CAAOF,CAAAA,CAAU,MAAA,CAASC,CAAAA,CAAW,MAAA,CACrCE,CAAAA,CAAS,KAAA,CAAM,IAAA,CAAK,CAAE,MAAA,CAAQD,CAAK,CAAA,CAAGP,CAAU,CAAA,CACtDI,CAAAA,CAAI,KAAA,CAAQ,CAAC,GAAGE,CAAAA,CAAY,GAAGE,CAAM,CACvC,CAAA,KACEJ,CAAAA,CAAI,KAAA,CAAQE,CAAAA,CAAW,KAAA,CAAM,CAAA,CAAGD,CAAAA,CAAU,MAAM,CAEpD,CACF,CAAC,CAAA,CAEDzC,8BAAAA,CAAY,CAAA,EAAM,CAChBD,CAAAA,CAAY,CAAA,CACRV,CAAAA,CAAM,gBAAA,EACRA,CAAAA,CAAM,gBAAA,CAAiB,CAAA,EAAA","file":"/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","sourcesContent":[null,"import { inject, provide, InjectionKey } from \"vue\";\nimport { BitStore } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitStore<any>> = Symbol(\"BIT_STORE\");\n\nexport function provideBitStore(store: BitStore<any>) {\n provide(BIT_STORE_KEY, store);\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_KEY);\n if (!store)\n throw new Error(\n \"BitForm Vue hooks devem ser usados sob um provideBitStore\",\n );\n return store as BitStore<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { isValidationErrorShape, extractServerErrors } from \"../core/utils\";\n\nexport function useBitForm<T extends object>() {\n const store = useBitStore<T>();\n const state = shallowRef(store.getState());\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = store.subscribe(() => {\n state.value = { ...store.getState() };\n });\n\n onUnmounted(unsubscribe);\n\n const getValues = () => state.value.values;\n const getErrors = () => state.value.errors;\n const getTouched = () => state.value.touched;\n\n const isValid = computed(() => state.value.isValid);\n const isSubmitting = computed(() => state.value.isSubmitting);\n const isDirty = computed(() => state.value.isDirty);\n\n const canUndo = computed(() => {\n state.value;\n return store.canUndo;\n });\n\n const canRedo = computed(() => {\n state.value;\n return store.canRedo;\n });\n\n const onSubmit = (handler: (values: T) => Promise<unknown>) => {\n return (e?: Event) => {\n e?.preventDefault?.();\n submitError.value = null;\n return store.submit(async (values) => {\n try {\n const result = await handler(values);\n lastResponse.value = result;\n submitError.value = null;\n } catch (err) {\n if (isValidationErrorShape(err)) {\n store.setServerErrors(extractServerErrors(err));\n } else {\n submitError.value =\n err instanceof Error ? err : new Error(String(err));\n }\n }\n });\n };\n };\n\n const reset = () => {\n store.reset();\n submitError.value = null;\n lastResponse.value = null;\n };\n\n return {\n store,\n isValid,\n isSubmitting,\n isDirty,\n canUndo,\n canRedo,\n getValues,\n getErrors,\n getTouched,\n submit: (onSuccess: (values: T) => void | Promise<void>) => {\n return (e?: Event) => {\n e?.preventDefault?.();\n return store.submit(onSuccess);\n };\n },\n onSubmit,\n submitError,\n lastResponse,\n reset,\n validate: store.validate.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 setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n registerMask: store.registerMask.bind(store),\n pushItem: store.pushItem.bind(store),\n prependItem: store.prependItem.bind(store),\n removeItem: store.removeItem.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}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { BitFieldOptions, BitFieldDefinition, getDeepValue } from \"../core\";\n\nexport function useBitField<TValue = any>(\n path: string,\n config?: BitFieldDefinition<any>,\n options?: BitFieldOptions,\n) {\n const store = useBitStore<any>();\n\n if (config) {\n store.registerField(path as string, config as any);\n }\n\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n const resolvedMask = maskOption\n ? typeof maskOption === \"string\"\n ? store.config.masks?.[maskOption]\n : maskOption\n : undefined;\n\n const state = shallowRef(store.getState());\n\n const unsubscribe = store.subscribe(() => {\n state.value = store.getState();\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path as string);\n }\n });\n\n const rawValue = computed(\n () => getDeepValue(state.value.values, path as string) as TValue,\n );\n\n const displayValue = computed(() => {\n const val = rawValue.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val as any) : String(val);\n });\n\n const value = computed({\n get: () => displayValue.value,\n set: (val: any) => {\n if (!resolvedMask) {\n store.setField(path, val);\n return;\n }\n\n store.setField(path, resolvedMask.parse(String(val ?? \"\")));\n },\n });\n\n const error = computed(() =>\n state.value.touched[path] ? state.value.errors[path] : undefined,\n );\n const touched = computed(() => !!state.value.touched[path]);\n const invalid = computed(() => !!(touched.value && error.value));\n\n const isValidating = computed(() => {\n state.value;\n return store.isFieldValidating(path);\n });\n\n const isDirty = computed(() => {\n state.value;\n return store.isFieldDirty(path);\n });\n\n const isHidden = computed(() => {\n state.value;\n return store.isHidden(path);\n });\n\n const isRequired = computed(() => {\n state.value;\n return store.isRequired(path);\n });\n\n const fieldMeta = computed(() => ({\n isDirty: isDirty.value,\n isValidating: isValidating.value,\n isHidden: isHidden.value,\n isRequired: isRequired.value,\n hasError: !!error.value,\n }));\n\n return {\n value,\n displayValue,\n error,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n fieldMeta,\n setBlur: () => store.blurField(path),\n setValue: (val: any) => (value.value = val),\n };\n}\n","import { ref, computed, onUnmounted } from \"vue\";\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 = (): Item[] => {\n const val = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P> | undefined;\n return Array.isArray(val) ? (val as Item[]) : [];\n };\n\n const initialValues = getSnapshot();\n const values = ref<Item[]>(initialValues);\n const ids = ref<string[]>(initialValues.map(generateId));\n\n const unsubscribe = store.subscribe(() => {\n const newValues = getSnapshot();\n values.value = [...newValues];\n\n if (newValues.length !== ids.value.length) {\n const currentIds = [...ids.value];\n if (newValues.length > currentIds.length) {\n const diff = newValues.length - currentIds.length;\n const newIds = Array.from({ length: diff }, generateId);\n ids.value = [...currentIds, ...newIds];\n } else {\n ids.value = currentIds.slice(0, newValues.length);\n }\n }\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterPrefix) {\n store.unregisterPrefix(`${path as string}.`);\n }\n });\n\n const fields = computed(() =>\n values.value.map((v, i) => ({\n key: ids.value[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n );\n\n const length = computed(() => values.value.length);\n\n return {\n fields,\n length,\n append: (val: Item) => {\n ids.value.push(generateId());\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(generateId());\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, generateId());\n store.insertItem(path, index, val);\n },\n remove: (index: number) => {\n ids.value.splice(index, 1);\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n const currentIds = [...ids.value];\n const [id] = currentIds.splice(from, 1);\n currentIds.splice(to, 0, id);\n ids.value = currentIds;\n store.moveItem(path, from, to);\n },\n swap: (a: number, b: number) => {\n const currentIds = [...ids.value];\n [currentIds[a], currentIds[b]] = [currentIds[b], currentIds[a]];\n ids.value = currentIds;\n store.swapItems(path, a, b);\n },\n replace: (items: Item[]) => {\n ids.value = items.map(generateId);\n store.setField(path as unknown as BitPath<TForm>, items as any);\n },\n clear: () => {\n ids.value = [];\n store.setField(path as unknown as BitPath<TForm>, [] as any);\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts"],"names":["BIT_STORE_KEY","provideBitStore","store","provide","useBitStore","inject","useBitForm","state","shallowRef","submitError","ref","lastResponse","unsubscribe","onUnmounted","getValues","getErrors","getTouched","isValid","computed","isSubmitting","isDirty","canUndo","canRedo","onSuccess","e","handler","values","result","err","isValidationErrorShape","extractServerErrors","useBitField","path","config","options","maskOption","resolvedMask","rawValue","getDeepValue","displayValue","val","modelValue","rawError","error","touched","invalid","isValidating","isHidden","isRequired","hasError","setValue","setBlur","generateId","useBitArray","getSnapshot","initialValues","ids","newValues","currentIds","diff","newIds"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","sourcesContent":[null,"import { inject, provide, InjectionKey } from \"vue\";\nimport { BitStore } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitStore<any>> = Symbol(\"BIT_STORE\");\n\nexport function provideBitStore(store: BitStore<any>) {\n provide(BIT_STORE_KEY, store);\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_KEY);\n if (!store)\n throw new Error(\n \"BitForm Vue hooks devem ser usados sob um provideBitStore\",\n );\n return store as BitStore<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { isValidationErrorShape, extractServerErrors } from \"../core/utils\";\n\nexport function useBitForm<T extends object>() {\n const store = useBitStore<T>();\n const state = shallowRef(store.getState());\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = store.subscribe(() => {\n state.value = { ...store.getState() };\n });\n\n onUnmounted(unsubscribe);\n\n const getValues = () => state.value.values;\n const getErrors = () => state.value.errors;\n const getTouched = () => state.value.touched;\n\n const isValid = computed(() => state.value.isValid);\n const isSubmitting = computed(() => state.value.isSubmitting);\n const isDirty = computed(() => state.value.isDirty);\n\n const canUndo = computed(() => {\n state.value;\n return store.canUndo;\n });\n\n const canRedo = computed(() => {\n state.value;\n return store.canRedo;\n });\n\n const onSubmit = (handler: (values: T) => Promise<unknown>) => {\n return (e?: Event) => {\n e?.preventDefault?.();\n submitError.value = null;\n return store.submit(async (values) => {\n try {\n const result = await handler(values);\n lastResponse.value = result;\n submitError.value = null;\n } catch (err) {\n if (isValidationErrorShape(err)) {\n store.setServerErrors(extractServerErrors(err));\n } else {\n submitError.value =\n err instanceof Error ? err : new Error(String(err));\n }\n }\n });\n };\n };\n\n const reset = () => {\n store.reset();\n submitError.value = null;\n lastResponse.value = null;\n };\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n canUndo,\n canRedo,\n submitError,\n lastResponse,\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n // Main actions (frequent use - flat)\n submit: (onSuccess: (values: T) => void | Promise<void>) => {\n return (e?: Event) => {\n e?.preventDefault?.();\n return store.submit(onSuccess);\n };\n },\n onSubmit,\n reset,\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 setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n validate: store.validate.bind(store),\n registerMask: store.registerMask.bind(store),\n // Array mutations (grouped)\n mutations: {\n pushItem: store.pushItem.bind(store),\n prependItem: store.prependItem.bind(store),\n removeItem: store.removeItem.bind(store),\n insertItem: store.insertItem.bind(store),\n moveItem: store.moveItem.bind(store),\n swapItems: store.swapItems.bind(store),\n },\n // History (grouped)\n history: {\n undo: store.undo.bind(store),\n redo: store.redo.bind(store),\n },\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { BitFieldOptions, BitFieldDefinition, getDeepValue } from \"../core\";\n\nexport interface UseBitFieldVueMeta {\n error: Readonly<any>;\n touched: Readonly<any>;\n invalid: Readonly<any>;\n isValidating: Readonly<any>;\n isDirty: Readonly<any>;\n isHidden: Readonly<any>;\n isRequired: Readonly<any>;\n hasError: Readonly<any>;\n}\n\nexport interface UseBitFieldVueResult<TValue = any> {\n // Main handlers and values (flat)\n value: Readonly<any>;\n displayValue: Readonly<any>;\n modelValue: any;\n setValue: (val: any) => void;\n setBlur: () => void;\n onInput: (val: any) => void;\n onBlur: () => void;\n // Metadata (grouped)\n meta: UseBitFieldVueMeta;\n}\n\nexport function useBitField<TValue = any>(\n path: string,\n config?: BitFieldDefinition<any>,\n options?: BitFieldOptions,\n): UseBitFieldVueResult<TValue> {\n const store = useBitStore<any>();\n\n if (config) {\n store.registerField(path as string, config as any);\n }\n\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n const resolvedMask = maskOption\n ? typeof maskOption === \"string\"\n ? store.config.masks?.[maskOption]\n : maskOption\n : undefined;\n\n const state = shallowRef(store.getState());\n\n const unsubscribe = store.subscribe(() => {\n state.value = store.getState();\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path as string);\n }\n });\n\n const rawValue = computed(\n () => getDeepValue(state.value.values, path as string) as TValue,\n );\n\n const displayValue = computed(() => {\n const val = rawValue.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val as any) : String(val);\n });\n\n const modelValue = computed({\n get: () => displayValue.value,\n set: (val: any) => {\n if (!resolvedMask) {\n store.setField(path, val);\n return;\n }\n\n store.setField(path, resolvedMask.parse(String(val ?? \"\")));\n },\n });\n\n const rawError = computed(() => state.value.errors[path]);\n const error = computed(() =>\n state.value.touched[path] ? state.value.errors[path] : undefined,\n );\n const touched = computed(() => !!state.value.touched[path]);\n const invalid = computed(() => !!(touched.value && error.value));\n\n const isValidating = computed(() => {\n state.value;\n return store.isFieldValidating(path);\n });\n\n const isDirty = computed(() => {\n state.value;\n return store.isFieldDirty(path);\n });\n\n const isHidden = computed(() => {\n state.value;\n return store.isHidden(path);\n });\n\n const isRequired = computed(() => {\n state.value;\n return store.isRequired(path);\n });\n\n const hasError = computed(() => !!rawError.value);\n\n const setValue = (val: any) => {\n modelValue.value = val;\n };\n\n const setBlur = () => store.blurField(path);\n\n const onInput = (val: any) => {\n setValue(val);\n };\n\n const onBlur = () => {\n setBlur();\n };\n\n return {\n // Main handlers and values (flat)\n value: rawValue,\n displayValue,\n modelValue,\n setValue,\n setBlur,\n onInput,\n onBlur,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { ref, computed, onUnmounted } from \"vue\";\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 = (): Item[] => {\n const val = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P> | undefined;\n return Array.isArray(val) ? (val as Item[]) : [];\n };\n\n const initialValues = getSnapshot();\n const values = ref<Item[]>(initialValues);\n const ids = ref<string[]>(initialValues.map(generateId));\n\n const unsubscribe = store.subscribe(() => {\n const newValues = getSnapshot();\n values.value = [...newValues];\n\n if (newValues.length !== ids.value.length) {\n const currentIds = [...ids.value];\n if (newValues.length > currentIds.length) {\n const diff = newValues.length - currentIds.length;\n const newIds = Array.from({ length: diff }, generateId);\n ids.value = [...currentIds, ...newIds];\n } else {\n ids.value = currentIds.slice(0, newValues.length);\n }\n }\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterPrefix) {\n store.unregisterPrefix(`${path as string}.`);\n }\n });\n\n const fields = computed(() =>\n values.value.map((v, i) => ({\n key: ids.value[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n );\n\n const length = computed(() => values.value.length);\n\n return {\n fields,\n length,\n append: (val: Item) => {\n ids.value.push(generateId());\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(generateId());\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, generateId());\n store.insertItem(path, index, val);\n },\n remove: (index: number) => {\n ids.value.splice(index, 1);\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n const currentIds = [...ids.value];\n const [id] = currentIds.splice(from, 1);\n currentIds.splice(to, 0, id);\n ids.value = currentIds;\n store.moveItem(path, from, to);\n },\n swap: (a: number, b: number) => {\n const currentIds = [...ids.value];\n [currentIds[a], currentIds[b]] = [currentIds[b], currentIds[a]];\n ids.value = currentIds;\n store.swapItems(path, a, b);\n },\n replace: (items: Item[]) => {\n ids.value = items.map(generateId);\n store.setField(path as unknown as BitPath<TForm>, items as any);\n },\n clear: () => {\n ids.value = [];\n store.setField(path as unknown as BitPath<TForm>, [] as any);\n },\n };\n}\n"]}